70
1-1 TECHNISCHE UNIVERSITÄT MÜNCHEN Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Datenverarbeitung Prof. Dr.-Ing. K. Diepold Computersysteme SS 2015 Takt Befehls-Cache Kap. 6.3 TLB BD-Phase Kap. 4.2.3, 4.2.4, BH-Phase Kap. 4.2.1, 4.2.2 Zusatz- Logik für komplexe Befehle AF-Phase Integer Rechenwerk/ALU Kap. 4.2.5, 4.2.6, 4.4.4 AF-Phase Gleitkomma Rechenwerk/ALU Kap. 4.4.4 Mikroprogramm- Logik, ~ Kap. 4.4.5 Daten-Cache Kap. 6.3 TLB Bus Kap. 1.1.2 Sprung-Vorher- sage, ~Kap. 8.2 Logik für Bus- Schnittstelle Kap. 5

Skript SS 2015 - mzwebserver.ldv.ei.tum.de · (z.B. CNC-Fräßmaschine) verwendet wird oder -5 V zur ±5 V-Versorgung älterer Floppy- Controller, die zur Verstärkung des Lesesignals

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

1-1

TECHNISCHE UNIVERSITÄT MÜNCHEN Fakultät für Elektrotechnik und Informationstechnik L e h r s t u h l f ü r D a t e n v e r a r b e i t u n g Prof. Dr.-Ing. K. Diepold

Computersysteme

SS 2015

Takt

Befehls-CacheKap. 6.3

TLB

BD-PhaseKap. 4.2.3,4.2.4,

BH-PhaseKap. 4.2.1,4.2.2

Zusatz-Logik fürkomplexeBefehle

AF-Phase IntegerRechenwerk/ALUKap. 4.2.5, 4.2.6, 4.4.4

AF-Phase GleitkommaRechenwerk/ALUKap. 4.4.4

Mik

ropr

ogra

mm

-Lo

gik,

~ K

ap. 4

.4.5

Daten-CacheKap. 6.3

TLB

BusKap. 1.1.2

Sprung-Vorher-sage, ~Kap. 8.2

Logik für Bus-SchnittstelleKap. 5

1-2

Inhalt

1! Motivation: Wie funktioniert ein Computer? ................................ 1-3!1.1! Komponenten eines Computers ............................................................................................... 1-3!

1.1.1! Peripherie-Geräte und Netzteil ...................................................................................... 1-5!•! Netzteil ................................................................................................................................... 1-5!•! Grafikkarte ............................................................................................................................. 1-8!•! DVD-ROM .......................................................................................................................... 1-17!•! DVD-Brenner ...................................................................................................................... 1-25!•! Festplatte .............................................................................................................................. 1-26!

1.1.2! Komponenten auf der Hauptplatine - Überblick ........................................................... 1-34!•! Prozessor .............................................................................................................................. 1-36!•! Arbeitsspeicher .................................................................................................................... 1-41!•! Busse .................................................................................................................................... 1-48!•! GMCH = Graphics and Memory Controller Hub (B) ......................................................... 1-57!•! ICH5 = Input/Output Controller Hub (5. Generation) (C) .................................................. 1-57!•! SIO-Controller = Super Input/Output Controller (D) .......................................................... 1-57!

1.2! Von Neumann-Architektur ....................................................................................................... 1-58!1.3! Harvard-Architektur ................................................................................................................. 1-62!1.4! Vom Algorithmus zum Prozessor – Abstraktionsebenen .................................................... 1-63!

1-3

1 Motivation: Wie funktioniert ein Computer? In diesem Kapitel geben wir Ihnen eine kleine Einführung in den Vorlesungsstoff der Computertechnik. Dieses Kapitel ist jedoch mehr als nur eine Einführung. Es dient als Überblick über den Aufbau und die Funktionsweise gängiger Arbeitsplatzrechner. Während dieses Kapitel dabei einen kompletten PC betrachtet, fokussieren die restlichen Kapitel fast ausschliesslich auf den Prozessor. Ziel dieses Kapitel ist es, Ihnen das Umfeld von Prozessoren und die Interaktion von Prozessoren mit diesem Umfeld näherzubringen. Wenn Sie verstanden haben, welche Aufgabe Prozessoren in diesem Umfeld haben, dann kennen Sie automatisch auch das Funktionsvermögen von Prozessoren, wissen also, was so ein Prozessor eigentlich können muss. Dies ist die Voraussetzung für die restlichen Kapi-tel dieses Skripts, in denen wir uns einen eigenen Prozessor zusammenbauen werden.

1.1 Komponenten eines Computers

In diesem Kapitel öffnen wir einen gewöhnlichen Arbeitsplatzrechner und schauen uns einmal an, was da alles drinnen steckt. Dabei werden wir die zutage tretenden Komponenten hinsichtlich Funktion und Aufbau untersuchen. Nachdem wir uns bis zu den auf der Hauptplatine befindlichen Komponen-ten vorgearbeitet haben, werden wir durch eine Abstraktion (Verstecken von Details) die prinzipielle Funktionsweise des PCs zu erläutern. Nach dieser Abstraktion werden wird wieder detailreicher, wenn wir das reale (nicht abstrahierte) Zu-sammenspiel der einzelnen Komponenten betrachten. Nachfolgende Abbildung zeigt den Arbeitsplatzrechner, den wir im Folgenden zerlegen werden.

Abb. 1: Computer-Arbeitsplatz

1-4

Wir schrauben die Seitenverkleidung ab …

Abb. 2: Öffnen eines Computers

… und identifizieren die dann erscheinenden Komponenten.

DB

DR

DL

FPGK

FW

NT

Abb. 3: Geräte in einem Computer

1-5

1.1.1 Peripherie-Geräte und Netzteil • Netzteil Das mit NT gekennzeichnete Gerät ist das Netzteil. Es dient zur Stromversorgung des PCs.

Abb. 4: Computer-Netzteil

Computernetzteile wandeln die aus der Steckdose kommenden 230 V Wechselspannung in folgende Gleichspannungen um:

− +3,3 V und +5 V für das Mainboard (die grosse grüne Platine) und die darauf befindlichen bzw. damit verbundenen elektrischen Bauteile.

− +12 V für die Motoren der Laufwerke und Lüfter.

− -5 V und -12 V, die heutzutage meist gar nicht mehr verwendet werden, sondern zumeist nur

noch aus Gründen der Kompatibilität zu älteren Geräten vorhanden sind (z.B. -5 V und -12 V für den ISA-Bus, der in der heutigen Zeit fast nur noch in der Industrie zur Maschinensteuerung (z.B. CNC-Fräßmaschine) verwendet wird oder -5 V zur ±5 V-Versorgung älterer Floppy-Controller, die zur Verstärkung des Lesesignals noch Operationsverstärker ohne Ladungspum-pe einsetzen).

Insbesondere der hohe Stromverbrauch des Hauptprozessors und der Grafikkarte erfordern die Be-reitstellung hoher Ströme. Nachfolgende Abbildung zeigt eine typische Aufteilung der Leistung auf die +3,3 V, +5V und +12 V Leitungen. Die Leitung mit der Bezeichnung +5 VSB (SB = Standby) dient zur Versorgung bestimmter Rechner-Komponenten im Standby-Modus (z.B. Arbeitsspeicher).

1-6

Ausgangsspannung +3,3 V +5 V +5 VSB +12 V

Strom (max.) 26 A 42 A 2,5 A 18 A

Leistung (max.) 12,5 W 216 W

max. Gesamtleistung 450 W

220 W

Abb. 5: Typische Ausgangsleistung eines ATX-Netzteils

Aufgrund dieser hohen Ströme erfolgt die Spannungsreduktion von 230 V auf die gewünschten Aus-gangsspannungen nicht durch einen gewöhnlichen Transformator, sondern durch den Einsatz eines Schaltnetzteils. In PCs eingesetzte Schaltnetzteile haben oft folgenden Aufbau:

Gleich-richter

~ °

° °

°=

Leistungs-Schalter

° °

°

HF-Trafo

°°

°°

Gleich-richter

~ °

° °

°

Tiefpass-Filter

°

°

°

°•

••

••

=

Potential-trennung Regler

°

°• °

°

°°

°°

=

230 V ~5 V =

1 2 3 4 5

67 Abb. 6: Prinzip-Aufbau eines Schaltreglers

Eine mögliche Zuordnung der Komponenten ist in nachfolgender Abbildung angegeben.

1

23

2

3

3

4

5

6

7

Abb. 7: Identifizierung von Schaltregler-Komponenten

1-7

Der in Abb. 6 gezeigte Schaltregler funktioniert wie folgt:

− Die Netzspannung (230 V Wechselspannung, 50 Hz) wird an einen Gleichrichter (1) angelegt, der daraus eine Gleichspannung generiert.

− Über einen Leistungsschalter (2) wird diese Spannung der Primärseite eines HF-Trafos (3) zu-geführt. Der Leistungsschalter sorgt durch permanentes Ein- und Ausschalten dafür, dass die am HF-Trafo angelegte Spannung mit einer Frequenz von ca. 20 – 200 kHz ein- und ausge-schaltet wird.

− Der HF-Trafo (3) überträgt die an der Primärseite angelegte Spannung auf seine Sekundärseite. − Der Gleichrichter (4) erzeugt aus der sekundärseitigen Wechselspannung wieder einen rein po-

sitiven Spannungsverlauf, der durch das Tiefpassfilter (5) auf einen Mittelwert gebracht wird. − Dieser Mittelwert entspricht der aktuellen Ausgangsspannung. − Die Ausgangsspannung dient als Eingang für den Regler (6), der zur Aufgabe hat, die Aus-

gangsspannung auf einem bestimmten Niveau zu halten. Dies erreicht der Regler durch Ände-rung des An-/Aus-Verhältnisses des Signals, das den Leistungsschalter steuert. Die Ausgangs-spannung des Schaltnetzteils ist dabei lediglich abhängig vom Tastverhältnis (Verhältnis der An-/Aus-Zeit) des Signals, das den Leistungsschalter ein- bzw. ausschaltet.

− Die Potentialtrennung (7), die in der Regel durch Optokoppler erreicht wird, verhindert, dass die 230 V Netzspannung über den Regelkreis zum Ausgang des Netzteils gelangt.

Zwar müssen in Schaltreglern auch Trafos eingesetzt werden, diese können jedoch wesentlich kleiner gebaut werden, da sie durch die Verwendung einer hohen Frequenz (20 – 200 kHz statt 50 Hz Netz-frequenz) wesentlich mehr Leistung (proportional zur Frequenz) übertragen können und die Win-dungsanzahl somit gering bleiben kann. Wenige Windungen auf der Sekundärseite ⇔ geringer Innenwiderstand der Sekundärseite ⇔ in der Sekundärseite wird wenig Leistung in Wärme umgewandelt ⇒ guter Wirkungsgrad. Nachfolgend angegebene Steckerbelegung eines ATX-Netzteils zeigt, dass aufgrund der hohen Strombelastung bei +3,3 V und +5 V diese Spannungen über mehrere Kontakte parallel übertragen werden.

11

12

13

14

15

16

17

18

19

20

2

3

4

5

6

7

8

9

10

1

+3,3 V

GND

+5 V

GND

+5 V

GND

PW_OK

+5 VSB

+12 V

+3,3 V

-12 V

GND

PS_ON

GND

GND

GND

-5 V

+5 V

+5 V

+3,3 V

Abb. 8: Steckerbelegung eines (ATX-) Netzteils

Die Signale PS_ON und PW_OK haben folgende Funktion:

− PS_ON ist die Abkürzung für Power supply on. Dieses Signal ist ein Eingangs-Signal und dient dazu, das Netzteil einzuschalten. Die Leitung PS_ON muss dabei auf Masse (GND für engl. Ground) gelegt werden.

− PW_OK ist die Abkürzung für Power ok. Dieses Signal liegt beim Einschalten des Netzteils auf Masse und wechselt auf einen Pegel von etwa 5 V, wenn sich die vom Netzteil gelieferte Span-nung nach dem Einschalten stabilisiert hat. PW_OK ist auf der Hauptplatine mit dem Taktgeber des Prozessors verbunden und sorgt über die Reset-Leitung dafür, dass der Prozessor erst dann mit der Abarbeitung von Befehlen beginnt, wenn sich die Versorgungsspannung stabili-siert hat. Auf diese Weise wird verhindert, dass der Prozessor in einen undefinierten Zustand gerät.

1-8

• Grafikkarte Die in Abb. 3 auf Seite 1-4 mit GK gekennzeichnete Einsteck-Platine ist die Grafikkarte.

Speicherchips mit Kühlkörper

AGP-Anschluss(Verbindung zum Prozessor)

BIOS

Anschluss für denMonitor (DVI)

Anschluss für denMonitor (VGA)

GPU mit Kühlkörper(GPU = GraphicsProcessing Unit)

Stecker für zusätzliche Stromversorgung

Abb. 9: Grafikkarte

Die Grafikkarte besteht aus folgenden Komponenten:

− GPU (Graphics Processing Unit): Der Prozessor der Grafikkarte. Die GPU implementiert die von der Grafikkarte bereitgestellten Funktionen:

+ Kommunikation mit dem PC-Prozessor (hier über AGP) + Ansteuerung der Speicherchips + RAMDAC → Wandlung der digitalen Bildinformationen in analoge Bildschirm-Signale (s.u.) + Kommunikation mit dem Monitor (über VGA oder DVI) + Beschleunigung von 3D-Funktionen

− Speicherchips, um Bilddaten und sonstige anfallende Daten abspeichern zu können

− BIOS (Basic Input Output System), um die Grafikkarte auch schon vor dem Laden von Grafik-

kartentreibern verwenden zu können (s.u.)

− AGP-Anschluss (oder auch PCI-Express) zur Kommunikation mit dem PC-Prozessor

− VGA- bzw. DVI-Anschluss zur Kommunikation mit dem Monitor

1-9

Die Grafikkarte hat im wesentlichen zwei Aufgaben:

− Sie dient als Schnittstelle zwischen Computer und Bildschirm.

− Sie beschleunigt grafikrelevante Berechnungen (insbesondere 3D-Berechnungen). Als Schnittstelle zwischen Computer und Bildschirm übersetzt die Grafikkarte die Daten, die der Pro-zessor liefert, in Signale, die der Bildschirm zur Anzeige benötigt. Die Grafikkarte verfügt über einen sog. Grafik-Speicher (oft auch Video-Speicher genannt).

− In diesen Speicher schreibt der Prozessor die Daten, die er als Bild angezeigt bekommen will. − Die Grafikkarte liest diese Daten aus und erzeugt aus diesen Daten die entsprechenden Bild-

schirm-Signale. Die einzelnen Byte im Video-Speicher werden direkt auf Pixel1-Farben abgebildet. Die Farbe eines einzelnen Pixels ergibt sich dabei aus der Kombination eines roten (R), grünen (G) und blauen (B) Bildschirmpunkts. Nachfolgende Abbildung zeigt, wie die im Video-Speicher abgelegten Byte der In-tensität (Helligkeit) der jeweiligen Bildschirmpunkte (Grundfarben) zugeordnet werden.

R G B R G B R

R G B R GB

R G B R G B R

R G B R GB

0x3F

0x00

0x78

0xFF

0xE8

pro Grundfarbe 1 Byte⇒ 24 Bit Farbtiefe

1 Pixel

Video-Speicher in der Grafikkarte Bildschirm

Abb. 10: Abbildung der im Video-Speicher abgelegten Werte auf die Intensität von Bildschirm-Punkten

Durch Ändern einzelner Byte im Grafik-Speicher kann der Prozessor die Intensität jedes rot (R)-, grün (G)- oder blau (B)-Anteils eines Pixels ändern. Soll ein Pixel beispielsweise Rot erscheinen, werden den zugehörigen drei Byte im Grafik-Speicher die Werte R = 0xFF, G = 0x00, B = 0x00 zugeordnet. Grün entspricht dann R = 0x00, G = 0xFF, B = 0x00 und ein dunkles Grau etwa R = 0x60, G = 0x60, B = 0x60. Zum Verständnis der Umwandlung der im Grafik-Speicher der Grafikkarte abgelegten Byte in ein Bild-schirm-Signal ist es sinnvoll zu wissen, wie diese Bildschirmsignale überhaupt aussehen. Bildschirm-Signale, die aus dem DVI-Anschluss kommen, sind digital und können in der Regel nur von TFT-Bildschirmen verwendet werden. Die Signale, die aus dem VGA (Video Graphics Array)-Anschluss einer Grafikkarte kommen, sind analog und so aufgebaut, dass sie sich sehr leicht von einem Röhrenmonitor verarbeiten lassen. Aus diesem Grund schauen wir uns erst einmal kurz an, wie ein Röhrenmonitor funktioniert (auch wenn diese gerade von TFT-Bildschirmen vom Markt gedrängt werden).

1 Pixel ist ein aus picture element zusammengesetztes Kunstwort und bezeichnet die Punkte, aus denen gerasterte Bilder aufgebaut sind. Die Farbe eines Pixels wird dabei aus den drei Grundfarben rot, grün und blau zusammengemischt.

1-10

Ein (Farb-)Röhrenmonitor enthält drei Kathoden, die jeweils einen Elektronenstrahl aussenden. Jeder Elektronenstrahl (und somit jede Kathode) ist dabei für eine der drei Grundfarben (RGB) zuständig. Die drei Elektronenstrahlen können in der Röhre durch sog. Ablenkspulen derart abgelenkt werden, dass der Auftreffpunkt der Elektronenstrahlen auf der Bildschirmvorderseite horizontal und vertikal verschoben werden kann. Durch Anlegen einer geeigneten Spannung kann man den Elektronenstrahl somit an einer beliebigen Stelle auf der Vorderseite der Bildröhre auftreffen lassen.

Abb. 11: Durch geeignete Spannungen an den Ablenkspulen kann der Auftreffpunkt der drei Elektronenstrahlen beliebig in horizontaler und vertikaler Richtung verschoben werden.

Um aus den Elektronenstrahlen Farben erzeugen zu können, sind innen auf der Bildschirmvorderseite abwechselnd phosphorhaltige Stoffe aufgebracht, die bei Elektronenbeschuss entweder Rot, Grün oder Blau leuchten. Damit die Elektronenstrahlen immer nur die drei zu einem bestimmten Pixel gehö-rigen Punkte treffen und nicht auch noch benachbarte, ist zwischen den Kathoden und der fluoreszie-renden Schicht noch eine Lochblende eingebaut.

R G B R G B R

R G B R GB

R G B R G B R

R G B R GB

…Fluoreszierende Schicht

Lochblende

3 Elektronenstrahlen

Spulen zur Ablenkungder Elektronenstrahlen

Kathoden

Abb. 12: Die von den Kathoden abgegebenen drei Elektronenstrahlen werden von Spulen

abgelenkt und treffen dann auf eine Lochblende, welche die Elektronenstrahlen genau auf die rot, grün oder blau fluoreszierenden Punkte des gewünschten Pixels fokussiert.

1-11

Führt man die drei Elektronenstrahlen wie in nachfolgender Abbildung angegeben über den Bild-schirm, werden alle rot, grün und blau fluoreszierenden Punkte von den zugehörigen Elektronenstrah-len getroffen.

Abb. 13: Weg der drei Elektronenstrahlen über den Monitor

