Mikroarchitektursynthese - Synthese aus funktionalen Spezifikationen -

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Fast Fourier Transformation
Matrixmultiplikation
Eulerscher Polyedersatz
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
2.3 Register-Transfer-Strukturen
P. Marwedel Informatik 12, U. Dortmund
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Geometrie von Objektoberflächen
Rechnergestützter Entwurf von Mikroelektronik
Mikroarchitektursynthese - Scheduling -
Peter Marwedel Informatik 12
Peter Marwedel TU Dortmund, Informatik 12
Fakultät für informatik informatik 12 technische universität dortmund 3. Mikroarchitekturen Peter Marwedel Informatik 12 TU Dortmund 2011/04/28 Diese Folien.
Verifizieren versus Berechnen
Java: Objektorientierte Programmierung
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Rechneraufbau & Rechnerstrukturen, Folie 6.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 6.
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
Rechneraufbau & Rechnerstrukturen, Folie 5.1 © 2006 W. Oberschelp, G. Vossen.
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Selbstverständnis der Mathematik
Diskrete Mathematik I Vorlesung Arrays-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Christian Schindelhauer
Christian Schindelhauer
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Inhalte und Maßnahmen eingegeben haben,
Kennlinie Lichtregelung in JavaNNS Version 1.1
Christian Steinle, Joachim Gläß, Reinhard Männer
Grundschutztools
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
2.3 Register-Transfer-Strukturen
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
Vielstoffthermodynamik
Fachprojekte „Entwurf Eingebetteter Systeme”
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Diskrete Mathematik II
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Analyse von Ablaufdiagrammen
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Managemententscheidungsunterstützungssysteme (Ausgewählte Methoden und Fallstudien) ( Die Thesen zur Vorlesung 3) Thema der Vorlesung Lösung der linearen.
LOD Levels of Detail Oliver Gassner Christian Troger.
Analyseprodukte numerischer Modelle
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
Rechnerstrukturen 3b. Endliche Automaten.
Fakultät für informatik informatik 12 technische universität dortmund Lab 2: Heterogeneous System Modeling in Ptolemy - Session 6 - Peter Marwedel Heiko.
 Präsentation transkript:

Mikroarchitektursynthese - Synthese aus funktionalen Spezifikationen - Peter Marwedel TU Dortmund, Informatik 12

Übersicht Einführung SystemC FPGAs Synthese-Algorithmen Vorlesungen und Programmierung FPGAs Vorlesungen VHDL-basierte Konfiguration von FPGAs mit dem XUP V II Pro Entwicklungssystem Synthese-Algorithmen Mikroarchitektur-Synthese Synthese aus funktionalen Spezifikationen Synthese aus imperativen Spezifikationen Logik- und Controllersynthese …

Von der Spezifikation zur Implementierung Nachteile der Simulation: Nicht vollständig bzgl. Eingabedaten Manuel zu erstellen u. U. Fehlerhaftes/Unvollständiges Modell Lange Simulationszeiten Synthese als Ausweg? Def: Synthese ist das Zusammensetzen von Komponenten oder Teilen einer niedrigen (Modell-) Ebene zu einem Ganzen mit dem Ziel, ein auf einer höheren Ebene beschriebenes Verhalten zu erzielen. ( [Advanced-Learners]). Problem: Synthese selten voll automatische Nur in wenigen Fällen ist die Korrektheit bewiesen worden.  Simulation weiterhin notwendig!

Mögliche Entwurfsebenen Verhalten Struktur Geometrie Vollständige Systeme Verhalten des Gesamtsystems Komponenten des Gesamtsystems Geometrie des Gesamtsystems ….. Algorithmische Ebene Entsprechend Berechnungsmodell z.B. Knoten eines Taskgraphen Abb. von Berechungen auf geometr. Inform. PMS-Ebene Gesamtverhalten eines Multiprozessormodells Processor, Memory, Switch Geometrische Inform. zu PMS-Komponenten Instruction-Set Architecture Befehlssemantik Arithmetische & Transport-Operationen Zuordnung zur Fest-/Fließkommaeinheit Register-Transfer-Ebene Register-Transfers Register, RAMs, ALUs Layout von RT-Bausteinen Logik-Ebene Boolesche Gleichungen Gatter, Flip-Flops Geometrieinformation zu Gattern & Flip-Flops Schaltkreisebene Netzwerkgleichungen Transistoren Schaltkreis-Layout Bauelementebene Gleichungen f. Gatter Gates, Kanäle Bauelemetlayout Prozessebene Diffusions-Verhalten Kristallgitter Masken

