Citation Hunt

Das unten stehende Wikipedia-Snippet wird von keiner verlässlichen Quelle unterstützt. Kannst du eine finden?

Klicke auf Verstanden!, um zu Wikipedia zu gehen und das Snippet zu reparieren, oder Nächstes!, um ein anderes zu sehen. Viel Glück!

In Seite Explicitly Parallel Instruction Computing:

"

Das Explicitly Parallel Instruction Computing (EPIC) bezeichnet ein Programmierparadigma einer Befehlssatzarchitektur (englisch Instruction Set Architecture, kurz ISA) und der Verarbeitungsstruktur einer Familie von Mikroprozessoren, z. B. Itanium. Bei der Programmierung von EPIC-CPUs wird die Parallelisierung der Befehle eines Instruktionsstromes explizit vorgenommen. Die ISA hat Eigenschaften, die die explizite Parallelisierung unterstützen, während eine herkömmliche ISA von einer sequentiellen Abarbeitung der Befehle ausgeht. Ein Programm, das in einer Nicht-EPIC-Maschinensprache vorliegt, kann auch parallelisiert werden, aber es ist bei der Ausführung eine komplexe Logik notwendig, um parallel ausführbare Instruktionen zu identifizieren, da das Befehlsformat keine Aussagen über parallelisierbare Instruktionen macht. Eine EPIC-CPU arbeitet nach dem Prinzip der in-order Execution, im Gegensatz zur out-of-order execution der superskalaren CPUs.

Die Motivation zur Entwicklung eines EPIC-Prozessors ist die Reduktion der Logikgatter des Prozessors. Der nun frei gewordene Platz kann dazu benutzt werden, weitere funktionale Einheiten (z. B. Rechenwerke) in die CPU zu integrieren, um

  • die Anzahl der parallel ausführbaren Operationen zu erhöhen,
  • größere Caches in den Prozessor zu integrieren,
  • den Einfluss des Flaschenhalses Hauptspeicher zu verringern oder
  • den Stromverbrauch, die Verlustleistung und damit die Wärmeabgabe zu reduzieren.

Die out-of-order execution ist teilweise auch aus dem Zwang zur Rückwärtskompatibilität zu älteren Prozessoren entstanden. Da das Befehlsformat eines älteren Prozessors weiterhin unterstützt werden musste, konnten Verbesserungen zur parallelen Ausführung nur unter der Haube geschehen. Prinzipiell ist es aber möglich, den Compiler mit dieser Aufgabe zu betrauen, und in den meisten Fällen ist ein Compiler für diese Aufgabe besser geeignet, da er mehr Zeit auf die Optimierung aufwenden kann und Zugriff auf mehr Informationen über den Programmfluss hat.