An den Ablenkspulen zur horizontalen Ablenkung muss also eine periodisch ansteigende Spannung (Sägezahn) Hsync anliegen, so dass die drei Elektronenstrahlen von links nach rechts wandern.

− Hat Hsync einen bestimmten negativen Wert, dann befindet sich der Elektronenstrahl ganz links.

− Hat Hsync einen bestimmten positiven Wert, dann befindet sich der Elektronenstrahl ganz

rechts. Bei den Ablenkspulen zur vertikalen Ablenkung muss ebenfalls eine von einem bestimmten negativen Wert bis zu einem bestimmten positiven Wert ansteigende Spannung Vsync angelegt werden, so dass die drei Elektronenstrahlen von oben nach unten wandern. Vsync muss dabei jedoch eine um die Anzahl der Bildzeilen niedrigere Frequenz als Hsync haben. So gelangen die drei Elektronenstrahlen erst dann am unteren Ende der Bildröhre an, wenn alle Zeilen von links nach rechts durchlaufen wur-den. Nachfolgende Abbildung zeigt die von einem VGA-Anschluss gelieferten Signale. Hsync und Vsync sind dabei die gerade besprochenen Spannungen zur Positionierung der drei Elektronenstrahlen, R, G, und B sind die Spannungen, welche die Strahlungsintensität der zugehörigen Kathoden und damit die Intensität jeder Pixel-Grundfarbe steuern.

R

G

B

Hsync

Vsync t

1. Zeile 2. Zeile letzte Zeile 1. Zeile

1. Bild 2. Bild Abb. 14: Signale am VGA-Anschluss

1-12

Zur Umwandlung der im Grafik-Speicher abgelegten Daten in die analogen Signale R, G und B ver-wenden Grafikkarten sog. RAMDACs. Diese RAMDACs wenden auf die im Grafik-Speicher (Grafik-RAM; RAM = Random Access Memory, s.u.) abgelegten Byte eine Digital-/Analog-Wandlung (DAC = Digital Analog Converter) an. Die Daten werden dabei byteweise ausgelesen und dann in die analo-gen Spannungen umgewandelt, die am VGA-Anschluss (vgl. Abb. 14) der Grafikkarte herauskommen. Nachfolgende Abbildung zeigt den Verlauf der Daten auf dem Weg vom Prozessor zum Bildschirm.

0x3F

0x00

0x78

0xFF

0xE8

RAMDAC (für Rot)

RAMDAC (für Grün)

RAMDAC (für Blau)

•••••

•••••

••••

Prozessor Video-Speicherauf der Grafikkarte

Digital-Analog-Wandler(RAMDAC)

VGA-Buchse

c:\>

Bildschirm

Abb. 15: Datenverlauf vom Prozessor zum Bildschirm

Die Darstellung von Bildern auf dem Bildschirm funktioniert wie folgt:

− Der Prozessor schreibt die Farbwerte für die Pixel in den Video-Speicher.

− Die im Video-Speicher liegenden Daten werden permanent vom RAMDAC in VGA-Signale übersetzt und über die VGA-Buchse an den Bildschirm ausgegeben, der das Bild dann anzeigt.

− Das am Bildschirm angezeigte Bild bleibt solange dasselbe, bis der Prozessor andere Werte in

den Video-Speicher der Grafikkarte schreibt. Die Daten, die der Prozessor in den Video-Speicher schreibt, müssen jedoch erst berechnet werden, was im Vergleich zu den von der Grafikkarte auszuführenden Aktionen (Auslesen der Daten aus dem Grafik-Speicher und Wandlung durch die RAMDACs [und der Darstellung am Bildschirm]) relativ lange dauert. Nehmen Sie an, auf den Bildschirm soll eine Linie mit einer bestimmten Dicke und einer bestimmten Länge gezeichnet werden, wie z.B. die nachfolgend abgebildete Linie.

Abb. 16: Linie

Um im Grafik-Speicher für jedes Pixel die Intensität der drei Grundfarben Rot, Grün und Blau ablegen zu können, muss der PC-Prozessor zunächst berechnen, welche Pixel beim Zeichnen der Linie mit welcher Farbe eingefärbt werden müssen.

1-13

Ausgehend von einer mathematischen Beschreibung der Linie, z.B. der Geradengleichung y = mx + t, kann man bestimmen, welche Pixel von der Linie überhaupt getroffen werden. Nachfolgende Abbildung zeigt, wie ein kurzer Ausschnitt der Linie auf den Pixeln2 zu liegen kommt.

einzelnePixel

Farbpunkteauf dem

Bildschirm

zu zeichnendeLinie

Abb. 17: Ausschnitt der Linie

Für alle Pixel, die von der Linie berührt werden, muss der Prozessor jetzt berechnen, zu welchem Teil die Pixel von der Linie bedeckt werden.

− Bedeckt die Linie den Pixel vollständig, wird er schwarz eingefärbt, d.h. im Grafik-Speicher wer-den an der entsprechenden Speicherstelle für Rot, Grün und Blau jeweils die Werte 0 eingetra-gen.

− Bedeckt die Linie die Pixel nur zu 40 Prozent, so trägt die Farbe der Linie (hier schwarz) auch

nur zu 40 Prozent zur Farbe des Pixels bei. Die restlichen 60 Prozent der Farbe des Pixels ent-sprechen der ursprünglichen Farbe des Pixels (bei uns also der Farbe weiss). Mit RGBschwarz = (0, 0, 0) und RGBweiss = (255, 255, 255) ergibt sich damit für die neue Farbe RGBneu = (0,4 ⋅ 0 + 0,6 ⋅ 255 , 0,4 ⋅ 0 + 0,6 ⋅ 255 , 0,4 ⋅ 0 + 0,6 ⋅ 255), also der neue Farbwert RGBneu = (153, 153, 153).

Die Pixel-Darstellung der Linie ergibt sich damit wie folgt:

Abb. 18: Pixeldarstellung der Linie

Der Übergang von der Darstellung „Linie mit y = mx + t“ in die Pixeldarstellung wird in der Computer-grafik als rendern bezeichnet. Das Vorgehen, von der Linie berührte Pixel nicht einfach in der Farbe der Linie darzustellen, sondern die Farbe des Pixels aus dem prozentualen Anteil der Überdeckung zu Mischen, wird Antialiasing genannt.

2 Im obersten linken Pixel ist noch einmal dargestellt, wie die Pixel auf dem Bildschirm durch rote, grüne und blaue Punkte erzeugt werden.

1-14

Die für die Render-Vorgänge benötigten Berechnungen werden von optimierten Assembler-Routinen durchgeführt, die im Betriebssystem verankert sind. Diese Routinen können über die Schnittstelle des Betriebssystems aufgerufen werden, so dass jeder Programmierer Linien, Kreise, aber auch einzelne Punkte auf dem Bildschirm zeichnen kann. Obwohl die Render-Vorgänge bereits als optimierter Assembler-Code geschrieben sind, dauert deren Ausführung (im Vergleich zur Darstellung der im Video-Speicher abgelegten Daten auf dem Bild-schirm) relativ lange. Würden die langsamen Render-Vorgänge direkt auf dem Grafik-Speicher ausgeführt werden, dann würden Objekte bereits dann auf dem Bildschirm erscheinen, wenn sie noch gar nicht fertig berechnet sind, was vom Betrachter insbesondere bei bewegten Objekten als sehr störend empfunden würde (flickern). Aus diesem Grund wird beim Rendern nicht direkt in den Grafik-Speicher, sondern in einen sog. Back-Buffer gerendert, der ebenfalls auf der Grafikkarte zu finden ist. Ist das Bild fertig gerendert, werden Grafik-Speicher und Back-Buffer vertauscht. Dabei werden die in den Puffern enthaltenen Daten je-doch nicht kopiert, sondern es wird den RAMDAC-Bausteinen einfach mitgeteilt, dass sich der Grafik-Speicher jetzt an einer anderern Adresse befindet. Der ehemalige Grafik-Speicher wird dann automa-tisch zum Back-Buffer.

0x3F

0x00

0x78

0xFF

0xE8…

RAMDAC (für Rot)

RAMDAC (für Grün)

RAMDAC (für Blau)

•••••

•••••

••••

Prozessor Front- undBack-Buffer

Digital-Analog-Wandler(RAMDAC)

VGA-Buchse

c:\>

Bildschirm

0x4C

0x38

0x79

0x00

0xFE

wird gerade erstellt undim Anschluss dargestellt

wird gerade dargestellt

Abb. 19: Front- und Back-Buffer

Um das Verhältnis von Grafik-Speicher und Back-Buffer zu verdeutlichen, wird der Grafik-Speicher auch oft Front-Buffer genannt.

1-15

Zu Beginn dieses Abschnitts hatten wir erwähnt, dass die Grafikkarte nicht nur als Schnittstelle zwi-schen Computer und Bildschirm dient, sondern auch 3D-Berechnungen beschleunigt, worauf wir im Folgenden kurz eingehen werden. In der 3D-Computergrafik (wie z.B. bei PC-Spielen) werden Objekte bzw. deren Oberflächen durch Polygone (z.B. Dreiecke) modelliert (vgl. nachfolgende Abbildung).

Abb. 20: Modellierung von Objekten durch Polygone (Daten für die Grafikkarte)

Diese Modellierung wird vom PC-Prozessor durchgeführt. Wenn sich beispielsweise in einem PC-Spiel Personen bewegen, berechnet der PC-Prozessor permanent die Positionierung der verschiede-nen Polygone. Die Polygone haben natürlich ganz bestimmte Oberflächeneigenschaften wie Farbe, Struktur etc. Diese Oberflächeneigenschaften übergibt der Prozessor zusammen mit den 3D-Koordinaten der berechneten Polygonpunkte der Grafikkarte, die die aktuelle Szene dann in ein nor-males Bild umwandelt (vgl. nachfolgende Abbildung).

Abb. 21: Von der Grafikkarte erzeugtes Bild

Die Grafikkarte „initialisiert“ dabei jedes Polygon mit der zugehörigen Oberfläche (Struktur und Grund-farbe). Anschliessend berechnet die Grafikkarte für jede Polygon-Position die gerade aktuellen Licht-verhältnisse der Umgebung und ändert das Erscheinungsbild der Polygone dementsprechend. Aus-serdem berechnet die Grafikkarte, welche Polygone von anderen verdeckt werden und wandelt so das dreidimensionale Bild in ein zweidimensionales Bild um. Im Anschluss rendert die Grafikkarte die Po-lygone, d.h. sie erzeugt aus den Polygonen die Farbwerte der einzelnen Pixel, die sie dann in den Back-Buffer überträgt. Zur Darstellung des Bilds auf dem Bildschirm müssen dann nur noch Front- und Back-Buffer umgeschaltet werden.

1-16

Die Berechnungen zur Oberflächenstrukturierung, Beleuchtung und Verdeckung sind sehr aufwendig. Ohne Grafikbeschleunigung müssten diese Berechnungen alle vom PC-Prozessor ausgeführt werden. Mit Grafikbeschleunigung kann die Arbeit des PC-Prozessors auf die Berechnung der Polygon-Positionen beschränkt bleiben, da die Grafikkarte den Rest erledigt. Da die Grafikkarte auf diese Art von Berechnungen spezialisiert ist, kann sie diese wesentlich schneller ausführen als der PC-Prozessor. Darüber hinaus arbeitet die Grafikkarte parallel zum Prozessor, so dass die Grafikkarte beispielsweise ein Bild rendern kann, während der PC-Prozessor gerade die Polygon-Positionen des nächsten Bildes berechnet.

1-17

• DVD-ROM Das in Abb. 3 auf Seite 1-4 mit DR gekennzeichnete Gerät ist das DVD-ROM-Laufwerk.

DVD-ROM-Laufwerke dienen zum Lesen von DVDs und CDs. Diese Laufwerke können also keine Daten aufzeichnen (ROM = Read Only Memory ⇒ nur lesen), sondern sie lediglich lesen. Um den Aufbau eines DVD-ROM-Laufwerks leichter verstehen zu können, schauen wir uns erst ein-mal an, wie Daten auf einer DVD gespeichert werden. Wie in nachfolgender Abbildung gezeigt, besteht eine DVD aus Spuren, die spiralförmig von innen nach aussen verlaufen.

Abb. 22: Spuren auf einer DVD

1-18

Die Spuren bestehen dabei aus einer Folge verschieden langer Erhöhungen, den sog. Pits, die auf dem sog. Land aufgebracht sind.

Pits

Land

Abb. 23: Pits und Land

Pits und Land sind aus dem gleichen Material und mit einer Aluminium-Schicht verspiegelt, so dass sowohl Pits als auch das Land auftreffendes Licht reflektieren. Die reflektierende Seite ist mit einer Schicht aus Polycarbonat vor Kratzern geschützt, die andere Seite dient der Beschriftung der DVD. Von der Seite betrachtet, ergibt sich für Pits und Land somit folgendes Bild:

Leseseite der DVD

Beschriftung der DVD/Etikett

reflektierendeALU-Schicht

Träger (Land)

Land

Pit

Drehrichtung

Polycarbonat

Abb. 24: Aufbau einer DVD-ROM

1-19

Zum Auslesen der DVD wird die Leseseite der DVD mit einem Laser bestrahlt und das von der ALU-Schicht reflektierte Laser-Licht von einem Photo-Detektor aufgefangen.

Leseseite der DVD

Beschriftung der DVD/Etikett

reflektierendeALU-Schicht

Träger (Land)

Land

Pit

Drehrichtung

Polycarbonat

Laser

Halbdurchläs-siger Spiegel

Photo-Detektor Auswertung der SignaleUmwandlung in einzelneByte

Abb. 25: Prinzip-Darstellung eines DVD-ROM-Laufwerks

Angenommen, die DVD bewegt sich in der angegebenen Drehrichtung. Was für ein Licht-Signal kommt dann beim Photo-Detektor an?

− Auf den ersten Blick scheint sich beim Photo-Detektor keine Änderung des Licht-Signals zu er-geben, da sowohl die Pits als auch das Land das Laser-Licht reflektieren.

− Wenn die Höhe der Pits auf dem Land jedoch ein Viertel der Wellenlänge des Lasers beträgt,

erscheint das von den Pits reflektierte Licht wesentlich dunkler als das vom Land reflektierte Licht. Warum?

Nachfolgende Abbildung zeigt mehrere Licht-Wellen. Die oberen beiden Wellen sind dabei in Phase, die unteren beiden sind gegenphasig, haben also einen Phasenversatz von 180°.

einzelne Lichtwellen Summe

konstruktive Interferenz:

destruktive Interferenz:

Abb. 26: Konstruktive und destruktive Interferenz

Man erkennt deutlich, dass sich bei der Addition beider Wellen bei

− gleichphasigen Wellen eine gleichartige Welle mit grösserer Amplitude ergibt. Die Wellen über-lagern sich also konstruktiv, man spricht von konstruktiver Interferenz.

− gegenphasigen Wellen beide Wellen genau auslöschen. Die Wellen überlagen sich also de-

struktiv, man spricht von destruktiver Interferenz.

1-20

Betrachtet man die Pits und das Land auf der DVD von der Leseseite her, fällt folgendes auf:

destruktive Interferenz

konstruktive Interferenz

destruktiveInterferenzLaser

Ansicht von unten(Leseseite)

Abb. 27: Auftreffen des Lasers auf der DVD

− Trifft der Laser auf reines Land, wird er einfach reflektiert.

− Trifft der Laser jedoch auf ein Pit, so trifft er neben dem Pit auch noch auf Land, da der Radius

des Laserstrahls grösser ist als die Breite eines Pits. Das reflektierte Laser-Licht enthält also sowohl Licht, das vom Land reflektiert wurde, als auch Licht, das vom Pit reflektiert wurde.

Nachfolgende Grafik zeigt diese Situation von der Seite betrachtet. Darunter ist das von der DVD-Spur reflektierte Laser-Licht abgebildet, das dann auf den Photo-Sensor trifft.

Ansicht von der Seite(Querschnitt)

von der Leseseitereflektiertes Laserlicht

konstruktive Interferenz(es wird viel Licht reflektiert)

destruktive Interferenz(es wird fast kein Lichtreflektiert, da sich dieWellen gegenseitig aus-löschen)

Abb. 28: Reflexionen an der DVD

Die rotierende DVD reflektiert also

− beim Auftreffen des Laserstrahls auf Land das komplette Licht. − beim Auftreffen des Laserstrahls auf Pits fast kaum Licht.

1-21

Der Photo-Detektor bekommt dabei bei rotierender DVD eine Folge von „Licht an/Licht aus“ mit, die er als Rechteck-Spannung an einen im DVD-Laufwerk eingebauten Chip weiterleitet.

Zeit

Spannung

Abb. 29: Vom Photo-Detektor erzeugte Rechteck-Spannung

Dieser Chip tastet die Rechteckspannung ab und wandelt die darin gespeicherte Information in Bits um. Die Bits sind jedoch nicht direkt als Pits und Land codiert. Das hat folgende Gründe:

− Sich rasch ändernde Bitfolgen wie z.B. 10101 können vom Laser nicht mehr aufgelöst werden.

− Bei sich sehr langsam ändernden Bitfolgen wie z.B. 00000000000000000000000111111 111111 geht die Synchronisation verloren, d.h. es kann nicht genau gezählt werden ob jetzt bspw. 23 oder 24 Nullen in der Bitfolge vorkamen. Das liegt daran, dass die Umdrehungsge-schwindigkeit der DVD während des Lesens schwanken kann und Zeitmessungen dadurch nur für relativ kurze Zeiten in die von der aktuellen DVD-Spur zurückgelegte Strecke (und damit die Anzahl der Bits) umgerechnet werden kann.

Aus diesen Gründen hat man bei der Standardisierung der DVD folgendes festgelegt:

− es müssen auf der DVD immer zwei Pit-Stellen bzw. zwei Land-Stellen in Folge auftreten, d.h. es darf keine Kombinationen 101 oder 010 geben.

− nach spätestens zehn Pit-Stellen oder zehn Land-Stellen muss ein Wechsel stattfinden. Zwischen zwei Einsen können also zwei bis zehn Nullen auftreten. Dies führt zur sog. Eight-to-Fourteen-Modulation (EFM), in der ein Byte (8 Bits) durch 14 sog. Channel-Bits kodiert wird.3 Damit auch beim Aneinanderfügen von Channel-Codewörtern die obige Forderung nicht verletzt wird, wer-den zwischen zwei Channel-Codewörtern noch drei sog. Merge-Bits eingefügt. Zur Codierung eines Bytes sind somit 14 + 3 = 17 Bits notwendig. Diese Bits werden zusammen mit weiteren Bits zur Feh-lerkorrektur und Adressierung als Pits und Lands auf die DVD gepresst. Aus Gründen der Fehlerrobustheit werden gesetzte Bits (1) dabei immer nur als Pit-/Land- bzw. Land-/Pit-Übergang codiert. Eine Folge von Pits oder Lands entspricht immer gelöschten Bits (0).

1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0

0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0

0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1

0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0

Abb. 30: Codierung der Bits in Pit-/Land-Übergange

3 Von den mit 14 Bit darstellbaren 214 Bitkombinationen entsprechen lediglich 267 Kombinationen den oben genannten Forde-rungen. Von diesen 267 gültigen Folgen wurden 256 ausgewählt, um ein Byte (8 Bit, also 28 = 256 verschiedene Werte) zu codieren.

