Chimera - Robotics Institute Carnegie Mellon University

Chimera

Portrait of Chimera
This Project is no longer active.

The Chimera Real-Time Operating System is a next-generation multiprocessor real-time operating system (RTOS) designed specifically to support the development of dynamically reconfigurable software for robotic and automation systems. Chimera is already being used by several institutions outside of Carnegie Mellon, including university, government, and industrial research labs.

Chimera is a local operating system, designed to work with SunOS as the global operating system. Chimera not only provides all the standard RTOS features, as found in commercial RTOS such as VxWorks, OS-9, VRTX, and LynxOS, but also has many features and tools which are useful for quickly developing reconfigurable and reusable code.

Hardware: Chimera is a VMEbus-based operating system which supports multiple general and special purpose processors. General purpose processors come in the form of single-board-computers (currently MC680x0 family of processors is supported) which we call Real-Time Processing Units (RTPUs). The kernel automatically configures itself to use the built-in devices of the RTPU for providing these services, allowing the same binary executable to run on several different models of MC680x0-based RTPUs.

Real-time kernel: Chimera has a full-featured high performance multitasking real-time kernel which provides task and memory management, flexible scheduling supporting static, dynamic, mixed, and user-definable algorithms, user-space system calls to reduce operating system overhead, virtual timers, and a variety of communication and synchronization mechanisms. For quick development of interrupt-driven applications, a C-language interface to local, VMEbus, and mailbox interrupts is also provided.

Multiprocessors: Chimera is a true multiprocessor RTOS, with the support built into the kernel. This is unlike most commercial RTOS which are single processor operating systems that are replicated on multiple CPUs and communicate with each other using some form of network protocol or operating system extensions. The kernels communicate with each other with a real-time, low-overhead, non-blocking message passing mechanism which we call express mail. This underlying system communication provides the basis for many different user-level multiprocessor communication and synchronization mechanisms, including dynamically allocatable global shared memory, remote semaphores, prioritized message passing, global state variable tables, multiprocessor subsystem task control, remote procedure calls, host workstation integration, remote symbolic debugging, triple-buffer external subsystem communication, and the extended file system.

Error detection and handling: Chimera has elaborate error detection and handling facilities. Its most prominent features are the global error handling and deadline failure handling mechanisms. With the global error handling, errors in system or user modules generate an error signal, which in turn invoke an error handler. It completely removes the need to check error return values, such as "if (read(…) == –1) then perror(…)". A default error handler is provided to print out an error message and abort the task. The default handler can be overridden by any number of user-defined handlers. Processor exceptions also generate error signals, allowing both processor exceptions and software errors to be handled with a single mechanism. The deadline failure handling operates in a similar manner, except that it detects timing errors, such as missed deadlines.

Libraries: Chimera has an extensive set of utility libraries, including the standard UNIX libraries, such as strings, math, random, and time; a concurrent standard I/O with built-in multitasking synchronization; a matrix math package; and a command interpreter library for quickly developing custom command-line interfaces.

Reconfigurable Software: Chimera provides many tools for quickly developing dynamically reconfigurable sensor-based control systems, such as the multiprocessor subsystem task control mechanism, the global state variable table, reconfigurable device drivers, generic sensor/actuator and special purpose processor interfaces, and a configuration file reading utility. The operating system automatically integrates the reconfigurable modules by creating and initializing tasks on the appropriate RTPUs, setting up inter-module communication paths, handling their timing and synchronization, catching and directing signals which control flow of an application, and providing on-line information such as state, criticality, measured versus desired frequency, errors detected, execution time, and CPU utilization for each task in a subsystem.

User Interfaces: In addition to its default command-line interface and support for C and C++ programming languages, Chimera provides a network interface allowing it to communicate with Onika, which allows programmers to develop, debug, and execute reconfigurable real-time applications graphically.

Displaying 7 Publications

past head

  • Pradeep Khosla