Top Banner
Synthese, SoC-Integration und Programmierung der multigranular- adaptiven Hardware-Architektur HoneyComb Alexander Thomas, Michael Hübner, Jürgen Becker Institut für Technik der Informationsverarbeitung (ITIV) Universität Karlsruhe (TH) Prof. Dr.-Ing. Klaus Müller-Glaser Prof. Dr.-Ing. Jürgen Becker
37

Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Apr 18, 2018

Download

Documents

lymien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Synthese, SoC-Integration und Programmierung der multigranular-adaptiven Hardware-Architektur HoneyComb

Alexander Thomas, Michael Hübner, 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

Page 2: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Übersicht

HoneyComb-Architektur

Compiler/Mapping Tools

Super-Configuration-Generator

Systemintegration

Anwendungsbeispiele

Zusammenfassung und Ausblick

Page 3: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Architektur - Übersicht

Arraybasierte rekonfigurierbare ArchitekturHexagonale ZellstrukturDrei verschiedene Zelltypen:

- Datapath-HoneyComb-Cell (DPHC)- Memory-HoneyComb-Cell (MEMHC)- Input/Output-HoneyComb-Cell (IOHC)

Multigranulare DatentypenMultikontext DatenpfadeProgrammierbares IO-Interfaces (IOHC)Hardwareunterstütztes Online-Routing

Vorteile:Adaptives Online-VerhaltenFehlertoleranz flexibel realisierbarKomplexe kontrollastige Anwendungen ausführbarConfiguration Sequencing

HoneyComb-Architektur

MEMHC MEMHC MEMHC MEMHC

IOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

Page 4: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Architektur - Zellaufbau

HoneyComb-Architektur

Routing Unit

……

……

Functional Module

… … … …

Honeycomb cell structure

Input ports

Output ports

CG Cell Inputs

MG Cell Inputs

CG Cell Outputs

MG Cell OutputsMEMHC MEMHC MEMHC MEMHC

IOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

Routing Unit

Links zwischen den Zellen

Einheitliche Zellstrukturen in allen ZelltypenRouting Unit

- Bestandteil des Kommunikationsnetzes- Parametrisierbar bzgl. Anzahl Links, etc.

Funktionales Modul- Spezifiziert Zelltyp: DPHC, MEMHC, IOHC

Page 5: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Architektur - Zellaufbau

Routing Unit

……

……

Functional Module

… … … …

Honeycomb cell structure

ZelltypenDatenpfad-Zellen (DPHC)

- Integriert ALUs, LUTs, Register- Multigranulare Datentypen- Multicontext-Fähigkeiten- FSMs progammierbar

Speicher-Zellen (MEMHC)- Offeriert FIFO, LIFO, RAM, CAM Funktionalität- Speichermenge in Module unterteilbar (RTL)- Speicherung von multigranularen Datentypen

Ein-/Ausgabe-Zellen- Programmierung des Array-Verhaltens- Realisierung des Configuration-Sequencing- Bedingte Steuerung des Arrays- Schnittstelle zum System

Input ports

Output ports

Datenpfad-ModulSpeicher-Modul

Page 6: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Plattform – Übersicht

LaufzeitumgebungEntwurfsumgebung

Offline Mapper undConfiguraton-Template-

Generator (MCTG)

Assembler-Code Transforma-tionsregeln

Anwendungen /Algorithmen

HCL-Beschreibung

Super-Configuration-

Generator

Para

met

er

Assembler

Portierung

Dynamic Allocation andDistribution Manager

(dADM)

RTL

-Con

figur

atio

n

Mas

chin

en-C

ode

Con

figur

atio

n-Te

mpl

ate

HoneyComb-Architektur

Debugging and Simulation Environment

HCViewer

Simulationsdaten

Configuration Ctrl

HCSim

Umgesetzte PfadeOffene Pfade

Tools

Tools

Umgesetzte Module / ToolsOffene Implementierungen

Page 7: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Language (HCL)

Definitionskriterien

Abstraktion streng struktureller ProgrammierungBeschreibung der Funktionalität auf Zellebene

- Partitionierung durch Programmierer- Einführung von Hochsprachenkonstrukten