1-22

Zur Erhöhung der Speicherkapazität können auf jeder DVD-Seite Daten auf zwei Ebenen, den sog. Layern abgespeichert werden. Der dem Laser nähere Layer ist dabei halbtransparent ausgeführt, so dass der Laser von diesem zwar reflektiert wird, der untere Layer aber auch noch erreicht werden kann. Die Auswahl der Layer erfolgt durch Einstellung des Brennpunkts des Lasers (Bewegung der Linse) entweder auf den einen oder den anderen Layer.

verschiebbare Linsen

halbtransparenter Layer

reflektierender Layer

Abb. 31: Doppel-Layer DVD

Die Verschiebung der Linsen kann beispielsweise über Schrittmotoren oder Elektromagnete erfolgen. Nachfolgende Abbildung zeigt den prinzipiellen Aufbau einer DVD-Mechanik.

Antriebsmotor

DVD

Motor zur horizontalen Positionierung der LinseGewindestange Spulen zur vertikalen Positionierung der Linse

Linse

Abb. 32: Prinzip-Aufbau einer DVD-Mechanik

Im echten DVD-Laufwerk sieht das folgendermaßen aus:

Abb. 33: DVD-Laufwerk

1-23

In der Grossaufnahme kann man den Motor zum horizontalen Verschieben der Linse gut erkennen:

Motor zum horizontalenVerschieben der Linse

Linse

Auflagepunktfür die DVD

(Antrieb)

Abb. 34: Innenleben eines DVD-ROM-Laufwerks

Die horizontale Positionierung der Linse erfolgt folgendermaßen:

− Zunächst wird die ungefähre Position der Linse durch Parameter wie Spurbreite, mittlere Pit-Länge etc. berechnet.

− Anschliessend wird die Linse an die berechnete Position gefahren und und es werden einige

Daten gelesen; die gelesenen Daten enthalten dabei in einem Header abgelegte Adressinfor-mation.

Header mit Adress-Information Daten Trailer

Abb. 35: Auf der DVD werden Adressinformationen im Header gespeichert

− Diese Adressinformation wird jetzt weiterverwendet, um eine genauere Positionierung der Linse vorzunehmen.

1-24

Vergrössert man den Bildausschnitt noch weiter, kann man auch gut die Elektromagnete/Spulen er-kennen, mit denen die Linse vertikal positioniert wird:

Spulen zur Positionierung der Linse

Linse

Spulen zur Positionierung der Linse

Abb. 36: Vertikale Positionierung der Linse durch Elektromagnete/Spulen

1-25

• DVD-Brenner Das in Abb. 3 auf Seite 1-4 mit DB gekennzeichnete Gerät ist ein DVD-Brenner. DVD-Brenner funktionieren im Prinzip genauso wie DVD-Leser. Die DVD-Medien sind jedoch anders aufgebaut: Unterhalb der Reflektierenden Schicht ist eine spezielle Schicht eingebracht, die sich bei Bestrahlung mit sehr starkem Laser-Licht dunkel färbt und das Licht dann nicht mehr so gut reflektiert. Auf diese Weise wird die gegenphasige Auslöschung der DVD-ROM nachgeahmt.

Leseseite

Beschriftung der DVD/Etikett

Polycarbonat

reflektierendeSchicht

Schutzschicht

Land

Pit

Drehrichtung

nicht reflektierendeschwarze Punkte

Abb. 37: Beschreibbare DVD (DVD-R)

Bei beschreibbaren DVDs muss das Laufwerk die Adresse der zu beschreibenden Stellen finden kön-nen. Nachfolgende Grafik zeigt das Verfahren, das bei der DVD+RW angewendet wird: Die Pits wer-den in eine Art „Spurrille“, den sog. Grooves geschrieben. Die Seiten der Grooves sind jedoch nicht gerade, sondern durch eine Modulation von Sinus-Signalen geprägt. Diesen wellenförmigen Seiten kann das DVD-Laufwerk die Information über die aktuelle Position auf der DVD entnehmen und damit Daten adressieren.

Grooves (Vertiefungen)

Pits

Land

Abb. 38: Adressierung von beschreibbaren DVDs

Im Gegensatz zu einmal beschreibbaren DVDs (DVD-R) müssen mehrfach beschreibbare DVDs auch gelöscht werden können. Dies wird durch eine spezielle Metall-Legierung als Reflexionsschicht er-reicht: In Abhängigkeit der Stärke des Lasers, der die DVD beschreibt, wird das Material entweder amorph (ungeordnete Anordnung der Moleküle, schlecht reflektierend) oder kristallin (regelmäßige Anordnung der Moleküle, gut reflektierend).

1-26

• Festplatte Das in Abb. 3 auf Seite 1-4 mit FP gekennzeichnete Gerät ist die Festplatte.

Abb. 39: Festplatte

Die Festplatte ist ein magnetisches Speichermedium, das sehr grosse Datenmengen aufnehmen kann. Aufgrund des technischen Fortschritts können ca. alle 12 Monate Festplatten mit doppelter Ka-pazität hergestellt werden. Im Inneren bestehen Festplatten in der Regel aus ein bis vier drehbar gelagerten festen Platten (des-wegen der Name Festplatte – im Gegensatz zur biegsamen Floppy-Disk [engl. floppy = schlapp]), die übereinander montiert sind und immer gleichzeitig gelesen bzw. beschrieben werden. Die Platten sind in der Regel entweder aus Aluminium oder aus Glaskeramik gefertigt und mit einer magnetisierbaren Oberfläche (z.B. Eisenoxyd, Kobalt etc.) beschichtet, auf der noch eine Schutzschicht aus Graphit aufgebracht wird.

Schreib-/Lese-Kopf

magnetisierbareSpeicherplatte

schwenkbarerArm

PermanentmagnetArmpositionierung(Elektromagnet)

Anschluss für die Elektronik

Abb. 40: Aufau einer Festplatte

1-27

Das Abspeichern von Daten auf die Festplatte erfolgt durch die sog. Schreib-/Leseköpfe, die (wie bei einer Audio-Cassette) Teile der Plattenoberfläche magnetisieren (vgl. nachfolgende Abbildung).

t

Bewegungsrich-tung der Platte

Stromverlaufbeim Schreiben

Trägermaterialaus Glaskeramik

magnetisierbareSchicht

Schreib-/Lesekopf

SpuleMagnetfeldlinien

NS SN S NSNN N S

+-

Abb. 41: Datenspeicherung auf der Festplatte durch Magnetisierung

Nachfolgende Abbildung zeigt den Vorgang der Magnetisierung der Festplatte.

N S

+-

Magnetisierung (Äquivalent-Magnet) keine Magnetisierung

ungeordneteElementarmagnetegeordnete

Elementarmagnete

Magnetfeldlinien

Spule

Abb. 42: Magnetisierung

1-28

Die Schreib-/Leseköpfe haben die Gestalt eines auf einer Seite aufgesägten „O“ und sind mit einer Spule umgeben. Wird die Spule bestromt, bildet sich in ihr ein Magnetfeld, das durch den Schreib-/Lesekopf (eine Art Ferrit) geleitet wird. Da Feldlinien stets geschlossen sind, bildet sich zunächst im Luftspalt des Schreib-/Lesekopfes (die „aufgesägte Stelle“) ein Magnetfeld. Wird der Spalt in die Nähe der magnetisierbaren Platte gebracht, schließen sich die Feldlinien nicht mehr über die Luft, sondern über das magnetisierbare Material, da sich Feldlinien leichter über magnetische Leiter als über mag-netische Nichtleiter schließen.4 Durch die magnetische Kraft der Feldlinien werden die im Plattenmaterial befindlichen Elementarmag-nete dabei so geordnet, dass sie ihre Nord-Süd-Ausrichtung alle in dieselbe Richtung haben. Die Feldlinien der Elementarmagnete heben sich dann also nicht mehr gegenseitig auf (wie auf der rech-ten Seite von Abb. 42), sondern bilden zusammen einen „Äquivalent-Magneten“ (linke Seite von Abb. 42). Diese „Äquivalent-Magnete“ bilden die in Abb. 41 gezeigten Magnetfeldlinien, die dauerhaft erhal-ten bleiben. Schaltet man die Stromversorgung der Spule des Schreib-/Lesekopfes ab, lässt sich mit dem Schreib-/Lesekopf die zuvor auf die Platte aufgebrachte Magnetisierung wieder detektieren.

t

Bewegungsrich-tung der Platte

Stromverlaufbeim Lesen

Trägermaterialaus Glaskeramik

magnetisierbareSchicht

Schreib-/Lesekopf

SpuleMagnetfeldlinien

NS SN S NSNN N S

+

-

OpAmp

t1 t2

Strommessung(siehe Stromverlauf)

Abb. 43: Auslesen von der Festplatte

Detektiert werden dabei lediglich die Grenzen unterschiedlicher Magnetisierung, die sich in kurzen „Stromstößchen“ (einige µA) äussern (vgl. Abb. 43). Diese Unterschiede im Stromverlauf werden mit geeigneten elektrischen Schaltungen verstärkt, detektiert und dann ausgewertet. Die abgespeicherte Information steckt dabei in den unterschiedlichen Längen zwischen den Strom-stößen. In Abb. 43 ist erkennbar, dass die Zeit t1 wesentlich kürzer ist als die Zeit t2. Diese Zeitunter-schiede werden von dem auf der Festplatte integrierten Controllerchip (Festplatten-Controller) regis-triert, ausgewertet und in einzelne Byte dekodiert. Diese Byte stellen dann die auf der Festplatte ab-gespeicherte Information dar. Um die Oberfläche der Festplatte nicht zu beschädigen, sind die Schreib-/Leseköpfe auf einem sog. Schlitten montiert, der im Betrieb durch den von den Platten verursachten Luftzug nach oben gedrückt wird. Die Schreib-/Leseköpfe liegen also beim Schreiben/Lesen nicht auf den Platten auf, sondern schweben ganz knapp über ihnen. Wird die Festplatte ausgeschaltet, verringert sich die Rotation der Platten und der Luftzug reicht nicht mehr aus, um die Köpfe über den Platten schweben zu lassen. Deshalb wird der schwenkbare Arm, auf dem die Köpfe montiert sind, in eine Park-Position gezogen.

4 Das ist wie beim elektrischen Strom, der auch lieber durch einen Leiter als durch einen Nichtleiter fließt: Überbrückt man einen Widerstand (Nichtleiter) mit einem Draht (Leiter), dann fließt der ganze Strom durch den Draht und nicht durch den Widerstand.

1-29

Die Park-Position sind Spuren am Innenrand der Platten, da dort die Plattengeschwindigkeit am ge-ringsten ist, der Abrieb beim Landen der Köpfe also gering bleibt. Da die Spuren im Landebereich der Köpfe nicht zum Abspeichern von Daten verwendet werden, tritt kein Datenverlust auf. Um auf der Festplatte gespeicherte Informationen zu finden, müssen die Daten auf der Festplatte in irgendeiner Form organisiert sein. Dazu werden die einzelnen Platten in sog. Spuren aufgeteilt.

Spuren Sektor Abb. 44: Spuren und Sektoren bei einer Festplatte

Da die Platten übereinander montiert sind, bilden die übereinander liegenden Spuren jeweils einen Zylinder, weswegen man mit dem Begriff Zylinder alle übereinander liegenden Spuren meint.

Platten

Alle übereinander liegenden Spuren bilden jeweils einen Zylinder Abb. 45: Zylinder

Aktuelle Festplatten verfügen über mehrere tausend Zylinder, also mehrere tausend Spuren pro Plat-tenoberfläche, wobei die Platten auch beidseitig beschrieben werden. Da die Spuren mehrere Mega-

1-30

byte (MB) gross sein können, werden die Platten zudem noch in Sektoren (vgl. Abb. 44) eingeteilt. Die Sektoren sind dabei so gross, dass sie (je nach Hersteller) ca. 570 Byte an Daten speichern können. Ca. 60 dieser Byte werden für Verwaltungsinformation verwendet.

− Werte zur Synchronisation für den Taktgenerator, der die Zeit zwischen zwei Stromstössen (vgl. Abb. 43) nur messen kann, wenn er die genaue Umdrehungsgeschwindigkeit der Platte kennt.

− Prüfsummen − Speicherung der Nummer des aktuellen Zylinders − Speicherung der Nummer des aktuellen Sektors − Speicherung der Nummer des aktuellen Schreib-/Lesekopfs − Start- und Ende-Marken für den Datenbereich − mehrere „Leer-Byte“ als Toleranzzone für unterschiedliche Umdrehungsgeschwindigkeiten

Die restlichen Byte sind die Nutzdaten des Sektors, welche in der Regel 512 Byte lang sind. Das Aufbringen dieser Verwaltungsinformation wird Grundformatierung genannt. Sie steht im Gegen-satz zur logischen Formatierung, bei der Betriebssystem-spezifische Daten zur Verwaltung von Datei-en auf die Platten geschrieben werden (z.B. ein Inhaltsverzeichnis). Um Daten aus einem bestimmten Sektor einer bestimmten Spur einer bestimmten Platte auslesen zu können, werden die Schreib-/Leseköpfe über dem gewünschten Zylinder positioniert und der von der Festplatte gelieferte Datenstrom gelesen. Der Festplatten-Controller wartet solange, bis er in dem Datenstrom des betreffenden Schreib-/Lesekopfs die gewünschte Sektor-Nummer detektiert, macht sich dann lesebereit und liest beim Auftreten der nächsten Start-Marke solange Werte ein, bis er eine Ende-Marke detektiert. Da alle Schreib-/Leseköpfe an einem einzigen schwenkbaren Arm befestigt sind, können alle zu einem Zylinder gehörigen Spuren gleichzeitig gelesen werden. Die Positionierung der Schreib-/Leseköpfe ist dabei eine sehr heikle Angelegenheit. Betrachten Sie dazu die in nachfolgender Tabelle angegebenen typischen Daten einer Festplatte:

Abmessung der Schreib-/Leseköpfe 0,3 mm x 0,1 mmDicke des Luftkissens, auf dem die Köpfe schweben 20 nmUmdrehungsgeschwindigkeit der äußeren Spuren (Radius = 4 cm, 7200 U/min) 110 km/h

Spurabstand (bei 1500 Spuren pro cm) 6,7 µmBit-Abstand 0,5 µm

Abb. 46: Festplatten-Daten

Um uns diese Daten besser vor Augen führen zu können, rechnen wir sie einmal so um, dass die Dicke des Luftkissens 1 cm beträgt, die Schreib-/Leseköpfe also 1 cm über den Platten schweben. Zur Skalierung müssen wir dann alle Festplatten-Parameter mit 1 cm / 20 nm = 500.000 multiplizieren. Es ergeben sich dann folgende Werte:

Abmessung der Schreib-/Leseköpfe 150 m x 50 mDicke des Luftkissens, auf dem die Köpfe schweben 1 cmUmdrehungsgeschwindigkeit der äußeren Spuren (Radius = 4 cm, 7200 U/min) 55.000.000 km/h

Spurabstand (bei 1500 Spuren pro cm) 3,35 mBit-Abstand 25 cm

Abb. 47: Skalierte Festplatten-Daten

1-31

Nach dieser Skalierung wären die Schreib-/Leseköpfe gut eineinhalb mal so lang und ein halbes mal so breit wie die Münchener Frauenkirche hoch ist und würden mit einer Geschwindigkeit, mit der sie in 2,6 Sekunden die Erde umrunden, nur 1 cm über dem Boden gleiten. Dabei würden Sie Daten ausle-sen und schreiben, die nach links und rechts nur 3,35 m von anderen Daten entfernt sind und nach vorne und hinten bereits nach 25 cm an ihre Nachbarn stoßen. Eine unvorstellbare Leistung! Typische Festplattenlaufwerke haben eine durchschnittliche Zugriffszeit von ca. 8 ms, das bedeutet, sie benötigen ca. 8 ms, um ein Drittel aller auf der Oberfläche befindlichen Spuren zu überqueren und dann zielsicher auf der richtigen Spur zu landen. In unserem Skalierungs-Beispiel beträgt die Entfer-nung, die in den 8 ms von den Schreib-/Leseköpfen in Frauenkirche-Grösse zurückgelegt werden müssen, gute 5 km. Das entspricht einer Seitwärts-Geschwindigkeit von 625.000 km/h (in knappen 4 Minuten um die Erde). Wie kann so eine schwierige Aufgabe gelöst werden? Modernste Regelungstechnik macht’s möglich! Da die Schreib-/Leseköpfe im Betrieb nicht auf den Platten aufliegen, ergibt sich bei der Bewegung der Arme so gut wie keine Reibung. Die Arme können also mit minimalstem Kraftaufwand bewegt werden. Sie lassen sich also auch ruckfrei anfahren und abbremsen. Der Antrieb erfolgt dabei durch magnetische Kräfte:

− Am drehbar gelagerten Arm ist an der Hinterseite eine Spule angebracht, deren Magnetfeld sich vom Festplatten-Controller steuern lässt.

− Im Gehäuse der Festplatte sind zwei sehr starke Permanent-Magnete montiert, zwischen denen

die Spule des drehbaren Arms eingebettet ist. Wird die Spule bestromt, stößt sie sich vom Permanent-Magneten ab und bewegt dabei die Schreib-Leseköpfe über die Platten.

Permanent-Magnete

Spule (am Arm montiert)

Drehlager zur Rotationdes Arms

drehbar gelagerterArm

Permanent-Magnet zumHalten desArms in derParkposition

Abb. 48: Mechanik zur Armpositionierung

1-32

Doch woher weiß der Festplatten-Controller, wieviel Strom er durch die Spule schicken muss, um die Schreib-/Leseköpfe genau auf den gewünschten Zylinder (auf die gewünschten Spuren) zu positionie-ren? Die Antwort ist: Auf den Platten sind sog. Servo-Informationen gespeichert, in denen auch die Num-mer des jeweiligen Zylinders gespeichert ist. Diese Servo-Informationen werden in der Regel zwischen den einzelnen Sektoren gespeichert.

Servo-Informationen

Sektoren

Abb. 49: Servo-Information

Zur Positionierung wartet der Festplatten-Controller zunächst, bis ein Schreib-/Lesekopf über einen Servo-Bereich fährt. Der Festplatten-Controller liest die Servo-Information ein und ermittelt dadurch die aktuelle Position des Arms (Ist-Position). Durch Vergleich mit der Soll-Position (Ziel-Zylinder) er-mittelt der Festplatten-Controller, wie weit die Schreib-/Leseköpfe noch vom Ziel-Zylinder entfernt sind und erhöht oder verringert den Spulenstrom dementsprechend. Die Platte dreht sich dabei weiter. Wenn die Schreib-/Leseköpfe das nächste mal einen Servo-Bereich überfahren, vergleicht der Fest-plattencontroller wieder die aktuelle Position des Arms mit der Soll-Position und berechnet daraus wieder eine geeignete Spulenspannung. Diese Prozedur wird nun solange wiederholt, bis der Arm über dem richtigen Zylinder steht. Anschließend findet noch eine Feinpositionierung statt, die mithilfe spezieller (ebenfalls im Servo-Bereich abgespeicherten) Fein-Positionierungs-Informationen durchge-führt wird. Im Festplatten-Controller ist also unter anderem ein Regler implementiert, der aus den Laufwerkspa-ramtern, der Ist- und der Soll-Position den nötigen Spulenstrom bestimmt.5

