40 Nach dieser Skalierung wären die Schreib
Transcrição
40 Nach dieser Skalierung wären die Schreib
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 auslesen 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 Entfernung, 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 SchreibLeseköpfe über die Platten. PermanentMagnet zum Halten des Arms in der Parkposition PermanentMagnete Spule (am Arm montiert) Drehlager zur Rotation des Arms drehbar gelagerter Arm Abb. 48: Mechanik zur Armpositionierung 40 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 positionieren? Die Antwort ist: Auf den Platten sind sog. Servo-Informationen gespeichert, in denen auch die Nummer des jeweiligen Zylinders gespeichert ist. Diese Servo-Informationen werden in der Regel zwischen den einzelnen Sektoren gespeichert. 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) ermittelt 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 Festplattencontroller 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 durchgeführt wird. Im Festplatten-Controller ist also unter anderem ein Regler implementiert, der aus den Laufwerkspa5 ramtern, der Ist- und der Soll-Position den nötigen Spulenstrom bestimmt. Soll-Position + aktueller Fehler Ist-Position Regler • Spulenstrom Laufwerk Abb. 49: Regelkreis Um gute Zugriffszeiten der Festplatte zu erreichen, muss der Arm möglichst schnell von seiner IstPosition 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 Servoinformationen 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. 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. 41 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. DR NT DB DL GK FP FW Abb. 50: Geräte in einem PC Wir haben dabei gemerkt: Die betrachteten Geräte sind ziemlich intelligent. Sie können selber schwierige 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. 42 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 folgendes Bild: ÷ Prozessor D5 D6 C1 D1 D3 A RAM B4 KEITH D D4 B4 "¥#,μ D2 B4 B4 FS ünäe B1 C5 B C6 LA B2 C3 HI C7 B3 C7 C3 C C2 C7 C4 C8 C9 C7 C7 C7 Abb. 51: 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 untergebracht, die nicht so wie die Festplatte oder das DVD-Laufwerk als Peripherie-Geräte angesehen werden. Auf ihr befindet sich der Prozessor (A) der Hauptspeicher (B4), der Chipsatz (B, C), viele Anschlussmöglichkeiten für Steckkarten (B2, C7), für interne Geräte (C3, D4) wie beispielsweise DVDROM 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ächsten Seite eine Schema-Darstellung angefertigt, aus der hervorgeht, wie die einzelnen Bausteine auf der Hauptplatine heißen und wie sie miteinander verschaltet sind. 43 ftp. Silizium wislall Block - Die ÷ A Prozessor Intel P4 RechenWerk NT 230 V ~ Netzteil SteuerWerk Adress-Umsetzer BefehlsCache DatenCache FSB Logik/Treiber FS B TFTBildschirm B1 DVI Analoger VGAAnschluss GrafikController AGP- AGP-Port DDR-RAM DDR-RAM 2,1 GByte/s Controller Controller GK Gigabit-EthernetCSAController Controller 266 MByte/s B3 1 GBit/s LANAnschluss C 100 MBit/s C1 FP C2 Festplatte DVDROM DVDBrenner DR DB C3 C4 480 MBit/s Anschlüsse für USB 2.0 2 Anschlüsse 150 MByte/s für Serial-ATA 100 MByte/s 2 Anschlüsse für ATA 100 Audio-Codec AC `97 3 Intel 82801EB ICH5 Southbridge c- C6 Takt-Generator CPU, PCI, … Ethernet- SystemController Managmnt. PCIUSB2.0Controller Controller 2 SATAController CMOSRAM B4 DDR-RAM B4 Kanal B 3,2 GByte/s HI = Hub Interface 266 MByte/s HI B4 DDR-RAM B4 Kanal A 3,2 GyteB/s DDR-RAM HI Controller LA Northbridge Intel 82865G GMCH B2 Grafikkarte Prozessor-Bus, 4⋅200 MHz (FSB = Front Side Bus) C7 6 PCI-Slots PCI-Bus 133 MByte/s FW Batterie C8 ATA 100 Bios-interf. Controller Controller Flash-Bios C9 AC `97 SMBus Controller Controller SMBus 2.0/ I2C-Bus FireWireAdapter LPC-interface Controller LPC-Interface (Low Pin Count) D Super Input/Output Controller D4 D1 Anschluss für seriellen Port RS 232 Floppy Controller Controller Anschluss Disketten-Laufwerk D2 Anschluss für parallelen Port LPT Tastatur Controller Controller PS/2 Anschluss D5 Tastatur Anschluss für Ventilator DrehzahlMaus regelung Controller PS/2 Anschluss Maus D3 Abb. 52: Schematischer Aufbau eines Computers 44 DL DiskettenLaufwerk Tastatur Maus D6 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. 53: 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 ProzessorBefehlen bestehen. Die Prozessor-Befehle sind außerhalb des Prozessors gespeichert und werden vom Prozessor über den sog. Front-Side-Bus (FSB – in Abb. 51 und Abb. 52 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 MSB Numerierung der Bits: … …2 1 0 n-1 Datenwort mit Wortbreite n Abb. 54: Datenwort 45 LSB 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 genauso wie Operanden und Adressen als Zahlen codiert. Der Befehl „Addiere zwei Zahlen“ kann beispielsweise 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 BefehlsRegister transportiert. Anschliessend werden die zugehörigen Operanden (ebenfalls über den FSB) geladen. FSB = Front Side Bus Befehls enthält 2 - - register Befehl Befehls zühbr • - BZ: 3 Steuerung Adresse 1 • Registerblock mit Registern • - ALU Flags: enthält Befehls BR: • Steuerwerk - Abb. 55: Laden von Befehlen in den Prozessor 6 Dazu wird vom sog. Steuerwerk zuerst der im Befehlszähler BZ (ein Register im Steuerwerk) stehende 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 entspricht. 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 Befehlsregister 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 Operanden 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 entlangleiten, hinführen). 46 Nach dieser Analyse sorgt das Steuerwerk dafür, dass die benötigten Operanden der sog. ALU (Arithmetic 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). FSB = Front Side Bus BR: 4 BZ: Steuerung • • 5 5 Registerblock mit Registern 6 4 ALU Flags: • Steuerwerk Abb. 56: 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). FSB = Front Side Bus Adn Operand ↳ 7 9 BR: BZ: Steuerung • 7 • [ Operand Registerblock mit Registern 8 10 ALU Flags: • Steuerwerk Abb. 57: Bereitstellen von Operanden über den FSB 47 aus RAM Nachdem die Steuerung alle Operanden an die ALU angelegt hat, teilt sie der ALU den auszuführenden Befehl (z.B. Addieren, Multiplizieren etc.) mit (11) und startet dann die Befehlsausführung (12). FSB = Front Side Bus BR: BZ: μ • Steuerung 13 11 12 welche ALU - Operation Registerblock mit Registern • ALU Flags: 14 Steuerwerk • Abb. 58: 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 Eigenschaften des Ergebnisses (z.B. Ergebnis ist Null, Ergebnis ist negativ), indem Sie das im Steuerwerk untergebrachte Flag-Register aktualisiert (14). Nachfolgende Abbildung zeigt ein Beispiel für ein Flag-Register. Overflow: Überlauf bei vorzeichenbehafteten Zahlen Carry (Übertrag): Überlauf bei vorzeichenlosen Zahlen Zero: Ergebnis ist Null Sign (Vorzeichbit): Ergebnis ist negativ OC Z SW I X E Gleitkomma-Zahl ungenau (z.B. 1.0/3.0) Gleitkomma-Division durch Null Ungültige Gleitkomma-Operation (z.B. −1 ) Überlauf bei Gleitkomma-Festkomma-Wandlung Abb. 59: Flag-Register 48 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 Anlegen der Registeradresse an den Registerblock diesem mitteilen, in welches Register das Ergebnis abgelegt werden soll (18). FSB = Front Side Bus 20 BR: BZ: Steuerung Registerblock mit Registern • 18 16 21 • Flags: 19 15 Steuerwerk ALU • 17 Abb. 60: 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 Adresse auf den nächsten Befehl) angepasst werden. Dazu wird zu dem aktuellen Wert des Befehlszählers die Wortbreite eines Befehls (in Byte) addiert und der Wert des neuen Befehlszählers dann wieder auf den FSB gelegt [(1) aus Abb. 55 (Seite 46)]. drvse des nächsten Befehls f- Addierer Wortbreite des aktuellen Befehls Befehl 1 Bekhl 2 Befehl3 + BZ ° • zum FSB Abb. 61: Anpassen des Befehlszählers Ab diesem Zeitpunkt wiederholen sich die in den Abb. 55 bis Abb. 60 dargestellten Schritte. Die im Speicher stehenden Befehle werden der Reihen nach ausgeführt. 49 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. 51 und Abb. 52 mit B4 gekennzeichneten Komponenten sind die DDR-RAM-Module, die zusammen den Arbeitsspeicher des Computers bilden. Alignment ¥ .ph#*.!iE.:Fi::ff:::: IÄÄISCP Abb. 62: DDR-RAM (Arbeitsspeicher) Die Aufgabe des Arbeitsspeichers ist die temporäre Speicherung von Daten und Befehlen. Mit temporär ist gemeint, dass − zum Einen die im Arbeitsspeicher abgelegten Daten mit dem Ausschalten des PCs verloren gehen. 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 Arbeitsspeicher 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). 50 36 2 4 5 7 8 1 Abb. 63: Datenfluß im PC Nachfolgende Abbildung zeigt, dass der Arbeitsspeicher wie eine Tabelle funktioniert. SpeicherAdressen Adresse 1 z.B. 0x00..02 Steuerleitungen Lesen Schreiben 0x00..00 0x00..01 0x00..02 0x00..03 5 0x00..04 10 0x00..05 2 3 8 Daten 0x10 0x2F 0x4B 11 0xC3 0x96 0x83 4 • 0x4B 6 7 0x4B Speicher-Inhalt (Daten) 9 0xFF..FF 0x5D Datum (1 Byte) Abb. 64: 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 Speicher durch ein Signal auf der Steuerleitung Lesen mitteilen (3). Der Speicher reagiert darauf, indem er zwischen der adressierten Speicherstelle und der mit Daten gekennzeichneten Spei- 51 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 Datum zunächst an die Daten-Schnittstelle angelegt werden (7). Durch ein Signal auf der Steuerleitung 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 welcher Speicherstelle man gerade gelesen hat, dauert der Zugriff auf eine beliebige andere Speicherstelle 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 weniger 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 unterschiedli7 cher Winkel-Geschwindigkeit 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. ÷ t.io UB Spaltenleitung P1 N1 , N3 Bit :* P2 N2 N4 Spaltenleitung invertiert Zeilenleitung (Auswahl) Bit Abb. 65: 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. 52 Nachfolgende Abbildung zeigt, wie man in dieser rückgekoppelten Transistor-Schaltung ein Bit abspeichern kann. Spannungspegel auf der Höhe der Versorgungsspannung sind dabei mit „+“, Masse durch „–“ gekennzeichnet. Spaltenleitung UB 12 + - 11 P1 5 + 13 + + N1 X 7 N3 10 16 + 15 + P2 Y + 6 N2 9 18 8 + N4 14 - 17 - 2 Bit = 1 (+) Spaltenleitung invertiert Zeilenleitung (Auswahl) 1 4 + 19 - 3 Bit = 0 (-) Abb. 66: Abspeichern eines Bits im SRAM Im Grundzustand liegt die Zeilenleitung auf Masse (1). Da an den Gates der beiden N-KanalTransistoren 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 SRAMZelle 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), weswegen 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 angelegt 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 Masse und Punkt Y auf +UB, entspräche das dem abgespeicherten Wert „0“. 53 Wie der im SRAM gespeicherte Wert wieder ausgelesen werden kann, zeigt die nachfolgende Abbildung. UB/2 5 UB/2 5 4 + N5 2 3 + 7 - 4 + N6 Precharge 6 UB/2 6 UB/2 UB P2 Y Spaltenleitung P1 N1 N2 X N3 N4 Spaltenleitung invertiert Zeilenleitung (Auswahl) 1 8 + 16 - Bit Bit 10 - 9 + + +UB ⇒ 1 11 - UB ⇒ 0 12 Abb. 67: 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 weitergeleitet (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 gespeichert. − Im ungünstigen Fall hat diese Ladung ein zur Ladung an den Punkten X und Y genau entgegengesetztes Vorzeichen. − Diese Ladung auf den Spaltenleitungen muss beim Durchschalten der Transistoren erst überwunden werden, was einen Zeitverlust darstellt. 54 − Liegen beide Spaltenleitungen vor dem Durchschalten von N1 und N2 jedoch auf selbem Potential, 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 Steuerleitung 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) danach 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. 55 Im Gegensatz zu SRAM-Speicherzellen sind DRAM-Speicherzellen wesentlich einfacher aufgebaut: Sie bestehen lediglich aus einem Transistor und einem Kondensator. Zeilenleitung Spaltenleitung C Abb. 68: DRAM-Speicher Der Transistor dient – wie die beiden Transistoren N1 und N2 beim SRAM – zur Isolierung des Speicherelements 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 fe auf DRAMs im Vergleich zu Zugriffen auf SRAMs wesentlich langsamer. -RC/t ), sind Speicherzugrif- 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 SiliziumFläche als eine SRAM-Speicherzelle, weshalb deutlich mehr DRAM-Speicherzellen als SRAMSpeicherzellen auf einen Chip passen. Aus diesem Grund erreicht man bei einer bestimmten Speichergrösse mit DRAM auch eine höhere Ausbeute als mit SRAM, was den Preis von DRAM im Vergleich 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 Speicherchips abgelegt. Auf diese Weise kann bei den häufig auftretenden konsekutiven Speicherzugriffen (Zugriffe auf aufeinanderfolgende Adressen) die eine Speicherzelle bereits ausgelesen werden, während 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 Weiterentwicklung des SD-RAMs (Synchronous DRAM) ist. 56