Home Computer Hardware Site Map counter

Supercomputer und PCs Teil 1

Ich habe bei den Recherchen zu meinem Artikel über die Geschichte des PC einem Aufsatz aus dem Jahre 1983 gefunden, der die Architektur von Supercomputern am Beispiel eines Siemens Großrechners beschreibt. In diesem Artikel vertritt der Autor dass Resümee, dass vieles davon über kurz oder lang auch in jedem normalen PC zu finden sein wird. Ich habe diesen Artikel zum Anlass genommen, die dort beschriebene Architekturen mit der eines heutigen PCs zu vergleichen und wage gleichzeitig einem Ausblick wie wohl die heutige Architektur von Großrechnern und Supercomputern sich in zukünftigen PCs widerspiegeln wird.

Der Artikel ist sehr umfangreich und beschäftigt sich in Teil 1 um die Übernahme von breiten Datenbusen, größeren Adressbereichen, Caches, Pipelines und das Softwareproblem bei den PCs. Diese Entwicklungen repräsentieren die achtziger Jahre. In dem Teil 2 des Artikels geht es um die in den neunziger Jahren gemachten Modernisierungen des klassischen Prozessorkonzept zum modernen PC: Superskalarität, VLIW, SIMD, Multitasking und Clusterung.

Adressbus und Datenbus

IBM System 360 Der beschriebene Großrechner verfügte über eine Verarbeitungsbreite von 64 Bit. Natürlich ist durch die größere Anzahl an Bits, die gleichzeitig verarbeitet werden eine höhere Geschwindigkeit möglich, als bei den damals verbreiteten 8 und 16 Bit Rechnern. Dabei muss man allerdings unterscheiden zwischen der Datenmenge die ein Prozessor verarbeitet und der Breite des Datenbusses. Zum Beispiel sind die Intel Pentium (2,3,4...) Prozessoren 32 Bit Prozessoren, haben aber einen 64 Bit Datenbus. Je breiter dieser ist, desto mehr Daten kann der Prozessor auf einmal holen, desto mehr "Bandbreite" verfügt er. Die Folge: Die Geschwindigkeit der RAMs ist nicht so wichtig.

Ein weiterer Unterschied zu den heutigen Prozessoren ist die enorme Breite des Datenbusses des vorgestellten Siemens Großrechners. Dieser betrug 208 Bit. Die ungerade Zahl resultiert daraus, dass man den Prozessor mit der damaligen Technologie nicht in einzelnen Chip unterbringen konnte. Vielmehr bestand die CPU aus einem Schrank mit Platinen, die zusammen die CPU ergaben. Auf einer Platine waren jeweils maximal 121 Chips untergebracht. 20 Platinen ergaben den Prozessor. Jeder Chip verarbeitete nur 2 bis 4, Bit, da maximal 400 logische Gatter auf einem Chip untergebracht werden konnten. Die volle Breite von 64 beziehungsweise 208 Bit resultierte aus dem Verarbeiten sehr vieler kleiner Einheiten von 2 oder 4 Bit. Der Grund für diese Breite besteht natürlich darin, dass damit mehr Informationen zwischen den einzelnen Bausteinen und auch dem Speicher ausgetauscht werden können.

Pentium 4 Jedoch ist heute noch immer Standard bei PCs der 32 Bit Prozessor. (Bild Pentium 4). Grund dafür ist das ein PC von der größeren Verarbeitungsbreite weitaus weniger profitiert als ein Großrechner. Typische Aufgaben eines Großrechners war die Verarbeitung von Zahlen. Diese liegen entweder im 32 Bit Format mit 7 Stellen Genauigkeit oder im 64 Bit Format mit 15 Stellen Genauigkeit vor. Alternativ kann man auch 64 Bit Ganzzahlen verarbeiten, wodurch selbst Staatshaushalte in Pfennigbeträgen berechnet werden können. Ein PC hat aber lange Zeit vornehmlich einzelne Zeichen verarbeitet. So bei der Textverarbeitung oder bei Datenbanken. Auch Bilder benötigten lange Zeit nicht mehr als ein oder 2 Byte pro Bildpunkt. Selbst Truecolor Bilder benötigen nur 24 bis 32 Bits pro Bildpunkt, eine größere Breite von 64 Bit nützt einem PC also wenig.

