Architecture modeling and mapping Metropolis approach Yoshi Watanabe Cadence Berkeley Labs for EE249 class in October 2002 Outline Metropolis meta model Meta model execution semantics Architecture what do we care about Mapping Platforms recursive paradigm of platform based design Metropolis Framework Methodologies Multi media wireless communication mechanical controls processors Meta model Library Meta model Library Infrastructure Models of computation Architecture platforms Metropolis meta model language modeling mechanisms Meta model compiler Tools Simulator QSS PIG STARS SPIN Metropolis meta model Concurrent specification with a formal execution semantics process port interface medium netlist constraint quantity Meta model netlist MyNetlist X P1 Y M X P2 Y Env2 Env1 process P port reader X thread generates a sequence of events for the process port writer Y communication only through ports thread while true z f X read Y write z no global variable no update on static fields outside yourself a port is specified with an interface type all and only the methods of the interface can be called through the port Meta model netlist MyNetlist X P1 Y M P2 X Env2 Env1 process P Y interface reader extends Port interface writer extends Port port reader X update int read update void write int i port writer Y eval int n eval int space thread while true z f X read Y write z medium M implements reader writer int storage int n space void write int z await space 0 this all this all n 1 space 0 storage z word read Meta model netlist MyNetlist Env1 Env3 X P1 Y X P3 Y M X P2 Y Env2 constraint B P1 M write B P3 M write U E P1 M write B P3 M write B P1 M write U E P3 M write process P port reader X port writer Y thread while true z f X read Y write z medium M implements reader writer int storage int n space void write int z await space 0 this all this all n 1 space 0 storage z word read Meta model execution semantics Processes take actions statements function calls function arguments top level expressions e g assignment conditional RHS of an assignment y z port f y z port f z port f port f i 10 An execution of a given netlist is a sequence of vectors of events event the beginning of an action e g B process port f the end of an action e g E process port f or null N the i th component of a vector is an event of the i th process An execution is feasible if it satisfies all coordination constraints and it is accepted by all action automata Execution semantics Action automaton one for each action of each process defines the set of sequences of events that can happen in executing the action a transition corresponds to an event it may update shared memory variables process and media member variables values of actions expressions it may have guards that depend on states of other action automata and memory variables each state has a self loop transition with the null N event all the automata have their alphabets in common transitions must be taken together in different automata if they correspond to the same event Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 c 0 B y x 1 N B x 1 B x 1 E x 1 E x 1 E x 1 Vx 1 x 1 E x 1 Vx 1 any c c E y x 1 y Vx 1 E y x 1 y any write y Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 c B x 1 B x 1 E x 1 E x 1 E x 1 Vx 1 x 1 E x 1 Vx 1 any 0 B y x 1 N B x 1 N N c c E y x 1 y Vx 1 E y x 1 y any write y Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 0 c B x 1 B x 1 E x 1 E x 1 c c E x 1 Vx 1 x 1 E x 1 Vx 1 any 1 0 0 B y x 1 N B x 1 N N E x 1 E y x 1 y Vx 1 E y x 1 y any write y Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 0 c B x 1 B x 1 E x 1 E x 1 c c E y x 1 y Vx 1 E y x 1 y any E x 1 Vx 1 x 1 E x 1 Vx 1 any 1 0 0 1 1 0 B y x 1 N B x 1 N N E x 1 E y x 1 write y Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 c 0 B y x 1 N B x 1 B x 1 E x 1 E x 1 E x 1 Vx 1 x 1 E x 1 Vx 1 any c c E y x 1 y Vx 1 E y x 1 y any write y Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 c B x 1 B x 1 E x 1 E x 1 E x 1 Vx 1 x 1 E x 1 Vx 1 any 0 B y x 1 N B x 1 N c c E y x 1 y Vx 1 E y x 1 y any write y Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 c B x 1 B x 1 E x 1 E x 1 E x 1 Vx 1 x 1 E x 1 Vx 1 any 0 B y x 1 N B x 1 N N c c E y x 1 y Vx 1 E y x 1 y any write y Action automata y x 1 y x 1 B y x 1 c c x 1 B x 1 c write x Vx 1 y 0 x 0 0 c B x 1 B x 1 E x 1 E x 1 c c E x 1 Vx 1 x 1 E x 1 Vx 1 any 5 0 0 B y x 1 N B x 1 N N …
View Full Document
Unlocking...