partitioning 1 outline –what is partitioning –partitioning example –partitioning theory...
Post on 22-Dec-2015
218 views
TRANSCRIPT
Partitioning 1
• Outline– What is Partitioning
– Partitioning Example
– Partitioning Theory
– Partitioning Algorithms
• Goal– Understand partitioning problem
– Understand partitioning algorithms
What is Partitioning
• Divide a design into smaller pieces– based on a set of constraints
• Constraints– amount of design in a partition
– number of nets to/from partition
– number of partitions allowed
– balance between partition sizes
– weight nets crossing partition boundaries
• Applications– divide large design into multiple packages
– place circuit components on a chip or board
Partitioning Example
• Constraints– 12 transistors per package
– 7 pins per package
– few packages as possible
– nets of equal weight
• Bounds– 30 xistors => >=3 packages
– 21 terminals => <=3 packages
4
44
6
6
6
4
44
6
6
6
12 xistors7 pins 12 xistors
5 pins
6 xistors4 pins
4
44
6
6
6
12 xistors7 pins
10 xistors6 pins
8 xistors5 pins
etc.
Partitioning Theory
• Partitioning is NP-complete
A finite set A and a "size" s(a) Z+ for each a A.Is there a subset A' A such that
s(a)a A'
= s(a)a A - A'
?
Partitioning Theory
• Partitioning Set Formulation– V a set of nodes (components)
– each node r having area a(r)
– X a set of nodes (terminals) external to V
– S = (S1, S2, ..., SN) a set of subsets of V U X
» Si correspond to nets
– partition V into disjoint subsets V1, V2,..., Vk such that
» area of nodes in Vi <= Ai
» number of sets in S which have nodes external and internal to Vi is <= Ti, (pin count)
• Other formulations– graphs - weighted nets, edges
– connection matrix - eigenvectors
Partitioning Algorithms
• Direct– seed each module, grow based on constraints
• Group Migration– randomly place components, then move between partitions
• Metric Allocation– goodness metric for each component pair, partition to
minimize metric
• Simulated Annealing– shuffle components among partitions to minimize cost
function, permit uphill moves to get around local minima
Direct Partitioning
place a component r from V into each partition Vi
– pick relatively independent components
for each remaining component r in V {
for each Vi with area of nodes <= Ai and number of sets in S which have nodes external and internal to Vi <= Ti,
compute cost of placing r in Vi
place r in lowest-cost Vi
}
• Complexity– O(V*k)
– assumes placement cost computation is O(1)
• Issues– sensitive to initial seeding
– sensitive to component examination order
– gets stuck in local minimum
Direct Partitioning Example
AB
C
D
E
F
G A
B CD
E
F
G
D
A
D
A
ED
A
E
B
E
B
A
B CD
E
C
G, F
Group Migration
1. Partition nodes into groups A and B
2. For every a in A, and every b in B {
compute change in terminal counts Da and Db that occur if a and b are swapped.}
– set queue to empty and i = 1.
3. Select from all pairs (a, b) the pair (ai, bi) that gives most reduction in total terminal count when swapped.– add to queue– save the improvement in terminal count as gi
4. Remove ai from A and bi from B, recalculate Da and Db.– if A and B not empty, i++, go to 3.
5. Find k such that G = sum of g1 to gk is a minimum.
– swap a1,...ak and b1,...bk.– if G < 0 and k > 0, go to 2, else stop.
Group Migration Example
AB
C
D
E
F
G
A
B C
DE
F
G
Initial Partition, Cutset = 6
(A,E) 0 -3(A,F) -1 0(A,G) -1 0
(D,E) -2 -3(D,F) -2 +1(D,G) -2 +1
(B,E) +1 -3(B,F) 0 0(B,G) 0 0
(C,E) +1 -3(C,F) 0 0(C,G) 0 0
Queue1: (D,E) -52: (A,F) +1 (-1,+3)...
Minimum G=-5 at k=1Swap D and E
Next iteration:all pairs positivek=0, quit
Da Db Da Db
AB
C F
G
Final Partition, Cutset = 1
removed(D,E)
Group Migration
• Complexity– O(n2) per iteration in worst case for n nodes
» steps 2, 3
– converges in only a few iterations
– newer versions are O(nlogn) - discuss in next lecture
• Application to partitioning– use bisection
– divide into two partitions, then split those partitions, etc.
– partition area is ignored, partitions remain balanced
» subdivide until partition area is small enough
– algorithm also called min-cut since it minimizes terminals