1
www.tu-ilmenau.de Technische Universität Ilmenau Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Fachgebiet Rechnerarchitektur und Eingebettete Systeme www.tu-ilmenau.de/ra Msc. Dipl.-Ing. Irina Gushchina, Dr.-Ing. Bernd Däne, Dipl.-Ing. Alexey Moskalev, Prof. Dr.-Ing. habil. Wolfgang Fengler {irina.guschtschina, bernd.daene,wolfgang.fengler}@tu-ilmenau.de Untersuchung zur FPGA-Implementierung von Mess- und Regelungsalgorithmen Abstract: Dieser Beitrag präsentiert verschiedene Varianten des Entwurfs und der Implementierung eines Algorithmus unter Berücksichtigung einer aufgrund der Anwendung notwendigen hohen Leistungsfähigkeit und des geforderten Echtzeitverhaltens. Reine Software-Realisierungen (z.B. auf einem Universalprozessor) können häufig die erforderlichen Leistungsparameter nicht erzielen. Deswegen werden Varianten zur Implementierung auf einem FPGA betrachtet, die mit Fließkomma-Arithmetik realisiert sind und auch eine struktur- und steuerflussorientierte Optimierung benötigen. Motivation Schnittstelle zu Messwerterfassung Schnittstelle zu Bedienrechner Schnittstelle zu Bildbasierter Sensorik Schnittstelle zu Antrieben integrierte Ablaufsteuerung Messwert- vorverarbeitung Regelung Sensordaten- verdichtung Komplexes Regelungssystem für ein hochpräzises Mehrkoordinaten- Positionierungssystem Projekt des DFG-Sonderforschungsbereichs „Nanopositionier- und Nanomessmaschinen“ Der aufwendigste Teil des Regelungsalgorithmus ist ein modifizierter Kalman-Filter , der als nichtmodellbasierter Reibungsschätzer dient und über den die Reibungskompensation für den geregelten Bewegungsvorgang realisiert wird. Industrielle Informationsverarbeitungssysteme mit eingebetteten Universalprozessoren und mehreren FPGA-Modulen (PXI-Systeme von National Instruments) Untersuchung zur FPGA-Implementierung Der Kalman-Filter-Algorithmus enthält zahlreiche Matrixoperationen und einige Vektoroperationen in Fließkomma-Arithmetik. Insgesamt ergeben sich 208 Additionen, 280 Multiplikationen, 17 Subtraktionen und eine Division. Implementierung von Fließkomma-Arithmetik auf FPGAs Optimierte FPGA-Implementierung Ÿ Verwendung von kommerziellen Komplettlösungen ( ) Ÿ Lösungen auf Basis von IP-Cores der FPGA-Hersteller Ÿ mit zusätzlichen freien VHDL-Bibliotheken hohe Kosten IP-Core von Xilinx VHDL-Bibliothek kombinatorisch VHDL-Bibliothek pipelined Slices F/ F LUTs DSP Ticks Sli ces F/F LUTs DSP Ticks Sl ices F/F LUTs DSP Ti cks Addit ion 4,7% 4% 3% 0% 6 4,8% 1,9% 4,1% 0% 2 4,5% 2,9% 3,7% 0% 4 Mu ltipl.: ohne DSP 7,3% 6,7% 6% 0% 6 - - - - - - - - - - mi t DSP 3,3% 2,6% 2% 19% 8 * 3,1% 1,9% 2,3% 32% 2 3,1% 2,2% 2,2% 32% 4 Subtrak. 4,4% 3,1% 3,5% 0% 6 4,9% 1,9% 4,1% 0% 2 4,6% 2,9% 3,7% 0% 4 Divi sion 8,6% 6,1% 7,5% 0% 14 * - - - - - 12% 11% 8,3% 0% 30 Testergebnisse aus zahlreichen LabVIEW-Realisierungen der benötigten Operationen (doppelte Genauigkeit). Dargestellt sind der relative Ressourcenverbrauch im FPGA (bezogen auf Virtex-5-LX85) und die Latenzen bei der Ausführung (in „Ticks“-Takten). Die Taktfrequenz betrug jeweils 80 MHz, außer für die beiden mit * gekennzeichneten Fälle (hier 120 MHz) Die Untersuchung von unterschiedlichen Optimierungsvarianten wurde mit Hilfe des modellbasierten Entwurfes durchgeführt: 1) Strukturoptimierung des Algorithmus: Eliminieren von Multiplikationen mit Null oder Eins und von Additionen mit Null (für Kalman-Filter auf 90 Mul, 85 Add, 1 Sub, 1 Div) 2) Effizienter Ressourcenverbrauch: mehrfache Verwendung von gleichen Ressourcen. Deswegen muss man lokale Steuerflüsse erzeugen, die jeweils Sequenzen für die Verwendung des gleichen Hardware-Elements an unterschiedlichen Stellen des Berechnungsweges realisieren, ohne dass die Parallelisierung von Teilen des Algorithmus dabei ausgeschlossen wird. interne Kommunikation& Synchronisation Elementweise Realisierung ohne Hardware- Scheduling (jede Instanz des Knotens wird durch eigene Ressourcen implementiert) Optimierte elementweise Realisierung mit Hardware-Scheduling (jede Instanz kann dieselben Ressourcen benutzen) Im Fall der betrachteten Kalman-Filter- Implementierung ist eine weitere Optimierung nötig (mit Hardware-Scheduling, nicht elementweise sondern mit Schleifen): 17 Add (5 auf FPGA platziert), 17 Mul (2 mit DSP und 2 ohne platziert), 2 Sub (1 platziert), 1 Div. Alle Operationen auf Basis von IP-Cores von Xilinx. Performance/Vergleich von unterschiedlichen Varianten des Entwurfs und der Implementierung Ÿ Ÿ Bei der Berechnung durch einen Universalprozessor (RT-Controller) ist die Ausführungszeit jitterbehaftet und die Kommunikation zum FPGA-Modul erfordert . Platzoptimierte Umsetzung benötigt etwa 70% und zeitoptimierte Umsetzung etwa 90% von FPGA-Ressourcen (etwa 30 µs) Zusammenfassung und Ausblick: Auf Grund des Fehlens von nativer Fließkomma-Arithmetik erwies sich die Entwicklung auf FPGAs als komplexes Problem. Die FPGA-Implementierungen benötigen eine steuerflussorientierte Optimierung und eine Betrachtung des Ressourcenverbrauchs. Die Realisierung und Weiterentwicklung verschiedener Varianten ermöglichte eine vergleichende Betrachtung bei unterschiedlicher Ausführung der Optimierung. Ein wichtiges Ergebnis ist die Anwendung von Softcore-Prozessoren, die auch mit Hardware-Implementierungen kombiniert werden können.

