Potential Slack: - PowerPoint PPT Presentation

1 / 43
About This Presentation
Title:

Potential Slack:

Description:

The logic module with smaller area/power has ... the area/power of logic modules on non-critical paths will ... a node v of V denotes a module, and there ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 44
Provided by: csHai
Category:

less

Transcript and Presenter's Notes

Title: Potential Slack:


1
Potential Slack An Effective Metric of
Combinational Circuit Performance
2
Overview
The Design process
implement,
Specify,
Check,
produce
Design
-Volume Mfg.
Definition
1st Silicon
While designing a circuit helps with
applications of gate sizing and placement.
3
Introduction
  • The logic module with smaller area/power has
    longer Delay.
  • Smaller size of a module ? less power ?
    additional delay

4
Non Critical Paths
The goal reducing the area and/or power with
the minimum effect on the timing performance.
Reducing the area/power of logic modules on
non-critical paths will not necessarily increase
circuit delay.
5
Slack
Slack an upper bound of delay increase
without violating timing constraints.
6
  • Allocating Potential Slack
  • There are several ways to allocate effective
    slack of a circuit. The maximum effective slack
    is the potential slack.
  • We will present two algorithms
  • ZSA Zero Slack Algorithm
  • MISA Maximal Independent Set Based
    Algorithm.

7
Preliminaries
8
Circuit Presentation
  • Combinational circuit consists a set of modules
    and nets
  • Modules M (m1, m2,.,mn)
  • Nets N (n1, n2,., nl)
  • We associate a circuit with a directed-acyclic
    graph
  • G(V, E), where a node v of V denotes a
    module, and there
  • is an edge e of E from node vi to vj if vj is
    an immediate
  • fanout of vi.

9
  • Delay Distribution
  • The delay distribution vector D(V)
  • Each node v has a delay d(v) -
  • d(v) delay of node v itself
    interconnection delay.
  • such as
  • D(V) d(v1), d(v2), . , d(vn)
  • Interconnection delay the delay from u to v (u
    is fanin of v)

10
Arrival and required time For each node v we
compute recursively
Assumptions 1. The arrival times for all
primary inputs are zero. 2. The required
times for all primary outputs are the
given timing constraints.
11
  • Slack Distribution
  • The slack distribution vector S(V)
  • Each node v has a slack s(v) r(v)
    a(v) ,
  • S(V) s(v1), s(v2), . , s(vn)
  • The total slack of a circuit is S(V)
    ?s(vi)
  • The circuit is said to be safe ? S(V) ? 0.
  • if s(vi) ? 0, then r(v) ? a(v), so the
    circuit is safe.

12
  • Slack Assignment
  • The slack assignment vector ?D(V)
  • ?D(V) ?d(v1), ?d(v2),.., ?d(vn) ? 0.
  • ?D(V) updates the D(V) to D?(V)
  • D?(V) D(V) ?D(V).
  • ?D(V) updates the slack distribution from S(V)
    to S?(V).
  • If S?(V) ? 0 then ?D(V) is said to be effective.
  • The effective slack of the assignment is
    ?D(V)??d(vi).

13
  • Potential Slack
  • Potential slack is
  • The maximum effective slack for all possible
    slack
  • assignment.
  • Optimal slack assignment ?mD(V) is the slack
    assignment
  • which results in potential slack.
  • Potential slack ?mD(V).
  • If a slack assignment ?mD(V) leads to
    potential slack,
  • then the resultant slack distribution S?m(V)
    0.

14
Example D(V) 1 1 1 1 S(V) 5 5 5 5 S(V)
5 5 5 5 20 Option 1 ?1D(V) 1 2 1
1 D?1(V) D(V) ?mD(V) 2 3 2 2 S?1(V) 2
1 1 1 S?1(V) 5.
a(v)/r(v)/s(v)
2/7/5
v1
1
3/8/5
4/9/5
1
_/10/_
1
v3
v4
1
1
1/_/_
2/7/5
1
1
v2
1
3/5/2
2
v1
6/7/1
8/9/1
2
_/10/_
2
v3
v4
2
1
4/5/1
1/_/_
2
3
v2
3
15
Example D(V) 1 1 1 1 S(V) 5 5 5 5 S(V)
5 5 5 5 20 Option 2 ?mD(V) 5 5 0
0 D?m(V) D(V) ?mD(V) 6 6 1 1 S?m(V) 0
0 0 0 S?m(V) 0. Conclusion The potential
slack ?mD(V) 10.
a(v)/r(v)/s(v)
2/7/5
v1
1
3/8/5
4/9/5
1
_/10/_
1
v3
v4
1
1
1/_/_
2/7/5
1
1
v2
1
7/7/0
6
v1
8/8/0
9/9/0
1
_/10/_
6
v3
v4
1
1
1/_/_
7/7/0
1
6
v2
6
16
ZSA
17
  • Zero Slack Algorithm
  • ZSA generates effective slack assignment, which
    means how much delay can we add to each module
    in a given circuit.
  • At each iteration
  • Identify a path on which all nodes have minimum
    slack Smin
  • Assign each node an additional delay ?d Smin
    /Nmin,
  • Nmin number of nodes on the path.
  • After adding the additional delay ?d to the
    nodes, their slack become zero.

