Title: Synchronization Detection for Multi-Process Hierarchical Synthesis
1Synchronization Detection for Multi-Process
Hierarchical Synthesis
- Oliver Bringmann
- Wolfgang Rosenstiel
- Dirk Reichardt
2Outline
- Resource sharing in hierarchical synthesis
- Communication model and synchronization points
- Synchronization point detection
- Synchronicity condition
- Initial synchronization points
- Loop-based synchronization points
- Conclusion
3Hierarchical Synthesis
System Specification
Specification
RT-Library
Schedule
RT-Structure
Bottom-up Synthesis
High-Level Synthesis
- Synthesis of hierarchical composed system
specifications - Providing of optimizations across different
hierarchical levels with respect to already
synthesized module structures - Automatic integration of optimized modules
- Resource sharing across process boundaries
- Multiple processes have to be considered during
synthesis
4Resource Sharing in Multi-Process Specifications
Prerequisite Common Clock and Reset
Clock
Reset
FSM
FSM
FSM
Goal Only one implementation of module
Main tasks 1. Which states synchronize/de-synchro
nize different processes? 2. In which clock steps
are the demanded submodules in use? 3. Can a
resource conflict occur when sharing
submodules? (2. 3. Þ Resource sharing in
hierarchical synthesis, ICCAD 97)
5Synchronization and De-Synchronization Points
6Communication Model
Communication model bases on message passing
7Synchronicity Condition (SC)
Synchronicity Check by Simulation
Process P2
Process P1
Analytically Synchronicity Check
- Communication Ci is a synchronization point Û
is reached before / simultaneously with
, for all paths, starting from previous
synchronization points
8Communication Dependency Graph
Communication Dependency Graph
Hierarchical Schedule
I
I
I
I
1
2
S1
1
S1
C1
C1
R1
1
R1
1
R2
2
R2
4
1
C2
C2
2
3
3
2
S2
3
S2
1
C3
C3
R3
S3
R3
S3
Process P2
Process P1
Process P2
Process P1
- Reduction to communication states , and
unbounded loops - Sequential timing are represented by edge labels
R
S
U
3
S2
S1
9Node Collapsing during Graph Construction
10Applicability of the Synchronicity Condition
I
I
1
2
S1
C1
R1
1
R2
3
4
1
12
C2
U1
2
1
u1
S2
1
C3
S3
R3
- Problem Synchronicity condition (SC) are only
applicable between SPs - Þ SC gives just a criteria for verifying SPs
- Þ SC can not directly be used to determine SPs
11Initial Synchronization Points (ISPs)
I
I
1
2
S1
C1
R1
1
R2
3
4
1
12
C2
U1
2
1
u1
S2
1
C3
S3
R3
- Applicability problem not existing for initial
synchronization points - Representation of the SCs bases on linear
inequalities - Transformation to linear equalities by use of
slack variables - Slack variables represent the wait states of the
receive nodes - Negative slack values indicate a violation of the
SCs
12Loop-based SP Calculation by Cyclic Implication
Synchronization Cycles
I
I
SC(C1 C2)
1
2
S1
C1
R1
SC(C2 C3)
SC(C3 C1)
1
R2
3
4
1
SC(C2 C3)
12
C2
U1
2
SC(C3 C2)
1
u1
S2
1
C3
S3
R3
SC(C1 C1)
- Assumption All communications are SPs
- SCs are applied to cyclic dependent
communications - Each cycle are considered independently
- If all SCs of a synchronization cycle are valid Þ
related Ci are LSPs
13Synchronization Point Detection (Outline)
I
I
1
2
S1
C1
x1, x2, x3 ³ 0
Þ x2 2
R1
1
Þ x3 12
R2
3
4
1
Þ x1 -1 Þ x1 0
12
C2
U1
2
1
u1
S2
1
C3
S3
R3
1. Choose greatest unconsidered communication
cycle
2. Evaluate synchronicity conditions for the
involved communications
14Conclusion
- Synchronization point detection for multi-process
specifications - Inter-process communication bases on the
message-passing model - Blocking and non-blocking communications are
allowed - No restrictions of structured control structures
are required - Especially unbounded data-dependent loops can be
handled - SPs can be used for multi-process resource
sharing - Further area of application is for instance, the
minimization of the communication overhead
15Related Work
- Filo, Ku, Coelho, De Micheli (IEEE TCAD, 1993)
- Minimization of the communication overhead
- Communication model restricted to basic blocks
- Amon, Hulgaard, Burns, Borriello (ICCD, 1993)
- Determination of timing bounds between different
consecutive communications - Conditional branches are not allowed
- Dey, Bommmu (ICCAD, 1997)
- Calculation of the worst-case execution time
inmulti-process specifications - Limited to specifications without unbounded loops