A methodology for hardware-software codesign

Thesis (Ph. D.)--Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2013.

Bibliographic Details
Main Author: King, Myron Decker
Other Authors: Arvind.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2014
Subjects:
Online Access:http://hdl.handle.net/1721.1/84891
_version_ 1811086917807112192
author King, Myron Decker
author2 Arvind.
author_facet Arvind.
King, Myron Decker
author_sort King, Myron Decker
collection MIT
description Thesis (Ph. D.)--Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2013.
first_indexed 2024-09-23T13:36:54Z
format Thesis
id mit-1721.1/84891
institution Massachusetts Institute of Technology
language eng
last_indexed 2024-09-23T13:36:54Z
publishDate 2014
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/848912019-04-11T10:55:46Z A methodology for hardware-software codesign King, Myron Decker Arvind. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (Ph. D.)--Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2013. Cataloged from PDF version of thesis. Includes bibliographical references (pages 150-156). Special purpose hardware is vital to embedded systems as it can simultaneously improve performance while reducing power consumption. The integration of special purpose hardware into applications running in software is difficult for a number of reasons. Some of the difficulty is due to the difference between the models used to program hardware and software, but great effort is also required to coordinate the simultaneous execution of the application running on the microprocessor with the accelerated kernel(s) running in hardware. To further compound the problem, current design methodologies for embedded applications require an early determination of the design partitioning which allows hardware and software to be developed simultaneously, each adhering to a rigid interface contract. This approach is problematic because often a good hardware-software decomposition is not known until deep into the design process. Fixed interfaces and the burden of reimplementation prevent the migration of functionality motivated by repartitioning. This thesis presents a two-part solution to the integration of special purpose hardware into applications running in software. The first part addresses the problem of generating infrastructure for hardware-accelerated applications. We present a methodology in which the application is represented as a dataflow graph and the computation at each node is specified for execution either in software or as specialized hardware using the programmer's language of choice. An interface compiler as been implemented which takes as input the FIFO edges of the graph and generates code to connect all the different parts of the program, including those which communicate across the hardware/software boundary. This methodology, which we demonstrate on an FPGA platform, enables programmers to effectively exploit hardware acceleration without ever leaving the application space. The second part of this thesis presents an implementation of the Bluespec Codesign Language (BCL) to address the difficulty of experimenting with hardware/software partitioning alternatives. Based on guarded atomic actions, BCL can be used to specify both hardware and low-level software. Based on Bluespec SystemVerilog (BSV) for which a hardware compiler by Bluespec Inc. is commercially available, BCL has been augmented with extensions to support more efficient software generation. In BCL, the programmer specifies the entire design, including the partitioning, allowing the compiler to synthesize efficient software and hardware, along with transactors for communication between the partitions. The benefit of using a single language to express the entire design is that a programmer can easily experiment with many different hardware/software decompositions without needing to re-write the application code. Used together, the BCL and interface compilers represent a comprehensive solution to the task of integrating specialized hardware into an application. by Myron King. Ph.D. 2014-02-10T16:59:17Z 2014-02-10T16:59:17Z 2013 Thesis http://hdl.handle.net/1721.1/84891 868822726 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 156 pages application/pdf Massachusetts Institute of Technology
spellingShingle Electrical Engineering and Computer Science.
King, Myron Decker
A methodology for hardware-software codesign
title A methodology for hardware-software codesign
title_full A methodology for hardware-software codesign
title_fullStr A methodology for hardware-software codesign
title_full_unstemmed A methodology for hardware-software codesign
title_short A methodology for hardware-software codesign
title_sort methodology for hardware software codesign
topic Electrical Engineering and Computer Science.
url http://hdl.handle.net/1721.1/84891
work_keys_str_mv AT kingmyrondecker amethodologyforhardwaresoftwarecodesign
AT kingmyrondecker methodologyforhardwaresoftwarecodesign