Teamwork

Teamwork

Multi-Core-FPGAs für Highspeed-Bildverarbeitung

In vielen Bereichen der Elektronik wie der Kommunikationstechnik oder der Bildverarbeitung gibt es den Trend, dass die zu verarbeitende Datenmenge stark ansteigt. Insbesondere Bildsensoren haben heutzutage eine derart hohe Datenausgaberate, dass Entwickler und Hardware hinsichtlich der Verarbeitung immer wieder vor neue Herausforderungen gestellt werden.
Während in den letzten Jahren meist der Einsatz eines FPGA aus dem mittleren Preissegment genügte, gelangt man damit heute schnell an Leistungsgrenzen. Moderne FPGAs der oberen Klassen bieten zwar viele konfigurierbare Ressourcen, so dass die meisten Algorithmen umsetzbar sind, jedoch sind hierbei die Kosten oft erheblich und können unter Umständen einem wirtschaftlichen Einsatz entgegenstehen. Das neue Multi-Core-FPGA-System kann unter Verwendung bewährter Bauteile die Leistungsfähigkeit größerer FPGAs erreichen bzw. sogar übertreffen. Der HexaCore lässt sich durch einfaches Hinzufügen von Modulen auch für anspruchsvollste Bildverarbeitungsanwendungen anpassen. Dabei liegt der Fokus nicht ausschließlich in diesem Bereich, da das flexible Konzept einen weitreichenden Einsatz erlaubt. Der Multi-Core besteht aus bis zu sechs FPGAs, von denen sich zwei fest auf einem Basisboard befinden und vier weitere aufgesteckt werden können.

Entwicklungsvorteile

Das grundlegende Prinzip eines homogenen Multi-Core-Systems sowie die Parallelisierung von Datenverarbeitung ist nicht grundlegend neu und wird Fachleuten sicherlich sofort bekannt vorkommen. Es greift bewusst die Idee des Transputers aus den 80er Jahren auf, da mit dieser Art der Architektur entscheidende Faktoren der Elektronikentwicklung wie Wirtschaftlichkeit, Time-to-Market und Systemflexibilität in vielerlei Hinsicht positiv beeinflusst werden können. Das HexaCore-Konzept erlaubt es, die Bearbeitung aufzuteilen und die Datenströme zu mehreren FPGAs zu routen. Für den Datenaustausch stehen je FPGA vier SerDes-Blöcke mit jeweils über 12Gbit/s zur Verfügung. Diese können entweder direkt zwischen den integrierten Schaltkreisen kommunizieren oder als PCIe-Schnittstelle zur Kommunikation mit anderen Komponenten wie PC oder PowerPC dienen. Es ist ebenfalls möglich einige der FPGA-Aufsteckboards durch andere Schnittstellen wie 10GigE zu ersetzen und das System den jeweiligen Anforderungen anzupassen. Dabei ist auch im laufenden Entwicklungsprozess die Performance mit zusätzlichen Modulen erweiterbar. Diese Anpassungsfähigkeit minimiert somit schon in der Projektplanung das Risiko der Entstehung leistungsbezogener Grenzen. Darüber hinaus können Verarbeitungsaufgaben auf verschiedene FPGAs und dementsprechend die Programmierung auf mehrere Entwickler verteilt werden, was die Fertigstellung beschleunigt.

Verarbeitungsbeispiel

Der Bildsensor Cmosis CMV12000 liefert 12,58MPixel bei 10bit Auflösung und bis zu 300fps über 64 LVDS-Kanäle mit je 600Mbit/s. Dies entspricht einer Datenrate von etwa 4.800MByte/s. Die Daten sollen einer Bildverarbeitung bestehend aus Bayer-Interpolation (Demosaicing), zwei 5×5 Filtern (Tiefpass zur Bilddarstellung, Hochpass zur Kantendetektion), Farbraumtransformationen und Farbkorrekturen unterzogen werden. Anschließend wird das Bild skaliert und mit einem Overlay auf einem 4K-Monitor ausgegeben. Während die beschriebene Bearbeitungskette mit ca. 90 Hardwaremultiplizierern noch in einem FPGA realisierbar ist, stellt die hohe Pixelrate die Entwickler vor Probleme und macht eine Parallelisierung notwendig. Eine Aufteilung auf 16 Kanäle ermöglicht eine Verarbeitung bei ungefähr 240MHz, benötigt jedoch über 1.400 Hardwaremultiplizierer. Dies ist nur mit wenigen FPGAs realisierbar. Hier begründet ein Multi-Core-System also überhaupt erst eine wirtschaftliche Umsetzbarkeit der Entwicklungsaufgabe.

Seiten: 1 2Auf einer Seite lesen

Das könnte Sie auch Interessieren