Saturday, February 26, 2005

Miscellaneous News

DNS Problems

It appears that the MOD 88 page was unavailable for most of 24 Feb 2005. There was a problem with the Dynamic DNS mapping, for some reason the automatic IP update did not work. We'll try and figure out what happened and correct it, or at least create a watchdog process. The page is back up, and appears to be stable.


DC Visit

I'll be attending a one-day class on Export Controls in Washington, DC next week. This will hopefully provide some quick answers to most of our export-related questions. I've been advised that the classification process can typically take 6 weeks! But once we have a Commodity Classification for the MOD 88, we want to be ready with whatever else we need to know.

Tuesday, February 22, 2005

Light Switch on the Web!

We've added a feature to the Cell Matrix MOD 88 online page: You can now turn on or off a light in the room with the boards, allowing you to get a better look at the boards themselves, or just the LEDs. Once you've logged in (by clicking the GO button), you can use the command

L 1

to turn the light on, or

L 0

to turn it off. You can also click the Flip the Light Switch button above the image to toggle the light's state.

Note that the light is automatically turned off whenever someone logs in.

We've also added additional initialization upon login: termination of any pending command files, truth table compilations, etc. But you still want to do a reset (“r”) yourself if you want to start with empty (all 0) cells.

We've added another bootable binary file called “hw.bin” This will configure the cells to display “Hello world” on the displays.

Sunday, February 20, 2005

Scientific Functions on a Cell Matrix

We've posted a few pages describing floating point operations on the Cell Matrix. You can find the main page at http://www.cellmatrix.com/entryway/products/applications/floatingpoint/ This briefly describes floating point processing in general, and points to more information on multiplication and addition/subtraction on a Cell Matrix. The page also discusses polynomial evaluation, and how that relates to evaluating scientific functions.


There's also an AVI movie that shows a simulated Cell Matrix evaluating the exponential function (ex). A lot of details are missing from this - it's really just a high-level introduction. If you'd like more details, please post a reply, or contact us.

We hope to have more examples like this in the future...


Thursday, February 17, 2005

Miscellaneous News

New Newsletter Sent

We just sent a new newsletter to both the standard and the API mailing lists. We may switch more to using this weblog instead of the newsletters, but we'll see how things go. The To: header reads “To: Cell Matrix Mailing List” but some mail clients seem to translate that to something like “To: Cell@localhost, Matrix@localhost, Mailing@localhost, List@localhost” We've seen a few clients bounce this back, apparently thinking it looks like spam. Anyway, if you haven't received this latest newsletter and think you should have (or would like to sign up), please let us know.


MOD 88 Export Issues

We have a customer for the MOD 88 in China, but before we can ship it, we need to go through the proper export control procedures. This has been a slow process, but is starting to move more quickly now. Hopefully we'll receive the information we need in the next few weeks. At least one of the components in the MOD 88 is export controlled, but I think we qualify for a Licence Exception. As usual, this first case is the most difficult. Once we've been through the process once, it should be quicker next time.


Dynamic DNS

Just a note here for anyone working with dynamic IP mapping – we've been using dyndns.org to map a fixed domain name to a dynamic IP. This seems to work great. The service seems reliable, and it's free. They have recommend software (“DynDNS Updater” by Kana Solution, also free) for updating your dynamic IP information at their site automatically. Apparently, some routers don't play according to dyndns' rules, and register updates even when the IP hasn't changed. This can get your account closed, as it's considered a violation of dyndns' abuse policy. But the software solution seems to work fine so far. It scrapes your current (real) IP from the router itself, compares to what it thinks your IP was, and updates dyndns when it changes.

Thursday, February 10, 2005

MOD 88 Demos Created

MOD 88 Demos Created

We've put together a few basic demos that can be run from the MOD 88 page after you log in. To try these, enter the Command:

@demo1

and it will talk you through the demo.

The demo's text appears on the left side of the page, under "Latest logfile output:"

When the demo wants you to enter commands yourself, you'll see "STDIN>" in the logfile output part of the page. After you've entered your commands, and you want to continue the demo, enter the single-character command "q" This will return control to the demo script.

There are currently three demos available. We'll refine and expand these in the future.


Wednesday, February 09, 2005

Cell Matrix Hardware Available Online!

MOD 88 Hardware Available Online

We now have a prototype (pre-beta) version of Cell Matrix "MOD 88" hardware available for experimentation via the Web. The entry page is:

http://cellmatrix.go.dyndns.org/

That page has links to documentation, some tutorials (also currently a preliminary version), etc. At the bottom of the page is a link to the MOD 88 page, from which you can view images of the boards (4 8x8 boards, arranged 2x2). You can also LOGIN from there, and then send commands to the boards, and see more frequent image and logfile updates.

