43
fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese: Systolische Arrays Michael Engel Informatik 12 TU Dortmund

Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

fakultät für informatik informatik 12

technische universität dortmund

2011/06/10

Synthese Eingebetteter Systeme Sommersemester 2011

13 – Synthese: Systolische Arrays

Michael Engel Informatik 12 TU Dortmund

Page 2: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 2 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Synthese: Systolische Arrays

 Granularität paralleler Systeme  Systolische Felder  Systolische Instruktionsfelder

Page 3: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 3 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Granularität paralleler Systeme

  “Klassische” Hardwaresynthese erlaubt die Erzeugung feingranularer Parallelität

•  Aufwendig  Basiselemente haben meist geringe Komplexität

•  Gatter, Flip-Flops, Addierer…  Lässt sich Parallelität auch effizient mit groberer

Granularität realisieren?

Gatter → ??? → Multicores → verteilte Systeme

 Systolische Felder •  Ersetzung eines Prozessors durch Array gleichartiger

Verarbeitungskomponenten

Page 4: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 4 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolische Felder

 Ein systolisches Feld (systolic array) ist ein anwendungs-spezifisches paralleles System aus einigen wenigen einfachen Zelltypen

•  Zellen sind regulär und lokal verbunden [ H.T. Kung ]

Beispiel:

  Parallele Eingabe:

  Einfache Zellen („CondSwap“, „Nop“):

  Reguläre Struktur:

Page 5: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 5 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolische Felder

 Systolische Arrays sind datenstromgetrieben •  Verwaltung von Datenzählern •  Gegenentwurf zur von-Neumann-Architektur

 Funktion der Zellen •  auch “DPU” (Data Processing Unit)

genannt •  Ähnlich zu einer CPU •  Aber: Kein Programmzähler (PC)

 Transport triggered (Datenstromgetrieben)

•  Zelle leitet Ergebnis direkt nach Ende der Berechnung an Folgezellen weiter

Page 6: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 6 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolische Felder

 Vergleich mit anderen parallelen Strukturen

 Systolische Felder ↔ Pipelining •  Nicht-lineare Array-Strukturen •  Datenfluss in mehrere Richtungen •  Jede Zelle kann (kleine) lokale Daten/Befehlsspeicher

besitzen  Systolische Felder ↔ SIMD

•  Jede Zelle kann eine unterschiedliche Funktion ausführen

Page 7: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 7 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Beispiel für ein systolisches Feld: odd-even transposition sort (OETS), n=8

•  Daten werden synchron durch ein- oder zweidimensionale Felder "gepumpt“. Dabei werden auf diesen Daten Berechnungen ausgeführt.

→ → → →

→ → → →

→ → → →

→ → → →

→ → →

→ → →

→ → →

→ → →

7 5 8 3 6 1 4 2

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

1 2 3 4 5 6 7 8

8 7 6 5 4 3 2 1

7 8 5 6 3 4 1 2

Prozessoren führen feste Befehle aus.

Page 8: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 8 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Behauptung: systolisches Array für Matrixmultiplikation

Wie kann man systolische Arrays systematisch konstruieren?

Page 9: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 9 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

 Beispiel: 3x3-Matrixmultiplikation

Page 10: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 10 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 11: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 11 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 12: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 12 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 13: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 13 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 14: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 14 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 15: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 15 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 16: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 16 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 17: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 17 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Systolisches Array für Matrixmultiplikation

  Prozessoren in 2D-Raster angeordnet

  Jeder Prozessor berechnet ein Element des Produkts

Page 18: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 18 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Ansatz zur Konstruktion: Vorgabe von Rekursionsformeln

•  Beispiele:

1. 

2. 

P. Quinton: Automatic Synthesis of Systolic Arrays from Recurrent Equations, Ann. Symp. On Computer Architecture, 1984, S. 209 ff

Page 19: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 19 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Voraussetzung der Methode von Quinton

 Rekursionsgleichungen der Form

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 ∈ D falls ∃ i : x = y –mi.

