| Home | Computer | Hardware | Site Map |
Üblicherweise werden diese Befehle durch Mikrocode realisiert. Das ist eine Zerlegung der Befehle in kleinere Einheiten, eine Art "Interpreter" auf der CPU. Bei modernen CPUs ist dieser Mikrocode sogar noch änderbar, wodurch der Hersteller Bugfixes einspielen kann.
Wenn eine CPU weiterentwickelt wird, kommt es oft vor das sie immer mehr in Richtung CISC wandert. Der Grund ist relativ einfach. Man hat mit fortschreitender Zeit die Technologie, immer mehr Transistoren auf einem Chip zu integrieren. So hatte die erste 8086 CPU 29.000 Transistoren und ein Pentium 4 verfügt über 42 Millionen. Diese Möglichkeit wird fast immer genutzt um neue Befehle zu integrieren, die z.B. das Programmieren erleichtern. Dadurch wird aber das gesamte Design komplexer was CISC ausmacht.
Weitere Merkmale sind mächtige Befehle: Beim 8086 z.B. Stringbefehle die eine gesamte Zeichenkette mit einem Befehl kopieren oder die Möglichkeit nur Teile der Register zu benutzen, bei einem 32 Bit Prozessor also z.B. auch mit 8 Bit oder 16 Bit breiten Zahlen zu arbeiten und ein Register in 2 Hälften zu spalten wie beim 8086 z.B. das AX Register in 2 8 Bit Register AH und AL.
Auch bei den Großrechnern früherer Tage war oft die CISC Architektur vorherrschend: Man war der Überzeugung je "mächtiger" die Befehle einer CPU sind um so schneller diese und um so weniger Speicherplatz benötigt der Code. (Speicherplatz war schon immer knapp). Ein prinzipieller Nachteil von CISC ist, das es in der Regel nicht möglich ist viele Register zu verwenden. Register sind Speicherplätze in der CPU und der schnellste Speicher den eine CPU adressieren kann. Die kleine Anzahl liegt daran, das bei den meisten Befehlen auch das Register auf das er wirkt, mit einkodiert wird. Je mehr Register man hat desto weniger Befehle kann man realisieren. Sehr oft gab es dann Zwischenlösungen wie Befehle die nur mit bestimmten Registern arbeiteten.
Es war die
Cyber 6600, der erste Supercomputer des legendären Computerbauers Seymour Cray. Die Cyber war
darauf getrimmt schnell zu sein - Sie schaffte bei ihrer Einführung 1965 schon stolze 9
Megaflops. Die Cyber war ein Computer mit einer Arbeitsbreite von 60 Bit. Ein Byte waren damals
nur 6 Bits. Mit einem Adressraum von 18 Bit (256 KByte). (Mehr Adressraum wäre auch nicht von
Vorteil gewesen, denn Ringkernspeicher, die damals übliche Technik waren keine kleinen Chips
sondern 5 × 5 cm große Module mit max. 1024 kleinen Eisenringen. So braucht Speicher viel Platz).
Zur Verfügung standen 16 Register zum Adressieren (18 Bit Breite) und ganze 60 Datenregister à 60
Bit. Die Cyber nahm mit 2 Recheneinheiten schon das vorweg, was der Pentium erst 30 Jahre später
schaffte: Das Pipelining von 2 Recheneinheiten, im Gegensatz
zum Pentium waren aber diese unabhängig voneinander. Dafür hatte die CDC 6600 nur 64
Maschinenbefehle - genau so viele wie in ein Byte von 6 Bits passten. Zum Vergleich der 8086
hatte 90 Maschinenbefehle und seitdem sind viele weitere hinzugekommen.
Um maximale Performance zu schaffen, hatten alle Befehle ein einheitliches Format: Eine Länge von 15 oder 30 Bit, zusammen mit einem Halben Datenwort von 30 Bit. So hatten alle Befehle eine einheitliche Länge von 60 Bit. Der Lohn war die Geschwindigkeit. IBMs Standardmodell IBM 360 erreichte zur gleichen Zeit nur 330 KFlops, die Cyber 6600 war also nahezu 30 mal schneller als ein "normaler" Großrechner.
Obgleich die Cyber sehr erfolgreich war und die Basis für Seymour Crays spätere Supercomputer war, inspirierte sich keine anderen Computer dieser Zeit. Bei den üblichen Großrechnern blieb man lieber bei CISC.
1975, West Coast
Computer Messe (WSCOM). Um einen Stand der kleinen Firma "MOS Industries" herrscht Andrang. Die
Firma bietet in einem durchsichtigen Gefäß ihren neuen Mikroprozessor 6502 an - nichts neues so
scheint es, es gibt bereits die Typen 8080 von Intel, 6800 von Motorola und RCA 1802. Doch eines
war neu: Der Preis der neue Prozessor wurde für 25 USD angeboten, während der Preis des 8080 bei
175 USD liegt. Jeder kaufte einen Prozessor, am Ende des ersten Tages war das Gefäß leer.
Auf dem 6502 entstanden später eine Reihe von Computern die Geschichte machten - Der Apple II, der C64 oder die Atari VCS 2600 Spielkonsole. Aber auch auf dem 8080 Nachfolger Z80 entstanden viele Rechner - Der Schneider CPC, Tandy TRS-80, der Sinclair ZX-81 oder Spektrum. Beide Architekturen waren erfolgreich, obwohl Sie nicht verschiedener hätten sein können. Der 8080 war schon ein typischer CISC Vertreter. Aber der Z80, den ein ehemaliges INTEL Entwicklungsteam baute, toppte ihn leicht.
Der 8080 hatte einen Akkumulator (A) und 6 mal 8 Bit Register (B,C,D,E,H,L) die zusammen zu 16 Bit Registern (BC, DE, HL) geschaltet werden konnten. Dazu kam der 16 Bit Stackpointer und der Programmzähler. Speicheroperationen gingen beim 8080 nur übers HL Register, dafür bot dieses auch 16 Bit Operationen wie Addition und Subtraktion. Der Z80 erweiterte das Design des 8080. Er führte einen zweiten Registersatz ein, dazu zwei neue Register IX und IY, die für Indexoperationen benutzt wurden. Die BC und DE Register wurden genauso tauglich wie das HL Register für Speicheroperationen und 16 Bit Rechnungen, dazu kamen eine Fülle von Befehlen - Für Blockoperationen, In/Out, Bitweise Rotation / Verschiebung. Aus den 57 Befehlen des 8080 machte der Z80 über 134! Das kostete aber Zeit beim Dekodieren. Ein Befehl konnte zwischen einem und 5 Byte lang sein. Die Ausführung dauerte zwischen 4 und 28 Takten.
Wie einfach war
dagegen das Design des 6502, nur 3 Register à 8 Bit, sogar nur ein 8 Bit Stackpointer. Der Stack
lag fest zwischen Adresse 256 und 511 und über die Indexregister konnte man die Adressen 0 bis
255 ansprechen (und darüber das restliche RAM). Man konnte aber diese 256 Byte RAM auch als 256
zusätzliche Register ansehen, denn bei Erscheinen des 6502 war RAM schneller als
Mikroprozessoren. Zudem waren die Befehle schnell zu dekodieren - in 1-2 Takten, da der 6502
sowohl aufsteigende wie absteigende Flanke des Taktsignals nutzte (so konnte man die Taktfrequenz
im Vergleich zu einem 8080 oder Z80 schon halbieren).
So verschieden die Designs waren, in der Realität waren beide erfolgreich. Zwar war der MOS 6502 schneller als ein Z80 bei gleicher Taktfrequenz, (er übertrug pro Flanke ein Byte vom Speicher, anstatt einmal pro Takt), aber das glich sich dadurch aus, das dieser meist zwischen 1-2 MHz lief, während der Z80 3-4 MHz aufwies. Ab 1983 wurden noch schnellere Z80 Versionen herausgebracht die bis 10 MHz gingen. Diese Entwicklung war beim 6502 nicht möglich, da er zwingend auf das schnelle RAM angewiesen war. Dafür war ein 6502 immer ein Stück preiswerter, weil er einfacher herzustellen war.
Der wohl radikalste Ansatz von RISC im 8 Bit Zeitalter war der relativ selten eingesetzte RCA 1802. Mit nur 16 Befehlen war der Prozessor ausgestattet, lief dafür schon 1975 mit 6 MHz, während der 6502 mit einem und der 8080 mit 2.5 MHz eingeführt wurden. Er spielte auf dem Heimcomputermarkt keine Rolle, steckt dafür aber in zahlreichen Raumsonden. Da er technisch sehr robust und wenig anfällig gegenüber statischer Elektrizität war.
Der Intel 8086 ist ebenfalls ein typischer Vertreter von CISC. Er wurde im IBM PC
verwendetet. Die Rechenleistung der x86 Architektur galt spätestens ab 1986, als mit dem Intel
386 man zur Konkurrenz aufschloss, als das Maß der Dinge. Grund
für das CISC Design war, dass man um Entwicklungskosten und Zeit zu sparen man das 8080 Design
aufgebläht hatte. Dadurch hatte der x86 einige Macken die, seine Architektur komplex machten. Die
wichtigste war, das er direkt nur 3 Segmente (Code, Daten und Stack) à 64 K ansprechen konnte,
diese Fenster wurden in einem Adressraum von 1 Megabyte verschoben. Als man später mit dem 286 er
die Architektur erweiterte auf volle 16 MB Adressraum und mit dem 386 auf 4 GB und 32 Bit, blieb
die alte "Real Mode", aber immer noch erhalten als zusätzlicher Modus. Zudem konnte man nicht
einfach neue Register einführen, obwohl der Befehlssatz der x86 Serie im Laufe der Zeit erweitert
wurde.
Die Konkurrenz musste sehen, wie die x86 Rechner immer größere Marktanteile einnahmen. Mit der weiten Verbreitung hatte Intel zwei Trümpfe in der Hand: Sie verdienten mehr durch die größere Stückzahl und die Entwicklungskosten verteilten sich auf mehr Chips. Doch andere Hersteller hatten auch die Chance neue Wege zu gehen, sie waren nicht unbedingt aus sklavische Abwärtskompatibilität angewiesen.
Dies war
die Renaissance von RISC. Ende der 80 er Jahre bauten nahezu alle Hersteller RISC Prozessoren.
Das gemeinsame Merkmal waren: Wenige, schnell zu dekodierende Befehle, einheitliches
Befehlsformat und schnelle Dekodierung. Die einzelnen Konzepte waren durchaus unterschiedlich.
RISC war auch eine Möglichkeit mit relativ wenigen Transistoren eine sehr hohe Rechenleistung zu
erreichen. Dies war wichtig für Hersteller denen im Prozessormarkt von Intel immer mehr
Marktanteile entzogen wurden. Motorola erschuf zusammen mit Apple und IBM den Power PC Chip. Der Chip hatte dadurch sehr unterschiedliche
Anforderungen zu erfüllen: Apple und Motorola wollten einen Nachfolger für die in die Jahre
gekommene 68000 Serie, so konnte dieser deren Befehle emulieren. IBM wollte aber gleichzeitig
einen schnellen Prozessor für Minicomputer und sogar Großrechner. Der Power PC ist sehr
erfolgreich und hat seit 1993 schon die vierte Generation erlebt. Erst mit dieser ist die
Einführung eines Passivkühlers notwendig geworden bei sonst ähnlicher Rechenleistung wie ein
Pentium Pendant (aber immer etwas niedrigerem Takt).
Eine
traurige Rolle spielte der ARM Prozessor. Die meisten neuen RISC Prozessoren waren gedacht für
Workstations. Doch Acorn - eine in England bekannte Firma, brachte 1988 einen PC mit diesem
Prozessor heraus, der es mit einem 386 er aufnehmen konnte - zu einem Bruchteil der Kosten. Doch
es fehlte der Firma an Bekanntheit um dieses Gerät, den Archimedes zu etablieren. ARM hat die
Zeichen der Zeit erkannt und den ARM Prozessor als Mikrocontroller erfolgreich gemacht. ARM
Prozessoren haben im 32 Bit Mikrocontroller Bereich einen Marktanteil von 70 % und werden in
Lizenz von zahlreichen Unternehmen - sogar von Intel gefertigt. Die meisten PDAs mit Windows CE
benutzen diesen Prozessor, da er schnell und stromsparend ist.
Sun läutete mit der Sun 4 und dem SPARC Prozessor 1987 als erste Firma den Wechsel ein. Der SPARC hatte in der ersten Version nur 55.000 Transistoren, aber eine höhere Geschwindigkeit als ein 386 er mit 275.000 Transistoren. Spezielle Features machten vor allem die Hochsprachenprogrammierung auf diesem Prozessor schnell. Bald zogen andere Workstation Hersteller nach wie MIPS oder DEC mit dem Alpha, der bis heute die Krone in der Geschwindigkeit hält. Eine Besonderheit waren die Transputer Prozessoren von INMOS. Mehrere dieser Prozessoren konnten zusammengeschaltet werden und parallel an einem Problem arbeiten. Die Abbildung der zeitgleich erschienen Prozessoren Intel 80386 und INMOS T400 zeigt auf dem Prozessor Die Unterschiede zwischen CISC und RISC: Große gleichförmige Felder beim T400 mit viel internen Registern und 1 KByte Cache on Board und "rauhe" wirkende Felder beim 80386, mit Logikfunktionen die erheblich mehr Transistoren erfordern. Der INMOS T400 war trotz geringerer Integrationsdichte schneller als der 80386.
CISC Prozessoren haben nun folgende Strategie: Das Dekodieren dauert hier länger, da der Code kein einheitliches Format hat, dafür sehr kurz ist (geringerer Speicherzugriff). Als Ausgleich können die Befehle mehr, so dass weniger ausgeführt werden müssen. Viele Register sind wegen der Forderung nach kurzem Code nicht möglich. Die komplexen Befehle werden im Chip in einfachere Instruktionen zerlegt. Dafür gibt es Mikrocode - ein ROM auf dem Chip. Auch die einzelnen Funktionseinheiten sind sehr mächtig, z.B. indem es Hardware Multipliziereinheiten gibt, die zwar schnell sind, aber auch viele Transistoren benötigen.
RISC versucht die Speicherzugriffe auf zwei Weisen zu minimieren:
Aber das ganze hat auch eine Kehrseite. Denn nun stehen zwei Dinge fest: Erstens: Das erste Byte ist immer ein Befehl, und das zweite ein Register, man kann diese automatisch dekodieren. Man muss sich keine Gedanken machen, wie bei CISC was im zweiten Byte stecken könnte. Nach dem Dekodieren des Befehles weiß man auch sofort was in den anderen Bytes steckt.
Der wichtigere Vorteil aber: Der nächste Befehl fängt garantiert 6 Bytes weiter an. Warum ist dies wichtig? Nun etwa zeitgleich mit RISC setzte man Pipelines in Mikroprozessoren ein. Pipelines holen die Daten und fangen schon mal an zu dekodieren. Die Länge einer Pipeline gibt man in Stufen an. Eine 5 stufige Pipeline wie sie der 486 Prozessor hat, z.B. 5 Befehle in unterschiedlichen Stadien der Dekodierung im "Fluss". Wenn nun die Ausführungszeit des einfachsten Befehls 5 Takte beträgt, so kann eine solche Pipeline bei jedem Takt einen Befehl dekodiert anbieten und so die Performance steigern.
CISC Prozessoren müssen sich viel einfallen lassen, um die verschiedenen Kombinationsmöglichkeiten in einer Pipeline zu dekodieren. Die Pipelines sind dort lang, weil es so viele Möglichkeiten gibt und man deswegen mehr Stufen braucht. RISC Prozessoren wissen dagegen genau wo der nächste Befehl beginnt und können mehr automatisieren. Die Pipeline ist kürzer. Das ist von Vorteil wenn ein Sprung im Programm kommt, denn dann stimmen alle Daten in der Pipeline nicht mehr.
Die Forderung nach einfachen Befehlen erwächst auch hieraus: Das schnelle Dekodieren der Befehle im "Fließband" hat nur einen Vorteil, wenn auch die Befehle schnell ausgeführt werden, denn sonst hat man nichts von dem Geschwindigkeitsvorteil. Daher gibt es nur elementare Befehle die idealerweise in einem Takt ausgeführt werden.
Den
Endverbraucher interessiert das "was hinten rauskommt" um einen Bundeskanzler zu zitieren. Was
nützt es wenn ein Power PC mit 450 MHz und passivem Kühler genauso schnell ist wie ein Pentium
III (Bild links) mit 700 MHz und aufwendigem Kühler? Solange ein PC billiger als ein Mac ist,
weil er viel häufiger hergestellt wird geht die Rechnung zugunsten des PC auf. Und Intels
Prozessoren können mithalten, anstatt den Prozessorcode zu verändern steigerte man Taktfrequenz,
integrierte L1 und L2 Cache in den Kern um die Geschwindigkeit zu steigern. Dafür hat Intel
zusammen mit HP's PA Serie die Krone was Transistoren pro Chip betrifft: Niemand treibt soviel
Aufwand um eine bestimmte Rechenleistung zu erreichen.
Zum anderen gibt es heute die Trennung CISC und RISC nicht mehr. Intels erster 64 Bit Prozessor Itanium hat Anleihen an RISC gemacht. Die RISC Prozessoren wurden mit der Weiterentwicklung auch komplexer und nähern sich CISC. Schlussendlich aber gibt es die CISC Architektur des x86 Prozessors nicht mehr...
Bei Intel hat sich seit dem 486 einiges getan. Der 486 kam 1989 raus und zeigte, das die x86 Architektur so langsam am Ende war. Durch eine 5 stufige Pipeline konnte man nun 80 % der Befehle in einem Taktzyklus ausführen - schneller ging es mit der x86 Architektur nicht, trotzdem war der 486 nur zirka 60 % schneller als ein 386 und lange Zeit zu teuer. Erst 1993 konnten die Verkäufe die des 386 überflügeln, wobei Intel noch geärgert haben dürfte, das vorher AMD mit der 40 MHz Version des 386 (Intel hatte nur eine 33 MHz Version), das große Geschäft machte.
Kurzum: der 486 Nachfolger Pentium musste kompatibel sein, aber neu sein. Was Intel machte war folgendes: Nach dem Dekodieren der Befehle werden diese in einfachere RISC Befehle übersetzt, umgruppiert und zwei Rechenwerken die reine RISC Maschinen sind, zugeführt. Seit dem Pentium Pro ist dies so und ein Pentium 4 ist im Prinzip ein guter x86 Emulator... Eine x86 Instruktion kann dabei nur eine aber auch 3 oder 4 einfache RISC Operationen umfassen. Dabei sind diese relativ lang, beim Pentium III 118 Bit. Beim Pentium 4 wahrscheinlich nur etwa die Hälfte.
Bei dem Umsetzen in RISC Befehle blieben gab es allerdings ab und zu Fehler, was für schöne Aufregung sorgte. Alle Konkurrenten (AMD, Cyrix, IDT) machen es ähnlich, nur natürlich nicht identisch. So waren Taktgeschwindigkeiten Makulatur, weil jeder eine andere RISC Maschine einsetzte.
Mit dem neuen 64 Bit Itanium Prozessor wird auch bei Intel eine RISC Einheit mit 128 Registern einziehen. Der neue 64 Bit Modus ist eine richtige RISC Architektur mit konstanter Befehlsbreite von 41 Bit, wobei zur Optimierung 3 Befehle zu einem 128 Bit Doppelwort zusammengefasst werden - Der Compiler und nicht der Prozessor soll in den verbleibenden 5 Bits Informationen über die Abhängigkeit der Befehle speichern. Dadurch will man die aufwendige spekulative Ausführung und Umgruppierung der x86 Serie erleichtern.
Noch immer allerdings sind klassische RISC Prozessoren wie der Alpha oder Ultrasparc in der Performance führend, wie folgende Tabelle zeigt:
| Prozessor | Takt (MHz) | SPEC fp_Base 2000 | pro MHz |
| Pentium III | 1080 | 1824 | 1.689 |
| Athlon | 1333 | 2672 | 2.004 |
| Pentium 4 | 1700 | 3456 | 2.033 |
| Ultrasparc III | 900 | 3760 | 4.178 |
| Alpha 21264A | 833 | 4121 | 4.947 |
Nur durch den doppelt so hohen Takt kann der Pentium annähern mithalten. Da allerdings dieser sehr rasant angestiegen ist, ist abzusehen, das in den nächsten Jahren die Intel Prozessoren auch die absolute Geschwindigkeitskrone holen werden. Man muss allerdings auch dazu sagen, dass dieser Benchmark nur die Rechengeschwindigkeit angibt. Die meisten Prozessoren die hier auftauchen arbeiten aber als Server Prozessoren. Hier geht es um das schnelle Schaufeln von Daten. Hier sind Prozessoren im Vorteil die dicke Datenbusse schnell an die CPU angebunden haben. So erreichen die Power PC 4 Prozessoren von IBM hier sehr gute Werte, während ein Pentium 4 hier durch einen 16 bittigen RAMBUS sehr alt aussieht. Nicht umsonst fertigt Intel separate Server Prozessoren und Chipsätze für Server, die dann schon mal mehr kosten als 2 normale PCs (nur Prozessor und Mainboard...).
| Kontakt | Neues | Bücher vom Autor | Buchempfehlungen | Gästebuch |
|
|