SoC-Integration der multigranular- adaptiven Hardware ... · SoC-Integration der...
Transcript of SoC-Integration der multigranular- adaptiven Hardware ... · SoC-Integration der...
SoC-Integration der multigranular-adaptiven Hardware-Architektur HoneyComb
Alexander Thomas, Jürgen BeckerAlexander Thomas, Jürgen Becker
Institut für Technik der Informationsverarbeitung (ITIV)( )Universität Karlsruhe (TH)
Prof. Dr.-Ing. Klaus Müller-GlaserProf. Dr.-Ing. Jürgen Becker
Übersicht
HoneyComb ArchitekturHoneyComb-Architektur
Compiler/Mapping Tools
S C fi ti G tSuper-Configuration-Generator
Systemintegration
A d b i i lAnwendungsbeispiele
Zusammenfassung und Ausblick
HoneyComb-Architektur - Übersicht
Arraybasierte rekonfigurierbare ArchitekturHexagonale ZellstrukturDrei verschiedene Zelltypen:
- Datapath-HoneyComb-Cell (DPHC)- Memory-HoneyComb-Cell (MEMHC)
Input/Output HoneyComb Cell (IOHC)
HoneyComb-ArchitekturIOHC IOHC IOHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC DPHC DPHC
- Input/Output-HoneyComb-Cell (IOHC)Multigranulare DatentypenMultikontext DatenpfadeProgrammierbares IO-Interfaces (IOHC)
MEMHC MEMHC MEMHC MEMHC
DPHC DPHC DPHC DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHCProgrammierbares IO Interfaces (IOHC)Hardwareunterstütztes Online-Routing
Vorteile:
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
Adaptives Online-VerhaltenFehlertoleranz flexibel realisierbarKomplexe kontrollastige Anwendungen ausführbar
IOHC IOHC IOHCDPHC DPHC DPHC DPHC
Configuration Sequencing
HoneyComb-Architektur - Zellaufbau
Routing Unit
… …
ZelltypenDatenpfad-Zellen (DPHC)
I t i t ALU LUT R i t … …
F nctional
… … … …
- Integriert ALUs, LUTs, Register- Multigranulare Datentypen- Multicontext-Fähigkeiten- FSMs progammierbar
Input ports
Output ports
Functional Module
Honeycomb cell structure
Speicher-Zellen (MEMHC)- Offeriert FIFO, LIFO, RAM, CAM Funktionalität- Speichermenge in Module unterteilbar (RTL)- Speichermenge in Module unterteilbar (RTL)- Speicherung von multigranularen Datentypen
Ein-/Ausgabe-ZellenP i d A V h lt- Programmierung des Array-Verhaltens
- Realisierung des Configuration-Sequencing- Bedingte Steuerung des Arrays- Schnittstelle zum Systemy
Datenpfad-ModulSpeicher-Modul
HoneyComb-Plattform – Übersicht
LaufzeitumgebungEntwurfsumgebung LaufzeitumgebungEntwurfsumgebung
Anwendungen /Algorithmen
Dynamic Allocation andDistribution Manager
(dADM)
HCL-Beschreibung
Portierung( )
empl
ate
Configuration Ctrl
Offline Mapper undConfiguraton-Template-
Generator (MCTG) Cod
e
onfig
urat
ion-
TeGenerator (MCTG)
Assembler-Code Transforma-tionsregeln
Para
met
er
Con
figur
atio
n
Mas
chin
en-CC
o
HoneyComb-Architektur
Simulationsdaten
Super-Configuration-
GeneratorAssembler R
TL-C
Debugging and Simulation Environment
HCViewer HCSim
Umgesetzte PfadeOffene Pfade
Tools
Tools
Umgesetzte Module / ToolsOffene Implementierungen
HoneyComb-Language (HCL)
Definitionskriterien
Abstraktion streng struktureller ProgrammierungB h ib d F kti lität f Z ll bBeschreibung der Funktionalität auf Zellebene
- Partitionierung durch Programmierer- Einführung von Hochsprachenkonstrukten
Mechanismen zur Verwaltung von (Sub-)ConfigurationenMechanismen zur Verwaltung von (Sub )ConfigurationenAusnutzung der IOHC-Funktionalität
- Configuration SequencingCodeportabilität zwischen Zellen unterschiedlicher RTL-Konfigurationen
- Wählbare MaschinennäheAusnutzung der gegebenen Parallelität
ErgebnisVHDL-ähnliche parallele BeschreibungsmethodikProzessbasiert – je Zelle ein ProzessProzessbasiert je Zelle ein Prozess
- DPHC, MEMHC, IOHC
HoneyComb-Language (HCL) – Beispiel am Funktionalen Prozess
CELL CounterExampleIN Start#1, Stop#1, Range;OUT CounterOut, Finish#1;ALIAS S1 = 1#1 S2 = 0#1;
DefinitionsbereichALIAS S1 = 1#1, S2 = 0#1;VAR State#1, Counter;
INITSET State = S1;
BEGIN
InitialbereichBEGIN
State <= State; Finish = 0;IF (State = S1) THEN
IF (Start) THENState <= S2; Counter <= Range;State <= S2; Counter <= Range;
END IFELSE // State = S2
Counter <= Counter – 1; IF (St OR ALU(C t ) f) THEN
FunktionalbereichIF (Stop OR ALU(Counter).zf) THEN
State <= S1; Finish = 1;
END IF;END IF;CounterOut = Counter;
END CELL;
HoneyComb-Language (HCL) – Beispiel am Funktionalen Prozess
CELL CounterExampleIN Start#1, Stop#1, Range;OUT CounterOut, Finish#1;ALIAS S1 = 1#1 S2 = 0#1; ELSEALIAS S1 = 1#1, S2 = 0#1;VAR State#1, Counter;
INITSET State = S1;
BEGIN S1
ELSEFinish = 0
BEGINState <= State; Finish = 0;IF (State = S1) THEN
IF (Start) THENState <= S2; Counter <= Range;
S1Start
Counter = RangeFinish = 0
Stop V Counter = 0Finish = 1
State <= S2; Counter <= Range;END IF
ELSE // State = S2Counter <= Counter – 1; IF (St OR ALU(C t ) f) THEN
S2
Finish = 0
IF (Stop OR ALU(Counter).zf) THENState <= S1; Finish = 1;
END IF;ELSE
Counter = Counter – 1Fi i h 0END IF;
CounterOut = Counter;END CELL;
Finish = 0
HoneyComb-Language (HCL) – Programmiermethodik
Anwendungen- Funktionen/Prozeduren- Eingabe/Ausgabe- DFG/CFG
Manuelle Partitionierung- Zellen als kleinste Granularität- Planung der Kommunikation- Beschreibung in HCL-Proz.
Definition der Subkonfigurationen
- Instanziierung von Prozessen- Optionale Positionierung
Scheduling- Configuration Sequencing- Laden/Löschen von
Konfigurationen
Applikation
Funktion:
Start
Funktion:
g
Funktion:Funktion:
- Beschreibung der Verbindungen
- Reuse der Zellbeschreibung.⇨ Bibliotheken denkbar
- Bedingte Ablaufsteuerung- Parallele/sequentielle Abarbeitung von Subcfg.
Ziel: Applikationskonfiguration
Datei lesen
Prozedur: Daten aufbereiten
Funktion:Berechnungsschleife
Funktion:Berechnungsschleife
Funktion:Berechnungsschleife
Funktion:BerechnungsschleifeBerechnungsschleife
proc3proc1
Dateilesen
Prozedur: Daten aufbereiten
Subkonfiguration:Berechnungsschleife
1
2 g 5
Funktion:BerechnungsschleifeFunktion:Berechnungsschleife
proc3proc3
proc3proc3
proc6
proc2
proc4proc6
proc1
proc2
proc5
proc3
g 1
Sub
Cfg
SubC
fg 3
Cfg
4Su
bCfg
para
llel
Prozedur:Daten nachbereiten
Funktion:
proc6proc6
proc6proc5Prozedur:
Daten nachbereiten
Funktion:
proc6
proc4
SubC
fg S
SubC
tt1 t2 t3
Ergebnis ausgeben
Ende
Ergebnis ausgebenAnalog übrige Subkonfigurationen …
sequentiell
Offline Mapper und Configuration-Template-Generator
Basierend auf HCL-BeschreibungenGenerierung von binärem Maschinencode (Configuration-Templates)
Abbildungsprozess realisiert durch einen ÜbersetzerErzeugt Assembler-Code für feste RTL-KonfigurationI l i iImplementierung ist umgesetztDerzeit: Abbildung basierend auf homogenem RTL-Template
Configuration Template GenerierungConfiguration-Template-Generierung …Derzeit noch in ArbeitGenerierung von Regeln für die Online-Transformationen der Configuration-PatternsConfiguration-Constraints: Takt, Performanceg ,Configuration-Template:
- Container für Ausführbaren Code, Transformationsregeln, Runtime Constraints
HoneyComb-Assembler (HCA)
Native-AssemblerStrukturelle BeschreibungsspracheNaturgemäß sehr hardwarenah
.DPHC
CGBIN 0 ALU0
CGBIN 1 ALU0
CGBIN 2 ALU0
Beschreibungen sind RTL-abhängigSchlechte Lesbarkeit
- Für große Anwendungen ungeeignetD i Kl I t kti
CGBIN 3 ALU0
CGMOUT 0 REG0
CGMOUT 1 REG1
FGBREG 0 ALU0.0, LUT0Drei Klassen von Instruktionen
- Routinginstruktionen- Konfigurationsbefehle für Zellen- Befehlssatz des IOHC-µControllers
FGREG 0 LUT0.0
FGRINIT 0 0
CGBREG 0 OUT0
CGREG 0 ALU0- Befehlssatz des IOHC µControllers
CGBREG 1 OUT1
CGREG 1 ALU0
ALULMUX 0 A0=REG0
ALULCFG 0 C0=[A=IN0, B=IN1,REG0]
ALULCFG 0 C1=[A=IN2, B=IN3,REG1]
ALUOP 0 ENABLE, ADD
LUTDMUX 0 A0=REG0
LUTDOUT 0 F0=REG0
LUTCFG 0 R0=["1"]
LUTCFG 0 R1=["0"]
LUTOP 0 ENABLE
HoneyComb-Architektur – RTL - Konfigurationsgenerierung
ProblemHochparametrisierter ArchitekturansatzGroße Zahl zu belegender Parameter (DPHC: ca. 60.000 Parameter)
- Zellen Ein- / Ausgabe-Links-Anzahl- Datenbreiten / Granularität
Anzahl ALUs LUTs etc- Anzahl ALUs, LUTs, etc- Speichermodulgrößen / -anzahl- Interconnect-Ausprägung- etc.etc.
Gesucht: Methodik zur Beherrschung der ‚unüberschaubaren‘ Anzahl der Parameter
AnsatzParameter lassen sich einfach in Tabellen darstellen und verwalten: MS ExcelSkriptbasierte Konsistenzprüfung (Excel VBA)Weiterhin Erzeugung einer Vollständigen Array-ParametrisierungHoneyComb Native Assembler mitintegriert – Berücksichtigung der RTL Konfiguration
IO-Spezifikation der Zelle
Z lli t P tZellinterne Parameter
Interconnect Statistik
Konsistenzprüfung
Vorgefertigte Template-Liste
Aktuell definiertes Steuerelemente ArraySteuerelemente
HoneyComb Architektur – Design Flow zur Charakterisierung der RTL-Configuration
Excel Generator
R f lik ti
TemplateLibrary
HoneyComb RTL Template-GenerierungNutzung vorbereiteter Templates
RTL TemplateReferenzapplikationen Ergebnis: Überladene RTL Konfiguration
Kompilierung ausgesuchter AnwendungenHCLHCLHCLA li ti
HCLApplication
HCLApplication
HCLApplication
A MCTGApplication Cfg FApplication Cfg EApplication Cfg DApplications Cfg CApplication Cfg BApplication Cfg A Kompilierung ausgesuchter AnwendungenTemplate wird bestmöglichst ausgenutzt
Ergebnis: Satz an RTL Konfigurationen für
HCLApplication
F
Application E
Application D
Application CBA
g gbestmögliche Applikationsausführung
Referenzkonfigurationen
SuperCfg Generator SuperCfg Generator erzeugt eine Obermenge der verfügbaren Konfigurationen
Super ConfigurationSuper RTL ConfigurationErgebnis: RTL Konfiguration zur optimalen Ausführung der ApplikationenWeitere iterative Schritte optional möglich …
Extraktion der Superkonfiguration (1)
Vereinfachte DarstellungErstellen einer Zellvorlage zur Generierung der RTL-KonfigurationAnwendungsabhängige Untersuchung benötigter Operationen, Quellen, Ziele, etc. je KomponenteInkrementelles Hinzufügen weiterer OperationenInkrementelles Hinzufügen weiterer OperationenAbbruch falls Ressourcenbedarf aller Applikationen gedeckt ist
ResultierendeApplikation A Applikation B
c
ResultierendeRTL Konfiguration
aa b
+
c b b
+
z
+
y
•
y
+,
z
•
yz
Extraktion der Superkonfiguration – Homogenes Arrays
Abbildung aller Applikationszellen auf eine Zielzelle: Homogene Arraykonfiguration
Applikation AHoneyComb-Architektur
IOHC IOHC IOHCDPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC DPHC DPHC
Zellausprägung mit allen benötigten
Features
DPHC DPHC DPHC DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHCApplikation BDPHC DPHC DPHC DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
Vorteile: Größte Flexibilität beim LaufzeitmappingEinfacher Applikationsentwurf
IOHC IOHC IOHCDPHC DPHC DPHC DPHC
Einfacher ApplikationsentwurfNachteil: Randgebiete nutzen die Ressourcen schlechter aus
Extraktion der Superkonfiguration – Inhomogene Arrays
Abbildung der Applikationszellen positionsbedingt: Inhomogene Arraykonfiguration
Applikation A Anwendung der HoneyComb-Architektur
IOHC IOHC IOHCDPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC DPHC DPHC
Applikation A
DPHC DPHC DPHC DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHCApplikation BDPHC DPHC DPHC DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
IOHC IOHC IOHCDPHC DPHC DPHC DPHC
Extraktion der Superkonfiguration – Inhomogene Arrays
Abbildung der Applikationszellen positionsbedingt: Inhomogene Arraykonfiguration
Applikation AHoneyComb-Architektur
IOHC IOHC IOHCDPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC DPHC DPHC
DPHC DPHC DPHC DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHCApplikation BDPHC DPHC DPHC DPHCAnwendung der
A lik ti BDPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
Applikation B
IOHC IOHC IOHCDPHC DPHC DPHC DPHC
Extraktion der Superkonfiguration – Inhomogene Arrays
Abbildung der Applikationszellen positionsbedingt: Inhomogene Arraykonfiguration
Applikation AHoneyComb-Architektur
IOHC IOHC IOHCDPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC DPHC DPHCAnwendung beider
Applikationen
DPHC DPHC DPHC DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHCApplikation BDPHC DPHC DPHC DPHC
Applikationen
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
Vorteile: Bestmögliche RessourcenausnutzungMinimaler Power und Flächenbedarf
IOHC IOHC IOHCDPHC DPHC DPHC DPHC
Nachteil: Komplexe Applikationserstellung auf vorhandener Hardware
3. Project phase: SoC-Integration –mögliche Prototypkonfiguration
On-Die HoneyComb-PrototypeFPGA
Multi-Chip-Ansatz aus KostengründenTechnologie: 90nm UMC standard cellGeschätzte Zellflächen: 0.5 – 1.0 mm²G t fü b Flä h 16 24 ²
DDR SDRAM / SRAMDDR SDRAM
IOHCDPHC DPHC
DPHCrcon
nect
MEMCTRLA
Inte
rfac
e
Gesamte verfügbare Fläche: 16 - 24 mm²I/O-Interfacing über FPGAOptional: Memory-Ctrl auf dem ChipExakte Konfiguration applikationsabhängig
IOHC
DPHC
DPHC
DPHC
DPHC
DPHC
DPHC
AH
B/A
HB
InteSystem IO
MEMCTRL
PLL
llele
s
Weitere PCB-Level-KomponentenFPGA für periphere SchnittstellenMemory-Ctrl: DDR-SDRAM auf dem FPGA
B
Para
l
Flexible peripheral interfacesWeitere Schnittstellen:
- RS232- I²C- USB 2.0
RS2
32 SPI
I²C
USB
2.0
Ethe
rnet
SATA DDR SDRAM / SRAM
PCB-Level Integration
- VGA- etc. VG
A
Applikationen …
Wavelet Transformation (JPEG2000)Einfacher Raytracer-Demonstrator
… weitere Applikationen:iMDCT-Decoder, Cordic-Filter, FFT, …
Publikationen
Thomas, A.; Becker, J.: New Adaptive Multi-grained Hardware Architecture for Processing of Dynamic Function Patterns (Neue adaptive multi-granulare Hardwarearchitektur); In: it - Information Technology 49(3): 165, 2007
Thomas, A.; Becker, J.: Multi-grained Reconfigurable Harware Architecture with Online-Adaptive Routing TechniquesIn: IFIP International Conference on Very Large Scale Integration (IFIP VLSI SOC 2005) Perth Western Australia October 17 19 2005In: IFIP International Conference on Very Large Scale Integration (IFIP VLSI-SOC 2005), Perth, Western Australia, October 17-19, 2005
Thomas, A.; Becker, J.: Online-adaptive Reconfigurable Hardware Architecture and Runtime EnvironmentIn: IEEE International SOC Conference (SOCC2005), Dulles Airport, Washington, September 25-28, 2005
Thomas, A.; Becker, J.: Multi-grained Reconfigurable Datapath Structures for Online-Adaptive Reconfigurable Hardware ArchitecturesIn: IEEE Computer Society Annual Symposium on VLSI (ISVLSI 2005), Tampa, Florida, May 11-12, 2005
Becker, J.; Hübner, M.; Paulsson, K.; Thomas, A.: Dynamic Reconfiguration On-Demand: Real-time Adaptivity in Next Generation Microelectronics; ReCoSoc2005, Montpellier, France, 2005
Thomas, A: Design of a Dynamic Reconfigurable Multi-Grained Hardware Architecture with Adaptive Runtime RoutingIn: PhD-Forum, Field-programmable Logic and its applications (FPL 2005), Antwerpen, August 2004
Thomas, A.; Zander, T.; Becker, J.: Adaptive DMA-based I/O Interfaces for Data Stream Handling in Multi-grained Reconfigurable HardwareThomas, A.; Zander, T.; Becker, J.: Adaptive DMA based I/O Interfaces for Data Stream Handling in Multi grained Reconfigurable Hardware Architectures In: Kongressbericht, Symposium on Integrated Circuits and Systems Design (SBCCI 2004), Porto de Galinhas, Pernambuco, Brazil, September 7-11, 2004
Thomas, A.; Becker, J.: Dynamic Adaptive Routing Techniques In Multigrain Dynamic Reconfigurable Hardware ArchitecturesIn: Kongressbericht, Field-programmable Logic and its applications (FPL 2004), Antwerpen, August 2004In: Kongressbericht, Field programmable Logic and its applications (FPL 2004), Antwerpen, August 2004
Thomas, A.; Becker, J.: Aufbau- und Strukturkonzepte einer adaptiven multigranularen rekonfigurierbaren HardwarearchitekturIn: Kongressbericht "17th International Conference on Architecture of Computing Systems (ARCS 2004)", Workshop "Dynamically Reconfigurable Systems", Augsburg, März 23-26, 2004
Zusammenfassung – Software Environment
Software-Status:HoneyComb-Language (HCL)Offline Mapper und Configuration-Template-Generator (MCTG)
- Erste Version des Compilers verfügbar (schwache Optimierung)- Derzeit: Codegenerierung ohne Hardware-Constraints
D b i d Si l i b (DSE)Debugging- und Simulationsumgebung (DSE)- HCViewer fertig implementiert- HCSim vorbereitet / derzeit Simulation über das VHDL-Modell
Super-Configuration-GeneratorSuper Configuration Generator- Verfügbar: Generierung homogener Arrays- Möglich: Effektivere inhomogene RTL-Generierung
3. Projektphase:Dynamic Allocation and Distribution Manager (dADM)
- Implementierung am Ende der 3. Projektphase
Zusammenfassung und Ausblick
Die HoneyComb-Architektur Status:VHDL-Modell ist getestet und vorbereitet für die SoC-IntegrationSynthese und Layouterstellung für den SoC als letzte Arbeitschritte
Weitere AufgabenHierarchiegenerator – Auflösen des stark generischen Modells – In VollendungEntwicklung von Demonstrationsanwendungen in HCLAnhand der Ergebnisse Vergleiche mit existierenden Lösungen
Vielen Dank für Ihre Aufmerksamkeit …