Untersuchung zur FPGA-Implementierung von Mess- und ... · Untersuchung zur FPGA-Implementierung Der Kalman-Filter-Algorithmus enthält zahlreiche Matrixoperationen und einige Vektoroperationen

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Untersuchung zur FPGA-Implementierung von Mess- und ... · Untersuchung zur FPGA-Implementierung Der Kalman-Filter-Algorithmus enthält zahlreiche Matrixoperationen und einige Vektoroperationen

www.tu-ilmenau.deTechnische Universität Ilmenau

Technische Universität IlmenauFakultät für Informatik und AutomatisierungFachgebiet Rechnerarchitektur und Eingebettete Systeme www.tu-ilmenau.de/ra

Msc. Dipl.-Ing. Irina Gushchina, Dr.-Ing. Bernd Däne, Dipl.-Ing. Alexey Moskalev, Prof. Dr.-Ing. habil. Wolfgang Fengler

{irina.guschtschina, bernd.daene,wolfgang.fengler}@tu-ilmenau.de

Untersuchung zur FPGA-Implementierung

von Mess- und Regelungsalgorithmen

Abstract: Dieser Beitrag präsentiert verschiedene Varianten des Entwurfs und der Implementierung eines Algorithmus unter

Berücksichtigung einer aufgrund der Anwendung notwendigen hohen Leistungsfähigkeit und des geforderten Echtzeitverhaltens. Reine

Software-Realisierungen (z.B. auf einem Universalprozessor) können häufig die erforderlichen Leistungsparameter nicht erzielen.

Deswegen werden Varianten zur Implementierung auf einem FPGA betrachtet, die mit Fließkomma-Arithmetik realisiert sind und auch eine

struktur- und steuerflussorientierte Optimierung benötigen.

Motivation

Schnittstelle zuMesswerterfassung

Schnittstelle zuBedienrechner

Schnittstelle zuBildbasierter Sensorik

Schnittstelle zuAntrieben

integrierteAblaufsteuerung

Messwert-vorverarbeitung

Regelung

Sensordaten-verdichtung

Komplexes Regelungssystem für ein hochpräzises Mehrkoordinaten-

Positionierungssystem

Projekt des DFG-Sonderforschungsbereichs „Nanopositionier- und Nanomessmaschinen“

Der aufwendigste Teil des Regelungsalgorithmus ist ein modifizierter Kalman-Filter, der als nichtmodellbasierter Reibungsschätzer dient und über den die Reibungskompensation für den geregelten Bewegungsvorgang realisiert wird.

Industrielle Informationsverarbeitungssysteme

mit eingebetteten Universalprozessoren und mehreren FPGA-Modulen (PXI-Systeme von National

Instruments)

