 performed on one side of that boundary can be moved to the other side, thereby increasing predictability, decreasing cost, and/or decreasing energy consumption ... and, if it is possible, also increasing performance. Specific projects: we have investigated moving queue manipulation from software (the RTOS, or real-time operating system) into hardware, which increases predictability, increases performance, and decreases energy consumption of the embedded system. We have investigated moving control of the processor cache from hardware to software, thereby decreasing cost and increasing predictability of the embedded system. We have investigated turning I/O devices into programmable hardware (a blurring of the HW/SW interface), thereby increasing performance and decreasing cost of the embedded system.
Additional issues ...
In general, the issues facing designers of embedded systems are very different from those involved in building general-purpose systems: typically, when building a general-purpose system, a designer cares first and foremost about performance; a designer of embedded systems typically cares most about reliability, predictability, cost, and then (maybe) performance.
Our group is investigating numerous aspects of embedded systems design; our goal is to make such systems more reliable, more predictable, and cheaper (both cheaper to build and cheaper to operate -- i.e. low power consumption). We have studied low-power issues such as dynamic voltage scaling heuristics and hardware support. We have looked at memory-system design for DSP systems. We have designed a system that makes microprocessors tolerant of intentional EMI ... much of it is below, but much of it is still in production.
If you have any questions, please contact me.
Hardware/Software Co-Design of Embedded Microcontrollers and Real-Time Operating SystemsWe have conceptualized a hardware/software co-designed processor architecture and real-time operating system (RTOS) framework that together eliminate most high-overhead operating system functions in an embedded system, thus maximizing the performance and predictability of real-time applications. This project is targeted to design and build a simulator, a prototype processor, and an experimental RTOS to demonstrate these claims.
Our research goal is to improve the performance, predictability, energy consumption, and reliability of embedded systems at little to no increase in cost. Our prior investigations in RTOS technology and processor architectures have led us to several orthogonal hardware mechanisms that one can add to any processor architecture, either microcontroller or DSP. These mechanisms enable an RTOS to provide a virtual machine environment in an embedded system with near-zero overhead.
We have performed initial measurements of the effectiveness of our scheme; we have built a complete embedded-system simulator that simulates both the embedded microcontroller and the RTOS. This enables us to gather a large amount of information on the behavior of real-time systems and allows us to measure the effect of changes to the system architecture that require modifications to both hardware and software. Other measurement techniques do not allow such flexibility; software simulators that execute applications directly on an emulated processor neglect operating system activity, and systems that attach logic probes to real hardware obtain accurate measurements but do not allow modifications to the processor architecture.
Need for Experimentation
This type of research requires experimental software systems. One cannot obtain these measurements without actually building prototype systems; the variables are so numerous and their interactions so complex that realistic mathematical analysis is incredibly difficult, and when the system is simplified to the point that the analysis is feasible, the results are no longer realistic. Accurate simulation of systems is the preferred method for obtaining measurements of low-level behavior where the operating system meets the hardware.
This project is supported by t