The performance and resource requirements of every application are unique. Yet most processors are designed to do well, not on a particular application, but instead on the average case over a range of applications. Processors are typically designed around a broad suite of applications so that one piece of hardware can be used in many different contexts. In contrast to this, the continuing expansion of the embedded market has created a significant demand for low-cost high-performance computing solutions that can be buried deep inside products. These embedded processors are typically responsible for the execution of only a small number of applications, which means that it is possible to tune the design of the processor to the needs of the application for which it will be used. Embedded processors not only typically execute a small number of applications, they are also often integrated into the same physical chip as many other components. This level of integration means that the processors are now being sold not as physical silicon, but rather as descriptions which can be combined with other design elements before fabrication. This change in the way that processors are sold provides us with an opportunity to take into consideration specific application behaviors during the physical design of the processor. By customizing a processor to the needs of an application, we can provide faster designs that take less area. In order to make this possible, the customization needs to be realized with a minimum of additional engineering design effort. To this end, this dissertation focuses on novel automated techniques for analyzing program behavior, customizing portions of the processor to an application, making intelligent design tradeoffs, and examining the effect of algorithmic choices on the circuit level realities of their implementation.
The authors of these documents have submitted their reports to this technical report series for the purpose of non-commercial dissemination of scientific work. The reports are copyrighted by the authors, and their existence in electronic format does not imply that the authors have relinquished any rights. You may copy a report for scholarly, non-commercial purposes, such as research or instruction, provided that you agree to respect the author's copyright. For information concerning the use of this document for other than research or instructional purposes, contact the authors. Other information concerning this technical report series can be obtained from the Computer Science and Engineering Department at the University of California at San Diego, firstname.lastname@example.org.
[ Search ]