Mechanismen zur Verwaltung von (Sub-)ConfigurationenAusnutzung der IOHC-Funktionalität

- I/O-Kontrolle- Configuration Sequencing

Codeportabilität zwischen Zellen unterschiedlicher RTL-Konfigurationen

- Wählbare MaschinennäheAusnutzung der gegebenen Parallelität

ErgebnisVHDL-ähnliche parallele BeschreibungsmethodikProzessbasiert – je Zelle ein Prozess

Page 8: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Language (HCL) – Prozesstypen

Definition basierend auf vier Prozesstypen

Funktionale Prozesse- Bezug auf DPHCs- Datenmanipulation / Nutzung von High-Level-Konstrukten- Einführung von Variablen / Alias-Bezeichnern

Speicherprozesse- Bezug auf MEMHCs- Definition Speichergrößen, -Typen, -Anzahl

(Sub-) Konfigurationsdefinitionskonstrukte- Formale Beschreibung (Definition) von (Sub-)Konfigurationen- Spezifiziert I/O-Ports, Internes Interconnect, Positionen und den Namen der Konfiguration

Mainprozesse- Bezug auf IOHCs- Steuerung des externen Verhaltens (Configuration Sequencing)- Bedingter Ablauf

Page 9: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

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;VAR State#1, Counter;

INITSET State = S1;

BEGINState <= State; Finish = 0;IF (State = S1) THEN

IF (Start) THENState <= S2; Counter <= Range;

END IFELSE // State = S2

Counter <= Counter – 1; IF (Stop OR ALU(Counter).zf) THEN

State <= S1; Finish = 1;

END IF;END IF;CounterOut = Counter;

END CELL;

Definitionsbereich

Initialbereich

Funktionalbereich

Page 10: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

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;VAR State#1, Counter;

INITSET State = S1;

BEGINState <= State; Finish = 0;IF (State = S1) THEN

IF (Start) THENState <= S2; Counter <= Range;

END IFELSE // State = S2

Counter <= Counter – 1; IF (Stop OR ALU(Counter).zf) THEN

State <= S1; Finish = 1;

END IF;END IF;CounterOut = Counter;

END CELL;

Ein- / Ausgänge

Konstanten / Zustandsnamen

Variablen / Zustandsregister

Zustandsinitalisierung

Default - Zuweisungen

Zustandsmaschine

Ungepufferte Zuweisung

Gepufferte Zuweisung

Page 11: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

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;VAR State#1, Counter;

INITSET State = S1;

BEGINState <= State; Finish = 0;IF (State = S1) THEN

IF (Start) THENState <= S2; Counter <= Range;

END IFELSE // State = S2

Counter <= Counter – 1; IF (Stop OR ALU(Counter).zf) THEN

State <= S1; Finish = 1;

END IF;END IF;CounterOut = Counter;

END CELL;

S1

S2

StartCounter = Range

Finish = 0

ELSECounter = Counter – 1

Finish = 0

Stop V Counter = 0Finish = 1

ELSEFinish = 0

Page 12: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Language (HCL) – Programmiermethodik

Anwendungen- Funktionen/Prozeduren- Eingabe/Ausgabe- DFG/CFG

Applikation

Funktion: Datei lesen

Prozedur: Daten aufbereiten

Funktion:Berechnungsschleife

Prozedur:Daten nachbereiten

Funktion: Ergebnis ausgeben

Start

Ende

Funktion:Berechnungsschleife

Funktion:Berechnungsschleife

proc3

proc6

Funktion:Berechnungsschleife

proc3

Funktion:Berechnungsschleife

proc3

proc6

Funktion:Berechnungsschleife

proc3

proc6

Manuelle Partitionierung- Zellen als kleinste Granularität- Planung der Kommunikation- Beschreibung in HCL-Proz.

Funktion:Berechnungsschleife

proc5

proc3

proc2

proc1

proc4proc6

Funktion: Dateilesen

Prozedur: Daten aufbereiten

Prozedur:Daten nachbereiten

Funktion: Ergebnis ausgeben

Subkonfiguration:Berechnungsschleife

Definition der Subkonfigurationen

- Instanziierung von Prozessen- Optionale Positionierung- Beschreibung der