Erst durch die Spiele der letzten Jahre beginnt ein Umdenken. Heutige CPU's verarbeiten zwar nicht mehr Bits als solche von vor einigen Jahren, Sie haben aber bestimmte Befehle, die es erlauben die 32 Bit Register so zu organisieren, dass damit 4x8 Bit Werte oder 2x16 Bit werde auf einmal verarbeitet werden, wobei bei beiden Werten die gleichen Operationen durchgeführt werden. Dies ist nützlich bei der gleichartigem Verarbeitung großer Informationsmengen. Typische Einsatzgebiete sind das komprimieren und dekomprimieren von Daten wie Audio Dateien oder Videos. Auch Spiele mit 3D Ansichten profitieren von diesen Befehlen. Wie es aber im allgemeinen mit der Softwareunterstützung dieser Hardware aussieht dazu weiter im Teil 2

Im Serverbereich wo man auf einen großen Speicher angewiesen ist, gibt es seit 1991/92 (MIPS R4000, Alpha) 64 Bit Prozessoren. Zum einen weil diese mehr Speicher adressieren, zum anderen wegen der höheren Fließkommaleistung und größeren Datendurchsatzes. Der Datendurchsatz war auch der Grund für die breiten Datenpfade der Großrechner. Schon damals war die CPU schneller als RAM oder gar die Peripherie. Wenn man nun 256 Bit auf einmal abholt, dann braucht man für die ersten Daten lange (Zugriffszeit des Speichers), doch bei geeigneter Organisation kommen die anderen Bytes dann recht fix. Da Code wie Daten in der Regel sequentiell angeordnet sind resultiert in der Summe ein Geschwindigkeitsgewinn. Dazu kam das ein Großrechner meist mehrere Rechenwerke hatte (siehe unten). Wenn eine Cyber 7600 10 Rechenwerke hat, so ist die benötigte Bandbreite auch 10 mal höher.

Intern verfügen auch heute Prozessoren über breite Datenpfade. Doch beim Anschluss nach außen gibt es das Problem, das es immer schwieriger wird 300 oder 400 Pins auf 100 mm² zu verdrahten. Ein 256 Bit Datenbus würde diese Zahl auf 800-1000 Pins erhöhen, da noch Versorgungs- und Masseleitungen dazukommen.

Heute sind in den meisten Grafikkarten schon Spezialprozessoren mit 128-256 Bit Datenbus vorhanden, der Grund ist einleuchtend: Anders als die CPU müssen diese nur Bildpunkte bearbeiten, d.h. Sie wissen im Voraus wie die Daten organisiert sind und das im Normalfall mehrere Daten hintereinander gleich verarbeitet werden. Da ist es von Vorteil wenn man gleich mehrere auf einmal der gleichen Rechenoperation unterziehen kann. Bei den meisten Grafikkarten steigt daher auch die Performance drastisch wenn man von 24 Bit Farbtiefe auf 16 oder 8 geht, da dann mehr Punkte gleichzeitig bearbeitet werden können. Weiterhin haben diese Prozessoren keinen Cache, sondern nur wenig (32-64 MB), aber schnelles RAM. Trotzdem ist das RAM im Vergleich zum Prozessor langsam und man gleicht dies durch einen 256 Bit breiten Datenbus aus.

Wo bleibt die Software?

Intel 8088 Prozessor Ein weiterer Grund ist die Software. Solange kein Betriebssystem und kein Anwendungsprogramm verfügbar ist welches die größere Breite auch wirklich ausnutzt nützt der leistungsfähigste Mikroprozessor überhaupt nichts. Deutlich wurde dies schon 1982 mit der Vorstellung des 80286 Prozessors. Dieser war der erste 16 Bit Mikroprozessor von Intel. Der Vorgänger Intel 8088 (im IBM PC, Bild links) konnte nur 1 MB RAM in 64 KB großen Seiten ansprechen. Der neue Prozessor konnte nun 16 MB direkt adressieren ohne diese Seiten zu benutzen. Obgleich IBM ein Betriebssystem für diesen Prozessor (OS/2) entwickelte setzte sich dieses nicht durch. Windows, von Microsoft entwickelt, benutzte aber nur die Fähigkeiten des 8086. Erst die Version 3.1, 1992 erschienen, lief nicht mehr auf einem 8086 Prozessor. Bis Windows die Fähigkeiten des 32 Bit Prozessors 80386 ausnutze vergingen weitere Jahre, dies war erst 1995 der Fall. Damit lag ein Zeitraum von 9 Jahren zwischen Einführung einer neuen Hardware und Verfügbarkeit von Software die diese Hardware auch ausnutzt.

