Field-programmable object array

Posted May 10, 2006

This week there were a couple of interesting conferences in Boston, both of which provided the usual free expo passes, yay. Unfortunately, I didn't find a great deal of interest to me at Nanotech 2006, since I guess I'm still mostly in the "micro" world of MEMS and electronics rather than the true "nano" world of materials. The second conference, The Vision Show East, was much more interesting, if only for the profusion of companies running demos of their high-speed cameras grabbing frames of some spinning gizmo on their tabletop.

One booth caught my eye, advertising an FPOA chip. What, might you ask, is an FPOA chip? I did too, and they kindly explained to me their vision of a processor intermediate in configurability between an FPGA with almost gate-level flexibility and a DSP chip with none beyond its instruction set. Instead, they have a large number of functional object blocks (like a multiply-and-accumulate or an ALU) which you can arrange in a way to best match your algorithm. You gain some impressive performance this way over an FPGA (they're clocking the chip at 1GHz, during which you can transfer data between many different blocks simultaneously), and some flexibility over a DSP.

The catch is that designing is a little bit of a chore. While you have the ability to tweak things very carefully, there's no present way to, say, just write an algorithm in C and have an optimal configuration of processing units be automatically generated from that. For the type of high-end data-crunching they have in mind, that's not too big of an issue, since you would want to optimize your MPEG4 encoder as much as you possibly could by hand before you ship a million units of it.