Efficient Low-power Microprocessor |
|
|
We are developing efficient high-performance computer systems for embedded applications. Modern embedded applications, such as baseband processing in a mobile handset and digital television display processing, have demanding performance and efficiency requirements. At present, programmable processors cannot satisfy these demanding requirements. Instead, the demanding parts of embedded system are implemented as application-specific fixed-function logic. Unfortunately, the design and verification of fixed-function logic is expensive and time consuming. These high implementation costs slow the adoption of new algorithms and standards, and discourage the development of new embedded applications. Most of the expense of developing an embedded system is incurred because applications must be manually lowered to detailed low-level representations that are suitable for implementation. For example, designers typically start with a reference description of a system, typically software written in a high-level language such as C++ or Matlab. Lowering the design involves partitioning it into a number of hardware and software modules: the hardware modules are described in low-level hardware description languages, such as Verilog and VHDL; the software modules are described in different languages, often C and machine-specific assembly. Designers then verify that the lowered design is compliant with original high-level description of the system. Finally, CAD tools are used to lower the hardware modules to gate-level descriptions and layouts. We are developing enabling technologies that will allow demanding embedded applications to be implemented in systems that can be programmed using high-level languages, eliminating the expense and effort of lowering designs, and encouraging the development of novel embedded applications. Our primary areas of research are summarized below. ArchitectureWe are developing processor and system architectures for efficient high-performance computer systems. The ELM processor is an efficient low-power embedded processors that is an order of magnitude more energy-efficient than conventional embedded processors. An ELM system integrates a large number of ELM processors and distributed memory tiles on a single die to provide an efficient, high-performance computing system for embedded applications. [More] Programming SystemsELM software research is about how to productively program a system of tiles in a high level language. By using libraries and an interactive tool chain for tasks such as kernel partitioning and parallelization, ELM programs will be designed for high utilization of the underlying hardware. [More] CompilersThe ELM compiler is responsible for outputting a static execution schedule from either high level code or the system level partitioner. It must be able to provide guarantees and feedback to the programmer about real-time execution. [More] CircuitsFull custom circuits can provide better performance and efficiency than the static CMOS circuits built using automated sythesis and place-and-route tools. As most of the energy consumed in modern computers is used to move instructions and data, not to compute, we are developing circuits that will reduce the cost of on-chip communication throughout an ELM system. [More] | |