This project supports research in Embedded and Reconfigurable Computing Research (E&RC) by providing the research community with a suite of benchmarks that are specific to E&RC. The community resource funded by this award, ERCbench, will permit researchers to estimate and compare performance, power, and resource usage of their work to other existing and proposed solutions. It will permit them to test new architectures, CAD algorithms, and systems software techniques on a variety of real-world applications for intelligent, embedded devices in areas such as bio-medicine, transportation, environmental monitoring, and communications. These applications tend to focus on low-power and high performance such as in emerging technologies in: multimedia cell phones and personal digital assistants, wireless medical devices, wearable computers, intelligent security devices, 3D gaming systems, automotive computers, and education devices. These systems typically require programmability, complex computing capabilities, and very low power operation. They also use hybrid applications, where part of the application is implemented in one or more types of hardware structures (either fixed custom or reprogrammable logic), and part in software.
Although there are benchmarks in various embedded systems arenas, this project entails development of much needed benchmarks in Embedded and Reconfigurable Computing that include hardware/software co-design and reconfigurable computing systems along with associated wrappers, tests, data and other components. The project team will make the benchmark suites available for general use via the project website.
The ERCbench project has developed a set of open-source hardware and hybrid hardware/software benchmark applications that are made freely-available for academic use. This is a community resource designed to aid researchers in the embedded and reconfigurable computing areas. The suite includes a variety of applications from a diverse set of areas, such as image processing, video processing, audio processing, wireless communication, and encryption. ERCbench benchmarks assist researchers in evaluating and validating new architectures, systems, operating systems, and CAD algorithms. ERCbench benchmarks are real applications, and thus provide researchers with more accurate results than prior benchmarks that in many cases were outdated and/or overly simplistic. Using poor benchmarks could lead to inaccurate evaluation results, which in turn could lead to erroneous design decisions. Real applications, on the other hand, allow researchers to study their designs and algorithms on applications identical or similar to those that would be present in a real system. Furthermore, as part of the project, a unified interface and usage guidelines were developed to facilitate modification and reuse of ERCbench hardware circuits, as well as communication between hardware circuits and software applications. One of the key complexities encountered during this project is that in some cases, different styles of communication were required within a single circuit. For example, some circuits may require large amounts of data in some cases, and small amounts in others. Likewise, some circuits may process a large amount of input data and produce a large amount of output data; others may process a large amount of input data and produce a relatively small amount of output data. The interface needed to be sufficiently flexible to handle all of these cases. Beyond developing real applications to facilitate research evaluation, the ERCbench project provided participants with a number of additional benefits. Faculty and graduates had the opportunity to mentor a diverse group of developers; undergraduate participants were introduced to the research process. All participants gained significant experience in hardware circuit design.