Title: Gaspard Methodology The Y Model approach
1Gaspard MethodologyThe Y Model approach
Arnaud CUCCURU, phd student ModEasy meeting,
Lille, February 2005
2Outline
- Y Model overview
- Common modeling paradigms
- Application modeling
- Hardware Architecture modeling
- Association modeling
3Y model overview (1/2)
4Y overview (2/2)
- Component Oriented Modeling
- Factorization mechanisms
Y
- Expression of data dependences
- Data parallelism expression
- Resource dimensionning
- Grid modeling
- Spatial and temporal mapping of an application
on an architecture
5Common modeling paradigms
- Component oriented modeling
- Components libraries
- Factorization mechanisms
6Common modeling paradigms Component Oriented
Modeling (1/2)
- Benefits
- Strong encapsulation (to ease reuse)
- Hierarchichal description (to handle complexity)
7Common modeling paradigms Component Oriented
Modeling (2/2)
ComponentB
InterfaceZ
InterfaceB
InterfaceB
InterfaceZ
ComponentC
InterfaceC
InterfaceC
Component Reusable design element
Connector Messages media
8Common modeling paradigms Components Libraries
- Predefined components ElementaryComponent
- No internal structure description
- Supposed to be implemented in a library
9Common modeling paradigms Factorization
mechanisms (1/4)
Metaclass ElementaryComponent
Multidimentional Cardinalities
- Definition of a repetition space
RepetitiveComponent - Use of multidimentional cardinalities on
structural elements (parts and ports) - Use of smart connectors to interconnect
factorized elements RepetitiveConnector
Mechanisms inspired by the Array Oriented Language
10Common modeling paradigms Factorization
mechanisms (2/4)
Component
Ports
Parts
Connectors
Potential factorization
11Common modeling paradigms Factorization
mechanisms (2/4)
Component
a3 ComponentA
2
a2 ComponentA
2
3
6
a1 ComponentA
2
Ports
Potential factorization
gt Cardinalities
12Common modeling paradigms Factorization
mechanisms (2/4)
Component
a ComponentA 3
2
3
6
Potential factorization
Parts
gt Cardinalities
13Common modeling paradigms Factorization
mechanisms (2/4)
Component
RepetitiveConnector
RepetitiveConnector
a ComponentA 3
2
3
6
Several informations (vectors) are associated to
Repetitive Connectors to describe connection
patterns between ports Origin, Paving, Fitting
Potential factorization
Connectors
gt RepetitiveConnector
14Common modeling paradigms Factorization
mechanisms (2/4)
RepetitiveComponent
Component
Factorization expressed In the context of a
repetitive component
RepetitiveConnector
RepetitiveConnector
a ComponentA 3
2
3
6
Note A repetitive component contains a
repetition of a single part
15Common modeling paradigms Factorization
mechanisms (3/4)
Component
a3 ComponentA
1
0
5
4
2
a2 ComponentA
1
1
3
0
2
0
1
a1 ComponentA
0
1
0
- Basic idea Handle ports with cardinalities as
arrays of ports - Dependences can be defined between patterns
inside ports in the boundaries, and ports of the
repeated parts
16Common modeling paradigms Factorization
mechanisms (3/4)
Component
Origin 0 Paving 2
Origin 0 Paving 1
a3 ComponentA
1
0
5
4
2
a2 ComponentA
1
1
3
0
2
0
1
a1 ComponentA
0
1
0
- Paving vector gt identifies origin of each
pattern inside the array of ports at the
boundary, from a given Origin vector - Paving limit is given by the cardinality
associated to the repeated part (in this case 3)
17Common modeling paradigms Factorization
mechanisms (3/4)
Component
Origin 0 Paving 2
Origin 0 Paving 1
a3 ComponentA
1
2
0
5
4
2
a2 ComponentA
1
1
3
1
0
2
0
1
a1 ComponentA
0
1
0
0
- An index vector is implicitely associated to
each repetition of the part (Coordinates in the
repetition space) - Origin of the pattern associated to each part
origin index x paving
18Common modeling paradigms Factorization
mechanisms (3/4)
Component
Origin 0 Paving 2
Origin 0 Paving 1
a3 ComponentA
1
0
5
Fitting 1
Fitting
4
2
a2 ComponentA
1
1
3
0
2
0
1
a1 ComponentA
0
1
0
- Fitting vector gt determines the ports that
belong to a given pattern inside of an array
(from the origin of the pattern given by the
Paving) - Fitting limit is given by the cardinality
associated to the ports of the repeated part
19Common modeling paradigms Factorization
mechanisms (3/4)
RepetitiveComponent
a ComponentA 3
RepetitiveConnector Origin0 Paving1 Fttin
g
RepetitiveConnector Origin0 Paving2 Fitti
ng1
2
3
6
Final compact representation
20Common modeling paradigms Factorization
mechanisms (4/4)
Metaclass ElementaryComponent
Metaclass RepetitiveComponent
- Expression of connections between repeated
instances SelfConnector - Connection between different points of the
repetition space
Metaclass RepetitiveConnector
21Common modeling paradigms Factorization
mechanisms (4/4)
Component
a3 ComponentA
prov
req
a2 ComponentA
prov
req
a1 ComponentA
prov
req
- Example Ring topology
- Each instance is able to communicate with its
neighbour
22Common modeling paradigms Factorization
mechanisms (4/4)
RepetitiveComponent
a ComponentA 3
prov
req
SelfConnector RepetitionSpaceDependance
1 Modulo true
- Factorization of parts in the context of a
RepetitiveComponent - Connection between points of the repetition
space Connection between different instances of
the repeated part gt SelfConnector
23Common modeling paradigms Factorization
mechanisms (4/4)
RepetitiveComponent
2 1 mod 3
a3 ComponentA
a2 ComponentA
a1 ComponentA
2
1
0
prov
req
prov
req
prov
req
1 1 mod 3
0 1 mod 3
- index of the neighbour index
RepititionSpaceDependence mod RepetitionSpace
size (i.e. Cardinality of the repeated part)
24Application modeling
- Data Parallelism expression
- Spatial and temporal dimensions unification
- Inter-repetition dependences
25Application modeling
- AppComponent Function
- Ports Data handled (mainly multidimentional
arrays) - Connectors Data dependencies
- gt Expression of applications via expression of
Data dependencies
26Application modelingData parallelism expression
(1/2)
array
array
pattern
pattern
- Example Computations on a 4x4 array to produce
a 2x2 - Input and output arrays can be decomposed into
patterns
27Application modeling Data parallelism
expression (1/2)
1,1
array
array
0,1
1,0
Origin 0,0 Paving 2,0,0,2 Fitting
1,0,0,1
Origin 0,0 Paving 1,0,0,1 Fitting
,
0,0
- Example Computations on a 4x4 array to produce
a 2x2 - Input and output arrays can be decomposed into
patterns - Each pattern can be computed independently
Potential Data Parallelism - gt Represented with the common factorization
mechanisms
28Application modelingData parallelism expression
(2/2)
array
array
pattern
pattern
29Application modelingData parallelism expression
(2/2)
RepetitiveComponent
array
array
pattern
pattern
30Application modelingData parallelism expression
(2/2)
RepetitiveComponent
array
array
pattern
pattern
p Part
31Application modelingData parallelism expression
(2/2)
RepetitiveComponent
p Part
4,4
2,2
2,2
32Application modelingData parallelism expression
(2/2)
RepetitiveComponent
RepetitiveConnector
RepetitiveConnector
p Part 2,2
4,4
2,2
2,2
33Application modeling Spatial and Temporal
dimensions unification (1/2)
Infinite vector
Infinite vector
- Example Signal processing application Infinite
stream of data consumed and produced - Idea Infinite stream Infinite dimension of an
Array - Spatial and temporal dimension in an array
- gt Modeling of time and space dependences with
the same formalism
34Application modelingSpatial and Temporal
dimensions unification (2/2)
RepetitiveComponent
RepetitiveConnector
RepetitiveConnector
p Part
Origin 0 Paving 1 Fitting
Origin 0 Paving 1 Fitting
35Application modeling Inter repetition
dependences (1/2)
- Inter repetition dependences
36Application modelingInter repetition
dependences (2/2)
RepetitiveComponent
RepetitiveConnector
RepetitiveConnector
p Part 3
Origin 0 Paving 1 Fitting
Origin 0 Paving 1 Fitting
3
1
1
3
SelfConnector RepetitionSpaceDependance
1 Modulo false
37Hardware Architecture modeling
- Resources classification
- Complex connection patterns expression
- Grid topologies modeling
38Hardware Architecture modeling
- HwComponent Hardware resource
39Hardware Architecture modeling Resources
classification
- Passive to support data. Example RAM, ROM, SAM
- Active able to read or write in passive
resources, with or without modifications, and to
sequence operations. Example CPU, DMA. - Interconnect interconnection between passive and
active elements, or active and active. Example
Bus, static/dynamic interconnection networks,
40Hardware Architecture modeling Complex
connection patterns (1/2)
CompoundHwComponent Omega8x8
41Hardware Architecture modeling Complex
connection patterns (2/2)
HwRepetitiveComponent OmegaStage
Crossbar2x2 2,2
RepetitiveConnector
RepetitiveConnector
8
2
2
8
origin 0 paving 2,2 fitting 1
origin 0 paving 4,1 fitting 2
42Hardware Architecture modeling Grid topologies
modeling (1/2)
- Example 4x4 cyclic grid of communicating PEs
43Hardware Architecture modeling Grid topologies
modeling (2/2)
HwRepetitiveComponent CyclicGrid4x4
SelfConnector RepetitionSpaceDependance
1,0 Modulo true
pe PE 4,4
SelfConnector RepetitionSpaceDependance
1,0 Modulo true
- Example 4x4 cyclic grid of communicating PEs
44Association modeling
45Association modeling
- Association distribution scheduling
- distribution spatial mapping
- code on active (and passive)
- data on passive
- communications on paths
- scheduling temporal mapping
- for tasks
- memory allocation