Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FPGA Praktikum WS2000/2001 2.Woche: FPGA Hintergrund Reconfigurable Computing: pattern matching Aufgaben.

Ähnliche Präsentationen


Präsentation zum Thema: "FPGA Praktikum WS2000/2001 2.Woche: FPGA Hintergrund Reconfigurable Computing: pattern matching Aufgaben."—  Präsentation transkript:

1 FPGA Praktikum WS2000/2001 2.Woche: FPGA Hintergrund Reconfigurable Computing: pattern matching Aufgaben

2 Was ist ein FPGA? zIn den nächsten Wochen werde ich genauer auf die Architektur von FPGAs eingehen. zBis dahin ist ein FPGA einfach eine Zieltechnologie in der sich Schaltungen realisieren lassen, die z.B. in einer Hardwarebeschreibungssprache entwickelt wurden. zIm folgenden erläutere ich die Bedeutung von FPGAs im Vergleich zu den anderen verbreiteten Zieltechnologien.

3 Zieltechnologien zASIC zGate Array zFPGA yEinmal programmierbar ymehrmals programmierbar ydynamisch rekonfigurierbar

4 ASIC zApplication Specific Integrated Circuit zEin vollständig nach Kundenwunsch hergestellter Schaltkreis zHohe Einstiegskosten yDM 5.000 für 2µm Technologie, multi project wafer yDM 500.000 für 0.13 µm Technologie zNiedrige Produktionskosten ytausende von Chips auf einem Wafer für DM 2000 - DM 6000

5 ASIC zAlle Freiheitsgrade der Technologie können zur Optimierung genutzt werden zBeste Implementierung für eine fest vorgegebene Schaltung zFehlerbehebung und nachträgliche Änderungen oder Optimierungen sind sehr teuer zDer Chip muß so entworfen werden, daß er in allen in Frage kommenden Anwendungen verwendet werden kann. zEinsatzbereich: Standardschaltungen mit hohen Stückzahlen. (Prozessoren, Speicher, FPGAs,...)

6 Gate Array zBeim Gate Array werden die meisten Herstellungsschritte kundenunabhängig durchgeführt. zDie Lage der IO-Pads, Transistoren, etc. sind standardisiert, der Kunde kann nur noch die Verdrahtung beeinflussen. zDadurch bleiben auch bei modernsten Technologien die Einstiegskosten unter DM 100.000 zDie Produktionskosten sind mit denen von ASICs vergleichbar.

7 Gate Array zDie Vor- und Nachteile sind denen von ASICs sehr ähnlich, allerdings weniger gravierend: zDer Kunde kann alle elektrischen Optimierungen vornehmen, hat jedoch keine detaillierte Kontrolle über das Layout. zÄnderungen sind etwas weniger kosten- und zeitintensiv. zGate Arrays verlieren zur Zeit deutlich Marktanteile an ASICs und FPGAs

8 FPGAs zField Programmable Gate Arrays zBei FPGAs wird der Chip so gefertigt, daß die Schaltung vom Kunden selbst bestimmt werden kann. Und zwar entweder: yeinmalig (Antifuse: Quicklogic) ymehrmals (Flash: Actel) ydynamisch, im System (SRAM: Actel, Altera, Atmel, DynaChip, Lucent, Xilinx)

9 FPGAs: Antifuse zChip wird durch das gezielte Brennen von Schmelzbrücken konfiguriert und kann danach nicht mehr verändert werden. zFast keine Einstiegskosten, dafür höhere Produktionskosten als beim ASIC zFehlerbehebung und Updates sind für neu ausgelieferte Platinen problemlos möglich. Bereits produzierte Chips können jedoch nicht mehr verändert werden. zEinsatzbereich: ASIC Ersatz für kleinere Stückzahlen

10 FPGAs: Flash zFlash oder EPROM basierte FPGAs lassen sich einige tausend mal neu konfigurieren, behalten aber ihre Konfiguration auch ohne Stromversorgung zMit geringem zusätzlichem Schaltungsaufwand lassen sich Updates beim Kunden ausführen zDie einzige existierende FPGA Familie mit dieser Technologie ist leider recht teuer (Actel proASIC) zDas ändern der Konfiguration ist relativ langsam (mehrere Sekunden)

