shim: a deterministic model for heterogeneous embedded …

20
SHIM: A Deterministic Model for Heterogeneous Embedded Systems Stephen A. Edwards and Olivier Tardieu Department of Computer Science, Columbia University www.cs.columbia.edu/˜sedwards {sedwards,tardieu}@cs.columbia.edu

Upload: others

Post on 13-May-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SHIM: A Deterministic Model for Heterogeneous Embedded …

SHIM: A Deterministic Model forHeterogeneous Embedded Systems

Stephen A. Edwards and Olivier Tardieu

Department of Computer Science,Columbia University

www.cs.columbia.edu/˜sedwards

{sedwards,tardieu}@cs.columbia.edu

Page 2: SHIM: A Deterministic Model for Heterogeneous Embedded …

Definition

shim \’shim\ n

1 : a thin often tapered piece of material (as wood, metal,or stone) used to fill in space between things (as forsupport, leveling, or adjustment of fit).

2 : Software/Hardware Integration Medium, a model fordescribing hardware/software systems

Page 3: SHIM: A Deterministic Model for Heterogeneous Embedded …

Robby Roto (Bally/Midway, 1981)

Page 4: SHIM: A Deterministic Model for Heterogeneous Embedded …

Robby Roto Block Diagram

Z80

ROM40K

SRAM6K

NV SRAM2K

blitter

Bus Bridge(Mux)

CustomAddress

CustomData Video

SoundI/O

SwitchesAudio Left

SoundI/O Audio Right

DRAM16K

Page 5: SHIM: A Deterministic Model for Heterogeneous Embedded …

HW/SW InteractionSoftware Blitter Memory Video

Interrupt

Interrupt

Blit

Blit

Blit

Pixels

Pixels

Pixels

Line

Line

Line

Line

Line

Page 6: SHIM: A Deterministic Model for Heterogeneous Embedded …

SHIM Wishlist

• Mixes synchronous and asynchronous stylesNeed multi-rate for hardware/software systems

• Delay-insensitive (Deterministic)Want simulated behavior to reflect realityVerify functionality and performance separately

• Only requires bounded resourcesHardware resources fundamentally bounded

• Formal semanticsDo not want arguments about what something means

Page 7: SHIM: A Deterministic Model for Heterogeneous Embedded …

Deterministic, Concurrent MoCs

Not too many:

The Synchronous Model Bad for multi-rate andasynchronous behavior

The Lambda Calculus Unbounded in general, notobvious in hardware

Kahn Networks Unbounded in general, difficultto schedule

Idea: Restrict Kahn to be bounded.

Page 8: SHIM: A Deterministic Model for Heterogeneous Embedded …

The SHIM Model

Kahn networks with rendezvous communication

Sequential processesUnbuffered point-to-point

communication channelsexchange data tokens

Fixed communication topology

Fundamentally asynchronous

Each communication event is synchronous (like a clock)

Delay-insensitive: sequence of data through any channelis independent of scheduling policy (the Kahn principle)

Page 9: SHIM: A Deterministic Model for Heterogeneous Embedded …

Tiny-SHIM Processes

Local variables: d, ed = 0;while (1) {

e = d;while (e > 0) {

write(c, 1);write(c, e);e = e - 1;

}write(c, 0);d = d + 1;

}

Local variables: a, b, r, va = 0;b = 0;while (1) {

r = 1;while (r) {

read(c, r);if (r != 0) {

read(c, v);a = a + v;

}}b = b + 1;

}

c

Page 10: SHIM: A Deterministic Model for Heterogeneous Embedded …

Behavior of the Processessender receiverC=0 sink

D=1C=1C=1C=0

D=2C=1C=2C=1C=1C=0

D=3C=1C=3C=1C=2C=1C=1C=0

D=4

d = 0;while (1) {

e = d;while (e > 0) {

write(c, 1);write(c, e);e = e - 1;

}write(c, 0);d = d + 1;

}

a = 0;b = 0;while (1) {

r = 1;while (r) {

read(c, r);if (r != 0) {

read(c, v);a = a + v;

}}b = b + 1;

}

Page 11: SHIM: A Deterministic Model for Heterogeneous Embedded …

Robby Roto in SHIM: Block Diagram

Software Blit

buffer

Video out

bufferpixelssync

Pixel Clock

frameend-of-frame

commandpixels

start-of-frame

