Explizit paralleles Anweisungsrechnen - Explicitly parallel instruction computing

Explizit paralleles Instruction Computing ( EPIC ) ist ein Begriff, der 1997 von der HP-Intel-Allianz geprägt wurde , um ein Computerparadigma zu beschreiben , das Forscher seit den frühen 1980er Jahren untersucht hatten. Dieses Paradigma wird auch als Unabhängigkeitsarchitektur bezeichnet . Es war die Grundlage für die Intel- und HP- Entwicklung der Intel Itanium- Architektur, und HP behauptete später, dass "EPIC" nur ein alter Begriff für die Itanium-Architektur sei. EPIC ermöglicht es Mikroprozessoren, Softwareanweisungen parallel auszuführen, indem der Compiler anstelle einer komplexen On- Die- Schaltung verwendet wird, um die parallele Befehlsausführung zu steuern. Dies sollte eine einfache Leistungsskalierung ermöglichen, ohne auf höhere Taktfrequenzen zurückzugreifen .

Wurzeln in VLIW

Bis 1989 erkannten die Forscher von HP, dass RISC-Architekturen ( Reduced Instruction Set Computer ) bei einem Befehl pro Zyklus eine Grenze erreichten . Sie begannen eine Untersuchung einer neuen Architektur, die später EPIC genannt wurde . Die Grundlage für die Forschung war VLIW , bei dem in jeder Anweisung mehrere Operationen codiert und dann von mehreren Ausführungseinheiten verarbeitet werden.

Ein Ziel von EPIC war es, die Komplexität der Befehlsplanung von der CPU-Hardware auf den Software- Compiler zu verlagern , der die Befehlsplanung statisch durchführen kann (mithilfe von Trace-Feedback-Informationen). Dadurch entfällt die Notwendigkeit komplexer Planungsschaltungen in der CPU, wodurch Speicherplatz und Strom für andere Funktionen, einschließlich zusätzlicher Ausführungsressourcen, frei werden. Ein ebenso wichtiges Ziel war es, die Parallelität auf Befehlsebene ( ILP ) weiter auszunutzen, indem der Compiler verwendet wurde, um zusätzliche Möglichkeiten für die parallele Ausführung zu finden und zu nutzen .

VLIW (zumindest die ursprünglichen Formen) weist einige Mängel auf, die es daran hinderten, zum Mainstream zu werden:

Die EPIC-Architektur entwickelte sich aus der VLIW-Architektur, behielt jedoch viele Konzepte der superskalaren Architektur bei.

Über VLIW hinausgehen

EPIC- Architekturen bieten verschiedene Funktionen, um die Mängel von VLIW zu umgehen:

  • Jede Gruppe mehrerer Softwareanweisungen wird als Bundle bezeichnet . Jedes der Bündel hat ein Stoppbit, das angibt, ob dieser Satz von Operationen vom nachfolgenden Bündel abhängt. Mit dieser Funktion können zukünftige Implementierungen erstellt werden, um mehrere Bundles gleichzeitig auszugeben. Die Abhängigkeitsinformationen werden vom Compiler berechnet, sodass die Hardware keine Operandenabhängigkeitsprüfung durchführen muss.
  • Ein Software-Prefetch-Befehl wird als eine Art Daten-Prefetch verwendet. Dieser Prefetch erhöht die Wahrscheinlichkeit eines Cache-Treffers beim Laden und kann den Grad der zeitlichen Lokalität angeben, der in verschiedenen Ebenen des Cache benötigt wird.
  • Ein spekulativer Ladebefehl wird verwendet, um Daten spekulativ zu laden, bevor bekannt ist, ob sie verwendet werden (Umgehen von Steuerungsabhängigkeiten) oder ob sie vor ihrer Verwendung geändert werden (Umgehen von Datenabhängigkeiten).
  • Ein Befehl zum Überprüfen der Last unterstützt spekulative Lasten, indem geprüft wird, ob eine spekulative Last von einem späteren Speicher abhängig war und daher neu geladen werden muss.

Die EPIC- Architektur enthält auch eine Sammlung von Architekturkonzepten zur Erhöhung des ILP :

  • Die vorhergesagte Ausführung wird verwendet, um das Auftreten von Verzweigungen zu verringern und die spekulative Ausführung von Anweisungen zu erhöhen . In dieser Funktion werden Verzweigungsbedingungen in Prädikatregister konvertiert, die verwendet werden, um Ergebnisse von ausgeführten Anweisungen von der Seite der Verzweigung abzutöten, die nicht genommen wird.
  • Verzögerte Ausnahmen, bei denen in den Allzweckregistern kein Bit verwendet wird, ermöglichen eine spekulative Ausführung nach möglichen Ausnahmen.
  • Sehr große Architekturregisterdateien vermeiden die Notwendigkeit einer Registerumbenennung .
  • Mehrwegverzweigungsbefehle verbessern die Verzweigungsvorhersage, indem sie viele alternative Verzweigungen zu einem Bündel kombinieren.

Die Itanium- Architektur fügte auch rotierende Registerdateien hinzu , ein Tool, das für das Software-Pipelining nützlich ist, da es das manuelle Abrollen und Umbenennen von Registern vermeidet .

Andere Forschung und Entwicklung

Es wurden andere Untersuchungen zu EPIC-Architekturen durchgeführt, die nicht direkt mit der Entwicklung der Itanium-Architektur verbunden sind:

  • Das IMPACT- Projekt an der Universität von Illinois in Urbana-Champaign unter der Leitung von Wen-mei Hwu war die Quelle einflussreicher Forschung zu diesem Thema.
  • Die PlayDoh- Architektur von HP-Labs war ein weiteres wichtiges Forschungsprojekt.
  • Gelato war eine Open-Source-Entwicklergemeinschaft, in der akademische und kommerzielle Forscher daran arbeiteten, effektivere Compiler für Linux-Anwendungen zu entwickeln, die auf Itanium-Servern ausgeführt werden.

Siehe auch

Verweise

Externe Links