Regler

Laufwerk

•+ SpulenstromSoll-Position

Ist-Position

aktuellerFehler

Abb. 50: Regelkreis

5 Wie solche Regler funktionieren und wie sie ausgelegt werden müssen, um nicht nur sehr schnell, sondern auch noch stabil zu arbeiten, können Sie beispielsweise in „Regelungs- und Steuerungstechnik“ bei Prof. Buss oder in einem guten Buch über Regelungstechnik (z.B. Horn, Dourdoumas, Regelungstechnik, ISBN 3-8273-7059-0) erfahren.

1-33

Um gute Zugriffszeiten der Festplatte zu erreichen, muss der Arm möglichst schnell von seiner Ist-Position in die Soll-Position bewegt werden. Er darf dabei jedoch nicht über sein Ziel hinausschiessen und zu weit fahren. Gute oder schlechte Zugriffszeiten von Festplatten sind somit nicht zuletzt auf die verwendeten Regelungs-Algorithmen zurückzuführen. Zur Verbesserung der Zugriffszeit der Festplatte kann die Umdrehungsgeschwindigkeit der Platte erhöht werden, so dass die zeitlichen Abstände, in denen die Servo-Informationen an die Schreib-/Leseköpfe gelangen, verringert werden. Eine weitere Möglichkeit zur Beschleunigung der Kopfpositionierung besteht darin, die Servoinforma-tionen nicht nur zu Beginn eines Sektors, sondern auch in kürzeren Abständen auf die Platten zu speichern. Eine verbreitete Vorgehensweise spendiert eine komplette Plattenoberfläche allein für die Servo-Informationen. Diese Festplatten erkennt man oft daran, dass sie über eine ungerade Anzahl an Schreib-/Lese-Köpfen verfügen. Die Servo-Informationen werden vom Festplatten-Hersteller auf die Platte geschrieben und können nicht gelöscht werden. Auch nicht mit der zuvor erwähnten Grundformatierung. In diesem Kapitel haben wir uns diejenigen Peripherie-Geräte angeschaut, die uns unmittelbar nach dem Öffnen des PCs aufgefallen sind: Netzteil, Grafikkarte, DVD-Laufwerk, DVD-Brenner und die Festplatte.

DB

DR

DL

FPGK

FW

NT

Abb. 51: Geräte in einem PC

Wir haben dabei gemerkt: Die betrachteten Geräte sind ziemlich intelligent. Sie können selber schwie-rige Aufgaben ausführen (z.B. Kopf-Positionierung bei der Festplatte) und dadurch den PC-Prozessor entlasten. Die Intelligenz und hohe Leistungsfähigkeit der Geräte rührt von den eingebauten Chips her, die z.T. sehr ähnlich aufgebaut sind wie PC-Prozessoren, mit denen wir uns in dieser Vorlesung hauptsächlich beschäftigen werden.

1-34

Jetzt tauchen wir jetzt tiefer in den PC hinein, indem wir das Netzteil und die Steckkarten entfernen und die dahinter liegende Hauptplatine untersuchen. 1.1.2 Komponenten auf der Hauptplatine - Überblick Nach dem Ausbau des Netzteils und der Grafikkarte ergibt sich vom Innenleben unseres PCs folgen-des Bild:

A

B

FS

B4

B4

B4

B4

B1

B2

B3 C

C1

C2C3

C3

C4

C5

C6

C7

C7

C7

C7

C7

C7

D

C9

D1

D2

D3

D4

D5D6

HI

C8

LA

Abb. 52: Hauptplatine eines Computers

Die grosse grüne Platine ist die Hauptplatine unseres Computers, die auch Mainboard oder Motherboard genannt wird. Auf der Hauptplatine sind alle wichtigen Komponenten des PCs unterge-bracht, die nicht so wie die Festplatte oder das DVD-Laufwerk als Peripherie-Geräte angesehen wer-den. Auf ihr befindet sich der Prozessor (A) der Hauptspeicher (B4), der Chipsatz (B, C), viele An-schlussmöglichkeiten für Steckkarten (B2, C7), für interne Geräte (C3, D4) wie beispielsweise DVD-ROM und für externe Geräte (z.B. D1, D2). Da die Hauptplatine auf den ersten Blick ziemlich kompliziert aussieht, haben wir davon auf der nächs-ten Seite eine Schema-Darstellung angefertigt, aus der hervorgeht, wie die einzelnen Bausteine auf der Hauptplatine heißen und wie sie miteinander verschaltet sind.

1-35

A

B

DDR-RAM

AGP-Port

C

Gigabit-Ethernet-Controller

Anschlüssefür USB 2.0

2 Anschlüssefür Serial-ATA

2 Anschlüssefür ATA 100

Audio-CodecAC `97 3

Takt-GeneratorCPU, PCI, …

SMBus 2.0/I2C-Bus

D

Anschluss Dis-ketten-Laufwerk

PS/2 AnschlussTastatur

PS/2 AnschlussMaus

Anschluss fürseriellen Port

Anschluss fürparallelen Port

Anschluss fürVentilator

Prozessor-Bus, 4⋅200 MHz(FSB = Front Side Bus)

HI = Hub Interface266 MByte/s

Kanal A3,2 GyteB/s

Kanal B3,2 GByte/s

PCI-Bus133 MByte/s

2,1 GByte/s

266 MByte/s

480 MBit/s

150 MByte/s

100 MByte/s

100 MBit/s

LPC-Interface(Low Pin Count)

Analoger VGA-Anschluss

Festplatte

DVD-ROM

DVD-Brenner

6 PCI-Slots

DDR-RAM

DDR-RAM

DDR-RAM

Grafikkarte

TFT-Bildschirm

DVIB1

B2

B3

B4

C1

C2

B4

B4

B4

C3

C4

C6

C7

FS

HI

D1

D2

D3

D4

D5

D6

Disketten-Laufwerk

Tastatur

Maus

FireWire-Adapter

GK

FP

DR

DB

FW

DL

Netzteil

NT

230 V ~

Ethernet-Controller

USB2.0-Controller

Intel 82801EBICH5

2 SATA-Controller

ATA 100Controller

AC `97Controller

PCI-Controller

LPC-interfaceController

CMOS-RAM

System-Managmnt.

Bios-interf.Controller Flash-Bios

SMBusController

SuperInput/Output

Controller

RS 232Controller

LPTController

FloppyController

TastaturController

MausController

Drehzahl-regelung

LAN-Anschluss

LA

1 GBit/s

Intel 82865GGMCH

HI Controller

CSA-Controller

DDR-RAMController

AGP-Controller

Grafik-Controller

FSB Logik/Treiber

ProzessorIntel P4

Befehls-Cache

Daten-Cache

Adress-Umsetzer

Rechen-Werk

Steuer-Werk

C9

Batterie C8

Abb. 53: Schematischer Aufbau eines Computers

1-36

Die wichtigste Komponente dieser Schema-Darstellung ist der Prozessor (A). • Prozessor Nachfolgende Abbildung zeigt den auf der Hauptplatine befindlichen Prozessor (A), nachdem wir den Kühlkörper entfernt haben.

Abb. 54: Prozessor (Pentium 4, Vorder- und Rückseite)

Der Prozessor ist die zentrale Rechen- und Steuereinheit des gesamten Computers. Wie bzw. was der Prozessor rechnen oder steuern soll, steht in sog. Programmen, die aus einzelnen Prozessor-Befehlen bestehen. Die Prozessor-Befehle sind außerhalb des Prozessors gespeichert und werden vom Prozessor über den sog. Front-Side-Bus (FSB – in Abb. 52 und Abb. 53 mit FS markiert) in den Prozessor geladen und dann ausgeführt. Die zu den Befehlen gehörigen Operanden (die sog. Daten) liegen zunächst ebenfalls außerhalb des Prozessors und müssen über den Front-Side-Bus in den Prozessor geladen werden. Um die über den FSB in den Prozessor geladenen Befehle und Operanden im Prozessor ablegen zu können, verfügen Prozessoren über sog. Register. Register sind sehr schnelle Speicherelemente, die genau soviele Bits aufnehmen können, wie sich intern parallel verarbeiten lassen. Die Anzahl dieser Bits nennt man Wortbreite und den Inhalt eines Registers dementsprechend Datenwort oder auch nur kurz Wort. Bei einem 32 Bit-Pentium-Prozessor beträgt die Wortbreite 32 Bit, die Register sind also 32 Bit breit und können somit genau 32 Bits aufnehmen.

jeweils 1 Bit

n-1 1 02Numerierung der Bits:

Datenwort mit Wortbreite n

LSBMSB

Abb. 55: Datenwort

1-37

Die Bitstelle mit der geringsten Wertigkeit (ganz rechts) wird auch LSB (engl. Least Significant Bit ⇔ dt. niederwertigstes Bit) genannt. Die Bitstelle mit der höchsten Wertigkeit (ganz links) wird MSB (engl. Most Significant Bit ⇔ dt. höchstwertigstes Bit) genannt. Um Befehle sowohl abspeichern, als auch über den Bus übertragen zu können, werden Befehle ge-nauso wie Operanden und Adressen als Zahlen codiert. Der Befehl „Addiere zwei Zahlen“ kann bei-spielsweise als 0x20 codiert sein, also der Bitfolge 00100000 entsprechen. Diese Bitfolge kann dann problemlos abgespeichert bzw. übertragen werden. Die nachfolgenden Abbildungen zeigen die Abarbeitung von Befehlen durch den Prozessor: Der als nächstes auszuführende Befehl wird aus einem externen Speicher über den FSB in das Befehls-Register transportiert. Anschliessend werden die zugehörigen Operanden (ebenfalls über den FSB) geladen.

Registerblockmit Registern•

BR:

BZ:

Steuerwerk

ALUFlags:

FSB = Front Side Bus

Steuerung

2

13

Abb. 56: Laden von Befehlen in den Prozessor

Dazu wird vom sog. Steuerwerk6 zuerst der im Befehlszähler BZ (ein Register im Steuerwerk) stehen-de Wert als Adresse auf den FSB gelegt (1). Diesen Vorgang nennt man Befehlsadressierung, da im Befehlszähler immer die Zahl steht, die der Adresse des als nächstes auszuführenden Befehls ent-spricht. Auf den FSB wird also die Adresse des nächsten Befehlsworts gelegt. Kurz danach erhält der Prozessor über den FSB das gewünschte Befehlswort, das er dann im Be-fehlsregister BR ablegt (2). Nachdem das Befehlswort ins Befehlsregister übertragen wurde, wird es von der Steuerung analysiert (3). Die Steuerung ermittelt dabei, von woher sie die Operanden des Befehls laden soll, ob die Ope-randen also z.B.

− direkt im Befehlswort abgelegt sind, − bereits in den Prozessor geladen wurden und jetzt in Registern stehen, oder − erst über den FSB in den Prozessor geladen werden müssen.

6 Der Name Steuerwerk leitet sich von der Aufgabe des Steuerwerks ab: Es steuert die Abarbeitung von Befehlen. Es wird oft auch als Leitwerk bezeichnet, da es zum einen die Befehlsausführung leitet (leiten im Sinne von überwachen, verantwortlich sein), zum anderen die Befehle und Operanden zu den jeweiligen Prozessor-Komponenten hinleitet (leiten im Sinne von ent-langleiten, hinführen).

1-38

Nach dieser Analyse sorgt das Steuerwerk dafür, dass die benötigten Operanden der sog. ALU (Arith-metic Logic Unit), der Recheneinheit des Prozessors, zugeführt werden.

− Stehen die Operanden direkt im Befehlswort, werden sie von dort zur ALU geleitet (4).

− Stehen die Operanden in Registern, adressiert die Steuerung die entsprechenden Register (5), d. h. sie teilt dem Registerblock mit, welche Register ausgelesen werden sollen. Anschliessend sorgt sie dafür, dass die adressierten Operanden aus dem Registerblock an die ALU geleitet werden (6).

Registerblockmit Registern•

BR:

BZ:

Steuerwerk

ALUFlags:

FSB = Front Side Bus

Steuerung5•

6

4

5

4

Abb. 57: Bereitstellung von Operanden:

Direktoperanden und Register-Operanden.

− müssen die Operanden erst über den FSB in den Prozessor geladen werden,

+ legt die Steuerung zunächst die Adresse der Operanden auf den FSB (7) und + leitet die dann über den FSB gelieferten Daten als Operanden

• entweder direkt an die ALU (8) • oder erst mal in ein Register (9), von wo aus sie dann von anderen Befehlen der ALU

zugeführt werden können (10).

Registerblockmit Registern•

BR:

BZ:

Steuerwerk

ALUFlags:

FSB = Front Side Bus

Steuerung

9

7

8

10

7

Abb. 58: Bereitstellen von Operanden über den FSB

1-39

Nachdem die Steuerung alle Operanden an die ALU angelegt hat, teilt sie der ALU den auszuführen-den Befehl (z.B. Addieren, Multiplizieren etc.) mit (11) und startet dann die Befehlsausführung (12).

Registerblockmit Registern•

BR:

BZ:

Steuerwerk

ALUFlags:

FSB = Front Side Bus

Steuerung •

1112

14

13

Abb. 59: Berechnung des Ergebnisses

Treten bei der Befehlsausführung in der ALU unvorhergesehene Ereignisse/Fehler auf (z.B. Division durch Null), werden diese der Steuerung gemeldet (13), die dann weitere Maßnahmen trifft. Hat die ALU die ihr aufgetragenen Berechnungen abgeschlossen, meldet sie bestimmte Eigenschaf-ten des Ergebnisses (z.B. Ergebnis ist Null, Ergebnis ist negativ), indem Sie das im Steuerwerk unter-gebrachte Flag-Register aktualisiert (14). Nachfolgende Abbildung zeigt ein Beispiel für ein Flag-Register.

O C Z S W I X

Overflow: Überlauf bei vorzeichenbehafteten Zahlen

Carry (Übertrag): Überlauf bei vorzeichenlosen Zahlen

Zero: Ergebnis ist Null

Sign (Vorzeichbit): Ergebnis ist negativ

Überlauf bei Gleitkomma-Festkomma-Wandlung

Ungültige Gleitkomma-Operation (z.B. )1−

Gleitkomma-Division durch Null

Gleitkomma-Zahl ungenau (z.B. 1.0/3.0)

E

Abb. 60: Flag-Register

1-40

Je nach ausgeführtem Befehl muss die Steuerung jetzt das am ALU-Ausgang anliegende Ergebnis

− über den FSB verschicken (15). Dazu muss die Steuerung neben dem Ergebnis auch die Zieladresse (Adresse im Arbeitsspeicher oder Peripherie-Gerät) mit auf den FSB legen (16).

− in ein Register des Registerblocks transportieren (17). Hierbei muss die Steuerung durch Anle-

gen der Registeradresse an den Registerblock diesem mitteilen, in welches Register das Er-gebnis abgelegt werden soll (18).

Registerblockmit Registern•

BR:

BZ:

Steuerwerk

ALUFlags:

FSB = Front Side Bus

Steuerung •

• 1715

1619

20

18

21

Abb. 61: Sichern des Ergebnisses

Wird das Ergebnis in einem Register abgelegt, kann es

− sofort wieder verwendet werden (19). Eine zeitaufwendige Datenübertragung über den FSB ist hier nicht notwendig.

− auch vom Register aus über den FSB verschickt werden (20). Dazu muss die Steuerung wieder

die Zieladresse an den FSB anlegen (21). Um den nächsten Befehl über den FSB in den Prozessor zu laden, muss der Befehlszähler (die Ad-resse auf den nächsten Befehl) angepasst werden. Dazu wird zu dem aktuellen Wert des Befehlszäh-lers die Wortbreite eines Befehls (in Byte) addiert und der Wert des neuen Befehlszählers dann wieder auf den FSB gelegt [(1) aus Abb. 56 (Seite 1-37)].

Addierer

BZ

Wortbreite desaktuellen Befehls

+

zum FSB

Abb. 62: Anpassen des Befehlszählers

Ab diesem Zeitpunkt wiederholen sich die in den Abb. 56 bis Abb. 61 dargestellten Schritte. Die im Speicher stehenden Befehle werden der Reihen nach ausgeführt.

1-41

Fast genauso wichtig wie der Prozessor ist der Arbeitsspeicher, in dem sowohl die auszuführenden Befehle, als auch die zugehörigen Operanden (die sog. Daten) stehen. • Arbeitsspeicher Die in den Abb. 52 und Abb. 53 mit B4 gekennzeichneten Komponenten sind die DDR-RAM-Module, die zusammen den Arbeitsspeicher des Computers bilden.

Abb. 63: DDR-RAM (Arbeitsspeicher)

Die Aufgabe des Arbeitsspeichers ist die temporäre Speicherung von Daten und Befehlen. Mit tempo-rär ist gemeint, dass

− zum Einen die im Arbeitsspeicher abgelegten Daten mit dem Ausschalten des PCs verloren ge-hen. Der Arbeitsspeicher wird deshalb auch als volatiler (= flüchtiger) Speicher bezeichnet.

− zum Anderen im Arbeitsspeicher nur diejenigen Daten bzw. Befehle liegen, mit denen gerade

gearbeitet wird, woher sich auch der Name Arbeitsspeicher ableitet. Im Gegensatz dazu ist die Festplatte ein nicht volatiler (= nicht flüchtiger) Speicher. Die Daten auf der Festplatte gehen also nicht verloren, wenn man sie ausschaltet. Auf der Festplatte sind alle Daten und Programme (Folge von Befehlen) gespeichert, die man irgendwann einmal verwendet hat oder evtl. einmal verwenden wird. Mit den Daten auf der Festplatte wird also nicht aktuell gearbeitet, die Daten werden auf der Festplatte nur gelagert. Um mit Daten/Programmen zu arbeiten, müssen diese erst von der Festplatte in den Arbeitsspeicher geladen werden (1) (vgl. nachfolgende Abbildung). Die Daten werden dann vom Arbeitsspeicher in den Prozessor transportiert (2), dort verarbeitet (3) und dann wieder im Arbeitsspeicher abgelegt (4). Sollen die Daten erneut bearbeitet werden, müssen sie wieder vom Arbeitsspeicher in den Prozessor geladen werden (5). Dort werden Sie weiterverarbeitet (6) und im Anschluss wieder in den Arbeits-speicher zurückgeschrieben (7). Würde der Rechner jetzt ausgeschaltet werden, gingen die Daten verloren. Um sie permanent zu speichern, müssen sie auf der Festplatte abgelegt werden (8).

1-42

3

2 4 5 7

6

1 8

Abb. 64: Datenfluß im PC

Nachfolgende Abbildung zeigt, dass der Arbeitsspeicher wie eine Tabelle funktioniert.

0x10

0x2F

0x4B

0xC3

0x96

0x83

0x5D

0x00..00

0x00..01

0x00..02

0x00..03

0x00..04

0x00..05

0xFF..FF

Datum (1 Byte)

Speicher-Inhalt(Daten)

Speicher-Adressen

LesenSchreiben

Daten

Steuer-leitungen

1Adressez.B. 0x00..02

2

3

4

5

60x4B

0x4B7

8

9

10

11

Abb. 65: Speicher

