Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors
für den Einsatz in Regelungs- und Messsystemen
Bernd Däne, Alexander Pacholik, Wolfgang Fengler
Technische Universität Ilmenau
www.tu-ilmenau.de/ra
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
2
Gliederung
1. Einleitung
2. Konzept der Prozessorarchitektur
3. Details zum Aufbau
4. Einfaches Beispielprogramm
5. Fallstudie
6. Zusammenfassung und Ausblick
Gefördert durch die DFG innerhalb des SFB 622
„Nanopositionier- und Nanomessmaschinen“
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
3
Problemstellung
Rechenintensive Algorithmen
z.B.: Digitale Filter und Regler
Hauptanforderung: Geringe Latenz pro Abtastschritt
Realisierung mit FPGA (Field Programmable Gate Arrays)
Denn: Verbreitete Hardwarebasis mit enger I/O-Anbindung
Gleitkomma-Arithmetik (DOUBLE)
Werkzeugintegrierte Entwurfswege
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
4
Voraussetzungen
Aus dem Forschungsprojekt vorgegeben:
Baugruppensysteme PXI und cRIO (National Instruments)
FPGA-Baugruppen mit schneller Analog-I/O
Beispiel: Modul PXI-7853R mit FPGA Xilinx Virtex-5-LX85
Entwurfswerkzeug LabView (National Instruments)
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
5
Lösungsvarianten Rechenweg direkt als Hardwarestruktur
→ Hoher Ressourcenverbrauch
Hardwarestruktur mit Mehrfachverwendung
→ Schwierige Zeitoptimierung
Verwendung verfügbarer Softcore-Prozessoren
→ Schlechte Problemanpassung
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
6
Lösungsvarianten Rechenweg direkt als Hardwarestruktur
→ Hoher Ressourcenverbrauch
Hardwarestruktur mit Mehrfachverwendung
→ Schwierige Zeitoptimierung
Verwendung verfügbarer Softcore-Prozessoren
→ Schlechte Problemanpassung
DESHALB:
Entwurf eines aufgabenspezifischen Softcore-Prozessors
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
7
Architekturkonzept
Weitgehende Konfigurierbarkeit
Harvard-RISC-Architektur, einfache Pipeline
Keine Abhängigkeitslogik
Vereinfachte Speicherarchitektur
Verzicht auf Sprünge und Schleifen
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
8
Resultierende Merkmale
Optimierungen zur Übersetzungszeit
Keine Wartezustände
Komplett planbares Zeitverhalten
Ressourcenschonung
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
9
Innere Struktur des Kerns
M
U
X Write
Out
Operator 1
...
Operator n
Read 1
Read 2
In
Rechenwerk
on-the-fly
on-the-fly
Befehle Befehlsdekoder
Pre-Operation 1
Pre-Operation 2 Operation Zieladr.
Quelladr. 1
Quelladr. 2
... ...
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
10
Innere Struktur des Kerns
Write
Out
Operator 1
...
Operator n
Read 1
Read 2
In
Rechenwerk
on-the-fly
on-the-fly
Befehle Befehlsdekoder
Pre-Operation 1
Pre-Operation 2 Operation Zieladr.
Quelladr. 1
Quelladr. 2
...
M
U
X...
On-the-fly-Operationen: z.B. Negation, Absolutbetrag (optional)
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
11
Innere Struktur des Kerns
Write
Out
Operator 1
...
Operator n
Read 1
Read 2
In
Rechenwerk
on-the-fly
on-the-fly
Befehle Befehlsdekoder
Pre-Operation 1
Pre-Operation 2 Operation Zieladr.
Quelladr. 1
Quelladr. 2
...
M
U
X...
Operatoren: z.B. Addition, Multiplikation, Sinus, Typkonvertierung
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
12
Innere Struktur des Kerns
Write
Out
Operator 1
...
Operator n
Read 1
Read 2
In
Rechenwerk
on-the-fly
on-the-fly
Befehle Befehlsdekoder
Pre-Operation 1
Pre-Operation 2 Operation Zieladr.
Quelladr. 1
Quelladr. 2
...
M
U
X...
Multiplexer: Wahl des benötigten Operationsergebnisses
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
13
Innere Struktur des Kerns
Write
Out
Operator 1
...
Operator n
Read 1
Read 2
In
Rechenwerk
on-the-fly
on-the-fly
Befehle Befehlsdekoder
Pre-Operation 1
Pre-Operation 2 Operation Zieladr.
Quelladr. 1
Quelladr. 2
...
M
U
X...
Befehlsdekoder: Liefert Operationscodes und Adressen
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
14
Innere Struktur des Kerns
Write
Out
Operator 1
...
Operator n
Read 1
Read 2
In
Rechenwerk
on-the-fly
on-the-fly
Befehle Befehlsdekoder
Pre-Operation 1
Pre-Operation 2 Operation Zieladr.
Quelladr. 1
Quelladr. 2
...
M
U
X...
Interface: Anschluss für Speicherblöcke und E/A-Register
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
15
Aufbau des Befehlswortes
Quelladresse 1
Quelladresse 2
Pre-Operation 1
Pre-Operation 2
Operation
Zieladresse
z.B. 10 bit
z.B. 10 bit
z.B. 2 bit
z.B. 2 bit
z.B. 6 bit
z.B. 10 bit
ErsterSchritt
ZweiterSchritt
3-Adress-Maschine
Größe der Felder
konfigurierbar
Schritte gehören
meist zu
unterschiedlichen
Befehlen
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
16
Äußere Beschaltung des Kerns
Write
Out
Speicher 1 Read 1
In
Befehle Zieladresse
Quelladresse 1
Prozessorkern
Speicher 2
Out
Read 2
Quelladresse 2
In
Programm-
speicher
Befehls-
adresse
Zähler
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
17
Äußere Beschaltung des Kerns
Write
Out
Speicher 1 Read 1
In
Befehle Zieladresse
Quelladresse 1
Prozessorkern
Speicher 2
Out
Read 2
Quelladresse 2
In Zähler
Programm-
speicher
Programm-
speicher
Befehls-
adresse
Befehlsstrom: Fortlaufend (keine Sprünge, keine Stalls)
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
18
Äußere Beschaltung des Kerns
Write
Out
Speicher 1 Read 1
In
Befehle Zieladresse
Quelladresse 1
Prozessorkern
Speicher 2
Out
Read 2
Quelladresse 2
In Zähler
Programm-
speicher
Befehls-
adresse
Schreiben: Identisches Schreiben in zwei Speicherblöcke
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
19
Äußere Beschaltung des Kerns
Write
Out
Speicher 1 Read 1
In
Befehle Zieladresse
Quelladresse 1
Prozessorkern
Speicher 2
Out
Read 2
Quelladresse 2
In Zähler
Programm-
speicher
Befehls-
adresse
Lesen: Jeder Speicherblock liefert einen Operanden
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
20
Äußere Beschaltung des Kerns
Write
Out
Speicher 1 Read 1
In
Befehle Zieladresse
Quelladresse 1
Prozessorkern
Speicher 2
Out
Read 2
Quelladresse 2
In Zähler
Programm-
speicher
Befehls-
adresse
Input und Output: Adressierbare Register
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
21
Mehrkern-Strukturen
Faktisch VLIW-Prozessor (Very Long Instruction Word)
Gemeinsamer Speicherraum für Daten
Problem: Anzahl der Speicher-Zugriffswege
→ Deshalb: Vervielfachung der Speicherinhalte
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
22
Struktur mit zwei Kernen
Write
Read 1
Prozessorkern 1
Read 2
Write
Read 1
Prozessorkern 2
Read 2
Speicher 1a
Speicher 1b
Speicher 2a
Speicher 2b
Speicher 3a
Speicher 3b
Speicher 4a
Speicher 4b
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
23
Struktur mit zwei Kernen
Write
Read 1
Prozessorkern 1
Read 2
Write
Read 1
Prozessorkern 2
Read 2
Speicher 1a
Speicher 1b
Speicher 2a
Speicher 2b
Speicher 3a
Speicher 3b
Speicher 4a
Speicher 4b
Schreiben: 4-mal identisch
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
24
Struktur mit zwei Kernen
Write
Read 1
Prozessorkern 1
Read 2
Write
Read 1
Prozessorkern 2
Read 2
Speicher 1a
Speicher 1b
Speicher 2a
Speicher 2b
Speicher 3a
Speicher 3b
Speicher 4a
Speicher 4b
Schreiben: 4-mal identisch
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
25
Struktur mit zwei Kernen
Write
Read 1
Prozessorkern 1
Read 2
Write
Read 1
Prozessorkern 2
Read 2
Speicher 1a
Speicher 1b
Speicher 2a
Speicher 2b
Speicher 3a
Speicher 3b
Speicher 4a
Speicher 4b
Lesen: Zwei Operanden pro Kern
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
26
Struktur mit zwei Kernen
Write
Read 1
Prozessorkern 1
Read 2
Write
Read 1
Prozessorkern 2
Read 2
Speicher 1a
Speicher 1b
Speicher 2a
Speicher 2b
Speicher 3a
Speicher 3b
Speicher 4a
Speicher 4b
Lesen: Zwei Operanden pro Kern
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
27
Konfigurierbarer Befehlssatz
Gleitkomma-Operationen nach Bedarf
Transport, Input, Output
Sonstiges
Besonderheiten:
Unterschiedliche Latenzen
Prädikatierung möglich
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
28
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
„Lineare
Assembler-
sprache“
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
29
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
Input:
1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
30
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
Input:
1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
31
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
1
Input:
1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
32
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
1
1
Input:
1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
33
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
1
1
6
Multiplikation:
6 Takte
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
34
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
1
1
6
6
Multiplikation:
6 Takte
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
35
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
1
1
6
6
5
Addition:
5 Takte
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
36
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
1
1
6
6
5
5 Subtraktion:
5 Takte
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
37
Einfaches Programmbeispiel
in 1 ? x1
in 2 ? x2
in 3 ? x3
in 4 ? x4
mul x1 k1 t1
mul x2 k2 t2
add x1 x2 t3
sub x3 x4 t4
1
1
1
1
6
6
5
5
Insgesamt
ohne
Optimierung:
26 Takte
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
38
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
Zeit
Programmspeicher: Taktweise Zuordnung der Speicherplätze
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
39
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
t2
t3
t4
k1
k2
x1
x2
x3
x4
t1
Datenspeicher: DOUBLE-Werte, direkte Adressierung
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
40
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
IN1
-
-
-
IN
00
t2
t3
t4
k1
k2
x1
x2
x3
x4
t1
in 1 ? x1 1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
41
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
IN2
-
-
-
IN
01
t2
t3
t4
k1
k2
x1
x2
x3
x4
t1
in 2 ? x2 1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
42
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
IN2
-
-
-
IN
01
MUL
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
00
08
-
-
MUL
04
t2
t3
t4
k1
k2
x1
x2
x3
x4
t1
mul x1 k1 t1 6 Takte (vorgezogen)
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
43
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
IN2
-
-
-
IN
01
00
08
-
-
MUL
04
MUL
MUL
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
01
09
-
-
MUL
05
t2
t3
t4
k1
k2
x1
x2
x3
x4
t1
mul x2 k2 t2 6 Takte (vorgezogen)
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
44
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
IN2
-
-
-
IN
01
00
08
-
-
01
09
-
-
MUL
04
MUL
05
MUL
MUL
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
IN3
-
-
-
IN
02
x1
x2
x3
x4
t1
t2
t3
t4
k1
k2
in 3 ? x3 1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
45
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
IN2
-
-
-
IN
01
00
08
-
-
01
09
-
-
IN3
-
-
-
IN
02
MUL
04
MUL
05
MUL
MUL
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
IN4
-
-
-
IN
03 t1
x4
x3
x1
x2
t2
t3
t4
k1
k2
in 4 ? x4 1 Takt
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
46
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
IN2
-
-
-
IN
01
00
08
-
-
01
09
-
-
IN3
-
-
-
IN
02
IN4
-
-
-
IN
03
00
01
-
-
MUL
04
MUL
05
ADD
06
MUL
MUL ADD
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
t1
x4
x3
x1
x2
t2
t3
t4
k1
k2
add x1 x2 t3 5 Takte
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
47
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
IN2
-
-
-
IN
01
00
08
-
-
01
09
-
-
IN3
-
-
-
IN
02
IN4
-
-
-
IN
03
00
01
-
-
02
03
-
MUL
04
MUL
05
ADD
06
07
MUL
MUL ADD
SUB
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
t2 05
t3 06
t4 07
k1 08
k2 09
x1 00
x2 01
02
03
t1 04
Datenspeich.
ADD
NEG
x4
x3
sub x3 x4 t4 5 Takte (Addition mit Pre-Negation)
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
48
Programmbeispiel optimiert
Quelladr. 1
Quelladr. 2
Pre-Oper. 1
Pre-Oper. 2
Operation
Zieladr.
IN1
-
-
-
IN
00
IN2
-
-
-
IN
01
00
08
-
-
-
-
01
09
-
-
-
-
IN3
-
-
-
IN
02
IN4
-
-
-
IN
03
00
01
-
-
-
-
02
03
-
NEG
MUL
04
-
-
-
-
MUL
05
-
-
-
-
-
-
-
-
-
-
ADD
06
-
-
-
-
ADD
07
MUL
MUL ADD
SUB
Programmspeicher
00 01 02 03 04 05 06 07 08 09 0A 0B
05
06
07
08
09
00
01
02
03
04
Datenspeich.
t2
t3
t4
k1
k2
x1
x2
x3
x4
t1
Insgesamt: 12 Takte → Speedup: 2,1
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
49
Werkzeugunterstützung
Werkzeugintegrierter Entwurfsweg in Arbeit
Prozessor-Entwurf komplett in LabView
einschließlich Befehlssatz-Konfiguration usw.
Programmentwurf bisher teilweise in LabView
z.B.: Befehlsscheduler, Binärcode-Generator
Geplant: Transformation Modell → Programm
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
50
Fallstudie
Nichttriviale Algorithmen aus realem Forschungsprojekt
Zielgröße stets Latenz pro Abtasttakt
Experimentelle Bestätigung
Modul PXI-7853R mit FPGA Xilinx Virtex-5-LX85
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
51
Ausgewählte Ergebnisse
Algorithmus Befehls- anzahl
Latenz [µs]
Speedup
Kalman-Filter 175 1,79 3,54
Dreiachs-Regler 570 5,47 3,04
Polynom 115 1,20 3,20
Ellipsenkorrektur 356 7,65 1,55
Ellipsenkorrektur 2x 711 9,32 2,54
DOUBLE, Pipelinetakt 120 MHz, Einkern-Prozessoren
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
52
Zusammenfassung
Konfigurierbarer Softcore-Prozessor
Spezialisierung bezüglich Aufgabenklasse
Untersuchung in einer Fallstudie
Ergebnis im aktuellen Forschungsprojekt verwendet
Name: LiSARD (LabVIEW integrated Softcore Architecture
for Reconfigurable Devices)
10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen
53
Ausblick
Weiterentwicklungen:
o Prozessorkern
o VLIW-Eigenschaften
o Werkzeugintegration
Weitere Anwendungsbeispiele