WikiDer > Computer mit reduziertem Befehlssatz
| Leistungsarchitektur |
|---|
| Historisch |
LEISTUNG · PPC6xx · PowerPC-AS· LEISTUNG2 · POWER3 · POWER4 · AIM-Allianz |
| Strom |
PowerPC · e200 · e300 · e500 · e600 · PA6T · LEISTUNG5 · LEISTUNG6 · PPC4xx · PPC750 · PPC970 · Zellen-PPE · Xenon · Broadway |
| Zukunft |
| Ähnliche Links |
EIN Computer mit reduziertem Befehlssatz, AkronymRISC ist ein Prozessor die mit einer kleinen Reihe einfacher grundlegender Anweisungen funktioniert. Dies steht im Gegensatz zu Computer mit komplexen Befehlssätzen (CISC), die mit einem relativ großen Satz komplexer Anweisungen arbeiten.
CISC-RISC-Vergleich
Der RISC-Prozessor hat weniger Schaltungen als ein CISC-Prozessor und ist daher einfacher herzustellen und weiter zu miniaturisieren. Dies wird erreicht durch die kleineren Befehlssatz, einfachere codierte Anweisungen und das Fehlen von Mikrocode. Aufgrund des kleineren Befehlssatzes muss der RISC-Prozessor für denselben Befehl mehr Befehle ausführen als ein CISC-Prozessor. Dies kann jedoch durch eine höhere Verarbeitungsgeschwindigkeit ausgeglichen werden. In der Praxis unterscheiden sich die beiden Konstruktionsprinzipien in der Verarbeitungsgeschwindigkeit nicht wesentlich. Der Hauptunterschied liegt im Energieverbrauch: RISC-Prozessoren sind sparsamer.
Nach der Erfindung von RISC dachte man zunächst, dass CISC nicht lange halten würde. Da CISC-Prozessoren jedoch komplexer sind, scheinen mehr Design-Tricks möglich zu sein. Der Konstruktions- und Konstruktionsaufwand ist daher höher, was aber bei sehr großen Auflagen überschaubar ist.
Beispiele für RISC-Prozessoren sind die PowerPC von IBM, die UltraSPARC von Sonne Mikrosysteme und der AVR-Kern von ATMEL. Ein Prozessor, bei dem das Prinzip sehr rein angewendet wird, ist der ARM von ARM Ltd.
Eigenschaften
Die zentrale Philosophie des RISC-Designs besteht darin, dass Anweisungen so schnell wie möglich von der CPU ausgeführt werden sollen. Das bedeutet unter anderem, dass es weniger Anleitungen gibt und diese einfacher sind. Das bedeutet auch, dass im Vergleich zu CISC-Maschinen mehr Anweisungen benötigt werden, um das gleiche Ergebnis zu erzielen. Dies wird jedoch durch die Geschwindigkeit ausgeglichen, mit der die einzelnen Anweisungen ausgeführt werden.
Architektur laden/speichern
Nur so genannte Load- und Store-Befehle adressieren den Speicher; alle anderen Befehle arbeiten mit internal registriert auf dem Prozessor.
Ein RISC-Prozessor soll alle Befehle in einem Taktzyklus ausführen. Anweisungen, die ihre Argumente aus dem Speicher lesen oder in den Speicher schreiben, dauern jedoch länger, da der Speicher vom Prozessor getrennt ist. Um dies zu lösen, werden zwei Maßnahmen ergriffen:
- Gewöhnliche Befehle funktionieren nur auf Registern, und es gibt keine Optionen für direkte Adressierung, indizierte Adressierung oder indirekte Adressierung des Speichers.
- Es wird Gebrauch gemacht Rohrleitungen.
Rohrleitungen
Ein Pipelining-Prozessor ist in eine Anzahl unabhängiger Einheiten unterteilt, von denen jede ihre eigene Aufgabe hat, wie etwa das Abrufen von Anweisungen, Decodieren von Anweisungen und Ausführen von Anweisungen. Diese Einheiten arbeiten parallel mit unterschiedlichen Anweisungen. Während der erste Befehl von einer Einheit ausgeführt wird, wird der zweite von einer anderen Einheit decodiert und der dritte von einer weiteren Einheit aus dem Speicher abgerufen.
Das Platzieren der Speicherzugriffe in einer separaten Einheit kann das Problem lösen, dass ein Lade- oder Speicherbefehl langsamer ist als andere Befehle. Während der Lade-/Speicherbefehl noch von der den Speicherzugriff ausführenden Einheit bearbeitet wird, kann der nächste Befehl bereits von der ausführenden Einheit ausgeführt werden. Es wartet also nicht, bis der Speicheraufruf beendet ist.
Eine Bedingung hier ist, dass der Befehl, der einem Speicherbefehl folgt, nicht das Register verwendet, auf dem der Speicherbefehl arbeitet. Es ist die Aufgabe des Compiler um sicherzustellen, dass diese Bedingung erfüllt ist.
Dies ist auch ein Beispiel für einen allgemeinen Trend im RISC-Design: Komplexität wird von der Hardware (dem Prozessor) in die Software (den Compiler) verlagert.
Kein Mikrocode
Die von einem Compiler generierten Maschinensprachanweisungen werden direkt von der Hardware auf einem RISC-Rechner ausgeführt und nicht wie bei herkömmlichen CISC-Rechnern von Mikrocode interpretiert.
Dies ist möglich, weil ein RISC eine begrenzte Anzahl von Befehlen hat, die alle einfache Operationen ausführen und einfach codiert sind. Die Ausführung von Anweisungen direkt durch die Hardware ist natürlich immer schneller, aber CISC-Maschinen können dies aufgrund ihres Befehlssatzes nicht nutzen. Da CISC-Maschinen so viele verschiedene, zum Teil relativ komplexe Befehle haben, ist es praktisch unmöglich, deren Ausgabe in die Prozessorhardware zu implementieren: dafür ist auf dem Chip kein Platz und der Chip würde zu teuer.
Kleiner, homogener Befehlssatz
Da RISC-Prozessoren keinen Mikrocode verwenden, ist ihre Fähigkeit zum Decodieren von Anweisungen begrenzt. Daher ist ihr Befehlssatz homogen: Alle Befehle haben die gleiche Länge und Struktur (oder es gibt eine kleine Anzahl von Befehlstypen). Das heißt zum Beispiel, das erste Argument einer Anweisung befindet sich immer an der gleichen Position, zum Beispiel Bit 6 bis 11. Dasselbe für das zweite Argument und so weiter.
Während dies bedeutet, dass einige Befehle unnötig lang sind, dauert die Befehlsdecodierung weniger Zeit und die Decodierungsschaltung auf dem Chip ist einfacher (und somit kleiner).
Großer, homogener Registersatz
RISC-Maschinen haben eine große Anzahl von Registern. Dies ist mehr oder weniger notwendig, um die Anzahl der Load/Store-Befehle so gering wie möglich zu halten: Denn außer den Load/Store-Befehlen arbeiten alle anderen Befehle nur auf Registern.
Darüber hinaus ist der Registersatz in einer RISC-Maschine im Allgemeinen homogen: Es gibt wenige oder keine speziellen Register. Viele CISC-Maschinen haben spezielle Register für die Stapelzeiger, für die Basiszeiger, zum Indizieren, für Speichertransfers usw. (auf der x86 SP, BP, CX bzw. SI/DI). Da RISC-Prozessoren weniger (oder keine) Sonderregister haben, hat der Compiler mehr Freiheit in der Registerzuordnung, was wiederum die Anzahl der Speicherreferenzen reduzieren kann.
Auch einige RISC-Prozessoren (wie der SPARC) mehrere Registersätze. Dies ermöglicht Funktionen, für die normalerweise die waarvoor Stapel (im langsamen Speicher) ist jetzt nur noch mit (schnellen) Registern ausführbar. Tatsächlich wird der Stapel in einem Registerspeicher simuliert, wo ein Stapelrahmen nicht aus einer Anzahl von Speicherzellen besteht, sondern aus einer Anzahl von Registern. Dies kann zu einem erheblichen Geschwindigkeitsgewinn führen.
Integrierter Cache-Speicher
Anweisungen, die auf den Speicher wirken, sind langsam, weil der Speicher langsam ist und weil Prozessor und Speicher durch a . getrennt sind Bus. Um dieses Problem zu lösen, wird ein sogenannter Level2-Zwischenspeicher eingeführt. Obwohl es einen erheblichen Geschwindigkeitsgewinn bietet, ist es immer noch zu langsam, um eine optimale RISC-Architektur zu realisieren. Deshalb verwenden RISC-Maschinen in der Regel auch einen integrierten Cache (auch bekannt als On-Chip-Cache erwähnt). Dieser befindet sich auf dem Prozessor selbst. Dieser integrierte Cache wird dann üblicherweise in einen Instruktions-Cache und einen Daten-Cache unterteilt.
RISC und CISC: Intel x86-Prozessoren
Die oben genannten Funktionen sind nicht unbedingt auf RISC-Maschinen beschränkt. Sie werden auch in CISC-Maschinen angewendet, um Verbesserungen zu erzielen. Ein Beispiel dafür ist sein Intel x86-Prozessoren.
Beginnend mit dem i486 Bisher hat Intel daran gearbeitet, RISC-Konzepte in seine x86 Prozessoren. Zum Beispiel sind einige häufig verwendete Befehle (wie MOV) beim i486 in der Hardware implementiert und nur die komplexeren Befehle werden durch Mikrocode ausgeführt. Häufig verwenden Compiler für x86-Prozessoren funktionieren diese komplexen Befehle überhaupt nicht, sondern beschränken sich auf die einfachen Befehle, die nicht nur schneller sind, weil sie direkt von der Hardware ausgeführt werden, sondern sich auch besser für das Pipelining eignen.
Das x86 gibt es seit dem i286 ein gewisses Maß an Pipelining, und der i486 verfügt jetzt über eine 5-Stufen-Pipeline. Der i486 hat auch eine Zwischenspeicher8 Kilobyte Speicher im Prozessor integriert.
Siehe auch
- MIPS: ein klassischer RISC-Prozessor
- Pipeline-Architektur
Quellen, Anmerkungen und/oder Verweise
|