Home Computer Crays Supercomputer Site Map counter

RISC und die Architektur von Crays Supercomputern

Ich habe auf meiner Website eine reihe von Artikeln über die Rechner von Seymour Cray, die sich im Detail mit den einzelnen Rechnern beschäftigen. Diese beschreiben die Architektur en Detail. In diesem Artikel gehe ich eine Ebene zurück und beschäftige mich vor allem mit der Architektur der Cray 1, auf der die folgenden Rechner auch aufbauten und zwar in wie weit man die Cray's in die Gegensätze RISC und CISC einordnen kann.

Cray 1sElemente von RISC Rechnern

Das Schlagwort "RISC" für Reduced Instruction Set Computer kam erst in den Achtziger Jahren auf, doch der Ansatz, dass ein Rechner auf Komplexität verzichtet und dafür schneller ist, ist nicht neu. Seymours Cray Rechner beginnend ab der CDC 6600 kann man als RISC Rechner bezeichnen, denn sie erfüllen im Wesentlichen die Kriterien, die nach der Wikipedia folgende sind:

Architektur

ArchitekturDie Architektur der Cray unterscheidet sich in einem wichtigen Punkt von der anderer Großcomputer und auch Mikroprozessoren. Diese sind auf eine maximale Anzahl an Instruktionen meist gemessen in MIPS (Millionen Instruktionen pro Sekunde) ausgelegt, und sie verarbeiten primär ganze Zahlen. Die Verarbeitung von Fließkommazahlen ist entweder eine Option, so bei der x87 Serie bis zum 486 oder Motorola 68k bis zu 68030, wofür eine externe Hardware hinzugenommen werden muss, oder sie ist nicht vorgesehen. Bei Großrechnern, die zumeist Fließkommaarithmetik eingebaut haben, ist diese zumindest deutlich langsamer als die normale Arithmetik.

Die Cray war auf die maximale Anzahl an Gleitkommazahlen ausgelegt MFLOPS - Millionen Fließkommaoperationen pro Sekunde). Dies ging soweit das Fließkommaberechnungen schneller waren als Ganzzahlberechnungen, obwohl sie intern aufwendiger sind (man muss die Mantisse und den Exponent separat verarbeiten). Dies erbte die Cray von Seymours CDC 6600, dem ersten Rechner, den man als Supercomputer bezeichnet, da auch sie auf die Verarbeitung von Fließkommazahlen optimiert war. Die Cray war ein Computer für naturwissenschaftlich-physikalische Simulationen. In diesen dominierten Rechnungen mit Fließkommazahlen. Das war in der damaligen Zeit ein kleines Marktsegment mit einem überschaubaren Kundenkreis, von meist Regierungsorganisationen, die zivile oder militärische Forschung durchführten. Erst Dekaden später erkannten auch Firmen, wie sie mit Simulationen ihre Produkte verbessern können oder sie für die Suche nach neuen Stoffen oder Rohstoffquellen nutzen konnten.

Technisch war die Cray 1 - und das galt mit Verbesserungen bis zur Cray 3 - ein 64 Bit Rechner mit einem 64 Bit Datenbus und einer wortweisen Adressierung. Das heißt, es wurden immer 8 Bytes auf einmal gelesen, es gab keine Zugriffsmöglichkeit auf einzelne Bytes. Die Größe des Arbeitsspeichers wurde mit MWorten angegeben. 1 Wort belegt 64 Bit oder 8 Byte. Die Cray 1 hatte einen Speicher von 0,25 bis 1 MWorten (2 bis 8 MByte), die Cray 2 von 64 bis 256 MWorten (0,5 bis 2 GByte). Es gab intern drei Registerarten. Dies waren die Adressregister (A), die bei der Cray 1 nur 24 Bit breit waren, bei der Cray 2 wurden diese auf 32 Bit erweitert. Damit konnte die Cray 1 maximal 16 MWorte adressieren. Der nächste Satz waren die 64 Bit breiten Sklararregister (S) die für Ganzzahloperationen oder Fließkommaoperationen genutzt wurden. Die meisten Fließkommaoperationen fanden mit den Vektorregistern (V) statt. Diese acht Register waren auch 64 Bit breit, aber jedes Vektorregister nahm 64 Zahlen und nicht einen Wert auf. Sie waren der Schlüssel für die schnelle Verarbeitung von Zahlen, weil so ein Befehl eine Operation mit allen Vektorregistern durchführen konnte. Sie wurden in eine Pipeline eingebunden, das heißt, ohne das die Fetch- und Dekodierzeit für einen Vektorbefehl anfiel, wurde automatisch die nächste Operation mit dem nächsten Vektorregister durchgeführt, ebenso wurden sie in einem Rutsch gefüllt. Zusammen damit das die Recheneinheiten redundant vorhanden waren (superskalar) erreichte eine Cray 1 eine theoretische Spitzenleistung von 1 Addition und 1 Multiplikation pro Takt, somit bei 80 MHz Takt 160 MFlops, von denen in realen Programmen auch viel übrig blieb. Eine elfstufige Pipeline sorgte dafür das mehrere Befehle gleichzeitig bearbeitet werden konnten.

