HW-ICAP API zur Anwendung der Read-, Modify-, Writeback ... · PDF file©Institut für Technik der Informationsverarbeitung DFG – Mini Workshop „Device Treiber für rekonfigurierbare

  • 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