Automatic generation of hardware/software interfaces

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 de...

Full description

Bibliographic Details
Main Authors: King, Myron, Dave, Nirav H., Arvind, Arvind
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:English
Published: Association for Computing Machinery (ACM) 2019
Online Access:https://hdl.handle.net/1721.1/121451
_version_ 1811071927738957824
author King, Myron
Dave, Nirav H.
Arvind, Arvind
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
King, Myron
Dave, Nirav H.
Arvind, Arvind
author_sort King, Myron
collection MIT
description 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.
first_indexed 2024-09-23T08:58:11Z
format Article
id mit-1721.1/121451
institution Massachusetts Institute of Technology
language English
last_indexed 2024-09-23T08:58:11Z
publishDate 2019
publisher Association for Computing Machinery (ACM)
record_format dspace
spelling mit-1721.1/1214512022-09-30T12:29:11Z Automatic generation of hardware/software interfaces King, Myron Dave, Nirav H. Arvind, Arvind Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory 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. National Science Foundation (U.S.) ((#CCF-0541164) Korea (South). Ministry of Education, Science and Technology (#R33-10095) 2019-06-28T15:45:32Z 2019-06-28T15:45:32Z 2012-03 2019-06-27T16:47:07Z Article http://purl.org/eprint/type/JournalArticle 978-1-4503-0759-8 https://hdl.handle.net/1721.1/121451 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. en 10.1145/2189750.2151011 Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Association for Computing Machinery (ACM) MIT web domain
spellingShingle King, Myron
Dave, Nirav H.
Arvind, Arvind
Automatic generation of hardware/software interfaces
title Automatic generation of hardware/software interfaces
title_full Automatic generation of hardware/software interfaces
title_fullStr Automatic generation of hardware/software interfaces
title_full_unstemmed Automatic generation of hardware/software interfaces
title_short Automatic generation of hardware/software interfaces
title_sort automatic generation of hardware software interfaces
url https://hdl.handle.net/1721.1/121451
work_keys_str_mv AT kingmyron automaticgenerationofhardwaresoftwareinterfaces
AT daveniravh automaticgenerationofhardwaresoftwareinterfaces
AT arvindarvind automaticgenerationofhardwaresoftwareinterfaces