
Bild 1: Das Speedcore-E-FPGA-IP von Achronix lässt sich in ein ASIC oder SoC integrieren, um eine individuell angepasste, programmierbare Struktur zur Verfügung zu stellen. (Bild: Achronix)
Fahrzeuge der Oberklasse, die mit Fahrassistenzsystemen wie etwa Notbremsassistent, Spurwechselassistent, Abstandsregeltempomat oder automatischer Bremsfunktion ausgestattet sind, kommen derzeit auf den Markt. Diese High-End-Fahrzeuge stecken neben den ADAS-Funktionen noch meist voller weiterer Features, deren Palette von fortschrittlichen Infotainment-Funktionen über komplexe Regelungen für den Fahrgastraum bis zur Infrarotsicht und mehr reicht. Getrieben vom zunehmenden Vordringen der ADAS-Features von der Luxusklasse in das Segment der Mittelklasse und der Kleinwagen, wächst der Markt für ADAS-Prozessoren gegenwärtig mit über 25 Prozent pro Jahr. Bis zur Mitte des nächsten Jahrzehnts setzen sich die genannten Features perspektivisch allgemein durch.
Mittlerweile, also im Jahr 2018, finden autonome Fahrfunktionen des Levels 3 Eingang in Luxus-Plattformen wie etwa die des BMW i7. Diese Fahrzeuge, die im Verkehr mit minimaler menschlicher Einwirkung fahren können, ebnen den Weg zu vollständig autonom fahrenden Fahrzeugen der Levels 4 und 5. Die bis zu 100 betragende Zahl der CPUs in heutigen teilweise selbstfahrenden Luxusfahrzeugen könnte also in autonomen Fahrzeugen durchaus auf mehrere hundert CPUs ansteigen.
Die Zukunft ist dezentral
Eck-Daten
In den teil- und vollautonom fahrenden Fahrzeugen der Zukunft wird es Dutzende oder sogar Hunderte verteilter CPUs geben. Periphere Verarbeitungs-Funktionen zum Zusammenfügen der Subnetzwerke im Auto lassen sich mit ASICs, SoCs oder traditionellen FPGAs realisieren. Die Einführung des Speedcore E-FPGA-IP aber bringt in Sachen Latenz, Security und Bandbreite Vorteile mit sich, die mit traditionellen FPGAs nicht realisierbar sind.
Das vor wenigen Jahren bevorzugte Intelligenzmodell im Automobilbereich, wie es von Nvidia, Mobileye und anderen CPU-orientierten Zulieferern propagiert wurde, ging von einem zentralisierten Automotive-Netzwerk aus, in dem Multicore-RISC-CPUs mit erweiterten DSP-Fähigkeiten eine Reihe spezialisierter Subnetzwerke verwalteten. Heute dagegen verlagert sich die Aufmerksamkeit zusehends auf dezentralisierte Intelligenz im Auto. Komplexe Kameras mit entsprechenden Sichtsystemen, Sensor-Subnetzwerke, Fahrassistenzsysteme und Subnetzwerke für den Antriebsstrang arbeiten hier alle zusammen an der Implementierung der benötigten Funktionen. Sensor-Hubs benötigen eine Look-Aside-Bildverarbeitung, um Warping- und Stitching-Effekte zu kompensieren. Ethernet-Netzwerke wiederum verlangen nach IP für Filter- und Überwachungsaufgaben und benötigen spezielle Brücken zu bestehenden CAN- und Flexray-Netzwerken. Die Verwendung von CPUs und GPUs in Automotive-Architekturen der ersten Generation wird perspektivisch zugunsten hochspezialisierter Rechen-Knoten aufgegeben, die auf programmierbare Hardwarebeschleunigung angewiesen sind.
Wie sich das Speedcore-IP kundenspezifisch hinsichtlich des Bedarfs an Logik-, Speicher- und DSP-Ressourcen anpassen lässt, beschreibt der Beitrag auf der nächsten Seite.
Beschleunigungslösung E-FPGA-IP
Bei Hochleistungs-Rechnerplattformen kommen FPGAs immer häufiger zusammen mit CPUs zum Einsatz, um für eine spezialisierte Hardwarebeschleunigung zu sorgen. In dieser Konfiguration können sich die CPUs auf besonders komplexe Algorithmen konzentrieren, in denen sie häufig den Thread und den Kontext wechseln und häufig wiederholte Aufgaben an ein FPGA delegiert werden. Dieses fungiert als konfigurierbarer Hardwarebeschleuniger, Coprozessor oder Auslagerungs-Einheit. Selbst wenn FPGAs und CPUs als diskrete Bausteine auftreten, profitieren die Systeme durch erhöhte Gesamt-Effizienz von der Tatsache, dass die Technologien nicht etwa unvereinbar aufeinanderprallen, sondern einander vielmehr perfekt ergänzen.