11 FPGAs: SRAM zZur Zeit dominierende Technologie. zBeim einschalten des Systems wird die Konfiguration aus einem externen Speicher in den FPGA geladen. zEs werden zusätzliche externe Komponenten benötigt. zDer Chip kann beliebig oft und sehr schnell umkonfiguriert werden. zBei einigen FPGA-Familien auch teilweise und während des Betriebs.

12 FPGAs: SRAM zSRAM basierte FPGAs haben dadurch neben dem Update beim Kunde noch weiter Möglichkeiten: zAnpassen der Schaltung auf eine Probleminstanz (z.B. eine Schaltung, die nach einem speziellen DNA-Muster sucht) zDie Verwendung mehrerer Schaltungen nacheinander in der selben Hardware. zLaden der neuesten Konfiguration über ein Netzwerk. (wie z.B. beim Handy) zBuzzword: Reconfigurable Computing

13 Wie groß sind FPGAs? zZur Zeit: z 8.000 Gatter + 3KByte RAM für $ 8 z 100.000 Gatter + 8KByte RAM für $ 26 z 200.000 Gatter + 70KByte RAM für $ 420 z 300.000 Gatter + 36KByte RAM für $ 380 z1.600.000 Gatter + 104KByte RAM für $6.000 zNächstes Jahr 10.000.000 Gatter

14 Wie schnell ist so ein FPGA? zAnwendungsbeispiele für Virtex-E FPGAs z32 Bit Prozessoren: y20-40 MHz synthetisiert, single cycle y50-75 MHz synthetisiert, pipeline yüber 100 MHz machbar wenn wirklich gute Designer viel Grips hineinstecken z200 MHz DDR SRAM Controller z622 Mbps serieller Link

15 Welche FPGA Familie ist die beste für mich? zDie Unterschiede zwischen den Herstellern werde ich in den nächsten Wochen erläutern. zAnsonsten gilt in der Regel: Für ein neues Projekt immer die neueste FPGA Familie verwenden zDas liegt daran, daß FPGAs sehr große Chips sind, und große Chips lassen sich in kleineren Technologien billiger herstellen.

16 Neuer ist billiger

17 Und wer hat den schnellsten? zEs gibt eine Webseite die sich mit diesem Problem befaßt: zhttp://rk.gsfc.nasa.gov/richcontent/MAPLDCon99/ K-Bowl/K-Bowl.htmhttp://rk.gsfc.nasa.gov/richcontent/MAPLDCon99/ K-Bowl/K-Bowl.htm zHier sind die Ergebnisse:

18 Actel

19 Altera

20 Dynachip

21 Quicklogic

22 Vantis

23 Xilinx

24 Reconfigurable Computing

25 zBei den meisten FPGA Designs werden die FPGAs wie ASICs verwendet. zDie Konfiguration des Chips bleibt unverändert, mit der möglichen Ausnahme eines field upgrades zEinige Designer nutzen jedoch die inherente Parallelität von FPGAs, um bestimmte Algorithmen schneller als in einem konventionellen Prozessor durchzuführen. zInsbesondere die Möglichkeit, die Schaltung durch schnelle Rekonfiguration an jede Probleminstanz anzupassen, ist dabei sehr nützlich.

26 Erfolge zSchaltungssimulation zFehlersimulation und Testmustergenerierung zCode Entschlüsselung: DES, RSA,... yColossus II von 1945 kann noch immer mit der Rechenleistung heutiger PCs mithalten (5000 Zeichen/s) zDNA-Sequenzierung (pattern matching)

27 Beispiel: DNA pattern matching zSPLASH, 1990 z32 Chips Xilinx XC3090 yca. 400.000 Gatter z300-fache Leistung eines Cray-II z200-fache Leistung einer Connection Machine CM-2 mit 16.000 Prozessoren

28 Zum nachlesen z"Building and Using a Highly Programmable Logic Array". yMaya Gokhale et. al., IEEE Computer 24(1):81-89, Januar 1991 z„Searching Genetic Databases on SPLASH-2“ (PDF)PDF yDzung T. Hozang, Proceedings of FPGAs for Custom Computing Machines (FCCM), 1993 zKommerzielle FPGA basierte DNA Analyse wird z.B. von Timelogic und Compugen vermarktet TimelogicCompugen

