54
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

Aspekte zur Realisierung eines FPGA-basierten Softcore ... · Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen Bernd

  • 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

10.05.2012 Aspekte zur Realisierung eines FPGA-basierten Softcore-Prozessors für den Einsatz in Regelungs- und Messsystemen

54

Vielen Dank

für Ihre

Aufmerksamkeit!