Verbindungen- Reuse der Zellbeschreibung.

⇨ Bibliotheken denkbar

proc1

proc2

proc5

proc6

proc3

proc4

Analog übrige Subkonfigurationen …

Scheduling- Configuration Sequencing- Laden/Löschen von

Konfigurationen- Bedingte Ablaufsteuerung- Parallele/sequentielle

Abarbeitung von Subcfg.Ziel: Applikationskonfiguration

Sub

Cfg

1S

ubC

fg2

Sub

Cfg

3

Sub

Cfg

4S

ubC

fg5

tsequentiell

para

llel

t1 t2 t3

Page 13: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Offline Mapper und Configuration-Template-Generator

Basierend auf HCL-BeschreibungenGenerierung von binärem MaschinencodeZiel: Configuration-Templates

Abbildungsprozess realisiert durch einen ÜbersetzerErzeugt Assembler-Code für feste RTL-KonfigurationZukünftig: Einbeziehen unterschiedlicher RTL-Konfigurationen

- Kompatibilität zu vorhandenen HC-Versionen

Configuration-Template-Generierung …Derzeit noch in ArbeitGenerierung von Regeln für die Online-Transformationen der Configuration-PatternsConfiguration-Constraints: Takt, PerformanceConfiguration-Template:

- Container für Ausführbaren Code, Transformationsregeln, Runtime Constraints

Page 14: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Language-Übersetzer – Blockdiagramm

Symbol-entschlüssler

LexikalischeAnalyse

ZerteilerSyntaxanalyseSemantische

Analyse

Symbol-folge

AbstrakterSyntax-baum

Honeycomb-Language-Programm

TransformationErzeugung der

Zwischen-darstellung

TransformationErzeugung der

Zwischen-darstellung

TransformationErzeugung der

Zwischen-darstellung

Frontend(Analysephase)

Operationsliste

Datenpfad-zellenabbildung

Speicher-zellenabbildung

LoweringRegister-allokator

Backend(Synthesephase)

Optimierung

Steuer-flussgraph

Operationsliste

Honeycomb-Assembler-Programm

Datenpfadzelle

Speicherzelle

Zwis

chen

-da

rste

llung

Codeerzeugung

Main-Prozess

Page 15: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Assembler (HCA)

Native-AssemblerStrukturelle BeschreibungsspracheNaturgemäß sehr hardwarenahBeschreibungen sind RTL-abhängigSchlechte Lesbarkeit

- Für große Anwendungen ungeeignetDrei Klassen von Instruktionen

- Routinginstruktionen- Konfigurationsbefehle für Zellen- Befehlssatz des IOHC-µControllers

.DPHC

CGBIN 0 ALU0

CGBIN 1 ALU0

CGBIN 2 ALU0

CGBIN 3 ALU0

CGMOUT 0 REG0

CGMOUT 1 REG1

FGBREG 0 ALU0.0, LUT0

FGREG 0 LUT0.0

FGRINIT 0 0

CGBREG 0 OUT0

CGREG 0 ALU0

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

Page 16: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

HoneyComb-Architektur – RTL - Konfigurationsgenerierung

ProblemHochparametrisierbarer ArchitekturansatzGroße Zahl zu belegender Parameter (DPHC: ca. 60.000 Parameter)

- Zellen Ein- / Ausgabe-Links-Anzahl- Datenbreiten / Granularität- Anzahl ALUs, LUTs, etc- Speichermodulgrößen / -anzahl- Interconnect-Ausprägung- 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

Page 17: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

IO-Spezifikationder Zelle

Konsistenzprüfung

Zellinterne Parameter

Interconnect Statistik

Page 18: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Komplexität einer Zellenbeschreibung am Beispiel der Speicherzelle

Page 19: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

VorgefertigteTemplate-Liste

Aktuell definiertesArraySteuerelemente

Page 20: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Super Configuration

HoneyComb Architektur – Design Flowzur Charakterisierung der RTL-Configuration

Excel Generator

MCTG

RTL TemplateReferenzapplikationen

Application Cfg FApplication Cfg EApplication Cfg DApplications Cfg CApplication Cfg BApplication Cfg A

