08.03.2014 Aufrufe

Flash-basierte FPGAs (1)

Flash-basierte FPGAs (1)

Flash-basierte FPGAs (1)

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!