Unterschiedliche Ziele und Quellen; Formen der Synthese Unterschiedliche Ziele und Quellen; mögliche Darstellung: Algorithmus, “behavioral” (untimed) Algorithmus, “behavioral” (timed) RT-Verhalten RT-Struktur-Ebene Gatter Layout Catapult Celoxica, u.a. XST

Formen der Spezifikation Imperative Beschreibung (SystemC, C, …) … Funktionales Verhalten (im Sinne der Mathematik)  Synthese von systolischen Feldern aus funktionalen Spezifikationen

Systolisches Feld A systolic array is a special-purpose parallel device, made out of a few simple cell types which are regularly and locally connected. [ H.T. Kung ] Beispiel: Parallele Eingabe: Einfache Zellen („CondSwap“, „Nop“): Reguläre Struktur:    

Prozessoren führen feste Befehle aus. Beispiel für ein systolisches Feld: odd-even transposition sort (OETS), n=8 8 7 6 5 4 3 2 1     7 8 5 6 3 4 1 2    7 5 8 3 6 1 4 2 Daten werden synchron durch ein- oder zweidimensionale Felder "gepumpt" und dabei werden auf diesen Daten Berechnungen ausgeführt.     5 7 3 8 1 6 2 4    5 3 7 1 8 2 6 4     3 5 1 7 2 8 4 6    3 1 5 2 7 4 8 6     1 3 2 5 4 7 6 8 Prozessoren führen feste Befehle aus.    1 2 3 4 5 6 7 8

Behauptung: systolisches Array für Matrixmultiplikation Wie kann man systolische Arrays systematisch konstruieren?

Ansatz zur Konstruktion: Vorgabe von Rekursionsformeln Beispiele:  P. Quinton: Automatic Synthesis of Systolic Arrays from Recurrent Equations, Ann. Symp. On Computer Architecture, 1984, S. 209 ff

Voraussetzung der Methode von Quinton Rekursionsgleichungen der Form ℤn Raum D von Berechnungen Die Vektoren mj mit j  {1..p} heißen Abhängigkeitsvektoren Die Knoten aus dem Gebiet D  ℤn zusammen mit den Kanten M = {m1, …, mp} bilden den Abhängigkeitsgraphen G = (D,M). x  D heißt abhängig von y  falls  i : x = y –mi.

Beispiel: Faltung Faltung eines Vektors mit einem Vektor von Gewichten

Vergleich von aktueller Form und Ziel Jetzt:

Erweiterung von y(i) zu Y(i,k) Def.:  D  ℤ2 2-dimensionale Beschreibung von w und x: Def.: Def.:

2-dimensionale Form der Rekursionsgleichungen i0, k, 0≤k≤K: Y(i,k)=Y(i,k-1)+W(i-1,k)*X(i-1,k-1) W(i,k)=W(i-1,k) X(i,k)=X(i-1,k-1) Mit i0: Y(i,-1)=0 i0: X(i-1,-1)=x(i) k, 0≤k≤K: W(-1,k)=w(k) k, 0≤k≤K: X(-1,k-1)=0 m1=(0,1) m2=(1,0) m3=(1,1)

Abhängigkeitsgraph für das Faltungsbeispiel Mit m1=(0,1), m2=(1,0), m3=(1,1) ergibt sich der Abhängig-keitsgraph.

Suche nach einer Timing-Funktion (Scheduling) Zuordnung  : Operation  Ausführungszeiten. Bedingungen an  :  : ℤn  ℤ: uD :  (u )0 und u,vD : u abhängig von v   (u ) >  (v ) Y Y Y Y Im Beispiel: Die Berechnung von Y(2,2) wird eine Zeiteinheit (Takt) nach den Berechnungen von Y(1,2) und Y(2,1) sowie zwei Zeiteinheiten nach der Berechnung von Y(1,1) ausgeführt. Y Y Y Y

