To use the metaphor of one who spent too much time with the applied-math department, applications follow an interesting trajectory through the implementation space. Take computer graphics, for example. In the early days, vectors and pixels were computed in software executing on the CPU. As the algorithms became more familiar and the appetite for performance greater, this software was replaced by firmware running on specialized graphics engines. These, in turn, evolved into pipelines and even arrays of specialized engines. That's all fairly familiar.
What may be less obvious is that in recent generations, those specialized engines have become less specialized. Perhaps this is because the faster the hardware, the more general-purpose-and hence, more easily programmed-it can be while still reaching the same minimum-performance goal. Given the size of the firmware task in a modern graphics subsystem, that's important. Another factor may be that as you partition an algorithm into smaller and smaller separable operations, the operations tend to become more general-purpose.
In any case, not long ago a graphics engine was useless for anything but a particular approach to 3-D graphics. But, today, pixel-shading engines in particular are becoming more programmable and more general-purpose. Some researchers increasingly view the latest graphics hardware as inexpensive-and relatively convenient-sources of programmable processing arrays: as fast scientific processors.
This point was made at the end of a paper written by Nvidia Corp. engineers John Montrym and Henry Moreton and presented at Hot Chips last month. The engineers observed that there is a growing community of programmers doing scientific computations on the Nvidia Gforce graphics engine.
Nor is the phenomenon limited to graphics engines. Rupert Baines, vice president of marketing at picoChip Designs Ltd., commented last week that the picoChip processors-ostensibly optimized for wireless baseband computation-were in fact being used in other sorts of computing as well. It may well be that as architectural trends make the individual elements in specialized processor arrays more flexible, the parts will begin to serve communities that would otherwise be too small to exploit such integration.
Ron Wilson covers microprocessors, programmable/reconfigurable logic and the chip design process. He can be reached at rwilson@cmp.com.