This project performed an initial exploration of a new concept for computer system design called Self-Aware Computing. A self-aware computer leverages a variety of hardware and software techniques to automatically adapt and optimize its behavior according to a set of high-level goals and its current environment. The heart of a complete self-aware system is a new “organic” operating system (OOS). The OOS acts as the ringleader, monitoring applications and making adjustments to hardware and software to increase performance, efficiency, and reliability automatically.

An Organic Operating System (OOS) is the heart of a complete self-aware system. It monitors application execution and hardware parameters, and performs adjustments and optimizations to ensure that the applications are meeting their goals. The four key components of an OOS are the application interface, the hardware interface, the analysis and optimization engine, and self-aware system services.
A self-aware computing system is given a goal and a budget, and then finds the best way to accomplish the goal with the means at hand. Much as in a biological organism, a self-aware (or organic) computer has five major properties:

  1. It is introspective or self-aware in that it can observe itself and optimize its behavior to meet its goals.
  2. It is adaptive in that it observes the application behavior and adapts itself to optimize appropriate application metrics such as performance, power, or fault tolerance.
  3. It is self-healing in that it constantly monitors its resources for faults and takes corrective action as needed.
  4. It is goal-oriented in that it attempts to meet a user’s or application’s goals while optimizing constraints of interest.
  5. It is approximate in that it uses the least amount of precision to accomplish a given task. A self-aware computer can choose automatically between a range of representations to optimize execution — from analog and single bits, to 64-bit words, to floating point or multi-level logic.

A Partner Cores framework provides mechanisms that allow secondary cores to monitor the execution of a primary core and perform on-line analysis and dynamic optimization of its application and hardware resources.

An Organic Template Library provides a set of data structures and algorithms (similar to the C++ Standard Template Library) that dynamically optimize their own implementations and behaviors. Because the OTL uses a standard sequential programming interface, it is a good example of a self-aware technology that can be put to use in today’s existing systems.

An Organic Cache is a new hardware mechanism that allows a shared pool of local memory to be dynamically partitioned between different L1 caches and buffers. It is an example of a self–aware hardware component that would be managed by the OOS.

fos is a new type of operating system designed from the ground up for scalability, reliability, and adaptability in large-scale multicore systems. It implements all system services using sets of servers distributed across multiple cores. fos provides an excellent framework on which to build a compete organic operation system.

KLab is a new, distributed, parallel simulator for large-scale multicore processors. It provides an experimental test bench that can be used to study self-aware hardware and software.

The self-aware design concept permeates all levels of a computing system including processor microarchitecture, operating systems, compilers, runtime systems, programming libraries, and applications. The maximum benefit is achieved when all of these layers are self-aware and can work together.

This work was done by Anant Agarwal, Jason Miller, Jonathan Eastep, David Wentziaff and Harshad Kasture of the Massachusetts Institute of Technology for the Air Force Research Laboratory. For more information, download the Technical Support Package (free white paper) at  under the Electronics/Computers category. AFRL-0138

This Brief includes a Technical Support Package (TSP).
Self-Aware Computing

(reference AFRL-0138) is currently available for download from the TSP library.

Don't have an account? Sign up here.