Suche nach einer Prozessorzuordnung m q

Bestimmung von Verbindungen und Registern Für die Verzögerung des Stroms der Werte werden Register benötigt. 2 x-Werte: verzögerte Weiterleitung in der Diagonalen w-Werte: fest in Prozessoren gespeichert y-Werte: werden unverzögert vertikal weitergeleitet.

Ablauf (1) x(0)

Ablauf (2) x(0) x(0)*w(0) x(1)

Ablauf (3) x(0)*w(0)+0*w(1) x(0) x(1)*w(0) x(1) x(2)

Ablauf (4) x(0)*w(0)+0*w(1)+0*w(2) x(0) x(1)*w(0)+x(0)*w(1) x(1)

Ablauf (5) x(0)*w(0)+0*w(1)+0*w(2) x(1)*w(0)+x(0)*w(1) x(0)

Ablauf (6) x(0)*w(0)+0*w(1)+0*w(2) x(1)*w(0)+x(0)*w(1) x(0) x(2)*w(0)+x(1)*w(1)+x(0)*w(2) x(1) x(3)*w(0)+x(2)*w(1) x(2) x(3) x(4) x(4)*w(0) x(5)

Ablauf (7) x(0)*w(0)+0*w(1)+0*w(2) x(1)*w(0)+x(0)*w(1) x(2)*w(0)+x(1)*w(1)+x(0)*w(2) x(3)*w(0)+x(2)*w(1)+x(1)*w(2) x(2) x(4)*w(0)+x(3)*w(1) x(3) x(4) x(5)*w(0) x(5) x(6)

Weitere Arbeiten zu systolischen Feldern Kung (ex-CMU), „you just pump the data through“; Gilt als „Vater“ der systolischen Arrays. Hat früher vorhandenen Ansätzen den Namen gegeben. Monica Lam Moldovan …

Instruction systolic array (ISA) Ursprung: Uni Kiel (Schmeck, Schimmler, Lang, Schröder) Interface Processors Interface Processors North . . . . Communication- Register Interface Processors West ISA . . . . Source: www.cs.umd.edu/class/spring2003/ cmsc838t/slides/reddyg.ppt

Instruction Systolic Array + row selectors column selectors instructions * - + - * - + * + * - * + - + * - * - + - + * + * - - wavefront instruction execution  fast accumulation operations (e.g. row sum, broadcast, ringshift)

Advantage of ISA’s: Performing Aggregate Functions Row Broadcast C := C[WEST] C = 234 C = 0 234 C := CW C := CW C = 234 C = 0 234 C = 234 C = 0 234 C := CW C = 234 234 C := CW Row Sum C := C + C[WEST] C = 1 C = 3 C:=C+CW C = 6 C = 4 noop C = 1 C = 2 C = 3 C = 4 C = 1 C = 3 C:=C+CW C = 4 C = 1 C = 3 C = 6 C:=C+CW C = 10 Row Ringshift C := C[WEST]; C:=C[EAST] noop C = 1000 C = 1 C := CW C = 1 C = 1000 C:=CW C:=CE C := CW C = 1 C = 1000 C:=CW C:=CE C := CW C = 1 C = 1000 C:=CW C:=CE

Weiteres zu ISAs Weitere Infos Interaktive Demos: http://www.iti.fh-flensburg.de/lang/papers/isa/index.htm http://www.iti.fh-flensburg.de/lang/ papers/isa/index.htm

Realisierung von systolischen Arrays mit FPGAs Beispiele u.a.: Systematische Implementierung von Walsh-Hadamard Transformationen //www.ll.mit.edu/HPEC/agendas/proc02/ presentations/HPEC%20Day%201/Session%202/2.4fang-new.ppt Viterbi Decoder mit systolischen Algorithmus in FPGA realisiert: //www.ee.nthu.edu.tw/~jtchen/com5128/handout/ho4.ppt (?) (Viele weitere) …

Zusammenfassung Begriff der Synthese, Nutzung zur (sicheren) Erzeugung von Implementierungen Prinzip von systolischen Arrays Projektsmethode von Quinton zur systematischen Erzeugung von systolischen Arrays Schieben von Befehlen: instruction systolic array (ISA) Realisierung von systolischen Arrays mit FPGAs