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

Slides:



Advertisements
Ähnliche Präsentationen
Die Duration von Standard Anleihen
Advertisements

Software Assurance Erweiterte Software Assurance Services
Programmierung: Einführung
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Multiplizierer Gesucht: Schaltkreis zur Multiplikation zweier Binärzahlen , Beispiel: RW-Systemarchitektur Kap. 3.
Sortieren I - Bubblesort -
Metallbauer/in – FR: Konstruktionstechnik
Kapitel 6: Klassifizierung von Sortiertechniken
1 Technische Universität Darmstadt FG Mikroelektronische Systeme Prof. Dr. Dr. h.c. mult. Manfred Glesner Resonantes Umladen von Taktnetzwerken Clemens.
Stephan Hermanns Architekturkonzepte für semi-synchrone Controller auf der Basis der Asynchronen Wave Pipeline Schaltungstechnik Sorin Alexander Huss.
Bericht über Arbeiten zu Asynchronen Wave Pipelines Stephan Hermanns Sorin Alexander Huss.
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Agenda Die Hardwearkomponenten und ihre Funktionen - Mikroprozessor
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
MROM Als Masked ROM, deutsch Masken-ROM oder kurz MROM bezeichnet man Festwertspeicher, bei denen die Information im Rahmen des Fertigungsprozesses fest.
Sortierverfahren Richard Göbel.
BCD Ripple Carry Adder von Enrico Billich.
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
Algorithmentheorie 04 –Hashing
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Das Mainboard Single CPU Dual CPU.
Addierwerke.
Hauptseminar Automaten und Formale Sprachen
Christian Steinle, Joachim Gläß, Reinhard Männer
Bericht über Arbeiten zu Asynchronen Wave Pipelines Stephan Hermanns Sorin Alexander Huss.
Rund ums Abitur: Themen
Duo- und Quad Prozessor-Architektur
CPLD/FPGA-Programmierung mit E-blocks. Wozu die CPLD/FPGA-Programmierung untersuchen? Zusammenhang zur modernen Digitalen Elektronik Verschwinden der.
Effiziente Algorithmen
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Programmierung paralleler Algorithmen mit MPI
1. Was ist Hardware? Hardware nennt man alle Geräte und Bauteile, die zu einem Computer gehören – also alles was man am Computer anfassen kann. Bsp: Monitor,
Quelle: Fachreferat von Mathias Herbst 1.
Effiziente Algorithmen
Basisinformationstechnologie HK-Medien
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
FPGA... ein Versuch. Uli Schäfer 1. Historie: PLD Uli Schäfer 2 Schaltungsgrösse wächst drastisch mit Zahl der Eingänge CPLD = Array + Flipflops + macro.
3.2 Grundlegende digitale logische Schaltungen
© Béat Hirsbrunner, University of Fribourg, Switzerland
Kommission und Steuerung in wenigen Minuten Daten- und Steuerungsflexibilität in einem einzigen Netzwerk.
Interne Speicher © Christian Barby FIN
DDR vs. RDRAM Ein Vergleich von Speichertechnologien Bernhard Fiser Stefan Schönauer.
Fingerprint Matching On Card
Verarbeitung und Computerinneres
Parallelisierung für Multiprozessor-Maschinen
Arbeitsspeicher Eine Präsentation von - Namen wurden entfernt -
Christian Steinle, Andreas Kugel, Reinhard Männer
Linear Rückgekoppelte Schieberegister und Tristate Treiber
ESYCS - Studie 7 „Embedded Hardware“
FPGA Praktikum WS2000/ Woche: FPGA Architektur Simulationsskripte Aufgaben.
2.Woche: FPGA Architektur Simulationsskripte Aufgaben
2. Woche: Timingmodelle Synthetisierbares VHDL Aufgaben
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Funktionsprinzip·Anwendung·Zukunft
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Chip-Herstellung Fabrikation einer CPU.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Eine Präsentation von Lukas Hick
 Präsentation transkript:

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

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.

Zieltechnologien zASIC zGate Array zFPGA yEinmal programmierbar ymehrmals programmierbar ydynamisch rekonfigurierbar

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

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,...)

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 zDie Produktionskosten sind mit denen von ASICs vergleichbar.

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

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)

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

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)

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.

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

Wie groß sind FPGAs? zZur Zeit: z Gatter + 3KByte RAM für $ 8 z Gatter + 8KByte RAM für $ 26 z Gatter + 70KByte RAM für $ 420 z Gatter + 36KByte RAM für $ 380 z Gatter + 104KByte RAM für $6.000 zNächstes Jahr Gatter

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

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.

Neuer ist billiger

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:

Actel

Altera

Dynachip

Quicklogic

Vantis

Xilinx

Reconfigurable Computing

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.

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)

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

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

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))

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?

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

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

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

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

Aufgaben für diese Woche

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)

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)

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

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  case h_in when “000“ => h_delay <= “001“

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 den VHDL Quelltext und einen Screenshot der Simulation ab