18
ZSA Example
_/10/_
6/9/3
7/12/5
_/13/_
1
6
5/8/3
1
1
3
1
2
1
4/_/_
6/9/3
1
7/12/5
1
_/13/_
4
7
1
1
1/_/_
1
1
2/7/5
6/9/3
10/10/0
1
1
_/11/_
5
8
1
1
D(V) 1
1
_/10/_
9/_/_
Chosen path 2, 3
19
_/10/_
9/9/0
8.5/12/3.5
_/13/_
1
6
6.5/6.5/0
2.5
1
3
1
2
2.5
4/_/_
7.5/9/1.5
2.5
8.5/12/3.5
1
_/13/_
4
7
1
1
1/_/_
1
1
2/4/2
7.5/9/1.5
10/10/0
1
1
_/11/_
5
8
1
1
?D2,3(V) 0, 1.5, 1.5, 0, 0, 0, 0, 0
1
_/10/_
D?(V) 1, 2.5, 2.5, 1, 1, 1, 1, 1
9/_/_
Next path 4
20
_/10/_
9/9/0
10/12/2
_/13/_
1
6
6.5/6.5/0
2.5
1
3
1
2
2.5
4/_/_
9/9/0
2.5
10/12/2
_/13/_
2.5
4
7
1
1
1/_/_
1
1
2/4/2
7.5/9/1.5
10/10/0
1
1
_/11/_
5
8
1
?D4(V) 0, 0, 0, 1.5, 0, 0, 0, 0
1
1
_/10/_
D?(V) 1, 2.5, 2.5, 2.5, 1, 1, 1, 1
9/_/_
Next chosen paths 5, 1, 6, 7
21
_/10/_
9/9/0
12/12/0
_/13/_
1
6
6.5/6.5/0
2.5
1
3
3
2
2.5
4/_/_
2.5
9/9/0
12/12/0
2.5
_/13/_
4
7
3
1
1/_/_
1
3
4/4/0
9/9/0
10/10/0
2.5
1
_/11/_
5
8
1
1
1
?D1,5,6,7(V) 2, 0, 0, 0, 1.5, 2, 2, 0
_/10/_
9/_/_
D?(V) 3, 2.5, 2.5, 2.5, 2.5, 3, 3, 1
?ZSAD(V) 2, 1.5, 1.5, 1.5, 1.5, 2, 2, 0,
?ZSAD(V) 13.5
22
MISA Maximal Independent Set Based Algorithm
23
Slack Sensitive If d(v) is increased the slack
of fanins/fanouts of node v will be effected in
two cases
1. r(vin) gt r(v) d(v) - ?d(v)
2. a(vout) lt a(v) - d(vout) - ?d(v)
Slack sensitive node vin/ vout is slack
sensitive to node v if (1) or (2) holds true.
24
  • The slack for vin was determined by valts
    slack (before additional delay to v)

_/8/_
v
_/5/_
1
vin
1
?d(v)3
valt
_/6/_
r(vin)min6-1, 8-1 5
r(v)-d(v)
r(valt)-d(valt)
r(vin) gt r(v) d(v) - ?d(v) ? 5 gt 8 1 3
vin was updated by v ? vin is now slack
sensitive to v.
25
  • The slack for vin was determined by vs slack
    (before additional delay to v)

_/8/_
v
_/4/_
4
vin
1
?d(v)3
valt
_/6/_
r(vin)min6-1, 8-4 4
r(v)-d(v)
r(valt)-d(valt)
vin is still determined by v ? vin is slack
sensitive to v.
26
  • Delay Benefit vs. Slack Penalty
  • ?d(v) can be viewed as a delay benefit or (in
    contrast) as a slack penalty
  • delay benefit - contributes to the effective
    slack of the circuit.
  • Slack penalty the slack reduction of node vs
    fanins/fanouts, which prevents future slack
    reductions from them.

A good slack assignment should maximize the
benefit and minimize the penalty.
27
How can slack penalty be reduced ?
  • By choosing a node v with larger r(v) and/or
    smaller a(v).
  • Large r(v) means that the number of its fanins
    which are
  • slack sensitive to it is minimized.
  • Smaller a(v) means that the number of its
    fanouts which
  • are slack sensitive to it is minimized.

This leads us to first choose nodes with maximum
slack.
28
Building the Graphs Graph Gm will contain all
the nodes with maximum slack, because they have
the smallest effect on the other nodes. After
building Graph Gt we can allocate groups of nodes
which are slack sensitive to each other. We take
one node from each group of Gt, So all of the
chosen nodes are not slack sensitive to each
other, and this group is the maximal from all of
the possible groups.
29
  • Building the Graphs
  • A slack equalization Graph Gm(Vm, Em)
  • Vm v v V and s(v) Sm
  • select nodes with maximum slack Sm
  • Em (u, v) (u, v) E and u, v are slack
    sensitive

