Precision Timed Machine (PRET)

Download Report

Transcript Precision Timed Machine (PRET)

Mission

The goal of the PRET project is to develop new abstractions for computer systems that emphasize correctness of timing on the same level as performance and traditional functional correctness.

We feel that all abstraction layers, from the high level programming specifications to the low level architecture, must be augmented in order to support these aims.

Hardware Architecture

In our research, we have pursued a bottom-up approach.

Starting with the underlying architecture (in our case an open source SPARC core), we have modified and added constructs to improve the timing predictability at the architectural and instruction-set-architecture level

Intel Pentium 4:

Hyper pipeline - 20 stage

Advanced Dynamic Execution

What about predictability

Precision Timed Machine (PRET) Isaac Liu Ben Lickly http://chess.eecs.berkeley.edu/ ISA Augmentation

Finding the best way in which an instruction set can be extended to support timing is an ongoing area of research. One approach that has been implemented involves adding deadline instructions to the ISA, which allow a program to specify how long certain blocks of code should take.

Deadline instructions provide timing information about the code between deadline instructions.

SPARC Modifications

For our research, we chose to modify an open source VHDL implementation of the SPARC version 8 architecture processor created by Gaisler Research Labs called the LEON3. It contains a simple 7 stage pipeline with no branch prediction and adjustable peripherals. It also included compiler tool chains and support for convenient debug and testing. February 21, 2008

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14

F D X M W F D D D F F F D X M W F D D D F F F D X M W F D D D D

1 1 1 1

+1

IR GPR1 GPR1 X Y D$

Processor model

Before making extensive architectural modifications to our SPARC core, we built a SystemC model of our processor:

Pipelining

t0 t1 t2 t3 t4 t5 t6 t7 t8

Stalls, branch predictions, caches introduce unpredictability

F D X M W F D X M W F D X M W F D X M W F D X M W Interleaved multithreading

t9

Remove Data Dependencies!!

•SystemC transaction-level model more abstract than than register transfer level (such as VHDL) •Faster and easier modeling and exploration •But, could not abstract away details of timing of the system!

By using interleaving threads through our piprline, we are able to remove the data hazard and dependencies in the pipeline, creating a timing predictable pipeline. Center for Hybrid and Embedded Software Systems