Instruktionsniveau-Parallelismus

Das potenzielle Übergreifen unter Instruktionen wird Instruktionsniveau-Parallelismus genannt. Es gibt zwei Annäherungen daran;

1. Hardware

2. Software

Hardware-Niveau arbeitet auf den dynamischen Parallelismus, wohingegen das Softwareniveau am statischen Parallelismus arbeitet. [1]

Der Verarbeiter von Pentium arbeitet an der dynamischen Folge der parallelen Ausführung, aber der Verarbeiter-Arbeiten von Itanium am statischen Niveau-Parallelismus

Instruktionsniveau-Parallelismus (ILP) ist ein Maß dessen, wie vieler der Operationen in einem Computerprogramm gleichzeitig durchgeführt werden kann. Denken Sie das folgende Programm:

1. e = + b

2. f = c + d

3. g = e * f

Operation 3 hängt von den Ergebnissen von Operationen 1 und 2 ab, so kann sie nicht berechnet werden, bis sie beide vollendet werden. Jedoch hängen Operationen 1 und 2 von keiner anderen Operation ab, so können sie gleichzeitig berechnet werden. (Siehe auch: Datenabhängigkeit), Wenn wir annehmen, dass jede Operation in einer Einheit der Zeit dann diese drei Instruktionen vollendet werden kann, kann in insgesamt zwei Einheiten der Zeit vollendet werden, einen ILP von 3/2 gebend.

Eine Absicht des Bearbeiters und der Verarbeiter-Entwerfer soll sich identifizieren und so viel ILP wie möglich ausnutzen. Gewöhnliche Programme werden normalerweise unter einem folgenden Ausführungsmodell geschrieben, wo Instruktionen nacheinander und in der vom Programmierer angegebenen Ordnung durchführen. ILP erlaubt dem Bearbeiter und dem Verarbeiter, auf die Ausführung von vielfachen Instruktionen überzugreifen oder sogar die Ordnung zu ändern, in der Instruktionen durchgeführt werden.

Wie viel ILP in Programmen besteht, ist sehr spezifische Anwendung. In bestimmten Feldern, wie Grafik und wissenschaftliche Computerwissenschaft des Betrags kann sehr groß sein. Jedoch, Arbeitspensen wie Geheimschrift-Ausstellungsstück viel weniger Parallelismus.

Mikroarchitektonische Techniken, die verwendet werden, um ILP auszunutzen, schließen ein:

  • Instruktion pipelining, wo auf die Ausführung von vielfachen Instruktionen teilweise übergegriffen werden kann.
  • Superskalarausführung, VLIW und die nah zusammenhängende Ausführlich Parallele Instruktion Rechenkonzepte, in denen vielfache Ausführungseinheiten verwendet werden, um vielfache Instruktionen in der Parallele durchzuführen.
  • In Unordnung Ausführung, wo Instruktionen in jeder Ordnung durchführen, die Datenabhängigkeiten nicht verletzt. Bemerken Sie, dass diese Technik sowohl von pipelining als auch von Superskalar unabhängig ist. Aktuelle Durchführungen in Unordnung der Ausführung dynamisch (d. h., während das Programm durchführt und ohne jede Hilfe vom Bearbeiter), Extrakt ILP aus gewöhnlichen Programmen. Eine Alternative soll diesen Parallelismus während der Übersetzung herausziehen und irgendwie diese Information zur Hardware befördern. Wegen der Kompliziertheit, in Unordnung Ausführungstechnik zu klettern, hat die Industrie Befehlssätze nochmals geprüft, die ausführlich vielfache unabhängige Operationen pro Instruktion verschlüsseln.
  • Register-Umbenennung, die sich auf eine Technik bezieht, hat gepflegt zu vermeiden, dass die unnötige Anordnung von Programm-Operationen, die durch den Wiedergebrauch von Registern durch jene Operationen auferlegt sind, gepflegt hat, in Unordnung Ausführung zu ermöglichen.
  • Spekulative Ausführung, die die Ausführung von ganzen Instruktionen oder Teile von Instruktionen davor erlauben, sicher sein, ob diese Ausführung stattfinden sollte. Eine allgemein verwendete Form der spekulativen Ausführung ist Kontrollfluss-Spekulation, wo Instruktionen vorbei an einer Kontrollfluss-Instruktion (z.B, ein Zweig) durchgeführt werden, bevor das Ziel der Kontrollfluss-Instruktion bestimmt wird. Mehrere andere Formen der spekulativen Ausführung sind vorgeschlagen worden und sind im Gebrauch einschließlich der spekulativen Ausführung, die durch die Wertvorhersage, Speicherabhängigkeitsvorhersage und Latenz-Vorhersage des geheimen Lagers gesteuert ist.
  • Zweigvorhersage, die verwendet wird, um zu vermeiden, für aufzulösende Kontrollabhängigkeiten stecken zu bleiben. Zweigvorhersage wird mit der spekulativen Ausführung verwendet.

Architekturen von Dataflow sind eine andere Klasse von Architekturen, wo ILP ausführlich angegeben wird, aber sie sind seit den 1980er Jahren nicht aktiv erforscht worden.

In den letzten Jahren sind ILP Techniken verwendet worden, um Leistungsverbesserungen trotz der wachsenden Verschiedenheit zwischen dem Verarbeiter Betriebsfrequenzen zur Verfügung zu stellen, und Speicherzugriffszeiten (haben frühe ILP Designs wie IBM 360 ILP Techniken verwendet, um die Beschränkungen zu überwinden, die durch eine relativ kleine Register-Datei auferlegt sind). Jetzt, ein geheimes Lager verschießen Strafschuss zu Hauptspeicherkosten mehrere hundert von Zentraleinheitszyklen. Während im Prinzip es möglich ist, ILP zu verwenden, um sogar solche Speicherlatenz zu dulden, sind die verbundene Quelle und Macht-Verschwendungskosten unverhältnismäßig. Außerdem läuft die Kompliziertheit und häufig die Latenz der zu Grunde liegenden Hardware-Strukturen auf reduzierte Betriebsfrequenz hinaus, die weiter irgendwelche Vorteile reduziert. Folglich erweisen sich die oben erwähnten Techniken unzulänglich, um die Zentraleinheit davon abzuhalten, für die Daten außer Span stecken zu bleiben. Statt dessen geht die Industrie zur Ausnutzung höherer Niveaus des Parallelismus, der durch Techniken wie Mehrverarbeitung und Nebenläufigkeit ausgenutzt werden kann.

Siehe auch

  • Datenabhängigkeit
  • Speicherniveau-Parallelismus, MLP.

Links

[1] Computerarchitektur eine quantitative Annäherung


Algorithmen für die Wiederherstellungs- und Isolierungsausnutzungssemantik / Verteilte Generation
Impressum & Datenschutz