Title: Improved Global Routing through Congestion Estimation
1Improved Global Routing through Congestion
Estimation
- Raia T.Hadsell, Patrick H.Madden
Presented by Ori Vinik
2Reminder
- Stages in making a chip
- Defining requirements
- Logical (RTL)
- circuit design (gate level)
- Validation
- Layout
- Placement
- Routing (global)
- Routing (detail)
- And so on
- Routing wires on the chip is done using
- a tool called router
3Outline
- Introduction of the problem and some technical
terms
- Previous work that was done in the routing field
- The routing tool created by the writers of this
- article and the new approach it utilizes
- Illustration of the approach
4Introduction
- After placing all the components on the chip the
next - stage is connecting them with wires
- Short wires improves chips performance
- If routing is done simply in the shortest path
many - wires will be routed through important
junctions
Looking at the chip from above
Components (ALU, registers unit)
- Congestion when too many wires go through a too
- narrow space physically they become too close.
- Impossible to route because capacity is limited!
5No other wire can be put in this place
Wire
No more room!
- Another problem that was created
- When two wires go side by side, they effect each
- other so the signals might change
- The longer they go side by side, the more intense
- is their influence on each other
6- Global router decide roughly where wires will
go through - according to placement and other limitations
- (wires not too close, wire length).
- Maze router using for Detailed routing
decide - exactly where wires will go through according
to the - global routing.
-
7- Rip up and reroute a common method routers
utilize the - router first rip an old wire, can put a new
wire in the old - wires place and then find a new route for the
old wire
- Iterations in every iteration rip up and re
route is done - Feedback is given to the router after each
iteration
8- Routing layers most modern chips have 5 to 8
metal - layers in which wires are routed. These wires
are using - to connect the components on the chip. In each
layer - wires go from east to west or south to
north.
9isolation layer
Routing Layers
Via
Wires
Components
Substrate
10- In the past chips were relatively simple
- Routing problem could be solved easily
A simple case with a simple solution-
But
11- As designs became bigger and more complicated
12- Designs have become larger and more congested,
- global routing is more difficult.
- Many existing global routing tools
- Fail to complete - they need more area
- Exponential complexity or higher
- Must use approximation algorithms to
- get practical solutions
13Guidelines
- Utilization of Linsker method for printed
circuit board - (PCB) routing (overlooked).
-
- Feedback loop to each rip up and reroute
iteration.
- Informing the maze router in order to avoid
congested - areas.
- How do we determine the congested areas? (2 ways)
- Static probabilistic algorithm
- Dynamic information about congestion from
previous - iterations
14- The information is used to introduce artificial
weight to - the congested edges
- Subsequent routes disperse from this areas in
next reroute
15Quick summary
- Wires must have a minimal distance between them
- to ensure they dont short
- Routing problem in complex designs
- Modern Global Routing method terms
- Iterations of Rip up and reroute with Feedback
16Previous work
- In the past- channel based , limited number of
- routing layers
- Connection restricted between standard cell rows
- or around macro blocks
- Over the cell routing instead of using space in
cell rows
17- Formulation of modern routing model problem
- In the modern routing model problem is
formulated - as a Multi commodity flow
- Each edge e between vertices V
i
I,j
and V has a capacity C
j
I,j
flow on the edges
wire
Component( )
vertex
edge
Route (connection between squares )
18- The common technique in previous routing tools
- Decomposition of multipin nets into pairs of pins
- using either Spaning tree algorithms or Steiner
Tree - heuristics
- In general The problem Connect vertices
(1,2,3,4,5) - becomes connect (1,2), connect (2,3) and so
on
- Pairs of pins are connected (routed) using the
maze - router. Normally, Dijkstras algorithm is used
- Routing is done through iterations of rip up
- and reroute
19- Forming a Steiner tree to connect subsets of
vertices - such that capacity rules must be obeyed,
minimizing - total tree weight
(1,2) (2,3) (2,5) (5,6) (6,9) (5,4) (7,8)
Connect (1,2,3,4,5,6,7,8,9)
Connect
Steiner tree algorithm
3
1
2
3
1
2
Connect
4
5
6
4
5
6
7
8
9
7
8
9
20- Dijkstras algorithm An algorithm to find the
shortest - path from a single source vertex to all other
vertices - in a weighted, directed graph. All weights must
be non - negative
-
3
4
11
D
1
3
2
1
10
8
10
12
3
4
2
3
2
10
2
2
9
4
9
5
S
21- In previous research it was found that detail
routing become - difficult when routing approaches physical
capacity
- The detail routing is using Dijkstras algorithm
and determine - the exact and final routing, complimenting the
Global routers - work
detailed router
Global router
- Thus, the capacity of an edge in a global graph
is generally - tuned towards levels where successful detail
routing is likely
22Global Routing with Congestion Estimation
- The Chi Dispersion Global Routing tool routing
approach - extends previous work (Linsker) through the
introduction of - congestion estimation.
- Basic routing approach follow the general
outline of - Linsker
- Decompose multi-pin nets into sets of point
- connections, and then route each connection
- Use of Steiner tree heuristic obtaining good
quality - trees and low complexity
- Each wire (in the tree) is routed using a maze
router, - implementing Dijkstras algorithm ensure
efficient - implementation
23- The Chi Dispersion Global Routing tool
- Rip up and reroute each edge in order for a
number - of iterations
- Why for a number of iterations?
- Solution converges quickly. Large number of
iterations - seldom improve quality
24- In order to implement Dijkstras algorithm
adjusting - routing cost (weight on the edges) is a must.
- Monitoring the number of routes (wires) using
any - particular edge and use this to adjust routing
cost as - demonstrated in next foil
25- Adjusting routing cost using a cost function-
- example
route
Wire Need 25
Capacity 120
Step 1 Routing cost LOW
Step 3 Routing cost Medium
Step 4 Routing cost High
Step 2 Routing cost LOW
- important this is just one algorithm. Other
Possibility - LOW,LOW,LOW, HIGH or others. Depends on cost
function.
26- Routing cost increases abruptly when
- the number of routes on a graph edge
- reaches or approaches the edge
- capacity.
constant
if any
wire length
27- Intuition for the step cost function and the
- problem it creates
- Early routes will encounter an uncongested
routing graph - and will utilize the resources without
consideration for the - demands of later routes (A).
B
- Later routes will not be able to go through
- that congested edge routing cost
- is too expensive (B). They will detour
- around congested regions
A
- During rip up and reroute, the connection routed
in early - stages will have difficulty in being rerouted,
because of the - added wire length.
28- The main problem with this approach
- Prior to initial routing no information about
where - congestion is going to be
- As a result first routes might pass through
areas that will - have high demand later
- These routes will affect the routing of other
wires
- The objective minimizing the number of poorly
routed - connections in the early stages. And providing
an - effective tie-breaking method when there are few
routes - with similar costs.
29- The effective cost function
- Assign a unit cost to an edge until it reaches
80 of capacity (A) and increase cost linearly
until it reaches 40 above capacity (B) .
B
A
30- Intuition for the linear cost function
- If a region is about to be congested (over 80 of
- capacity) routing cost is rising
- The routing cost will rise as more and
- more wires are routed through that edge
- As rip up and re route process is performed the
Dijkstras - algorithm will route some wires through other
edges, living - some room for later routes that will willing to
pay the - high routing cost through that edge
31- Technically how does it work?
- The amplified dynamic demand for routing edge ej
is
ddynamic(ej) S a(wi) X p(wi,ej)
wi
According to next page
The probability that wi will be routed through
edge ej
32- Technically how does it work?
- Amplification algorithm
- For any given wire wi, consider the estimated
demand along all routing edges used by the wire - If no routing edge has demand greater then 80 of
capacity, we set a wi to 0 - If a routing edge demand greater then 120 of
capacity, we set a wi to 1.2 - Otherwise, a wi is set to 1
ddynamic(ej) S a(wi) X p(wi,ej)
- The dynamic estimation is performed once per
iteration. - The static estimation is performed prior to any
routing.
33- In heavily congested areas there is desire to
push - routes out. Routing there should cost much more
- In lightly congested areas we want to avoid
detours
- Strongly influence routes in congested areas
without unduly influence routes in less congested
areas
- Volcano effect the areas where we would
expect heavy - congestion have routes strongly pushed away
34Static estimation
Routing cost
dynamic estimation
amplification
Actual routing Demand
Dijkstra
35- Contribution of this work
- The consideration of congestion estimate as part
of the - routing cost
- Static and dynamic congestion estimates
- Combination of both provide a hint to the
global - router
36Illustration of the Approach
- Congestion maps
- Lightly congested dark
- Heavy congested light
-
37- congestion maps illustration of the approach
- Estimated congestion and amplified estimated
congestion - for the benchmark IBM01.
After global routing is done
Left congestion estimate for ibm01 Right
amplified congestion estimate for ibm01
38- Illustration of the approach different
iterations
- Congestion levels for a routing of the benchmark
IBM07 at - different iterations of the rip up and reroute
process.
39- Congestion levels in the first iteration is much
higher in the - congestion prediction approach
-
- After first iteration congestion levels improve
dramatically.
- Our modified approach performs substantially
better
40Experimental results
- Executable versions of only two academic routers
were - available
- Labyrinth
- Force Directed router
- The Force Directed router was unable to handle
any of the - given benchmarks correctly
results not reported.
- Commercial routing tools are not comparable since
they - generally optimize a number of factors other
then - congestion.
41Experimental results cont
42- Results in different benchmarks
overflow
overflow
overflow
On average, 47 overflow reduction relative to
Linsker On average, 65 overflow reduction
relative to Labyrinth Wire length and run time
are comparable to Linsker, better than Labyrinth
43Summary / Conclusions
- Focus on improving congestion in global routing
using - over-the-cell routing model
- This work improves a classic routing approach by
- integrating congestion estimates with the routing
- Target problem areas without introducing
detours - in un congested areas by amplifying estimated
- congestion
- Excellent results in comparison to other recent
global - routing work speed, wire length, overflow
44Summary / Conclusions cont
- A method known for printed circuit board design
has a - direct application to modern integrated circuit
routing
- Use of a linearly increasing cost function
improves the - solution quality
- Some recently published routing tools have
surprisingly - poor performance and may be improved by adopting
this - approach
45Acknowledgements
- IEEC AND IBM Faculty Partnership Award
46the end
47Given a graph with non negative weights and a set
of pairs of vertices, find the minimum network of
edges such that each pair of vertices is in the
same connected component.
- Forming a Steiner tree to connect subsets of
vertices - such that capacity rules must be obeyed,
minimizing - total tree length
Steiner tree algorithm
Connect