Dies ist natürlich ein extremes Beispiel, das seine Ursachen darin hat, das man aus Spargründen für den IBM PC DOS als Betriebssystem wählte. Microsoft schlug damals eine UNIX Implementation vor, die aber zu viel Speicher verschlang und eine damals sehr teure Festplatte benötigt hätte. UNIX verfügt aber schon als Betriebssystem über die Möglichkeiten mehrere Prozesse und Benutzer zu verwalten, damit wäre es möglich gewesen die neuen Möglichkeiten des 80286 und 386 auszunutzen indem man einfach den Kerncode ändert, für den Benutzer und die Programme hätte es nur geringe Änderungen erfordert.

Aus diesem Grund gibt sich Intel Mühe beim Itanium, der Intels 64 Bit Nachfolger des x86 werden soll, vom Start her für Unterstützung bei den Betriebssystemen zu sorgen. So werden auch die Linux Entwickler mit Tools versorgt.

Compiler und Maschinensprache

Das Problem mit der nachhinkenden Software ist aber geblieben. Zwar kann man in jedem besseren Compiler die Codeplattform (486,Pentium, Pentium Pro, Pentium II/III) einstellen. Doch es sieht nicht so aus, das hätten hier die Compilerbauer ihre Lehrstunden gemacht. Für moderne CPU's muss ein Compiler nicht nur einige neue Befehle benutzen wie dies derzeit noch der Fall ist er muss Befehle umstellen, da jeder Prozessor eine andere Anzahl von Integer und Fließkommaeinheiten mit unterschiedlicher Geschwindigkeit hat. Beim Test von Pentium III Code auf einem Pentium 4 zeigte sich das dieser dort 10 % langsamer lief (bei gleichem Takt). Bei Code der umgestellt wurde dagegen 30 % schneller. Bei neuen Architekturerweiterungen wie MMX, 3D-NOW, SSE sieht es sehr mau aus. Die meisten Compiler kennen heute nicht einmal das 1996 erschienene MMX. Lediglich in Spielen mit handoptimiertem Assemblercode kann man damit rechnen, das diese Architektur genutzt wird.

Supercomputer CRAY Y-MP8 Dabei ist das Problem nicht neu: Supercomputer - um auf unseren Vergleich zurückzukommen - erforderten auch spezielle Software. Damit diese die höchste Geschwindigkeit erreichten, wurden Hardwaretechnologien eingeführt die von der Software unterstützt werden mussten. Bei einem Vektorrechner z.B. das viele Daten gleich bearbeitet wurden. Die Software wurde an den Rechner angepasst. Es wurden daher selten Rechner schnell durch neue Architekturen ersetzt, weil man dann die gesamte Software umschreiben musste. So dauerte es 10 Jahre bis die Multiprozessorsysteme die Vektorrechner vom Markt verdrängt hatten.

Eine Untersuchung 1988 am NCSA (amerikanisches Supercomputerzentrum) bei der dem Supercomputer Cray Y-MP zeigte auch gewaltige Streubreiten: Von den theoretischen 300 MFlops wurden max. 230 MFlops erreicht. Der Durchschnitt lag nur bei 70 und die langsamsten Programme nur bei 10 MFlops, also 23 mal langsamer als die schnellsten. Dies ist bei PCs nicht anders. Idealerweise könnte ein Pentium 3 eine einfache Fließkommaberechnung pro Takt durchführen, dazu kommt noch das Laden und Speichern welches genauso lange dauert. Er würde also mit 2 FPU's also bei 1 GHz 1 GFLOP erreichen. Tatsächlich ist die nutzbare Leistung nur ein Viertel davon - schlechte Code Optimierung, Nutzung von nur 2 der 8 Fließkommaregister - das alles habe ich bei Compilern schon erlebt. Siehe dazu meinen kleinen Exkurs über einfache Benchmarks.

Caches

Auf den Arbeitsspeicher griff der Großrechner des Jahres 1983 über 2 zwischengeschaltete Caches zu. Der Arbeitsspeicher umfasste 128 MB, mit Speicherchips von 100 ns Zugriffszeit. Der erste Cache erfasste 256 KB mit 16 ns Zugriffszeit der zweite Cache umfasste 64 KB. Zwischen Hauptspeicher und ersten und zweiten Cache wurden jeweils 512 Bit auf einmal übertragen. Vom zweiten Cache in die Register des Prozessors mit 5 ns Zugriffszeit jeweils 64 Bit auf einmal.