Bild 1: Das Speedcore-E-FPGA-IP von Achronix lässt sich in ein ASIC oder SoC integrieren, um eine individuell angepasste, programmierbare Struktur zur Verfügung zu stellen. Achronix
Es ist mit einiger Sicherheit davon auszugehen, dass die Einbindung von FPGA-Strukturen in SoCs ein folgerichtiger Prozess der Systemintegration im Zeitalter der Ultra-Deep-Submicron-Technologie ist. Das Speedcore-E-FPGA-IP von Achronix lässt sich in ein ASIC oder SoC integrieren, um eine individuell angepasste, programmierbare Struktur zur Verfügung zu stellen (Bild 1). Die Kunden spezifizieren ihren Bedarf an Logik-, Speicher- und DSP-Ressourcen, und Achronix konfiguriert daraufhin das Speedcore-IP gemäß diesen Anforderungen. Speedcore-Look-Up-Tables (LUTs), RAM-Blöcke und DSP64-Blöcke lassen sich nach dem Baukastenprinzip zusammenfügen, um für jede Anwendung die jeweils optimale programmierbare Struktur zusammenzustellen. Verglichen mit einer Lösung aus CPU und eigenständigem FPGA kann das Speedcore-E-FPGA-IP mit klaren Vorteilen punkten:
- Höhere Leistungsfähigkeit – Ein E-FPGA wird ohne I/O-Puffer und über eine breite parallele Schnittstelle direkt an das ASIC angeschlossen, was für einen drastisch höheren Durchsatz und eine Latenz sorgt, die – in Taktzyklen gerechnet – im einstelligen Bereich liegt. Angesichts der Forderung nach Echtzeitreaktion bei rasch wechselnden Verkehrsbedingungen ist die Latenz von kritischer Bedeutung.
- Geringerer Stromverbrauch – Programmierbare I/O-Schaltungen sind für die Hälfte des Gesamt-Stromverbrauchs eigenständiger FPGAs verantwortlich. Da ein E-FPGA direkte Leitungsverbindungen zu weiteren Blöcken im Host-SoC besitzt, sind große programmierbare I/O-Puffer komplett überflüssig.
- Niedrigere Systemkosten – Die Chipabmessungen eines E-FPGA sind deutlich geringer als die einer eigenständigen FPGA, da das E-FPGA nur die Applikation implementieren muss. Auch dies macht programmierbare I/O-Puffer und viel Schnittstellenlogik überflüssig.
Neben Standardlogik, eingebettetem Speicher und DSP-Blöcken können die Kunden auch eigene Funktionsblöcke definieren, die sich in das Speedcore-E-FPGA integrieren lassen. Diese sogenannten Speedcore Custom Blocks werden neben den traditionellen Bausteinen in die Logikstruktur eingebunden. Das Hinzufügen von Funktionen, die zum Verringern der Fläche und/oder das Steigern der Performance der anvisierten Applikation optimiert sind, verbessern die Fähigkeiten des E-FPGA entscheidend.
Mit dem Speedcore-IP lässt sich in Automotive-Anwendungen ein ADAS-zentriertes Verarbeitungsmodell realisieren. Mehr dazu auf der folgenden Seite.
ADAS-zentriertes Verarbeitungsmodell
Da der Fusion mehrerer Bildverarbeitungs-Systeme eine zentrale Bedeutung für Fahrzeuge mit assistierenden und selbstfahrenden autonomen Fahrfunktionen zugemessen wird, behält die ADAS-Funktionalität ihre zentrale Rolle in künftigen Automobilarchitekturen. Die Echtzeit-Bildverarbeitung mit DSP- und Ganzzahl-intensiven Aufgaben stellte ursprünglich ein Problem dar, bei dem es um das Extrahieren von Informationen aus Stand- und Bewegtbildern geht, um Art, Ort und Geschwindigkeit von Objekten zu bestimmen. Während sich die Designer für die autonomen Fahrzeuge rüsten, hat die Rolle des ADAS-Prozessors an Umfang zugenommen und schließt jetzt Bilder im sichtbaren Bereich, sowie Infrarot-, Ultraschall-, Lidar- und Radarbilder ein.
In traditionellen Kombinationen aus SoCs und Coprozessoren geschieht die Vorverarbeitung der Bilder separat durch die CPU, wobei die Anbindung an die CPU über einen oder mehrere High-Speed-Busse erfolgt. Trotz der Verbesserungen der Bus-Latenz bei ADAS-Architekturen muss doch eine gewisse zusätzliche Latenz in Kauf genommen werden, wenn Coprozessoren in separaten Chips implementiert sind. Das Kombinieren von E-FPGA-IP mit einer CPU zu einer durchgängigen ADAS-Architektur kann sich deshalb als die effizienteste Möglichkeit erweisen, eine schnelle Reaktion auf rasch wechselnde Verkehrsbedingungen zu gewährleisten.