To use this, you need a somewhat "modern" browser, with cookies enabled, JavaScript enabled, and JavaScript allowed to load pages, update images, plus the usual capabilities (if it complains about cookies the first time, try reloading it...).

Again, this is highly experimental at this time, but if you want to try it, see how it works for you, and let us know: you can contact us via

http://www.cellmatrix.com/entryway/entryway/contact_us.html

We'll be improving this feature over time – modifying the interface, probably adding more boards, etc.

API Problems

I've heard from a few people lately that the Cell Matrix Linux API gives compile errors. This seems to depend on the version of Linux being run. If you've have troubles with the API, please request a new copy from

http://www.cellmatrix.com/entryway/products/software/API.html

and we'll send you the latest version.


Sunday, February 06, 2005

Quick Update

Floating Point Add/Sub and Poly Now Working

I've implemented a fix for the minor sign bug in polynomial subtraction, and things are working fine now. I've created grids for Taylor series coefficients for exp(), sin() and cos(), and they appear to work as they should. Current polynomial circuit size (including 12 Taylor constants) is approx. 250X150 cells, though much of that is empty space or wires.

The simulations are fun to watch, I'll try and post some AVIs one of these days.


Web Page Update

I have half the webpage interface worked out (checking availability, displaying static images), need to write the other half (login/logout). I'll hopefully get to this in the next few days...

Saturday, February 05, 2005

Web page and Flloating Point Updates

MOD 88 Web Page

I have a scheme worked out for controlling access to the MOD 88 web page. A single user will be able to log into the system and issue commands to control the boards via the controller page. That user will also receive frequent (1 second) updates of the board's image. I'll add an automatic logout after an idle period, to avoid having other users locked out.

Additionally, multiple users will be able to view the board's image, with a slower update rate (30-60 seconds) on an observer page. Current login status will be presented on that page, so users can switch from observing the system to controlling it once it's available.

This isn't intended as a perfect solution that can never be compromised – the assumption is that users will “play nice” and not deliberately try to work around the access control. Doing so would only result in a frustrating session, as multiple users interfere with each other by sending commands to a single set of boards.


Floating Point Bug Fix

Found a bug in the floating point subtract circuit. Sign calculation, when the exponents differ by more than 1, should be determined by the sign of the number with the larger exponent – period. It's been surprising to discover the relative difficulty of floating point operations: multiplication is in some sense easiest – add the exponents, multiply the mantissas. With everything normalized, you may need one final right shift. Division is similar, with only a possible left shift at the end.

Addition is more complex, since the exponents need to match before adding the mantissas. Thus, you may need to repeatedly right shift the mantissa of one number before adding.

But subtraction is hardest of all. Not only is there is possible need for multiple right shifts to make the exponents the same, but if the mantissas are close, the resulting difference may need multiple left shifts to re-normalize it. This added the greatest degree of complication to any of the floating point circuits, and it's in this circuitry where the sign error occurs. I have a fix, and will implement it this weekend.

Friday, February 04, 2005

First Entry...

3 Feb 2005

Why a Blog?

Well, why not? Seriously, our "regular newsletters" have been less than regular so far. Writing periodic summaries of interesting, important developments is a challenge, mainly in terms of choosing what to include and what to skip. More and more these days, many people dislike email, so how do we decide what to email people about, given everything that has been happening Cell Matrix-wise?


With a blog, on the other hand, one is somewhat freed from those decisions. By making daily entries in a running journal, we may achieve a more complete picture of Cell Matrix developments, while allowing people to browse these developments at their own pace, at times of their own choosing.


What is cellmatrix.blogspot.com?

This blog is a running account of Cell Matrix-related developments, activities, ideas, thoughts, and so on. One goal is to keep interested parties informed on what is happening, what we're working on, what's in the works. Another is to provide a way for others to contribute their ideas, thoughts, questions, and so on. A third goal is to produce a written journal of this adventure that is the Cell Matrix research and development effort.


What this blog is not:

Among other things, this blog is not intended as a tutorial on the Cell Matrix. cellmatrix.com is the place to find technical materials, overviews, and so on related to the Cell Matrix architecture. We plan to increase the amount of tutorial material available on cellmatrix.com in the coming months. In the meantime, we're always happy to answer questions about the Cell Matrix, so if you have questions, please ask!


This blog is also not an attempt to summarize everything that's happened so far in this effort. There is too much in the past, and frankly, the most interesting stuff is yet to come. We'll thus be focusing on what is happening now, and what is planned in the future.