Intern hatte der Rechner 12 Funktionseinheiten. Zwei für Adressen, vier für Operationen mit ganzen Zahlen, drei für Fließkommaoperationen mit den Skalarregistern und drei für Fließkommaoperationen mit den Vektorregistern. Sie alle konnten parallel arbeiten.

Es gab dann noch zwei weitere Registersätze, nämlich je 64 B- und 64 T-Register. Die B-Register waren Adressregister und die T-Register waren Skalarregister. Alle Rechnungen und Adressberechnungen erfolgten mit den acht S- und A-Registern. In den B und T Registern konnte man für jeden der beiden Registersätze Werte lokal speichern, praktisch als Ersatz für einen Cache in der CPU. Das waren Werte die man mehrmals benötigte, Konstanten oder Systemwerte. Auf sie konnte man in einem Zyklus zugreifen, ohne das der Speicher angefordert wurde. Für Rechnungen wurden sie dann in die A/S-Register transferiert.

FlussdiragrammBefehlsformate

Das allgemeine Befehlsformat einer Cray 1 war 16 Bit breit und hatte folgende Form:

Feld

g

h

i

j

k

m

Breite

4

3

3

3

3

16

Bitposition

0-3

4-6

7-9

10-12

13-15

16-31

Teil

Parcel 1

Parcel 2

Der Decoder verarbeitete immer ganze Parcel. In das erste Parcel passten alle Instruktionen die keine Adresse enthielten. War das der Fall so wurde das zweite Parcel benötigt. Ein Befehl war also mindestens 16 und maximal 32 Bit breit und ein 64 Bit Wort konnte zwei bis vier Befehle umfassen.

Bei den meisten Instruktionen bildeten das g und h-Feld den Opcode, sodass 128 Opcodes möglich waren. Doch nicht alle. Bei allen Anweisungen, in denen es um Adressen ging (Laden/Speichern, Sprünge, Unterprogrammaufrufe) wurde nur das g-Feld genutzt und j+k+m bildeten zusammen eine 24 Bit Adresse.

Da es zudem Anweisungen gab die ähnlich waren (z. B. Sprung wenn Ergebnis Null oder Sprung wenn ungleich Null)), nennt das Handbuch von Cray Research insgesamt 44 grundlegende Befehle. Nimmt man alle benutzten Opcodes so kommt man auf 106 Anweisungen. Die Befehle waren aber, was die Mächtigkeit angeht sehr weitgehend. Ein Befehl konnte eine Rechenoperation auf allen 64 Vektorregistern durchführen. Ein anderer Befehl konnte einen ganzen Speicherblock kopieren oder an die Ausgabe (Wechselplattenlaufwerke) schreiben.

Eine Anweisung vermisst man im Befehlsvorrat: Obwohl der Rechner ein 64 Bit Prozessor war, gab es keinen Befehl um eine 64 Bit Konstante zu laden, dies benötigt man natürlich für alle Daten die es am Anfang geben muss. Eine Cray war nicht ausgelegt alleine zu arbeiten. Ein "Front-End Computer" war für die gesamte Benutzeraktion zuständig. Er schrieb die Programme und Daten in den Speicher, er startete die Cray und von ihm aus wurden auch die Jobs aktiviert und beendet. Das war eine Data General Eclipse, ein Mikrocomputer etwas schneller als eine VAX 11/780. Es konnten aber auch leistungsfähigere Rechner wie eine IBM 370/168 dafür eingesetzt werden.

Speicher

Schon seit Anfang der Computer war Speicher langsamer als der Prozessor. Dies ist eine Folge davon das für den Speicher oft andere Technologien eingesetzt wurden, als für die Logik, einfach weil der Speicher viel mehr Elemente enthält und er bezahlbar sein muss. Die heutige Lösung dafür sind Caches. Caches sind schnelle Zwischenspeicher die einen gerade benötigten Teil des Hauptspeichers abpuffern. Eine Logik muss ermitteln welcher Teil dies ist. Caches wurden erstmals Mitte der Sechziger Jahre in der IBM 360 Familie eingesetzt.

