The goal of processor customization is to change an architecture to benefit a small set of applications, while maintaining the flexibility to run many other applications. Our research aims at customization techniques to enhance both control and data intensive codes. These techniques are used to target an entire application, as opposed to programmable accelerators, which only target the innermost loops. Custom processors differ from configurable processors (such as Tensilica's Xtensa) in that every structure is modifiable, where only portions of configurable processors are customizable.
The strategy we use to design custom processors revolves around a parameterized meta-architecture. A meta-architecture is a framework, where parameters describing the processor can be specified to create a customized design. Our baseline meta-architecture is a multi-clustered VLIW processor shown in the figure below. The philosophy behind the multi-clustered VLIW architecture is to use the compiler to distribute both data and control bits, in order to provide maximum performance with minimal hardware complexity and energy consumption.
Custom Processor Meta-Architecture
Virtually any part of this meta-architecture is paramaterizable. For example, the number of clusters, type of function units, and the register bypass logic are all customizable. The CCCP framework develops techniques to automatically determine what these parameters should be for each application. Below is a list of some of the research we are (or have been) working on in the area of custom processors.
- Custom Instruction Set Extensions: Very often the computation done in an application is very repetitive. We have developed techniques to automatically determine which parts of the application repeat and could be efficiently implemented in hardware, as a new function unit.
- Distributed VLIW (DVLIW): Many embedded applications require exploiting extensive instruction level parallelism. However, centralized VLIW architectures do not have control logic which scales well to wide issue widths. DVLIW research proposes a processor model to overcome this problem.
- Custom Data Memories: Applications typically use a small number of data structures very frequently. Custom data memories exploit this by creating special local memories for these structures. Our work automates the process of designing the best memory configuration given a set of applications.
- Datapath Customization: A general purpose processor is usually over-engineered or ill-suited for any single application domain. Our research in datapath customization looks at how to automatically design a datapath that is appropriate for an application domain.
- Architecture Design Framework: Once the meta-architecture is designed there needs to be a seamless tool chain in place to synthesize and compile to the machine. Our work in the architecture design framework bridges the gaps between these tools.
Page last modified January 22, 2016.