Um auf Daten im Arbeitsspeicher zuzugreifen, muss man dem Speicher zuerst mitteilen, auf welches Datum der Zugriff erfolgen soll. Dazu legt man am Eingang Adresse die Adresse der gewünschten Speicherstelle an (1). Diese sog. Adressierung hat zur Folge, dass im Speicher die Speicher-Stelle mit dem gewünschten Datum ausgewählt wird (2).

− Soll das ausgewählte Datum aus dem Speicher ausgelesen werden, muss man dies dem Spei-cher durch ein Signal auf der Steuerleitung Lesen mitteilen (3). Der Speicher reagiert darauf, in-dem er zwischen der adressierten Speicherstelle und der mit Daten gekennzeichneten Spei-

1-43

cher-Schnittstelle eine Verbindung freischaltet (4), so dass das gewünschte Datum nach aussen geleitet wird (5) und dann dort abgegriffen werden kann (6).

− Soll an die ausgewählte Stelle jedoch ein neues Datum geschrieben werden, muss dieses Da-

tum zunächst an die Daten-Schnittstelle angelegt werden (7). Durch ein Signal auf der Steuer-leitung Schreiben (8) wird dann eine Verbindung zwischen der Daten-Schnittstelle und der adressierten Speicherstelle hergestellt (9), über die das Datum dann transportiert wird (10). Das Datum wird anschliessend an der adressierten Speicherstelle abgespeichert (11).

Die Daten-Schnittstelle zum Speicher muss also bidirektional ausgelegt sein, d.h. sie dient beim Lesen als Ausgang und beim Schreiben als Eingang. Die Adress- und Steuer-Schnittstelle des Speichers ist unidirektional. Sie dient immer nur als Eingang und niemals als Ausgang. Neben der zuvor besprochenen Eigenschaft, dass der Arbeitsspeicher ein nicht flüchtiger Speicher ist, gibt es noch eine weitere Eigenschaft, die ihn von anderen Speichermedien wie z.B. Festplatte oder DVD unterscheidet: Ganz egal, auf welche Speicherstelle man gerade geschrieben hat oder von wel-cher Speicherstelle man gerade gelesen hat, dauert der Zugriff auf eine beliebige andere Speicher-stelle immer gleich lang. Man spricht deshalb auch von einem Speicher mit wahlfreiem Zugriff, was im englischen mit RAM (Random Access Memory) abgekürzt wird. Im Gegensatz dazu muss bei einer Festplatte in Abhängigkeit der Position des gerade adressierten Datums zur Adressierung eines anderen Datums der Schreib- und Lesekopf einmal mehr, einmal we-niger weit verschoben werden, was natürlich Zeit kostet. Darüberhinaus kann nach der Positionierung des Schreib- Lesekopfs erst dann auf den gewünschten Sektor zugegriffen werden, wenn sich dieser unter dem Schreib-Lesekopf befindet. Bei DVD-Laufwerken, bei denen die DVD mit gleicher Linear-Geschwindigkeit, also mit unterschiedli-cher Winkel-Geschwindigkeit7 rotiert, muss zusätzlich noch die Geschwindigkeit erhöht bzw. verringert werden. RAMs lassen sich in zwei Gruppen einteilen:

− SRAMs (= Statisches RAMs) und

− DRAMs (Dynamisches RAMs). Eine SRAM-Speicherzelle benötigt zur Abspeicherung eines Bits sechs Transistoren, von denen sich vier gegenseitig Sperren bzw. Durchschalten, wie in nachfolgender Abbildung gezeigt.

N3

P1

N1 N2

N4

P2

UB

Zeilenleitung (Auswahl)

Spa

ltenl

eitu

ng

Spa

ltenl

eitu

ng in

verti

ert

Bit Bit

Abb. 66: SRAM-Speicherzelle

Die Speicherzelle wird über die sog. Zeilenleitung (oder auch Auswahlleitung) adressiert. Das Bit wird dann über die Spaltenleitungen (Bit bzw. Bit invertiert) ein- und ausgelesen.

7 Sollen die auf der DVD geschriebenen Daten vom Laser mit konstanter Rate abgetastet werden, muss sich die DVD umso schneller drehen, je weiter innen auf der DVD die Daten gelesen werden.

1-44

Nachfolgende Abbildung zeigt, wie man in dieser rückgekoppelten Transistor-Schaltung ein Bit ab-speichern kann. Spannungspegel auf der Höhe der Versorgungsspannung sind dabei mit „+“, Masse durch „–“ gekennzeichnet.

N3

P1

N1 N2

N4

P2

UB

Zeilenleitung (Auswahl)

Spa

ltenl

eitu

ng

Spa

ltenl

eitu

ng in

verti

ert

Bit = 1 (+) Bit = 0 (-)

7+ -

8

+

+5

+6

9-

-

-

10

11+

13+

12

+14

+15 +

16

17-

2 3

-14

18

19 -

X

Y

Abb. 67: Abspeichern eines Bits im SRAM

Im Grundzustand liegt die Zeilenleitung auf Masse (1). Da an den Gates der beiden N-Kanal-Transistoren N1 und N2 dann ebenfalls Masse anliegt, sperren beide. Die aus den vier Transistoren P1, P2, N3 und N4 aufgebaute Rückkopplungsschaltung ist somit von der Aussenwelt isoliert. Will man ein Bit mit dem Wert „1“ in dieser Speicherzelle abspeichern, legt man zunächst den Eingang Bit auf 1, also auf den Pegel der Versorgungsspannung UB (2) und den Eingang Bit invertiert auf 0, also auf Masse (3). Wählt man anschließend durch Anlegen der Versorgungsspannung an die Zeilenleitung (4) die SRAM-Zelle aus, liegen die Gates der beiden Transistoren N1 und N2 auf UB (5, 6). Da die Spaltenleitung Bit auf UB liegt (2), liegt auch am Source-Anschluss von N1 UB an (7), weswe-gen dieser sperrt. Punkt X wird von N1 also auf keinen bestimmten Spannungspegel gezogen. Da die Spaltenleitung Bit invertiert auf Masse liegt (3), liegt der Source-Anschluss von N2 ebenfalls auf Masse (8). Da das Gate von N2 auf UB-Pegel liegt (6) schaltet N2 durch und zieht den Punkt Y auf Masse (9). Aus diesem Grund werden auch die Gates von N3 und P1 auf Masse gezogen (10, 11). Da bei N3 sowohl Gate (10) als auch Source auf Masse liegen, sperrt dieser. Bei P1 hingegen liegt Source auf UB (12), so dass P1 leitend wird und der Punkt X auf UB-Potential gezogen wird (13). Dies hat wiederum zur Folge, dass die Gates von N4 und P2 ebenfalls auf UB-Potential liegen (14, 15). Da bei P2 jetzt sowohl Source (16) als auch Gate (15) auf UB-Potential liegen, sperrt dieser. N4 leitet jedoch, da sein Gate auf UB-Potential (14) und Source auf Masse (17) liegt. Daraus folgt, dass Punkt Y auch dann auf Masse-Pegel bleibt (18), wenn an der Zeilenleitung wieder UB-Pegel an-gelegt wird (19), die Transistoren N1 und N2 damit nicht mehr durchschalten und die aus P1, P2, N3 und N4 bestehende Rückkopplungsschaltung wieder von der Aussenwelt abtrennen. Durch die Rückkopplung der vier Transistoren P1, P2, N3 und N4 liegt Punkt X somit auf +UB und Punkt Y auf Masse. Dieser Zustand entspricht dem abgespeicherten Wert „1“. Läge Punkt X auf Mas-se und Punkt Y auf +UB, entspräche das dem abgespeicherten Wert „0“.

1-45

Wie der im SRAM gespeicherte Wert wieder ausgelesen werden kann, zeigt die nachfolgende Abbil-dung.

N3

P1

N1 N2

N4

P2

UB

Zeilenleitung (Auswahl)S

palte

nlei

tung

Spa

ltenl

eitu

ng in

verti

ert

Bit Bit

-

+

+-1

816 -

9

10 -

+

11UB ⇒ 1UB ⇒ 0 12

+-

UB/2UB/2

3 +

UB/2UB/26 6

Precharge

7 -

+4 +45 5

-2

X

Y

N5 N6

Abb. 68: Auslesen einer SRAM-Speicherzelle

Um das gespeicherte Bit auszulesen, muss getestet werden, ob

− entweder Punkt X auf positivem Potential und damit Punkt Y auf negativem Potential liegt (dann ist eine „1“ gespeichert),

− oder Punkt X auf negativem Potential und damit Punkt Y auf positivem Potential liegt (dann ist

eine „0“ gespeichert). Für diesen Test werden durch Anlegen von +UB an die Zeilenleitung (8) die beiden Transistoren N1 und N2 durchgeschaltet und die Potentiale der Punkte X und Y an einen Differenzverstärker weiterge-leitet (9, 10), dessen Ausgang dann je nach abgespeichertem Bit entweder +UB (abgespeichertes Bit war eine 1) oder auf -UB (abgespeichertes Bit war eine 0) liefert (11, 12). Damit beim Durchschalten der Transistoren N1 und N2 am Differenzverstärker möglichst schnell die Pegeldifferenz der Punkte X und Y anliegt, sollten die beiden Spaltenleitungen (Bit und Bit invertiert) vor dem Durchschalten auf selbem Potential liegen.

− Da die beiden Spaltenleitungen aufgrund der daran angeschlossenen Transistoren und der Verdrahtung über eine gewisse Kapazität verfügen, ist auf ihnen stets eine gewisse Ladung ge-speichert.

− Im ungünstigen Fall hat diese Ladung ein zur Ladung an den Punkten X und Y genau entge-

gengesetztes Vorzeichen.

− Diese Ladung auf den Spaltenleitungen muss beim Durchschalten der Transistoren erst über-wunden werden, was einen Zeitverlust darstellt.

1-46

− Liegen beide Spaltenleitungen vor dem Durchschalten von N1 und N2 jedoch auf selbem Po-tential, genügt bereits der Transport einer sehr geringen Ladungsmenge, um den zwischen den Punkten X und Y vorhandenen Potentialunterschied durch den Differenzverstärker detektieren zu können.

− Die Detektion erfolgt dann sehr schnell, was eine sehr kurzen Auslesezeit der Speicherzelle zur

Folge hat. Im Grundzustand liegen die Zeilenleitung und die Steuerleitung Precharge jeweils auf Masse (1, 2). Die aus P1, P2, N3 und N4 bestehende Rückkopplungsschaltung ist somit von den Spaltenleitungen getrennt. Um die Spaltenleitungen auf gleiches Potential (in diesem Beispiel UB/2) zu legen, wird auf der Steuer-leitung Precharge für kurze Zeit die Spannung +UB angelegt (3). Da das Gate (4) der Transistoren N5 und N6 dann auf höherem Pegel liegt als die zugehörigen Source-Anschlüsse (5), schalten N5 und N6 durch. Die Spaltenleitungen Bit und Bit invertiert werden somit beide auf UB/2-Potential aufgeladen (6) und die beiden Transistoren N5 und N6 durch Anlegen von Masse an die Precharge-Leitung (7) da-nach wieder gesperrt. Selbst wenn bei einer abgespeicherten „1“ N1 aufgrund des geringen Spannungsunterschiedes (ΔU = UB – UB/2 = UB/2) zwischen Gate und Source nicht durchschalten sollte, führt die Spaltenleitung Bit aufgrund der Aufladung zumindest positives Potential. Die Spaltenleitung Bit invertiert wird bei einer abgespeicherten „1“ hingegen definitiv über N2 auf Masse gezogen, so dass am Differenzverstärker das Vorzeichen der Pegeldifferenz der Punkte X und Y sofort detektiert werden kann.

1-47

Im Gegensatz zu SRAM-Speicherzellen sind DRAM-Speicherzellen wesentlich einfacher aufgebaut: Sie bestehen lediglich aus einem Transistor und einem Kondensator.

C

Spaltenleitung

Zeilenleitung

Abb. 69: DRAM-Speicher

Der Transistor dient – wie die beiden Transistoren N1 und N2 beim SRAM – zur Isolierung des Spei-cherelements von der Aussenwelt. Das Speicherelement ist hier jedoch nicht eine rückgekoppelte Transistorschaltung, sondern ein Kondensator. Um ein Bit im DRAM abzulegen, wird der Transistor durchgeschaltet und der Kondensator über die Zeilenleitung dann entweder ge- oder entladen. Anschliessend wird der Transistor wieder gesperrt, so dass die im Kondensator gespeicherte Ladung erhalten bleibt. Aufgrund von Leckströmen verliert der Kondensator jedoch mit der Zeit seine Ladung, weshalb er immer wieder aufgefrischt werden muss. Die Speicherzelle muss dabei ausgelesen und dann mit dem selben Wert wieder beschrieben werden. Da Laden und Entladen bei Kondensatoren immer Zeit benötigt (U(t) = U0

⋅ e-RC/t), sind Speicherzugrif-fe auf DRAMs im Vergleich zu Zugriffen auf SRAMs wesentlich langsamer. Da für DRAM-Speicherzellen vier Bauteile weniger benötigt werden als für SRAM, kann DRAM billiger hergestellt werden als SRAM. Zudem benötigt eine DRAM-Speicherzelle wesentlich weniger Silizium-Fläche als eine SRAM-Speicherzelle, weshalb deutlich mehr DRAM-Speicherzellen als SRAM-Speicherzellen auf einen Chip passen. Aus diesem Grund erreicht man bei einer bestimmten Spei-chergrösse mit DRAM auch eine höhere Ausbeute als mit SRAM, was den Preis von DRAM im Ver-gleich zu SRAM weiter senkt. Gerade diese Wirtschaftlichkeit hat dafür gesorgt, dass als Arbeitsspeicher fast ausschliesslich DRAM-Speicher verwendet wird. Da die Zeilen- und Spaltenleitungen des Chips beim Be- und Entladen der Speicherzelle belegt sind und somit nicht zum Be- und Entladen von anderen Speicherzellen des Speicherchips verwendet werden können, sind die Daten aufeinanderfolgender Adressen in der Regel in verschiedenen Spei-cherchips abgelegt. Auf diese Weise kann bei den häufig auftretenden konsekutiven Speicherzugriffen (Zugriffe auf aufeinanderfolgende Adressen) die eine Speicherzelle bereits ausgelesen werden, wäh-rend in die andere noch die beim Auslesen verlorengegangene Ladung zurückgeladen wird. Solche Verfahren haben zu einer Vielzahl unterschiedlicher DRAM-Speicherarten geführt. Eine von diesen ist auch das in unserem PC verwendete DDR-RAM (Double-Data-Rate RAM), das eine Wei-terentwicklung des SD-RAMs (Synchronous DRAM) ist.

1-48

Wie wir in Abb. 64 auf Seite 1-42 gesehen haben, werden zwischen Prozessor und Arbeitsspeicher Daten transportiert. Prozessor und Arbeitsspeicher sind dazu über einen sog. Bus miteinander ver-bunden. Dass dieser Bus in Abb. 53 auf Seite 1-35 noch von einem weiteren Chip, dem GMCH (früher Northbridge genannt), gekreuzt wird, soll uns hier erstmal nicht stören. Wir nehmen zunächst einfach an, dass der Arbeitsspeicher direkt mit dem Prozessor verbunden ist (vgl. nachfolgende Abbildung).

Steuerwerk/Leitwerk

Rechenwerk/ALU

Registerblockmit Registern

ArbeitsspeicherProzessor (CPU)Bus

BR:

Abb. 70: Prozessor, Arbeitsspeicher und Bus

Desweiteren betrachten wir zunächst auch nicht den in unserem Rechner real verwendeten Bus, son-dern wir wählen eine Art „Phantasie-Bus“, mit dem sich das Prinzip der Datenübertragung leichter verstehen lässt. Wenn Sie das Prinzip des Datenaustauschs über Busse verstanden haben, schauen wir uns die in unserem Rechner vorkommenden realen Busse an. • Busse Ein Bus ist nichts anderes als eine Menge paralleler Leitungen, die in ihrer Gesamtheit eine bestimmte Funktion erfüllen: Das Übertragen von Daten von einem Sender zu einem Empfänger. In unserem Beispiel vom Prozessor zum Arbeitsspeicher bzw. vom Arbeitsspeicher zum Prozessor. Wie viele reale Bussysteme, gliedert sich auch der von uns hier betrachtete Phantasie-Bus in drei Teil-Busse auf:

− Datenbus: Der Datenbus dient zur Übertragung der Daten, die zwischen dem Prozessor und dem Arbeitsspeicher ausgetauscht werden sollen.

− Adressbus: Der Adressbus dient zur Adressierung. Unter Adressierung versteht man das Aus-

wählen bestimmter Speicherstellen (oder Geräte – s.u.): + Beim Schreiben von Daten in den Speicher werden durch die Adressierung diejenigen

Speicherstellen bestimmt, in die die Daten geschrieben werden sollen. + Beim Lesen von Daten aus dem Speicher werden durch die Adressierung diejenigen Spei-

cherstellen bestimmt, aus denen die Daten ausgelesen werden sollen.

1-49

− Steuerbus: Der Steuerbus steuert die Datenübertragung.

+ Wenn der Prozessor Daten in den Speicher schreibt, gibt bei unserem Phantasie-Bus eine fallende Flanke auf der Schreibleitung Schreiben an, dass • die auf dem Datenbus befindlichen Daten gültig sind und vom Speicher übernommen

werden können. • die auf dem Adressbus befindliche Adresse gültig ist und vom Speicher verwendet wer-

den kann. • der Schreibvorgang jetzt durchgeführt werden soll.

+ Wenn der Prozessor Daten aus dem Speicher liest, gibt eine fallende Flanke auf der Lese-

leitung Lesen an, dass • der Datenbus jetzt hochohmig (Tristate) ist, so dass der Speicher Daten auf den Daten-

bus ablegen kann, ohne dass es zu einem Kurzschluss kommt. • die auf dem Adressbus befindliche Adresse gültig ist und vom Speicher verwendet wer-

den kann. • der Lesevorgang jetzt durchgeführt werden soll.

+ Wenn der Prozessor Daten aus dem Speicher liest, übernimmt er bei der steigenden Flanke

auf der Leseleitung Lesen die auf dem Datenbus anliegenden Daten und speichert sie in-tern ab.

Nachfolgende Abbildung zeigt die Verwendung unseres Phantasie-Busses bei einem Schreibvorgang. Dabei wird der 4-Bit-Wert 10102 an die Speicheradresse 01102 geschrieben.

Bus

Daten-Bus:

1010

Inhalt

0110

101012

t

Adr.

Bus besteht aus Adress-,Daten- und Steuer-Bus.

Spannungs-Pegel auf den Bus-leitungen in Abhängigkeit der Zeit.

Wert am Adress-Bus wähltdie Speicherzelle aus, in diedie Daten geschrieben werden.

tschreiben

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

0000000100100011010001010110011110001001101010111100110111101111

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

1

0

1

0Lesen

Schreiben

Adress-Bus:

Steuer-Bus:

Prozessor schreibtDaten 1010 anAdresse 0110und gibt an derLeitung „Schrei-ben“ eine fallen-de Flanke aus.

4

3

6

5

8

9

7

Abb. 71: Bussignale und deren Verwendung beim Schreibzugriff

1-50

