Ratchet Intermittent Computation without Hardware Support or
Programmer Intervention
1 12/5/16 jvdw@umich.edu
Joel Van Der Woude Sandia Ma>hew Hicks MIT/LL University of Michigan
Ratchet Intermittent Computation without Hardware Support or - - PowerPoint PPT Presentation
Ratchet Intermittent Computation without Hardware Support or Programmer Intervention University of Michigan Ma>hew Hicks Joel Van Der Woude MIT/LL Sandia 12/5/16 jvdw@umich.edu 1 12/5/16 jvdw@umich.edu 2 Batteries are bulky and
Programmer Intervention
1 12/5/16 jvdw@umich.edu
Joel Van Der Woude Sandia Ma>hew Hicks MIT/LL University of Michigan
2 12/5/16 jvdw@umich.edu
3 12/5/16 jvdw@umich.edu
4 12/5/16 jvdw@umich.edu
12/5/16 jvdw@umich.edu 5
12/5/16 jvdw@umich.edu 6
12/5/16 7 jvdw@umich.edu
Time Progress
Initial Correct At Fail Error a x y y 42 b y 42 42 42
mem[a] = mem[b] mem[b] = 42 … return a
8 12/5/16 jvdw@umich.edu
Initial Correct At Fail a x y y b y 42 42 Initial Correct a x y b y 42 Initial mem[a] x mem[b] y
12/5/16 9 jvdw@umich.edu
Initial Correct At Fail Error a x y y y b y 42 42 42
mem[a] = mem[b] mem[b] = 42 … return a
10 12/5/16 jvdw@umich.edu
Initial Correct At Fail a x y y b y 42 42 Initial Correct a x y b y 42 Initial a x b y
11 12/5/16 jvdw@umich.edu Ratchet Ratchet .o file .c file Frontend Instruction Selection & Register Allocation Finalize Idempotence Analysis Insert Checkpoints Fix-up Combine Redundant Checkpoints Emit Minimum Checkpoint IR IR ASM ASM Function Entry
12 12/5/16 jvdw@umich.edu Ratchet Ratchet .o file .c file Frontend Instruction Selection & Register Allocation Finalize Idempotence Analysis Insert Checkpoints Fix-up Combine Redundant Checkpoints Emit Minimum Checkpoint IR IR ASM ASM Function Entry
mem[a] = mem[b] mem[b] = 42 … return a
13 12/5/16 jvdw@umich.edu
14 12/5/16 jvdw@umich.edu Ratchet Ratchet .o file .c file Frontend Instruction Selection & Register Allocation Finalize Idempotence Analysis Insert Checkpoints Fix-up Combine Redundant Checkpoints Emit Minimum Checkpoint IR IR ASM ASM Function Entry
15 mem[c] = 42 r0 = mem[a] r1 = mem[b] r3 = φ(r0,r2) mem[a] = r3+1 mem[c] = r1 mem[b] = r1+1 r2 = mem[c] r2 = mem[c] checkpoint() 12/5/16 jvdw@umich.edu checkpoint() mem[b] = r1+1
16 12/5/16 jvdw@umich.edu Ratchet Ratchet .o file .c file Frontend Instruction Selection & Register Allocation Finalize Idempotence Analysis Insert Checkpoints Fix-up Combine Redundant Checkpoints Emit Minimum Checkpoint IR IR ASM ASM Function Entry
17
… return addr r0-r3 locals
SP
new addr new regs
12/5/16 jvdw@umich.edu
18 12/5/16 jvdw@umich.edu Ratchet Ratchet .o file .c file Frontend Instruction Selection & Register Allocation Finalize Idempotence Analysis Insert Checkpoints Fix-up Combine Redundant Checkpoints Emit Minimum Checkpoint IR IR ASM ASM Function Entry
12/5/16 19
r0 = mem[a] r1 = mem[b] r3 = r0+r1 r4 = r3+1 checkpoint() R5 = r3+r4 mem[a] = r3 checkpoint() mem[b] = r5 r0 = mem[a] r1 = mem[b] r3 = r0+r1 r4 = r3+1 checkpoint() r5 = r3+r4 mem[a] = r3 mem[b] = r5
jvdw@umich.edu
20 12/5/16 jvdw@umich.edu Ratchet Ratchet .o file .c file Frontend Instruction Selection & Register Allocation Finalize Idempotence Analysis Insert Checkpoints Fix-up Combine Redundant Checkpoints Emit Minimum Checkpoint IR IR ASM ASM Function Entry
12/5/16 jvdw@umich.edu 21
– https://github.com/impedimentToProgress/thumbulator
– https://github.com/impedimentToProgress/MiBench2
22 12/5/16 jvdw@umich.edu
23 12/5/16 jvdw@umich.edu
12/5/16 24 jvdw@umich.edu
25 12/5/16 jvdw@umich.edu
12/5/16 26 jvdw@umich.edu
12/5/16 jvdw@umich.edu 27
12/5/16 jvdw@umich.edu 28