Home | Computer | Hardware | Site Map |
Der PC hat viel von Supercomputern der früheren Jahre übernommen. Teil 1 des Aufsatzes behandelte die Übernahme von breiten Datenbusen, größeren Adressbereichen, Caches, Pipelines und das Softwareproblem bei den PCs. Diese Entwicklungen repräsentieren die achtziger Jahre. In diesem Artikel geht es um die in den neunziger Jahren gemachten Modernisierungen des klassischen Prozessorkonzept zum modernen PC: Superskalarität, VLIW, SIMD, Multitasking und Clusterung.
Betrachtet man sich die Entwicklung der PC Prozessoren seit dem Pentium, so wird eine Tendenz sichtbar: Zuerst gab es zusätzliche Recheneinheiten an einer Pipeline und einem Cache und einem Dekodierer. Das bedeutet das man zwar eine höhere Rechenleistung bekommt, aber nur wenn der Code so strukturiert ist, das er mehrere Einheiten beschäftigen kann. Mit dem Pentium Pro gab es die Out of Order Execution, die auch Performance bei nicht angepasstem Code ergab. Später bekamen die Recheneinheiten immer mehr Autonomität, wie zusätzliche Load/Store Einheiten, eigene Decoder oder Verlagerung des Caches so, dass er dekodierte Instruktionen speichert und diese einer Recheneinheit zuordnen kann. Dazu kamen mehr Register als nach außen sichtbar sind die dynamisch gemappt werden.
Damit ist ein Pentium 4 fast ein Mehrprozessorsystem - aber nur fast. Den kleinen Rest (einen zweiten Interruptcontroller, einen zweiten Registersatz der nach außen hin sichtbar ist und einen zweiten Instruction Pointer) haben nun auch Pentium 4 ab 3.06 GHz. Intel nennt diese Technik Hyperfine Threading, womit man auch die Anwendung sieht: Das Betriebssystem sieht zwei CPUs und kann jedem einen Thread, also einen unabhängigen Prozess zuweisen. Auch Anwendungen können davon profitieren, wenn sie z.B. mehrere Threads starten um ein Bild zu rendern.
Diese Technik kennt man auch von größeren Rechnern unter der Bezeichnung SMT. Es ist ein Ausweg, wenn man immer mehr Rechenwerke in der CPU unterbringt, bestehender Code aber davon nichts oder wenig profitiert. Dann kann das Betriebssystem (sofern es neu genug ist: Beim Pentium 4 ist Windows 2000 schon zu alt...) über diese Technik mehr Leistung für andere Anwendungen frei machen.
Eine noch weiter fortgeschrittene Technik entwickelt IBM für ihre PowerPC Prozessoren für die Großrechner. Man bringt hier 4 komplette Prozessoren in einem gemeinsamen Gehäuse unter. Von außen her sieht die Software diese wie in einem klassischen Multiprozessorrechner. Das hat mehrere Vorteile. Neben einer höheren Rechenleistung wird auch die Abwärme geringer - Anstatt 4 Prozessoren gibt es nur einen. Vor allem aber entfällt der langsame Datentransfer über einen externen Bus.
Anfang der siebziger Jahre verließ Seymour Cray CDC und machte sich selbstständig. 1976 erschien sein erster eigener Supercomputer, die Cray 1. Ein Rechner mit 8 Megabyte Speicher und 170 Megaflops Leistung bei einer Taktzeit von 12.5 ns (80 MHz). Es war der erste Supercomputer nur aus integrierten Schaltkreisen. Insgesamt 1662 Platinen mit max. 288 Chips pro Modul steckten in dem Rechner. Die CPU bestand insgesamt aus zirka 1 Mill. Transistoren (etwa soviel wie ein 486, dieser ist allerdings nicht so schnell wie eine Cray). Noch mehr als die Cyber 6600 und 7600 war die Cray auf Geschwindigkeit getrimmt. Auffällig ist z.B. die ästhetische kreisrunde Form - dann sind die Leitungswege zwischen den Modulen am kürzesten.
Was die Cray-1 jedoch neu einführte und die Geschwindigkeit vervierfachte, bei nur halbierter Zykluszeit war der Vektorprozessor. Dahinter stand die Einsicht, das in vielen Gebieten in denen Supercomputer liefen es sich um Problemstellungen handelte, bei denen auf einen bestimmten Datensatz immer die gleichen Befehle angewendet wurden.
Der Vektorprozessor wandte eine mathematische Operation auf mehrere Daten an indem er sie in verschiedene Register lud und dann simultan die Operation bei allen Registern gleichzeitig durchführte. Heute bezeichnet man diese Architektur als SIMD (Single Instruction Multiple Data). Nach einer gewissen Vorlaufzeit spuckte die Cray im Idealfall pro Takt ein Ergebnis aus und erreichte so ihre hohe Geschwindigkeit. So dauerte eine Multiplikation normalerweise 9 Takte, aber beim Vektorrechner fiel diese Taktzeit nur bei der ersten Multiplikation an, danach lieferte die Cray in jedem Takt ein Ergebnis solange wie kein neuer Befehl kam. Man konnte also 100 Zahlen nacheinander in 108 anstatt 900 Takten multiplizieren. Die Cray 1 verfügte über 8 Vektorregister. Jedes konnte bei einer Operation 64 Werte gleichzeitig addieren - Damit ist auch klar warum diese 64 Bit Maschine bei 80 MHz ohne Cache RAMs arbeitete (Seymour Cray hielt mehr von Versetzten Bänken von 50 ns ECL RAMs die eine enorme Bandbreite für die Vektoreinheiten ergeben).
Deutlich wird das bei den Anwendungen die damals wie heute auf einem solchen Supercomputer laufen. Es sind Simulation des Wetters oder des Klimas, astrophysikalische Berechnungen wie die Explosion eines Sternes oder Berechnungen eines Crashs von Autofirmen.
Am Beispiel der Berechnung des Wetters wird deutlich warum diese Rechner so schnell diese Aufgaben bewältigen können. Für die Berechnung des Wetters in der Zukunft wird über die Erde ein Gitter mit einer Kantenlänge von einigen Dutzend Kilometern gelegt. Über der Erdoberfläche wird die Atmosphäre ebenfalls in einzelnen Schichten unterteilt. Man erhält dann ein dreidimensionales Gitter und für jeden Gitterpunkt müssen dieselben Berechnungen durchgeführt werden. Somit kann man mit einem Vektorrechner ein Vielzahl von Gitterpunkten gleichzeitig berechnen. Nach einer Berechnung müssen dann nur noch die Bewegungen von Luft oder Wasser zwischen den Gitterpunkten berücksichtigt werden und für den nächsten Zeitraum die neuen Daten berechnet werden.
Den Namen Vektorrechner haben diese Architekturen von dem Vektor bekommen. In der Physik ist ein Vektor eine Menge von Zahlen bei denen immer die gleiche Rechnung gemacht werden, weil Sie zusammengehören. So wird eine Bewegung im 3 dimensionalen Raum durch 3 Zahlen beschrieben, welche die x,y und z Komponente beschreiben, eine Änderung wirkt sich auch auf alle 3 Achsen aus. Der grundsätzliche Nachteil eines Vektorrechners ist allerdings das diese hohe Geschwindigkeit nur möglich ist, wenn die Software den dazu idealen Code erzeugt und das Problem diese Parallelisierung zulässt. Wie sehr die Werte der Ausführungsgeschwindigkeit differieren wurde ja schon in Teil 1 angesprochen. Dies ist so da eben nicht alle Probleme hochgradig vektorisierbar sind.
Großrechner nutzen wie die Cray 2 auch heute versetzte RAM Bänke. Dies liegt daran, dass sich in den letzten 20 Jahren die Taktfrequenzen rapide vergrößert haben, die Zugriffsgeschwindigkeit des RAM aber wesentlich geringer anstieg. Bei Servern und Großrechnern spendiert man den Prozessoren daher 4, besser 8 Slots für RAMs. Eine Technik die sich auf dem PC wegen der größeren Kosten nicht durchgesetzt hat. Hier verwenden Grafikprozessoren RAMs mit erheblich schnelleren Zugriffszeiten, obgleich ihre Prozessoren nur 200-300 MHz getaktet sind. Dafür kosten die schnellsten Ausführungen dieser Karten erheblich mehr als die langsameren Exemplare.
Die Arme Leute Version vom Vektorrechner ist heute SIMD. Arme Leute Version deswegen, weil die Architektur natürlich eine andere ist. Ein Pentium hat eben nur wenige Register, und die Datenmengen die man so gleichzeitig mit einem Befehl ansprechen kann ist so begrenzt. Man hat bei Prozessoren daher die schon vorhandenen Register der Fliesskommaeinheit ausgenutzt um damit mehrere kleinere Integerwerte gleichzeitig zu bearbeiten. Bei MMX z.B. anstatt einem 64 Bit Fliesskommawert 8 Werte a 8 Bit. Es gibt jedoch einen Trend diese "Multimediaerweiterungen" auszubauen. Schon mit 3D-Now ging es mit 32 Bit Fliesskommazahlen und der Pentium 4 beherrscht SIMD mit zwei 64 Bit Zahlen. Die Cray bearbeitete dagegen 64 Worte a 64 Bit auf einmal.
Intels Itanium benutzt anders als der Pentium 4 nicht die Fliesskommaregister sondern führt eine eigene "Multimedia / SIMD" Einheit ein, mit 128 Bit Registern. Der Grund dafür ist in einem veränderten Nutzungsverhalten zu suchen: Die Herausforderungen sind heute nicht mehr die Textverarbeitung oder das Surfen im Internet. Die größten Anforderungen stellen Spiele, Videoschnitt und Dekodieren / Codieren von komprimierten Audio- und Videosignalen. Alle Anwendungen haben eine Gemeinsamkeit: Es werden sehr viele Daten gleichzeitig bearbeitet. Spezialhardware wie Prozessoren wie der GeForce 3 oder DSP (Digital Signal Prozessors) bearbeiten solche gleichartigen Signale schon immer indem sie mehrere Daten parallel oder mehrere Operationen parallel abzuarbeiten. TMS 32064xx DSP Prozessor erreicht so bei 600 MHz eine Leistung von 4800 MIPS, ein Pentium 4 benötigt dazu 1600 MHz, also einen erheblich höheren Takt.
Radikaler wurde dieses Konzept auf der Intel i860 CPU umgesetzt. Diese schaffte 1988 bei 33 MHz Takt 66 Megaflops Spitzengeschwindigkeit während der Standard damals bei zirka 5-10 Megaflops lag. Erreicht wurde dies durch SIMD Befehle, wofür die CPU je 32 Daten und 32 Adressregister hatte. Erreichbar war diese Spitzengeschwindigkeit aber nur durch Assembler, wodurch ihr bei Computern der Durchbruch verwehrt blieb, sie aber als Grafikkoprozessor und später in der Controllervariante i960 im Embedded Markt eine große Rolle spielte. Der i860 hat allerdings Intel auch die Tür zu den Supercomputern geöffnet. 1990erschient die iPSC mit 128 × i860 Chips und einer Maximalleistung von 7.6 GFLOP als erster Parallelrechner von Intel.
Aber schon hier es Spezialprozessoren für Grafikkarten, die dies wesentlich schneller können als die Prozessors im Rechner. Signalprozessoren sind heute die moderne Version der Vektorrechner der achtziger Jahre. Dies liegt darin das 3D Grafikoperationen sehr gut parallelisierbar sind. Ein Bild wird dort in kleine Polygone aufgeteilt auf die jeweils dieselben Rechnungen anzuwenden sind. Auch wenn heute aufwendige Spiele 10.000 oder mehr Polygone aufweisen sind dies bei der Auflösung von 1024 × 768 Punkten immer noch 70 Bildpunkte pro Polygon. Rechnet man die Leistung von Grafikprozessoren in GFLOP um so schlagen moderne Grafikprozessoren wie die GeForce 4 einen Pentium III leicht aus dem Rennen. Sie können das gerne auch selbst nachvollziehen. Einfach mal im DirectX-Setup (Ausführen "dxdiag") unter "Anzeige" "Direct 3D testen" anklicken: Die erste Animation macht ihre CPU, die zweite der Grafikprozessor.
Eine andere Methode die Geschwindigkeit zu steigern ist das Konzept von VLIW. Die Abkürzung steht für Very Long Instruction Word. Eingeführt wurde dies bei den DSP Prozessoren in den achtziger Jahren. Da diese sehr oft Daten einer Reihe von immer gleichen Operationen unterziehen mussten gruppierte man diese Instruktionen nacheinander und diese konnten sehr schnell und effizient bearbeitet werden. VLIW bedeutet z.B. in ein 256 Bit Wort 8 Befehle à 32 Bit unterzubringen.
Dieses Feature wurde bislang nicht auf Prozessoren für Desktops und Servern eingesetzt, weil hier die Software diese Codeabstraktion nicht gewährleistet und vor allem das ideale Gruppieren von Befehlen nicht trivial ist. Doch mit EPIC setzt der Itanium Prozessor auf eine ähnliche Architektur: Jeweils 3 Befehle à 41 Bit werden zusammengefasst. Das 123 Bit Bündel wird durch ein 5 Statusbits ergänzt die Hinweise über die Art der Befehle und ihre Abhängigkeiten enthalten. Man will hierdurch das Problem entschärfen, das es nicht möglich ist die Befehle parallel auszuführen. Bisher zeigt der Itanium keine Vorteile hinsichtlich der Geschwindigkeit durch EPIC. Intel will aber bei den Nachfolgern durch bessere Caches und ein optimiertes Design dies verbessern. Der Nachteil ist ein sehr großer Code, denn sind Befehle nicht parallel ausführbar, so blieben Positionen unbesetzt. So ist Itanium Code dreimal umfangreicher als Pentium 4 Code.
VLIW wurde zuerst in DSP (Digitalen Signalprozessoren) eingesetzt. Dort führt Sie zu beachtlichen Rechenleistungen bei kleinem Takt. Der DSP Prozessor TMS 320C64 schafft durch Kombination von VLIW und Parallelverarbeitung bei 600 MHz 4800 MIPS.
Es gibt einen großen Unterschied zwischen einem PC und einem Großrechner: Ein PC ist für eine Person da, ein Großrechner für 100 bis 1000. So ist es klar, dass es schon früh bei Großrechnern durch das Betriebssystem ein Multitasking gab. Mehrere Benutzer teilten sich die Rechenleistung, jeder bekam eine Zeitscheibe. Hatte der Rechner mehrere Rechenwerke - das war die Regel so war es relativ einfach jedem, Benutzer eines zuzuweisen, denn diese beeinflussten sich nicht gegenseitig. So erreichte der Großrechner meist seine theoretische Höchstleistung auch in der Praxis.
Seit dem 386 er Prozessor verfügt auch ein Intel Chip über Hardwaremöglichkeiten Multitasking durchzuführen. Doch erst mit Windows XP werden diese Features vollständig in ein Betriebssystem für den Endanwender eingebettet. UNIX hatte schon 1986 diese Features, und natürlich auch Linux seit 1992. Von der Parallelverarbeitung geht aber auch ein Impuls für die Prozessorentwicklung aus. So verfügt der Alpha 21364 über getrennte Funktionseinheiten mit eigenen Registern die jeweils einem Task zugeordnet werden. Benötigt ein anderer Task die Rechenleistung so wechselt man zu diesem. Der Gedanke daran ist der das Tasks eines Betriebssystems in der Regel unabhängig sind. Tasks werden zudem im Bereich von Millisekunden vom Betriebssystem gewechselt - Bei einem Gigahertz Prozessor liegen dann zwischen zwei Task Switches einige Hundert Tausend bis eine Million Taktzyklen dazwischen. Zudem kann man durch weitere Funktionseinheiten praktisch fliesend die Leistung steigern.
Heute bestehen Supercomputer und nicht mehr aus einigen großen Vektorprozessoren. Die Firma Cray die diese Rechner hergestellt hat, schaffte die Umstellung auf neue Architekturen nicht und wurde inzwischen von Silicon Graphics übernommen. Heutige Großrechner und Supercomputer bestehend aus einigen hundert bis einigen tausend Prozessoren der höchsten Leistungsklasse, die auch in PCs Verwendung finden. Der Grund dafür ist relativ leicht gefunden: die Geschwindigkeit eines Prozessors beruht auf der Schaltgeschwindigkeit seiner Elemente.
Diese lag schon bei einer Cray 1 bei 12 ns. Innerhalb von zehn Jahren konnte dieser Wert halbiert werden. Eine Cray C 90 konnte mit 16 Vektorprozessoren 50 mal schneller als eine Cray 1 rechnen, die Geschwindigkeit eines Vektorprozessors wurde aber in zwölf Jahren nur um den Faktor 3 gesteigert. Demgegenüber konnte im gleichen Zeitraum die Schaltgeschwindigkeit von Mikroprozessoren von 400 ns auf 8 ns gesenkt werden, ein Wert der nur wenig über dem der Cray lag. So erreichten auch Mikroprozessoren die gleichen hohen Leistungen einer Cray. Demgegenüber hatte Seymour Cray wenig Erfolg mit Galliumarsenid die Schaltgeschwindigkeit zu steigern. Er konnte nach 4 Jahren Verzögerung zwar die Cray 3 mit einer Taktfrequenz von 500 MHz und einer Leistung von 4 GFLOP pro Prozessor fertig stellen, doch der kommerzielle Erfolg blieb aus.
Die Geschwindigkeit war damit nur weiter zu steigern indem man sehr viele handelsübliche Mikroprozessoren zusammen zu einem Rechner fügte. Der erste Prototyp dieser Klasse kam 1992 auf den Markt. Heute beherrschen diese Rechner den gesamten Großcomputer Markt. Ein weiterer Vorteil ist, dass man ohne Neuentwicklung auch kleinere Rechner für jede gewünschte Größe bauen kann. IBM entwickelt z.B. Minicomputer und Großrechner auf Basis der schnellsten Power PC Chips (wie Sie auch in den Apples eingesetzt werden), Intel auf Basis der Pentium II+III Xeon Serie (multiprozessorfähig mit mehr Cache) und Digital auf Basis des Alpha Chips.
Der erste dieser Rechner war die CM-2 1987, sie bestand aus nicht weniger als 65536 Prozessoren mit einer Gesamtleistung von 10 GFLOP. Auch wenn man seither nicht mehr ganz so viele Prozessoren einsetzt, in den schnellsten Rechnern der Welt arbeiten immer noch über Tausend Mikroprozessoren von Sun, Alpha, IBM/Motorola oder Intel an einem Problem.
Der einzelne Rechner kann entweder einen lokalen Speicher besitzen oder über einen gemeinsamen großen Hauptspeicher verfügen. So hat sich heute die Architektur stark verändert. Es geht heute primär nicht mehr um immer schnelleren Schaltzeiten, sondern um eine verbesserte Kommunikation zwischen den Prozessoren und dem Speicher. Nur wenn man ein Programm so entwerfen kann, dass es möglichst alle Prozessoren gleichmäßig ausnutzt, erreicht man eine hohe Rechenleistung. Bei bestimmten Problemen ist dies überhaupt nicht möglich. So werden Filme oder Videos die komplett am Computer gerechnet werden besser auf mehreren hundert kleinen Workstations ohne Festplatte gerechnet, da ein Bild weitgehend unabhängig vom nächsten Bild ist.
Es gibt heute einige Architekturen die schon das Prinzip "Mehrere Prozessoren auf einem Chip" unterstützen. Ein solches ist z.B. der XPACT 128 ES von PACT. Es handelt sich um einen Prozessor der nicht weniger als 128 Recheneinheiten auf dem Chip hat. Er erreicht damit mit 27.5 Millionen Transistorfunktionen eine Geschwindigkeit von 50 GOps bei einer Verlustleistung von 20 Watt. Dagegen hat ein Pentium 4 42 Millionen Transistoren, erreicht 6 GOps bei 50 Watt Verlustleistung.
Der wesentliche Punkt zur Ausnützung dieser Rechenleistung ist es die Prozessoren gleichmäßig auszunutzen ohne einen Overhead für die Synchronisation und den Datenaustausch zu erhalten. Derzeit leisten dies nur Spezialsprachen, doch der Trend geht in Richtung spezieller C oder Pascal Dialekte die dieses ebenso leisten. Der Einsatzbereich solcher Prozessoren ist da wo heute schon SIMD und VLIW benutzt werden, also bei Signalprozessoren oder allen Arten der Kodierung, Dekodierung und Bearbeitung von Streams wie Spielen oder Videoschnitt. Anders als Signalprozessoren können solche Entwicklungen aber auch eingesetzt werden wo sehr viele Tasks anfallen - Ein Webserver muss z.B. hunderte von HTTP Anfragen bearbeiten, ein Datenbank Server entsprechende Datenbankanfragen.
Der wichtigste Punkt ist jedoch das eine solche Architektur besser skalierbar ist : Stieg in den vergangenen Jahren die Integrationsdichte so wurde immer ein neuer Prozessor oder zumindest ein verbesserter Kern entworfen. Hier könnte man einfach die Zahl der Recheneinheiten vergrößern. Dies geht natürlich auch nicht so einfach und bis in enorme Größen, aber es ist prinzipiell leichter durchführbar als eine Neuentwicklung.
Der größte Supercomputer auf Basis von PC-Prozessoren ist IBMs ASC White. Er besteht aus 8192 PowerPC 3 Prozessoren mit je 375 MHz (eine Version für Multiprozessorsysteme, aber ansonsten mit denen in Macs vergleichbar) zusammengefasst in 512 Knoten mit je 16 Prozessoren. Er belegt eine Fläche von 1100 qm und verbraucht 1.3 MWatt Strom. Er erreicht dank der Vektoreinheit Altivec mit spezieller Software bei SIMD Operationen eine Spitzenleistung von 12.3 TFLOP, also 12300 Milliarden Fließkommaberechnungen pro Sekunde
Ein Problem das die Verbindung von mehreren Prozessoren ergibt, wurde schon in den sechziger Jahren von Amdahl erkannt. Er erkannte einen Zusammenhang mit der Anzahl der Prozessoren und der zu erwarteten Rechenleistung die seitdem Amdahls Gesetz heißt und in etwa einer logarithmisch ansteigenden Kurve ähnelt. Der Zusammenhang ist folgender: Der absolute Zugewinn an Rechengeschwindigkeit durch einen weiteren Prozessor ist um so kleiner je mehr Prozessoren man betreibt.
Dies hat primär zwei Ursachen: Als erstes wird es nie gelingen, ein Problem so in kleine Teilaufgaben aufzuspalten, dass man alle Prozessoren gleich stark belasten kann, je mehr Prozessoren man hat desto schlechter geht dies. Es gibt auch Problemstellungen die gar nicht oder schlecht parallelisierbar sind. Das zweite ist natürlich das mit jedem weiteren Prozessor der Overhead für die Kommunikation ansteigt. Die Netzbandbreite muss durch die Anzahl der Prozessoren geteilt werden, jeder bekommt mindestens neue Daten und liefert Ergebnisse zurück, oftmals aber muss er mit anderen Prozessoren kommunizieren. Dieser Aufwand steigt exponentiell mit der Anzahl der Prozessoren an und limitiert so die Geschwindigkeit
Obgleich technisch benachteiligt etabliert sich seit einigen Jahren eine neue Rechnerarchitektur. Heutige Supercomputer aus PC Prozessoren verfügen über eine ausgefeilte Technologie wie Hochgeschwindigkeitsbusse zwischen einzelnen Prozessoren oder Knoten einzelner Prozessoren. Diese Technik muss man speziell entwickeln und sie ist dadurch teuer. So kostet ein Supercomputer auch viel Geld.
Neu sind dagegen einfache Rechnercluster. Aus Jux vor ein paar Jahren entstanden, um die Leistung des Betriebssystems Linux zu demonstrieren wurde bald eine marktfähige Entwicklung. Die Idee ist nun überhaupt keine spezielle Technologie zu verwenden sondern normale PCs oder Workstations über ein Netzwerk zu verbinden und an jeden über einen Master eine Aufgabe zu schicken. Ein PC kostet etwa 2000-3000 DM, eine Workstation 7000-10.000 DM ein Knoten mit einem Prozessor in einem Supercomputer etwa 40.000 DM, da ist es klar das man dadurch viel Geld speichern kann. Derartige Cluster haben ihren Einsatzzwecke vor allem dann, wenn man Aufgaben so splitten kann, das jede Teilaufgabe längere Rechenzeit benötigt. Es gibt solche Gebiete wie z.B. Trickfilmeffekte, Klimaprognosen, Molekülsimulationen wo dies gegeben ist. Der populärste Cluster - SETI @ Home benutzt über das Internet 250.000 Rechner um nach außerirdischen Leben zu suchen. Rechnet man die Rechenleistung zusammen, so ist es der größte Rechner der Welt.
Es steht zu erwarten, dass man auch diese Architektur zukünftig in Mikroprozessoren vorfinden wird. Schon heute haben Mikroprozessoren mehrere Rechenwerke die parallel arbeiten können und damit höhere Leistungen bei einer Aufgabe liefern, die mehrere Rechenwerk parallel beschäftigen kann. Da dies vor allem auf die Verarbeitung von Multimedia Inhalten zutrifft, steht zu erwarten, dass man in Zukunft auch immer mehr Rechenwerke pro Prozessor integrieren wird. Schlussendlich löst dies auch ein anderes Problem: innerhalb eines Prozessors wird mit steigender Taktfrequenz das Problem immer größer, dass alle Bestandteile im gleichen Takt arbeiten müssen, denn elektrische Signale brauchen eine endliche Zeit zum durchqueren eines Prozessors. Enthält nun ein Prozessor mehrere unabhängige Rechenwerke, so kann jedes für sich eine eigene kleine Einheit bilden. Die Taktfrequenz ist damit weiter steigerbar. IBM will dies bei den nächsten PowerPC Prozessoren so umsetzen.
Allgemein gibt es mindestens 3 Probleme bei der fortschreitenden Miniaturisierung:
Das Problem der konstanten Lichtgeschwindigkeit kann man durch mindestens drei Wege lösen:
Doch gibt es schon Ansätze sich davon zu lösen. Solche asynchronen CPUs sind in der Anfang
ihrer Entwicklung. Sie verbrauchen zudem weniger Strom. Sie versprechen noch die besten
Möglichkeiten Geschwindigkeit zu steigern indem man die Geschwindigkeit der einzelnen Einheiten
optimal ausnutzt. Die Lichtgeschwindigkeit selbst kann man dadurch natürlich nicht überlisten,
doch wenn man es schafft unabhängige Codeteile nacheinander auszuführen (eine Frage des
Compilers) dann ist es nicht von Bedeutung, das man das Ergebnis des letzten Codes noch nicht
hat, wenn der nächste Befehl diese Werte nicht benötigt
Bei der Speichertechnik hat man noch solche Probleme nicht. Obgleich ein 64 Megabit DRAM nur ein Bruchteil eines Pentium 4 kostet besitzt er 50 % mehr Transistoren und ist schon seit 3 Jahren auf dem Markt: Ein DRAM besteht aus riesigen Flächen mit Speicherzellen je aus einem Kondensator und einem Transistor. Er ist praktisch das Idealbild eines zukünftigen Prozessors: Kleine Wege, stromsparende Anordnung. Man kann ihn daher weitaus besser verkleinern als ein einen Prozessor. So entstehen heute DRAM in 300 nm Technik - Bei Prozessoren schon 1996 beim Pentium MMX Standard, üblich sind bei Prozessoren derzeit 130 nm. Man hat hier noch mehr Luft bis die Grenze erreicht ist.
Hinsichtlich der Geschwindigkeit hat man auch eine zweite Alternative: Germanium als Halbleiter. Die ersten Transistoren bestanden aus Germanium. Später erst ging man zu Silizium als Halbleiter über. Silizium ist preiswerter in der Herstellung und die Technologie ist weiter als bei Germanium, welches ein sehr seltenes Element ist. Aber Germanium hat Schaltungstechnische Vorteile: Schaltelemente in Germanium schalten im Picosekunden Bereich, also 100-1000 mal schneller als Siliziumelemente, zudem senden Germanium Transistoren beim Schalten neben Elektronen auch Photonen aus - Lichtteilchen die man z.B. praktisch nutzt wenn man elektrische Signale in Lichtsignale umwandeln möchte z.B. als Wandler für Glasfaserkabel. Germanium hat zudem einen geringeren Widerstand und erzeugt so erheblich weniger Verlustwärme, wodurch das Abwärmeproblem gemildert wird.
Aber die Technologie bei Germanium hinkt weit hinter der von Silizium zurück. In den achtzigern gab es eine Reihe von Supercomputern bei denen die kritischen Halbleiter aus Germanium bestanden, doch mit dem Aufkommen der Parallelrechner lohnte sich diese Technologie nicht. Keine Firma kann es sich leisten eine Technologie alleine weiterzuentwickeln, wenn die Konkurrenz ähnlich leistungsfähige Rechner aus Hunderten preiswerter PC Prozessoren, anstatt einigen wenigen superschnellen Vektorprozessoren baut. Daher laufen heute die Entwicklungen dahingehend die beiden Elemente Silizium und Germanium zu "verheiraten": Auf einem Wafer aus Silizium werden dünne Inseln oder Schichten aus Germanium aufgetragen, welche die Schaltgeschwindigkeit erheblich verbessern. Motorola ist optimistisch damit erheblich schnellere Chips herstellen zu können.
Auch das Jahr 2000 Problem zeigt das Software äußerst langlebig ist. Eigentlich ist es nicht die Software sondern die Daten und der Mensch. Die Daten sind es weil es eigentlich das ist was man produziert, und die will man auch nach 10 Jahren noch lesen können, Deswegen halten sich z.B. bei Datenbanken der uralte Standard dBASE so gut, weil Datenbanken ein Kernstück einer Verwaltung sind. Texte kann man notfalls ausdrucken, aber mit Kundendaten, Artikellisten etc. muss man arbeiten. Daher werden die Formate der Daten kaum geändert und daher gibt es eben auch in Zeiten mit viel Speicherplatz das Jahr 2000 Problem.
Das zweite ist der Mensch. Er lernt ungern um. Am liebsten arbeitet er immer mit demselben, auch wenn es vielleicht nicht das beste ist. Das hat dazu geführt das der Standard des PC vom Büro in den Heimbereich gewandert ist und diese Art von Computer heute den Markt fast alleine beherrschen. Das führt dazu das sich andere Software gegen Microsoft so schwer tut, weil diese eben sehr häufig eingesetzt wird. Das führt aber auch dazu das Microsoft sich so schwer von DOS und 16 Bit trennt.
Gerechterweise muss man allerdings sagen das auch auf dem Hardwaremarkt neue Konzepte es schwer haben. Schlussendlich ist ein moderner Pentium III mehr eine Art großer 8086 Emulator als ein Prozessor, denn er tut nur so als wäre er ein 8086.... Viele revolutionäre Prozessoren sind wieder verschwunden, z.B. die Transputer, Prozessoren die man über eine spezielle Programmiersprache so programmieren konnte, das sie zusammen an einem Problem rechneten. Durch Zusammenschaltung mehrerer Transputer wurde das Problem schneller gelöst. Auch hier finden wir die Beharrlichkeit, bei allen kurzfristigen Neuerungen im PC Bereich. So wird auch Intel parallel zu ihrem neuen 64 Bit Prozessor noch weitere 32 Bit Prozessoren herausbringen, zu tief sitzt die Pleite des Pentium Pro, der unter Windows 3.1 und 95 langsamer als ein Pentium war, weil er nur mit 32 Bit Befehlen schnell war, und diese dort selten waren. Ähnlich wird es dem ersten 64 Bit Prozessor bei 32 Bit Befehlen gehen.
Die letzten 20 Jahre sind aber auch eine Zeit in der vieles geblieben ist. So war man Anfang der achtziger Jahre zum Teil der Meinung, das immer leistungsfähigere Prozessoren und immer komplexerer Mikrocode dazu führen könnten, das man Hochsprachen nativ als Befehlssatz nutzen könnte. Wenn man nicht von dem ausgeht was heute an Hunderten von Megabytes über die Platte schwappt sondern den Größen die damals BASIC Interpreter oder die Turbo Pascal Compiler hatten - 16-32 KByte - so war dies nicht tollkühn. Sicher wäre dies für die Entwicklung die immer mehr in Hochsprachen stattfindet ideal. Doch das wesentliche Hindernis ist, das schon heute ein Prozessor mit vergleichbar einfachen Befehlen nicht 100 % in Simulationen "beschrieben" werden kann (Pentium FDIV Bug lässt grüßen...). Bei den wesentlich komplexeren Hochsprachebefehlen wäre dies noch problematischer gewesen.
Dies dürfte auch der Grund sein, warum bis heute die seit 1998 propagierte Entwicklung eines JAVA Prozessors auf sich warten lässt.
Mit der Verwendung von Vektorprozessoren hat man sich bei NEC wieder diesem Prinzip zugewandt, nachdem man in den vergangen 10 Jahren in Supercomputern fast nur PC Prozessoren verwandt hat. Nur sind es diesmal integrierte Schaltkreise wie andere PC Prozessoren. Für die Wissenschaftlichen Aufgabenstellungen haben sich Vektorprozessoren als ideal erwiesen. Die effektive Performance (das was man im Durchschnitt über einen Anwendung erhält geteilt durch die theoretisch ermittelte max. Leistung) liegt bei Vektorprozessoren bei 30-50 %, bei PC Prozessoren nur bei 5-10 %. Allerdings ist der Earth Simulator durch diese Eigenentwicklung auch wesentlich teurer als der ASCI White. Man erkennt dies auch am Unterschied in der Peak Performance (theoretisch erreichbare Leistung) und der Linpack Performance (Lösung eines Gleichungssystems, ein sehr gut parallelisierbarer Benchmark).
Problematisch bei Supercomputern - und dies dürfte noch schwieriger werden- ist der Stromverbrauch. Der enorme Flächenverbrauch der Rechner gegen die Fußballfelder wie kleine Spielplätze wirken ist darauf zurückzuführen. 7 MW Abwärme müssen erst mal abgeführt werden. Die Rechner selber sind wesentlich kleiner, aber die Kühlung nimmt viel Platz ein. Dies ist ein ernstes Problem, da in den letzten Jahren der Flächenverbrauch mit jeder neuen Generation angestiegen ist. So gibt es schon Überlegungen statt den Stromschluckenden PC Prozessoren ihre Embedded Varianten zu verwenden. Diese haben zwar nur einen Bruchteil der Leistung, verbrauchen aber noch wesentlich weniger Strom. Man würde dies durch eine große Zahl z.B. 65535 Power PPC 7455 Prozessoren ausgleichen.
Heute gibt es drei Technologien bei Supercomputern:
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.
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 |