Zuerst legt der Prozessor das Datenwort (1), das abgespeichert werden soll, zusammen mit der Ad-resse (2), an die das Datenwort abgespeichert werden soll, auf den Bus. Die grau hinterlegten Bereiche (3) und (4) zeigen die Adresse und das Datenwort als Signalpegel auf den Busleitungen. Nachdem der Prozessor Datenwort und Adresse am Bus angelegt hat, teilt er dem Speicher durch eine fallende Flanke (5) auf der Steuer-Bus-Leitung Schreiben (6) mit, dass der Speicher die Daten jetzt abspeichern kann. Sobald der Speicher die fallende Flanke auf der Schreib-Leitung detektiert (7), wählt er die durch den Adressbus adressierte Speicherzelle aus (8) und schreibt dorthin das am Datenbus anliegende Da-tenwort (9). Das Einlesen von Daten aus dem Speicher in den Prozessor funktioniert so ähnlich:

Bus

Daten-Bus:

1010

Inhalt

101010

t

Adr.

Bus besteht aus Adress-,Daten- und Steuer-Bus.

Spannungs-Pegel auf den Bus-leitungen in Abhängigkeit der Zeit.

Wert am Adress-Bus wähltdie Speicherzelle aus, aus derdie Daten gelesen werden.

tschreiben

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

0000000100100011010001010110011110001001101010111100110111101111

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

1

0

1

0Lesen

Schreiben

Adress-Bus:

Steuer-Bus:Prozessor legtAdresse 0110auf den Adress-Bus, hält denDatenbus hoch-ohmig und gibtauf der LeitungLesen eine fal-lende Flankeaus. Damit zeigter, dass dieAdresse jetzt gültig ist und sofort gelesenwerden soll.

8

2

4

3

7

5

6

01101

9

9

Zunächst legt der Prozessor die Adresse der Speicherstelle (1), von der die Daten eingelesen werden sollen, auf den Adressbus. Der am Adressbus grau hinterlegte Bereich (2) zeigt, wie das Adresswort 0110 auf dem Bus als Logik- bzw. Spannungs-Pegel übermittelt wird. Mit einer fallenden Flanke (3) auf der Steuerleitung Lesen (4) signalisiert der Prozessor dem Arbeits-speicher, dass dieser den Inhalt der zur am Adressbus anliegende Adresse gehörigen Speicherstelle auf den Daten-Bus legen soll. Detektiert der Arbeitsspeicher die fallende Flanke auf der Lesen-Leitung (5), wählt er die adressierte Speicherstelle aus (6) und legt dann die dort abgespeicherten Daten (7) am Datenbus an (8). Der Prozessor wartet eine bestimmte Zeit und generiert dann auf der Lesen-Leitung eine steigende Flanke (9), die er selber dazu benutzt, die auf dem Datenbus anliegenden Daten zu übernehmen (10).

1-51

Busse sind jedoch viel universeller, als dass sie nur die Datenübertragung zwischen Prozessor und Arbeitsspeicher übernehmen könnten: Über Busse können auch alle im PC installierten Geräte ange-steuert werden. Der Verdrahtungsaufwand ist dabei gering, da alle Kommunikationsteilnehmer sich einfach an den Busleitungen „einklinken“ können, jede Busleitung also mit jedem Gerät verbunden ist. Die nachfolgende Abbildungen zeigen, wie Daten nicht nur zwischen Prozessor und Speicher, son-dern auch zwischen Prozessor und einem beliebigen Peripherie-Gerät übertragen werden können. Das Schreiben von Daten in ein Peripheriegerät funktioniert dabei wie in nachfolgendem Beispiel: Der Prozessor schreibt das Datenwort 1010 an die Adresse 0110. Die Adresse 0110 ist in diesem Fall jedoch nicht dem Arbeitsspeicher, sondern einer bestimmten Speicherstelle in einem der vier an den Bus angeschlossenen Geräte zugeordnet.

Bus

Daten-Bus:

0110

101041

t

Bus besteht aus Adress-,Daten- und Steuer-Bus.

Pegel auf den Busleitungenin Abhängigkeit der Zeit.

Am Bus angeschlossene Ge-räte überprüfen die Adresseund übernehmen ggf. die Daten.

tschreiben

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

1

0

1

0Lesen

Schreiben

Adress-Bus:

Steuer-Bus:

Prozessor schreibtDaten 1010 andie Adresse 0110und gibt an derLeitung „Schrei-ben“ eine fal-lende Flankeaus.

5

2

11

10

Adresse ==meine?

Gerät 1

ja nein

7

8

Adresse ==meine?

Gerät 2

ja nein

1010

7

9

12

Adresse ==meine?

Gerät 3

ja nein

7

8

Adresse ==meine?

Gerät 4

ja nein

7

81010

30110

6

1010

30110

6

1010

30110

6

1010

30110

6

Abb. 72: Schreiben von Daten in ein am Bus angeschlossenes Gerät (z.B. Steuerbefele fürs DVD-ROM)

Wie zuvor beim Schreibzugriff auf den Arbeitsspeicher legt der Prozessor zuerst die Adresse auf den Adress-Bus (1). Die Adresse wandert über den Adressbus (2) und liegt dann bei allen am Bus ange-schlossenen Geräten an (3). Als nächstes legt der Prozessor die zu schreibenden Daten (4) auf den Daten-Bus (5), so dass auch diese an allen am Bus angeschlossenen Geräten anliegen (6). Jedes der am Bus angeschlossenen Geräte überprüft nun, ob es für die auf dem Adress-Bus anlie-gende Adresse (3) zuständig ist (7). In unserem Beispiel erkennen die Geräte 1, 3 und 4, dass sie nicht für die am Adress-Bus anliegende Adresse zuständig sind, weshalb sie nichts unternehmen (8).

1-52

Gerät 2 erkennt jedoch, das die am Bus anliegende Adresse von ihm selber verwendet wird (9) und bereitet sich darauf vor, die am Datenbus anliegenden Daten zu übernehmen. Sobald der Prozessor das Übernahme-Signal (10) generiert und es über die Steuerleitung Schreiben (11) an die am Bus angeschlossenen Geräte gelangt, übernimmt Gerät 2 die am Datenbus anliegen-den Daten in seine durch 0110 adressierte Speicherstelle (12). Das Lesen von Daten aus am Bus angeschlossenen Geräten funktioniert sehr ähnlich:

Bus

Daten-Bus:

0110

1010121

t

Bus besteht aus Adress-,Daten- und Steuer-Bus.

Pegel auf den Busleitungenin Abhängigkeit der Zeit.

Am Bus angeschlossene Ge-räte überprüfen die Adresseund legen ggf. die Daten aufden Bus.

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

1

0

1

0

1

0

1

0

Bit 3

Bit 2

Bit 1

Bit 0

Lesen

Schreiben

Adress-Bus:

Steuer-Bus:

Prozessor liestDaten aus derSpeicherstelle0110 eines ex-ternen Gerätsein.

10

2

7

Adresse ==meine?

Gerät 1

ja nein

4

5

Adresse ==meine?

Gerät 2

ja nein

1010

4

6

Adresse ==meine?

Gerät 3

ja nein

4

5

Adresse ==meine?

Gerät 4

ja nein

4

5

30110

30110

1010

30110

9

30110

1

0

1

0

8 11

11

Abb. 73: Einlesen von Daten von einem am Bus angeschlossenen Gerät (z.B. Daten vom DVD-ROM)

Zuerst legt der Prozessor die Adresse, von der er etwas einlesen will, auf den Bus (1). Die Adresse wird über den Bus übertragen (2) und liegt dann an allen am Bus angeschlossenen Geräten an (3). Jedes Gerät überprüft nun, ob es für diese Adresse zuständig ist (4). In obiger Abbildung sind wieder die Geräte 1, 3 und 4 nicht für die am Bus befindliche Adresse zuständig und ignorieren somit die Anfrage (5). Gerät 2 erkennt, dass es für die am Bus anliegende Adresse zuständig ist (6) und macht sich für weitere Schritte bereit. Um den Datentransfer einzuleiten, legt der Prozessor eine fallende Flanke (7) auf die Steuerleitung Lesen. Die Flanke wird vom Bus übertragen (8) und dann von den Geräten detektiert. Sobald das Gerät 2 die fallende Flanke erkennt, legt es die an der Adresse 0110 gespeicherten Daten auf den Datenbus (9), über den sie dann übertragen werden (10) und schliesslich am Prozessor anliegen. Mit der auf die fallende Flanke folgenden steigenden Flanke (11) übernimmt der Prozessor die auf dem Datenbus befindlichen Daten (12).

1-53

Nachdem wir nun wissen, wie der Prozessor Peripheriegeräte ansprechen kann, können wird das in Abb. 70 auf Seite 1-48 gezeigte Bild wie nachfolgend angegeben erweitern:

Steuerwerk/Leitwerk

Rechenwerk/ALU

Registerblockmit Registern

c:\>

Arbeitsspeicher

Prozessor (CPU)

Bus

Peripherie:

Festplatte

Diskettenlaufwerk

Bildschirm

Tastatur

CD-/DVD-Laufwerk

Bios-Programm(Flash)

LAN, USB, FireWire

Bios-Daten(batteriegepuffert)in enthalten•

BR:

DR

DB

C1

FP

DL

C9

C

A

B4

GK

D5

Abb. 74: Vereinfachter Aufbau eines Computers

Der Prozessor ist über einen Bus mit der Aussenwelt verbunden. Der Bus dient als einziges Kommu-nikationsmittel zwischen dem Prozessor und den restlichen Komponenten und wird (bis auf DMA-Zugriffe) vom Prozessor gesteuert. Die restlichen Komponenten gliedern sich in drei Gruppen:

− Im Flash-Speicher-Chip (C9), der sich auf der Hauptplatine befindet, sind diejenigen Befehle abgespeichert, die nach dem Start des Computers als erstes ausgeführt werden; man spricht hier vom sog. BIOS (Basic Input Output System), da in diesem Chip Programme abgelegt sind, die eine rudimentäre Ansteuerung von Ein- und Ausgabegeräten ermöglichen. Benutzerdefinier-te Einstellungen, die beim Starten des Rechners durchgeführt werden sollen, sind dabei in ei-nem batteriegepufferten RAM abgelegt, das bei unserem Computer im ICH5 (Input Output Con-troller Hub der 5. Generation – das durch „C“ gekennzeichnete Bauelement) untergebracht ist.

− Der Arbeitsspeicher (B4) nimmt sowohl Daten als auch Befehle auf. In ihm stehen neben den

Programmen, die der Prozessor ausführt, auch die Daten, mit denen der Prozessor seine Be-rechnungen anstellt.

− Die Peripherie dient zur Ein- und Ausgabe von Daten

1-54

+ zwischen Mensch und Maschine (Tastatur und Bildschirm). + zwischen Maschine und Maschine (Festplatte, CD, DVD, Diskette, LAN-Adapter, USB- oder

FireWire-Adapter). Der gesamte Ablauf in einem Computersystem lässt sich damit im wesentlichen auf drei Schritte zu-rückführen:

− Der Prozessor liest Daten aus dem Speicher oder einem Peripherie-Gerät ein. − Der Prozessor verarbeitet diese Daten oder führt sie als Programm aus. − Der Prozessor speichert verarbeitete Daten ab oder schickt sie an ein Peripherie-Gerät.

Wenn wir unseren Computer einschalten, beginnt der Prozessor automatisch damit, Befehle aus einer bestimmten Speicheradresse zu holen und dann als Programm auszuführen. Diese allererste Spei-cheradresse liegt im Hauptplatinen-BIOS. Der Prozessor führt also zunächst Befehle aus, die in dem auf der Hauptplatine aufgelöteten Flash-Speicher abgelegt sind. Mit diesen Befehlen wird zunächst die Hardware der Hauptplatine überprüft (POST = Power On Self Test). Im Anschluss überprüft der Prozessor den Arbeitsspeicher auf Kapazität (Menge des verfügbaren Speichers) und Funktionsfähigkeit. Um die auf der Hauptplatine befindliche Hardware einzustellen, werden die im batteriebepufferten BIOS-Daten-RAM gespeicherten Einstellungen ausgelesen, verarbeitet und die Ergebnisse dann auf bestimmte Speicheradressen geschrieben, die auf Befehls- und Daten-Register des Chipssatzes zei-gen. Auf diese Weise werden im Chipsatz z.B. Einstellungen für das Ansprechen des Arbeitsspeichers (Verzögerungszeiten etc.) oder für die Zugriffsweise auf den PCI-Bus getätigt. Die Ausführung des im BIOS abgelegten Codes sorgt auch dafür, dass die BIOS-Bausteine der Steckkarten und Peripherie-Geräte ausgelesen werden und der dort abgelegte Befehlscode vom Pro-zessor teilweise ausgeführt wird. Bei der Ausführung dieses Codes werden dann die zugehörigen Steckkarten bzw. Peripherie-Geräte initialisiert. Dazu schreibt der Prozessor wieder Daten an Adres-sen, die auf Speicherstellen in den Steckkarten (z.B. Grafikkarte) bzw. in den Peripherie-Geräten ver-weisen. Diese Daten werden von den entsprechenden Geräten dann als Befehle interpretiert und ausgeführt, was beispielsweise zu einer Grund-Einstellung der Grafikkarte führt. Desweiteren werden aus den BIOS-Bausteinen rudimentäre Treiber für die zugehörigen Steckkarten bzw. Geräte ausgelesen und im Arbeitsspeicher abgelegt. Der Begriff „rudimentär“ meint dabei, dass die Treiber einen sehr eingeschränkten Funktionsumfang aufweisen und lediglich dafür Sorge tragen, dass beim Starten des PCs die betreffenden Geräte in ihrer Grundfunktionalität verwendet werden können. Sollen beim Starten des Computers Funktionen einer Steckkarte ausgeführt werden, verzweigt der Programmfluss in den Treiber, der dann die Kommunikation mit der Karte übernimmt, ihr die durchzu-führende Aktion mitteilt und evtl. ein Ergebnis zurückliefert. Beispielsweise ermöglicht der Treiber des Grafikkarten-BIOS, Text und einfache Grafik-Ausgaben auf dem Bildschirm auszugeben, was zur Überwachung des PC-Startvorgangs vollkommen ausreichend ist. Erst beim Laden des Betriebssys-tems werden von der Festplatte dann die „richtigen“ Treiber für die Grafikkarte geladen, mit denen sich das volle Leistungsspektrum der Grafikkarte ausschöpfen lässt. Da es wesentlich günstiger8 ist, Treiber von der Festplatte zu laden, als jede Steckkarte bzw. jedes Gerät mit einem Flash-Speicherchip auszurüsten, verfügen nur diejenigen Steckkarten/Geräte über einen BIOS-Chip, die bereits beim Booten des Rechners funktionieren müssen:

− Grafikkarten, da diese evtl. Fehlermeldungen auf dem Bildschirm ausgeben müssen. − Netzwerkkarten, da der Rechner evtl. über das Netzwerk gestartet werden soll, der sog. Boot-

loader (s. u.) sich somit auf einem anderen Rechner befindet und erst über die Netzwerkkarte in den Arbeitsspeicher geladen werden muss.

8 Zum Einen ist es preislich günstiger, da Speicherplatz auf einem Flash-Speicher wesentlich teuerer ist als Speicherplatz auf einer Festplatte. Zum Anderen ist es bei einem Treiber-Update wesentlich einfacher, eine Datei aus dem Internet herunterzula-den und in einem bestimmten Ordner abzulegen, als den Flash-Speicher neu zu programmieren.

1-55

Nach dem Laden/Ausführen der BIOS-Routinen der Steckkarten sorgt das im Hauptplatinen-BIOS abgelegte Programm dafür, dass an die Festplatte Daten geschickt werden, die von dieser als Befehle zur Adressierung des Bootrecords (Zylinder 0, Kopf 0 und Sektor 1 der ersten IDE-Festplatte) erkannt werden. Im Bootrecord steht der sog. Bootloader, das Programm, das das Betriebssystem von der Festplatte in den Arbeitsspeicher lädt. Ist der Bootloader gefunden, sorgt das BIOS-Programm dafür, dass der Bootloader in den Arbeits-speicher geladen und dann vom Prozessor ausgeführt wird. Die Kontrolle geht in diesem Moment vom BIOS-Programm an den Bootloader über, der zunächst die Festplatte nach einem gültigen Betriebs-system durchsucht und den Programmcode des Betriebssystems dann ebenfalls in den Arbeitsspei-cher lädt und dann vom Prozessor ausführen lässt. Jetzt geht die Kontrolle vollständig an das Be-triebssystem über, das der Reihe nach immer mehr Daten von der Festplatte in den Arbeitsspeicher lädt und dann als Programm ausführt. Dabei werden neben Betriebssystem-Code insbesondere auch die auf der Festplatte gespeicherten Treiber der Peripherie-Geräte in den Arbeitsspeicher geladen (und z.T. ausgeführt), so dass die am PC angeschlossenen Geräte über diese Treiber-Schnittstelle angesprochen/verwendet werden können. Aber nicht nur beim Starten des PCs dreht sich alles darum, dass der Prozessor Daten aus dem Ar-beitsspeicher oder den Peripherie-Geräten einliest, verarbeitet (oder ausführt) und dann wieder aus-gibt: Wir haben zuvor gesehen, dass die ganze Darstellung des Bildschirminhalts darauf basiert, dass der Prozessor Daten in den Video-Speicher der Grafikkarte schreibt. Drückt man eine Taste auf der Tastatur wird dies dem Prozessor gemeldet und über den Bus wird dann der Wert der gedrückten Taste ausgelesen. Beim Bewegen der Maus wird dem Prozessor über den Bus mitgeteilt, um wieviele Längeneinheiten die Maus nach links/rechts bzw. vorne/hinten bewegt wurde. Der Prozessor berechnet dann aus die-ser Information die neue Position des Maus-Cursors, rendert im Arbeitsspeicher die neue Bildschirm-ansicht, die den verschobenen Mauszeiger darstellt und überträgt dieses Bild dann wieder in den Vi-deo-Speicher der Grafikkarte. Da sich im PC also alles nur darum dreht, Daten von einem Ort zum anderen zu transportieren, ist auch die Architektur eines PCs auf genau diesen Zweck ausgelegt. Die auf der nächsten Seite noch einmal abgebildete Rechner-Architektur entspricht der realen Imple-mentierung der in Abb. 74 auf Seite 1-53 gezeigten stark vereinfachten Rechner-Architektur. Die Unterschiede sind klar erkennbar: In unserem vereinfachten Modell (Abb. 74) sind alle Komponenten direkt an den Prozessor ange-schlossen. Es gibt nur einen Bus, über den alle Komponenten und Peripherie-Geräte miteinander und mit dem Prozessor verbunden sind. Unabhängig davon, wie schnell die einzelnen Geräte Daten ver-arbeiten oder übertragen können. So ein System wäre prinzipiell lauffähig, aber sehr langsam, da die langsamen Geräte am Bus die schnellen ausbremsen. Die reale Rechner-Architektur aus Abb. 75 verwendet mehrere verschiedene Busse, die unterschied-lich schnell sind und über sog. Bridges miteinander verbunden sind. Die englische Bezeichnung Bridge trifft die Funktion dieser Bausteine auf den Kopf: Bridges sind Brücken, die verschiedene Bus-syteme miteinander verbinden. Dabei werden die Daten, die über den sehr schnellen FSB mit dem spezifischen FSB-Protokoll9 an den GMCH geschickt werden und nicht für ein direkt mit dem GMCH verbundenes Gerät bestimmt sind, in das Bus-Protokoll des etwas langsameren HI-Busses gepackt und dann an den ICH5 übertragen. Sind die Daten auch für keine direkt im ICH5 integrierte Kompo-nente gedacht, werden die Daten in das entsprechend nächste Protokoll gepackt und dann auf dem entsprechenden Bus weitergeschickt. Beispielsweise werden die mit dem HI-Protokoll an den ICH5 gelieferten Daten in das PCI-Bus-Protokoll eingebettet und dann über den PCI-Bus an eine Steckkarte geschickt. Der auf der Steckkarte befindliche Controller entpackt die Daten dann wieder aus dem PCI-Protokoll und verarbeitet sie.