Intel: Pentium Pro Die Architektur der zwischengeschalteten Caches findet man heute auf jedem PC. Der so genannte "L1 oder Level 1" Cache wurde 1986 mit dem 386 Prozessor eingeführt und war damals auf dem Motherboard untergebracht. 1989 hatte der 486 Prozessor einem integrierten L1 Cache und der auf dem Motherboard untergebrachten Cache wurde zum L2 oder Level 2 Cache. Mittlerweile existieren auch schon Architekturen mit zwei Caches innerhalb des Prozessors. Der Grund dafür ist offensichtlich. Die Speicherchips des Hauptspeichers waren zwanzig Mal langsamer als die des Prozessors.

Seit dem Pentium Pro (Bild rechts) hat man den L2 Cache nahe des Prozessors in einem eigenen Chip untergebracht um ihn noch näher am Prozessor zu haben. (Der Cache ist das gleichmäßige linke Feld).

Trotzdem ist die Geschwindigkeit des Arbeitsspeichers in den vergangenen 20 Jahren nur um den Faktor 8 gestiegen, während die Taktfrequenz von Mikroprozessoren um den Faktor 300 gestiegen ist. Eine ausgeklügelte Cacheverwaltung ist daher notwendig.

Die Schaltzeiten

Ein Chip mit KühlturmDie einzelnen Chips im Prozessor einer Cray schalteten innerhalb 1983 von 0,35 ns. Ein auch heute sehr guter Wert der damals nur durch eine die ECL Technologie mit hoher Stromstärke und damit großer Abwärme erreichbar war. Die Chips waren daher mit vielen kleinen Kühlkörpern abgedeckt, die an einem Kühlturm eines Kernkraftwerkes erinnerten. Seit der 50 MHz Version des 486 Prozessors verfügt auch ein Prozessor für den PC über einen Kühlkörper. Wobei diese auch immer wuchtiger werden. Inzwischen sind auch die Prozessoren der Grafikkarte und des Motherboards solche Stromverbraucher, dass sie Kühlkörper benötigen. Für die Kühlung war damals eine Extra Klimaanlage nötig. Besonders schnelle Supercomputer wie die Cray 1 wurden sogar durch Kühlschlangen mit Freon gegründet, ab 1985 lagen die Chips sogar direkt in einem Bad aus Freon.

Das Abwärmeproblem dürfte in einigen Jahren kritisch werden. Zum einen ist es immer schwieriger die Strommengen abzuführen. Ein Blick auf die Lüfter von Athlon (65 Watt max.), Pentium 4 (75 Watt max.) und Itanium (135 Watt max.) zeigt, das der von Intel beschrittene Weg sehr stromhungrig ist. Dabei gibt es kleine RISC Prozessoren die heute schon die Leistung eines langsameren Pentium III mit wenigen Watt erreichen, also pro MFLOP 10 mal weniger Strom verbrauchen. Ein anderer Grund ist das PCs am Gesamtenergieverbrauch inzwischen großen Anteil haben - Tendenz steigend. In den USA machen sie 10% des Stromverbrauches aus.

Cray Research hielt sehr lange an der ECL-Technologie wegen ihrer geringen Schaltzeiten bei. Allerdings musste die Firma daher auch immer eigene Boards im Printed Circuit Board Design entwerfen. Dies war teurer als die gleiche Anzahl von Transistoren in einem Prozessor unterzubringen, ist bis heute aber für eine Kleinserie (und Supercomputer werden nur einige Hundert bis einige Tausendmal verkauft) billiger als einen eigenen Chip zu designen. Seymour Cray versuchte auch das Problem bei der Cray 3 mit der Galliumarsenid-Technologe lösen, die erheblich kürzere Schaltzeiten als Silizium aufwies. Dies ist auch bis heute gegeben (Galliumarsenidtransistoren werden als Verstärker bei Netzwerkverbindungen und als optoelektronische Bauteile eingesetzt und können mit Frequenzen von bis zu 250 GHz betrieben werden, während bei Siliziumtransistoren meist schon unterhalb 10 GHz arbeiten), aber Silizium war als Material preiswerter und erreichte eine höhere Transistordichte, die schlussendlich dann mehr Elemente zuließ die die langsameren Schalten durch höhere Parallelität ausgleichen.