while the player is alive doWait for start-of-frame...game logic...Write “false” to end-of-frameWrite to the blitter...game logic...Write “true” to end-of-frame

while 1 dowhile not end-of-frame do

Read blit commandWrite pixels to memory

Write frame

while 1 doWrite start-of-framefor each line do

Emit line timing signalsfor each pixel do

Wait for pixel clockRead pixel from memorySend pixel to display

Read next frame

Page 12: SHIM: A Deterministic Model for Heterogeneous Embedded …

The Syntax of Tiny-SHIM

e ::= L (literal)| V (variable)| op e (unary op)| e op e (binary op)| ( e ) (paren)

s ::= V = e (assignment)| if ( e ) s else s (conditional)| while ( e ) s (loop)| s ; s (sequencing)| read( C, V ) (blocking read)| write( C, e ) (blocking write)| { s } (grouping)

Page 13: SHIM: A Deterministic Model for Heterogeneous Embedded …

The SOS Semantics of Tiny-SHIM

σ Process memory state p Process code〈σ, p〉 Process p in state σ 〈σ〉 Terminated in state σa−→ Single-process rule ⇒ System ruleE(σ, e) Value of e in σ

E(σ, e) = n

〈σ, v = e〉 → 〈σ[v ← n]〉(assign)

E(σ, e) 6= 0

〈σ, if (e) p else q〉 → 〈σ, p〉(if-true)

E(σ, e) = 0

〈σ,if (e) p else q〉 → 〈σ, q〉(if-false)

Page 14: SHIM: A Deterministic Model for Heterogeneous Embedded …

Semantics of Looping & Sequencing

E(σ, e) 6= 0

〈σ, while (e) p〉 → 〈σ, p ; while (e) p〉(while-true)

E(σ, e) = 0

〈σ, while (e) p〉 → 〈σ〉(while-false)

〈σ, p〉a→ 〈σ′, p′〉

〈σ, p ; q〉a→ 〈σ′, p′ ; q〉

(seq)

〈σ, p〉a→ 〈σ′〉

〈σ, p ; q〉a→ 〈σ′, q〉

(seq-term)

Page 15: SHIM: A Deterministic Model for Heterogeneous Embedded …

Communication and Concurrency

〈σ, read(c, v)〉 c get n−−−−−→ 〈σ[v ← n]〉 (read)

E(σ, e) = n

〈σ, write(c, e)〉 c put n−−−−−→ 〈σ〉

(write)

〈σ, p〉 → s

{〈σ, p〉} ] S ⇒ {s} ] S(step)

〈σ, p〉c put n−−−−−→ s 〈σ′, p′〉

c get n−−−−−→ s′

{〈σ, p〉 , 〈σ′, p′〉} ] S ⇒ {s, s′} ] S(sync)

Page 16: SHIM: A Deterministic Model for Heterogeneous Embedded …

Translating Tiny-SHIM to HardwareCFGNode

ControlFragment

DatapathFragment

Assignment v = e e

Decisione

e

Merge

CycleBoundary . . .

Page 17: SHIM: A Deterministic Model for Heterogeneous Embedded …

Translation Patterns

if ( e ) s1 else s2

es2 s1

while ( e ) s

e

s

write( c, e ) read( c, v )c = e v = c

Page 18: SHIM: A Deterministic Model for Heterogeneous Embedded …

Translation

a = 0

b = 0

1

r = 1

r

r = c

r

v = c

a += v

b += 1

d = 0

1

e = d

e

c = 1

c = e

e −= 1

c = 0

d −= 1

d = 0;while (1) {

e = d;while (e > 0) {

write(c, 1);write(c, e);e = e - 1;

}write(c, 0);d = d + 1;

}

a = 0;b = 0;while (1) {

r = 1;while (r) {

read(c, r);if (r != 0) {

read(c, v);a = a + v;

}}b = b + 1;

}

Page 19: SHIM: A Deterministic Model for Heterogeneous Embedded …

Summary

• SHIM: A delay-insensitive (deterministic) model ofcomputation that supports synchrony and asynchrony

• Tiny-SHIM: A little language that embodies the model

• Formal operational semantics of Tiny-SHIM

• A procedure for translating Tiny-SHIM into hardware

Page 20: SHIM: A Deterministic Model for Heterogeneous Embedded …

Ongoing Work

• Translation into software

• Relaxation of block-on-single-channel rule

• Complete hardware/software design language

• Translation optimization for hardware and software