SuperCfg Generator

Super RTL Configuration

TemplateLibrary

HoneyComb RTL Template-GenerierungNutzung vorbereiteter Templates

Ergebnis: Überladene RTL Konfiguration

Kompilierung ausgesuchter AnwendungenTemplate wird bestmöglichst ausgenutzt

Ergebnis: Satz an RTL Konfigurationen für bestmögliche Applikationsausführung

SuperCfg Generator erzeugt eine Obermenge der verfügbaren Konfigurationen

Ergebnis: RTL Konfiguration zur optimalen Ausführung der ApplikationenWeitere iterative Schritte optional möglich …

HCLApplication

F

HCLApplication

E

HCLApplication

D

HCLApplication

C

HCLApplication

B

HCLApplication

A

Referenzkonfigurationen

Page 21: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

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 OperationenAbbruch falls Ressourcenbedarf aller Applikationen gedeckt ist

a b

z

+

c b

y

Applikation A Applikation Bc

b

y

+,

ResultierendeRTL Konfiguration

a

z

Page 22: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Extraktion der Superkonfiguration – Homogenes Arrays

Abbildung aller Applikationszellen auf eine Zielzelle: Homogene Arraykonfiguration

Vorteile: Größte Flexibilität beim LaufzeitmappingEinfacher Applikationsentwurf

Nachteil: Randgebiete nutzen die Ressourcen schlechter aus

HoneyComb-ArchitekturIOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

Applikation A

Applikation BDPHC DPHC DPHC DPHC

Zellausprägung mit allen benötigten

Features

Page 23: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Abbildung der Applikationszellen positionsbedingt: Inhomogene Arraykonfiguration

Extraktion der Superkonfiguration – Inhomogene Arrays

HoneyComb-ArchitekturIOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

Applikation A

Applikation BDPHC DPHC DPHC DPHC

Anwendung der Applikation A

Page 24: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Abbildung der Applikationszellen positionsbedingt: Inhomogene Arraykonfiguration

Extraktion der Superkonfiguration – Inhomogene Arrays

HoneyComb-ArchitekturIOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

Applikation A

Applikation BDPHC DPHC DPHC DPHCAnwendung der

Applikation B

Page 25: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Extraktion der Superkonfiguration – Inhomogene Arrays

Abbildung der Applikationszellen positionsbedingt: Inhomogene Arraykonfiguration

Vorteile: Bestmögliche RessourcenausnutzungMinimaler Power und Flächenbedarf

Nachteil: Komplexe Applikationserstellung auf vorhandener Hardware

HoneyComb-ArchitekturIOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

Applikation A

Applikation BDPHC DPHC DPHC DPHC

Anwendung beider Applikationen

Page 26: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

MEMHC MEMHC MEMHC MEMHC

IOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

RAM1SRAM/eDRAM

RAM2SRAM/eDRAM

RAM0SRAM/eDRAM

RAM4SRAM/eDRAM

RAM5SRAM/eDRAM

RAM3SRAM/eDRAM

AHB/AHBBridge

AHB/AHBBridge

CPU

RAMSRAM/eDRAM

System IO

AM

BA

AH

B

Multilayer AHB (Lanes 0,1,2)

Multilayer AHB (Lanes 3, 4, 5)

I-Cache D-Cache

3. Projektphase: Schwerpunkt Systemintegration

Ideale Systemkonfiguration – Multilayer / Multimemory Topologie

Page 27: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

IOHC

IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

AH

B/A

HB

Inte

rcon

nect

System IO

LVDS –Signaling

3. Projektphase: Mögliche Konfiguration zum Prototyping

MEMCTRLB

PLL

MEMCTRLA

On-Die HoneyComb-PrototypFPGA

Gig

abit-

Anb

indu

ng

Flexible periphere AnbindungR

S232 SP

I

I²C

USB

2.0

Ethe

rnet

SATA

DDR SDRAM

PCB-Level Integration

Multi-Chip-Ansatz da Verwendung der0.25µm (oder 0.35µm) AMS Technologie

