Upload
lynhan
View
213
Download
0
Embed Size (px)
Citation preview
� Aufgabe Technologie-AbbildungAbbildung der Ergebnisse einer von der Technologie unabhängigen Optimierung einer Booleschen Netzliste auf gewählte Zielstruktur, in welcher die Technologie des Schaltkreisherstellers zu berücksichtigen ist
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
1
Zellen einer Technologie-Bibliothek eines bestimmten Herstellers
Eigenschaften der durch die Abbildung ermittelten Logikfelder
• Programmierung der Ausgangszellen• flexible Produkttermnutzung• Notwendigkeit der Partitionierung in Teilfelder
wichtig: Abbildung erfolgt unter Optimierung einer zugrunde liegenden Kostenfunktion
keine abstrakte Zielfunktion wie die Zahl der Produktterme bei zweistufiger Logik oder die Anzahl der Literale bei mehrstufiger Logikberücksichtigt werden
• Fläche• Zeit
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
2
• Zeit
Im Folgenden wird ein Verfahren zur Technologie-Abbildung für die mehrstufige Logik behandelt
für zellenbasierte Entwürfe
Minimierung bei Technologie-Abbildung ⇒ exponentieller Aufwandbei größeren Schaltungen sind daher Heuristiken notwendig
Strategie bei der Technologie-Abbildung:
⇒ Rückführung Boolesches Netz auf gemeinsame standardisierte Form
gewählte Standard-Beschreibung: NAND-Gatter mit zwei Eingängen
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
3
anschließend: Überprüfung welche Elemente der Bibliothek können Teile der Schaltung ersetzen
Frage der Überdeckung von Teilen der Schaltung mit Bibliothekselementen unter Berücksichtigung der Kostenfunktion
Multiplexer NAND
&&
1 &
&
S
A
Beispiel: Überdeckung einer Schaltung mit Bibliothekselementen
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
4XOR
NAND
&
1
&
&
&
1
&
&1
&
=1
A
B
Vorgehen bei der Transformation von Knoten des Booleschen Netzes in NAND-Gatter mit zwei Eingängen
zunächst alle Gatter mit mehr als zwei Eingängen in Zusammenschaltungen von Gattern mit zwei Eingängen umwandeln
≥1⇒
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
5
&
&
&
⇒
≥1
≥1
≥1
⇒
Problem: Festlegung der Reihenfolge der Klammerung
• Assoziativgesetz gestattet hier mehrere Möglichkeiten
x1x2x3 → (x1x2)x3 bzw. x1(x2 x3) bzw. (x1x3)x2
• optimale Lösung würde Berücksichtigung aller möglichen Kombinationen erfordern
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
6
Kombinationen erfordern
• Auswahl der Klammerungsreihenfolge erfolgt heuristisch, dabei Berücksichtigung möglichst geringer Verzögerungen, z.B. ist
(x1x2)(x3x4) (((x1x2)x3)x4) vorzuziehen
2 Stufen 3 Stufen
Transformation UND-Gatter in NAND-Gatter• Ausgang NAND-Gatter einfach invertieren
Transformation ODER-Gatter in NAND-Gatter• Anwenden von De Morgan
& ⇒ & 1
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
7
durch Umwandlung entstandene Inverterketten auflösen
≥1 ⇒ &
1
1
⇒1 1
Beispiel: Umwandlung Boolesches Netz in NAND-Struktur
x1
x2
x3y2 = x2 ∨ x3
y1 = x1 ∨ x2
f = y1 y2 ∨ x4 x5 ∨ x6
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
8
x3
x4 x5 x6
≥1
&1
1
x1
x2
x3
x4
x5
x6
&
≥1
f≥1
Beispiel: Umwandlung Boolesches Netz in NAND-Struktur
≥1
&1
1
x1x2
x3x4x5x6
&
≥1 f≥1
≥1≥1
≥1
&&
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
9
1x6&
& & 1
&
1
1
1 1
≥1
&
1
1
1
& 1
1
&1
1
&1
1
&
1
1
1&
Zusammenfassen nachfolgender Inverterketten
&
1
1
1& 1
& 1&
1
1&
1
&1
1
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
10
1&
1
&1
&
&&
1&
&
1
1
Exakte Überdeckungsbestimmung
Ziel: Überdeckung der NAND-Struktur mit Bibliothekselementen
Untersuchung aller NAND-Gatter nacheinander inklusive einer Teilmenge der Vorgänger, inwieweit diese sich mit NAND-Repräsentation eines Bibliothekselementes deckt
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
11
Repräsentation eines Bibliothekselementes deckt
für jede mögliche Überdeckung festhalten
Kosten
Eingaben
Ausgaben
Beispiel: Kostenmaßstab sei die Flächezu überdeckende NAND-Struktur
&
1&&
&1
1&
1
x1
x2
x3x4
f1
f2
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
12
Zellbibliothek in NAND-Form
x4f2
Gatter Symbol NAND-Darstellung Kosten
&
1
1 &
&
& 1
&
1inv
nand2
nand3
oai21
&
1
&
&≥1
1
2
3
3
Aufstellung aller möglichen Überdeckungen
KostenGatter Symbol NAND-Darstellung
inv
nand2
nand3
&1
&
&
& 1
&
1
&
1
&
≥1
1
2
3
&
1&
&
&
1
1&
1
x1
x2
x3
x4
f1
f2
g1
g2
g3
g4
g5
g6
g7 g8
g9
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
13
oai21&
1&&≥1
3
KostenGatter Überdeckung durch
g1 1
Eingaben Ausgabe überdeckt
inv m1 x1 g1 g1
g2 1inv m2 x2 g2 g2
g3 2nand2 m3 g1, g2 g3 g3
g4 2nand2 m4 x1, x2 g4 g4
g5 2nand2 m5 g3, g4 g5 g53oai21 m6 x1, x2, g4 g5 g1, g2, g3, g5
g6 1inv m7 g4 g6 g6g7 2nand2 m8 g6, x3 g7 g7
3nand3 m9 x1, x2, x3 g7 g4, g6, g7g8 1inv m10 g7 g8 g8g9 2nand2 m11 g8, x4 g9 g9
3nand3 m12 g6, x3, x4 g9 g7, g8, g9
x4
Nach systematischer Aufstellung aller Überdeckungs-Möglichkeiten ist die optimale Technologie-Abbildung aufzufinden
jede mögliche Überdeckung eines Teils der Schaltung wird durch eine Boolesche Variable mi repräsentiert, die Kosten ki
verursachtmi = 1 ⇔ für entsprechende Teilschaltung wird mi verwendet
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
14
mi = 1 ⇔ für entsprechende Teilschaltung wird mi verwendetmi = 0 ⇔ mi wird nicht verwendet
für jedes Gatter gj muss es mi geben, welches gj überdeckt
sei üj eine Bedingung, die ausdrückt, ob gj überdeckt wird, d.h.
eine ODER-Verknüpfung aller mi, die gj überdecken
damit alle Gatter überdeckt werden muss gelten
ii
j mü ∨=
1=∧ jj
ü
In der Gleichung * bleibt jedoch noch ein Problem unberücksichtigt
• Ursache: wenn mehrere NAND-Gatter durch ein Bibliothekselement
� Dadurch lässt sich das Problem der optimalen Technologie-Abbildung mit minimalen Kosten wie folgt formal formulieren:
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
*1)(...min ==⋅ ∨∧∧∑ iij
jj
ii
i müNdukm
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
15
• Ursache: wenn mehrere NAND-Gatter durch ein Bibliothekselement überdeckt werden, so ist nur noch der Ausgang des letzten überdeckten NAND-Gatters verfügbar
• Folge: ein Gatterausgang gj kann von einem anderen Bibliothekselement nicht mehr als Eingang verwendet werden
• Beispiel: Überdeckung der Gatter g4 g6 g7 durch NAND3-Gatter (m9 = 1) ⇒ Ausgang g4 nicht mehr als Eingang in g5 nutzbar
• Lösung: Formulierung einer weiteren logischen einzuhaltenden Bedingung, einer sogenannten Verfügbarkeitsbedingung, die gelten muss, wenn ein entsprechendes Bibliothekselement verwendet wird
• dabei ist vi(mk) ein Boolescher Ausdruck, der die
)()( kiikii mvmmvm ∨≡⇒
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
16
• dabei ist vi(mk) ein Boolescher Ausdruck, der die notwendigen Bedingungen bei der Eingabe des durch mirepräsentierten Bibliothekselementes ausdrückt
• Erweiterung der Nebenbedingung der Gleichung *
1))(()(...min =⇒∧⋅ ∧∨∧∑ kiii
iij
ii
i mvmmNdukm
• Fortsetzung des Beispiels von vorhin
– für m1 m2 sind Eingaben immer verfügbar, da primäre Eingänge der Schaltung ⇒ v1 = v2 = 1
– anders bei m3: benötigt die Ausgaben von g1 und g2; werden nur erzeugt, wenn m1 = 1 und m2 = 1 gilt: d.h. m3 ⇒ m1 m2 bzw. (¬ m3 ∨ m1) (¬ m3 ∨ m2)
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
17
• Überdeckungsbedingungen und Verfügbarkeitsbedingungen ergeben dann folgenden Ausdruck (binäres Überdeckungsproblem):
(m1 ∨ m6) ... ( m11 ∨ m12) (¬ m3 ∨ m1) ... (¬ m10 ∨ m8 ∨ m9) ... (¬ m12 ∨ m7 ) = 1
• für diesen Ausdruck ist eine Belegung zu finden, die minimale Kosten verursacht
gegeben für m4 = m6 = m7 = m12 = 1 mi = 0 für i ∈{1,2,3,5,8,9,10,11}
anfallende Kosten: k4 + k6 + k7 + k12 = 9
• Ergebnis: kostenminimale Überdeckung
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
18
nand3
inv
nand2
oai21
&
1&
&
&
1
1&
1
x1
x2
x3
x4
f1
f2
1
2
3
4
5
6
7 8
9
Da das binäre Überdeckungsproblem NP-vollständig ist, greift man zur Lösung der Technologieabbildung auf heuristische Verfahren zurück
Verfahren:
Schaltungsgraph wird in Bäume partitioniert
4. Synthese digitaler Schaltungen4.1 Technologieabbildung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
19
Schaltungsgraph wird in Bäume partitioniert
für die einzelnen Partitionen wird jeweils getrennt eine minimale Überdeckung mit Bibliothekselementen gesucht
Problem: Auffinden einer geeigneten Partitionierung
4.2 Layoutsynthese 4.2.1 Partitionierung
4.2.1.1 Einführung
4.2.1.2 Begriffsbestimmungen
4.2.1.3 Optimierungsziele– Externe Verbindungen
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
20
– Bounded-Size-Partitionierung
4.2.1.4 Partitionierungsalgorithmen– Kernighan-Lin (KL)-Algorithmus– Erweiterungen des Kernighan-Lin-Algorithmus– Fiduccia-Mattheyses (FM)-Algorithmus– Simulated-Annealing (SA)-Algorithmus
4.2 Layoutsynthese 4.2.1 Partitionierung - Einführung
VerhaltensentwurfLogischer Entwurf
Floorplanning
ENTITY test isport a: in bit;
end ENTITY test;Partitionierung
Systemspezifikation
Architekturentwurf
Schaltungsentwurf
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
21
Layoutsynthese
Layoutverifikation
Chip
Platzierung
Verdrahtung
Kompaktierung
Herstellung
Schaltungsentwurf
Verpackung/Test
4.2 Layoutsynthese 4.2.1 Partitionierung - Einführung
Die Aufgabe der Partitionierung besteht darin
eine Schaltung in Teilschaltungen, sog. Partitionen oder Blöcke, aufzuteilen (zu partitionieren),
wobei oft die Verknüpfungen der Blöcke untereinander zu minimieren sind.
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
22
minimieren sind.
4.2 Layoutsynthese 4.2.1 Partitionierung - Einführung
Gesamtschaltung: 1
2
4
5
3
6
7 8
Schnittlinie c1
Schnittlinie c2
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
23
Schnittlinie c1: vier externe Verbindungen
5
6
48
7 23
1
56
48
7 2
3 1
Block A Block B Block A Block B
Schnittlinie c2: zwei externe Verbindungen
4.2 Layoutsynthese 4.2.2 Partitionierung - Begriffsbestimmungen
5 6
4
1
3 3
4
5 61
Teilgraph G1: Knoten 3, 4, 5.Block (Partition)
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
24
2 2
Teilgraph G2: Knoten 1, 2, 6.
Geschnittene Kanten bzw.
Schnittmenge (Cutset):
(1,3), (2,3), (5,6),
Zellen
4.2 Layoutsynthese 4.2.3 Partitionierung - Optimierungsziele
Minimierung der Anzahl der externen Verbindungen
und / oder
Gleichmäßige bzw. vorgegebene Flächengröße der Blöcke (Bounded-Size-Partitionierung)
min)( →=∑Ψ∈e
ewZ
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
25
Blöcke (Bounded-Size-Partitionierung)Wegen Packungsüberlegungen, Gehäuserestriktionen
Häufig Wunsch: Partitionen annähernd gleicher Größe
iV
Asi
≤∑∈ν
υ)(
Vk
sViV
i
1)( ≤=∑
∈νυ
4.2 Layoutsynthese 4.2.4 Partitionierungsalgorithmen
Partitionierungsalgorithmen
Kernighan-Lin (KL)-Algorithmus
Erweiterungen des Kernighan-Lin-Algorithmus
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
26
Fiduccia-Mattheyses (FM)-Algorithmus
Simulated-Annealing (SA)-Algorithmus
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Gegeben ist ein Graph mit insgesamt 2n Knoten und gewichteten Kanten zwischen beliebigen Knoten.
Gesucht ist die Aufteilung des Graphen in zwei Teilgraphen (Blöcke)
• mit jeweils n Knoten (Zellen) mit minimalen Schnittkosten (Summe der Gewichte aller geschnittenen Kanten).
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
27
(Summe der Gewichte aller geschnittenen Kanten).
2
5
6
3
1
4
7
8
Beispiel: n = 4
Block A Block B
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Kosten D(v) eines Knotens v
D(v) = ∑vextern - ∑vintern
wobei
∑vextern die Anzahl der von der Schnittlinie geschnittenen Kanten des Knotens v und
∑v die Anzahl der nicht von der
2
5
6
3
1
4
7
8Knoten 3:
D(3) = 3-1=2
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
28
∑vintern die Anzahl der nicht von der Schnittlinie erfassten Kanten des Knotens sind
Hohe Kosten (positiver D-Wert) geben damit einen bestimmten Drang an, die Teilmenge zu wechseln,
während niedrige Kosten (negativer D-Wert) ein gewisses „Bleiberecht“ verkörpern.
4 8D(3) = 3-1=2
Knoten 7:
D(7) = 2-1=1
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Gewinnwert zweier Knoten a und b
∆g = D(a) + D(b) - 2* c(a,b),
wobei
D(a), D(b) die Kosten der Knoten a, b
c(a,b) = 1, wenn zwischen a und b eine Kante
2
5
6
3
1
4
7
8
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
29
c(a,b) = 1, wenn zwischen a und b eine Kante existiert, andernfalls gilt c(a,b) = 0.
∆g gibt damit an, wie sinnvoll es hinsichtlich der Schnittkosten des Graphen ist, die beiden betrachteten Knoten auszutauschen.
Je größer ∆g ist, umso mehr wird die Gesamtanzahl der geschnittenen Kanten verringert.
4 8
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Beispiel:
2
5
6
3
1
4
7
8Knoten 3:
D(3) = 3-1=2
Knoten 7:
D(7) = 2-1=1
∆g (3,7) = D(3) + D(7) - 2* c(a,b) = 2 + 1 – 2 = 1
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
30
D(3) = 3-1=2
=> Der Austausch der Knoten 3 und 7 würde die Schnittkosten um 1 verringern
2
5
6
3
1
4
7
8
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Weiteres Knotenpaar auswählen
2
5
6
3
1
4
7
8Knoten 3:
D(3) = 3-1=2
Knoten 5:
D(5) = 2-1=1
∆g (3,5) = D(3) + D(5) - 2* c(a,b) = 2 + 1 – 0 = 3
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
31
4 8D(3) = 3-1=2
=> Der Austausch der Knoten 3 und 5 würde die Schnittkosten um 3 verringern.
2
5
6
3
1
4
7
8
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Gewinnwert zweier Knoten a und b
Das Ziel besteht darin,
die zwei Knoten a und b zu finden, deren Gewinnwert ∆g am größten von allen
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
32
Gewinnwert ∆g am größten von allen möglichen Knotenkombinationen ist,
und diese dann auszutauschen.
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Maximaler positiver Gewinn Gm eines Passes
Der maximale positive Gewinn Gm gibt die Folge von m Vertauschungen innerhalb eines Passes an, die zu einer maximalen Schnittkostenminimierung des Graphen führt.
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
33
Konkret ergibt sich Gm aus den aufaddierten Gewinnwerten ∆g von m hintereinander erfolgten Vertauschungen innerhalb eines Passes.
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Kernighan-Lin-Algorithmus
Schritt 0: V = Menge der 2n Knoten{A, B} sei eine willkürliche Anfangspartitionierung
Schritt 1:
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
34
Schritt 1: i = 1Berechnung von D(v) für alle Knoten v∈V
Schritt 2: Auswahl von ai und bijmit maximalem Gewinnwert ∆gi = D(ai) + D(bi) – 2 * c(aibi)Vertauschen und Fixieren von ai und bi
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Schritt 3: Wenn alle Knoten fixiert sind, weiter mit Schritt 4, andernfallsNeuberechnung der D-Werte für alle Knoten, welche nicht fixiert und mit ai und bi verbunden sindi = i + 1Weiter mit Schritt 2
Schritt 4:
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
35
Schritt 4: Bestimmung der Vertauschungssequenz 1 bis m (1 ≤ m ≤ i), so dass maximiert wirdWenn Gm > 0, weiter mit Schritt 5, andernfalls ENDE
Schritt 5: Durchführen aller m Vertauschungen, Beseitigen aller KnotenfixierungenWeiter mit Schritt 1.
∑ ==
m
i im gG1∆
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
Beispiel KL-Algorithmus:
2
5
6
3
1
7D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2
Kosten D(v) jedes Knotens:
Auswahl der Knoten für
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
36
3
4
7
8
Schnittkosten: 9Nicht fixiert: 1,2,3,4,5,6,7,8
D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
Auswahl der Knoten für maximalen Gewinnwert
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
2
5
6
3
1
7
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
37
3
4
7
8
Schnittkosten: 9Nicht fixiert: 1,2,3,4,5,6,7,8
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
Auswahl der Knoten für maximalen Gewinnwert
Positiver Gewinn des Passes
Kosten D(v) jedes Knotens:
Gewinnwert bei Knotentausch
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
38
Schnittkosten: 9Nicht fixiert: 1,2,3,4,5,6,7,8
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
Auswahl der Knoten für maximalen Gewinnwert
Positiver Gewinn des Passes
Gewinnwert bei Knotentausch
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
39
Schnittkosten: 9Nicht fixiert: 1,2,3,4,5,6,7,8
Schnittkosten: 6Nicht fixiert: 1,2,4,6,7,8
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
40
Schnittkosten: 9Nicht fixiert: 1,2,3,4,5,6,7,8
Schnittkosten: 6Nicht fixiert: 1,2,4,6,7,8
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1D(4) = 3 D(8)=-1
∆g2 = 3+2-0 = 5Austausch (4,6)G2 = G1+∆g2 =8
Auswahl der Knoten für maximalen Gewinnwert
Positiver Gewinn des Passes
Gewinnwert bei Knotentausch
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
41
Schnittkosten: 9Nicht fixiert: 1,2,3,4,5,6,7,8
Schnittkosten: 6Nicht fixiert: 1,2,4,6,7,8
Schnittkosten: 1Nicht fixiert: 1,2,7,8
Schnittkosten: 7Nicht fixiert: 2,8
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1D(4) = 3 D(8)=-1
∆g2 = 3+2-0 = 5Austausch (4,6)G2 = G1+∆g2 =8
D(1) = -3 D(7)=-3D(2) = -3 D(8)=-3
∆g3 = -3-3-0 = -6Austausch (1,7)G3= G2 +∆g3 = 2 Positiver Gewinn
des Passes
Auswahl der Knoten für maximalen Gewinnwert
Gewinnwert bei Knotentausch
2.4.1 Kernighan-Lin (KL)-Algorithmus: Beispiel
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
2
5
6
3
1
4
7
8
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
42
Schnittkosten: 9Nicht fixiert: 1,2,3,4,5,6,7,8
Schnittkosten: 9Nicht fixiert: –
Schnittkosten: 6Nicht fixiert: 1,2,4,6,7,8
Schnittkosten: 1Nicht fixiert: 1,2,7,8
Schnittkosten: 7Nicht fixiert: 2,8
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1D(4) = 3 D(8)=-1
∆g2 = 3+2-0 = 5Austausch (4,6)G2 = G1+∆g2 =8
D(1) = -3 D(7)=-3D(2) = -3 D(8)=-3
∆g3 = -3-3-0 = -6Austausch (1,7)G3= G2 +∆g3 = 2
D(2) = -1 D(8)=-1
∆g4 = -1-1-0 = -2Austausch (2,8)G4 = G3 +∆g4 = 0
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1D(4) = 3 D(8)=-1
∆g2 = 3+2-0 = 5Austausch (4,6)G2 = G1+∆g2 =8
D(1) = -3 D(7)=-3D(2) = -3 D(8)=-3
∆g3 = -3-3-0 = -6Austausch (1,7)G3= G2 +∆g3 = 2
D(2) = -1 D(8)=-1
∆g4 = -1-1-0 = -2Austausch (2,8)G4 = G3 +∆g4 = 0
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
43
Maximaler positiver Gewinn Gm = 8 bei m = 2.
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1D(4) = 3 D(8)=-1
∆g2 = 3+2-0 = 5Austausch (4,6)G2 = G1+∆g2 =8
D(1) = -3 D(7)=-3D(2) = -3 D(8)=-3
∆g3 = -3-3-0 = -6Austausch (1,7)G3= G2 +∆g3 = 2
D(2) = -1 D(8)=-1
∆g4 = -1-1-0 = -2Austausch (2,8)G4 = G3 +∆g4 = 0
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
44
Maximaler positiver Gewinn Gm = 8 bei m = 2.
Da Gm > 0, werden die m Vertauschungen (3,5) und (4,6) durchgeführt.
2
5
6
3
1
4
7
8
4.2.4 Partitionierungsalgorithmen –Kernighan-Lin (KL)-Algorithmus
D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1
∆g1 = 2+1-0 = 3Austausch (3,5)G1 = ∆g1 =3
D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1D(4) = 3 D(8)=-1
∆g2 = 3+2-0 = 5Austausch (4,6)G2 = G1+∆g2 =8
D(1) = -3 D(7)=-3D(2) = -3 D(8)=-3
∆g3 = -3-3-0 = -6Austausch (1,7)G3= G2 +∆g3 = 2
D(2) = -1 D(8)=-1
∆g4 = -1-1-0 = -2Austausch (2,8)G4 = G3 +∆g4 = 0
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
45
Maximaler positiver Gewinn Gm = 8 bei m = 2.
Da Gm > 0, weiterer Pass notwendig, bis Gm ≤ 0 während aller Vertauschungen.
Da Gm > 0, werden die m Vertauschungen (3,5) und (4,6) durchgeführt.
2
5
6
3
1
4
7
8
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Gegeben ist ein Graph mit Knoten (Zellen) und gewichteten Kanten zwischen beliebigen Knoten.
Gesucht ist die Aufteilung des Graphen in zwei Teilgraphen (Blöcke) A und B derart,
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
46
Teilgraphen (Blöcke) A und B derart, dass die Anzahl der Netze zwischen beiden Teilgraphen minimiert und gleichzeitig ein vorgegebenes Größenverhältnis der durch die Teilgraphen repräsentierten Blöcke eingehalten wird.
4.2.4 Partitionierungsalgorithmen –Fiduccia-Mattheyses (FM)-Algorithmus
Gewinnwert einer Zelle ∆g(c)
∆g(c) = FS(c) – TE(c)
wobei
FS(c) die Anzahl der mit der Zelle c verbundenen 1
3
4
2
5
ab
cd
e
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
47
FS(c) die Anzahl der mit der Zelle c verbundenen Netze darstellt, die nicht mit anderen Zellen im gegenwärtigen Block der Zelle c verbunden sind (durch die Schnittlinie kommend nur die Zelle c verbinden) und
TE(c) die Anzahl der mit der Zelle c verbundenen Netze ist, die nicht die Schnittlinie kreuzen
Je höher der Gewinnwert ∆g(c) einer Zelle cist, umso sinnvoller ist es hinsichtlich einer Minimierung der Schnittmenge, diese Zelle in den anderen Block zu verschieben.
Zelle 2:
FS(2) = 0 TE(2) = 1 ∆g(2) = -1Netz b nicht, Netz ada nicht nurmit 2, sondern auch mit 1 verbunden
Zelle 4:
FS(4) = 1 TE(4) = 1 ∆g(2) = -1
Netz c Netz e
4.2.4 Partitionierungsalgorithmen –Fiduccia-Mattheyses (FM)-Algorithmus
Gewinnwert ∆g(c) aller Zellen
Zelle 1: FS(1) = 2 TE(1) = 1 ∆g(2) = 1
Zelle 2: FS(2) = 0 TE(2) = 1 ∆g(2) = -1
Zelle 3: FS(3) = 1 TE(3) = 1 ∆g(3) = 0
Zelle 4: FS(4) = 1 TE(4) = 1 ∆g(4) = 01
3
4
2
5
ab
cd
e
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
48
Zelle 4: FS(4) = 1 TE(4) = 1 ∆g(4) = 0
Zelle 5: FS(5) = 1 TE(5) = 0 ∆g(5) = 1
1
3
4
2
5
ab
cd
e
Ergebnis der Zellverschiebung
bei Auswahl Zelle 1
4.2.4 Partitionierungsalgorithmen –Fiduccia-Mattheyses (FM)-Algorithmus
Maximaler positiver Gewinn Gm eines Passes
Der maximale positive Gewinn Gm gibt die Folge von m Verschiebungen innerhalb eines Passes an, die zu einer maximalen Schnittkostenminimierung führt.
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
49
Konkret ergibt sich Gm aus den aufaddierten Gewinnwerten ∆g von m hintereinander erfolgten Verschiebungen innerhalb eines Passes.
Pass: Folge von Verschiebungen angewandt auf beliebige Anfangsverteilung bis jeder Knoten aus G genau einmal für eine mögliche Verschiebung ausgewählt wurde.
4.2.4 Partitionierungsalgorithmen –Fiduccia-Mattheyses (FM)-Algorithmus
Verhältnisfaktor und Gleichgewichtskriterium
Da beim FM-Algorithmus die Zellen einzeln verschoben werden, ist eine Berücksichtigung der Partitionierungsgrößen bei jeder Zellenverschiebung notwendig.
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
50
Ansonsten könnte eine Partition völlig veerschwinden zw. Gegenüber der anderen zu klein werden.
Mittels eines sog. Verhältnisfaktors r wird ein angestrebtes Größenverhältnis der Flächen A und B ausgedrückt:
BBBBAAAAAAAA
rrrr+
=
4.2.4 Partitionierungsalgorithmen –Fiduccia-Mattheyses (FM)-Algorithmus
Verhältnisfaktor und Gleichgewichtskriterium
Mit einem vom Verhältnisfaktor r ableitbaren Gleichgewichtskriterium lässt sich jede Zellenverschiebung auf Einhaltung des durch r vorgegebenen Größenverhältnisses beider Teilflächen verifizieren.
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
51
maxmax sVrAsVr +⋅≤≤−⋅
4.2.4 Partitionierungsalgorithmen –Fiduccia-Mattheyses (FM)-AlgorithmusBasiszelle
Die zur Verschiebung ausgewählte Zelle wird als Basiszelle bezeichnet.
Diese besitzt den maximalen Zellengewinnwert ∆g(c) unter allen verschiebbaren Zellen und verletzt durch ihre Verschiebung nicht
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
52
Zelle 1: FS(1) = 2 TE(1) = 1 ∆g(2) = 1
Zelle 2: FS(2) = 0 TE(2) = 1 ∆g(2) = -1
Zelle 3: FS(3) = 1 TE(3) = 1 ∆g(3) = 0
Zelle 4: FS(4) = 1 TE(4) = 1 ∆g(4) = 0
Zelle 5: FS(5) = 1 TE(5) = 0 ∆g(5) = 1
verschiebbaren Zellen und verletzt durch ihre Verschiebung nichtdas Gleichgewichtskriterium.
Basiszelle
Zelle 1 erfüllt
Gleichgewichtskriterium besser
als Zelle 5
(s. später Folie 57)
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Fiduccia-Mattheyses-Algorithmus
Schritt 0: Errechnen des Gleichgewichtskriteriums
Schritt 1: Ermitteln des Gewinns ∆g1 jeder Zelle
Schritt 2: i = 1•
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
53
• Auswahl der Basiszelle c1 mit maximalem Gewinnwert ∆g1, Verschiebung dieser Zelle
Schritt 3: • Fixierung der Basiszelle ci
• Gewinnwert-Aktualisierung der Zellen, die durch kritische Netze mit der Basiszelle ci verbunden sind
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Schritt 4:• Wenn alle Zellen fixiert sind, weiter mit Schritt 5, andernfalls• Auswahl der nächsten Basiszelle ci mit maximalem Gewinnwert
∆gi und Verschiebung dieser Zelle• i = i + 1, weiter mit Schritt 3
Schritt 5:
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
54
Schritt 5: • Ermitteln der besten Verschiebungsfolge c1, c2, .., cm (1 ≤ m ≤ i)
, so dass maximiert wird• Wenn Gm > 0, weiter mit Schritt 6, andernfalls ENDE
Schritt 6: • Durchführen aller m Vertauschungen, Beseitigen aller
Zellenfixierungen• Neuer Pass, dazu weiter mit Schritt 1
∑ ==
m
i im gG1∆
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Beispiel:
3
4
2A B
ab
cd
e
Gegeben:Verhältnisfaktor r = 0,375s(Zelle_1) = 2 s(Zelle_2) = 4 s(Zelle_3) = 1 s(Zelle_4) = 4
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
55
1 5d
s(Zelle_5) = 5.
Schritt 0 : Errechnen des Gleichgewichtskriteriums
0,375 * 16 – 5 = 1 ≤≤≤≤ | A | ≤≤≤≤ 11 = 0,375 * 16 + 5
maxmax sVrAsVr +⋅≤≤−⋅
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
1
3
4
2
5
A B
ab
cd
e
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
56
Schritt 1 : Ermitteln der Gewinnwerte jeder ZelleZelle 1:
• Zwei Netze (c, d) sind nur mit Zelle 1 in deren Block verbunden und passieren die Schnittline, d.h. FS(Zelle_1) = 2
• Ein Netz (a) ist mit Zelle 1 verbunden und wird nicht geschnitten, d.h. TE(Zelle_1) = 1
• ∆g(Zelle_1) = 2 - 1 =1, d.h. Anzahl der geschnittenen Netze reduziert sich um eins (von drei auf zwei), sollte Zelle 1 von A nach B verschoben werden
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Analoge Berechnung der anderen Zellen:• Zelle 1: FS(Zelle_1) = 2 TE(Zelle_1) = 1 ∆g(Zelle_1) = 1• Zelle 2: FS(Zelle_2) = 0 TE(Zelle_2) = 1 ∆g(Zelle_2) = -1• Zelle 3: FS(Zelle_3) = 1 TE(Zelle_3) = 1 ∆g(Zelle_3) = 0 • Zelle 4: FS(Zelle_4) = 1 TE(Zelle_4) = 1 ∆g(Zelle_4) = 0• Zelle 5: FS(Zelle_5) = 1 TE(Zelle_5) = 0 ∆g(Zelle_5) = 1
Schritt 2 : Auswahl der Basiszelle und Verschiebung
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
57
Schritt 2 : Auswahl der Basiszelle und VerschiebungMögliche Basiszellen: Zelle 1 und Zelle 5Gleichgewichtskriterium nach Verschiebung von Zelle 1: A = s(2) = 4Gleichgewichtskriterium nach Verschiebung von Zelle 5: A = s(1) + s(2) + s(5) = 11 .Beide Verschiebungen verletzen somit nicht das Gleichgewichtskriterium 1 ≤ A ≤ 11
Zelle 1 wird aufgrund der besseren Erfüllung als Basiszelle ausgewählt und verschoben.
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Schritt 3 : Zellenfixierung und Gewinnwert-AktualisierungZelle 1 fixieren, neue Anordnung:
3
4
2A B
ab
c
e
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
58
Gewinnwert aktualisieren von allen verschiebbaren Zellen, die mit Zelle 1 verbunden sind:
• Zelle 2: FS(Zelle_2) = 2 TE(Zelle_2) = 0 ∆g(Zelle_2) = 2• Zelle 3: FS(Zelle_3) = 0 TE(Zelle_3) = 1 ∆g(Zelle_3) = -1• Zelle 4: FS(Zelle_4) = 0 TE(Zelle_4) = 2 ∆g(Zelle_4) = -2• Zelle 5: FS(Zelle_5) = 0 TE(Zelle_5) = 1 ∆g(Zelle_5) = -1
Nach Iteration i = 1: zwei Partitionen A1 = { 2 }, B1 = { 1,3,4,5 }, davon fixiert { 1 }
1 5d
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Schritt 4 : Auswahl und Verschiebung einer Basiszelle; Zellenfixierung; Gewinnwert-Aktualisierung
Iteration i = 2• Gemäß obigem Schritt 3: Zelle 2 mit maximalem Gewinnwert ∆g2 = 2
A = 0, d.h. Gleichgewichtskriterium nicht erfüllt• Zelle 3 mit nächstem maximalen Gewinnwert ∆g2 = -1
A = 5, d.h. Gleichgewichtskriterium erfüllt • Zelle 5 mit nächstem maximalen Gewinnwert ∆g2= -1
A = 9, d.h. Gleichgewichtskriterium erfüllt
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
59
2A = 9, d.h. Gleichgewichtskriterium erfüllt
• Zelle 3 wird verschobenMengenverteilung A2 = { 2,3 }, B2 = { 1,4,5 }, davon fixiert { 1,3 }
1
3
4
2
5
A B
a b
cd
e Zelle 2: FS(2) = 1 TE(2) = 0 ∆g(2) = 1
Zelle 4: FS(4) = 1 TE(4) = 1 ∆g(4) = 0
Zelle 5: FS(5) = 0 TE(5) = 1 ∆g(5) = -1
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Iteration i = 3 • ∆g3(Zelle_2) = 1 ∆g3(Zelle_4) = 0 ∆g3(Zelle_5) = -1• Zelle 2 mit maximalem Gewinnwert ∆g3 = 1
A = 1, d.h. Gleichgewichtskriterium erfüllt • Zelle 2 wird verschoben, Mengenverteilung A3 = { 3 }, B3 = { 1,2,4,5 },
davon fixiert { 1,2,3 }
Iteration i = 4 •
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
60
• ∆g4(Zelle_4) = 0 ∆g4(Zelle_5) = -1, wie vorher, da verschobene Zelle 2 nicht mit Zelle 4 und Zelle 5 verbunden
• Zelle 4 mit maximalem Gewinnwert ∆g4 = 0, A = 5, d.h. Gleichgewichtskriterium erfüllt
• Mengenverteilung A4 = { 3,4 }, B4 = { 1,2,5 }, davon fixiert {1,2,3,4}
Iteration i = 5 • ∆g5(Zelle_5) = -1, wie vorher• Zelle 5 mit maximalem Gewinnwert ∆g5 = -1,
A = 10, d.h. Gleichgewichtskriterium erfüllt• Mengenverteilung A5 = { 3,4,5 }, B5 = { 1,2 }, alle Zellen fixiert• Pass 1 beendet; weiter mit Schritt 5.
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Schritt 5 : Ermittlung der besten Verschiebungsfolge 1 … mG1 = ∆g1 = 1G2 = ∆g1 + ∆g2 = 0G3 = ∆g1 + ∆g2 + ∆g3 = 1G4 = ∆g1 + ∆g2 + ∆g3 + ∆g4 = 1G = ∆g + ∆g + ∆g + ∆g + ∆g = 0.
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
61
G5 = ∆g1 + ∆g2 + ∆g3 + ∆g4 + ∆g5 = 0.
Maximaler positiver Gewinn in Iterationen 1, 3 und 4.
Aufgrund des ausgewogeneren Gleichgewichtskriteriums (A = 5) wird Iteration 4 gewählt, d.h. m = 4.
4.2.4 Partitionierungsalgorithmen – Fiduccia-Mattheyses (FM)-Algorithmus
Schritt 6 : Verschiebung der ersten m Zellen tatsächlich durchführen
Da m = 4, werden nur die ersten vier ausgewählten Zellen (Zellen 1, 3, 2, 4) verschoben.Ergebnis von Pass 1:Mengenverteilung A = 3,4, B = 1,2,5, Schnittkosten von 3 auf 2 reduziert.
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
62
3 auf 2 reduziert.
B
1
3
4
2
5
Aa
b
cd
e
1
3
4
2
5
A B
ab
cd
e
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
KL-Algorithmen finden lokales Optimum abhängig von AusgangssituationZiel von Simulated Annealing
Globales Optimum zu findenDurch „Heraushüpfen“ aus lokalem Optimum durch zeitweises Zulassen verschlechternder Bedingungen
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
63 Lösungszustände
KostenAnfangslösung
Lokales Optimum Globales
Optimum
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
begin T = T0 , i = 0 /* Initialisierung */ cur_part = init_part /* Anfangspartitionierung */ cur_cost = COST(cur_part) /* Anfangsqualität */ repeat
repeat i = i + 1 ai = SELECT(A), bi = SELECT(B) trial_part = EXCHANGE(ai, bi, cur_part) /* Tauschversuch */ trial_cost = COST(trial_part) ∆cost = trial_cost – cur_cost
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
64
∆cost = trial_cost – cur_cost if( ∆cost < 0 ) then /* wenn Verbesserung */
cur_cost = trial_cost /* Tauschdurchführung */ cur_part = MOVE(ai, bi)
else /* ansonsten */ r = RANDOM(0,1) /* Zufallszahl */
if( r < Tecost∆−
) then /* bedingter */ cur_cost = trial_cost /* Tausch */ cur_part = MOVE(ai, bi)
until ( Abbruchkriterium, z.B. Gleichgewicht bei T, erreicht ) T = α * T /* 0 < α < 1 */ /* Temperatur-Reduktion */
until ( T < Tmin ) end
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
Gegeben: Schaltung mit sechs Zellen und sechs Netzen, wobei alle Zellen identische Größe besitzen, sowie Netzliste mit Netzgewichten
Gesucht: Aufteilung in zwei Blöcke A und B mit jeweils drei Zellen und minimalen Kosten
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
65
w6 = 4N6 = (2, 3, 6)
w5 = 1N5 = (1, 5)
w4 = 3N4 = (4, 5)
w3 = 2N3 = (2, 3, 6)
w2 = 2N2 = (1, 2, 5, 6)
w1 = 4N1 = (1, 4, 5)
GewichteNetze1 4
2 5
3 6
N5
N1
N2
N3
N6
N4
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
Parameter des SA-Algorithmus
Anfangstemperatur: T0 = 10, Abbruch bei T < 3,5
Anfangspartitionierung: init_part A{1,2, 3}, B{4, 5, 6}
Anzahl der Austauschversuche pro Temperaturschritt T: 4
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
66
Temperaturabnahme: α = 0,7
Austauschfunktion EXCHANGE(): Paarweiser Tausch der Zellen zwischen A und B
Minimierung der Zielfunktion COST(): Summe der Netzgewichte der geschnittenen Netze
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
Ergebnisse der einzelnen Iterationen
Zähler i
T ai, bi cur_cost trial_cost Zufallszahl r
T
cost
e∆−
Tausch
1 10,00 3,4 13 16 0,21713 0,74082 Ja 2 10,00 2,3 16 16 0,66138 1 Ja 3 10,00 4,6 16 13 Ja 4 10,00 1,2 13 2 Ja 5 7,00 2,5 2 16 0,11209 0,13534 Ja
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
67
5 7,00 2,5 2 16 0,11209 0,13534 Ja 6 7,00 1,5 16 13 Ja 7 7,00 1,4 13 15 0,33190 0,75148 Ja 8 7,00 2,6 15 15 0,12564 1 Ja 9 4,90 1,3 15 16 0,70105 0,81540 Ja 10 4,90 3,4 16 13 Ja 11 4,90 1,6 13 2 Ja 12 4,90 5,6 2 16 0,49375 0,05743 Nein 13 3,43 1,3 2 13 0,86493 0,04048 Nein 14 3,43 2,5 2 16 0,34371 0,01688 Nein 15 3,43 1,6 2 13 0,73232 0,04048 Nein 16 3,43 1,2 2 13 0,02093 0,04048 Ja
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
Veranschaulichung ausgewählter Iterationen i:i = 4 (T = 10): Selektierte Zellen zum Tausch sind 1, 2;cur_cost = 13, trial_cost = 2, d.h. Tausch wird akzeptiert
Zähler i
T ai, bi cur_cost trial_cost Zufallszahl r
T
cost
e∆−
Tausch
1 10,00 3,4 13 16 0,21713 0,74082 Ja
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
68
1 10,00 3,4 13 16 0,21713 0,74082 Ja 2 10,00 2,3 16 16 0,66138 1 Ja 3 10,00 4,6 16 13 Ja 4 10,00 1,2 13 2 Ja 5 7,00 2,5 2 16 0,11209 0,13534 Ja 6 7,00 1,5 16 13 Ja 7 7,00 1,4 13 15 0,33190 0,75148 Ja 8 7,00 2,6 15 15 0,12564 1 Ja 9 4,90 1,3 15 16 0,70105 0,81540 Ja 10 4,90 3,4 16 13 Ja 11 4,90 1,6 13 2 Ja 12 4,90 5,6 2 16 0,49375 0,05743 Nein 13 3,43 1,3 2 13 0,86493 0,04048 Nein 14 3,43 2,5 2 16 0,34371 0,01688 Nein 15 3,43 1,6 2 13 0,73232 0,04048 Nein 16 3,43 1,2 2 13 0,02093 0,04048 Ja
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
Veranschaulichung ausgewählter Iterationen i:i = 5 (T = 7):
• Selektierte Zellen zum Tausch sind 2, 5; cur_cost = 2, trial_cost= 16, d.h. Zufallszahl wird generiert: 0,11209
• 0,11209 < e-14/7 = 0,13534, d.h. Tausch wird akzeptiert. Zähler i
T ai, bi cur_cost trial_cost Zufallszahl r
T
cost
e∆−
Tausch
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
69
i r e 1 10,00 3,4 13 16 0,21713 0,74082 Ja 2 10,00 2,3 16 16 0,66138 1 Ja 3 10,00 4,6 16 13 Ja 4 10,00 1,2 13 2 Ja 5 7,00 2,5 2 16 0,11209 0,13534 Ja 6 7,00 1,5 16 13 Ja 7 7,00 1,4 13 15 0,33190 0,75148 Ja 8 7,00 2,6 15 15 0,12564 1 Ja 9 4,90 1,3 15 16 0,70105 0,81540 Ja 10 4,90 3,4 16 13 Ja 11 4,90 1,6 13 2 Ja 12 4,90 5,6 2 16 0,49375 0,05743 Nein 13 3,43 1,3 2 13 0,86493 0,04048 Nein 14 3,43 2,5 2 16 0,34371 0,01688 Nein 15 3,43 1,6 2 13 0,73232 0,04048 Nein 16 3,43 1,2 2 13 0,02093 0,04048 Ja
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
Veranschaulichung ausgewählter Iterationen i:i = 12-15 (T = 4,9 bzw. T = 3,43):
• trial_cost jeweils größer als cur_cost und Zufallszahl r jeweils größer als , d.h. Vertauschungen nicht akzeptiert
Zähler i
T ai, bi cur_cost trial_cost Zufallszahl r
T
cost
e∆−
Tausch
1 10,00 3,4 13 16 0,21713 0,74082 Ja
Tte /cos∆−
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
70
1 10,00 3,4 13 16 0,21713 0,74082 Ja 2 10,00 2,3 16 16 0,66138 1 Ja 3 10,00 4,6 16 13 Ja 4 10,00 1,2 13 2 Ja 5 7,00 2,5 2 16 0,11209 0,13534 Ja 6 7,00 1,5 16 13 Ja 7 7,00 1,4 13 15 0,33190 0,75148 Ja 8 7,00 2,6 15 15 0,12564 1 Ja 9 4,90 1,3 15 16 0,70105 0,81540 Ja 10 4,90 3,4 16 13 Ja 11 4,90 1,6 13 2 Ja 12 4,90 5,6 2 16 0,49375 0,05743 Nein 13 3,43 1,3 2 13 0,86493 0,04048 Nein 14 3,43 2,5 2 16 0,34371 0,01688 Nein 15 3,43 1,6 2 13 0,73232 0,04048 Nein 16 3,43 1,2 2 13 0,02093 0,04048 Ja
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
In der 4. Iteration (i = 4) erreicht der SA-Algorithmus einen Kostenwert von 2, welcher den besten erzielbaren Wert darstellt.
Dieser repräsentiert die Summe der Netzgewichte der geschnittenen Netze (hier Netz 2 mit w2 = 2).
Wie dem detaillierten Ablauf zu entnehmen ist, wurde
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
71
Wie dem detaillierten Ablauf zu entnehmen ist, wurde dieses Optimum durch die vorherige Akzeptanz von einer schlechteren Lösung in der 1. Iteration erreicht.
Die beste Lösung entspricht einer Partitionierung von A{2, 3, 6} und B{1, 4, 5}.
1 4
N5
N1
N4
1 4
N5
N1
N4
A B B
4.2.4 Partitionierungsalgorithmen –Simulated Annealing
Die beste Lösung entspricht einer Partitionierung von A {2,3,6} und B {1,4,5}
Vorlesung Einführung in ASIC-DesignWS 2009/10
Prof. Dr.-Ing.Dietmar Fey
LehrstuhlInformatik 3 -Rechnerarchitektur
72
Anfangspartitionierung:A {1,2,3}, B {4,5,6}Kosten: 13
Erzielte Lösung:A {2,3,6}, B {1,4,5}Kosten: 2
2 5
3 6
N2
N3
N6
2 5
3 6
N2
N3
N6
A