Ich hatte die Chance einen Tag mit einem RS6000 System zu verbringen. Das kam dabei raus.
Hallo wie immer!
Allgemein ist es so,daß (ich benutzte ab jetzt Umlaute und sz und hoffe, daß jeder Comp damit umgehen kann) jeder Computer einen Prozessor hat und dieser Prozessor ist von der Firma xyz. Ganz normal eben. Naja nicht hanz normal..denn eine CPU von der Firma xyz zu benutzen ist eigentl. gar nicht so lange üblich. Richtig los ging es eigentlich erst mit der ganzen Geschichte seit CP/M, als es also wichtig war ob da nun ein 8080 oder ein Z80 drinne ist. Vorher, also als die Rechner noch gerade Platz für den Fermseher im Wohnzimmer ließen, kam der Prozessor daher woher auch der Computer kam. Ich denke da vor allem an die VAXn, IBM/360 etc.. Der genaze Sermon gilt eigentlich nur als Einleitung zur jetzigen Mail- Serie….Die IBM/6000 (mit einer kleinen Tendenz zur Farge: Ist die IBM /6000 eine RISC Maschiene?)
Zur CeBit ’90 war sie da..die 6000’er Familie, vom kleinen gerade mal zwei PS/2 Rechner hohem Desktop bis zum ca.1.70m hohen und gut 1m breiten Schrank. Als weitere Neuerung wurde angepriesen, daß das Teil nicht nur abgeht wie d’zau (hallo 7-up Treffler), sondern auch vollkommen für UNIX bzw. AIX konzeptioniert sei….und ein gaaanz toller RISC Rechner! Ich konnte mir das Lächeln nicht verkneifen,als ich die IBM’sche Definition von RISC hörte: RISC bedeutet in Blau nämlich “Reduced Instruction Set Cycles”. Um das Maß voll zu machen heißt das Ding dann RISC Rechener der zweiten Generation. Danach zu urteilen ist dann also auch der 68040 ein RISC Prozessor und nicht die “Rache der CISC”,wie es in der Byte hieß. Um die “Auseinandersetzung” zwischen RISC und CISC ver- stehen zu können sollte man sich die Ziele und Randbedingungen ins Gedächtniss rufen (bzw. “Über RISC / *” lesen).
Die Frage ist nun: Ist die IBM/6000 eine RISC Maschine? Vergleicht man sie mit den wichtigsten RISC-Architekturen, wie SUN’s SPARC, dem R3000 von MIPS, dem 88000 von Motorola oder Intels 860, dann fallen viele Gemeinsamkeiten auf:
* kein Mikrocode
* eine Lode & Store Architektur mit Registerarithmetik
* einfche Instruktionsformate (32 Bit)
* eine tiefe Instruktions Pipeline
* eine Speicherhirachie mit Instruktions- und Datencache sowie
* optimierende Compiler
doch gibt es auch Unterschiede wie
* Bei der Allokation der Register gibt es unterschiedliche Ansätze: Der Stanford-Ansatz verwendet (nur) 32 allgemeine 32Bit Register und optimiert mit der scoreboarding Technik des Compilers. Der Berkley-Ansatz findet sich im SPARC und verwendet Registerfenster: stets einen Ausschnitt von 32 Registern aus einem großen Registersatz von z.B. 192. Wieder anders der AMD29k, welcher seinen großen Registervorrat als Stack verwaltet. IBM folgt hier dem Stanford-Ansatz, wie der R3000 oder der 88000.
* Nicht alle RISC Prozessoren haben einen so kleinen Instruktionssatz wie der R3000 (77), aber kaum eine RISC Architektur bietet mehr als 100 Instruktionen. Manche Hersteller haben spezielle Erweiterungen vorgesehen und zeilen damit auf einen speziellen Markt: der i860 hat spezielle Grafikbefehle, der SPARC hat eine TAG-Arithmetik, wie sie für KI gebraucht wird und der 88000 wurde um Befehle zu Bitmanipulation erweitert. Die Erweiterungen beim /6000 sind aber besonders umfangreich: so gibt es fünf spezielle String-Operationen, und viele der 184 Instruktionen kombinieren mehrere Befehle anderer Architekturen in einem Befehl, so z.B. multipliziere zwei Operanden, addiere das Ergebnis zu einem dritten und speichere es in den vierten.
* RISC Architekturen, die mehrere Instruktionen (nicht nur Teile davon) gleichzeitig ausführen können, heißen Superskalar. Diese Eigenschaft wird von der Werbung des i860 stark betont, wenn Maximalraten von 66MFLOPs angegeben werden- ein Linpack Durchsatz von 10MFLOPs inst allerdings realistischer. Auch der /6000 ist superskalar: Bis zu vier Instruktionen können pro Zyklus abgearbeitet werden: Eine Fixpunktoperation in dem FXU- Chip (Fixed point eXecution Unit), eine Gleitkommaoperation in dem FPU- Chip, eine Konditions- und eine Verzweigungsoperation im ICU-Chip (Instruction Cachig and branch processing Unit).
* Eine kombinierte Multiply/Add-Gleitkommaoperation in einem Zyklus aus- führen zu können unterscheidet die IBM/6000 Serie deutlich von anderen RISC Architekturen (der ersten Generation). So werden im Linpack (100×100) DP Benchmark mit 14MFLOPs Leistungswerte erreicht, die manchen Großrechner schlagen.
* Erstmals wird in einem RISC Rechner das Konzept eines “Zero-Cycle Branching” realisiert, um dem Problem der blockierten instruktion Pipeline beizukommen. Der ICU-Chip enthält einen 8K großen Cahce für die nächsten Insruktionen, in den 2 Instruktionen pro Zyklus nachgeladen werden können. Die Instruktionen werden auf Vergleichs- und Verzweigungsoperationen hin analysiert (wie beim 68040). Wo möglich werden diese Operationen ausgeführt, bevor ein Strom von jeweils einer Fixkomma- und einer Gleit- kommaoperation den ICU-Chip verläßt. Wie erfolgreich diese Strategie ist, lässt sich am Dhrystone 1.1 ablesen: von den 83 Verzweigungen verursachen nur noch 20 eine Verzögerung von insges. 41 Zyklen. Das bedeutet, daß Verzweigungen mit einer Rate von 41/83 = 0,49 Zyklen pro Instruktion ausgeführt werden.
* Auch bei der virtuellen Adressierung werden neue Wege beschritten. Ähnlich wie bei anderen RISC-Chips werden 12 Bits (Bit 20-31) als Index innerhalb der 4K Seiten verwendet. Die anderen 20 Bits der realen Speicheradresse spezifiziern eine der (1024^2) möglichen (realen) Seiten. Der virtuelle Adressraum ist erheblich größer als bei anderen RISC Rechenern: 4 Petabytes, eine 16 Stellige Zahl. Die führenden 4 Bits der effektiven Adresse selektieren ein Segmentregister, das eine 24 Bit Adresse enhält, die mit den verbleibenden 16 Bits zusammengefügt eine 40 Bit lange virtuelle Adresse einer Seite ergibt. D.h. jeder Prozeß kann (1024^4) Seiten unterscheiden. Genug, um auch verteilte Prozesse in Netzen mit tausenden Prozessoren zu handhaben.
EINSCHÄTZUNG/FAZIT: Der auffälligste Unterschied zwischen der /6000-Architektur und anderen wichtigen RISC-Architekturen wie SPARC,MIPS oder 29k besteht im Aufwand, der getrieben wurde: so hat der R3000 und die FPU R3010 jeweils weniger als 300K Transistoren und die 64K Cache wurden aus standart SRAM-Chips aufgebaut. Bei der /6000 wurde dagegen an nichts gespart: Die kleinere konfiguration mit 2 DCUs hat einen “Silikonverbrauch” von 5 161 000 Transistoren (was Brigitte Nielsen doch sehr nahe kommt!) und die größere mit 4 DCUs von 7 425 000. Das deutet auf eine teure Lösung hin. Anders etwa bei SPARC etc. wo ein gutes Preis/Leistungsverhältnis dadurch erreicht wird, daß wenig Spezialsilikon eine hohe Listung ergibt. Ganz abgesehem davon, daß die hohen Entwicklungskosten kleinere Firmen davon abhalten, IBMs Weg zu beschreiten, verbaut man sich so Wege in die Zukunft:
* Ein großer Markt für RISC wird in den Conrollern für Drucker und anderen Geräten gesehen. Hier spielen Aufwand und Kosten der Chips eine größere Rolle als bei den Workstations, und ich vermute, daß die /6000er Chips hier nicht zum Einsatz kommen werden.
* Ein möglicher Weg zu größeren Leistungen zu kommen, besteht in größeren Taktraten, die neue Technologien wie Bipolar ECL oder Gallium-Arsenide bieten. Chips mit derart hohen Transistorzahl können erst viel später migrieren. Daher wird es ECL versionen wie der MIPS R6000 mit 60 MIPS bei der /6000er Serie nicht so schnell geben.
Ansonsten läßt sich aber feststellen, daß IBM die Entwicklung in Richtung i860 (1 200 000 Transistoren) weitergetrieben hat und daß derart leistungsfähige Workstations, “verziert” mit IBMs Markenschild, wohl nur erfolgreich sein können. Noch eine kleine Auflistung des “Silizium Verbrauchs” zum guten Schluß:
ICU Instr.Cache & branch processing Unit 750 000 Transistoren
FXU Fixed point instr. eXecution Unit 492 000 Transistoren
FPU Floating Point Unit 415 000 Transistoren
DCU Data Cache Unit (2 oder 4) 1 132 000 Transistoren SCU
Storage Control Unit 224 000 Transistoren
IOU I/O Unit (2) 508 000 Transistoren
Ne menge Schotter was?!
mfg AXEL