Entscheidung aus KostengründenRelativ grobe Strukturen0.5mm² in 90nm → ca. 32mm² in 0.25µmIntegration vereinfachter Zellen auf separatem DieI/O-Anbindung per LVDS-SignalingOptional: Memory-Ctrl auf dem ChipExakte Konfiguration wird evaluiert

Weitere PCB-Level-KomponentenFPGA zur Ankopplung an PeripherieOn-Board-Memory: DDR-SDRAM über FPGA-konfigurierten Controller ansteuernWeitere optionale Periphere Interfaces:

- RS232- I²C- USB 2.0- VGA- etc.

DDR SDRAMDDR SDRAM

VGA

Page 28: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Anwendungsbeispiel – IMDCT Filter

Rekursive Struktur (nach Nikolajevic, Fettweis)Eingang: Spektral Werte, z.B. 1024 Werte (Vorgabe OggVorbis Codec)Ausgang: Abtastwerte, z.B. 2048 SamplesBerechnung: je Sample á 1024 rekursive Zyklen (jeweils mit 4 Operationen)Bei 44.1 kHz und Windowing Verfahren sind 88.200 Samples / Sekunde erforderlich

=> 1.024 Zyklen/Sample * 88.200 Samples * 4 Operationen => 361.267.200 Operationen / Sek.

Allerdings: Anpassungen an die HoneyComb Architektur sind erforderlich !!!Anwendung: MP3/OggVorbis Decoder

-X(k) +

- ∗ x(n)

cos2nθR1

R2Z-1

Z-1

Spectral Werte Samples

>>

>>

2cos nθ

Page 29: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Anwendungsbeispiel – IMDCT Filter

iθcos2

-X(k) +

- ∗ x(n)

cos2nθR1

R2Z-1

Z-1

Spektralwerte Abtastwerte

>>

>>

-X(k) Z-1 + Z-1

Z-1

Z-1

- ∗Z-1 Z-1 x(n)R11

R21

R23

R22 R32 R33

R13

>>

>>

Z-1

Z-1 R31

cos2nθ

iθcos2

Transformierte Struktur: Multikontext Version (ein Abtastwert pro Durchlauf)

Erster Berechnungsschritt

Dritter Berechnungsschritt

Zweiter Berechnungsschritt

Benötigte Ressourcen:- 5 CG Register (Counter, Kontexte)- 3 FG Register (Zustände)- 4 ALUs / 2 LUTsPerformance: - 3 Zyklen / Durchlauf (im Mittel)

Page 30: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

IMDCT – Filter: Gesamtkonfiguration

HoneyComb-Architektur

MEMHC MEMHC MEMHC MEMHC

IOHC IOHC IOHC

IOHC IOHC IOHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHC

DPHCiMDCT Finger

Speicherelementfür Cosinus-Werte

Adressgeneratorund Scheduler

Gesamtrealisierung mit acht Fingern

Eingang: 1024 SpektralwerteAusgang: 2048 AbtastwerteOggVorbis Voraussetzungen (incl. Windowing):

- 43 Window Berechnungen / sekunde

Im Falle der festen Konfiguration:⇨ 1 Finger ausreichend (@ 100 MHz)⇨ 97656 Abtastwerte / sekunde⇨ 47,6 Window Berechungen / sekunde

Zellenbedarf: 4 (2 MEMHCs, 2 DPHCs)Im Falle der notwendigen Rekonfiguration:

- Erhöhung der parallelen Konfigurationen zur Performance-Steigerung

Page 31: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Weitere Applikationen …

Wavelet Transformation (JPEG2000)

Einfacher Raytracer-Demonstrator

Page 32: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Zusammenfassung – Software Environment

Software-Status:HoneyComb-Language (HCL)Offline Mapper und Configuration-Template-Generator (MCTG)

- Erste Version des Compilers verfügbar und in Evaluierung- Derzeit: Codegenerierung ohne Hardware-Constraints- Geplant: ILP-Mapping unter Berücksichtigung der Hardware

Debugging- und Simulationsumgebung (DSE)- HCViewer fertig implementiert- HCSim vorbereitet / derzeit Simulation über das VHDL-Modell

Super-Configuration-Generator- Verfügbar: Generierung homogener Arrays- Geplant: Effektivere inhomogene RTL-Generierung