Having said that, I will make two concessions in spite of the above: a very brief summary of the Cell Matrix, and a quick synopsis o the most recent developments (mostly ongoing ones).


Brief Cell Matrix Overview

Especially for those of you who have stumbled across this bog, and are unsure what a Cell Matrix is, this is for you. The Cell Matrix is many things. It is an architecture for a type of computing system. It is a design for a piece of hardware that is both general purpose, and able to analyze and modify its own purpose. It is such hardware itself. It is the software that controls the hardware. It is, in fact, a mixing of hardware and software, in a way that makes the two sometimes indistinguishable from each other. At a higher level, it is a philosophy. It is a guiding principle for a different way of doing things.


In more concrete terms, the Cell Matrix describes a computing system, built around the idea of very general-purpose, re-usable hardware. The behavior of such hardware is not fixed in the hardware itself. Instead, the specific behavior of the hardware is defined by something like software. This is perhaps similar to a conventional computer, but in a Cell Matrix, the hardware and software is not as separate. Computers use hardware to process data. In a Cell Matrix, hardware can become data, which is then processed by other hardware. That data can then be turned back into new hardware, which can in turn process other data/hardware, and so on. The mixing of hardware and software is what makes a Cell Matrix unique, and unlike other reconfigurable hardware systems such as FPGAs.


In more practical terms, the Cell Matrix can be a massively parallel processing system. It has features that make it naturally fault resistant, and its hardware/software interaction leads to interesting fault-handling techniques. It can be used to implement dynamic systems: self-tuning processors that optimize based on the problem at hand; systems that adapt to changes in the problem space; systems whose hardware circuitry evolves over time, being chosen from an evolving population of candidate circuits. And it can be used as general-purpose logic, to implement very contemporary circuits (arithmetic processors, CPUs, etc.), though perhaps at very non-contemporary scales (trillions or trillions of trillions of computing elements).


More specific details can be found on our web site, at cellmatrix.com. Look at the papers and publications for various levels of details ("Ring Around the Pig" is a good high-level overview, while the patents are the most detailed descriptions.)


Very Recent Events

Like a letter exchange that has grown too infrequent, it's difficult to know how to catch up with everything that has been missed. In some cases, it's best not to try, but to simply continue from the present. That is the approach I'll take here, though I may return to past events as they seem relevant.


Therefore, I'll describe here just a few of the very recent events, particularly those that are still ongoing. This will be the general form of this blog, at least for now.


  • We now have circuits for integer arithmetic on the Cell Matrix. Addition and subtraction require one cell per bit, for a basic ripple-carry circuit. Multiplication and division are O(n*n) for n-bit numbers. Specifically, multiplying two n bits numbers requires roughly 8*n*n cells. Division is comparable in size, depending on the word sizes allowed for quotient, dividend, etc. The circuits are pure dataflow: no looping. Inputs are set, and the circuitry immediately re-computes the result.

  • We've recently developed floating point circuits (add, subtract, multiply) for the Cell Matrix. These are built on top of the integer arithmetic circuits, but are a bit larger. We've mostly stuck to IEEE-754 32-bit format, except for the un-normalized forms, NAN, and +/- infinity. We're still working a few kinks out of these circuits. These too are pure dataflow.

  • We used the above to create a polynomial circuit, for evaluating single-precision polynomials. The coefficients of the polynomial are stored in a block of cells that output 1 or 0 for each bit of the constant. By storing coefficients for the appropriate Taylor Series, we can now compute exp(x), sin(x), etc. This circuit does loop. For n coefficients, a total of n multiplications and n additions are performed, with one multiply/add pair per coefficient.

  • Cell Matrix Hardware. We have finished development of our "MOD 88" boards, a prototype 8x8 hardware implementation of the Cell Matrix architecture. The MOD 88 can be used as a standalone system, or can be connected to a PC and controlled/monitored via a parallel port interface. The board comes with software (both a command line interface and an API, for a variety of system configurations) and documentation, including a set of tutorials and examples. Initial pricing for the MOD 88 and interface boards, software and documentation is $325.

  • For those who want to play with hardware without owning it, we have a set of MOD 88 boards available on the web. We are currently working out a login system, to ensure only one person sends commands to the board at a time. We expect this interface to be available sometime in the next week. Watch this blog for details...


I hope to update this page on a more or less daily basis, with whatever is going on that day. If you're interested or curious, please check back whenever you like. Also, this blog allows anonymous posting, so even if you're not a member of blogspot.com, you can post comments on anything you see here. The hope is to have an interactive forum for discussing all things Cell Matrix.


Best wishes,

Nick Macias