Bild 2: Speedcore-IP gibt dem Kunden die Möglichkeit, eine individuell programmierbare Struktur in eine standardisierte ASIC-Plattform mit speziellen Rechen-Ressourcen einzubetten. Achronix
Die Integration mehrerer Sensorquellen in einen ADAS-Core ist ein idealer Fall, in dem sich Speedcore-IP neben einer CPU einbetten lässt. Speedcore-IP gibt dem Kunden die Möglichkeit, eine individuell programmierbare Struktur in eine standardisierte ASIC-Plattform mit speziellen Rechen-Ressourcen einzubetten (Bild 2). In der Praxis ist es dank dieser Integration möglich, die von den verschiedenen Bildquellen gesammelten Daten in den Cache einer CPU anstatt in ein eigenständiges SDRAM zu schreiben. Das Reduzieren des Interruptaufkommens der CPU ermöglicht die Echtzeit-Reaktion auf Objekte, die sich im Sichtfeld eines fahrenden Autos befinden.
Speedcore Custom Blocks sind eine zusätzliche Möglichkeit zum Optimieren einer Speedcore-E-FPGA-Instanz, insbesondere für Bildverarbeitungs-Algorithmen. Zum Beispiel ist Yolo (You Only Look Once) ein aktueller, echtzeitfähiger und mit neuronalen Netzwerken arbeitender Objekterkennungs-Algorithmus, der deutlich leistungsfähiger ist als frühere Methoden. Grundlage dieses Algorithmus ist eine große Zahl von Matrix-Multiplizierern. In einem FPGA implementiert, werden diese Matrix-Multiplizierer mit DSP- und RAM-Blöcken gebildet.
Das Problem entsteht durch die Diskrepanz zwischen der optimalen Konfiguration der DSP- und RAM-Blöcke, wie Yolo sie benötigt, und der Konfiguration einer typischen FPGA-Struktur. Zum Beispiel kann eine FPGA-Struktur DSP-Blöcke mit 18 × 27 Multiplikation/Akkumulation und 32 × 128 RAMs bieten, während die optimale Lösung eine Struktur aus 16 × 8 DSP-Blöcken mit 48 × 1024 RAMs wäre. Durch das Erstellen kundenspezifischer Blöcke, die die optimale Konfiguration aus DSP- und RAM-Blöcken ergeben, belegt die resultierende Speedcore-Struktur 40 Prozent weniger Chipfläche, um dieselbe Funktionalität zu implementieren.
Auf der nächsten Seite beschreibt der Beitrag, warum aktuell die dezentrale Intelligenz im Fokus steht.
Verteilte Steuerung impliziert verteilte Intelligenz
Schon jetzt existiert im Chassis eines aktuellen Automobils ein erheblicher Umfang an verteilter Intelligenz, was an den verbauten Kameras und der Forderung nach lokalisierten Sensor-Hubs liegt. Ungeachtet dessen stellten sich die Verfechter von Multicore/Multithreaded-Prozessoren vor, dass ein Großteil der Intelligenz in der Armaturentafel oder in ihrer Nähe konzentriert sein sollte, wenn auch für weitgehend parallele CPU-Operationen zur Objekterkennung. Inzwischen haben die unscharfen Grenzen zwischen den ADAS-Funktionen teilautonomer Fahrzeuge und den vollständig autonomen Fahrzeugen des Levels 3 und darüber dafür gesorgt, dass die Aufmerksamkeit wieder der dezentralen Intelligenz gilt, bei der CPUs, GPUs und Neural-Network-Prozessoren mehrere Management- und Steuerungspunkte im Chassis bilden. Dieser Wandel bringt mehr Chancen für programmierbare Architekturen mit sich, die außerhalb eines allumfassenden SoC-Designs existieren.
Der aktuelle Prozessormarkt weist gewisse Ähnlichkeiten mit jener Zeit auf, als sich Unternehmens-Netzwerke zu Rechenzentren weiterentwickelten. Prozessor-zentrierte Halbleiteranbieter streben die Definition einer kompletten Systemarchitektur an, während es der Design-Community darum geht, ein proprietäres Alleinstellungsmerkmal zu erzielen. In einem solchen Umfeld wird programmierbare Logik wie etwa ASIC-IP eine wichtige Rolle spielen, und zwar nicht nur für die kurzfristige Entwicklung teil- oder vollautonomer Fahrzeuge, sondern für die jahrelange Entwicklung dezentraler Prozessoren für fortschrittliche Fahrzeuge.
Speedcore E-FPGA-IP bietet weitere Vorteile wie das Minimieren der CPU-Interrupts, indem an einen CPU-Cache anstatt an Speicher außerhalb des Chips geschrieben wird. Die in CAN-Schaltungen erforderlichen BIST-Schaltungen, die häufig 10 bis 15 Prozent des gesamten ASICs ausmachen, lassen sich häufig eliminieren, da sich die Schaltungen zur Unterstützung der BIST-Funktionalität im E-FPGA programmieren lassen. Abgesehen davon kann ein E-FPGA auch chipintegrierte Probing-Funktionen für Diagnosezwecke realisieren. In bestehenden ASIC-basierten Systemdesigns ohne FPGA-Ersatz sorgt die von Speedcore-FPGA-IP gebotene Flexibilität zur Programmierung neuer Algorithmen dafür, dass die verwendeten ASICs längere Nutzungszeiten erreichen.
(na)