3. Projektphase:Dynamic Allocation and Distribution Manager (dADM)

- Implementierung innerhalb der 3. Projektphase

Page 33: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Zusammenfassung und Ausblick

Die HoneyComb-Architektur Status:VHDL-Modell ist finalisiertDerzeit: Evaluierung des Software/Hardware-ZusammenspielsSynthese und Layouterstellung in Arbeit

Weitere AufgabenHierarchiegenerator – Auflösen des stark generischen Modells – In VollendungEntwicklung von Demonstrationsanwendungen in HCLAnhand der Ergebnisse Vergleiche mit existierenden Lösungen

Page 34: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Kooperationen

Universität Karlsruhe (TH)Institut für Technik der InformationsverarbeitungProf. Dr.-Ing. Klaus D. Müller-GlaserProjekt: Adaptives Laufzeitsystem mit intelligenter Allokation für

dynamisch rekonfigurierbare Funktionsmuster und optimierte Topologien (ALADYN)

Berührungspunkte: Ankopplung der HoneyComb als weitere Ressourcenkomponente

Universität TübingenLehrstuhl Technische InformatikProf. Dr. rer. nat. Wolfgang RosenstielProjekt: Bewertungs- und Entwurfverfahren für prozessartig

rekonfigurierbare ArchitekturenBerührungspunkte: Programmierung und Codegenerierung

Page 35: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Kooperationen

Technische Universität Darmstadt (TH)Fachgebiet Eingebettete Systeme und ihre AnwendungenProf. Dr.-Ing. Andreas KochProjekt: Software Defined Radio: How to implement an outer modemZiele: Programmierung und Applikationsentwicklung

TU BraunschweigFachgebiet Eingebettete Systeme und ihre AnwendungenProf. Dr Sándor Fekete / Jan C. van der VeenProjekt: ReCoNodesZiele: Zell-Abbildungen mittels ILP

Page 36: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Vielen Dank für Ihre Aufmerksamkeit …

Page 37: Synthese, SoC-Integration und Programmierung der ... · Applications Cfg CApplication Cfg FApplication Cfg EApplication Cfg DApplication Cfg BApplication Cfg A SuperCfg Generator

Publikationen

[1] Thomas, A.; Becker, J.: Multi-grained Reconfigurable Hardware Architecture with Online-Adaptive Routing Techniques; IFIP International Conference on Very Large Scale Integration (IFIP VLSI-SOC 2005), Perth, Western Australia, October 17-19, 2005

[2] Thomas, A.; Becker, J.: Online-adaptive Reconfigurable Hardware Architecture and Runtime Environment; IEEE International SOC Conference (SOCC2005), Dulles Airport, Washington, September 25-28, 2005

[3] J. Becker, M. Hübner, K. Paulsson, A. Thomas: "Dynamic Reconfiguration On-Demand: Real-timeAdaptivity in Next Generation Microelectronics", ReCoSoc2005, Montpellier, France

[4] Thomas, A.; Becker, J.: Multi-Grained Reconfigurable Datapath Structures for Online-Adaptive Reconfigurable Hardware Architectures; IEEE Computer Society Annual Symposium on VLSI (ISVLSI 2005), Tampa, Florida, Mai 11-12, 2005

[5] Thomas, A.; Zander, T.; Becker, J.: Adaptive DMA-based I/O Interfaces for Data Stream Handling in Multi-grained Reconfigurable Hardware Architectures; Symposium on Integrated Circuits and Systems Design (SBCCI 2004), Porto de Galinhas, Pernambuco, Brazil, September 7-11, 2004

[6] Thomas, A.; Becker, J.: Dynamic Adaptive Routing Techniques in Multi-grained Dynamic Reconfigurable Hardware Architectures; Field-programmable Logic and its applications (FPL 2004), Antwerpen, August 2004

[7] Thomas, A.; Becker, J.: Aufbau- und Strukturkonzepte einer adaptiven multigranularen rekonfigurierbaren Hardwarearchitektur; Kongressbericht "17th International Conference on Architecture of Computing Systems (ARCS 2004)", Workshop "Dynamically Reconfigurable Systems", Augsburg, März 23-26, 2004