Seymour Cray setzte seit seinem Erstling, der CDC 6600 auf eine andere Technik, das sind Speicherbänke. Bei diesem Konzept ist der Speicher so organisiert, das jedes Wort in einer anderen Speicherbank untergebracht wird. Da der Zugriff sowohl bei Daten wie Code weitestgehend linear abläuft, kann sich eine Speicherbank nach einem Zugriff "erholen" bis nach n Zugriffen (für n Speicherbänke) erneut ein Zugriff auf dieselbe Bank erfolgt. Die meisten Speichertechnologien benötigen nach einem Zugriff eine bestimmte Zeit, bis sie wieder ansprechbar sind. In DRAM und Ringkernspeichern muss z. B. nach dem Lesen von Daten die Information erneut geschrieben werden, da das Auslesen sie zerstört. Man spricht hier von der Zykluszeit, der Zeit nachdem der Speicher wieder für einen Transfer bereit ist.

Speicherbänke können aber ein Problem nicht lösen, das ist das Speicher nicht nur eine Zykluszeit aufweist, sondern auch eine Zugriffszeit. Er kann die Daten also erst nach einer gewissen Zeit liefern. Diese Zeit muss die CPU abwarten. Bei der Cray 1 konnte die CPU alle 12,5 ns einen Speicherzugriff anfordern, der Speicher hatte aber eine Zugriffszeit von 50 ns. Das war viermal länger. Es gibt zwei Lösungen für das Problem, die beide voraussetzen, das Daten im Speicher linear abgelegt sind. Das gilt vor allem für Felder, auf deren Abarbeitung die Cray optimiert war. In einer Lösung fordert die CDU Daten an bevor sie sie braucht, bei 50 ns Zugriff also schon vier Zyklen vorher. Bei der zweiten hat jede Speicherbank einen lokalen Zwischenspeicher, der sehr schnell ist. Er wird automatisch mit dem nächsten erwarteten Daten gefüllt. Das ist in der Implementierung das folgende Wort. Auf diesen Speicher kann die CPU mit voller Geschwindigkeit zugreifen. Er wird gefüllt nachdem ein normaler Zugriff erfolgte

Beide Technologien basieren darauf das die Daten linear angeordnet sind. Die Cray 1 hatte 16 Bänke, solange der Zugriff nicht in Vielfachen von 8 oder 16 Worten erfolgte, lieferte eine Bank die Daten ohne Verzögerungen. Das deutet darauf hin, das eine Bank 8 Zyklen (100 ns) als Zykluszeit hatte. Hinweise auf einen internen Puffer gab es bei dem Manual der Cray 1 nicht.

Das Bankkonzept hat Schwächen. Bei der Cray 2 wechselte Seymour Cray von den bei der Cray eingesetzten Speicherchips in bipolarer SRAM-Technologie auf MOS DRAM-Technologie. Diese speicherten 256-mal mehr Daten, waren aber fast viermal langsamer. So erhöhte er die Zahl auf 128 Bänke. Trotzdem kostete dieses Performance. Für Kunden die nicht den großen Speicher benötigten, gab es auch eine Version mit statischem Speicher (SRAM), was die Programme um 15 bis 25 Prozent beschleunigte. Zusätzlich gab es erstmals einen lokalen schnellen Zwischenspeicher, also einen Cache in der CPU. Dieser wurde mit Befehlen gefüllt, hatte also keine eigene Intelligenz zur Verwaltung.

Für Befehle gab es bei der Cray vier Instruktionspuffer mit je 128 Einträgen für 16 Bit "Chunks". Ein Instruktionsbuffer ist eine einfache Form des Caches. Er speichert nur die letzten 32 Befehlsworte. Damit kann man ohne den Speicher zu bemühen bei einer schleife maximal 32 Worte zurückspringen. Vier Buffer erlauben vier offene Schleifen oder vier offene (kleine) Unterprogramme zur selben Zeit.

Die Datentransferrate zum Speicher betrug 1 Wort pro Takt, also bei 80 MHz 5,12 Gbit/s oder 640 Mbyte/s. Das reichte aus um eine 64 Bit Zahl pro Takt nachzuliefern. Bedenkt man dass aber nicht nur gelesen werden muss, sondern auch geschrieben, daneben es drei Arten von Registern und die Instruktionsbuffer zu füllen gibt, dann ist dies ein Flaschenhals des Systems. Als aus der Cray 1 die Cray X-MP entwickelt wurde, wurde bei ihr auch die Bandbreite zum Speicher vervierfacht. Seymour Cray ging davon aus, das die internen Zwischenspeicher wie B- und T-Register viele Zugriffe abfedern würden.