9 Unter einem Bus-Protokoll versteht man die Regeln, nach denen die Kommunikation über den Bus abläuft. Beispiele für sol-che Regeln sind: Zuerst legt der Sender die Adresse für mindestens 20 ms auf den Adress-Bus. 5 ms, nachdem die Adresse am Bus anliegt, folgt ein fallender Pegel auf der Lesen-Leitung...

1-56

Die gesamte Rechner-Architektur ist also gekennzeichnet durch ein von Bridges aufgespanntes Ver-bindungsnetzwerk, dessen Übertragungsrate höher wird, je näher man dem Prozessor kommt und niedriger wird, je weiter man sich vom Prozessor entfernt.

A

B

DDR-RAM

AGP-Port

C

Gigabit-Ethernet-Controller

Anschlüssefür USB 2.0

2 Anschlüssefür Serial-ATA

2 Anschlüssefür ATA 100

Audio-CodecAC `97 3

Takt-GeneratorCPU, PCI, …

SMBus 2.0/I2C-Bus

D

Anschluss Dis-ketten-Laufwerk

PS/2 AnschlussTastatur

PS/2 AnschlussMaus

Anschluss fürseriellen Port

Anschluss fürparallelen Port

Anschluss fürVentilator

Prozessor-Bus, 4⋅200 MHz(FSB = Front Side Bus)

HI = Hub Interface266 MByte/s

Kanal A3,2 GyteB/s

Kanal B3,2 GByte/s

PCI-Bus133 MByte/s

2,1 GByte/s

266 MByte/s

480 MBit/s

150 MByte/s

100 MByte/s

100 MBit/s

LPC-Interface(Low Pin Count)

Analoger VGA-Anschluss

Festplatte

DVD-ROM

DVD-Brenner

6 PCI-Slots

DDR-RAM

DDR-RAM

DDR-RAM

Grafikkarte

TFT-Bildschirm

DVIB1

B2

B3

B4

C1

C2

B4

B4

B4

C3

C4

C6

C7

FS

HI

D1

D2

D3

D4

D5

D6

Disketten-Laufwerk

Tastatur

Maus

FireWire-Adapter

GK

FP

DR

DB

FW

DL

Netzteil

NT

230 V ~

Ethernet-Controller

USB2.0-Controller

Intel 82801EBICH5

2 SATA-Controller

ATA 100Controller

AC `97Controller

PCI-Controller

LPC-interfaceController

CMOS-RAM

System-Managmnt.

Bios-interf.Controller Flash-Bios

SMBusController

SuperInput/Output

Controller

RS 232Controller

LPTController

FloppyController

TastaturController

MausController

Drehzahl-regelung

LAN-Anschluss

LA

1 GBit/s

Intel 82865GGMCH

HI Controller

CSA-Controller

DDR-RAMController

AGP-Controller

Grafik-Controller

FSB Logik/Treiber

ProzessorIntel P4

Befehls-Cache

Daten-Cache

Adress-Umsetzer

Rechen-Werk

Steuer-Werk

C9

Batterie C8

Abb. 75: Architektur eines Computers

1-57

Im Folgenden sind die Funktionen der Haupt-Bridges stichpunktartig zusammengestellt. • GMCH = Graphics and Memory Controller10 Hub (B)

− ist direkt am Prozessor angeschlossen ⇒ „Datenverteiler“ für sehr schnelle Geräte − führt für den Prozessor Zugriffe auf den Arbeitsspeicher (engl. Memory, hier: DDR-RAM) aus − verfügt über einen integrierten Grafik-Controller (eine integrierte Grafik-„Karte“), mit der der Pro-

zessor Bilder auf einem Monitor ausgeben kann ⇒ Begriff „Graphics“ in GMCH − kann externe Grafikkarten über den AGP-Port ansprechen, so dass der Prozessor Bilder auch

auf diesem Weg auf einem Monitor ausgeben kann ⇒ Begriff „Graphics“ in GMCH − bietet eine Anschlussmöglichkeit für einen Gigabit-Ethernet-Controller, über den der Prozessor

Daten mit bis zu 1 GBit/s über ein Netzwerk übertragen kann − kann vom Prozessor konfiguriert (eingestellt) werden − früher auch Northbridge genannt (North, da „oben beim Prozessor“ und Bridge, da Verbindung

zwischen zwei Bussen [Brückenfunktion]) • ICH5 = Input/Output Controller Hub (5. Generation) (C)

− „Datenverteiler“ für mittel schnelle bis schnelle Geräte − verfügt über diverse Ein- und Ausgabe-Controller, insbesondere für PCI11 und IDE12 − internes batteriegepuffertes RAM zur Sicherung von Konfigurationsdaten (z.B. BIOS-

Einstellungen) − bietet Anschlussmöglichkeit für den Flash-BIOS-Chip, der den System-Startup-Code enthält − früher auch Southbridge genannt, (South, da unterhalb der Northbridge und Bridge, da Brü-

ckenfunktion zwischen verschiedenen Bussen) • SIO-Controller = Super Input/Output Controller (D)

− „Datenverteiler“ für langsame Geräte − verfügt insbesondere über die Controller für serielle/parallele Schnittstellen, Floppy, Tastatur

und Maus

10 Controller = aktive Komponente, die andere Elemente steuert (engl. to control = steuern). 11 PCI = Peripheral Component Interconnect: Standardisierter Peripheriebus ⇒ Peripherie-Geräte (z.B. Erweiterungskarten) werden nicht direkt an den Prozessor oder den FSB angeschlossen, sondern über den standardisierten PCI-Bus. Der grosse Vorteil besteht darin, dass bereits angeschaffte Peripherie-Geräte auch über mehrere Prozessorgenerationen hin verwendet werden können. Bei der Entwicklung neuer Prozessoren, die evtl. auch über einen geänderten FSB verfügen, muss dann nur ein neuer GMCH bzw. ICH eingesetzt werden, der aus den neuen FSB-Signalen dann wieder die standardisierten PCI-Signale erzeugt. Die ganzen Peripherie-Geräte können dann trotz geändertem FSB weiterhin am (standardisierten) PCI-Bus betrieben werden. 12 IDE = Integrated Drive Electronics: Standardisierte Schnittstelle zum Anschluss von Festplattenlaufwerken (sowie CD, DVD etc.). Der Name „Intergrated Drive Electronics“ begründet sich darin, dass Festplatten vor IDE-Zeiten über keine eigenen Con-troller-Chip verfügten, also direkt vom Prozessor gesteuert wurden. Mit der Einführung von IDE wurden die Steueraufgaben der Festplatte (z.B. Kopfpositionierung) von einer im Festplattengehäuse untergebrachten Steuerelektronik (dem Controller) erle-digt, was zu einer starken Entlastung des Hauptprozessors führte. Durch die Standardisierung von IDE und der Entkoppelung vom Prozessor/FSB ergeben sich die selben Vorteile wie beim PCI-Bus.

1-58

1.2 Von Neumann-Architektur

Die Architektur unseres Rechners geht unter anderem auf den Mathematiker John von Neumann zu-rück, weswegen sie auch von Neumann-Architektur genannt wird. John von Neumann wurde 1903 in Budapest/Ungarn geboren, wo er als Sohn des Bankiers Max Neumann aufwuchs. Da John von Neumanns Vater Max Neumann im Budapest zu Beginn des 19. Jh. zu einer bedeutenden Figur geworden war (Adelstitel als Ehrung) und die Angewohnheit hatte, aus-gewählte Kunden seiner Bank zu sich nach Hause zum Abendessen einzuladen und seiner Familie auch Proben oder Modelle neuer industrieller Unternehmungen, die er finanzierte, mit nach Hause brachte, erfuhr John von Neumann schon sehr früh von Joseph-Marie Jacquard, dessen Lochkarten-betriebene Webstühle in Abhängigkeit der Codierung der Lochkarte jedes beliebige Muster weben konnte. Dieser Webstuhl kann als der erste Computer angesehen werden. John von Neumann war ein Wunderkind. Bereits zu Schulzeiten konnte ihm kein Mitschüler auch nur annähernd das Wasser reichen. Während seine Kameraden auf dem Pausenhof spielten, stand der kleine Johnny eher abseits und analysierte das Verhalten seiner Mitschüler. Sein Vater förderte ihn, indem er Professoren anstellte, die Johnny nach der Schule daheim unterrichteten. Johnny wollte Mathematiker werden, doch sein Vater drängte ihn, in Berlin Chemieingenieur zu studie-ren, da diesem Beruf gute Zukunftsaussichten nachgesagt wurden. Johnny entschloss sich schließlich für einen ehrgeizigen Kompromiss, der ihn zum Einen absicherte, zum Anderen aber auch alle Karrie-re-Chancen offen ließ: Noch bevor er sich für das Studium als Chemieingenieur einschrieb, schrieb er sich an der Universität Budapest als Doktorand in Mathematik ein. Er hatte vor, als Student und Dok-torand gleichzeitig zu arbeiten – und zwar in zwei mehreren hundert Kilometer auseinanderliegenden Städten. Um diese Unverfrohrenheit auf die Spitze zu treiben, wollte der damals 17-jährige Gymnasi-ast in seiner Doktorarbeit die Axiomatisierung der Mengenlehre Georg Cantors versuchen – das strit-tigste Themen der zeitgenössischen Mathematik, das bereits einige berühmte Professoren aufs Glatt-eis geführt hatte. Das Studium als Chemieingenieur in Berlin sah John von Neumann eher als lästige Nebentätigkeit an, weshalb er es auch nach zwei Jahren ohne Abschluss beendete und dafür im Herbst 1923 die Aufnahmeprüfung für das zweite Jahr des Vierjahreskurses „Chemieingenieur“ an der rennomierten ETH (Eidgenössische Technische Hochschule) Zürich bestand.13 John von Neumann hatte eine aussergewöhnliche Begabung: Er konnte sich sehr schnell in fremde Thematiken einlesen und dann die in diesem Bereich tätigen Forscher mit seinem Wissen meilenweit überholen.

Abb. 76: John von Neumann

13 Albert Einstein – mit dem John von Neumann später in Princeton zusammenarbeitete – versagte 1895 bei der Aufnahmeprü-fung der ETH, woraufhin er eine Stelle im Berner Patentamt annahm. Dort entwickelte er dann die Spezielle Relativitätstherorie.

1-59

Das gelang ihm auch in nicht technischen Disziplinen: Er leistete mit seinem Buch über Spieltheorie und der Niederschrift zu seinem Vortrag „Über gewisse Gleichungen in der Ökonomie und eine Verall-gemeinerung von Brouwers Fixpunkt-Theorem“ wichtigste Beiträge zu den Wirtschaftswissenschaften. Ende der 1980er Jahre wurde die genannte Niederschrift von berühmten Wirtschaftswissenschaftlern als „der wichtigste Artikel auf dem Gebiet der mathematischen Ökonomie, der jemals geschrieben wurde“ bezeichnet. John von Neumanns Beiträge zur Computertechnik liegen insbesondere in der Programmierbarkeit von Computern. Bevor John von Neumann die Computertechnik revolutionierte, waren Computer da-rauf ausgerichtet, die Lösung für ein ganz bestimmtes Problem zu berechnen. Die Computer wurden damals „programmiert“, indem die Kabelverbindungen zwischen den Komponenten des Computers geändert wurden. John von Neumann erinnerte sich an die in seiner Kindheit kennengelernten Web-stühle von Joseph-Marie Jacquard, die in Abhängigkeit einer Lochkarte jedes beliebige Muster weben konnten und übertrug dieses Prinzip auf die von Eckert und Mauchly am IAS (Institute for Advanced Studies) in Princeton gebauten festverdrahteten Rechner. Seitdem konnten Rechner in Abhängigkeit von Lochkarten unterschiedliche Programme ausführen. Die Rechner waren damit nicht mehr auf ein bestimmtes Problem zugeschnitten, sondern universell verwendbar. Das aufwendigen Umstecken von Verbindungskabeln wich der Programmierung durch Lochkarten. Es waren keine Änderungen an der Verkabelung der Rechner mehr nötig. Der Aufbau des Rechners war plötzlich unabhängig vom zu lösenden Problem geworden. Die Befehle auf den Lochkarten waren alle immer nach dem selben Prinzip aufgebaut. Anders als bei der deutschen Sprache war der Sinn der einzelnen Befehle nicht vom Kontext abhängig, in dem der Befehl stand. Betrachtet man beispielsweise im Satz „Fliegen ist schön.“ lediglich das erste Wort „Fliegen“, so kann man nicht sagen, ob damit das Verb „fliegen“ gemeint ist, oder der Plural von „die Fliege“. Man erkennt erst am zweiten Wort („ist“ und nicht „sind“), dass nicht über schöne Insekten, sondern über die Fortbewegung in der Luft geredet wird. Als John von Neumann vor dem Problem stand, Computerbefehle in einer Sprache zu formulieren, die keine Mehrdeutigkeiten der gezeigten Art aufweist, kam ihm der Lateinunterricht zugute, den er auf dem Lutheraner-Gymnasium in Budapest genossen hatte: Er übertrug die klare Regelmäßigkeit der Lateinischen Sprache (z.B. Verb steht fast immer am Satzende) auf Computerbefehle und legte damit das erste Befehlsformat der Welt fest. (Die Befehle des MMIX-Prozessors, den wir im Laufe der Vorlesung noch kennenlernen werden, hat ein äußerst regelmäßiges Befehlsformat: Das erste Byte ist immer der Befehl, die nächsten drei Byte sind immer die Operanden.) John von Neumann schlug vor, den von Eckert und Mauchly am IAS gebauten Computer um die Pro-grammierbarkeit in einer kontextfreien Sprache zu erweitern. Nachdem er den Vorschlag schriftlich festgehalten hatte, verschickte ein Kollege diesen Vorschlag als Publikation. Da von Neumann diesen Vorschlag jedoch nur für interne Zwecke am IAS gedacht hatte, fehlten auf ihm die Namen von Eckert und Mauchly, auf deren Computer sich die Erweiterungen bezogen. John von Neumann wurden somit fälschlicherweise Ehren zugesprochen, die eigentlich Eckert und Machly zugestanden hätten, da der von Eckert und Mauchly entwickelte Computer von aller Welt nun als von Neumanns Werk angesehen wurde. Das ging soweit, dass die Rechner, die in Folge der „von Neumann-Veröffentlichung“ gebaut wurden und in groben Zügen immer noch der Architektur unserer heutigen Rechner entsprechen, von Neumann-Architektur genannt werden.

1-60

Der in der von Neumann-Veröffentlichung beschriebene Rechner hatte vier Funktionseinheiten, die bis in unsere heutige Zeit als Rechnerkomponenten erhalten geblieben sind.

Speicher für Daten und Befehle

Ein- undAusgabe

Steuerwerk/Leitwerk

Rechenwerk/ALU

Registerblockmit Registern

c:\>

Prozessor

Abb. 77: von Neumann-Architektur

− Das Rechenwerk verknüpft die Operanden, indem es Operationen auf sie anwendet. Beispiele

hierfür sind die vier Grundrechenarten (Addition, Subtraktion, Multiplikation und Division) und Schiebeoperationen (links schieben/rechts schieben). Allein mit den vier Grundrechenarten las-sen sich auch die kompliziertesten Formeln und Funktionen berechnen. Beispiele hierfür sind die Verwendung von Potenzreihen zur Berechnung von Sinus und Cosinus:

3 5 7 2n 1

nx x x xsinx x ... ( 1) ...

3! 5! 7! (2n 1)!

+

= − + − + + − ⋅ ++

− Im Speicher stehen sowohl die Befehle, als auch die Operanden/Daten. Beide sind als Zahlen

codiert. Bei einem Blick in den Speicher kann man somit keinen Unterschied zwischen Befehlen und Operanden/Daten erkennen. Dass eine Bitfolge ein Befehl ist, erkennt man erst dann, wenn sie vom Steuerwerk in das Befehlsregister geladen und dann ausgeführt worden ist.

− Das Steuerwerk steuert den Ablauf im Prozessor/Rechner. Es lädt die Befehle aus dem Spei-cher, analysiert sie, lädt die entsprechenden Operanden aus oder in den Speicher, teilt dem Rechenwerk mit, welche Operation es ausführen soll und leitet das Ergebnis wieder an die ge-wünschte Stelle.

− Das Ein- und Ausgabewerk (E/A-Werk) ist die Schnittstelle zwischen Rechner und Peripherie-Gerät, zu von Neumanns Zeit also die Anbindung des Rechners an den Lochkartenleser. Im letzten Abschnitt haben wir gesehen, dass bei unseren weiterentwickelten von Neumann-Architekturen das Ein- Ausgabewerk über verschiedene Bussysteme auf mehrere Chips (GMCH, ICH, SIO) verteilt ist. Die Funktion ist prinzipiell aber noch genau die gleiche.

Zu vier genannten klassischen Funktionseinheiten ist später noch der Bus dazugekommen, der somit nicht zu den original von Neumannschen Funktionseinheiten gehört.

1-61

Im Folgenden sind einige für von Neumann-Maschinen typische Merkmale aufgeführt:

− Der Aufbau des Rechners ist unabhängig vom Problem. Durch Laden eines bestimmten Pro-gramms in den Speicher kann der Rechner zu Lösung jedes beliebigen Problems verwendet werden. Die Hardware (z.B. Verbindungsleitungen) muss also nicht mehr auf die jeweilige Prob-lemstellung angepasst werden.

− Alle Daten (nicht nur die Operanden, sondern auch die Adressen und insbesondere auch die

Befehle) werden als Zahlen binär kodiert und im Speicher abgelegt. Der Speicher besteht dabei aus gleich grossen, durchnumerierten Zellen.

− Die zu einem Programm gehörigen Befehle stehen sequentiell (einer nach dem anderen) im

Speicher und werden der Reihe nach ausgeführt. Lediglich bei Sprüngen findet eine Verzwei-gung statt.

Da von Neumann auf eine Patentierung seiner Erweiterungen verzichtete14, konnte jede Forschungs-anstalt/Firma ohne Lizenzgebühren auf diesen Erweiterungen aufbauen und sie weiter vorantreiben. Es war genau dieser Sachverhalt, der sich als sehr fruchtbarer Boden für Weiterentwicklungen erwies und damit zum Siegeszug der von Neumann-Architektur führte.

14 Eckert und Mauchly hatten hingegen vor, ihren Rechner als Patent anzumelden, was spätestens dann zum Scheitern verur-teilt war, nachdem die von Neumann-Erweiterungen (unauthorisiert) publiziert wurden.

1-62

1.3 Harvard-Architektur

