Zum Inhalt springen

„Reduced Instruction Set Computer“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Änderung von Shaddim rückgängig WEIL: genau falsch. Compiler werden deutlich _einfacher_ dadurch, dass es nur wenige einfache "Legosteinchen" gibt.
Änderung 129266364 von Arilou rückgängig gemacht; offensichtlich nicht, fehlende komplexe instruktionen müssen subsitutiert werden. unnötige (CISC )befehle kann ein compiler ignorieren, fehlende nicht
Zeile 1: Zeile 1:
{{Weiterleitungshinweis|RISC}}
{{Weiterleitungshinweis|RISC}}


'''Reduced Instruction Set Computer''' ('''RISC''', {{enS}} für ''Rechner mit reduziertem [[Befehlssatz]]'') ist eine Designphilosophie für [[Prozessor|Computerprozessoren]], die einfache [[Maschinensprache|Maschinenbefehle]] bevorzugt. Der Begriff wurde 1980 von [[David A. Patterson]] und [[Carlo H. Séquin]] geprägt.<ref>David A. Patterson, Carlo H. Séquin: RISC I: A Reduced Instruction Set VLSI Computer. (englisch)</ref> Die Beschränkung auf einfache Befehle ermöglicht ein einfaches [[Chipentwurf|Chipdesign]], RISC-Prozessoren können dadurch sehr schnell [[Taktsignal|getaktet]] werden.
'''Reduced Instruction Set Computer''' ('''RISC''', {{enS}} für ''Rechner mit reduziertem [[Befehlssatz]]'') ist eine Designphilosophie für [[Prozessor|Computerprozessoren]], die einfache [[Maschinensprache|Maschinenbefehle]] bevorzugt. Der Begriff wurde 1980 von [[David A. Patterson]] und [[Carlo H. Séquin]] geprägt.<ref>David A. Patterson, Carlo H. Séquin: RISC I: A Reduced Instruction Set VLSI Computer. (englisch)</ref> Die Beschränkung auf einfache Befehle ermöglicht ein einfaches [[Chipentwurf|Chipdesign]], RISC-Prozessoren können dadurch sehr schnell [[Taktsignal|getaktet]] werden. Jedoch steht dieser Vereinfachung in der Hardware ein größerer Aufwand und Komplexität in den Software-[[Compiler]]n gegenüber.


Die RISC entgegengesetzte Designphilosophie wird als [[Complex Instruction Set Computer]] (CISC) bezeichnet.
Die RISC entgegengesetzte Designphilosophie wird als [[Complex Instruction Set Computer]] (CISC) bezeichnet.
Zeile 7: Zeile 7:
== RISC-Designphilosophie ==
== RISC-Designphilosophie ==
{{Quelle|z.B: Das Wort "balancieren" kommt in [[Pipeline (Prozessor)]] nicht vor. --[[Benutzer:Arilou|arilou]] ([[Benutzer Diskussion:Arilou|Diskussion]]) 09:39, 26. Nov. 2012 (CET)}}
{{Quelle|z.B: Das Wort "balancieren" kommt in [[Pipeline (Prozessor)]] nicht vor. --[[Benutzer:Arilou|arilou]] ([[Benutzer Diskussion:Arilou|Diskussion]]) 09:39, 26. Nov. 2012 (CET)}}
Ein RISC-Befehlssatz verzichtet auf komplexe Befehle – insbesondere auf solche, die Speicherzugriffe (langsam) mit arithmetischen Operationen (schnell) kombinieren. Dadurch lassen sich die Stufen der [[Pipeline (Prozessor)|Prozessorpipeline]] gut abstimmen, die Stufen werden kürzer, die Pipeline lässt sich schneller takten und sie ist besser ausgelastet, da weniger „Blockaden“ (''stalls'') auftreten. Einfachere Befehle lassen sich darüber hinaus einheitlicher codieren als bei CISC-Architekturen, was den Dekodieraufwand und damit die Pipelinelatenz weiter verringert. Diese Eigenschaften versprechen effiziente Instruktionsausführung in der Prozessorhardware.
Ein RISC-Befehlssatz verzichtet auf komplexe Befehle – insbesondere auf solche, die Speicherzugriffe (langsam) mit arithmetischen Operationen (schnell) kombinieren. Dadurch lassen sich die Stufen der [[Pipeline (Prozessor)|Prozessorpipeline]] gut abstimmen, die Stufen werden kürzer, die Pipeline lässt sich schneller takten und sie ist besser ausgelastet, da weniger „Blockaden“ (''stalls'') auftreten. Einfachere Befehle lassen sich hinaus einheitlicher codieren als bei CISC-Architekturen, was den Dekodieraufwand und damit die Pipelinelatenz weiter verringert. Diese Eigenschaften versprechen effiziente Instruktionsausführung in der Prozessorhardware. Jedoch steht der reduzierten Komplexität in den Prozessoren ein erhöhter Aufwand und Komplexität in der Software (z.B. [[Compiler]]) gegenüber, die die fehlenden komplexeren Instruktionen aus den vereinfachten CPU-Befehlssätze selbst effizient nachbilden müssen. Dies ist eine Herausforderung für die (statische) Compiler da z.B. diese im Gegensatz zu den CPUs den aktuellen Laufzeitkontext zur Kompilezeit nicht kennen.