Raum D von Berechnungen ℤn

Page 20: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 20 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Beispiel: Faltung

Faltung eines Vektors mit einem Vektor von Gewichten

x

x(0) x(1) x(2) x(3) x(4)

x

x(3)w(1)

x(4)w(0)

w

w(0) w(1) w(2) w(3) w(4)

w

1

k

k

Page 21: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 21 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Vergleich von aktueller Form und Ziel

Ziel:

ℤn

Jetzt:

Page 22: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 22 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Erweiterung von y(i) zu Y(i,k)

Def.:

D ⊆ ℤ2

2-dimensionale Beschreibung von w und x:

Def.:

Def.:

Page 23: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 23 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

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)

Page 24: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 24 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Abhängigkeitsgraph für das Faltungsbeispiel

•  Mit m1=(0,1), m2=(1,0), m3=(1,1) ergibt sich der Abhängig-keitsgraph.

Y(i,k) = Y(i,k-1) + W(i-1,k) * X(i-1, k-1)

X(i,k) = X(i-1, k-1)

W(i,k) = W(i-1, k)

Y(0,2) Y(1,2) Y(2,2) Y(3,2) = Y(i)

w(2)

w(1)

w(0)

Y(0,-1) Y(2,-1)Y(1,-1) Y(3,-1)

i

k x(3)x(0) x(1) x(2)

0

0m1

m3

m2

Page 25: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 25 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

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 )

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.

2

2

2

3

3

3

4

4

5

1

10

Y(0,2) Y(1,2) Y(2,2) Y(3,2)

w(2)

w(1)

w(0)

Y(0,-1) Y(2,-1)Y(1,-1) Y(3,-1)

i

k

Timing-Funktion für die Faltung

Page 26: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 26 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Suche nach einer Prozessorzuordnung

2 3 4

1 2 3

0 21

(i,k)

a: ℤn → ℤm mit ∀x,y: a(x) = a(y) x≠y

⇒ t(x) ≠ t(y)

z.B. ∀i, k: a(i, k) = (k, 0)

Prozessor k ⇐

Page 27: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 27 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

2

2

2

3

3

3

4

4

5

1

10

Y(0,2) Y(1,2) Y(2,2) Y(3,2)

w(2)

w(1)

w(0)

Y(0,-1) Y(2,-1)Y(1,-1) Y(3,-1)

i

k

0

0

Bestimmung von Verbindungen und Registern

Für die Verzögerung des Stroms der Werte werden Register benötigt.

 x-Werte: verzögerte Weiterleitung in der Diagonalen

 w-Werte: fest in Prozessoren gespeichert

 y-Werte: werden unverzögert vertikal weitergeleitet.

2

Page 28: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 28 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Ablauf (1)

x(0)

Page 29: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 29 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Ablauf (2)

x(0) x(0)*w(0)

x(1)

Page 30: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 30 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Ablauf (3)

x(0)

x(0)*w(0)+0*w(1)

x(1) x(1)*w(0)

x(2)

Page 31: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 31 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Ablauf (4)

x(0)

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

x(1)

x(1)*w(0)+x(0)*w(1)

x(2)

x(3)

x(2)*w(0)

Page 32: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 32 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Ablauf (5)

x(0)

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

x(1)

x(1)*w(0)+x(0)*w(1)

x(2)

x(3)

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

x(4)

x(3)*w(0)

Page 33: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 33 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Ablauf (6)

x(0)

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

x(1)

x(1)*w(0)+x(0)*w(1)

x(2)

x(3)

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

x(4) x(4)*w(0)

x(5)

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

Page 34: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 34 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

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

x(2)

x(3)

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

x(4)

x(5)*w(0) x(5)

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

x(6)

x(4)*w(0)+x(3)*w(1)

Page 35: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 35 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

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

 Hartenstein/Kress

