Die GPU Mali-G78AE wurde entwickelt, um die komplexen Anforderungen an Mensch-Maschine-Schnittstellen und die heterogenen Berechnungen zu erfüllen, die in autonomen Systemen erforderlich sind. Sie unterstützt die Automobil- und Industriesicherheitsstandards und trägt dazu bei, die Anforderungen von ASIL B / SIL 2 zu erfüllen. Mit seinen neuen Schlüsselfunktionen wie Flexible Partitionierung und Virtualisierung ermöglicht dieser neue Grafikprozessor ein breites Spektrum von Anwendungsfällen, die sowohl im Automobil- als auch im Industriebereich auftreten.
Die GPU Mali-G78AE bietet mit ihrer entscheidenden neuen Funktion "Flexible Partitionierung" einen neuen Ansatz für die Ressourcenzuweisung. Diese Fähigkeit ermöglicht es, GPU-Ressourcen zur Laufzeit oder zur Boot-Zeit unterschiedlichen GPU-Arbeitslasten zuzuweisen und dabei völlig getrennt voneinander darzustellen.
In traditionellen Systemen ist ein GPU eine einzelne große Ressource, die von einer Reihe von Anwendungen gemeinsam genutzt wird. Die Zeitplanung kann in Hardware oder Software erfolgen, und die Aufträge werden auf der GPU bereitgestellt, um eine hohe Auslastung der GPU-Kerne zu gewährleisten und die Effizienz zu maximieren - entweder mit potenziell gemischten Arbeitslasten oder, im Fall der traditionellen Virtualisierung, mit Ressourcen, die eine Arbeitslast nach der anderen abarbeiten und die GPU effektiv in Scheiben schneiden.
Auch wenn dies in der Vergangenheit funktioniert hat, bringt es Kompromisse und Herausforderungen für Systementwickler mit sich. Beispielsweise besteht bei der Virtualisierung häufig die Anforderung einer erheblichen Beteiligung des Hypervisors, um den Zugriff auf den Grafikprozessor und den Speicher zwischen konkurrierenden Prioritäten zu verwalten. Dadurch entsteht eine Abhängigkeit zwischen sicheren und nicht sicheren bzw. zeit- und nicht zeitsensiblen Arbeitslasten, die sorgfältig verwaltet werden müssen. Wenn es einen Konflikt gibt, muss der Hypervisor unter Umständen drastische Maßnahmen ergreifen, wie z.B. das Beenden eines Workloads, um sicherzustellen, dass die Arbeitslast mit der höchsten Priorität rechtzeitig erledigt wird, und das Gesamtsystem muss in der Lage sein, dies elegant zu handhaben. Aus Sicht der Sicherheit kann dies sehr komplex werden, wenn man bedenkt, dass dieselbe GPU, die möglicherweise Berechnungen zur Überwachung der Müdigkeit des Fahrers durchführt, auch für Spiele aus einem App-Store verwendet wird, die möglicherweise nicht sicher sind.
Dies kann auch Herausforderungen für Anwendungsentwickler und Integratoren mit sich bringen. Das letztendliche Ziel ist es immer, die absolut höchstmögliche Leistung von der Siliziumplattform zu erhalten, und Integratoren sind diejenigen, die für die Verwaltung all der verschiedenen Entwickler und Anwendungen verantwortlich sind, die auf einem bestimmten SoC eingesetzt werden könnten. In einer Situation, in der drei Unternehmen alle Anwendungen parallel für die gleichen GPU-Ressourcen entwickeln und alle versuchen, die Leistung zu maximieren - und jede Änderung wirkt sich auf das empfindliche Gleichgewicht zwischen ihnen aus – ist dies oft eine große Herausforderung.
Flexible Partitionierung ist eine neue Eigenschaft, die Arm in das Mali-Portfolio aufnimmt, um diese Probleme zu lösen. Vereinfacht ausgedrückt ermöglicht Flexible Partitionierung die Aufteilung von Mali-G78AE, so dass die GPU wie mehrere GPUs innerhalb des Systems aussieht - aber per Software konfigurierbar und sogar zur Laufzeit veränderbar.
Das obige Beispiel ist eine Mali-G78AE mit 12 Schattierern, die eine, zwei und drei Partitionen zeigt. Eine Mali-G78AE kann bis zu 4 dedizierte Partitionen zur Trennung der Workloads haben, was den Partnern ein erhebliches Maß an Flexibilität für ihre unterschiedlichen Anwendungen und Anwendungsfälle bietet. Die Partitionen in Mali-G78AE sind wirklich getrennt und können einzeln hoch- und heruntergefahren und zurückgesetzt werden. Sie verfügen außerdem über separate Speicherschnittstellen für Transaktionen, wodurch eine vollständige Trennung der Workloads auf allen Ebenen ermöglicht wird. Auf diese Weise können sicherheitsrelevante Arbeitslasten ihre eigenen dedizierten Partitionen haben, ohne dass es zu Konflikten um GPU-Ressourcen kommt und die Leistung bei Bedarf sichergestellt ist.
Bei nicht sicheren Workloads bedeutet dies, dass Entwickler einfach auf maximale Leistung innerhalb einer bekannten Partitionsgröße optimieren können, ohne sich Gedanken über die Komplexität der Workloads machen zu müssen oder darüber, wie sie sich auf die sicherheitsbezogenen Arbeitslasten auswirken könnte.
Speziell bei Systemen der Automobilindustrie ist es immer häufiger der Fall, dass mehrere Betriebssysteme auf demselben SoC laufen. Häufig gehört dazu neben Linux und Android auch ein sicherheitskritisches Echtzeitbetriebssystem (RTOS). Die Leistungsanforderungen der einzelnen Betriebssysteme können sich von Fahrzeug zu Fahrzeug innerhalb der Produktpalette eines Automobilherstellers unterscheiden, z.B. können Sportwagen mit weniger Bildschirmen hochkomplexen 3D-Instrumentenkomplexen mehr Leistung zuweisen, während SUVs mit mehr Bildschirmen mehr Leistung für Anwendungen wie die Unterhaltung auf den Rücksitzen benötigen.
Mit der flexiblen Partitionierung ist das Ändern von Partitionen durch die Software problemlos möglich, so dass ein und dasselbe SoC auf verschiedene Endanwendungen abgestimmt werden kann.
Ein weiterer Vorteil von Mali-G78AE ist die Skalierbarkeit, die mit der flexiblen Partitionierung einhergeht. Mali-G78AE skaliert von einem Schattierer-Kern, dem grundlegenden Baustein der GPUs in Mali, bis zu 24 Schattierern. Dies bedeutet eine Skalierung von einem Slice mit einem Schattierer-Kern bis zu 8 Slices mit jeweils 3 Schattierer-Kernen. Jede Slice verfügt über unabhängige Speicherschnittstellen, Jobsteuerung und L2-Cache, um eine vollständige Trennung aus Sicherheitsgründen zu gewährleisten - und die Slices können in bis zu 4 Partitionen gruppiert werden, die in Software konfigurierbar sind. Auch bei den Partitionsgrößen gibt es keine Beschränkungen; Mali-G78AE kann als eine große Partition mit 8 Slices und 24 Schattierer-Kernen oder in 4 kleineren Partitionen konfiguriert werden, deren Größe sich nach den Anforderungen der Arbeitslast richtet.
Diese Fähigkeit und die Sicherheitsfunktionen kosten natürlich Siliziumfläche, sich mit weniger als 10 % für typische Konfigurationen allerdings vergleichsweise moderat ausfallen.
Bei einigen Software-Architekturen oder Arbeitslasten ist es möglicherweise nicht erforderlich, Ressourcen für eine bestimmte Anwendung oder Virtuelle Maschinen (VM) bereitzustellen. Das könnte daran liegen, dass sie nicht immer eingeschaltet ist oder weniger zeitkritisch ist, und für diese Fälle beinhaltet Mali-G78AE auch eine dedizierte Hardware-Virtualisierung, was bedeutet, dass die GPU als Ganzes oder jede einzelne Partition zwischen mehreren VMs virtualisiert werden kann.
Für die Zukunft der Autonomie ist es entscheidend, die Sicherheitsanforderungen dieser komplexen Systeme erfüllen zu können. Um dies zu erreichen, wird die Mali-G78AE nach den strengen systematischen Abläufen und Prozessen der funktionalen Sicherheit von Arm entwickelt. Die GPU erfüllt den systematischen ASIL-D-Designprozess und ermöglicht die ASIL-B-Diagnoseabdeckung. Mali-G78AE umfasst eine Reihe von Hardware-Sicherheitsaspekten im Design, um dies zu erreichen, einschließlich Lock-Step, eingebauter Selbsttest, Schnittstellenparität, Isolationsprüfungen und Nur-Lese-Speicherschutz. Wenn man noch einen Schritt weiter geht, ist es möglich, Sicherheitsmechanismen auf einigen Partitionen und nicht auf anderen zu verwenden, um Systemdesignern mehr Flexibilität zu bieten.
Um sicherzustellen, dass die Sicherheit für das gesamte System gewährleistet ist, hat Arm mit CoreAVI zusammengearbeitet, um Sicherheit in das GPU-Software-Ökosystem zu bringen, das für ASIL D entwickelt wurde. Diese funktionale Sicherheitssuite bietet Treiber für die neuesten veröffentlichten sicherheitskritischen APIs, OpenGL SC 1.0 und 2.0, und geht mit einer sicherheitskritischen Implementierung von Vulkan sogar noch weiter, um Entwicklern die Nutzung der neuesten API-Funktionen zu ermöglichen und eine noch höhere Rechenleistung zu ermöglichen.
In Kombination mit seinem Software-Ökosystem hat Arm erheblich investiert, um den gesamten Entwicklungszyklus für Projekte auf der Grundlage der Mali-G78AE zu vereinfachen und zu beschleunigen. Arm's Suite von Entwicklertools für GPU-Grafik und Prozessing wird erweitert, um Anwendungsentwicklern und Integratoren dabei zu helfen, das Beste aus Mali-G78AE in jedem Szenario herauszuholen, einschließlich der Optimierung der Ressourcenpartitionierung mit Arm Streamline oder der Verfolgung von Grafikleistungsmetriken mit Hilfe von Berichten von Arm Performance Advisor sowohl im interaktiven als auch im kontinuierlichen Integrationsmodus.