CALTECH CS137 Winter2004 -- DeHon CS137: Electronic Design Automation Day 7: February 3, 2002 Retiming.

Slides:



Advertisements
Similar presentations
Introduction to Algorithms 6.046J/18.401J/SMA5503
Advertisements

CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 19: November 21, 2005 Scheduling Introduction.
ECE 667 Synthesis and Verification of Digital Circuits
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 22: December 2, 2005 Routing 2 (Pathfinder)
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Sequential Synthesis.
Chapter 4 Retiming.
Introduction to Algorithms
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 14: March 3, 2004 Scheduling Heuristics and Approximation.
Sequential Timing Optimization. Long path timing constraints Data must not reach destination FF too late s i + d(i,j) + T setup  s j + P s i s j d(i,j)
Parallel Scheduling of Complex DAGs under Uncertainty Grzegorz Malewicz.
Basic Feasible Solutions: Recap MS&E 211. WILL FOLLOW A CELEBRATED INTELLECTUAL TEACHING TRADITION.
1 Maximum Flow w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 3/53/5 1/11/1 3/53/5 2/22/2 
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day17: November 20, 2000 Time Multiplexing.
Tirgul 12 Algorithm for Single-Source-Shortest-Paths (s-s-s-p) Problem Application of s-s-s-p for Solving a System of Difference Constraints.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 21: April 2, 2007 Time Multiplexing.
Circuit Retiming with Interconnect Delay CUHK CSE CAD Group Meeting One Evangeline Young Aug 19, 2003.
ECE Synthesis & Verification - Lecture 2 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Scheduling.
Pipelining and Retiming 1 Pipelining  Adding registers along a path  split combinational logic into multiple cycles  increase clock rate  increase.
Penn ESE Fall DeHon 1 ESE (ESE534): Computer Organization Day 19: March 26, 2007 Retime 1: Transformations.
Chapter 9 Graph algorithms Lec 21 Dec 1, Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Shortest Paths Definitions Single Source Algorithms
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 18: February 21, 2003 Retiming 2: Structures and Balance.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 11, 2009 Dataflow.
CS294-6 Reconfigurable Computing Day 16 October 15, 1998 Retiming.
Tirgul 13. Unweighted Graphs Wishful Thinking – you decide to go to work on your sun-tan in ‘ Hatzuk ’ beach in Tel-Aviv. Therefore, you take your swimming.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
EDA (CS286.5b) Day 19 Covering and Retiming. “Final” Like Assignment #1 –longer –more breadth –focus since assignment #2 –…but ideas are cummulative –open.
All-Pairs Shortest Paths
ECE Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Retiming.
Approximation Algorithms Motivation and Definitions TSP Vertex Cover Scheduling.
03/08/2005 © J.-H. Jiang1 Retiming and Resynthesis EECS 290A – Spring 2005 UC Berkeley.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
EDA (CS286.5b) Day 18 Retiming. Today Retiming –cycle time (clock period) –C-slow –initial states –register minimization.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 13, 2008 Retiming.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 12: February 13, 2002 Scheduling Heuristics and Approximation.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
Techniques for Proving NP-Completeness Show that a special case of the problem you are interested in is NP- complete. For example: The problem of finding.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 18, 2015 Architecture Synthesis (Provisioning, Allocation)
1 1 © 2003 Thomson  /South-Western Slide Slides Prepared by JOHN S. LOUCKS St. Edward’s University.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 13: February 20, 2002 Routing 1.
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
CS 361 – Chapter 16 Final thoughts on minimum spanning trees and similar problems Flow networks Commitment: –Decide on presentation order.
ELEC692 VLSI Signal Processing Architecture Lecture 3
CS223 Advanced Data Structures and Algorithms 1 Maximum Flow Neil Tang 3/30/2010.
Pipelining and Retiming
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day16: November 15, 2000 Retiming Structures.
CALTECH CS137 Spring DeHon 1 CS137: Electronic Design Automation Day 5: April 12, 2004 Covering and Retiming.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 14: February 27, 2002 Routing 2 (Pathfinder)
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 26, 2004 Sequential Optimization (FSM Encoding)
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 17: March 11, 2002 Sequential Optimization (FSM Encoding)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 13, 2013 High Level Synthesis II Dataflow Graph Sharing.
Instructor Neelima Gupta Edited by Divya Gaur(39, MCS '09) Thanks to: Bhavya(9), Deepika(10), Deepika Bisht(11) (MCS '09)
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 20: February 27, 2005 Retiming 2: Structures and Balance.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
St. Edward’s University
CS137: Electronic Design Automation
The minimum cost flow problem
CS137: Electronic Design Automation
CS137: Electronic Design Automation
Instructor: Shengyu Zhang
Analysis of Algorithms
ESE535: Electronic Design Automation
CprE / ComS 583 Reconfigurable Computing
CS184a: Computer Architecture (Structures and Organization)
ESE535: Electronic Design Automation
Algorithms (2IL15) – Lecture 7
Timing Analysis and Optimization of Sequential Circuits
CS137: Electronic Design Automation
Presentation transcript:

CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 7: February 3, 2002 Retiming

CALTECH CS137 Winter DeHon Today Retiming –Cycle time (clock period) –C-slow –Initial states –Register minimization –Necessary delays (time permitting)

CALTECH CS137 Winter DeHon Task Move registers to: –Preserve semantics –Minimize path length between registers –(make path length 1 for maximum throughput or reuse) –Maximize reuse rate –…while minimizing number of registers required

CALTECH CS137 Winter DeHon Problem Given: clocked circuit Goal: minimize clock period without changing (observable) behavior I.e. minimize maximum delay between any pair of registers Freedom: move placement of internal registers

CALTECH CS137 Winter DeHon Other Goals Minimize number of registers in circuit Achieve target cycle time Minimize number of registers while achieving target cycle time …start talking about minimizing cycle...

CALTECH CS137 Winter DeHon Simple Example Path Length (L) = 4 Can we do better?

CALTECH CS137 Winter DeHon Legal Register Moves Retiming Lag/Lead

CALTECH CS137 Winter DeHon Canonical Graph Representation Separate arc for each path Weight edges by number of registers (weight nodes by delay through node)

CALTECH CS137 Winter DeHon Critical Path Length Critical Path: Length of longest path of zero weight nodes Compute in O(|E|) time by levelizing network: Topological sort, push path lengths forward until find register.

CALTECH CS137 Winter DeHon Retiming Lag/Lead Retiming: Assign a lag to every vertex weight(e) = weight(e) + lag(head(e))-lag(tail(e))

CALTECH CS137 Winter DeHon Valid Retiming Retiming is valid as long as: –  e in graph weight(e) = weight(e) + lag(head(e))-lag(tail(e))  0 Assuming original circuit was a valid synchronous circuit, this guarantees: –non-negative register weights on all edges no travel backward in time :-) –all cycles have strictly positive register counts –propagation delay on each vertex is non-negative (assumed 1 for today)

CALTECH CS137 Winter DeHon Retiming Task Move registers  assign lags to nodes –lags define all locally legal moves Preserving non-negative edge weights –(previous slide) –guarantees collection of lags remains consistent globally

CALTECH CS137 Winter DeHon Retiming Transformation N.B.: unchanged by retiming –number of registers around a cycle –delay along a cycle Cycle of length P must have –at least P/c registers on it –to be retimeable to cycle c

CALTECH CS137 Winter DeHon Optimal Retiming There is a retiming of –graph G –w/ clock cycle c –iff G-1/c has no cycles with negative edge weights G-   subtract  from each edge weight

CALTECH CS137 Winter DeHon 1/c Intuition Want to place a register every c delay units Each register adds one Each delay subtracts 1/c As long as remains more positives than negatives around all cycles –can move registers to accommodate –Captures the regs=P/c constraints

CALTECH CS137 Winter DeHon G-1/c

CALTECH CS137 Winter DeHon Compute Retiming Lag(v) = shortest path to I/O in G-1/c Compute shortest paths in O(|V||E|) –Bellman-Ford –also use to detect negative weight cycles when c too small

CALTECH CS137 Winter DeHon Bellman Ford For I  0 to N –u i  (except u i =0 for IO) For k  0 to N –for e i,j  E u i  min(u i, u j +w(e i,j )) For e i,j  E //still update  negative cycle if u i >u j +w(e i,j ) –cycles detected

CALTECH CS137 Winter DeHon Apply to Example

CALTECH CS137 Winter DeHon Try c=1

CALTECH CS137 Winter DeHon Apply: Find Lags Negative weight cycles? Shortest paths?

CALTECH CS137 Winter DeHon Apply: Lags

CALTECH CS137 Winter DeHon Apply: Move Registers weight(e) = weight(e) + lag(head(e))-lag(tail(e))

CALTECH CS137 Winter DeHon Apply: Retimed

CALTECH CS137 Winter DeHon Apply: Retimed Design

CALTECH CS137 Winter DeHon Revise Example (fanout delay)

CALTECH CS137 Winter DeHon Revised: Graph

