Precision Timed Machines (PRET)
Shanna-Shaye Forbes, Ben Lickly, Isaac Liu, Hiren D. Patel and Edward A. Lee
Center for Hybrid and Embedded Software Systems (CHESS), National Science Foundation 0720882, National Science Foundation 0720841, Army Research Office W911NF-07-2-0019, Air Force Office of Scientific Research FA9550-06-0312, Air Force Research Laboratory FA8750-06-C-0053, California MICRO, Agilent Technologies, Robert Bosch GmBH, HSBC, Lockheed-Martin, National Instruments and Toyota
Computing requires abstraction. Any abstraction omits details of that being abstracted, but the choice of what to omit is important. We, as a community, have chosen to abstract away the temporal properties of computation. While this can be tolerated in non-real-time systems, repeatable and predictable timing are critical to real-time embedded systems. We find the ability to specify timing requirements to be just as important as specifying functionality. However, this ability to specify timing requirements is absent from most abstraction layers such as programming languages, operating systems, compilers, networks, and processor architectures. Our long-term vision with this project is to explore and reintroduce predictable and repeatable timing as a first-class property across all layers of abstraction.
We start at the lowest abstraction layer--the real-time embedded processor architecture. In its current form, the PRET architecture  consists of a thread interleaved pipeline, scratchpad memories as alternatives to caches, and time-triggered access to main memory. In addition, we extend the instruction set architecture with timing instructions that ensure timing repeatability of segments of program code. We implement the PRET architecture as a cycle-accurate simulator that accepts C programs compiled with the SPARC GCC tool-chain. Our current focus is on exploring:
(1) architectural support for inter-thread communication;
(2) a programmable direct memory access controller for transferring instructions and data between the main memory and scratchpad memories ; and
(3) dealing with input/output and network interfaces.
(1) worst-case execution time analysis through program analysis;
(2) C code generation from time-triggered programming models such as Giotto ; and
(3) dynamic scratchpad instruction and data allocation schemes memory.
- S. A. Edwards and E. A. Lee, "The Case for the Precision Timed (PRET) Machine," Design Automation Convention, June 2007.
- B. Lickly, I. Liu, S. Kim, H. D. Patel, S. A. Edwards, and E. A. Lee, "Predictable Programming on a Precision Timed Architecture," Proceedings of International Conference on Compilers, Architecture, and Synthesis from Embedded Systems (CASES), October 2008.
- H. D. Patel, B. Lickly, B. Burgers, and E. A. Lee, A Timing Requirements-Aware Scratchpad Memory Allocation Scheme for a Precision Timed Architecture, UC Berkeley EECS Technical Report No. EECS-2008-115, September 2008.
- T. A. Henzinger, B. Horowitz, and C. M. Kirsch, "Giotto: A Time-Triggered Language for Embedded Programming," Proceedings of the First International Workshop on Embedded Software (EMSOFT), Vol. LNCS 2211, Springer-Verlag, Tahoe City, CA, 2001.