Title: How do I use all this?
1 2- How do I use all this, really?
3- How do I use all this, really?
- Detailed step-by-step description of a pipeline
verification example
4Outline
1 Informal Introduction 2 Formal Definitions
Reactive Systems Witnessed Refinement Proofs
Slicing Reactive Systems Decomposing
Refinement Proofs 3 Formal Example Three-Stage
Pipeline 4 Informal Example Dataflow Processor
Array
5isaRegFile
op
isaAlu
inp
src1
src2
dest
isaOut
out
stall
Specification ISA
6isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
load r1 1 xnor r2 r1 r1 store r2
r1 1 r2 0 out 0
Notes 1. Store instruction results in an
output 2. Memory hierarchy is not represented 3.
Why do we need stall ?
7regFile
out
out
alu
src1
P1
P2
src2
inp
op
dst
FETCH
EXECUTE
WRITE-BACK
8regFile
out
out
opr1
alu
src1
opr2
src2
res
inp
p1inp
op
p2op
p1op
dst
stall
p2dst
p1dst
stall
9Goal Establish Pipeline refines ISA
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
10need for stall in ISA
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
11witnessed refinement
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
Limitation State explosion
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
12Why not decompose proof?
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
13regFile
out
out
alu
src1
P1
P2
src2
inp
op
dst
FETCH
EXECUTE
WRITE-BACK
14regFile
out
out
P2
WRITE-BACK
15alu
P1
P2
EXECUTE
16regFile
src1
P1
src2
inp
op
dst
FETCH
17Why not decompose proof?
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
out
out
src1
src2
inp
op
dst
18Why not decompose proof?
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
regFile
out
out
src1
src2
inp
op
dst
19Why not decompose proof?
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
regFile
out
out
src1
res
src2
inp
p2op
op
p2dst
dst
stall
stall
20Decompositon does not work!
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
21isaRegFile
op
isaAlu
inp
src1
src2
dest
isaOut
out
stall
22isaRegFile
op
isaAlu
inp
src1
src2
dest
isaOut
out
stall
opr1
opr1
opr2
opr2
p2dst
res
res
23out proof
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
opr1
opr1
opr2
opr2
res
p2dst
res
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
24out proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
res
out
out
src1
src2
inp
op
dst
25out proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
res
regFile
out
out
src1
src2
inp
op
dst
26out proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
res
regFile
out
out
src1
res
src2
inp
p2op
op
p2dst
dst
stall
stall
27out proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
res
p2dst
regFile
out
out
src1
src2
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
28out proof
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
res
p2dst
regFile
out
out
src1
src2
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
29regFile
out
out
P2
WRITE-BACK
30res proof
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
opr1
opr1
opr2
opr2
res
p2dst
res
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
31res proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
opr1
opr1
opr2
opr2
alu
res
res
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
32res proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
opr1
opr1
opr2
opr2
res
p2dst
res
alu
res
res
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
33alu
P1
P2
EXECUTE
34opr1 proof
isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
opr1
opr1
opr2
opr2
res
p2dst
res
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
35opr1 proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
opr2
opr2
res
p2dst
res
regFile
opr1
alu
src1
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
36opr1 proof
isaRegFile
isaAlu
op
inp
src1
src2
dst
stall
opr1
opr1
opr2
opr2
res
p2dst
res
regFile
opr1
alu
src1
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
37regFile
src1
P1
src2
inp
op
dst
FETCH
38FETCH
39isaRegFile
isaAlu
op
inp
src1
isaOut
src2
dst
out
stall
opr1
opr1
opr2
opr2
res
p2dst
res
regFile
out
out
opr1
alu
src1
opr2
res
src2
p1inp
inp
p2op
p1op
op
p2dst
p1dst
dst
stall
stall
40 41- But.. is this really practical?
42- But.. is this really practical?
- Verification of VGI multiprocessor
43Outline
1 Informal Introduction 2 Formal Definitions
Reactive Systems Witnessed Refinement Proofs
Slicing Reactive Systems Decomposing
Refinement Proofs 3 Formal Example Three-Stage
Pipeline 4 Informal Example Dataflow Processor
Array
44VGI
- VGI Video-Graphics-Image
- Designed by Infopad group at Berkeley
- Purpose web-based image processing
- Designed using
- VHDL (control)
- Schematics (Data path)
45VGI Architecture
- 16 clusters with 6 processors in each - 4
compute, 1 memory, 1 I/O - 30K logic gates per processor
- 800 latches per processor
- Pipelined compute processors
- Low latency data transfer between processors -
complex control
46VGI Architecture
47FIFO buffer
ISA
ISA
ISA
ISA
ISA
pipeline
pipeline
Complex handshake
pipeline
pipeline
pipeline
48Verification
- Different time scales
- Implementation
- two-phase clock
- level-sensitive latches
- activity on both HI and LO phases of clk
- Specification
- no clk signal
49Sample Operator
S
?
I
?
I Sample I at ? Runs of I Runs of I
sampled at instances where ? holds
50ISA
ISA
ISA
ISA
ISA
?
pipeline
pipeline
pipeline
pipeline
pipeline
clk
51Difficulty - Verification
- Size of the VGI chip
- 800 latches in each compute processor
- 64 compute processors
- Need divide and conquer
52Step 1 Network of Processors to Single Processor
53ISA
ISA
ISA
ISA
ISA
?
pipeline
pipeline
pipeline
pipeline
pipeline
clk
54ISA
?
pipeline
clk
55ISA
ISA
ISA
ISA
ISA
?
pipeline
pipeline
pipeline
pipeline
pipeline
clk
56ISA
?
pipeline
clk
57ISA
ISA
ISA
ISA
ISA
?
pipeline
pipeline
pipeline
pipeline
pipeline
clk
58pipeline
?
ISA
?
ISA
pipeline
clk
clk
pipeline
ISA
?
?
ISA
pipeline
clk
clk
?
ISA
pipeline
clk
59Step 2 Single Processor
pipeline
ISA
?
clk
- Single processor still has 800 latches
- Need divide-and-conquer again
60Input from upstream processor
OP GEN
ALU Spec
FIFO buffer
ISA REGFILE
?
Input from upstream processor
P I P E
Comm Stage
ALU Gate Level
REGFILE
clk
61VGI Results
- All lemmas (exceptALU) checked by Mocha in a few
minutes - 3 bugs in communication control found and fixed
- Abstract definitions crucial - designer insight
needed