Page 36: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 36 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Rekonfigurierbare systolische Arrays

  rDPA: reconfigurable data path arrays  Verallgemeinerung systolischer Arrays

 Ersetzung der algebraischen Synthesemethoden durch simulated annealing  Heuristisches Optimierungs-

verfahren für komplexe Probleme

 Auch beim Chip-Layout verwendet

 Realisierung nicht gleichförmiger Strukturen möglich  Zickzack, Spiralen, fork/join

Page 37: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 37 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Rekonfigurierbare systolische Arrays

 Beispiel:

x1 = x + dx;!u1 = z - 3 * x * u * dx - 3 * y * dx;!y1 = y + u * dx;!c = x1 < a;!

R. Kress et al.: A Datapath Synthesis System for the Reconfigurable Datapath Architecture; Asia and South Pacific Design Automation Conference, ASP-DAC'95, Makuhari, Chiba, Japan, 1995

Page 38: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 38 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Instruction systolic array (ISA)

ISA

. . . . . .

. .

Quelle: www.cs.umd.edu/class/spring2003/ cmsc838t/slides/reddyg.ppt

Communication- Register

Ursprung: Uni Kiel (Schmeck, Schimmler, Lang, Schröder) Interface Processors

Page 39: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 39 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Instruction Systolic Array

+

row selectors

column selectors instructions

* -

+

- * -

+* +

+* - +

+*

* +- +

+* -

+* +*

+* -

++*

* - * - +

+*

+*

-

-

-

+*

+* - +* - -

wavefront instruction execution ⇒ fast accumulation operations (e.g. row sum, broadcast, ringshift)

Page 40: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 40 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Vorteil von ISA’s: Ausführung aggregierter Funktionen

  Row Broadcast

  Row Sum

  Row Ringshift

C := CW

C = 234 C = 0 C = 0 C = 0 234

noop

C = 1 C = 2 C = 3 C = 4

noop

C = 1000 C = 1 C = 1 C = 1

C = 234 C = 234 C = 0 C = 0 234

C := CW

C = 1 C = 3

C:=C+CW

C = 3 C = 4

C := CW

C = 1 C = 1000 C = 1 C = 1

C:=CW C := CW C:=CE

C = 234 C = 234 C = 234 C = 0 234

C := CW

C = 1 C = 3

C:=C+CW

C = 6 C = 4

C := CW

C = 1 C = 1 C = 1000 C = 1

C:=CW C := CW C:=CE

C = 234 C = 234 C = 234 C = 234 234

C := CW

C = 1 C = 3 C = 6

C:=C+CW

C = 10

C := CW

C = 1 C = 1 C = 1 C = 1000

C:=CW C := CW C:=CE

Page 41: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 41 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

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

Page 42: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 42 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Realisierung von systolischen Arrays mit FPGAs

Beispiele:  Systematische Implementierung von Walsh-Hadamard

Transformationen (verall. Fourier-Transformationen): http://ww.ll.mit.edu/HPEC/agendas/proc02/ presentations/HPEC%20Day%201/Session%202/2.4fang-new.ppt

 Viterbi Decoder •  Decodierung eines mit forward error correction

codierten Bitstroms •  mit systolischen Algorithmus in FPGA realisiert:

http://academic.research.microsoft.com/Publication/1433687/fpga-design-and-implementation-of-a-low-power-systolic-array-based-adaptive-viterbi-decoder

 Viele weitere Implementierungen

Page 43: Synthese Eingebetteter Systeme · fakultät für informatik informatik 12 technische universität dortmund 2011/06/10 Synthese Eingebetteter Systeme Sommersemester 2011 13 – Synthese:

- 43 - technische universität dortmund

fakultät für informatik

© m. engel, p. marwedel, informatik 12, 2011

Zusammenfassung

 Prinzip von systolischen Arrays

 Projektsmethode von Quinton zur systematischen Erzeugung von systolischen Arrays

 Rekonfigurierbare systolische Arrays

 Schieben von Befehlen: instruction systolic array (ISA)

 Realisierung von systolischen Arrays mit FPGAs