use trace algebra to formalize the yapi model ee290n spring2002 alessandro pinto mentors: roberto...
TRANSCRIPT
![Page 1: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/1.jpg)
Use trace algebra to formalize the YAPI modelUse trace algebra to formalize the YAPI model
EE290N Spring2002
Alessandro Pinto
Mentors: Roberto Passerone
Jerry Burch
![Page 2: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/2.jpg)
OutlineOutline
References
Introduction to YAPI
Implication of select
Introduction to Trace Algebra
Traces to model YAPI
Buffer model
Conservative Approximation
Example
Conclusion
![Page 3: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/3.jpg)
ReferencesReferences
K.A. Vissers et. al. “YAPI: Application Modeling for Signal Processing System”, DAC00
J. Burch, R. Passerone, ASV “Overcoming Heterophobia: Modeling Concurrency in Heterogeneous Systems”
J. Burch, R. Passerone, ASV “Modeling Techniques in Design-by-Refinement Methodologies”
E.A. Lee, T.M. Parks “Dataflow Process Networks”
G. Kahn, “The Semantics of a Simple Language for Parallel Programming”
G. Kahn, D.B. MacQueen, “Corutines and Networks of Parallel Processes”
![Page 4: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/4.jpg)
The YAPI Model 1The YAPI Model 1
KPN (blocking read, non-blocking write)
Non-determinism
i1
i2
oread(i1,i1_int,1) ;read(i2,i2_int,1);o_int=in1_int+in2_int ;write(o,o_int,1) ;
),...,,,( 2211 kk npnpnpselects
![Page 5: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/5.jpg)
The YAPI Model 2The YAPI Model 2
Selection can be done on input and output
Read,Write on unbounded FIFOs
Read,Write on bounded FIFOs
YAPI
TTL
![Page 6: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/6.jpg)
Implication of selectImplication of select
continuitymonotonicity determinacy
i1=[1], i2=[]
F(i1,i2) = [1]
i1=[1,1], i2=[2]
F(i1,i2) = [2,1]o
if (select(i1,1,i2,1) == 1) read(i1,o_int,1);else read(i2,o_int,1);write(o,o_int,1);
i1
i2
read(i,i_int,1);if (select(o1,1,o2,1) == 1) write(o1,i_int,1);else write(o2,i1_int,1);
i
o1
o2
i=[1]
F(i) = ([1],[])
i=[1,3]
F(i) = ([1],[3]), ([3],[1]), ([1,3],[]) …
![Page 7: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/7.jpg)
Trace Algebra 1Trace Algebra 1
Concurrency Algebra• Set of agents• Parallel composition of agents• Projection of agents• Renaming of agents
Trace structure algebra
A
Model of individual behaviors
Model of agents
Trace algebra
C
Trace Algebra• Set of traces• Projection of traces• Renaming of traces
Source: R. Passerone
I1=[1,3,4,-1]
I2=[0,3,5,2]
O=[1,6,9,1]
i1 oi2 +
![Page 8: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/8.jpg)
Trace Algebra 2Trace Algebra 2
Alphabet
Set of traces over alphabet A
Renaming y = rename(r) (x) where x is a trace and r is a renaming function
Projection y = proj(B)(x) where x is a trace and BA
Trace structure T=(,P) where is the signature and P B(A)
A set of axioms must be verified !!!!!!!
WA)(AB
![Page 9: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/9.jpg)
Trace Algebra 3Trace Algebra 3
Trace structure algebra
A’
Trace structure algebra
A
Trace algebra
C
Trace algebra
C’
Homomorphismh
u linv
“Abstract” Domain
“Detailed” Domain
Let Tspec and Timpl be trace structures in A. Then
if u( Timpl ) l( Tspec ) then Timpl Tspec
Derive
Source: R. Passerone
![Page 10: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/10.jpg)
Implication of select: Trace Algebra ViewImplication of select: Trace Algebra View Monotonicity is captured by projection
proj(I)(x) proj(I)(y) ⊑ proj(O)(x) proj(O)(y)⊑
For the previous example two traces belongs to the same process:
]1[
][2
]1[1
o
i
i
]1,2[
]2[2
]1,1[1
o
i
i
![Page 11: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/11.jpg)
First step: Set of TracesFirst step: Set of Traces
Which set of traces should we choose?
Streams
Synchronous
DE
VAAB )(
)()( VANAB
)()( VAAB
![Page 12: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/12.jpg)
Streams 1Streams 1
No timing information
KPN can be expressed on the same set of traces Continuity is a constraint on the trace structures
In this sense YAPI processes can form more trace structures then KPN
23,10
0,1,6,4,32
3,1,5,4,11
o
i
i
KPN
YAPI
![Page 13: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/13.jpg)
Streams 2Streams 2
Operation on traces Renaming
Projection
Operation on trace structures
rfxrrename
VAfx
))((
:
BfxBproj
VAfx
|))((
:
)''))(''('))('(|{''||' PxAprojPxAprojxTTT
23,10
0,1,6,4,32
3,1,5,4,11
o
i
i
23,10
0,1,6,4,34
3,1,5,4,13
aux
i
i
23,10
0,1,6,4,32
3,1,5,4,11
o
i
i
0,1,6,4,32
3,1,5,4,11
i
i
![Page 14: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/14.jpg)
A more detailed domain 1A more detailed domain 1
We want to capture two important things
Relative arrival time
Bounded FIFOs
Synchronous Domain
)()( VAAB V
![Page 15: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/15.jpg)
A more detailed domain 2A more detailed domain 2
Renaming
Projection
rfxrrename
VAfx
))((
:
BfxBproj
VAfx
|))((
:
o
if (select(i1,1,i2,1,p,1)==3)read(p,op,1);
read(i1,i1_int,1);read(i2,i2_int,1);o_int=op(i1_int,i2_int);write(o,o_int,1);
i1
i2
p
3,2,11,8,4
,,,,
0,1,6,4,32
3,1,5,4,11
o
subsump
i
i
3,2,1,8,,4
,,,,,
0,,1,6,4,32
3,1,5,4,,11
o
subsump
i
i
Two possible traces
![Page 16: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/16.jpg)
BuffersBuffers
Buffers are modeled as processes
The strict version of a sequence a is
We indicate with ak the sequence up to instant k
Definition of a buffer Trace structure TB=((I,O),P)
}][|][{ iaiaas
sssk
sk OIthbufferlengOlenIlenkxP )()(0,0|
![Page 17: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/17.jpg)
Buffer ConstraintBuffer Constraint
3,2,11,8,4
,,,,
0,1,6,4,32
3,1,5,4,11
o
subsump
i
i
3,2,1,8,,,,4
,,,,,,,
0,,1,6,4,,,32
3,1,5,4,,,,11
o
subsump
i
i
0,1,6,4,32
3,1,5,4,11
o
o
o
i1
i2
p
o1
o2
Gen Buf1
Buf2
AddSub
Two possible traces of AddSub
T=Gen||Buf1||Buf2||AddSub
Bufferlength =2
Bufferlength =1
3,2,11,8,4
,,,,
o
subsump
3,2,1,8,,,,4
,,,,,,,
o
subsump
P
P
3,2,11,8,4
,,,,
o
subsump
3,2,1,8,,,,4
,,,,,,,
o
subsump
P
P
![Page 18: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/18.jpg)
Conservative Approximation 1Conservative Approximation 1
Synch
Nondet KPN
Approximation Homomorphism
h(x)
VAAB )(
)()( VAAB
![Page 19: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/19.jpg)
Conservative Approximation 2Conservative Approximation 2
h(P)
P
h is in general many to one so this is an upper bound
))(,( Phu
Detailed Domain
Abstract Domain
![Page 20: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/20.jpg)
Conservative Approximation 2Conservative Approximation 2
h(P)
P
B(A) - P
h(B(A) – P)
h(P) - h(B(A) – P)
)))(()(,( PABhPhl
Detailed Domain
Abstract Domain
![Page 21: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/21.jpg)
From Synch to ND-KPN 1From Synch to ND-KPN 1
Definition of the homomorphism
sVAxh )(
3,2,1,8,,4
,,,,,
0,,1,6,4,32
3,1,5,4,,11
o
subsump
i
i
3,2,1,8,4
,
0,1,6,4,32
3,1,5,4,11
o
subsump
i
ih(x)
![Page 22: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/22.jpg)
From Synch to ND-KPN 2From Synch to ND-KPN 2
Let’s consider a process: If p is true add the inputs, if p is false subtract them
lu
]3,4[
],[
]5,3[2
]2,1[1
o
falsetruep
i
i
]3,4,[
],,[
]5,3,[2
]2,,1[1
o
falsetruep
i
i
]3,4,,[
],,,,[
]5,3,,[2
]2,1,,[1
o
falsetruep
i
i
h(x) h(x)
P ))(( PAB
![Page 23: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/23.jpg)
Applications of the ApproximationApplications of the Approximation
Verification Problem
Design Problem
TTTAprojTTTAproj luu )||)(()())(||)()(( 2121
)())(||)()(()||)(( 2121 TTTAprojTTTAproj invinvinv
![Page 24: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/24.jpg)
Example 1Example 1
Norm
n
iixxNorm
1
)(
2
n
iix
1
=(I,O) =(I,O) =(I,O)
Bufferlength=n
![Page 25: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/25.jpg)
Example 1Example 1
2
n
iix
1
=(I,O) =(I,O) =(I,O)
Bufferlength=n
otherwiseIifkIkOVOIfP ,][][|)),(:( 2
![Page 26: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/26.jpg)
Example 1Example 1
2
n
iix
1
=(I,O) =(I,O) =(I,O)
Bufferlength=n
otherwiseIifkIkOVOIfP ,][][|)),(:( 2
otherwiseIifkIkOVOIfP ,][][|)),(:(
![Page 27: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/27.jpg)
Example 1Example 1
2
n
iix
1
=(I,O) =(I,O) =(I,O)
Bufferlength=n
otherwiseIifkIkOVOIfP ,][][|)),(:( 2
otherwiseIifkIkOVOIfP ,][][|)),(:(
otherwisekOkInkOnkkIVOIfPn
j
][,][][][|)),(:(1
![Page 28: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/28.jpg)
Example 2Example 2
One possible execution
2
n
iix
1
]64,,16,,9,9,1[
]8,,4,,3,3,1[
o
i
]99,,,,,,,,,,,[
]64,16,9,9,1,,,,,,,[
o
i
]99,,,,,,,,,,,[
]99,,,,,,,,,,,[
o
i
Bufferlength=n
![Page 29: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/29.jpg)
Example 3Example 3
2
n
iix
1
h(x)
2][][|),(: kIkOVOIfP
][][|),(: kIkOVOIfP
1
0
]*[][|),(:n
j
jnkIkOVOIfP
id
![Page 30: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/30.jpg)
Example 4Example 4
One possible execution
2
n
iix
1
]64,16,9,9,1[
]8,4,3,3,1[
o
i
]99[
]64,16,9,9,1[
o
i
]99[
]99[
o
i
![Page 31: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/31.jpg)
Example 4Example 4
Design problem
2
n
iix
1
2
n
iix
1
![Page 32: Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch](https://reader035.vdocument.in/reader035/viewer/2022070415/56649c755503460f94929973/html5/thumbnails/32.jpg)
ConclusionConclusion
The YAPI model was a good motivation for this project
Trace algebra has been applied to describe the denotational semantics of the model at different level of abstraction
A Conservative approximation between Synchronous model and ND-KPN allows abstraction from one model to another for verification and design