9806645 Stewart, David B. Jacob, Bruce L. University of Maryland, College Park Experimental Software Systems: Hardware-Software Co-Design of an Experimental Real-Time Operating System and Microcontroller Architecture A hardware-software co-design strategy is being used to create an environment for real-time embedded systems, comprising a real-time operating system (RTOS) for microcontrollers, and a set of hardware mechanisms that enhance a microarchitecture's real-time capabilities. The project validates this experimental system through extensive testing on a simulated processor, and measures the cost-effectiveness of the hardware architecture extensions over a wide range of design choices. The central contribution on the hardware side is the addition of multiple "nanoprocessors" and software-managed caches to the main processor core; each of these is a software-configurable finite state machine (FSM) with limited processing capabilities, but each has access to most of the processor state. These hardware mechanisms are orthogonal to the underlying microarchitecture and can be implemented inexpensively even in a low-cost microcontroller. The RTOS implements all of its high-overhead operating system functions as FSMs that are mapped onto the configurable hardware. Each of the nanoprocessors becomes a personal assistant to the operating system, performing mundane tasks such as prioritizing interrupts, filtering input/output, or acting as high-resolution timers. This leaves the full 100% of CPU processing time on the main processor core for applications.