Seymour CrayKomplexität

Ein wesentlicher Grund für die Entwicklung von RISC Prozessoren in den Achtziger Jahren war, das diese wesentlich weniger Bauelemente für eine bestimmte Leistung benötigten als CISC Prozessoren. Bei Prozessoren gibt man die Komplexität in dem Transistorcount wieder. Bei der Cray-1 gibt es dagegen die Angabe der Gatter, es waren 200.000. Für ein Gatter kann man zwei Transistoren ansetzen, es gibt aber auch komplexere Gatter mit mehreren Transistoren. Umgekehrt gibt es Transistoren mit mehr als zwei Eingängen, die dann die Zahl der Elemente pro Gatter deutlich reduzieren. Nimmt man drei Transistoren pro Gatter (entsprechend der Angabe für die SPARC CPU mit 110.000 Transistoren oder 40.000 Gattern) und addiert noch den internen Speicher, der bei dieser Zahl nicht dabei ist (4.888 Bytes, entsprechend 156.114 Transistoren bei 4 Transistoren pro Flip-Flop) so kommt man auf eine Gesamtzahl von rund 760.000 Transistoren. Hier eine Einordnung der Cray in RISC-Prozessoren der Achtziger Jahre:

Prozessor

Transistorcount

Architektur

Takt

MIPS/MWIPS

MIPS/Flops/Takt

Cray-1

760.000

64 Bit

80 MHz

7,5 / 98

0,09 / 1,22

MIPS R2000

110.000

32 Bit

25 MHz

24,2 / 15,6

0,96 / 0,62

ARM V2

27.000

32 Bit

33 MHz

14,7

0,44

SPARC MB86900

110.000 (40.000 Gatter)

32 Bit

25 MHz

7 / 12,3

0,28 / ,49

I860

1,1 Millionen

64 Bit

33 MHz

78,1 / 24

2,36 / 0,72

I960

600.000

32 Bit

66 MHz

11,1 / 6,24

0,17 / 0,09

IBM ROMP

45.000

32 Bit

10 MHz

0,96

0,096

AMD 29000


32 Bit

25 MHz

12,29

0,49

Intel 386

275.000

32 Bit

16 MHz

3,49 / 1,84

0,21 / 0,11

Intel 486

1,2 Millionen

32 Bit

33 MHz

20,4 / 7,6

0,61 / 0,23

Die Angaben nach MIPS sind vom Dhrystone Benchmark. Die MWIPS Ergebnisse vom Whetstone Benchmark. Es sind keine realen MIPS oder MFLOPS sondern normiert auf einen Index, beim Dhrystone ist es die VAX 11/780, beim Whetstone gibt es dazu keine Angabe. Die MHz Angabe bezieht sich jeweils auf die Konfiguration mit der gemessen wurde. Bis auf den Intel 386, 486 und 860 gelten alle anderen Architekturen als RISC Architekturen. Den Intel 860 habe ich hinzugenommen, weil er wie die Cray ein Pipeline-Konzept für Fließkommaoperationen hat, er ist aber kein RISC Prozessor.

Man sieht das die Cray-1 in Fließkommaperformance alle Mikroprozessoren schlägt. Bei den Dhrystones sieht sie schlecht aus, das liegt aber auch an dem Benchmark der für einen 32 Bit Prozessor gedacht ist und Code enthält der kaum optimierbar ist, in dem Sinne als das er mehrere Einheiten parallel beschäftigt. Real benötigten die meisten Instruktionen in Sklararregistern die hier nur zum Einsatz kommen zwei bis drei Takte.

Fazit

Die Cray hat alle Eigenschaften eines RISC Prozessors:

Links / Quellen:

http://intel-vintage-developer.eu5.org/DESIGN/I960/BENCHMAR/27295001.PDF

http://bitsavers.informatik.uni-stuttgart.de/components/intel/i860/i860_Processor_Performance_Mar89.pdf

http://www.roylongbottom.org.uk/whetstone.htm

https://www.tech-insider.org/unix/research/1986/0219.html

Richard M.Russel: The CRAY- 1 Computer System

Cray Research: Cray 1 Computer System Hardware Reference Manual 2240004

Artikel erstellt am 3.5.2022

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 Lebenslä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.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


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