CALTECH CS137 Winter DeHon Revised: Graph

CALTECH CS137 Winter DeHon Revised: C=1?

CALTECH CS137 Winter DeHon Revised: C=2?

CALTECH CS137 Winter DeHon Revised: Lag

CALTECH CS137 Winter DeHon Revised: Lag Take ceiling to convert to integer lags: 0 0

CALTECH CS137 Winter DeHon Revised: Apply Lag 0 0

CALTECH CS137 Winter DeHon Revised: Apply Lag

CALTECH CS137 Winter DeHon Revised: Retimed

CALTECH CS137 Winter DeHon Pipelining We can use this retiming to pipeline Assume we have enough (infinite supply) registers at edge of circuit Retime them into circuit

CALTECH CS137 Winter DeHon C>1 ==> Pipeline

CALTECH CS137 Winter DeHon Add Registers Note: jump to G-1 graph  future…show G first

CALTECH CS137 Winter DeHon Pipeline Retiming: Lag

CALTECH CS137 Winter DeHon Pipelined Retimed

CALTECH CS137 Winter DeHon Real Cycle

CALTECH CS137 Winter DeHon Real Cycle

CALTECH CS137 Winter DeHon Cycle C=1?

CALTECH CS137 Winter DeHon Cycle C=2?

CALTECH CS137 Winter DeHon Cycle: C-slow Cycle=c  C-slow network has Cycle=1

CALTECH CS137 Winter DeHon 2-slow Cycle  C=1

CALTECH CS137 Winter DeHon 2-Slow Lags

CALTECH CS137 Winter DeHon 2-Slow Retime

CALTECH CS137 Winter DeHon Retimed 2-Slow Cycle

CALTECH CS137 Winter DeHon C-Slow applicable? Available parallelism –solve C identical, independent problems e.g. process packets (blocks) separately e.g. independent regions in images Commutative operators –e.g. max example

CALTECH CS137 Winter DeHon Max Example

CALTECH CS137 Winter DeHon Max Example

CALTECH CS137 Winter DeHon Note Algorithm/examples shown –for special case of unit-delay nodes For general delay, –a bit more complicated –still polynomial

CALTECH CS137 Winter DeHon Initial State What about initial state? 0 1

CALTECH CS137 Winter DeHon Initial State 0

CALTECH CS137 Winter DeHon Initial State In general, constraints  satisfiable?

CALTECH CS137 Winter DeHon Initial State ,1? 1 0

CALTECH CS137 Winter DeHon Initial State 1 0 Cycle1: 1 Cycle2: /(0*/in)=1 init=0 Cycle1: 1 Cycle2: /(/init*/in)=in init=1 Cycle1: 0 Cycle2: /(/init*/in)=1 ? Cycle1: /init Cycle2: /(/init*/in)=in+init init

CALTECH CS137 Winter DeHon Initial State Cannot always get exactly the same initial state behavior on the retimed circuit –without additional care in the retiming transformation –sometimes have to modify structure of retiming to preserve initial behavior Only a problem for startup transient –if you’re willing to clock to get into initial state, not a limitation

CALTECH CS137 Winter DeHon Minimize Registers

CALTECH CS137 Winter DeHon Minimize Registers Number of registers:  w(e) After retime:  w(e)+  (FI(v)-FO(v))lag(v) delta only in lags So want to minimize:  (FI(v)-FO(v))lag(v) –subject to earlier constraints non-negative register weights, delays positive cycle counts

CALTECH CS137 Winter DeHon Minimize Registers Can be formulated as flow problem Can add cycle time constraints to flow problem Time: O(|V||E|log(|V|)log|(|V| 2 /|E|))

CALTECH CS137 Winter DeHon HSRA Retiming HSRA –adds mandatory pipelining to interconnect One additional twist –long, pipelined interconnect  need more than one register on paths

CALTECH CS137 Winter DeHon Accommodating HSRA Interconnect Delays Add buffers to LUT  LUT path to match interconnect register requirements Retime to C=1 as before Buffer chains force enough registers to cover interconnect delays

CALTECH CS137 Winter DeHon Accommodating HSRA Interconnect Delays

CALTECH CS137 Winter DeHon Summary Can move registers to minimize cycle time Formulate as a lag assignment to every node Optimally solve cycle time in O(|V||E|) time Also –Compute multithreaded computations –Minimize registers Watch out for initial values Can accommodate mandatory delays

CALTECH CS137 Winter DeHon Today’s Big Ideas Exploit freedom Formulate transformations (lag assignment) Express legality constraints Technique: –graph algorithms –network flow