General purpose computers are great at doing a huge variety of things because they are programmable via software. But with this flexibility comes sloth, general purpose computers are slow compared to specialist hardware like ASICs or even FPGAs for a large number of computations.

The recent push into GPGPU computing using graphics processors to attack massively parallel problems that involve simple computations is expanding the abilities of general purpose computers. AMD is betting the farm on it with their Fusion designs. The capabilities of GPGPU programs are limited but the speed at which they can be executed is approaching that of FPGA hardware. By utilizing GPGPU computing, a rather low cost, somewhat easy to program addition to the general purpose computer can improve processing performance for a subset of computations.

But the main drawback to GPGPU computing is power consumption. In order to be this fast and have the ability to be programmed with software, graphics cards draw huge amounts of power compared to dedicated hardware like ASICs or FPGAs.

This is where I think reconfigurable FPGAs come into play in the general purpose computer. FPGAs can be configured in many different ways and can execute some algorithms in hardware much faster than a general purpose computer can. In this way, they're a lot like GPGPU computing, except the power consumption is orders of magnitude lower.

Pico Computing makes the Pico E-18 ExpressCard/34 FPGA device. It fits in an ExpressCard/34 slot and I assume conforms to the power requirements of ExpressCard/34. That means its power consumption should be about 3W max. Compare this to even mid-level performance GPGPU devices consuming hundreds of Watts of power. Let's assume, for comparison sake, that a GPGPU device consumes 100W of power and that the Pico E-18 or similar FPGA based device consumes 3W. At that ratio, you could have 33 FPGAs or one GPGPU device! Or, even better, you can have one ExpressCard/34 FPGA in your laptop and not impact heat or battery performance dramatically.

The main drawback of FPGA based computing is the upfront costs. GPGPU devices are relatively cheap because lots of people buy graphics cards. Very few people are currently buying FPGA devices for their computers. It's a chicken and egg problem but some high profile use cases are tipping the scales towards more pervasive use of FPGAs in general purpose computers, take JPMorgan for example.

Along with use cases becoming more visible to the computing world showing what FPGAs can do, the ability to reconfigure an FPGA on the fly is very important. Usually, when an FPGA is powered up, it gets configured. Until the power goes away or a special programmer device is connected, FPGAs rarely get reconfigured while running. That's changing!

Xilinx has Partial Reconfiguration and now Altera has announced Configuration via PCI-Express. Altera's technology basically allows you to only partially configure the FPGA in the usual way, such as with an Active Serial device, and then to configure the rest of the FPGA at a later time over PCI-Express dynamically. This means that you could load up a different FPGA configuration at the start of software execution on your PC. Then when you start a different program, another FPGA configuration is loaded. This provides more general purpose abilities but with the speed of execution that an FPGA provides.

This is huge!

The main barrier to entry is up-front initial FPGA purchase price. But cost can be reduced by selling smaller modules, like ExpressCard devices, and by ramping up volume. Ramping up volume requires showing people how they can utilize the technology for lots of currently slow, power hungry computations. Showing people how this technology can improve performance requires some very well built software and example FPGA code along with making the sale of these devices more like other general purpose computing hardware (vendors currently make it difficult to buy an FPGA based PCI-Express card). Altera and Xilinx aren't going to enter this market but I bet they'd love to support someone who was. The tools and support, let alone devices to be sold, provides a great reason for Altera and Xilinx to support a company doing this.

It'd be a great start-up company and the business side has some awesome potential, too. Think of an app-store for FPGA configurations where the vendor (like Apple does) gets a cut of every sale! Let alone actually selling hardware and support contracts. Plus, there's no big player doing this yet making it easier to enter the market.


Xilinx also has a similar technology to Altera's Configuration via PCI-Express. Nice PDF about it.


28 July 2011