Die Ein und Ausgabe

Damit der Prozessor seine maximale Rechenleistung auch nutzen konnte waren alle langsamen Arbeitsschritte zusätzlichen Ein/Ausgabe Prozessoren übertragen. Dazu gehörte das Abfertigen von Terminals, das Drucken, das Lesen und Schreiben auf Festplatten usw.. Die Übertragung solcher Aufgaben fand auch schon sehr früh bei den PCs statt. Bestimmte Schnittstellen wie serielle und parallele Schnittstellen waren schon für die ersten PCs sehr langsam. Allerdings wählte man ihr ein anderes Konzept, die Schnittstellen unterbrachen den Prozessor bei seiner Arbeit über einen Interrupt.

Cyber 6600 (1966) Ein zweiter Ansatz war die Einführung der DMA: Dies ist ein Baustein der es ermöglicht das Peripherie auf den Hauptspeicher zugriffen kann ohne den Prozessor in Anspruch zu nehmen. Dies wird vor allem bei der Übertragung von großen Datenblöcken benutzt. Paradebeispiel ist der Festplattencontroller, der so Daten übertragen kann ohne den Hauptprozessor in Anspruch zu nehmen. Heute erledigt der Chipsatz ein Großteil dieser Arbeit, wie z.B. das übertragen von Daten von und zur Festplatte in den Speicher.

Die Erfindungen von Seymour Cray

In den siebziger und achtziger Jahren kamen die schnellsten Computer die es überhaupt gab von Seymour Cray. Ich denke wer in dieser Zeit von Supercomputern sprach hatte vor seinem geistigen Auge eine Cray 1 vor sich. Eine Cray das war eine Maschine gegen die IBMs 3080 Großrechner aussahen wie der Vergleich der Rechenleistung eines PDA mit einem Pentium 4. Der Schöpfer der Cray war der gleichnamige Ingenieur Seymour Cray. Schon bevor er sich mit Cray Research selbstständig machte hatte er bei der Firma CDC gearbeitet. 1964/65 erschien die her abgebildete CDC-6600 oder "Cyber". Dieser Rechner mit einer Leistung von 9 Megaflops war der erste kommerziell erfolgreiche Supercomputer. Bei ihm hatte Seymour Cray Konzepte umgesetzt die erst 30 Jahre später Einzug in die PC Prozessoren Einzug halten.

Die Pipeline

Das erste war die Pipeline. Als die Cyber 6600 erschien, war Speicher nicht wie heute aus Halbleiterbausteinen aufgebaut sondern aus Ringkernspeichern. Das sind kleine Eisenringe die auf einem Drahtgeflecht sitzen. Die Information wurde bei Ihnen magnetisch gespeichert mit miserablen Zugriffszeiten. Es galt daher möglichst einen kontinuierlichen Datenstrom zum Prozessor zu gewährleisten um die Abarbeitung zu beschleunigen. Beim Pipelining verarbeitet der Prozessor einen Befehl in mehreren Stufen. Das kann beispielsweise so aussehen:

Intel 486 DX/2 Lange bevor der Befehl restlos abgearbeitet ist, also durch die letzte Stufe hindurch ist, kann der Prozessor bereits mit der Bearbeitung des nächsten Befehls beginnen. Im Idealfall lässt sich so in jedem Takt ein neuer Befehl nachschieben. Bei einer fünfstufigen Pipeline, etwa der eines 486-Prozessors, hat man dann bis zu fünf Befehle in unterschiedlichen Stadien gleichzeitig in Bearbeitung. Obwohl die eigentliche Durchlaufzeit (Latenzzeit) eines Befehls fünf Takte beträgt, liegt der Performance-relevante Durchsatz bei einem Befehl pro Takt. Eine Pipeline holt also bei jedem Takt einen neuen Wert aus dem Speicher, erhöht die Adresse für den Zugriff und fügt diesen am Ende der Pipeline an. Alle anderen Abarbeitungsstufen in der Pipeline rücken um eins nach vorn und am Ende wird der vollständig dekodierte Befehl ausgeführt. Anders ausgedrückt: Braucht man für einen Befehl 8 Takte, so kann man mit einer 8 stufigen Pipeline die 8 fache Geschwindigkeit erreichen. Der Intel 486 (Bild links), hatte z.B. eine fünfstufige Pipeline, ein Pentium 4 hat sogar eine 20 stufige Pipeline.