Der gemeinsame Speicher für Programme und Daten macht die Entwicklung und den Test von Pro-grammen auf einer von Neumann-Architektur sehr einfach: Man schreibt in einem Texteditor ein Pro-gramm, übersetzt es in Maschinencode und kann es dann sofort ausführen. Während des Vorgangs des Übersetzens sind die Befehle des generierten Maschinencodes die Daten, die das Übersetzungs-programm erzeugt. Diese Daten werden erst zu einem Programm, wenn sie vom Prozessor in das Befehlsregister geladen werden und dann ausgeführt werden. Da Daten und Programme nicht unter-scheidbar im selben Speicher liegen, bedeutet es keinen zusätzlichen Aufwand, Daten als Programm auszuführen. Es ergibt sich jedoch auch ein Nachteil: Da Programme und Daten im selben Speicher liegen, müssen beide über den gleichen Bus zum Prozessor transportiert werden. Während ein Befehl vom Speicher in den Prozessor geladen wird, kann nicht gleichzeitig ein Datum aus dem Speicher gelesen oder in den Speicher geschrieben werden. Befehle und Daten behindern sich somit gegenseitig, was insbe-sondere Programme mit hohem Datenvolumen (z.B. Videodecoder) ausbremst. Abhilfe kann hier eine Architektur schaffen, bei der Daten und Befehle in separaten Speichern stehen: Die sog. Harvard-Architektur.

Speicher für Daten

Ein- undAusgabe

Steuerwerk/Leitwerk

Rechenwerk/ALU

Registerblockmit Registern

c:\>

Prozessor

Speicher für Befehle

Abb. 78: Harvard-Architektur

Da Daten- und Befehlsspeicher bei dieser Architektur getrennt sind, können sie über separate Busse an den Prozessor angebunden werden. Somit kann gleichzeitig auf Befehle und Daten zugegriffen werden, was insbesondere die Ausführung von Programmen mit hohem Datenverkehr beschleunigt. Da solche Programme (z.B. ein Videodecoder in einer Set-Top-Box) besonders oft auf spezialisierten Signalprozessoren ablaufen, verfügen Digitale Signalprozessoren (DSPs) ebenso wie Mikrocontrol-ler15 häufig über eine Harvard-Architektur. Programme für DSPs und Mikrocontroller werden in der Regel auf einem gewöhnlichen PC entwickelt (Cross-Plattform) und dann in den Befehls-Speicher des Prozessors geladen. Da es zeitlich keinen Unterschied macht, ob die Befehle vom PC aus in den Da-ten- oder den Befehls-Speicher eines Signalprozessors geladen werden, hat die Verwendung einer Harvard-Architektur für Embedded-Prozessoren16 keine Nachteile. Bei der Verwendung einer Harvard-Architektur als PC-Prozessor hingegen müsste nach der Übersetzung eines Programms der Pro-grammcode erst vom Daten- in den Befehlsspeicher kopiert werden, was die Programmentwicklung verlangsamen und umständlich machen würde.

15 Mikrocontroller sind Mikroprozessoren, die über zusätzliche Peripherie auf dem Chip (z.B. Ein- und Ausgabe-Ports, A/D-Wandler, Timer, Befehls- und Datenspeicher) verfügen. Mikrocontroller werden im Embedded-Bereich beispielsweise zur Steue-rung von Waschmaschinen, Kochfeldern etc. verwendet. 16 Unter Embedded-Prozessoren bzw. Prozessoren für den Embedded-Bereich versteht man Prozessoren, die nicht in PCs, sondern in anderen eigenständigen Geräten wie beispielsweise einer Mikrowelle, einer Waschmaschine oder einem DVD-Player integriert (eingebettet) sind.

1-63

1.4 Vom Algorithmus zum Prozessor – Abstraktionsebenen

Nachdem wir bisher nur den Aufbau und die Architektur von Rechnern untersucht haben, betrachten wir ab diesem Abschnitt, wie dieser Rechner zur Lösung von Problemen eingesetzt werden kann. Nachfolgende Abbildung dient uns dabei als Wegweiser durch die nächsten Kapitel.

Übersetzung durchden Menschen

Algorithmus-Ebene

Hochsprachen-Ebene

Assembler-Ebene

Übersetzungdurch Compiler

Befehlssatz-Ebene

Übersetzungdurch Assembler

Ebene der digitalen Logik

Interpretation oderdirekte Ausführungdurch die Hardware

Steuerung

Mikroarchitektur-Ebene

*.asm

*.obj

*.exe

*.asm

*.obj

LinkerLinker

Mikro-programm

Gatter/Hardware

*.c *.c

Assem-bler

Com-piler

Hardware-Steuerung

Elektr.Signale

Inter-pretation

Bei

m E

ntw

urf

Zur

Lauf

zeit

i = n, x = 0

i > 0

x = x + aibii = i – 1

Biblio-thek*.obj

Problemlösungin Algorithmus-Form

Problemlösungin Hochsprache(z.B. C)

Maschinen-nahe Form derProblemlösung

Maschinencodeder Problem-lösung

Aufbau desProblemlösers(Rechner/Pro-zessor) ausSpeicher, ALU …

Aufbau vonSpeicher, ALU..aus Logik-Gattern

Gru

ndl.

d. In

form

atik

Com

pute

rtec

hnik

/Com

pute

rsys

tem

e

Transistor-Ebene

Layout-Ebene

Transistoren

Halbleiter-Strukturen

Aufbau vonLogik-Gatternaus Tran-sistoren

Aufbau vonTransistorenaus n- und p-Schichten

Inte

gr. S

chal

tung

en

Abb. 79: Abstraktionsebenen

1-64

Die Abbildung zeigt im oberen Teil, wie ein Problem abstrakt dargestellt (Algorithmus-Ebene) und dann von einem Programmierer in einer Hochsprache wie z.B. der Programmiersprache C (Hochspra-chen-Ebene) formuliert werden kann. Aufgabe der Algorithmus-Ebene ist es, Informationen und Anweisungen, die zur Lösung des betrach-teten Problems notwendig sind, in einer einheitlichen Darstellung festzuhalten. Beispiele für solche Darstellungen sind z.B. Lösungsformeln

1

21 2 n 1 1 2 2 n n

n

bb

x [a a a ] a b a b a b

b

È ˘Í ˙Í ˙Í ˙= ◊ = + + +Í ˙Í ˙Í ˙Í ˙Í ˙Î ˚

L LM

Abb. 80: Formel zur Berechnung eines Skalarprodukts

oder Diagramme.

i = n, x = 0i > 0

x = x + aibii = i – 1

Abb. 81: Nassi-Shneiderman-Diagramm/Struktogramm

Ist die gewählte Darstellungsart hinreichend bekannt, kann sie zur Weitergabe von Informationen oder Lösungsverfahren genutzt werden. Wenn Sie beispielsweise wissen, wie man die in Abb. 80 darge-stellten Buchstaben, Zahlen (Indices) und Symbole interpretieren muss und zusätzlich über die Infor-mation verfügen, dass die in Abb. 80 dargestellte Formel zur Berechnung von Skalarprodukten dient, können sie automatisch auch Skalarprodukte berechnen. Die Darstellungen auf der Algorithmus-Ebene dienen also zum Informationsaustausch zwischen Men-schen. Für Maschinen (Computer) sind diese Darstellungsarten zu abstrakt. Ein Computer kommt mit einer Problem-Beschreibung auf Hochsprachen-Ebene wesentlich besser zurecht. Das liegt insbesondere daran, dass bei der Entwicklung von Hochsprachen darauf geachtet wurde, dass sie nicht nur vom Menschen (Programmierer), sondern auch vom Computer (Compiler) gut verstanden werden kann. Eine Hochsprache ist also eine definierte Schnittstelle zwischen Mensch und Maschine. Nachfolgende Abbildung zeigt, wie ein Programmierer einen ihm als Nassi-Shneiderman-Diagramm übermittelten Algorithmus in die Hochsprache C übersetzt.

*.c *.c

i = n, x = 0i > 0

x = x + aibii = i – 1

Abb. 82: Übersetzen eines Algorithmus’ auf Hochsprachen-Ebene

1-65

Der vom Programmierer erzeugte Hochsprachen-Code kann beispielsweise wie folgt aussehen:

void main() { int w, x; const int n = 4; // Vektordimension int a[n]={1,2,3,4}, b[n]={10,20,30,40}; w = n; x = 0; while(w) { w = w - 1; x = x + a[w] * b[w]; } // in x steht jetzt der Wert des Skalarprodukts }

Diese Darstellung ist für einen Menschen etwas schwieriger zu lesen als die Darstellung als Formel oder Nassi-Shneiderman-Diagramm. Für eine Maschine ist diese Darstellung jedoch wesentlich ange-nehmer, da sie beispielsweise nur aus ASCII-Zeichen besteht. Hochsprachen sind aber keineswegs die „Muttersprache“ eines Computer, also keine Sprache, die Computer direkt verstehen können. Hochsprachen sind ein Kompromiss zwischen „für den Menschen verständlich“ und „für den Computer verständlich“. Damit ein Computer den Sinn von Hochsprachen-Anweisungen verstehen kann, müssen diese in Maschinen-Code, die „Muttersprache der Computer“ übersetzt werden. Dazu wird zunächst die Hochsprache mit Hilfe eines Compilers in Assembler-Befehle übersetzt. Nachfolgende Abbildung zeigt den Ausschnitt aus Abb. 79, der in *.c-Dateien abgespeicherten C-Quellcode in Assembler-Code übersetzt.

*.asm *.asm

*.c *.c

Compiler

Abb. 83: Compilation

Das entspricht einer Wandlung von Anweisungen der Hochsprachen-Ebene auf die Assembler-Ebene. Die Darstellung auf der Assembler-Ebene hat dieselbe Struktur wie der zuvor als „Muttersprache der Computer“ bezeichnete Maschinen-Code. Zusätzlich zu den vom Prozessor unterstützten Befehlen findet man auf der Assembler-Ebene jedoch noch Anweisungen für den Assembler, also Anweisungen für das Programm, das den Assembler-Code in Maschinen-Code übersetzt. Diese Anweisungen die-nen zum Einen dazu, den Code lesbarer zu machen, zum Anderen, um festzulegen, wo im Speicher das übersetzte Programm zur Ausführung abgelegt werden soll.

1-66

Im Folgenden ist der Assembler-Code des oben angegebenen C-Programms abgebildet.

LOC Data_Segment GREG @ N OCTA 4 Vektordimension ADR_A1 OCTA 1 a1 OCTA 2 a2 OCTA 3 a3 OCTA 4 a4 ADR_B1 OCTA 10 b1 OCTA 20 b2 OCTA 30 b3 OCTA 40 b4 u IS $1 Für Parameter 1 v IS $2 Für Parameter 2 w IS $3 Für Parameter 3 x IS $4 Für das Ergebnis y IS $5 Für Zwischenberechnungen z IS $6 Für Zwischenberechnungen LOC #100 Main SETL x,0 Initialisierung LDA u,ADR_A1 Referenz auf a1 in u speichern LDA v,ADR_B1 Referenz auf b1 in v speichern LDO w,N Vektordimension laden MUL w,w,8 verwendete Worte haben 8 Byte Start BZ w,Ende wenn fertig -> Ende SUB w,w,8 w = w - 8 LDO y,u,w y = <u + w> LDO z,v,w z = <v + w> MUL y,y,z y = <u + w> * <v + w> ADD x,x,y x = x + <u + w> * <v + w> JMP Start Ende TRAP 0,Halt,0 Ergebnis steht in x

Das Assembler-Programm ist wesentlich länger als das C-Programm. Das liegt daran, dass Hoch-sprachen-Anweisungen wesentlich mächtiger sind (mehr „können“) als Assembler-Anweisungen. Aus diesem Grund wird eine C-Anweisungen in mindestens eine, meist jedoch mehrere Assembler-Anweisungen übersetzt. Damit ein Prozessor Assembler-Anweisungen verstehen kann, müssen diese erst in Maschinen-Code übersetzt werden, der dann in einer Programm-Datei abgelegt wird. Diese Aufgabe wird vom Assemb-ler übernommen. Besteht ein Programm aus mehreren Programm-Dateien, müssen diese zusätzlich von einem Linker zu einer einzigen Programm-Datei (unter Windows die *.exe-Datei) zusammenge-fügt werden. Nachfolgende, der Abb. 79 entnommene Darstellung verdeutlicht diesen Vorgang.

1-67

*.asm

*.obj

*.exe

*.asm

*.obj

LinkerLinker

Assem-bler

Biblio-thek*.obj

Abb. 84: Übergang von der Assembler- zur Befehlssatz-Ebene

In der ausführbaren Programmdatei stehen neben den Maschinen-Befehlen unter anderem auch An-weisungen für das Betriebssystem (den Loader), der das Programm in den (Befehls-) Speicher lädt und dann an einer bestimmten Stelle mit der Ausführung beginnt. Nachfolgende Abbildung zeigt den Inhalt der zum oben angegebenen Assembler-Code gehörigen Programmdatei.

98 09 01 01 3E B7 E8 DB 98 01 20 01 00 00 00 0000 00 00 00 00 00 00 04 00 00 00 00 00 00 00 0100 00 00 00 00 00 00 02 00 00 00 00 00 00 00 0300 00 00 00 00 00 00 04 00 00 00 00 00 00 00 0A00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 1E00 00 00 00 00 00 00 28 98 01 00 01 00 00 01 0098 06 00 03 73 6B 61 6C 70 72 6F 64 2E 6D 6D 7398 07 00 18 E3 04 00 00 23 01 FE 08 23 02 FE 288D 03 FE 00 19 03 03 08 42 03 00 00 25 03 03 088C 05 01 03 8C 06 02 03 18 05 05 06 20 04 04 05F1 FF FF FA 98 04 00 07 98 07 00 25 00 00 00 0098 0A 00 FE 20 00 00 00 00 00 00 00 00 00 00 0000 00 01 00 98 0B 00 00 20 3A 50 50 50 50 40 2041 20 44 20 52 20 5F 30 41 09 31 08 83 20 42 0931 28 84 40 40 20 45 20 6E 20 64 02 65 01 30 8B40 40 30 4D 20 61 20 69 02 6E 01 00 81 09 4E 0082 20 53 20 74 20 61 10 20 72 02 74 01 14 8C 101F 75 01 85 1F 76 02 86 1F 77 03 87 1F 78 04 881F 79 05 89 0F 7A 06 8A 98 0C 00 18

Die Programmdatei ist für einen Menschen kaum noch lesbar. Ein Computer hingegen interpretiert die angegebenen Zahlen als Befehle, Operanden und Daten und führt entsprechende Aktionen aus. Abb. 79 können Sie entnehmen, dass wir nun den kompletten oberen Bereich „Beim Entwurf“ durch-laufen haben. Von der Algorithmus-Ebene bis zur Befehlssatz-Ebene haben wir uns dabei stets mit der Darstellung von Information beschäftigt. Wir haben die Informationsdarstellung schrittweise von „für den Menschen gut lesbar, aber für den Computer schlecht lesbar“ bis „für den Menschen schlecht lesbar, aber für den Computer gut lesbar“ verändert. Die gezeigten Umwandlungen von einer Darstellung in eine andere finden immer beim Entwurf statt, also während der Entwicklung des Programms.

1-68

Im Gegensatz dazu beschäftigt sich der in Abb. 79 unter der horizontalen Trennlinie befindliche Teil mit Aktionen, die zur Laufzeit des Programms (oder bei der Entwicklung des Prozessors), jedoch nicht bei der Entwicklung des Programms stattfinden. Der angesprochene Bereich, der sich von der Mikroarchitektur- bis hin zur Layout-Ebene erstreckt, beschreibt den Aufbau von Prozessoren. Die Mikroarchitektur-Ebene abstrahiert dabei die darunter liegenden Schichten durch logische Bau-einheiten, welche die als Nullen und Einsen codierten Programme interpretieren und ausführen. Nachfolgende Darstellung zeigt die Mikroarchitektur des MMIX-Prozessors, mit dem wir uns im Laufe der Vorlesung beschäftigen werden.

1-69

Lesen $Y

Schreiben/Lesen $X

Schreib-Daten $X

Lese-Daten $Z

Lese-Daten $Y

Registerblock

0..7

8..15

DatenALU

64

BZ64

Adresse

Add64

4

64

64

640

1

64

64

64

64

Daten-Speicher

Adr.

Schreib-Daten

Lese-Daten

32

16..23 Lese-Daten $X

64

ALU-Funktion

Ergebnisauswahl

Steuerung

8

BZ übernehmen

Lesen $Z

Befehls-Speicher

24..31

Abb. 85: Einfacher MMIX-Datenpfad

Die einzelnen Elemente dieses sog. Datenpfads sowie deren Zusammenwirken werden im Laufe der nächsten Kapitel erklärt werden. Nachdem wir verstanden haben, wie ein Prozessor (ein Datenpfad) auf Mikroarchitektur-Ebene funk-tioniert, werden wir die Elemente des Datenpfads genauer untersuchen. Ausgehend von der Funktion der Elemente werden wir deren Realisierung als Logikschaltung kennenlernen, die sog. Ebene der digitalen Logik. Ein Beispiel für die Realisierung eines dieser Elemente als Logikschaltung ist der in nachstehender Abbildung angegebene Aufbau des Befehlszählers.

Q0

Q1

Q2

Q63

D0

D1

D2

D63

BZ

Abb. 86: Aufbau des Befehlszählers aus Logik-Gattern

1-70

Da Logikgatter immer als Transistorschaltung aufgebaut werden, werden wir im Anschluss auf der Transistor-Ebene noch die Implementierung einiger Logikgatter mit Transistoren kennenlernen. Um einen ersten Eindruck davon zu bekommen, ist in der nachfolgenden Abbildung bereits der Aufbau eines NOR-Gatters in CMOS-Technik gezeigt.

Abb. 87: NOR-Gatter in CMOS-Technik

Nachdem wir den MMIX-Prozessor von der Mikroarchitektur-Ebene bis hin zur Transistor-Ebene ken-nengelernt haben und uns einen Eindruck davon verschafft haben, wie sich das Funktionsvermögen eines Prozessors aus Transistoren entwickeln lässt, zeigen wir kurz anhand der sog. Layout-Ebene, wie Transistoren auf einem Chip integriert werden können. Eine kleine Vorschau gibt das nachstehende Layout der bereits kennengelernten Implementierung eines NOR-Gatters:

Ausgang

VDD

Eingang 1

Eingang 2

GND

Abb. 88: Layout eines NOR-Gatters

Wir haben jetzt die Meilensteine der Vorlesung „Computertechnik“ kennengelernt, anhand derer wir den Aufbau und die Funktionsweise von Prozessoren verstehen werden. Damit ist es in „Computertechnik“ aber noch nicht getan. Im Kapitel „Performance“ werden wir erfah-ren, wie man die Leistungsfähigkeit von Prozessoren messen und bewerten kann. Im Anschluss wer-den wir dieses Wissen anwenden, um in den Kapiteln „Cache“ und „Pipeline“ gängige Verfahren zur Leistungssteigerung von Prozessoren zu erarbeiten. Zunächst schließen wir jedoch an die im Fach „Grundlagen der Informatik“ kennengelernte Algorith-mus- und Hochsprachen-Ebene an, indem wir die darunter liegende Assembler- und Befehlssatz-Ebene zunächst allgemein untersuchen.