Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

Benutzerdefinierte Erweiterungen im RISC-V-SoC-Design entschlüsseln

Die Rede davon, einen Basisprozessor zu konfigurieren oder benutzerdefinierte Erweiterungen hinzuzufügen, um Kompromisse zwischen Hardware und Software in einem System-on-Chip (SoC) aufzulösen, ist nicht neu. Dies war ein wichtiger Teil des Wertversprechens der RISC-V-Community, wobei viele Informationen zu seinen Vorteilen veröffentlicht wurden, wie dieser „Ein Leitfaden . Beschleunigung von Anwendungen mit genau richtigen benutzerdefinierten RISC-V-Anweisungen .”

Bei der Entwicklung eines Systems für viele Produkte werden heute durch Stromverbrauch, Leistung und Chipfläche viele der komplexen Anforderungen an künstliche (KI) und maschinelles Lernen (ML) an SoCs eingeschränkt.

Die Erweiterung der Open-Source-RISC-V-Befehlssatzarchitektur (ISA) wird oft als wirksames Mittel übersehen, um diesen Einschränkungen zu begegnen. Ein kürzlich von Quantum Leap Solutions, einem Designdienstleistungsunternehmen für die Halbleiterindustrie, geleitetes Webinar-Panel versuchte, das Rätsel um die Erweiterung der RISC-V ISA für SoC-Designs zu lösen. Das Webinar mit dem Titel „RISC-V-Flexibilität – Die Leistungsfähigkeit benutzerdefinierter Erweiterungen “ beantwortete Fragen von über 100 Teilnehmern.

Die Podiumsteilnehmer versuchten, einen Einblick in die Rolle der modifizierten ISA beim Design für neue Anwendungen zu geben und wie Designer Erweiterungen der neuartigen RISC-V-Befehlssatzarchitektur sehen.

Die Diskussionsteilnehmer wurden von Mike Ingster, Gründer und Präsident von Quantum Leap Solutions, moderiert:

Mike Ingster: Warum ist RISC-V eine bessere Option für KI- und ML-Lernanwendungen als andere CPU-Architekturen?

John Min :Die Zeit, in der RISC-V erfunden wurde, fiel mit der Einführung der KI zum Mainstream zusammen. Der RISC-V-Vektorbefehlssatz wurde für KI- und VR-Anwendungen entwickelt.

Larry Lapides :Ich möchte hinzufügen, dass der Designer in einer KI-Anwendung mit einem Multiplex-Array heterogener Prozessoren – einer Architektur, die wir mehr als einmal gesehen haben – Skalar- und Vektorprozessoren innerhalb des Arrays kombinieren kann. Zweitens ermöglicht die RISC-V-Architektur dem Designer, unnötige Funktionalität zu entfernen, während Vektorbefehle erhalten bleiben. Dadurch werden Preis, Leistung und Fläche besser – PPA.

Ingster :Können RISC-V-Kerne mit Vektorerweiterungen auch mit benutzerdefinierten Anweisungen erweitert werden?

Min :Ja. Ein Beispiel ist ein RISC-V-Vektorkern mit einer Referenzimplementierung, die Kundenerweiterungen verwendet, um zusätzliche Puffer hinzuzufügen. Dadurch wird verhindert, dass die Vektoreinheit aufgrund fehlender Daten blockiert.

Lapides :Imperas und Andes haben gemeinsame Kunden, die benutzerdefinierte Funktionen implementiert haben, um in diesem Bereich zu helfen.

Ingster :Müssen in einem Multiprozessor-Array alle CPUs dieselbe Konfiguration haben? Oder können sie andere benutzerdefinierte Anweisungen haben?

Lapides :Ja, heterogene Prozessoren in einem SoC-Design sind weit verbreitet. Darüber hinaus können nicht nur die benutzerdefinierten Anweisungen von Prozessor zu Prozessor variieren. Die Basisbefehle jedes Prozessors können ebenfalls variieren. Zum Beispiel könnte ein Prozessor Vektorbefehle und ein anderer Prozessor skalare Befehle haben. Diese können verschachtelt und kombiniert werden.

Min :In einem Multiplex-Array können sowohl CPUs als auch Simulatoren heterogen sein, um eine Multicore-Simulation zu ermöglichen.

Ingster :Sehen Sie einen RISC-V-Prozessor der Serverklasse auf dem Markt?

Min :Es kommt. Das CPU-Design wird im Laufe der Zeit auf verschiedene Weise schneller. Eine besteht darin, die Frequenz zu erhöhen. Eine andere besteht darin, die CPU-Pipeline zu erweitern. Eine andere besteht darin, den Prozessor so zu gestalten, dass er Anweisungen in anderer Reihenfolge ausführt. Und die Ausführungsbreite wird erweitert, um eine superskalare Organisation oder – was heute üblich wird – Designs mit Tausenden von Multicores bereitzustellen. Es ist nur eine Frage der Zeit, bis diese Elemente in RISC-V-Prozessoren der nächsten Generation für KI-Unternehmensanwendungen integriert sind.