Der Befehlssatz von CISC-Prozessoren ist meist in Form von [[Mikroprogrammsteuerwerk|Microcode]] implementiert. Bei RISC-Prozessoren hingegen sind die einzelnen Befehle meist fest verdrahtet.
Bei RISC-Prozessoren sind die einzelnen Befehle fest verdrahtet, der Befehlssatz von CISC-Prozessoren ist dagegen heute meist in Form von [[Mikroprogrammsteuerwerk|Microcode]] implementiert und setzt intern auf RISC-artige Befehle auf, die nicht nicht nach außen sichtbar sind.


== Typische Eigenschaften von RISC-Prozessoren ==
== Typische Eigenschaften von RISC-Prozessoren ==

Version vom 7. April 2014, 08:19 Uhr

Reduced Instruction Set Computer (RISC, englisch für Rechner mit reduziertem Befehlssatz) ist eine Designphilosophie für Computerprozessoren, die einfache Maschinenbefehle bevorzugt. Der Begriff wurde 1980 von David A. Patterson und Carlo H. Séquin geprägt.[1] Die Beschränkung auf einfache Befehle ermöglicht ein einfaches Chipdesign, RISC-Prozessoren können dadurch sehr schnell getaktet werden. Jedoch steht dieser Vereinfachung in der Hardware ein größerer Aufwand und Komplexität in den Software-Compilern gegenüber.

Die RISC entgegengesetzte Designphilosophie wird als Complex Instruction Set Computer (CISC) bezeichnet.

RISC-Designphilosophie

Ein RISC-Befehlssatz verzichtet auf komplexe Befehle – insbesondere auf solche, die Speicherzugriffe (langsam) mit arithmetischen Operationen (schnell) kombinieren. Dadurch lassen sich die Stufen der Prozessorpipeline gut abstimmen, die Stufen werden kürzer, die Pipeline lässt sich schneller takten und sie ist besser ausgelastet, da weniger „Blockaden“ (stalls) auftreten. Einfachere Befehle lassen sich hinaus einheitlicher codieren als bei CISC-Architekturen, was den Dekodieraufwand und damit die Pipelinelatenz weiter verringert. Diese Eigenschaften versprechen effiziente Instruktionsausführung in der Prozessorhardware. Jedoch steht der reduzierten Komplexität in den Prozessoren ein erhöhter Aufwand und Komplexität in der Software (z.B. Compiler) gegenüber, die die fehlenden komplexeren Instruktionen aus den vereinfachten CPU-Befehlssätze selbst effizient nachbilden müssen. Dies ist eine Herausforderung für die (statische) Compiler da z.B. diese im Gegensatz zu den CPUs den aktuellen Laufzeitkontext zur Kompilezeit nicht kennen.

Bei RISC-Prozessoren sind die einzelnen Befehle fest verdrahtet, der Befehlssatz von CISC-Prozessoren ist dagegen heute meist in Form von Microcode implementiert und setzt intern auf RISC-artige Befehle auf, die nicht nicht nach außen sichtbar sind.

Typische Eigenschaften von RISC-Prozessoren

Obwohl es keine formale Definition des Begriffes RISC gibt, besitzt die Mehrheit der RISC-Prozessoren folgende Eigenschaften:

Ein Taktzyklus pro Befehl

Die Befehle sind so einfach gehalten, dass sie direkt (ohne Mikrocode) in einem einzigen Taktzyklus ausgeführt werden können.

Load-Store-Architektur

Bei einer Load-Store-Architektur greifen nur Load- und Store-Befehle auf den Hauptspeicher zu. Alle anderen Befehle arbeiten ausschließlich mit Registeroperanden und Literalen. Diese Load- und Store-Befehle besitzen keine komplexen Adressmodi, stattdessen werden die Adressen in frei verwendbaren Registern berechnet.

Große Anzahl frei verwendbarer Register und Drei-Adress-Code

Um dem Compiler eine effiziente Codeerzeugung und Programmoptimierung zu ermöglichen, haben RISC-Prozessoren eine große Anzahl frei verwendbarer Register (typisch sind 16 oder 32) und Befehle im Drei-Adress-Code. Befehle im Drei-Adress-Code haben ein Ziel- und zwei Quellregister. Der Berkeley-RISC-Prozessor und seine Nachkommen (u. a. Sun SPARC, AMD Am29000 und Intel i960) besitzen zusätzlich Registerfenster, die eine besonders große Anzahl an Registern erlauben und den Aufruf von Unterprogrammen beschleunigen.

Befehle mit fester Länge und wenigen Formaten

Alle Befehle sind gleich lang und es gibt nur wenige Befehlsformate. Das heißt, dass bei fast allen Befehlen die Lage von Opcode, Registeroperanden und Literalen gleich ist, was das Dekodieren wesentlich vereinfacht und damit beschleunigt. Typisch sind 32 Bit breite Befehlsworte und fünf verschiedene Befehlsformate. Erwähnenswerte Ausnahmen sind IBMs ursprünglicher 801, ARMs Thumb und Infineon TriCore. Diese RISC-Architekturen benutzen variable Befehlslängen von 16 und 32 Bit, um so den Programmcode zu verkürzen.

Geschichte

Anfänge

Die Anfänge von RISC reichen bis in die 60er Jahre zurück. Ende der 70er und Anfang der 80er Jahre kamen schließlich mehrere Faktoren zusammen, die zu einer neuen Designphilosophie und einer Welle neuer Prozessordesigns führten:[2][3][4][5][6]

  • Durch die Einführung der Speicherhierarchie aus schnellen Caches und billigem Hauptspeicher wurden die Geschwindigkeitsvorteile der Mikroprogrammspeicher hinfällig.
  • Die Compiler lernten, Programme immer besser zu optimieren, etwa indem die Registervergabe durch Graphfärbung gelöst wurde, durch das Entfernen gemeinsamer Teilausdrücke, durch die Verwendung schnellerer äquivalenter Anweisungen, durch das statische Auswerten von Ausdrücken zur Übersetzungszeit und durch das Entfernen von totem Programmcode. Viele dieser Optimierungen können auf mikroprogrammierten Prozessoren nicht ihr volles Potential ausschöpfen, weil sie nicht direkt auf den internen Mikrocode angewendet werden können.
  • Die immer höhere Integration der Schaltkreise erlaubte es, Prozessoren aus immer mehr integrierten Schaltkreisen herzustellen. Zusammen mit neuen VLSI-CAD-Werkzeugen führte die Integration zu einer deutlich höheren Produktivität, so dass neue Entwicklungen mit relativ wenig Personal möglich wurden. Die kürzeren Entwicklungszyklen erlaubten eine schnelle Evolution der Designphilosophie.
  • Die ARPA, die Forschungsagentur des amerikanischen Verteidigungsministeriums, unterstützte in dieser Zeit gezielt Projekte zur Entwicklung integrierter Schaltkreise, darunter auch das RISC-Projekt in Berkeley, das MIPS-Projekt in Stanford und viele weitere Nachfolgeprojekte.

Wichtige Wegbereiter für RISC waren die CDC 6600 (Seymour Cray und Jim Thornton, 1964) und IBMs ACS-Projekt (Jack Bertram und John Cocke, ab 1963). Einige frühe RISC-Projekte und -Architekten:

Blütezeit

Als nach anfänglichen Zweifeln die Vorteile von RISC offensichtlich wurden, begannen praktisch alle Computerhersteller damit, eigene RISC-Architekturen zu entwickeln:

In der Folge war der Begriff RISC positiv besetzt und wurde in der Werbung inflationär benutzt (u. a. von Intel für den 486). Von Steven A. Przybylski ist folgende ironische Definition von RISC überliefert: „ein Computer, der nach 1985 angekündigt wurde“.

Vergleich zu CISC

RISC-Prozessoren werden auf der Liste der SPEC (Standard Performance Evaluation Corporation) mit den schnellsten Prozessoren weit oben angeführt. Sie werden unter anderem von IBM (IBM POWER und PowerPC-Prozessoren), Renesas (SuperH-Prozessoren), Freescale (PowerPC-Prozessoren), Intel (StrongARM und XScale), MIPS Technologies (MIPS-Architektur) und Sun Microsystems (SPARC) hergestellt. Auch die mittlerweile nicht mehr produzierten Alpha-Prozessoren der Firma Digital Equipment (aufgekauft von Hewlett-Packard) sowie die PA-RISC-Chips von Hewlett-Packard basierten auf dem RISC-Design. (Stand 200x)

Bei aktuellen Großrechnern sind reine/weitgehende RISC-Chips inzwischen jedoch fast vollständig von den Microprozessoren der Intel x86-Linie verdrängt, die einen RISC-Kern mit einer CISC-Emulationsschicht verbinden. Deren Ursprung aus dem erfolgreichen Massenmarkt-Einsatz macht die Kleinserien der Großrechner-RISC-Chips unrentabel. DEC Alpha wurde eingestellt, ebenso HPs PA-RISC, Suns SPARCs werden nicht mehr produziert, PowerPC-Chips fertigt nur noch IBM selbst, Renesas SuperH hat kaum mehr Verbreitung, XScale, MIPS und StrongARM sind in Großrechnern selten oder verschwunden. (Stand 2011)

RISC-Prozessoren bilden das Gegenstück zu CISC-Prozessoren. Heutige RISC-Prozessoren überschreiten die Grenzen der engen Definition und enthalten auch komplexere Befehle. So wurde der Befehlssatz des PowerPC-Prozessors, der von IBM und Freescale (ehem. Motorola) hergestellt wird (und beispielsweise bis zum Wechsel zu Intel-CPUs in den Computern von Apple Verwendung fand), durch eine Befehlserweiterung namens „AltiVec“ ergänzt, die in den PowerPC-Prozessoren spezielle Multimediafähigkeiten nachrüstet (vgl. MMX bei x86-Prozessoren). Allerdings folgt auch AltiVec den RISC-Eigenschaften.

Ende der 1980er-Jahre brachte der britische Hersteller Acorn den Heimcomputer Archimedes auf den Markt, der einen speziell für diese Anwendung konzipierten RISC-Prozessor einsetzte, dessen Leistungsfähigkeit die der damals in Heimcomputern eingesetzten Prozessoren weit in den Schatten stellte. Dieser Prozessor war einer der Stammväter der heutigen ARM-Prozessoren, die in eingebetteten Systemen sehr verbreitet sind.