Untersuchung zur FPGA-Implementierung

Der Kalman-Filter-Algorithmus enthält zahlreiche Matrixoperationen und einige Vektoroperationen in Fließkomma-Arithmetik. Insgesamt ergeben sich 208

Additionen, 280 Multiplikationen, 17 Subtraktionen und eine Division.

Implementierung von Fließkomma-Arithmetik auf FPGAs Optimierte FPGA-Implementierung

ŸVerwendung von kommerziellen Komplettlösungen ( )

ŸLösungen auf Basis von IP-Cores der FPGA-Hersteller

Ÿmit zusätzlichen freien VHDL-Bibliotheken

hohe Kosten

IP-Core von Xilinx

VHDL-Bibliothek

kombinatorisch

VHDL-Bibliothek

pipelined Slices F/F LUTs DSP Ticks Slices F/F LUTs DSP Ticks Slices F/F LUTs DSP Ticks

Addition 4,7% 4% 3% 0% 6 4,8% 1,9% 4,1% 0% 2 4,5% 2,9% 3,7% 0% 4

Multipl.:

ohne DSP 7,3% 6,7% 6% 0% 6 - - - - - - - - - -

mit DSP 3,3% 2,6% 2% 19% 8 * 3,1% 1,9% 2,3% 32% 2 3,1% 2,2% 2,2% 32% 4

Subtrak. 4,4% 3,1% 3,5% 0% 6 4,9% 1,9% 4,1% 0% 2 4,6% 2,9% 3,7% 0% 4

Division 8,6% 6,1% 7,5% 0% 14 * - - - - - 12% 11% 8,3% 0% 30

Testergebnisse aus zahlreichen LabVIEW-Realisierungen der benötigten Operationen (doppelte Genauigkeit). Dargestellt sind der relative Ressourcenverbrauch im FPGA (bezogen auf Virtex-5-LX85) und die Latenzen bei der Ausführung (in „Ticks“-Takten). Die Taktfrequenz betrug jeweils 80 MHz, außer für die beiden mit * gekennzeichneten Fälle (hier 120 MHz)

Die Untersuchung von unterschiedlichen Optimierungsvarianten wurde mit Hilfe des

modellbasierten Entwurfes durchgeführt:

1) Strukturoptimierung des Algorithmus: Eliminieren von Multiplikationen mit

Null oder Eins und von Additionen mit Null (für Kalman-Filter auf 90 Mul, 85 Add,

1 Sub, 1 Div)

2) Effizienter Ressourcenverbrauch: mehrfache Verwendung von gleichen

Ressourcen. Deswegen muss man lokale Steuerflüsse erzeugen, die jeweils

Sequenzen für die Verwendung des gleichen Hardware-Elements an

unterschiedlichen Stellen des Berechnungsweges realisieren, ohne dass die

Parallelisierung von Teilen des Algorithmus dabei ausgeschlossen wird.

inte

rne

K

om

mu

nik

ati

on

&

Syn

ch

ron

isati

on

Elementweise Realisierung ohne Hardware-Scheduling (jede Instanz des Knotens wird durch eigene Ressourcen implementiert)

Optimierte elementweise Realisierung mit Hardware-Scheduling (jede Instanz kann

dieselben Ressourcen benutzen)

Im Fall der betrachteten Kalman-Filter-Implementierung ist eine weitere Optimierung

nötig (mit Hardware-Scheduling, nicht elementweise sondern mit Schleifen): 17 Add (5 auf FPGA platziert), 17 Mul (2 mit DSP und

2 ohne platziert), 2 Sub (1 platziert), 1 Div. Alle Operationen auf Basis von IP-Cores

von Xilinx.

Performance/Vergleich von unterschiedlichen Varianten des Entwurfs und der Implementierung

Ÿ

Ÿ

Bei der Berechnung durch einen Universalprozessor (RT-Controller) ist die Ausführungszeit jitterbehaftet und die Kommunikation zum FPGA-Modul erfordert

.

Platzoptimierte Umsetzung benötigt etwa 70% und zeitoptimierte Umsetzung etwa 90% von FPGA-Ressourcen

(etwa 30 µs)

Zusammenfassung und Ausblick: Auf Grund des Fehlens von nativer Fließkomma-Arithmetik erwies sich die Entwicklung auf FPGAs als komplexes Problem. Die FPGA-Implementierungen benötigen eine steuerflussorientierte Optimierung und eine Betrachtung des Ressourcenverbrauchs. Die Realisierung und Weiterentwicklung verschiedener Varianten ermöglichte eine vergleichende Betrachtung bei unterschiedlicher Ausführung der Optimierung. Ein wichtiges Ergebnis ist die Anwendung von Softcore-Prozessoren, die auch mit Hardware-Implementierungen kombiniert werden können.