Font Size: a A A

Data-driven techniques for hardware and software synthesis for embedded systems

Posted on:2005-10-13Degree:Ph.DType:Thesis
University:Princeton UniversityCandidate:Wang, WeidongFull Text:PDF
GTID:2458390008477915Subject:Engineering
Abstract/Summary:
In today's world, embedded systems are becoming ubiquitous and more complex, which makes electronic design automation a necessity. We present several techniques which target both hardware and software synthesis in embedded system design. The techniques presented in the hardware domain focus on high-level synthesis, which translates a behavioral description into a register-transfer level implementation. The techniques presented in the software domain focus on source-level code optimizations to achieve performance and energy improvement.; Extensive research work has been done in the area of both high-level synthesis and source-level code optimization. However, only some works try to exploit the statistics of the input data. Even these techniques do not exploit the potential for global data-driven optimizations. In this thesis, we demonstrate that the input data for embedded applications often display interesting characteristics. Suitable exploitation of the input characteristics can be, translated into energy and performance improvements, which cannot be achieved by conventional design techniques for embedded systems. We present a suite of data-driven hardware and software synthesis techniques, which systematically exploit the input space for performance/energy optimization.; We introduce a high-level synthesis methodology for multi-process behavioral descriptions. The concurrent communicating processes specification paradigm is widely used in digital circuit and system design, and is employed in all popular hardware description languages. However, state-of-the-art high-level synthesis systems handle multi-process systems by synthesizing each process independently, thus ignoring inter-process communication and synchronization. We demonstrate that such high-level synthesis tools can generate significantly sub-optimal implementations for behaviors that contain concurrent communicating processes. We present an analysis of how inter-process communication impacts high-level synthesis steps, and describe a trace-driven methodology to adapt existing high-level synthesis tools to optimize multi-process descriptions. We also propose a high-level methodology for optimizing energy consumption and performance by suitably adapting the implementation to changing input statistics. We show that harnessing the principles of input space adaptive design into a structured high-level design methodology can lead to large improvements in performance and energy consumption. We illustrate the tradeoffs involved in such designs, and demonstrate the need for a systematic design methodology in order to realize the full potential for performance and energy improvements. (Abstract shortened by UMI.)...
Keywords/Search Tags:Synthesis, Embedded, Systems, Techniques, Performance and energy, Methodology, Data-driven
Related items