Automatic generation of hardware/software interfaces
Author(s)King, Myron; Dave, Nirav H.; Arvind, Arvind
MetadataShow full item record
Enabling new applications for mobile devices often requires the use of specialized hardware to reduce power consumption. Because of time-to-market pressure, current design methodologies for embedded applications require an early partitioning of the design, allowing the hardware and software to be developed simultaneously, each adhering to a rigid interface contract. This approach is problematic for two reasons: (1) a detailed hardware-software interface is difficult to specify until one is deep into the design process, and (2) it prevents the later migration of functionality across the interface motivated by efficiency concerns or the addition of features. We address this problem using the Bluespec Codesign Language (BCL) which permits the designer to specify the hardware-software partition in the source code, allowing the compiler to synthesize efficient software and hardware along with transactors for communication between the partitions. The movement of functionality across the hardware-software boundary is accomplished by simply specifying a new partitioning, and since the compiler automatically generates the desired interface specifications, it eliminates yet another error- prone design task. In this paper we present BCL, an extension of a commercially available hardware design language (Bluespec Sys- temVerilog), a new software compiling scheme, and preliminary results generated using our compiler for various hardware-software decompositions of an Ogg Vorbis audio decoder, and a ray-tracing application.
DepartmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Association for Computing Machinery (ACM)
King, Myron, Nirav Dave and Arvind. "Automatic generation of hardware/software interfaces." In Proceeding ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems, London, England, UK, March 03-07, 2012, pages 325-336.
Author's final manuscript