Sehr langes Unterrichtswort
Sehr langes Unterrichtswort (VLIW) bezieht sich auf Anweisungsset Architekturen Entwickelt, um auszunutzen Unterrichtsniveau Parallelität (ILP). Während konventionell Zentrale Verarbeitungseinheiten (CPU, Prozessor) Ermöglichen Sie Programmen meistens, dass Anweisungen nur nacheinander ausführen können. Ein VLIW -Prozessor ermöglicht es Programmen, ausdrücklich Anweisungen anzugeben parallel. Dieses Design soll eine höhere Leistung ohne die Komplexität ermöglichen, die einigen anderen Designs inhärent ist.
Überblick
Zu den traditionellen Mitteln zur Verbesserung der Leistung bei Prozessoren gehört die Aufteilung von Anweisungen in Untersetzer, sodass die Anweisungen teilweise gleichzeitig ausgeführt werden können (als bezeichnet Pipelining), Versand individueller Anweisungen, die unabhängig in verschiedenen Teilen des Prozessors ausgeführt werden sollen (Superscalar Architekturen) und sogar Anweisungen in einer Reihenfolge, die sich vom Programm unterscheidet (Ausführende Ausführung). Diese Methoden komplizieren Hardware (größere Schaltungen, höhere Kosten und Energieverbrauch), da der Prozessor alle Entscheidungen intern treffen muss, damit diese Methoden funktionieren. Im Gegensatz dazu hängt die VLIW -Methode von den Programmen ab, die alle Entscheidungen darüber enthält, welche Anweisungen gleichzeitig ausgeführt werden sollen und wie Konflikte gelöst werden sollen. Praktisch bedeutet dies, dass die Compiler (Software, die zur Erstellung der endgültigen Programme verwendet wird) wird weitaus komplexer, aber die Hardware ist einfacher als bei vielen anderen Mittel der Parallelität.
Motivation
Ein Prozessor, der jede nach dem andere nachgeführte Anweisung ausführt (d. H. Ein Nicht-NichtsPipeline Skalararchitektur) kann die Prozessorressourcen ineffizient verwenden und potenzielle schlechte Leistung erzeugen. Die Leistung kann verbessert werden, indem verschiedene Sequenzanweisungen gleichzeitig ausgeführt werden (bezeichnet Pipelining) oder sogar mehrere Anweisungen vollständig gleichzeitig wie in Superscalar Architekturen. Eine weitere Verbesserung kann erzielt werden, indem Anweisungen in einer Reihenfolge ausgeführt werden als die in einem Programm, die als bezeichnet werden Ausführende Ausführung.
Diese drei Methoden erhöhen die Hardwarekomplexität. Vor der parallelen Ausführung von Operationen muss der Prozessor überprüfen, ob die Anweisungen keine Interdependenzen. Wenn beispielsweise das Ergebnis eines ersten Anweisungen als Eingabe eines zweiten Anweisung verwendet wird, können sie nicht gleichzeitig ausgeführt und der zweite Anweis nicht vor dem ersten ausgeführt. Moderne Prozessoren außerhalb der Bestellung haben die Hardware-Ressourcen erhöht, die Anweisungen planen und Interdependenzen bestimmen.
Im Gegensatz dazu führt VLIW die Vorgänge parallel aus, basierend auf einem festen Zeitplan, der festgelegt wird, wann Programme sind zusammengestellt. Da die Bestimmung der Ausführung der Operationen (einschließlich der gleichzeitigen Ausführung von Vorgängen) vom Compiler behandelt wird, benötigt der Prozessor nicht die Planungshardware, die die oben beschriebenen Methoden benötigen. Daher bietet VLIW -CPUs mehr Computing mit weniger Hardwarekomplexität (aber mehr Compiler -Komplexität) als die meisten superscalar -CPUs.
Entwurf
In Superscalar -Designs ist die Anzahl der Ausführungseinheiten für den Befehlssatz unsichtbar. Jeder Befehl codiert nur einen Vorgang. Bei den meisten Supercalar -Designs beträgt die Anweisungsbreite 32 Bit oder weniger.
Im Gegensatz dazu codiert ein VLIW -Befehl mehrere Vorgänge, mindestens ein Vorgang für jede Ausführungseinheit eines Geräts. Wenn beispielsweise ein VLIW -Gerät über über fünf Ausführungseinheiten verfügt, verfügt über eine VLIW -Anweisung für das Gerät über fünf Betriebsfelder, wobei jedes Feld angeben, welche Operation auf dieser entsprechenden Ausführungseinheit ausgeführt werden soll. Um diese Betriebsfelder aufzunehmen, sind die VLIW -Anweisungen in der Regel mindestens 64 Bit breit und bei einigen Architekturen weitaus breiter.
Zum Beispiel ist Folgendes eine Anweisung für die Super Harvard Architektur Single-Chip-Computer (Sharc). In einem Zyklus führt es eine Gleitkomma-Multiplikum, eine Floating-Point-Add und zwei Autoinkrementlasten durch. All dies passt in eine 48-Bit-Anweisung:
f12 = f0 * f4, f8 = f8 + f12, f0 = dm (i0, m3), f4 = pm (i8, m9);
Seit den frühesten Tagen der Computerarchitektur,[1] Einige CPUs haben mehrere hinzugefügt Arithmetische Logikeinheiten (Alus) parallel laufen. Superscalar CPUs verwenden Hardware, um zu entscheiden, welche Vorgänge zur Laufzeit parallel ausgeführt werden können, während VLIW -CPUs Software (der Compiler) verwenden, um zu entscheiden, welche Vorgänge parallel im Voraus ausgeführt werden können. Da die Komplexität der Unterrichtsplanung in den Compiler verschoben wird, kann die Komplexität der Hardware erheblich reduziert werden.[Klarstellung erforderlich]
Ein ähnliches Problem tritt auf, wenn das Ergebnis einer parallelisierbaren Anweisung als Eingabe für einen Zweig verwendet wird. Die modernsten CPUs erraten Welcher Zweig wird bereits vor Abschluss der Berechnung eingenommen, damit sie die Anweisungen für den Zweig laden oder (in einigen Architekturen) sogar beginnen können Berechnen Sie sie spekulativ. Wenn die CPU falsch erraten, müssen alle diese Anweisungen und ihr Kontext sein gespült und die richtigen geladen, was Zeit braucht.
Dies hat zu immer komplexerer Befehls-Dispatch geführt Logik, die versucht, richtig zu erratenund die Einfachheit des Originals Reduziertes Anweisungssatz Computing (RISC) Designs wurden untergraben. VLIW fehlt diese Logik und somit fehlt der Energieverbrauch, mögliche Designfehler und andere negative Aspekte.
In einem VLIW verwendet der Compiler Heuristiken oder Profilinformationen zu erraten Die Richtung eines Zweigs. Dies ermöglicht es spekulativ, Vorgänge vor dem Zweig zu bewegen und vorzubereiten, und bevorzugt den wahrscheinlichsten Weg, den es durch den Zweig erwartet. Wenn der Zweig einen unerwarteten Weg einnimmt, hat der Compiler bereits einen Komplexierungscode generiert, um spekulative Ergebnisse zu verwerfen, um die Programmsemantik zu erhalten.
Vektorprozessor Kerne (für Große ausgelegt Eindimensionale Arrays von Daten genannt Vektoren) kann mit der VLIW -Architektur kombiniert werden, z. B. in der Fujitsu FR-V Mikroprozessor, weiter zunimmt Durchsatz und Geschwindigkeit.
Geschichte
Das Konzept der VLIW -Architektur und des Begriffs VLIWwurden erfunden von Josh Fisher in seiner Forschungsgruppe bei Yale Universität In den frühen 1980er Jahren.[2] Seine ursprüngliche Entwicklung von Verfolgungsplanung Als Zusammenstellungsmethode für VLIW wurde als Doktorandin entwickelt New Yorker Universität. Vor VLIW der Begriff des Vorschadens Ausführungseinheiten und Parallelität auf Unterrichtsebene in der Software war in der Entwicklung der Entwicklung gut etabliert Horizontaler Mikrocode. Vor Fisher wurden die theoretischen Aspekte des sogenannten VLIW vom sowjetischen Informatiker Mikhail Kartsev entwickelt[3] Basierend auf seinen sechziger Jahren arbeiten an militärorientierten M-9- und M-10-Computern. Seine Ideen wurden später als Teil eines Lehrbuchs entwickelt und veröffentlicht[4] zwei Jahre vor Fisher's Samenpapier, aber wegen der Eiserner Vorhang Und weil Kartsevs Arbeit größtenteils militärisch war, blieb sie im Westen weitgehend unbekannt.
Die Innovationen von Fisher umfassten die Entwicklung eines Compiler Programmiersprache. Er erkannte das, um eine gute Leistung zu erzielen und a zu zielen Weitnacht Maschine, es wäre notwendig, Parallelität darüber hinaus zu finden, die im Allgemeinen innerhalb von a Grundblock. Er entwickelte auch die Planungsmethoden der Region, um Parallelität über grundlegende Blöcke hinaus zu identifizieren. Die Trace -Planung ist eine solche Methode und beinhaltet zuerst den wahrscheinlichsten Weg der Grundblöcke, um den Ausgleichscode für spekulative Anträge zu bewältigen, die zweite Wahrscheinlichkeit zu planen usw., bis der Zeitplan abgeschlossen ist.
Die zweite Innovation von Fisher war die Vorstellung, dass die Ziel -CPU -Architektur als vernünftiges Ziel für einen Compiler ausgelegt sein sollte. Dass der Compiler und die Architektur für einen VLIW -Prozessor codiert werden müssen. Dies wurde teilweise von dem Schwierigkeitsgrad inspiriert Schwimmende Punktsysteme'FPS164, der a hatte Komplexes Anweisungssatz Computing (CISC) Architektur, die die Einleitung der Unterricht von den Anweisungen, die das Ergebnis gespeichert haben, getrennt haben und sehr komplexe Planungsalgorithmen benötigen. Fisher entwickelte eine Reihe von Prinzipien, die ein ordnungsgemäßes VLIW-Design charakterisieren, z. Registrieren Sie Dateien, und Gedächtnisarchitekturen. Diese Prinzipien erleichterten Compilern, schnelle Code auszugeben.
Der erste VLIW -Compiler wurde in einem Ph.D. These von John Ellis, überwacht von Fisher. Der Compiler hieß Bulldog, nach Yales Maskottchen.[5]
Fisher verließ Yale 1984, um eine Startup -Firma zu gründen, Mehrfachströmungzusammen mit Mitbegründern John O'Donnell und John Ruttenberg. Multiflow produzierte die Trace -Serie von VLIW Minisupercomputer, Versand ihrer ersten Maschinen im Jahr 1987. Multiflows VLIW könnte 28 Operationen parallel pro Anweisung ausstellen. Das Trace -System wurde in einer Mischung von implementiert Integration mit mittlerer Maßstab (MSI), groß angelegte Integration (LSI) und sehr große Integration (VLSI), in Schränken verpackt, eine Technologie, die veraltet war, als sie kosteneffektiver wurde, um alle Komponenten eines Prozessors (ohne Speicher) in einen Chip zu integrieren.
Multiflow war zu früh, um die folgende Welle zu fangen, als Chiparchitekturen CPUs mit mehreren Ausgaben zulassen.[Klarstellung erforderlich] Die wichtigsten Halbleiterunternehmen erkannten in diesem Zusammenhang den Wert der Multiflow -Technologie, sodass der Compiler und die Architektur anschließend den meisten dieser Unternehmen lizenziert wurden.
Implementierungen
Cydrom war ein Unternehmen, das numerische VLIW -Prozessoren herstellte Emitter-gekoppelte Logik (ECL) Integrierte Schaltungen im gleichen Zeitraum (Ende der 1980er Jahre). Diese Firma scheiterte wie Multiflow nach einigen Jahren.
Einer der Lizenznehmer der Multiflow -Technologie ist Hewlett Packard, die Josh Fisher kam nach Multiflows Tod. Bob Rau, Gründer von Cydrom, trat auch HP bei, nachdem Cydrom fehlgeschlagen war. Diese beiden würden in den neunziger Jahren bei Hewlett-Packard Computerarchitekturforschung leiten.
Zusammen mit den oben genannten Systemen implementierte Intel während der gleichen Zeit (1989–1990) VLIW in der Intel i860, ihr erster 64-Bit-Mikroprozessor und der erste Prozessor, der VLIW auf einem Chip implementiert.[6] Dieser Prozessor könnte sowohl im einfachen RISC -Modus als auch im VLIW -Modus arbeiten:
In den frühen neunziger Jahren führte Intel den i860 RISC -Mikroprozessor ein. Dieser einfache Chip hatte zwei Betriebsmodi: einen Skalarmodus und einen VLIW -Modus. Im VLIW-Modus holte der Prozessor immer zwei Anweisungen und nahm an, dass einer eine Ganzzahlanweisung und der andere schwimmende Punkt war.[6]
Der VLIW -Modus des i860 wurde ausgiebig in verwendet eingebettet digitaler Signalprozessor (DSP) Anwendungen Da die Anwendungsausführung und die Datensätze einfach, gut geordnet und vorhersehbar waren, sodass Designer die durch VLIW aktivierten Parallelausführungsvorteile vollständig ausnutzen können. Im VLIW-Modus könnte der i860 die schwimmende Punktleistung im Bereich von 20-40 Doppelprezisions-Mflops aufrechterhalten. Ein sehr hoher Wert für seine Zeit und für einen Prozessor mit 25-50 MHz.
In den neunziger Jahren untersuchte Hewlett-Packard dieses Problem als Nebeneffekt der laufenden Arbeiten auf ihren Pa-risc Prozessorfamilie. Sie stellten fest, dass die CPU durch Entfernen der komplexen Versandlogik von der CPU und in den Compiler stark vereinfacht werden konnte. Die Compiler des Tages waren weitaus komplexer als die der 1980er Jahre, so dass die zusätzliche Komplexität im Compiler als geringe Kosten angesehen wurde.
VLIW-CPUs bestehen normalerweise aus mehreren RISC-ähnlich Ausführungseinheiten das arbeitet unabhängig. Zeitgenössische VLIWs haben normalerweise vier bis acht Hauptausführungseinheiten. Compiler erzeugen anfängliche Anweisungssequenzen für die VLIW-CPU in ungefähr der gleichen Weise wie für herkömmliche CPUs, was eine Sequenz von RISC-ähnlichen Anweisungen erzeugt. Der Compiler analysiert diesen Code auf Abhängigkeitsbeziehungen und Ressourcenanforderungen. Anschließend werden die Anweisungen gemäß diesen Einschränkungen geplant. In diesem Prozess können unabhängige Anweisungen parallel geplant werden. Da VLIWs in der Regel parallel zu einem längeren Anweisungswort angegeben sind, das die einzelnen Anweisungen enthält, führt dies zu einer viel längeren Opcode (bezeichnet sehr lang) um anzugeben, was in einem bestimmten Zyklus ausgeführt wird.
Beispiele für zeitgenössische VLIW -CPUs umfassen die Trimedia Medienprozessoren von NXP (ehemals Philips Semiconductors), die Super Harvard Architektur Single-Chip-Computer (Sharc) DSP durch analoge Geräte, die ST200 -Familie von stmicroelectronics basierend auf der LX -Architektur (entworfen in Josh Fisher's HP Lab von Paolo Faraboschi), der FR-V aus Fujitsu, der BSP15/16[7] aus Pixelworks, das CEVA-X DSP Von Ceva, die Jazz DSP aus Improvisationssystemen der Hiveflex[8] Serie von Silicon Hive und der Familie MPPA Manycore von Kalray. Die Texas Instruments TMS320 DSP Die Linie hat sich in seiner weiterentwickelt C6000 Familie, um eher wie ein VLIW auszusehen, im Gegensatz zum früheren C5000 Familie. Diese zeitgenössischen VLIW -CPUs sind hauptsächlich als eingebettete Medienprozessoren für elektronische Unterhaltungsgeräte erfolgreich.
VLIW -Funktionen wurden auch zu konfigurierbaren Prozessorkernen für hinzugefügt System-on-a-Chip (SOC) Designs. Zum Beispiel Tensilica's XTensa Der LX2-Prozessor enthält eine Technologie mit dem Namen Flexible Längenanweisung (Flix), die Anweisungen mit mehreren Operationen ermöglicht. Der XTensa C/C ++-Compiler kann mit den Anweisungen des XTensa-Prozessors mit den Einrichtungsanweisungen des XTensa-Prozessors, die 16 oder 24 Bit breit sind, frei mit den Anweisungen des XTensa-Prozessors frei einsetzen. Durch das Verpacken mehrerer Vorgänge in ein breites 32- oder 64-Bit-Anweisungswort und das Ermöglichung dieser Mehrfachoperationsanweisungen können SOC-Designer die Leistungsvorteile von VLIW realisieren und gleichzeitig die Leistungsvorteile von VLIW realisieren und gleichzeitig die eliminierung Code aufblähen von frühen VLIW -Architekturen. Der Infineon Carmel DSP ist ein weiterer VLIW -Prozessorkern für SOC. Es verwendet eine ähnliche Methode zur Verbesserung der Codedichte, die genannt wird Konfigurierbares langes Anweisungswort (Cliw).[9]
Außen eingebettete Verarbeitungsmärkte, Intel's Itanium IA-64 explizit parallele Anweisungsrechnung (Episch) und Elbrus 2000 erscheinen als einzige Beispiele für eine weit verbreitete VLIW -CPU -Architekturen. Die epische Architektur unterscheidet sich jedoch manchmal von einer reinen VLIW-Architektur, da epische sich vollständige Anweisungen, rotierende Registerdateien und ein sehr langes Anweisungswort befürworten, das nichtparallele Anweisungsgruppen codieren kann. VLIWs erlangten auch eine signifikante Verbraucherdurchdringung in der Grafikkarte (GPU) Markt, obwohl beide Nvidia und AMD sind seitdem zu RISC-Architekturen gewechselt, um die Leistung bei Nicht-Graphik-Arbeitsbelastungen zu verbessern.
ATI -Technologien'(ATI) und moderne Mikrogeräte'(AMD) Terascale Mikroarchitektur für Grafikverarbeitungseinheiten (GPUs) ist eine VLIW -Mikroarchitektur.
Im Dezember 2015 die erste Versand von PCs basierend auf VLIW CPU Elbrus-4s wurde in Russland gemacht.[10]
Das NEO -von Rex Computing ist ein Prozessor, der aus einem 2D -Netz von VLIW -Kernen besteht, die auf die Stromversorgung von Effizienz abzielen.[11]
Rückwärtskompatibilität
Wenn die Siliziumtechnologie breitere Implementierungen (mit mehr Ausführungseinheiten) ermöglichte, wurden die kompilierten Programme für die frühere Generation nicht auf den umfassenderen Implementierungen ausgeführt, da die Kodierung von Binäranweisungen von der Anzahl der Ausführungseinheiten der Maschine abhing.
Transmeta befasste sich mit diesem Problem, indem eine Binär- bis binäre Software-Compiler-Schicht (bezeichnet wird Code Morphing) in ihrer Crusoe -Implementierung der x86 die Architektur. Dieser Mechanismus wurde beworben, um X86 -Opcodes zur Laufzeit im Grunde in den internen Maschinencode der CPU neu zu kompilieren, zu optimieren und zu übersetzen. Somit ist der Transmeta -Chip im Inneren Ein VLIW -Prozessor, der effektiv vom X86 CISC entkoppelt ist Befehlssatz dass es ausgeführt wird.
Intel Itanium Architektur (unter anderem) löste das Problem der Rückwärtskompatibilität mit einem allgemeineren Mechanismus. Innerhalb jeder der Anweisungen mit mehreren Opcode wird ein Bitfeld zugewiesen, um die Abhängigkeit von der vorherigen VLIW-Anweisung innerhalb des Programmanweisungsstroms zu bezeichnen. Diese Teile sind auf eingestellt Zeit kompilierendamit die Hardware die Berechnung dieser Abhängigkeitsinformationen lindert. Wenn diese Abhängigkeitsinformationen im Befehlsstrom codiert werden, können breitere Implementierungen mehrere nicht abhängige VLIW-Anweisungen parallel pro Zyklus ausstellen, während engere Implementierungen eine geringere Anzahl von VLIW-Anweisungen pro Zyklus ausstellen würden.
Ein weiterer wahrgenommener Mangel an VLIW -Designs ist die Code aufblähen Dies geschieht, wenn eine oder mehrere Ausführungseinheiten keine nützliche Arbeit haben und somit ausgeführt werden müssen Keine Operation NOP Anweisungen. Dies tritt auf, wenn Abhängigkeiten im Code vorhanden sind und die Anweisungsrohrleitungen abtropfen müssen, bevor spätere Vorgänge fortgesetzt werden können.
Da die Anzahl der Transistoren auf einem Chip gewachsen ist, haben sich die wahrgenommenen Nachteile der VLIW an Bedeutung gesunken. VLIW -Architekturen werden immer beliebter, insbesondere in der Eingebettetes System Markt, wo es möglich ist, einen Prozessor für eine Anwendung in a anzupassen System-on-a-Chip.
Siehe auch
- Explizit parallele Anweisungsrechnung (EPOS)
- Elbrus (Computer)
- Itanium
- Movidius (Rasierkern)
- Einzelanweisung, mehrere Daten
- Einzelanweisung, mehrere Threads
- Transport ausgelöste Architektur (TTA)
Verweise
- ^ "Steuerungsdaten 6400/6500/6600 Computersysteme Referenzhandbuch". 1969-02-21. Archiviert von das Original Am 2014-01-02. Abgerufen 2013-11-07.
- ^ Fisher, Joseph A. (1983). "Sehr lange Unterrichtswörter Architekturen und ELI-512". Verfahren des 10. jährlichen internationalen Symposiums über die Computerarchitektur. Internationales Symposium über Computerarchitektur. New York, NY, USA: Verband für Rechenmaschinen (ACM). S. 140–150. doi:10.1145/800046.801649. ISBN 0-89791-101-6.
- ^ Kartsev, Mikhail (1970). " Radioelektronische Angelegenheiten, elektronische Computertechnik (in Russisch) (5–6): 3–19.
- ^ Kartsev, Mikhail; Brik, Vladimir (1981). Ide [Komponierungssysteme und synchrone Arythmetik] (auf Russisch). Moskau: Radio I Svyaz.
- ^ "ACM 1985 Doctoral Dissertation Award". Verband für Rechenmaschinen (ACM). Archiviert von das Original am 2008-04-02. Abgerufen 2007-10-15.
Für seine Dissertation Bulldogge: Ein Compiler für die VLIW -Architektur.
- ^ a b "Eine Einführung in die Computerarchitektur von sehr langem Unterrichtswort (VLIW)" (PDF). Philips Halbleiter. Archiviert von das Original (PDF) Am 2011-09-29.
- ^ "PixelWorks | BSP15/16". Archiviert von das Original Am 1996-12-24. Abgerufen 2016-07-28.
- ^ "Silizium -Bienenstockprodukte". Siliziumbienenstock. Silizium -Bienenstock BV. Archiviert von das Original Am 2012-01-28. Abgerufen 2012-01-28.
- ^ "EEMBC veröffentlicht Benchmark -Werte für Carmel - DSP Core und Tricore - TC11IB -Mikrocontroller" für Infineon Technologies ". eembc.org. Abgerufen 2016-07-28.
- ^ "Тасс" ". tass.ru. Abgerufen 2016-07-28.
- ^ "Der winzige Chip, der das Exascale Computing stören könnte". Die nächste Plattform. Stackhouse Publishing Inc. 12. März 2015. Abgerufen 26. April 2021.
Externe Links
- Papier, das VLIWS einführte
- Buch über die Geschichte des Multiflow -Computers, VLIW Pionierunternehmen
- ISCA "Best Papers" Retrospektive auf Papier, das VLIWS einführte
- VLIW und eingebettete Verarbeitung
- FR500 VLIW-Architektur Hochleistungs-eingebetteter Mikroprozessor
- Historischer Hintergrund für epische Unterrichts -Architekturen
- DIS: Eine Architektur für die schnelle Lisp -Ausführung. Eine ähnliche VLIW -Architektur mit einem parallelisierenden Compiler, der auf Lisp gerichtet ist.