Speaker: Herman Schmit, CMU
Reconfigurable Virtual Hardware for Custom ComputingDate: February 13, 1997
The advent of high-density field programmable gate arrays (FPGAs) and other programmable hardware devices has made it possible to economically create high-performance custom solutions for some classes of computing problems. The performance of these systems is often tens or hundreds of times higher than similarly-priced processor-based solutions. Additionally, the physical hardware underlying an FPGA-based solution can be reprogrammed and reused for other computational problems, unlike the special-purpose computing devices of the past.
Despite these impressive performance results, there are significant obstacles preventing FPGA-based computing from entering the mainstream. Specifically, processor performance is improving so fast that any performance edge held by FPGA-based solutions is quickly eroded. The semiconductor improvements that enable the increase in processor performance also result in denser, faster FPGAs, but exploiting these new chips requires complete redesign of every application. The cost involved in this redesign effort is prohibitive, and therefore most FPGA-based computers are never upgraded and are soon headed for the scrap heap.
FPGA-based computing will only become viable if the improvements in the density and the speed of silicon result in improved performance without redesign or recompilation of applications. In this talk, I will discuss how this can be accomplished by partitioning hardware designs into standard units that can be swapped into and out of an FPGA as needed in order to perform the desired application. The virtualization of hardware will allow for the creation of families upwardly-compatible FPGAs. To support this swapping of hardware configuration information, the configuration speeds of FPGAs need to be drastically improved, and I will present ideas for creating an FPGA with the ability to configure approximately 100 million gates per second. Finally, I will discuss how trends in FPGA-based computing complement and contradict current trends in mainstream computer architecture.