Lapides :Wenn wir uns die Geschichte von RISC-V in der Vergangenheit ansehen, sehen wir, dass es anfangs Proof-of-Concept-SoCs mit 32 und 64 Bit gab, aber vor etwa zwei Jahren begannen wir SoCs zu sehen, die sich auf Sicherheit und IoT konzentrierten:32-Bit-SoCs wettbewerbsfähig mit Mikrocontrollern. Jetzt sehen wir die ersten Prozessoren der Anwendungsklasse. Sie sind keine Serverklasse, aber wir sehen erste Silizium auf 64-Bit-RISC-V-Prozessoren, auf denen echtes RTOS ausgeführt wird, um High-End-Anwendungen zu betrachten. Wir beginnen zu sehen, dass einige Pipelines außerhalb der Reihenfolge gebaut werden. Ich würde die ersten RISC-V-Prozessoren der Serverklasse in den nächsten zwei bis drei Jahren erwarten.

Ingster :Können benutzerdefinierte Erweiterungen Gerätesicherheit und Lebenszyklusverwaltung bieten?

Min :Ja, je nach Implementierung. Zum Beispiel durch Aktivieren einer Befehlserweiterung, um eine Prüfung durchzuführen. Das Programm sucht nach der benutzerdefinierten Erweiterung. Wenn es nicht vorhanden ist, wird die Ausführung der Software verhindert. Eine andere Möglichkeit besteht darin, einen benutzerdefinierten Port zum Speicher zu implementieren. Somit hätte die RISC-V-CPU einen privaten Bus zum Speicher, anstatt den Hauptbus zu verwenden.

Taek Nam :Designer können eingebettete Analyse-IP von Tessent für die Sicherheit und das Lebenszyklusmanagement in SoCs mit benutzerdefinierten Erweiterungen verwenden.

Ingster :Warum unterscheidet sich der RISC-V-Ansatz für benutzerdefinierte Anweisungen von anderen wie ARC und Tensilica?

Min :CPUs verwenden benutzerdefinierte Erweiterungen, um eine bestimmte Aufgabe zu beschleunigen. Der Unterschied zu RISC-V besteht darin, dass es einen formalen Mechanismus bietet, um die benutzerdefinierte Erweiterung in den Standard zu integrieren.

Ingster :Wie kann ein Entwickler benutzerdefinierte Anweisungen mit Kunden oder Partnern teilen?

Min :Es gibt drei Optionen. Halten Sie es zunächst privat. Zweitens schlagen Sie vor, RISC-V International zur Aufnahme in den Standard hinzuzufügen. Andes hat beispielsweise RISC-V International eine Reihe von DSP-Anweisungen gespendet. Dies sind jetzt die P-Erweiterungen des RISC-V-Standards. Drittens, wenn Sie die Verwendung der Anweisung mit anderen teilen, teilen Sie die Intrinsic- und Header-Datei. Wenn Sie die Implementierung der benutzerdefinierten Anweisung teilen möchten, müssen Sie möglicherweise eine Drei-Wege-NDA einreichen.

Lapides :Der Entwickler von benutzerdefinierten Erweiterungen kann das Modell an seine Kunden oder Partner als Open-Source- oder Binärmodell, als ISS- oder anweisungsgenaues Prozessormodell weitergeben, das für die frühe Softwareentwicklung vor der Siliziumherstellung verwendet werden kann.

Ingster :Führen benutzerdefinierte Erweiterungen zu Kompatibilitätsproblemen innerhalb der RISC-V-Community?

Min :Dies hängt davon ab, wie die benutzerdefinierten Anweisungen verwendet werden. Wenn ein benutzerdefinierter Befehl proprietär gehalten wird, führt er per Definition nicht zu einer Fragmentierung, da der Entwickler der einzige ist, der ihn verwendet. Wenn der benutzerdefinierte Befehl so erfolgreich ist, dass er von vielen anderen verwendet wird, ist es vielleicht an der Zeit, ihn in das grundlegende RISC-V-Set zu integrieren. Die Entscheidung liegt beim Ersteller, ob er es öffentlich macht oder proprietär bleibt. In jedem Fall tritt keine Fragmentierung auf.

Ingster :Wird der Vektorprozessor von einem Compiler in seiner aktuellen Version unterstützt?

Min :Die RISC-V-Vektorerweiterungen, Version 0.8, sind stabil genug, dass Compiler sie unterstützen. Sowohl GCC als auch LLVM unterstützen die vorhandene Version 0.8 der Spezifikation. Endgültige Versionen der Compiler werden verfügbar sein, wenn die Spezifikation der RISC-V Vector Extension fertiggestellt ist.

Ingster :  Wie werden benutzerdefinierte Erweiterungen in der Software-Toolkette unterstützt?

