CS294-7: Reconfigurable Computing
Day 15: Tuesday, March 11, 1997
Interconnect


Admin

Project 1
- Due Today (3/11)
- Netlist request - "Don't ask, don't tell" policy: You have the option of writing your name on your schematic or not. If you don't, your name will not be given to anyone who might try to find out.
- Talks Thursday

Project 2
- Assignment out today

- Sign up for an appointment w/ Andre'


Partitioning

Partitioning Problem

The goal is to discover the bisection cut

Fiduccia-Mattheyses
(refinement on Kernighan-Lin)

 
Number in red indicates gain if cell is moved to the other partition.

Fiduccia-Mattheyses (recompute cell gain)

Key thing to note is that each net is considered separately.

Value of (not change to) cell gain (before move):

Gain deltas associated with move:

 

Fiduccia-Mattheyses (data structures)

N cells

two arrays gain arrays

 

Fiduccia-Mattheyses (Optimization Sequence)


Red line indicates point at which "best" progress is reached. This is the partition chosen for the start of the next iteration. Note that in the first pass, there are two "best" partitions.

Tweaks on Fiduccia-Mattheyses

Tweaks exist to speed up Fiduccia-Mattheyses:

(Comparisons from Hauck and Boriello '96)

Clustering

1. group together several leaf cells into one larger for FM partitioning

2. run partition on clustered cells

3. uncluster, keep partitions (uncluster iteratively rather than all at once)

4. run partition again (with previous step as initial partition)

Benefits:

Connectivity Clustering

Technology Mapping

Better to partition at "gate" level, than after mapped to LUTs.

In this example, two wires cut v/s three.

Initial Partition

Random best:

v/s spectral initial:

Over the long run, random can do better, since w/ spectral initial placement, the placement is identical every time --> no potential for improvement.


Note that most of the gain is attained in the first 400 steps. Beyond that, improvement is incremental.


Smaller cut size can be achieved if more variation in partition size is allowed.



Trade some additional area logic for smaller cut size. (replication data/figures from Enos, Hauck, Sarrafzadeh '97)

On left, cut size is three; on the right, it is two.

5% additional logic --> 38% smaller cut
Significant gain for relatively little cost in area.

50% --> 50+% smaller

Partition Wrapup

Simulated Annealing


Need to hill climb in order to find the global minimum. Q: how to do this in an n-dimensional space?

Metropolis Algorithm for simulating collection of atoms:

"Good" moves are always kept, "bad" moves are kept with a probability that is a function of the current "temperature". Bad moves are kept in the hope that they will enable hill climbing.

Simulated Annealing

Optimization Analog

Using SA

To use:

Formulation of Cost Function for Partitioning

Partitioning:

Formulation for Partitioning and Timing

Formulation for Placement

Move: swap location of two cells

Cost:

May limit distance swaps considered by temperature
Intuition: do global optimization first, later focus on local optimization.

Simulated Annealing Wrapup