Derartige Pipelines sind heute bei den Prozessoren weit verbreitet, ein wichtiger Teil der Software eines Prozessors liegt darin, diese Pipelines in Gang zu halten, auch wenn ein Ergebnis die lineare Abarbeitung stört, z.B. wenn der Prozessor in ein Unterprogramm springen muss. Bei der Intel Serie findet man Pipelines die versuchen die Ausführung von Unterbrechungen voraus zu ahnen (Branch Prediction) seit dem Pentium, also 29 Jahre nach der CDC-6600.

Es gibt noch Unterschiede ob mehrere Recheneinheiten sich eine Pipeline teilen oder jede eine eigene hat und ob diese unabhängig sind oder nicht - im letzteren Fall bestimmt immer der langsamste Befehl die Abarbeitung, braucht z.B. ein Divisionsbefehl vergleichsweise lange so können andere Befehlseinheiten keine Befehle entgegennehmen, so ist es z.B. beim Pentium II/III. Dagegen waren bei der CDC 7600 schon die einzelnen Pipelines unabhängig voneinander. Dadurch konnten ihre 10 Rechenwerke unabhängig voneinander arbeiten.

Bei einer Pipeline ist es nicht so, das pauschal gilt: Je länger desto besser: Je länger sie ist desto mehr Daten sind in ihr. Diese werden aber hinfällig, wenn es eine Verzweigung im Programm gibt. Daher hat man beim Pentium 4 sehr viel Logik in die Vorhersage von Sprüngen gestrickt und den Platz für die Speicherung der Sprungziele gegenüber dem Pentium 3 verachtfacht. Da der Pentium 4 sehr anfällig ist, durch die lange Pipeline. Diese ist aber nötig, weil der Takt des Prozessors sehr hoch ist (siehe Tabelle am Schluss von Teil 2), so dass man viele Stufen braucht, weil man in jeder nur wenig tun kann. Optimal unter Experten gilt eine Länge der Pipeline von 6-7 Stufen. Gerade aber bei hohen Taktraten findet man längere Pipelines. Der Grund: Je mehr Stufen eine Pipeline hat desto weniger muss pro Stufe erledigt werden, desto höher kann man die Taktrate hochschrauben. Es ist daher kein Wunder das die längste Pipeline (20 Stufen) beim Prozessor mit dem höchsten Takt (Pentium 4) zu finden ist.

RISC

IBM System 360 Pipelines haben aber einen Nachteil: sie setzen eines voraus: Das die Dekodierung eines Befehles immer gleich lange dauert. Damals herrschte bei den Großrechnern die CISC Architektur vor: Man implementierte immer komplexere und mächtigere Befehle die immer mehr können. Nun brauchen aber einfach Befehle wie "Lade Register A mit dem Inhalt von B" wesentlich weniger Ausführungszeit als komplexe Befehle wie "Erniedrige Register B um 1, vergleiche mit 0 und springe wenn gleich 0 zur Adresse x". Solche langen Dekodierzeiten stören die Pipeline, es kommt zu Stockungen.

Bei der Cyber 6600 setzte man zuerst die so genannte RISC Architektur ein. Das zugrunde legende Prinzip ist es die Geschwindigkeit der Befehlsausführung zu erhöhen indem man dafür sorgt, das die Befehle möglichst gleich schnell dekoriert werden. Dies macht man indem man:

Die CDC-6600 setzte dies um indem sie nur 64 Befehle hatte. Die Zahl ergab sich aus der Architektur von 6 Bit für ein "Byte". Das Dekodieren war sehr einfach, denn alle Befehle gingen so in ein "Byte". Dafür verfügte die Cyber über nicht weniger als 16 Adressregister (18 Bit Breite) und 8 Datenregister (60 Bit Breite). Ach ja schon 1965 war die Cyber eine 60 Bit Maschine... Bis heute dauert die Diskussion an welches wohl die beste Rechnerarchitektur sei: CISC oder RISC.

