jep.jpg (13389 bytes)

Chaos Manor Special Reports

Another Look at Reconfigurable Computing

by Peter N. Glaskowsky

Sunday, June 27, 2004

Email Jerry

Sections

Chaos Manor Home

View From Chaos Manor

Reader Mail

Alt.Mail

Columns

Special Reports

Book &; Movie Reviews

Picture Gallery

Links

Table of Contents

What's New

The BYTE Fiasco

png@ideaphile.com

http://www.ideaphile.com

Reconfigurable computing is a very interesting field. There's a lot to be said in favor of it, and Star Bridge is certainly saying as much as they can (if not more, so I won't spend much time on the arguments in favor. Instead, I'll try to provide some perspective.

There are two valuable points to be made here. First, conventional microprocessors aren't the most efficient way to do any specific task. Along with the data they need to process, they need to process a lot of instructions. Moving instructions AND data around is more difficult than moving just the data. If you create a circuit that does just one thing, it can always do it better.

Second, flexibility is a value per se. Hardly any computers do the same thing all day long. The great thing about the microprocessor is that it can do a lot of different things. Reconfigurable systems lie somewhere between microprocessors and ASICs in their ability to adapt to different needs. No matter how the reconfigurability is achieved, there are always limits. Some FPGAs are good at implementing state machines but not ALUs. Some are great for ALUs but require heroic efforts to implement complex state machines. Star Bridge uses Xilinx FPGAs, which have their own set of tradeoffs.

Remember that reconfigurable computers are still based on transistors and boolean logic and state machines. They obey the same laws of physics, and for many applications, they work the same way as more conventional machines. If you want to do 3D geometry transforms, you'll want to reconfigure your logic to look like any of today's ASICs that do 3D geometry. If you want to solve systems of linear equations, you'll build something that looks a lot like the floating-point execution units in Compaq's Alpha microprocessor. And so on.

Nevertheless, a reconfigurable computer configured to work like some existing ASIC won't be as good as that ASIC. ASICs have denser, faster logic than you can get from any sort of reconfigurable-logic technology, and CPUs have logic that is denser and faster still. The reconfigurability comes at a cost, after all. Sure, you can have hundreds of 8-bit microprocessors on a single reconfigurable chip-- but you can have thousands of them on a purpose-built ASIC, and that ASIC will run at higher clock speeds.

There's a sort of an Ideal Gas Law in the computer industry. We can phrase the Ideal Gas Law itself as

(Pressure * Volume) / (Molar Quantity * Temperature) = A constant

For computers, it's more like

(Cost * Complexity) / (Performance * Flexibility) = A constant

If you want more flexibility or performance, you have to accept increased cost or complexity (which itself has many elements, including device count, ease of use or programming, etc.). To reduce cost or complexity, you have to give up flexibility or performance.

The value of reconfigurability has limits, of course. One of these Star Bridge HAL-300GrW1 hypercomputers can be a 3D-geometry processor in the morning and a nuclear-weapons simulator in the afternoon. It can even switch between these tasks a thousand times a second-- but who the heck needs a machine that can do that? I'm sure there must be dozens of scientists who could benefit from this sort of flexibility, but that's not much of a market.

And saying the HAL-300GrW1 can be different things ignores the major issue of how it becomes different things. A great deal of programming must be done to configure a HAL-300GrW1 for each task. One hard truth about reconfigurable machines is that the cost to define a configuration can outweigh the benefits of the configuration.

Most computers use general-purpose processors because most tasks aren't important enough to justify the design of optimized logic. And most computers include ASICs because some tasks ARE worth optimizing-- like 3D rendering, for example.

Star Bridge isn't the only company working on this sort of thing. Plenty of other companies are delivering performance levels you'd never touch by spending similar amounts of money on conventional microprocessors.

Some companies are working on ways to create hardwired implementations of algorithms you might normally just write in a high-level language.

iReady, which has been around for a few years now, offers tools to design ASICs that replace software. Basically, they turn high-level code into a state machine. If you've got a TCP/IP stack and an email program, both written in C, iReady will help you create an ASIC that connects to an Ethernet chip and an LCD to create an email appliance. It doesn't run code, it IS code. These chips aren't dynamically reconfigurable, but they achieve about the best possible combination of price, power consumption, and performance at the expense of design complexity and flexibility.

Lots of people are achieving high performance through highly parallel processing on pretty normal-looking processors.

Cradle offers chips combining a large number of microprocessors with fully reconfigurable logic and I/O protocol engines. For less than $50, they'll sell you a chip with 20 32-bit RISC engines plus 40 32-bit DSPs. This chip will deliver 30 GFLOPS of peak floating-point performance. Ten of these chips will match the theoretical performance of that HAL-300GrW1 and I'm sure it's a lot easier to write code for Cradle's processors than the fully reconfigurable logic inside a Star Bridge hypercomputer.

Chips with similar capabilities are available from BOPS, Silicon Magic, and others.

PixelFusion has gone further in this direction than anyone else. They're putting 1,536 8-bit microprocessors on a single chip. At 150 MHz, that's over 230 billion 8-bit integer operations per second per chip. Now, 8-bit operations aren't worth nearly as much as 32-bit operations, but that's still an impressive number. This chip doesn't do floating-point, but just wait a few years and they'll get there. PixelFusion's first target application is 3D graphics, but they've got people thinking about how to use the chip for cryptography, voice recognition, and various other applications.

Improv Systems is using a mix of conventional and reconfigurable processing in its Jazz products. Jazz is based on a multiprocessor architecture, but each processor on each chip is optimized for the specific tasks it is meant to run. If you want a chip that can play 3D games and DVD movies, you can make a chip with one 3D-geometry processor, one 3D-rendering accelerator, one MPEG-2 decoder, and one Dolby Digital audio processor. Each of these engines would run a different instruction set and be equipped with a unique set of execution units highly optimized for the functions it performs.

Star Bridge isn't the first company to design a processor that uses a large number of FPGAs. Corporations and educational institutions have been building such things since the earliest days of the FPGA, more than 10 years ago. There are annual conferences on the topic, such as last month's FPGA 2000. Xilinx itself has a page on its Web site listing various prototyping systems, some of which are similar in concept to the Star Bridge hypercomputer. Some are direct competitors.

I just don't think Star Bridge can live up to its own hype. The company is addressing a real niche, but it's not a real BIG niche. They're providing an answer to a problem few people have. Go back to that Ideal Gas Law analogy and associate computing flexibility with gas temperature-- it's as if Star Bridge developed an air pump that works at 72,000 degrees C. That would be a very valuable thing to some people, but it just wouldn't matter much to most of us.

Star Bridge's real value has almost nothing to do with its architecture or hardware. There's plenty of that around. What REALLY matters is the quality of the tools they provide to configure their system to perform specific tasks. Unfortunately, it's essentially impossible to evaluate complex tool chains of this type without using them for a real application-- or actually for multiple real applications, since they will live or die on their reconfigurability.

So ask them who's using their systems. Ask who's REALLY using their reconfigurability. Ask who's using their systems to do things you couldn't do better with ASICs or microprocessors. I'm sure they have customers, but I doubt they have enough to support the claims they're making.