?
?
  • A transitive slack equalization Graph Gt(Vm,
    Etm)
  • Etm(u, v)theres a directed path from u to
    v in Gm

MIS of Gt - Maximal Independent Set of Gt a
maximal set of nodes Vmis ? Vm. For any vi, vj
Vmis , vi and vj are not slack sensitive to each
other.
?
30
  • Choosing d
  • Sm the maximal slack in G.
  • Sm-1 the second largest slack in G.
  • d ?d(v) Sm - Sm-1
  • if we choose ?d(v) Sm - Sm-1 then no nodes
    with slack less then Sm are slack sensitive to v,
    and the slack penalty is minimized.

31
MIS-based Slack Assignment Algorithm Input
graph G (V, E) and given timing
constraints Output slack assignment ?D(V)
Begin compute slack for each node v of V and
initialize ?D(V)0 find sm and sm-1 in G and
let d sm sm-1 while (d gt 0) Construct a
transitive slack-equalization graph Gt Find
maximal independent set MIS of Gt Assign an
additional delay d to each node in MIS, i.e.,
?d(u) ? ?d(u) d, ?u of MIS Update the node
slack and d in G End
32
MISAExample
6/9/3
7/12/5
_/13/_
1
6
5/8/3
3
1
1
2
1
4/_/_
6/9/3
1
7/12/5
_/13/_
1
4
1
7
1
1/_/_
1
1
2/7/5
6/9/3
10/10/0
_/11/_
1
1
1
5
8
9/_/_
D(V) 1 d sm sm-1 5 3 2
1
33
Gm Gt
1
6
7
7/12/5
7/12/5
2/7/5
MIS 1, 6, 7 ?D(V) 2, 0, 0, 0, 0, 2, 2,
0 D?(V) 3, 1, 1, 1, 1, 3, 3, 1
34
6/9/3
9/12/3
_/13/_
1
6
5/8/3
3
1
3
2
1
4/_/_
6/9/3
1
9/12/3
1
_/13/_
4
1
7
3
1/_/_
1
3
4/7/3
6/9/3
10/10/0
1
_/11/_
1
1
5
8
?D(V) 2, 0, 0, 0, 0, 2, 2, 0 D?(V) 3, 1,
1, 1, 1, 3, 3, 1 d 3 0 3 Gm G 8
9/_/_
1
35
Gt
6
3
2
4
7
1
5
The transitive dependent sets 1, 2, 3, 1,
2, 5, 1, 2, 4, 6, 1, 2, 4, 7 MIS 3, 5, 6,
7
36
9/9/0
12/12/0
_/13/_
1
6
5/5/0
3
4
6
2
1
4/_/_
6/6/0
1
12/12/0
1
_/13/_
4
1
7
6
1/_/_
1
3
4/4/0
9/9/0
10/10/0
_/11/_
4
1
1
5
8
?D(V) 0, 0, 3, 0, 3, 3, 3, 0 D?(V) 3, 1,
4, 1, 4, 6, 6, 1
9/_/_
1
?MISAD(V) 2, 0, 3, 0, 3, 5, 5,
0 ?MISAD(V)18 (33 improvement compared to
?ZSAD(V) 13.5)
37
ZSA vs. MISA
f number of fanouts of node v. s all nodes
have the same slack s. ZSA effective slack
?ZSAD(V) s (f-1)s/2 MISA effective slack
?MISAD(V) fs ?MISAD(V) - ?ZSAD(V)) /
?ZSAD(V) (f-1)/(f1) This means that the
effective slack of MISA is almost twice as the
effective slack of ZSA.
v


38
Theorems (without proof)
Theorem 1 If an optimal slack assignment is
defined to be a slack assignment which results in
potential slack (i.e. maximum effective slack),
then MISA produces an optimal slack assignment.
Theorem 2 The time complexity of MISA is
O(Kn3), where n and K are the number of nodes
and the number of different slacks in a given
graph, respectively.
39
Uses of Potential Slack
Application to gate sizing Gate sizing problem
is to find a set of gates/nodes such that their
physical sizes can be reduced for area/power
minimization. High potential slack promises
significant area/power reduction during gate
sizing.
40
Uses of Potential Slack
Application to placement Potential slack can
give the basic idea about the freedom/
flexibility of all the signal nets of a circuit
during placement. High potential slack allows a
large number of signal nets to be routed easily
without violating timing performance.
41
Experiments
42
Conclusions
  • This article has introduced the notion of
    potential slack for
  • measuring potential area/power reduction and
    flexibility of
  • physical design.
  • Gate sizing application - in terms of area
    optimization,
  • potential slack provides 100 correct
    prediction, compared
  • to 20 - 40 chance of obtaining correct
    prediction by
  • other metrics.
  • Placement application - in terms of timing
    performance,
  • potential slack can be used as an important
    metric.
  • Further work is under way, including
    applications to other
  • optimization problems, fast estimation of
    potential slack,
  • and logic synthesis for maximum potential
    slack.

43
  • THE END
Write a Comment
User Comments (0)
About PowerShow.com