Praktische Bedeutung – Systeme mit RISC-CPU

  • ARM – Die ARM-Architektur ist in Stückzahlen gemessen wohl die erfolgreichste RISC-Familie, sie findet sich in vielen Systemen,[7] bei denen es um relativ hohe Leistung, geringen Stromverbrauch und niedrige Kosten geht (typisch: 100–500 MHz, Stand 2008). Die ARM Ltd., die diese Systeme konstruiert, baut allerdings selbst keine Prozessoren, sondern verkauft lediglich Lizenzen für das Design an ihre Kunden. Mittlerweile sollen 10 Milliarden ARM-CPUs im Umlauf sein, die z. B. zum Einsatz kommen in Tablets, Digitalkameras, grafikfähigen Taschenrechnern, NAS, Routern, Spielkonsolen, PDAs, Smartphones und verschiedenen Mobiltelefonen. Ein Einsatz für energiesparende Server wird für die nahe bis mittlere Zukunft angestrebt. Deshalb hat ARM erste Pläne für eine 64-Bit-Architektur vorgestellt.[8]
  • Power Architecture – Eine Entwicklung von IBM und Freescale (früher Motorola), ist heute die am weitesten verbreitete RISC-CPU im High-End-Bereich, sie ist eine Architektur mit zahlreichen Einsatzgebieten,[9] angefangen bei leistungsstarken eingebetteten Systemen wie Druckern oder Routern, über Workstations, bis hin zu Supercomputern.
  • MIPS – Anfangs wurden die CPUs vor allem in klassischen Workstations und Servern eingesetzt, heute liegt der Haupteinsatzbereich, ähnlich wie bei ARM, im Bereich Eingebettete Systeme.[10] Praktisch alle MIPS-basierten Workstation- und Server-Familien wurden mittlerweile auf Intel Itanium migriert.
  • Oracles (ehemals Sun Microsystems) SPARC-Produktlinie wurde vor allem in klassischen Workstations und Servern von Sun eingesetzt.[11]
  • Hewlett-Packards PA-RISC – Bis zur Einführung des Intel Itanium wurden PA-RISC-CPUs vor allem in klassischen Workstations und Servern von HP eingesetzt.[12] Die CPU-Familie wird nicht mehr weiterentwickelt. Praktisch alle PA-RISC-basierten Workstation- und Server-Familien wurden mittlerweile auf Intel Itanium migriert.
  • DEC Alpha – Bis zur Einführung der Intel Itanium-CPUs wurden Alpha-CPUs vor allem in klassischen Workstations und Servern von Digital, Compaq und HP eingesetzt. Die Alpha-Plattform war frei verfügbar und wurde von zahlreichen OEM-Partnern genutzt. Die CPU-Familie wird nicht mehr weiterentwickelt. Praktisch alle Alpha-basierten Workstation- und Server-Familien wurden mittlerweile auf Intel Itanium migriert.
  • Hitachis SuperH, war weit verbreitet z. B. in Segas Super 32X-, Saturn- und Dreamcast-Konsolen. SuperH wird heute ähnlich wie die ARM-Plattform hauptsächlich in eingebetteten Systemen eingesetzt.
  • Atmel AVR wird in eingebetteten Systemen eingesetzt, wie z. B. Xbox-Steuerkontrollern, aber auch in BMW-Automobilen.
  • Das OpenRISC-Projekt greift die Philosophie freier Hardware auf. Ziel des Projektes ist es, ein 32-Bit-Ein-Chip-System zu erstellen, auf dem Linux läuft und das – im Sinne freier Software – frei verfügbar ist.[13]

Einzelnachweise und Anmerkungen

  1. David A. Patterson, Carlo H. Séquin: RISC I: A Reduced Instruction Set VLSI Computer. (englisch)
  2. George Radin: The 801 Minicomputer, 1976. (englisch)
  3. David A. Patterson, David R. Ditzel: The Case for the Reduced Instruction Set Computer, 1980. (englisch)
  4. David A. Patterson: Reduced Instruction Set Computers, 1985. (englisch)
  5. John Cocke, Victoria Markstein: The Evolution of RISC Technology at IBM, 1990. (englisch)
  6. Mitch Alsup: Motorola's 88000 Family Architecture, 1990. (englisch)
  7. ARM-Beispiele:
  8. Heise Online: ARM bläst zum Angriff auf 64-Bit-Server
  9. PowerPC Beispiele:
    • Apple: PowerPC-basierte Macintosh Computer
    • Cisco: Router und Switches für den kommerziellen Einsatz bis zur Enterprise-Klasse
    • IBM: Supercomputer, Mittelklasse-Server und Workstations
    • Nintendo: Gamecube und Wii Spielkonsolen
    • Microsoft: Xbox 360 Spielkonsole
    • Motorola: verschiedene Bordcomputer für PKW und andere Fahrzeuge
  10. MIPS-Beispiele:
  11. SPARC-Beispiele:
    • K_Computer japanischer Supercomputer
    • Fujitsu Supercomputer, Mittelklasseserver und Workstations
    • Sun: Supercomputer, Mittelklasseserver und Workstations
  12. PA-RISC-Beispiele:
    • Hewlett-Packard: Supercomputer, Mittelklasse-Server und Workstations, aber auch Grafikkarten
    • Hitachi: Workstations
    • Stratus: Stratus-Continuum-Serie, höchstverfügbare Supercomputer
  13. OpenCore - OpenRISC – Artikel bei PPCNUX, vom 28. Juni 2011