Lapides :Designer fügen ihrem RISC-V-Modell die benutzerdefinierten Erweiterungen hinzu und stellen so einen Befehlssatzsimulator bereit, der für die Softwareentwicklung verwendet werden kann. Auf der Seite der Toolkette kann GCC und LLVM Unterstützung für neue benutzerdefinierte Erweiterungen hinzugefügt werden. Beide sind Open-Source-Toolketten und können nach Belieben des Kunden modifiziert werden. Designer können auch eine Makroimplementierung zusammenstellen, um eine benutzerdefinierte Anweisung zu unterstützen.

Ingster :Wie wird der Compiler auf eine neu erstellte benutzerdefinierte Anweisung aufmerksam gemacht?

Lapides :Das Softwareteam muss die Anweisung im Compiler implementieren.

Min :Eine Alternative ohne die harte Arbeit des Hinzufügens, insbesondere wenn die Absicht besteht, den Befehl proprietär zu halten, besteht darin, den benutzerdefinierten Befehl wie eine Bibliothek zu behandeln – zum Beispiel DSP-Bibliotheken. Wenn die benutzerdefinierte Anweisung bei der Programmausführung benötigt wird, rufen Sie die Bibliothek mit einer Headerdatei auf. Somit erzielt das Designteam mit minimalem Aufwand einen Großteil des Gewinns, der von der Erstellung einer benutzerdefinierten Funktion erwartet wird.

Ingster :Welche Betriebssysteme werden von RISC-V unterstützt und gibt es Unterstützung für Android?

Lapides :Ich habe nicht gesehen, dass Android unterstützt wird, aber es gibt einige tragbare Geräte, die mit RISC-V entwickelt wurden. Das Linux-freie RTOS, das Zephyr-RTOS werden hauptsächlich unterstützt. Es werden andere Echtzeit-Betriebssysteme unterstützt. Die Software-Webseite von RISC-V International enthält eine vollständige Liste.

Min :Das Android-Betriebssystem wurde auf RISC-V-Prozessoren nicht überprüft. Ich glaube, dass es eher eine Portierungsübung als eine Frage der Lauffähigkeit ist. Auf RISC-V-Kernen wird derzeit Linux ausgeführt.

Ingster :Wie werden benutzerdefinierte Erweiterungen überprüft?

Lapides :Benutzerdefinierte Erweiterungen werden der RTL des Designs hinzugefügt, müssen aber auch dem Prozessormodell hinzugefügt werden. Benutzerdefinierte Anweisungen sowie benutzerdefinierte Register können mit dieser Fähigkeit überprüft werden. Normalerweise ermöglicht das Hinzufügen von Erweiterungen zum Prozessormodell, das auf einem Befehlssatzsimulator ausgeführt wird, die Softwareentwicklung.

Taek: Wir hatten vor kurzem einen Kunden, der benutzerdefinierte Anweisungen in seinem SoC implementiert hat. Ihr Ziel war es, mithilfe unserer eingebetteten Analytics-IP die Verbesserung der Softwareleistung durch das Hinzufügen der benutzerdefinierten Erweiterungen zu überprüfen. Dies wurde erreicht, indem Trace verwendet wurde, um die Daten- und Befehlsausführung zu verfolgen. Dies ist ein wirksames Mittel zur Validierung der Leistungsverbesserung.

Ingster :Wie viel Fläche wird benötigt, um die eingebettete Analytics-IP hinzuzufügen?

Taek: Es gibt keine Standardantwort, aber 1 Prozent ist ein typisches Zitat für einen Bereich, der sich dem IP für eingebettete Analysen widmet. Diese Schätzung umfasst analytische Modelle, einen Kommunikator und eine Message Fabric, die diese Elemente miteinander verbindet. Da die Blöcke über mehrere Optionen verfügen, sind unterschiedliche Konfigurationen möglich. Das Design jedes Kunden wird bewertet und die eingebettete Analytics-IP wird für die Implementierung in ihr Design konfiguriert. Auf diese Weise wird die Gesamtfläche geschätzt. Wir finden eine Lösung, die die Auswirkungen auf die Fläche minimieren kann, um den besten Wert für ein bestimmtes Design zu erzielen.

Dies sind Highlights aus dem Panel, dessen Vollversion gehostet wird von Quantensprung-Lösungen .


Eingebettet

  1. Was ist die „Reichweite“ eines Magneten?
  2. Die Rolle von Computer-Aided Design (CAD) im 3D-Druck
  3. Die Herausforderungen des Produktdesigns
  4. Optimierung der HF-Zuleitung im PCB-Design
  5. Bluetooth 5.1 SoC wurde entwickelt, um Designgröße und Kosten zu senken
  6. PCB-Designpaket geht in die Cloud
  7. Die Vorteile des Prototyping von Leiterplatten
  8. Wir haben die Ressource „So gestalten Sie benutzerdefinierte Gehäuse für Motherboards“ aktualisiert
  9. Warum kundenspezifische Fertigung die Zukunft ist
  10. Die Rolle von Arbeitsanweisungen im Unternehmen