For quite a while, the way we build computers has been based on a simple approach. They ran a series of instructions, one after the other, and that was it. In the few decades we’ve been doing this, various things have been added to the mix. There are often separate devices designed to do specific things, like the SID music chip in a Commodore 64 or a modern graphics processor. We’ve increased the number of CPUs in a computer, allowing it to run several series of instructions at once.
In the end, though, everything in a modern computer has a purpose that was defined at manufacture.
Or, well, not quite everything, because it’s becoming increasingly common to plug field-programmable gate arrays – FPGAs – into computers. I'm talking about this because FPGA manufacturer Xilinx has just announced its Versal Premium device, which is sort of an FPGA. At least, it includes a lot of FPGA resources but also throws a lot of other things into the bargain and probably represents a peak of know-how in this sort of thing.
FPGAs are, as the name suggests, reprogrammable devices which have a (very) large number of individual digital logic circuits in them. These can be connected together according to the firmware that’s uploaded into the device. They can be used to create a huge number of completely different digital devices, from signal processors to networking devices, limited only by the imagination of the designer. Graphics cards can do this, to a certain extent, by reprogramming their large number of cores, but the level of flexibility is nowhere near as deep. An FPGA could express an entirely different device from one moment to the next.
It combines the speed of a microcircuit with the flexibility of something that’s defined in software. An FPGA could actually be used to build a CPU or something like a modern GPU. That probably wouldn’t be very sensible in circumstances where custom-designed chips exist to do those things, as the FPGA would be more power hungry and more expensive, and probably not as capable for the money or size, but that’s the sort of flexibility they have. They are a favourite of camera designers because they can handle a lot of digital signal processing.
Versal Premium devices
The Versal Premium devices have an absolutely staggering amount of stuff: over 10 million configurable logic devices, 14,000 digital signal processing slices, cryptology resources, four ARM Cortex CPU cores, and interfaces for Ethernet, PCIe and other high-speed connectivity. It’s an absolute animal. It’s not entirely unprecedented, but it is at the leading edge of this kind of thing and includes a huge amount of hardware. The days of an FPGA being literally a gate array that requires external resources to load the firmware every time it starts are over.
Put such a thing on a PCIe card and plug it into a workstation and, with the right firmware, it becomes possible to create a hardware device to accelerate almost anything a computer might be asked to do. One moment it might be helping to render 3D images; the next it might be running After Effects filters, colour grading, compressing or decompressing difficult codecs, or several of those things at once with absolutely blinding speed.
The problem with Xilinx’s baby is that it’s likely to cost as much as a nice car per chip. There are FPGAs (and similar devices with lots of extra stuff included) which cost as much as a nice car per chip. This latest announcement is an addition to the Versal range and – though it hasn’t announced a price — it will inevitably be many, many tens of thousands.
And no, outfits like Xilinx are not really making these things for the film and TV market, which might balk at the price anyway. The reason that they have all the built-in Ethernet and other networking hardware is that they’re being squarely targeted at data centres – the ugly back-end of what we call “the cloud” — which really means a lot of heavyweight PCs in racks in a warehouse somewhere where power is cheap. Some of the features are clearly intended to help with AI processing and the core market for devices like this is sitting in a networking device, analysing and routing traffic, streaming video and generally handling vast, vast quantities of data every second.
Why is it relevant to us?
So it’s not really for us and it’s too expensive for almost all of us. The reason this matters is that it is probably a pretty good indication of where computer hardware might go from here. The push recently has been for computers to have large numbers of general-purpose resources. CPUs are starting to have more and more cores. Graphics cards are now made out of an even larger number of even simpler cores. An FPGA could be seen as an even lower level, breaking a piece of microelectronics down to the individual gates and allowing the user to program them as required. It makes sense. It follows from where we’ve been going.
Exactly how this might play out remains to be seen. It’s possible to imagine — and we are speculating wildly here — a future in which we can buy plug-in programmable logic resources for workstations that are standardised to the point that software people could write code for them. It’s not clear whether such a thing would look anything like the new monster that Xilinx is about to unleash upon the world, but it would be wonderful.