29 Smith-Waterman Algorithmus zBerechnen des Hammingabstandes einer um i verschobenen, kurzen Sequenz s in einer langen Sequenz t zAbstand d zweier Zeichen: yd(a,b) = 0 wenn a=b yd(a,b) = 1 sonst zHammingabstand der Sequenzen yH(i) = d(t(1+i),s(1)) + d(t(2+i),s(2)) +...+ d(t(n+i),s(i))

30 Systolische Implementierung zDie lange Zeichenkette t wird durch eine Kette von Zellen geschoben, die je ein Zeichen von s Speichern. zIn jedem Schritt i kann also alle Zellen j parallel den Wert von d(t(j+i), s(j)) berechnen. zEinen solchen Algorithmus bei dem jedes Element nur über eine konstante Entfernung mit anderen Elementen kommuniziert nennt man systolisch yVergleich mit lokal gespeicherten Wert yweiterreichen von t an die Nachbarzelle zAber wie wird die Summe berechnet?

31 Berechnung der Summe zZur Berechnung der Hammingdistanz müssen die Einzelabstände aller Zellen aufsummiert werden zEin Baum von Addierern würde die Bedingung für systolische Algorithmen verletzen und sehr stark bremsen

32 Erster Versuch zAnsatz: Die lokale Differenz wird zum Zwischenergebnis des Nachbarn addiert und ebenfalls weitergereicht. yErgibt: H(1) = d(s(1),t(1)) + d(s(2), t(1)) + d(s(3), t(1))... Z -1 s0s0 = + 0 s1s1 = + = + s2s2 + = s3s3

33 Zeiter Versuch zTrick: Wenn die Teilummen mit der halben Geschwindigkeit wandern ergibt sich wie gewünscht yH(1) = d(s(1), t(1)) + d(s(2), t(2)) + d(s(3), t(3)) Z -1 s0s0 = + Z -2 0 s1s1 = Z -1 + Z -2 = Z -1 + Z -2 s2s2 + = s3s3

34 Z -1 s0s0 = + Z -2 0 s1s1 = Z -1 + Z -2 = Z -1 + Z -2 s2s2 + = s3s3 Beispiel

35 Aufgaben für diese Woche

36 Bau und Simulation einer Smith-Waterman Zelle zVergleich von Aminosäuren z4 Bits zum Kodieren der Sequenzen t und s zHammingdistanz h mit 3 Bits zVerzögerungselemente sind D-Flip-Flops zLadbares Zeichen s(i)

37 Port Deklaration clk load char_in (3:0) h_in (2:0) char_out (3:0) h_out (2:0) h_delay (2:0) Bitte verwendet genau diese Namen! zeichen (3:0)

38 Erläuterungen zchar_in ist die Eingabe für die Zeichen der langen Zeichenkette zchar_out ist char_in um einen Takt verzögert zh_in ist die Zwischensumme von der Vorgängerzelle zh_delay ist h_in + d(zeichen, char_in) um einen Takt verzögert zh_out ist h_delay um einen Takt verzögert zwenn bei der steigenden Flanke von clk load=1 ist, wird in zeichen der Inhalt von char_in gespeichert

39 Addition mit Sättigung zDie 3 Bit für die Zwischensumme können nur Zahlen von 0 bis 7 aufnehmen zAddition mit Sättigung (Kein Überlauf) y0 + 1 = 1 y1 + 1 = 2 y2 + 1 = 3 y... y6 + 1 = 7  7 + 1 = 7  case h_in when “000“ => h_delay <= “001“

40 Aufgabe zEntwerft die Zelle im VHDL Editor yVHDL Wizard verwenden ySchaut euch die VHDL Tips vom letzten mal an yLanguage Assistant verwenden yQuelltext kommentieren zSynthetisiert die Zelle zSimuliert sie mit diesem SimulationsskriptSimulationsskript yVerhält sich die Zelle wie erwartet? zGebt per Email den VHDL Quelltext und einen Screenshot der Simulation ab


Herunterladen ppt "FPGA Praktikum WS2000/2001 2.Woche: FPGA Hintergrund Reconfigurable Computing: pattern matching Aufgaben."

Ähnliche Präsentationen


Google-Anzeigen