Um die Geschwindigkeit der x86 Serie zu steigern hat man den CPU Kern beim Pentium Pro durch einen RISC Kern ersetzt. Seitdem funktioniert ein Pentium (II,III,4) Prozessor wie ein großer Emulator: Die komplexen CISC Befehle werden in mehrere kleinere einfachere RISC Operationen (so genannte Micro-Ops) zerlegt, die dann an die RISC Einheit übergeben werden. Andere Prozessoren wie DEC Alpha oder Power PC ohne Komptabilität - Altlasten sind reine RISC CPU's. Von den großen Prozessorherstellern waren SUN und MIPS (Bild R10000 links) die ersten die RISC ab 1988 einsetzten. Die letzten CISC Hersteller sind heute noch AMD, Intel und HP. Letztere beiden wollen mit dem Itanium bis 2006 ihre x86 Linie und HP-PA Serie ersetzen.

Superskalarität

Der ItaniumMit RISC und Pipeline erreicht man das man pro Takt einen Befehl ausführen kann. Das ist ein toller Wert, doch will man mehr, so muss man den Takt erhöhen. Hier gibt es aber Grenzen, die in den sechziger Jahren noch restriktiver als heute waren: Höherer Takt bedeutet höhere Integration (Pro Taktimpuls müssen alle Bestandteile eines Computers im Takt sein, das heißt die längste Verbindung darf maximal so lang sein wie die Signale in der Zeit eines Taktes laufen). Nun war die Cyber 6600 aber kein Chip sondern wie man auf dem Bild sieht ein Y-förmiger Schrank von zirka 2 m Breite (Die Y-Form resultiert daraus, das man so vom Mittelpunkt aus den kürzesten Weg zu den 3 Einheiten hatte). Die Wege lagen also im Bereich von Metern, nicht Millimetern. Zum anderen waren die Ringkernspeicher auch in der Geschwindigkeit limitiert, das konnte man auch mit Caches nicht vollständig auffangen.

Die Lösung war einfach mehrere Recheneinheiten einzuführen, die CDC 6600 bestand aus 10 Prozessoren, wovon einer die Masterkontrolle hatte und die anderen von ihm mit Daten versorgt wurden. Mit dem Nachfolgemodell der Cyber 7600 (1969) bekam jede Recheneinheit auch eine eigene Pipeline, welche die Leistung auf nahezu das 5 fache steigerte auf 40 Megaflops. Bei der Architektur die man "Superscalar" oder "Multiskalar" nennt gibt es nun zwei Probleme:

Seit dem Pentium verfügen auch x86 Prozessoren über die Superskalarität. Beim Athlon sind es z.B. 3 Einheiten für Ganzzahlrechnungen, 3 Einheiten für Fließkommaberechnungen, 3 Einheiten für die Adressierung von Befehlen, sowie je eine Einheit für das Laden und Speichern und für die Vorhersage von Sprüngen. Anders als bei den 30 Jahre alten Cyber Rechnern haben die Einheiten eine gemeinsame Pipeline und einen gemeinsamen Registersatz und sind nach außen hin nicht getrennt ansprechbar. Dadurch ist der Geschwindigkeitsgewinn geringer. So ist zwar ein Athlon mit 6 parallelen Rechenwerken schneller als ein Pentium mit nur 3 - aber eben nicht doppelt so schnell beim gleichen Takt. So hat man beim Pentium 4 auch die Anzahl der Recheneinheiten wieder verringert und dafür ihre interne Geschwindigkeit erhöht. Der Itanium hat sogar 11 Einheiten - er ist der bisher komplexeste Prozessor.

Wir finden dies heute alles auch in Prozessoren. Mehrere Kerne sind z.B. nur eine weitere Form der Superskalaität. Heute bestehen Großcomputer und Supercomputer aus sehr vielen (teilweise über 10.000 Mikorprozessoren bis bis zu (2012) 160.000 Kernen. Rechnet man die einfachen "Recheneinheiten" von Grafikkarten hinzu, die heute auch in Supercomputern eingesetzt werden, so sind es Millionen. Diese Technologie bezeichnet man daher als "massiv parallele Prozessoren" oder "massiv paralleles Proceccing" (MPP).

Verwandte Themen:

Intel Prozessoren: Die Entwicklung vom 4004 zum Pentium 4
Rechnerarchitekturen : Die Tricks welche die Prozessoren schneller machten.
Intel Outside: Rechnerarchitekturen die nicht von Intel sind
Neubeginn bei 64 Bit- Was bringt der Itanium an neuen Technologien.
und natürlich die Fortsetzung dieses Artikels...
Artikel zuletzt geändert am 6.12.2012

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensäufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Neues Hier werben Bücher vom Autor Buchempfehlungen Top 99