Flash-basierte FPGAs (1)
Flash-basierte FPGAs (1)
Flash-basierte FPGAs (1)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
ISS<br />
Rekonfigurierbare Prozessoren<br />
Prof. Dr.-Ing. S. A. Huss<br />
Vorlesung Nr.<br />
Thema<br />
11 Konfigurationstechnologien<br />
20.01.2010 Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 1
Rekonfigurierbare Prozessoren: Was, Warum und Wie?<br />
√<br />
(3) Warum rekonfigurierbare Prozessoren?<br />
Warum?<br />
Was?<br />
Wie?<br />
√<br />
(1) Was ist ein<br />
rekonfigurierbarer Prozessor?<br />
(4) Wie wird ein rekonfigurierbarer<br />
Prozessor rekonfiguriert?<br />
√<br />
(2) Was wird eigentlich<br />
rekonfiguriert?<br />
√<br />
(5) Wie wird ein rekonfigurierbarer<br />
Prozessor eingesetzt?<br />
Heute: Wie der Bitstrom in das FPGA übertragen und dort gespeichert wird.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 2
Konfigurationsbits: Bitstrom<br />
B<br />
Zelle 2<br />
1<br />
1<br />
A<br />
C<br />
Zelle 1 Zelle 3<br />
0<br />
1<br />
D<br />
Zelle 4<br />
4 Konfigurationsbits<br />
F<br />
1<br />
0<br />
1<br />
O<br />
a<br />
b<br />
c<br />
d<br />
1<br />
0<br />
0<br />
0<br />
1<br />
0<br />
0<br />
0<br />
1<br />
0<br />
0<br />
0<br />
1<br />
1<br />
1<br />
1<br />
16 Konfigurationsbits<br />
g<br />
1 Konfigurationsbit<br />
• Ein FPGA wird konfiguriert, indem seine Architekturelemente mit den<br />
passenden Konfigurationsbits versorgt werden.<br />
• Die Gesamtheit aller Konfigurationsbits (plus weitere Hilfsdaten)<br />
bezeichnet man als Bitstrom (Bitstream).<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 3
Konfigurationsbits: Bitstrom<br />
Wie wird er generiert?<br />
Wie wird er in den Chip übertragen?<br />
Wie wird er im Chip gespeichert?<br />
10111011101….<br />
Generierung Übertragung Speicherung<br />
Durch einen<br />
anspruchsvollen<br />
rechnergestützten<br />
Entwurfsprozess<br />
Durch spezielle Ausrichtungen<br />
und Übertragungsstandards,<br />
z.B. JTAG<br />
Durch spezielle<br />
Speicherzellen, z.B.<br />
SRAM-ähnliche.<br />
Konfigurationstechnologie<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 4
Generierung des Bitstroms (1)<br />
• Der Bitstrom wird aus dem platzierten und<br />
verdrahteten Entwurf (noch in digitaler<br />
Form) durch spezielle Werkzeuge des<br />
FPGA Herstellers generiert.<br />
• Die wichtigsten Elemente eines Bitstroms<br />
sind die Konfigurationsbits, die u.a. zur<br />
Konfiguration der LUTs, der Schaltmatrizen<br />
und der Block RAMs dienen.<br />
• Die Konfigurationsbits werden in Frames<br />
geteilt, die für die Konfiguration<br />
entsprechender Zonen des<br />
Konfigurationsspeichers auf dem FPGA<br />
verantwortlich sind.<br />
– Beispiel: VirtexII-Pro XC2VP30 enthält<br />
11.575.552 Konfigurationsbits, die in 1.756<br />
Frames der Größe 6.592 geteilt sind.<br />
Vendor<br />
Libraries<br />
Specification<br />
Design Entry<br />
VHDL Code<br />
Synthesis<br />
Netlist<br />
Place & Route<br />
Netlist, Timing<br />
Annotation<br />
Bitstream Generation<br />
Bitstream<br />
Configure FPGA<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 5
Generierung des Bitstroms (2)<br />
• Der Bitstrom enthält neben den Konfigurationsbits noch weitere Daten<br />
zur Steuerung der Konfigurationslogik, die auf dem FPGA fest<br />
verdrahtet ist. Zu diesen Daten gehört z.B.:<br />
– Synchronisationswort<br />
– Länge des Frame<br />
– Testwort CRC<br />
– Kommandos wie Schreibe Konfigurationsdaten, Lese Konfigurationsbit,<br />
Setze das CRC Register zurück.<br />
• Konfigurationsbits und Steuerungsdaten werden in Pakete<br />
eingekapselt. Die durch Header erweitert werden.<br />
– Bespiel: Der vollständige Bitstrom des XC2VP30 enthält 11.589.984 Bits.<br />
Konfigurationslogik: Kommandoregister,<br />
Statusregister, Dekodierer zum Schreiben der<br />
Konfigurationsframes in die entsprechenden<br />
Konfigurationsspeicherzellen…<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 6
Speicherung des Bitstroms<br />
• Entsprechend des Mechanismus, wie der Bitstrom auf dem FPGA<br />
gehalten wird, unterscheidet man zwischen:<br />
– SRAM-<strong>basierte</strong>n <strong>FPGAs</strong>, ca. 90% aller <strong>FPGAs</strong>. Hersteller: Xilinx, Altera,<br />
Atmel, Lattice.<br />
– Antifuse-<strong>basierte</strong>n <strong>FPGAs</strong>, wobei bei diesen <strong>FPGAs</strong> kein Bittrom in dem<br />
bisher angesprochenen Sinne vorhanden ist. Bei Actel Antifuse <strong>FPGAs</strong><br />
nennt man die Konfigurationsdatei Actel Fuse Map AFM. Hersteller: Actel<br />
und Quicklogic.<br />
– <strong>Flash</strong>-<strong>basierte</strong>n <strong>FPGAs</strong>. Hersteller: Actel, Xilinx (Spartan 3 AN)<br />
• Die obere Reihenfolge entspricht auch der Entwicklungsgeschichte<br />
von <strong>FPGAs</strong>.<br />
• Jede dieser Konfigurationstechnologien hat ihre Vor-, und Nachteile,<br />
wobei die <strong>Flash</strong>-<strong>basierte</strong> <strong>FPGAs</strong> Vorteile der anderen zwei<br />
Technologien kombinieren.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 7
SRAM-<strong>basierte</strong> <strong>FPGAs</strong> (1)<br />
SRAM-Zelle<br />
VDD<br />
• Eine statische RAM-Zelle besteht aus<br />
zwei kreuzgekoppelten CMOS<br />
Invertern, die zusammen eine bistabile<br />
Schaltung bilden: Der Ausgang D2<br />
kann sich in einem von zwei stabilen<br />
Zustand (0 und 1) befinden. D2 zeigt<br />
den Gegenwert auf.<br />
• Zum Zugriff auf diese Zelle zwecks des<br />
Lesens und Schreibens bedarf es noch<br />
mindestens eines weiteren Transistors.<br />
• Die Zelle wird adressiert durch<br />
Ansteuerung des Gates dieses so<br />
genannten Zugriffstransistors über die<br />
Wortleitung.<br />
• Daten werden ein- und ausgelesen<br />
über die Bitleitung.<br />
• Es gibt zahlreiche Ausprägungen der<br />
SRAM-Zelle, vor allem solche mit 6<br />
Transistoren.<br />
Wortleitung<br />
T<br />
Bitleitung<br />
MP1<br />
D1<br />
MN1<br />
MP1<br />
D1<br />
MN1<br />
D1<br />
VDD<br />
MP2<br />
D2<br />
MN2<br />
MP2<br />
D2<br />
MN2<br />
D2<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 8
SRAM-<strong>basierte</strong> <strong>FPGAs</strong> (2)<br />
Beispiel<br />
0<br />
VDD<br />
MP1<br />
T<br />
1<br />
MN1<br />
MP2<br />
0<br />
MN2<br />
Diese Zelle<br />
Speichert eine 1<br />
1<br />
MP1<br />
T<br />
1<br />
MN1<br />
VDD<br />
MP2<br />
0<br />
MN2<br />
1<br />
MP1<br />
T<br />
0<br />
MN1<br />
VDD<br />
MP2<br />
1<br />
MN2<br />
1<br />
Lesevorgang<br />
0<br />
Schreibvorgang: wir überschreiben die 1 durch<br />
eine 0. Ungefährlich, da die beschriebene 0<br />
stärker ist, als die überschriebene 1.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 9
SRAM-<strong>basierte</strong> <strong>FPGAs</strong> (3)<br />
Anwendung einer SRAM-Zelle in <strong>FPGAs</strong>:<br />
1<br />
SRAM-Zellen, die einen<br />
Schalttransistor, einen Multiplexer<br />
ansteuern oder als LUT eine<br />
Boolsche Funktion realisieren,<br />
werden lediglich während der<br />
(Re-)Konfiguration beschrieben.<br />
Im Normalbetrieb werden sie dann<br />
dauerhaft ausgelesen. Daher wird<br />
der Speicherinhalt vor dem<br />
Zugriffstransistor aufgegriffen.<br />
0<br />
F<br />
0<br />
1<br />
T 1<br />
VDD<br />
O<br />
0<br />
F<br />
0<br />
1<br />
O<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 10
SRAM-<strong>basierte</strong> <strong>FPGAs</strong> (4)<br />
Welche Vorteile bieten SRAM-<strong>basierte</strong> <strong>FPGAs</strong>?<br />
1. SRAM-Zellen lassen sich praktisch beliebig oft beschreiben. Kombiniert<br />
mit den kurzen Konfigurationszeiten können SRAM-<strong>basierte</strong> <strong>FPGAs</strong> die<br />
Rekonfigurierbarkeit unterstützen, siehe Vorlesung 12.<br />
Beispiel:<br />
Konfigurationszeit des XC2VP30 für verschiede Konfigurationsmodi.<br />
Konfigurationsmodus SelectMAP (50MHz) Seriell (50 MHz) JTAG (33 MHz)<br />
Konfigurationszeit 28 ms 231 ms 351 ms<br />
2. SRAM-<strong>basierte</strong> <strong>FPGAs</strong> können ohne spezielle Programmiergeräte<br />
konfiguriert werden. Man spricht von In-System Programming (ISP).<br />
3. SRAM-<strong>basierte</strong> <strong>FPGAs</strong> basieren auf der höchst entwickelten und<br />
meist verbreiteten CMOS Technologie Positive Wirkung auf den<br />
Preis, Verfügbarkeit.<br />
15.01.2008 Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 11
SRAM-<strong>basierte</strong> <strong>FPGAs</strong> (5)<br />
Welche Nachteile haben SRAM-<strong>basierte</strong> <strong>FPGAs</strong>?<br />
1. Die Flüchtigkeit der Daten in SRAM-Zellen erfordert eine erneute<br />
Konfiguration nach jedem Systemstart oder Störung in der<br />
Versorgungsspannung. Daher wird der Bitstrom in der Regel in einem<br />
<strong>Flash</strong>-Speicher gespeichert. Der Bitstrom wird in das FPGA nach<br />
jedem neuen Start übertragen.<br />
XCF02S: Ein <strong>Flash</strong>, 2<br />
Mbit. Das benutze<br />
FPGA (Spartan 3)<br />
benötigt ca. 1 Mbit<br />
Konfigurationsdaten.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 12
SRAM-<strong>basierte</strong> <strong>FPGAs</strong> (6)<br />
Welche Nachteile haben SRAM-<strong>basierte</strong> <strong>FPGAs</strong>?<br />
2. Großer Flächenbedarf für den Konfigurationsspeicher mit<br />
negativer Wirkung auf den Preis und Leistungsverbrauch.<br />
3. Die Verbindung von Leitungen über Schalttransistoren fügt<br />
zusätzliche Verzögerungselementen hinzu, Siehe V6.<br />
4. Die Möglichkeit, den Bitstrom wiederholt zu übertragen (sogar in<br />
beiden Richtungen), stellt verschiedene Sicherheitsrisiken dar.<br />
Siehe später.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 13
Antifuse-<strong>basierte</strong> <strong>FPGAs</strong> (1)<br />
• Viele Probleme der<br />
SRAM-<strong>basierte</strong>n FPGA<br />
lassen sich durch eine<br />
dauerhafte Konfiguration<br />
lösen.<br />
• Die Antifuse-Technologie<br />
ermöglicht durch hohe<br />
Ströme die „Brennung“<br />
einer Isolatorschicht<br />
zwischen zwei leitenden<br />
Schichten, so dass diese<br />
dauerhaft verbunden<br />
werden.<br />
Nicht-verbranntes Antifuse<br />
verbranntes Antifuse<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 14
Antifuse-<strong>basierte</strong> <strong>FPGAs</strong> (2)<br />
Welche Vorteile bieten Antifuse-<strong>basierte</strong> <strong>FPGAs</strong>?<br />
• Nicht-flüchtige Konfiguration <br />
– Sofortiger Systemstart<br />
– Kein zusätzlicher Speicher zur Speicherung der Konfigurationsdaten.<br />
– Weniger Sicherheitsrisiken<br />
• Kein interner Konfigurationsspeicher <br />
– Höhere Integrationsdichte mit positiver Wirkung auf den Preis.<br />
– Direkte Verbindungen (keine Schalttransistoren) positive Wirkung<br />
auf die Leitungsverzögerung und den Leistungsverbrauch.<br />
Welche Nachteile haben Antifuse-<strong>basierte</strong> <strong>FPGAs</strong>?<br />
• Spezieller Technologieprozess mit negativer Wirkung auf die Kosten.<br />
• Nur eine einmalige Konfiguration ist möglich <br />
– Nicht geeignet für die Rekonfigurierbarkeit.<br />
– Hohes Risiko bei Entwurfsfehlern, da ein falsch konfiguriertes FPGA ein<br />
Ausschuss ist.<br />
• Zusätzliches Programmiergerät.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 15
<strong>Flash</strong>-<strong>basierte</strong> <strong>FPGAs</strong> (1)<br />
Floating-Gate<br />
-<br />
-<br />
- - -<br />
- - -<br />
- - - -<br />
- - - - - - - - -<br />
Eine beschriebene Speicherzelle<br />
- - - - - - -<br />
- - - - - - -<br />
- - -<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
Durch eine hohe Spannung zwischen Drain und Source und hohe<br />
Spannung am Steuergate werden die Kanalelektronen derart energisch<br />
angeregt, dass einige davon in das Floating-Gate durchtunneln können.<br />
Eine normale Steuerspannung am Steuergate kann nun keinen<br />
Stromfluss bewirken, wie im nicht-programmierten Zustand. Die Ladung<br />
können aus dem Floating-Gate durch einen Löschvorgang zurückgeholt<br />
werden.<br />
Andere <strong>Flash</strong>-Speicher arbeiten in einer umgekehrten Art.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 16
<strong>Flash</strong>-<strong>basierte</strong> <strong>FPGAs</strong> (2)<br />
Beispiel<br />
ProASIC plus Familie<br />
von Actel<br />
Durch Programmierung dieser<br />
Zelle werden die zwei gelben<br />
Leitungen miteinander verbunden<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 17
<strong>Flash</strong>-<strong>basierte</strong> <strong>FPGAs</strong> (3)<br />
Welche Vorteile bieten <strong>Flash</strong>-<strong>basierte</strong> <strong>FPGAs</strong>?<br />
• Nicht-flüchtige Konfiguration <br />
– Sofortiger Systemstart<br />
– Weniger Sicherheitsrisiken<br />
• Höhere Integrationsdichte, bessere Performanz und niedrigerer<br />
Leistungsverbrauch, als SRAM-<strong>basierte</strong> <strong>FPGAs</strong>.<br />
• Standardprozess<br />
• Konfigurationszeit ist etwas länger als bei SRAM-<strong>basierte</strong> <strong>FPGAs</strong>,<br />
wodurch die Rekonfigurierbarkeit in zeitkritischen Anwendungen<br />
erschwert wird.<br />
• Begrenzte Anzahl von Programmierzyklen (Endurance) aufgrund der<br />
Verschlechterung der Isolatorschicht um dem Floating-Gate spricht<br />
gegen stark dynamisch rekonfigurierbare Prozessoren.<br />
Vorlesung 11 Folie 18
Übertragung des Bitstroms (1)<br />
• Zur Übertragung des Bitstroms in das FPGA sind verschiedene<br />
Mechanismen und Protokolle verfügbar:<br />
– Boundary Scan<br />
– Serielle Übertragung<br />
– Parallele Übertragung (SelectMAP)<br />
Beispiel<br />
VirtexIl und Spartan-3 von Xilinx haben<br />
3 Pins (M0 M1 M2) zur Festlegung des<br />
Konfigurationsmodus.<br />
Durch diese 3 Jumper kann man den<br />
Konfigurationsmodus definieren.<br />
• Boundary Scan ist der meist verbreitete Konfigurationsmodus<br />
aufgrund seiner Standardisierung und seiner Fähigkeit, verschiedene<br />
Bausteine (PLDs, <strong>FPGAs</strong>, PROMs) durch die gleichen Pins zu<br />
programmieren/konfigurieren. Man spricht von einer Boundary-Scan<br />
Kette (Boundary-Scan Chain).<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 19
Übertragung des Bitstroms (2)<br />
• Boundary Scan ist ursprünglich ein standardisiertes Verfahren (IEEE<br />
Std. 1149.1-1990) zum Test elektronischer Schaltungen auf der<br />
Platinenebene. Es wurde durch die JTAG Gruppe (Join Test Action<br />
Group) in den 80er entwickelt und mehrmals erweitert.<br />
• Damit umgeht man die Notwendigkeit, die Schaltung durch<br />
physischen Zugriff zu messen (so genannter In-Circuit Test), was<br />
durch die Miniaturisierung und die Verwendung von<br />
Mehrlagenplatinen enorm erschwert wird.<br />
• Über seine ursprüngliche Aufgabe als Testverfahren hinaus konnte<br />
Boudary Scan für weitere nützliche Funktionen eingesetzt werden:<br />
– Programmierung von Speichern.<br />
– Konfiguration von <strong>FPGAs</strong> und PLDs.<br />
– Debugging von SW-Anwendungen auf eingebetteten Prozessoren.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 20
Übertragung des Bitstroms (3)<br />
Beispiel<br />
Spartan-3 Starter Board<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 21
Sicherheit des Geisteseigentums (1)<br />
• Ein inhärentes Problem von SRAM-<strong>basierte</strong>n <strong>FPGAs</strong> besteht in der<br />
Verfügbarkeit des Designs als Bitstrom, der nach jedem Power-up in<br />
das FPGA übertragen werden muss.<br />
• Im Bitstrom steckt das komplette Know-how, das in der Regel<br />
geschützt werden soll.<br />
• Eine Lösung besteht in der verschlüsselten Übertragung des<br />
Bitstroms in das FPGA.<br />
• Das FPGA enthält eine dedizierte Entschlüsselungseinheit für die<br />
Entschlüsselung des Bitstroms.<br />
• Hierzu muss zunächst ein Schlüssel vereinbart und in das FPGA<br />
übertragen werden.<br />
• Virtex-II Pro:<br />
– unterstützt sowohl DES als auch Triple-DES Algorithmen.<br />
– unterstützt allerdings keine partielle Konfiguration mit verschlüsselten<br />
Bitströmen.<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 22
Sicherheit des Geisteseigentums (2)<br />
• Verschlüsselung des Bitstroms<br />
schützt vor dem Abhören und<br />
Vervielfältigung des Entwurfs. D.h. sie<br />
schützt das Geisteseigentum<br />
(Intellectual Property).<br />
• Mittlerweile werden in der<br />
Forschungsgemeinschaft weitere<br />
Angriffe untersucht und Lösungen<br />
vorgeschlagen:<br />
– Verfälschung des Bitstroms. Dies<br />
erfordert die Gewährleistung der<br />
Integrität des Bitstroms z.B. durch den<br />
Einsatz von sicheren Hash-Funktionen<br />
– Die Verteilung falscher Bitströme. Dies<br />
erfordert den Einsatz von<br />
Authentifizierungsmethoden wie MAC<br />
(Message Authentication Code).<br />
Auswahl eines Schlüssels, manuell<br />
oder automatisch durch den<br />
Bitstromgenerator<br />
Generierung des verschlüsselten<br />
Bitstroms durch den<br />
Bitstromgenerator<br />
Programmierung des FPGA mit dem<br />
Schlüssel<br />
Konfiguration des FPGA mit dem<br />
verschlüsselten Bitstrom<br />
Entschlüsselung des Bitstroms<br />
durch den dedizierten Dekryptor auf<br />
dem FPGA<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 23
Literatur<br />
• „Authentication of FPGA bitstreams: why and how “<br />
http://www.cl.cam.ac.uk/~sd410/papers/bsauth.pdf<br />
20.01.2010<br />
Rekonfigurierbare Prozessoren S. A. Huss<br />
Vorlesung 11 Folie 24