If you can't read please download the document
Upload
lycong
View
219
Download
1
Embed Size (px)
Citation preview
Institut fr Technik der Informationsverarbeitung
DFG Mini Workshop
Device Treiber fr rekonfigurierbare Rechensysteme
HW-ICAP API zur Anwendung der Read-, Modify-, Writeback-Methode fr Xilinx Virtex-II FPGAs
Institutsleitung:Prof. Dr.-Ing. K.D. Mller-Glaser
Prof. Dr.-Ing. J. Becker
8. 9. Dezember TU Mnchen
Michael Hbner
-2-
Gliederung
Einleitung und Motivation Grundlagen Readback- Modify- WritebackMethodeAnwendungen
Konfigurationsmanagement SystemOnline Routing
Integration und Test Audio- Streaming Anwendung
Zusammenfassung und Ausblick
-3-
Statischer BereichSlot 0 Slot 1
Bisheriger Ansatz fr dynamisch und partiell rekonfigurierbare Systeme
Motivation
Dynamischer Bereich
IOs
ExternerSpeicher
ICAP
Interface
Prozessor
Inter-face
Modul B
Modul A
Aufteilung des Systems in 2 Bereiche:
Statischer BereichDynamischer Bereich
Aufteilung des Dynamischen Bereichs in Slots
Slot Hhe entspricht Bausteinhhe
Kommunikationstruktur
Horizontale Busmakros
Quelle: Markus Stitz
-4-
Nachteile des traditionellen Designs
Uneffektive Ausnutzung der zur Verfgung stehenden Chipflche durch:
Starre Aufteilung in dynamischen und statischen BereichUnflexible SlotbelegungAnpassung der Slotgre an grtes Modul
Lange Signallaufzeiten auf den horizontalen VerbindungsmakrosFestlegung auf SlotstrukturKomplizierte Anwendung des Modularen Design- FlowProblemspezifischer Ansatz
Motivation
Allgemeiner Design Ansatz
-5-
Alternative Designmglichkeiten
Motivation Makro
Static Area
Configuration Slot
Flexible Anordnung der KonfigurationsslotsFlexible Position innerhalb der SlotsMehrere Module pro Slot
M 1
M 2
M 3
Slot basierter Ansatz
Eigenstndige ModuleFrei platzierbar
Frage: Warum nicht ?
Gute Ausnutzung der Chipflche Kurze SignalwegeHohe Adaptivitt
Modul basierter AnsatzMicroBlaze/PowerPC
HWIcap
Flash-Controller
User-IPInterface
UART
ICAP
ExternalFlash
Memory
OP
B-Bus
to PC
FPGA
Module A
Module B Module C
Module D
Module E
MicroBlaze/PowerPC
HWIcap
Flash-Controller
User-IPInterface
UART
ICAP
ExternalFlash
Memory
OP
B-Bus
to PC
FPGA
Module A
Module B Module C
Module D
Module E
Quelle Matthias Khnle
-6-
Logik RessourcenRegelmige Anordnung in Spalten und Zeilen
Routing Ressourcen Regelmige Anordnung zwischen Logik Ressourcen
Homogenitt in horizontaler Richtung nur von BRAM- Blcken unterbrochen
I/O Blocks (IOBs)
ConfigurableLogic Blocks (CLBs)
Clock Management (DCMs, BUFGMUXes)
Block SelectRAMresource
Dedicated multipliers
Programmable interconnect
I/O Blocks (IOBs)
ConfigurableLogic Blocks (CLBs)
Clock Management (DCMs, BUFGMUXes)
Block SelectRAMresource
Dedicated multipliers
Programmable interconnect
Virtex-II Architektur
Grundlagen
Quelle Xilinx
-7-
Virtex-II Konfigurationsspeicher Architektur
Konfigurationsspeicher aus Frames aufgebautMinor Frame konfiguriert Bruchteil aller CLB-Ressourcen einer SpalteMinor Frame ist kleinste adressierbare Einheit
Partiell dynamische Re-konfiguration kann nur CLB- Spalten weise erfolgenLsung: Read-, Modify-Writeback Methode
Grundlagen
Major Frame
Minor Frame
-8-
Prinzip Readback- Modify- Writeback Methode
VoraussetzungenPartielles Auslesen der aktuellen KonfiguartionGlitchless Switching
GrundprinzipAuslesen einer partiellen KonfigurationManipulieren der entsprechenden RessourcenRckschreiben der manipulierten Konfiguration
ProblemKeine Angaben zur Adressierungeinzelner Ressourcen
ICAP- Schnittstelle
Readback- Modify-Writeback Methode
-9-
API fr Xilinx Virtex-II KonfigurationsbitstromJBits- Klasse stellt Virtex-II Bausteinmodell daManipulation einzelner FPGA Ressourcen
Gesamtbitstrom Readback- Bitstrom
Serielles InterfaceSerielles Interface
Serielles InterfaceSerielles Interface
ICAPICAP
Host- System
FPGA
Reverse Engineering mit JBits Java Klassenbibliothek
Readback- Modify-Writeback Methode
JBits- APIJBits- API BitstromBitstromBitstromBitstrom
Manipulation
JBits.read()JBits.getCLBBits(row,col,source)JBits.setCLBBits(row,col,source,bits)JBits.generatePartial()
-10-
Adressierung von Elementarblcken
Elementar- Block := CLB- Block + adjazente Switch Matrix
Readback- Modify-Writeback Methode
IO-Block
IO-Block
Elementar-Block n
Elementar-Block 2
Elementar-Block 1
Elementar-Block 0
Frame 0 1 2 ................................................................................................ 20 21
12 Byte
10 Byte
10 Byte
10 Byte
10 Byte
12 Byte
-11-
Mglichkeiten durch Elementarblock Adressierung
On- Chip RealisierungVerschieben von ElementarblckenVertauschen von ElementarblckenLaden von Elementarblock Konfigurationen aus einem externem SpeicherReadback- Modify-
Writeback Methode
Zusammenfassen von E-Blcken zu abgeschlossenen Funktionsmodulen
Verschieben von FunktionsmodulenVertauschen von FunktionsmodulenLaden von Funktionsmodulen
-12-
Speicherung eines Moduls im externen Speicher
0 1 2 21 0 1 2 21
Col 0 Col 10 1 2 21 0 1 2 21
Col 0 Col 1
0 1 2 21 1 2 3 21........ ........
COL 0 COL 1
Speichermapping
n..0 n..0 n..0 n..0 n..0 n..0 n..0 n..0 ..... ..... ..... .....
0
n
Modul
Ausschneiden der Frames aus GesamtbitstromNormierung durch Verschieben nach untenSerielles Speichern der einzelnen Frames
Modul ohne Placement Information
Readback- Modify-Writeback Methode
-13-
Konfigurationsmanagement System
Eigenschaften:Plattform unabhngig fr alle Virtex-II BausteineAllgemeiner nicht anwendungsbezogener AnsatzAPI fr bergeordnetes Laufzeitsystem welches den Anwendungskontext herstelltSlot basiert
FPGA Basiskonfiguration + Konfigurationsmanagement System bernimmt folgende Aufgaben:Empfang von KonfigurationskommandosAusgabe von Systemstatus InformationenVerwaltung der dynamisch re-konfigurierbaren FPGA FlcheVerwaltung des externen Modulspeichers Dynamisches Routing
Anwendungen
-14-
Grundelemente Hardware
ExternerSpeicher
OPB-HwIcap
MicroBlazeV
PowerPcMemory
ControllerOPB- UartLite
Host
IP-User Interface
Modul AModul C
Modul D
Modul A
Modul B
Virtex-II FPGA
Statisches Basissytem
Konfigurations-management
-15-
Statisches Basissystem
System Partitionierung
ExternerSpeicher
Host
Slot A
Slot BSlot A
Slot B
Slot C
Konfigurations-management Slot
YStartPos
YEndPos
XStartPos XEndPos
Routing Breite
Partitionierungs Parameter
Anzahl der Slots
-16-
Online Routing Elemente
Online Routing
Variable Modulposition innerhalb der Slots
Slot
Online Routing
Routing Channel Enthlt dynamische Routing Blcke
Verbindungsmakro Stellt Schnittstelle zu statischem Teil da Stellt Schnittstelle zu Routing Channel da
Modul
Modul Interface Schnittstelle zu Routing Blcken im Routing
Channel
Routingblcke
Type I Type II Type III
-17-
Online Routing Ablauf
Online Routing Slot
Modul
Initialisierung TYPE-I BlckeTYPE-III Abschluss
RoutingAustausch TYPE-I TYPE-II
Un-RoutingAustausch TYPE-II TYPE-I
IP-User Interface
-18-
Realisierung der Routing Blcke
G#
= Macro External Pin
F#
XY
G#F#
XYLUT basiert
CLB- Breite =3Signalbreite= 17-24
CLB- Breite =1Signalbreite= 1-8
CLB- Breite =2Signalbreite= 9-16
Verwendung von Double Line Routing RessourcenWichtig : Homogener Aufbau des Makros
Verschiedene MakrobreitenAls Makro mit FPGA Editor manuell erstellt
Online Routing
-19-
EDK- LIB
UART FLASH ICAP-PRIMITIVE
SerialInterface
Flash Driver
Icap Driver
Flash Manager
Configuration Manager
Icap Manager
Uart Driver
Icap UtilsUart Utils
Modularer Aufbau der Software
Konfigurations-management
-20-
ICAP API: Initialisierung
-21-
Beispiel Sequenz: Modul einfgen
Konfigurations-management
-22-
Configuration - Management
-23-
Audio Streaming Anwendung
ExternerSpeicher
OPB-HwIcap
MicroBlazeV
PowerPcMemory
Controller
Host
OPB- UartLiteOPB- UartLite
OPB-GP-IO
Lautsprecher
D/AWandler
Integration und Test
-24-
Performanz
Performanz der RMW- Methode Pro E-Block = 20 msBei Virtex-II XC2V1000 BausteinBei Taktrate von 100 MHz
Integration und Test
ICAP- Schnittstelle
-25-
Zusammenfassung
Dezentraler Ansatz mit JBitsTool zum Verschieben und Ausschneiden von Modulen
Entwicklungsplattform
Adressierung von E- BlckenOn-Chip Realisierung der RMW- MethodeLaden von Modulen aus externem SpeicherVllig neuartige Designmglichkeiten