Click here for full text:
Bitwidth Cognizant Architecture Synthesis of Custom Hardware Accelerators
Mahlke, Scott; Ravindran, Rajiv; Schlansker, Michael; Schreiber, Robert; Sherwood, Timothy
Keyword(s): application-specific design; architecture synthesis; bitwidth; clustering; embedded system; hardware accelerator; operation scheduling; resource allocation
Abstract: PICO is a system for automatically synthesizing embedded hardware accelerators from loop nests specified in the C programming language. A key issue confronted when designing such accelerators is the optimization of hardware by exploiting information that is known about the varying number of bits required to represent and process operands. In this paper, we describe the handling and exploitation of integer bitwidth in PICO. A bitwidth analysis procedure is used to determine bitwidth requirements for all integer variables and operations in a C application. Given known bitwidths for all variables, complex problems arise when determining a program schedule that specifies on which function unit and at what time each operation executes. If operations are assigned to function units with no knowledge of bitwidth, bitwidth-related cost benefit is lost when each unit is built to accommodate the widest operation assigned. By carefully placing operations of similar width on the same unit, hardware costs are decreased. This problem is addressed using a preliminary clustering of operations that is based jointly on width and implementation cost. These clusters are then honored during resource allocation and operation scheduling to create an efficient width-conscious design. Experimental results show that exploiting integer bitwidth substantially reduces the gate count of PICO-synthesized hardware accelerators across a range of applications. Notes: Copyright IEEE This paper was presented at the 5th International Workshop on Software and Compilers for Embedded Systems, March 2001, and a version will appear in IEEE Transactions on Computer Aided Design, 2001.
Back to Index