[Technische Informatik Eine Einführung] Univ.-Prof. Dr. Paul Molitor Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg Januar 2006 1 / 100
Inhalt dieser Einheit In jedem Rechner kommen unterschiedliche Typen von Speicher zum Einsatz Register -Speicher Hauptspeicher Festplattenspeicher CD und DVD Magnetbandspeicher 2 / 100
Inhalt dieser Einheit In jedem Rechner kommen unterschiedliche Typen von Speicher zum Einsatz Register -Speicher Hauptspeicher Festplattenspeicher CD und DVD Magnetbandspeicher Fragen Warum mehrere Speicherarten in einem und demselben Rechner? Welche Aufgaben haben die einzelnen Speicher? Wie greifen die verschiedenen Speicher ineinander, damit es zu einer sinnvollen Zusammenarbeit der Speicher kommt? 3 / 100
Inhalt dieser Einheit In jedem Rechner kommen unterschiedliche Typen von Speicher zum Einsatz Register = -Speicher Hauptspeicher = Festplattenspeicher = CD und DVD Magnetbandspeicher Fragen Warum mehrere Speicherarten in einem und demselben Rechner? Welche Aufgaben haben die einzelnen Speicher? Wie greifen die verschiedenen Speicher ineinander, damit es zu einer sinnvollen Zusammenarbeit der Speicher kommt? 4 / 100
Inhalt dieser Einheit In jedem Rechner kommen unterschiedliche Typen von Speicher zum Einsatz Register = -Speicher = Hauptspeicher = Festplattenspeicher = CD und DVD Magnetbandspeicher Fragen Warum mehrere Speicherarten in einem und demselben Rechner? Welche Aufgaben haben die einzelnen Speicher? Wie greifen die verschiedenen Speicher ineinander, damit es zu einer sinnvollen Zusammenarbeit der Speicher kommt? 5 / 100
SRAM DRAM Hauptspeicher SRAM- und DRAM-Speicherzellen Zum Zwischenspeichern der Daten, sei es in Registern oder im Hauptspeicher werden Speicherzellen verwendet. Man unterscheidet zwischen statischen Speicherzellen, so genannten SRAM-Speicherzellen dynamischen Speicherzellen, so genannten DRAM-Speicherzellen Register und s sind heute aus statischen Speicherzellen aufgebaut, der Hauptspeicher (noch) aus dynamischen Speicherzellen. 6 / 100
SRAM-Speicherzellen Interne Speicher SRAM DRAM Hauptspeicher 7 / 100
SRAM-Speicherzellen Interne Speicher SRAM DRAM Hauptspeicher Eine SRAM-Zelle besteht aus 4 bis 8 Transistoren hat eine Gesamtzugriffszeit von einigen wenigen Nanosekunden (z. B. 5 ns bei nmos und 10 ns bei CMOS) 8 / 100
SRAM-Speicherzellen Interne Speicher SRAM DRAM Hauptspeicher Während der positiven Phase des Signals Load bzw. Adr sind die beiden gezeigten SRAM-Zellen transparent, d. h. jede Änderung am Dateneingang wird an den Ausgang weitergeleitet. Solche phasengesteuerte SRAM-Speicherzellen werden auch Latches genannt. 9 / 100
SRAM-Speicherzellen Interne Speicher SRAM DRAM Hauptspeicher Schaltet man zwei phasengesteuerte SRAM-Speicherzellen hintereinander und steuert diese mit komplementierten Takten an, so ist die Speicherzelle nicht mehr transparent. Sie übernimmt (in unserem Fall) den Dateneingang zur fallenden Flanke des Signals Load. Solche flankengesteuerte SRAM-Speicherzellen werden auch Flipflops genannt. 10 / 100
DRAM-Speicherzellen Interne Speicher SRAM DRAM Hauptspeicher Eine DRAM-Zelle ist wesentlich einfacher aufgebaut; sie besteht aus einem Transistor und einem Kondensator. Der Speicherwert ist gegeben durch die im Kondensator gespeicherte Ladung benötigt eine recht komplexe Steuerlogik ; so muss z. B. die Ladung der Speicherzellen aufgrund der Leckströme alle paar Millisekunden aufgefrischt werden. 11 / 100
DRAM-Speicherzellen: Schreiben SRAM DRAM Hauptspeicher Schreiben in eine DRAM-Zelle 1 setze die Datenleitung Data auf das abzuspeichernde Potenzial; 2 setze die Steuerleitung RA auf 1, sodass der Schalter schließt, d.ḣ. leitet; Liegt die Datenleitung Data auf Masse, so fließen die Elektronen vom Kondensator ab; der Kondensator entlädt sich; Liegt die Datenleitung Data auf hohem Potential, so fließen Elektronen zum Kondensator; der Kondensator lädt sich auf. 12 / 100
DRAM-Speicherzellen: Schreiben SRAM DRAM Hauptspeicher Schreiben in eine DRAM-Zelle 1 setze die Datenleitung Data auf das abzuspeichernde Potenzial; 2 setze die Steuerleitung RA auf 1, sodass der Schalter schließt, d.ḣ. leitet; Es sind zwei Fälle zu unterscheiden: Liegt die Datenleitung Data auf Masse, so fließen die Elektronen vom Kondensator ab; der Kondensator entlädt sich; Liegt die Datenleitung Data auf hohem Potential, so fließen Elektronen zum Kondensator; der Kondensator lädt sich auf. 13 / 100
DRAM-Speicherzellen: Schreiben SRAM DRAM Hauptspeicher Schreiben in eine DRAM-Zelle 1 setze die Datenleitung Data auf das abzuspeichernde Potenzial; 2 setze die Steuerleitung RA auf 1, sodass der Schalter schließt, d.ḣ. leitet; Es sind zwei Fälle zu unterscheiden: Liegt die Datenleitung Data auf Masse, so fließen die Elektronen vom Kondensator ab; der Kondensator entlädt sich; Liegt die Datenleitung Data auf hohem Potential, so fließen Elektronen zum Kondensator; der Kondensator lädt sich auf. 14 / 100
DRAM-Speicherzellen: Lesen SRAM DRAM Hauptspeicher Lesen einer DRAM-Zelle 1 setze die Datenleitung Data auf 0 V; 2 setze die Steuerleitung RA auf 1, sodass der Schalter schließt, d.ḣ. leitet; 15 / 100
DRAM-Speicherzellen: Lesen SRAM DRAM Hauptspeicher Lesen einer DRAM-Zelle 1 setze die Datenleitung Data auf 0 V; 2 setze die Steuerleitung RA auf 1, sodass der Schalter schließt, d.ḣ. leitet; Falls der Kondensator geladen war, wird auf Grund des leitenden Schalters ein kurzer Impuls auf der Datenleitung erzeugt, der durch einen Leseverstärker erkannt wird, der in diesem Fall an seinem Ausgang den stabilen Wert 1 erzeugt 16 / 100
DRAM-Speicherzellen: Lesen SRAM DRAM Hauptspeicher Lesen einer DRAM-Zelle 1 setze die Datenleitung Data auf 0 V; 2 setze die Steuerleitung RA auf 1, sodass der Schalter schließt, d.ḣ. leitet; Falls der Kondensator geladen war, wird auf Grund des leitenden Schalters ein kurzer Impuls auf der Datenleitung erzeugt, der durch einen Leseverstärker erkannt wird, der in diesem Fall an seinem Ausgang den stabilen Wert 1 erzeugt Da beim Auslesen der Kondensator entladen wird, muss die DRAM-Speicherzelle nach dem Lesen wieder mit dem zuvor ausgelesenen Wert beschrieben werden. 17 / 100
SRAM DRAM Hauptspeicher Hauptspeicher (engl.: Random Access Memory (RAM)) Organisation eines (2 2k 1)-Bit DRAM-Bausteins [ RAS = Row Address Strobe, CAS = Column Address Strobe, WE = Write Enable ] 18 / 100
Hauptspeicher: Lesen Interne Speicher SRAM DRAM Hauptspeicher 1 Deaktiviere WE; 2 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 3 Anlegen der Spaltenadresse im Spaltenadress-Puffer über CAS; = das entsprechende Bit wird über den Spalten-Multiplexer ausgegeben. 4 Nach dem Lesevorgang wird der Wertevektor durch Aktivierung von WE in die Zeile des DRAM-Bausteins zurückgeschrieben. 19 / 100
Hauptspeicher: Lesen Interne Speicher SRAM DRAM Hauptspeicher 1 Deaktiviere WE; 2 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 3 Anlegen der Spaltenadresse im Spaltenadress-Puffer über CAS; = das entsprechende Bit wird über den Spalten-Multiplexer ausgegeben. 4 Nach dem Lesevorgang wird der Wertevektor durch Aktivierung von WE in die Zeile des DRAM-Bausteins zurückgeschrieben. 20 / 100
Hauptspeicher: Lesen Interne Speicher SRAM DRAM Hauptspeicher 1 Deaktiviere WE; 2 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 3 Anlegen der Spaltenadresse im Spaltenadress-Puffer über CAS; = das entsprechende Bit wird über den Spalten-Multiplexer ausgegeben. 4 Nach dem Lesevorgang wird der Wertevektor durch Aktivierung von WE in die Zeile des DRAM-Bausteins zurückgeschrieben. 21 / 100
Hauptspeicher: Lesen Interne Speicher SRAM DRAM Hauptspeicher 1 Deaktiviere WE; 2 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 3 Anlegen der Spaltenadresse im Spaltenadress-Puffer über CAS; = das entsprechende Bit wird über den Spalten-Multiplexer ausgegeben. 4 Nach dem Lesevorgang wird der Wertevektor durch Aktivierung von WE in die Zeile des DRAM-Bausteins zurückgeschrieben. 22 / 100
Hauptspeicher: Lesen Interne Speicher SRAM DRAM Hauptspeicher 1 Deaktiviere WE; 2 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 3 Anlegen der Spaltenadresse im Spaltenadress-Puffer über CAS; = das entsprechende Bit wird über den Spalten-Multiplexer ausgegeben. 4 Nach dem Lesevorgang wird der Wertevektor durch Aktivierung von WE in die Zeile des DRAM-Bausteins zurückgeschrieben. 23 / 100
Hauptspeicher: Lesen Interne Speicher SRAM DRAM Hauptspeicher 1 Deaktiviere WE; 2 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 3 Anlegen der Spaltenadresse im Spaltenadress-Puffer über CAS; = das entsprechende Bit wird über den Spalten-Multiplexer ausgegeben. 4 Nach dem Lesevorgang wird der Wertevektor durch Aktivierung von WE in die Zeile des DRAM-Bausteins zurückgeschrieben. Ein Lesevorgang kostet mit Anlegen der Zeilen- und Spaltenadresse um die 60 ns! 24 / 100
Hauptspeicher: Lesen Interne Speicher SRAM DRAM Hauptspeicher 1 Deaktiviere WE; 2 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 3 Anlegen der Spaltenadresse im Spaltenadress-Puffer über CAS; = das entsprechende Bit wird über den Spalten-Multiplexer ausgegeben. Fast Page Mode (FPM) Durch Anlegen weiterer Spaltenadressen können weitere Bits der Zeile ausgelesen werden. Jeder dieser Zugriffe kostet mit 40 ns etwa nur noch die Hälfte! 4 Nach dem Lesevorgang wird der Wertevektor durch Aktivierung von WE in die Zeile des DRAM-Bausteins zurückgeschrieben. Ein Lesevorgang kostet mit Anlegen der Zeilen- und Spaltenadresse um die 60 ns! 25 / 100
Hauptspeicher: Schreiben SRAM DRAM Hauptspeicher 1 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 2 Lege die Spaltenadresse im Spaltenadress-Puffer über CAS an; aktiviere WE; = der auf dem Signal Data liegende Wert wird über den Spalten-Demultiplexer in die Zeile eingefügt. 3 Der Wertevektor wird in die Zeile des DRAM-Bausteins zurückgeschrieben. 26 / 100
Hauptspeicher: Schreiben SRAM DRAM Hauptspeicher 1 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 2 Lege die Spaltenadresse im Spaltenadress-Puffer über CAS an; aktiviere WE; = der auf dem Signal Data liegende Wert wird über den Spalten-Demultiplexer in die Zeile eingefügt. 3 Der Wertevektor wird in die Zeile des DRAM-Bausteins zurückgeschrieben. 27 / 100
Hauptspeicher: Schreiben SRAM DRAM Hauptspeicher 1 Anlegen der Zeilenadresse im Zeilenadress-Puffer durch Aktivierung des Steuersignals RAS; = die Zeile des DRAM-Bausteins wird aktiviert und der Wertevektor am Ausgang des Leseverstärkers ausgegeben. 2 Lege die Spaltenadresse im Spaltenadress-Puffer über CAS an; aktiviere WE; = der auf dem Signal Data liegende Wert wird über den Spalten-Demultiplexer in die Zeile eingefügt. 3 Der Wertevektor wird in die Zeile des DRAM-Bausteins zurückgeschrieben. 28 / 100
SRAM DRAM Hauptspeicher Hauptspeicher: Vergrößerung der Wortbreite Jeder der (2 k m)-bit DRAM-Bausteine hat seine eigenen Datenleitungen D i m,...d (i+1) m 1 werden aber über die gleichen Adress- und Steuerleitungen zusammengeschaltet. 29 / 100
SRAM DRAM Hauptspeicher Hauptspeicher: Vergrößerung der Wortbreite Jeder der (2 k m)-bit DRAM-Bausteine hat seine eigenen Datenleitungen D i m,...d (i+1) m 1 werden aber über die gleichen Adress- und Steuerleitungen zusammengeschaltet. Bei 2 h so zusammengeschaltenen DRAM-Bausteine resultiert ein (2 k m 2 h )-Bit DRAM-Baustein. 30 / 100
SRAM DRAM Hauptspeicher Hauptspeicher: Vergrößerung des Adressraumes Die (2 k m)-bit DRAM-Bausteine sind über die Datenleitungen und die k niederwertigen Leitungen A k 1,..., A 0 des Adressbusses zugeschaltet. Die höherwertigen h Adressleitungen A k+h,..., A k dienen zur Auswahl des DRAM-Bausteines. 31 / 100
SRAM DRAM Hauptspeicher Hauptspeicher: Vergrößerung des Adressraumes Die (2 k m)-bit DRAM-Bausteine sind über die Datenleitungen und die k niederwertigen Leitungen A k 1,..., A 0 des Adressbusses zugeschaltet. Die höherwertigen h Adressleitungen A k+h,..., A k dienen zur Auswahl des DRAM-Bausteines. Bei 2 h so zusammengeschaltenen DRAM-Bausteine resultiert ein (2 k+h m)-bit DRAM-Baustein. 32 / 100
Festplatte: Aufbau Interne Speicher Festplatte [ http://www.seagate.com/ ] Eine Festplatte besteht aus einer oder mehreren (in der Regel bis zu zwölf), um eine Achse rotierenden Platten aus Metall, zumeist Aluminium oder eine Legierung davon. Über (bzw. unter) jeder Seite einer Platte schwebt ein Lese-/Schreibekopf auf einem Luftpolster. Davon ausgenommen sind die obere Seite der oberen Platte und die untere Seite der unteren Platte des Plattenstapels. Die Lese-/Schreibeköpfe der einzelnen Plattenoberflächen sind über einen einzigen gemeinsamen Arm gesteuert, sodass alle Lese-/Schreibeköpfe zu jedem Zeitpunkt die gleiche Position (Zylinder) einnehmen. 33 / 100
Festplatte: Aufbau Interne Speicher Festplatte [ http://www.seagate.com/ ] [ http://www.colchsfc.ac.uk/ ] Eine Festplatte besteht aus einer oder mehreren (in der Regel bis zu zwölf), um eine Achse rotierenden Platten aus Metall, zumeist Aluminium oder eine Legierung davon. Über (bzw. unter) jeder Seite einer Platte schwebt ein Lese-/Schreibekopf auf einem Luftpolster. Davon ausgenommen sind die obere Seite der oberen Platte und die untere Seite der unteren Platte des Plattenstapels. Die Lese-/Schreibeköpfe der einzelnen Plattenoberflächen sind über einen einzigen gemeinsamen Arm gesteuert, sodass alle Lese-/Schreibeköpfe zu jedem Zeitpunkt die gleiche Position (Zylinder) einnehmen. 34 / 100
Festplatte: Aufbau Interne Speicher Festplatte [ http://www.seagate.com/ ] [ http://www.colchsfc.ac.uk/ ] Eine Festplatte besteht aus einer oder mehreren (in der Regel bis zu zwölf), um eine Achse rotierenden Platten aus Metall, zumeist Aluminium oder eine Legierung davon. Über (bzw. unter) jeder Seite einer Platte schwebt ein Lese-/Schreibekopf auf einem Luftpolster. Davon ausgenommen sind die obere Seite der oberen Platte und die untere Seite der unteren Platte des Plattenstapels. Die Lese-/Schreibeköpfe der einzelnen Plattenoberflächen sind über einen einzigen gemeinsamen Arm gesteuert, sodass alle Lese-/Schreibeköpfe zu jedem Zeitpunkt die gleiche Position (Zylinder) einnehmen. 35 / 100
Festplatte: Aufbau Interne Speicher Festplatte [ http://www.seagate.com/ ] [ http://www.colchsfc.ac.uk/ ] Eine Festplatte besteht aus einer oder mehreren (in der Regel bis zu zwölf), um eine Achse rotierenden Platten aus Metall, zumeist Aluminium oder eine Legierung davon. Über (bzw. unter) jeder Seite einer Platte schwebt ein Lese-/Schreibekopf auf einem Luftpolster. Davon ausgenommen sind die obere Seite der oberen Platte und die untere Seite der unteren Platte des Plattenstapels. Die Lese-/Schreibeköpfe der einzelnen Plattenoberflächen sind über einen einzigen gemeinsamen Arm gesteuert, sodass alle Lese-/Schreibeköpfe zu jedem Zeitpunkt die gleiche Position (Zylinder) einnehmen. 36 / 100
Festplatte: Zugriffszeit Interne Speicher Festplatte [ http://www.seagate.com/ ] [ http://www.colchsfc.ac.uk/ ] 37 / 100
Festplatte: Zugriffszeit Interne Speicher Festplatte [ http://www.seagate.com/ ] [ http://www.colchsfc.ac.uk/ ] Die Positionierungszeit Die Umdrehungsgeschwindigkeit, die in Umdrehungen pro Minute (UPM) ausgedrückt wird, 38 / 100
Festplatte: Zugriffszeit Interne Speicher Festplatte [ http://www.seagate.com/ ] [ http://www.colchsfc.ac.uk/ ] Die Positionierungszeit gibt die Zeit an, um die Lese-/Schreibeköpfe auf den richtigen Zylinder zu fahren. Die Positionierungszeit liegt im Bereich von einigen Millisekunden (zur Zeit circa 8 ms im Mittel). Die Umdrehungsgeschwindigkeit, die in Umdrehungen pro Minute (UPM) ausgedrückt wird, 39 / 100
Festplatte: Zugriffszeit Interne Speicher Festplatte [ http://www.seagate.com/ ] [ http://www.colchsfc.ac.uk/ ] Die Positionierungszeit gibt die Zeit an, um die Lese-/Schreibeköpfe auf den richtigen Zylinder zu fahren. Die Positionierungszeit liegt im Bereich von einigen Millisekunden (zur Zeit circa 8 ms im Mittel). Die Umdrehungsgeschwindigkeit, die in Umdrehungen pro Minute (UPM) ausgedrückt wird, hat entscheidenden Einfluss auf die Dauer einer Lese- und Schreibeoperation. Im Mittel kommt der gesuchte Sektor, nachdem der Lese-/Schreibekopf auf dem richtigen Zylinder positioniert worden ist, nach einer halben Umdrehung unter dem Lese-/Schreibekopf vorbei. Diese mittlere Dauer bewegt sich heute im Bereich von 2 ms (bei 15.000 UPM) bis hin zu 5, 77 ms (bei 5.200 UPM). 40 / 100
Festplatte: Logischer Aufbau Festplatte [ http://audio.uni-lueneburg.de/ ] [ http://www.colchsfc.ac.uk/ ] Jede der Plattenoberflächen besteht aus konzentrischen Spuren. Die Spuren selbst sind in Sektoren eingeteilt die Sektoren sind bei PCs zumeist 512 Bytes groß. Wegen den unterschiedlichen Längen der Spuren befinden sich auf den längeren, äußeren Spuren mehr Sektoren als auf den inneren. So entstehen Zonen mit jeweils gleich vielen Sektoren je Spur. 41 / 100
Festplatte: Logischer Aufbau Festplatte [ http://audio.uni-lueneburg.de/ ] [ http://www.colchsfc.ac.uk/ ] Jede der Plattenoberflächen besteht aus konzentrischen Spuren. Die Spuren selbst sind in Sektoren eingeteilt die Sektoren sind bei PCs zumeist 512 Bytes groß. Wegen den unterschiedlichen Längen der Spuren befinden sich auf den längeren, äußeren Spuren mehr Sektoren als auf den inneren. So entstehen Zonen mit jeweils gleich vielen Sektoren je Spur. 42 / 100
Festplatte: Logischer Aufbau Festplatte [ http://audio.uni-lueneburg.de/ ] [ http://www.colchsfc.ac.uk/ ] Jede der Plattenoberflächen besteht aus konzentrischen Spuren. Die Spuren selbst sind in Sektoren eingeteilt die Sektoren sind bei PCs zumeist 512 Bytes groß. Wegen den unterschiedlichen Längen der Spuren befinden sich auf den längeren, äußeren Spuren mehr Sektoren als auf den inneren. So entstehen Zonen mit jeweils gleich vielen Sektoren je Spur. Dateien werden in untereinander verketteten Sektoren abgelegt. Zu jedem Sektor die Information muss abgespeichert sein, wo der nächste Sektor der Datei liegt (Zylindernummer, Seitennummer (Plattenoberfläche) und Sektornummer). In einem Inhaltsverzeichnis (File Allocation Table) wird für das Betriebssystem der erste Sektor einer jeden Datei vermerkt. 43 / 100
Übersicht der Kosten (Stand: 2005) Speicher Zugriffszeiten Komplexität Register 5-10 ns hoch Hauptspeicher circa 60 ns mittel Festplatte 4-10 ms niedrig 44 / 100
Mehrstufige In Rechnern findet man demnach schnelle/teure als auch langsame/billige Speicher! 45 / 100
Mehrstufige In Rechnern findet man demnach schnelle/teure als auch langsame/billige Speicher! 46 / 100
47 / 100
Interne Speicher Der ist ein schneller, aus SRAM-Zellen aufgebauter Zwischenspeicher, der helfen soll, Zugriffe auf den Hauptspeicher durch den Prozessor zu beschleunigen. 48 / 100
Interne Speicher Der ist ein schneller, aus SRAM-Zellen aufgebauter Zwischenspeicher, der helfen soll, Zugriffe auf den Hauptspeicher durch den Prozessor zu beschleunigen. Die Idee besteht darin, zu versuchen, zu erraten, 1 auf welche Speicherzellen des Hauptspeichers der Prozessor als nächstes zugreifen wird und 2 diese Daten schon im Vorfeld im abzulegen. 49 / 100
Interne Speicher Der ist ein schneller, aus SRAM-Zellen aufgebauter Zwischenspeicher, der helfen soll, Zugriffe auf den Hauptspeicher durch den Prozessor zu beschleunigen. Die Idee besteht darin, zu versuchen, zu erraten, 1 auf welche Speicherzellen des Hauptspeichers der Prozessor als nächstes zugreifen wird und 2 diese Daten schon im Vorfeld im abzulegen.... ist dies erfolgreich, so können zum Zeitpunkt der Anforderung die Hauptspeicherzugriffe umgangen bzw. durch sehr viel schnellere Zugriffe auf den ersetzt werden! 50 / 100
Interne Speicher Der ist ein schneller, aus SRAM-Zellen aufgebauter Zwischenspeicher, der helfen soll, Zugriffe auf den Hauptspeicher durch den Prozessor zu beschleunigen. Die Idee besteht darin, zu versuchen, zu erraten, 1 auf welche Speicherzellen des Hauptspeichers der Prozessor als nächstes zugreifen wird und 2 diese Daten schon im Vorfeld im abzulegen.... ist dies erfolgreich, so können zum Zeitpunkt der Anforderung die Hauptspeicherzugriffe umgangen bzw. durch sehr viel schnellere Zugriffe auf den ersetzt werden! Der ist software-transparent, d. h. der Benutzer kann den nicht direkt adressieren, muss mal nichts vom zu wissen! 51 / 100
Anbindung des an CPU und Hauptspeicher software-transparent Jeder Speicherzugriff, insbesondere also jeder Lesezugriff, stellt deshalb aus Sicht des Programms bzw. des Anwenders zunächst einen Hauptspeicherzugriff dar. 52 / 100
Anbindung des an CPU und Hauptspeicher software-transparent Jeder Speicherzugriff, insbesondere also jeder Lesezugriff, stellt deshalb aus Sicht des Programms bzw. des Anwenders zunächst einen Hauptspeicherzugriff dar. Wir unterscheiden zwischen cache hit: eine Kopie der zu lesenden Hauptspeicherzelle befindet sich bereits im. cache miss: die zu lesenden Daten befinden sich ausschließlich im Hauptspeicher. 53 / 100
LOAD: Datenfluss bei einem -Hit 54 / 100
LOAD: Datenfluss bei einem -Miss 55 / 100
Beschleunigung durch Einsatz von s Da das Lesen im Hauptspeicher beträchtlich länger als das Lesen im dauert, hängt die mittlere Zugriffszeit auf den Hauptspeicher von der Trefferrate ab! Trefferrate h := # cache hits # cache hits + # cache misses 56 / 100
Beschleunigung durch Einsatz von s Da das Lesen im Hauptspeicher beträchtlich länger als das Lesen im dauert, hängt die mittlere Zugriffszeit auf den Hauptspeicher von der Trefferrate ab! Trefferrate h := # cache hits # cache hits + # cache misses Ist c die Zugriffszeit auf den m die Zugriffszeit auf den Hauptspeicher dann gilt für die mittlere Speicherzugriffszeit t := c + (1 h) m 57 / 100
Beschleunigung durch Einsatz von s Ist die Zugriffszeit c auf den gleich 10 ns die Zugriffszeit m auf den Hauptspeicher gleich 60 ns dann gilt für die mittlere Speicherzugriffszeit t := 10 ns + (1 h) 60 ns 58 / 100
Beschleunigung durch Einsatz von s Ist die Zugriffszeit c auf den gleich 10 ns die Zugriffszeit m auf den Hauptspeicher gleich 60 ns dann gilt für die mittlere Speicherzugriffszeit t := 10 ns + (1 h) 60 ns Trefferrate h [%] 50 60 70 80 90 95 Zugriffszeit t [ns] 40 34 28 22 16 13 59 / 100
Lokalitätsprinzip Interne Speicher Wie kann man (bzw. der ) erraten, auf welche Speicherzelle als nächstes lesend wohl zugegriffen wird? 60 / 100
Lokalitätsprinzip Interne Speicher Wie kann man (bzw. der ) erraten, auf welche Speicherzelle als nächstes lesend wohl zugegriffen wird? Die Idee des s beruht auf der Voraussetzung, dass das abzuarbeitende Maschinenprogramm dem so genannten Lokalitätsprinzip genügt. Lokalitätsprinzip Das Lokalitätsprinzip besagt, dass zu jedem Zeitpunkt des Programmablaufs ein eingeschränkter Adressbereich existiert, auf den bevorzugt und wiederholt zugegriffen wird. 61 / 100
Lokalitätsprinzip Interne Speicher Wie kann man (bzw. der ) erraten, auf welche Speicherzelle als nächstes lesend wohl zugegriffen wird? Die Idee des s beruht auf der Voraussetzung, dass das abzuarbeitende Maschinenprogramm dem so genannten Lokalitätsprinzip genügt. Lokalitätsprinzip Das Lokalitätsprinzip besagt, dass zu jedem Zeitpunkt des Programmablaufs ein eingeschränkter Adressbereich existiert, auf den bevorzugt und wiederholt zugegriffen wird. Genauer: Mit hoher Wahrscheinlichkeit werden als nächstes Hauptspeicherzellen angesprochen, die im Hauptspeicher nahe der Adresse der zuletzt verwendeten Daten abgelegt sind. 62 / 100
Interner Aufbau eines s [ Prinzipieller Aufbau eines -Speichers ] Die Zeilen des Datenspeichers enthalten jeweils einen zusammenhängenden Datenblock (fester Größe) aus dem Hauptspeicher. Die Anfangsadresse des Blockes ist in der entsprechenden Adressspeicherzelle abgespeichert. 63 / 100
Interner Aufbau eines s Im Wesentlichen unterscheidet man zwischen zwei Typen von -Speichern: vollassoziativer -Speicher direktabgebildeter -Speicher 64 / 100
Interner Aufbau eines s Im Wesentlichen unterscheidet man zwischen zwei Typen von -Speichern: vollassoziativer -Speicher Jeder Datenblock aus dem Hauptspeicher kann in einer beliebigen zeile abgespeichert werden. direktabgebildeter -Speicher Jeder Hauptspeicheradresse wird genau eine interne -Adresse zugewiesen, d. h. es gibt eine feste Abbildung, die jeder Hauptspeicheradresse eine -Speicherzelle zuordnet. 65 / 100
Interner Aufbau eines s Im Wesentlichen unterscheidet man zwischen zwei Typen von -Speichern: vollassoziativer -Speicher Jeder Datenblock aus dem Hauptspeicher kann in einer beliebigen zeile abgespeichert werden. = Die Adresse, unter der im Hauptspeicher gelesen werden soll, muss parallel mit sämtlichen Einträgen im -Speicher verglichen werden. direktabgebildeter -Speicher Jeder Hauptspeicheradresse wird genau eine interne -Adresse zugewiesen, d. h. es gibt eine feste Abbildung, die jeder Hauptspeicheradresse eine -Speicherzelle zuordnet. = Die Adresse, unter der im Hauptspeicher gelesen wird, braucht nur mit einem Eintrag im -Speicher verglichen werden, da jeder Hauptspeicheradresse genau eine interne -Adresse zugewiesen wird. 66 / 100
Realisierung eines direktabgebildeten s Die Abbildung von Hauptspeicheradressen auf -Speicherzellen erfolgt durch dmc : A Hauptspeicher A a n 1... a i a i 1... a 0 a i 1... a 0 67 / 100
Realisierung eines direktabgebildeten s Die Abbildung von Hauptspeicheradressen auf -Speicherzellen erfolgt durch dmc : A Hauptspeicher A a n 1... a i a i 1... a 0 a i 1... a 0 Die i niederwertigen Bits a i 1... a 0 legen die Position innerhalb des s fest, an der die Zelle mit der Hauptspeicheradresse a n 1... a 0 gespeichert wird. 68 / 100
Realisierung eines direktabgebildeten s Die Abbildung von Hauptspeicheradressen auf -Speicherzellen erfolgt durch dmc : A Hauptspeicher A a n 1... a i a i 1... a 0 a i 1... a 0 Die i niederwertigen Bits a i 1... a 0 legen die Position innerhalb des s fest, an der die Zelle mit der Hauptspeicheradresse a n 1... a 0 gespeichert wird. Die restlichen Bits, d. h. a n 1... a i, bilden den so genannten Adress-TAG, mit dem die letztendliche Überprüfung gemacht werden kann, welcher Block im Datenspeicher gespeichert ist. 69 / 100
Vergleich der beiden -Typen -Speicher-Typ vollassoziativ direktabgebildet Speicherort im für Hauptspeicherzellen Verdrängungsstrategien Lokalisierung von Daten 70 / 100
Vergleich der beiden -Typen -Speicher-Typ vollassoziativ direktabgebildet Speicherort im für Hauptspeicherzellen frei wählbar durch Abbildung dmc fest vorgegeben Verdrängungsstrategien Lokalisierung von Daten 71 / 100
Vergleich der beiden -Typen -Speicher-Typ vollassoziativ direktabgebildet Speicherort im für Hauptspeicherzellen frei wählbar durch Abbildung dmc fest vorgegeben Verdrängungsstrategien ja nicht benötigt Lokalisierung von Daten 72 / 100
Vergleich der beiden -Typen -Speicher-Typ vollassoziativ direktabgebildet Speicherort im für Hauptspeicherzellen frei wählbar durch Abbildung dmc fest vorgegeben Verdrängungsstrategien ja nicht benötigt Lokalisierung von Daten paralleler Vergleich mit allen im gespeicherten Adressen Dekodierung und ein einziger Vergleich von zwei Adress-TAGs 73 / 100
Was passiert bei einem STORE-Befehl? -Kohärenz Da der nur Kopien von Daten und keine eigene Daten speichert, muss bei einem Schreibzugriff dafür Sorge getragen werden, dass die Inhalte der beiden Speicher konsistent bleiben. 74 / 100
Was passiert bei einem STORE-Befehl? -Kohärenz Da der nur Kopien von Daten und keine eigene Daten speichert, muss bei einem Schreibzugriff dafür Sorge getragen werden, dass die Inhalte der beiden Speicher konsistent bleiben. Man unterscheidet zwischen drei verschiedenen Verfahren: write-through write-back write-allocation 75 / 100
Die verschiedene Techniken beim Schreibzugriff write-through: cache hit: Sowohl die Hauptspeicherzelle unter der Adresse a als auch deren Kopie im werden sofort aktualisiert. cache miss: Die Hauptspeicherzelle unter der Adresse a wird aktualisiert, der Inhalt des -Speichers bleibt unverändert. 76 / 100
Die verschiedene Techniken beim Schreibzugriff write-back: cache hit: Nur die Kopie im wird aktualisiert, die Hauptspeicherzelle unter der Adresse a hingegen bleibt zunächst unverändert. Durch das so genannte dirty bit wird die entsprechende Zelle im als modifiziert markiert. Findet später eine Verdrängung dieser Zelle aus dem statt, so wird deren Inhalt vor dem Entfernen aus dem noch in die Hauptspeicherzelle mit der Adresse a zurückgeschrieben. cache miss: Die Hauptspeicherzelle unter der Adresse a wird aktualisiert, der Inhalt des -Speichers bleibt unverändert. 77 / 100
Die verschiedene Techniken beim Schreibzugriff write-allocation: cache hit: Nur die Kopie im wird aktualisiert und mithilfe des dirty bit markiert. Die Hauptspeicherzelle unter der Adresse a hingegen bleibt zunächst unverändert und wird bei einer späteren Verdrängung der entsprechenden Zelle aus dem aktualisiert. cache miss: Das zu schreibende Datum wird nicht in den Hauptspeicher, sondern in den geschrieben und sofort mithilfe des dirty bits als modifiziert markiert. Bei diesem Vorgang findet außerdem automatisch eine Verdrängung bisheriger -Inhalte statt. Der Hauptspeicher bleibt zunächst unverändert die Zelle mit der Adresse a wird erst dann aktualisiert, wenn die Kopie aus dem verdrängt wird. 78 / 100
Die Schreibe-Techniken im Überblick 79 / 100
Interne Speicher 80 / 100
Interne Speicher Die Probleme mit dem Hauptspeicher: 81 / 100
Interne Speicher Die Probleme mit dem Hauptspeicher: 1 Bei einer Adressbusbreite von 64 kann aufgrund der Kosten in der Regel nicht soviel Hauptspeicher physikalisch angeschafft werden, wie adressierbar ist! 82 / 100
Interne Speicher Die Probleme mit dem Hauptspeicher: 1 Bei einer Adressbusbreite von 64 kann aufgrund der Kosten in der Regel nicht soviel Hauptspeicher physikalisch angeschafft werden, wie adressierbar ist! Bei einer Adressbusbreite von 64, sind 1, 8 10 19 Byte adressierbar! Geht man von 40 Euro für einen Speicherbaustein von 256 MByte aus, so kostet ein vollständiger Ausbau 2.682 Milliarden Euro. 83 / 100
Interne Speicher Die Probleme mit dem Hauptspeicher: 1 Bei einer Adressbusbreite von 64 kann aufgrund der Kosten in der Regel nicht soviel Hauptspeicher physikalisch angeschafft werden, wie adressierbar ist! Bei einer Adressbusbreite von 64, sind 1, 8 10 19 Byte adressierbar! Geht man von 40 Euro für einen Speicherbaustein von 256 MByte aus, so kostet ein vollständiger Ausbau 2.682 Milliarden Euro. 2 Bei einem Multiprozessrechner bzw. bei einem Multiusersytem geht jeder Prozess bzw. jeder Nutzer davon aus, dass ihm der gesamte Adressraum (abzüglich dem Adresseraum, der für das Betriebssystem reserviert ist) zur Verfügung steht. In Wirklichkeit werden aber alle Prozesse und alle Nutzer gemeinsam den gleichen physikalischen Hauptspeicher benutzen. 84 / 100
Interne Speicher Sicht der Nutzer und Prozesse Die Prozesse arbeiten jeweils mit einem vollständigen Hauptspeicher! Dem Benutzer wird die Sicht vermittelt, dass er Daten und Programme im Hauptspeicher ablegen kann, solange der Adressraum nicht erschöpft ist. Insbesondere kann der Anwender also davon ausgehen, dass er den Hauptspeicher für sich allein in Anspruch nehmen kann und dass dieser den kompletten Adressraum umfasst. 85 / 100
Interne Speicher Sicht der Nutzer und Prozesse Die Prozesse arbeiten jeweils mit einem vollständigen Hauptspeicher! Dem Benutzer wird die Sicht vermittelt, dass er Daten und Programme im Hauptspeicher ablegen kann, solange der Adressraum nicht erschöpft ist. Insbesondere kann der Anwender also davon ausgehen, dass er den Hauptspeicher für sich allein in Anspruch nehmen kann und dass dieser den kompletten Adressraum umfasst. Der physikalische Hauptspeicher ist in der Regel wesentlich kleiner, kann also gar nicht den kompletten Inhalt des virtuellen Speichers aufnehmen. 86 / 100
Interne Speicher Sicht der Nutzer und Prozesse Die Prozesse arbeiten jeweils mit einem vollständigen Hauptspeicher! Dem Benutzer wird die Sicht vermittelt, dass er Daten und Programme im Hauptspeicher ablegen kann, solange der Adressraum nicht erschöpft ist. Insbesondere kann der Anwender also davon ausgehen, dass er den Hauptspeicher für sich allein in Anspruch nehmen kann und dass dieser den kompletten Adressraum umfasst. Der physikalische Hauptspeicher ist in der Regel wesentlich kleiner, kann also gar nicht den kompletten Inhalt des virtuellen Speichers aufnehmen. Zusammenspiel zwischen Hauptspeicher und Festplatte Der Festplattenspeicher wird dazu eingesetzt, diejenigen Hauptspeicherdaten zu speichern, die aus Kapazitätsgründen im tatsächlich vorhandenen Hauptspeicher keinen Platz finden. 87 / 100
Interne Speicher Der Inhalt des virtuellen Speichers eines Prozesses wird auf der Festplatte abgelegt. 88 / 100
Interne Speicher Der virtuelle Speicher wird in Seiten fester Größe unterteilt. Der Hauptspeicher besteht aus Seitenrahmen, die jeweils eine Seite aufnehmen können. Es wird eine Seitentabelle geführt, die angibt, welche Seitenrahmen durch welche Seiten belegt sind. 89 / 100
Zugriff auf eine Datenseite durch einen Prozess Was passiert bei einem Zugriff auf eine Datenseite? überprüfe, ob Seite i im realen Hauptspeicher liegt; if page fault then fi; 90 / 100
Zugriff auf eine Datenseite durch einen Prozess Was passiert bei einem Zugriff auf eine Datenseite? überprüfe, ob Seite i im realen Hauptspeicher liegt; if page fault then if alle Seitenrahmen im realen Hauptspeicher sind belegt then fi; fi; schreibe Seite i in einen freien Seitenrahmen des realen Hauptspeichers; aktualisiere die Seitentabelle; 91 / 100
Zugriff auf eine Datenseite durch einen Prozess Was passiert bei einem Zugriff auf eine Datenseite? überprüfe, ob Seite i im realen Hauptspeicher liegt; if page fault then if alle Seitenrahmen im realen Hauptspeicher sind belegt then verdränge eine Seite aus dem realen Hauptspeicher und aktualisiere die Seitentabelle; fi; fi; schreibe Seite i in einen freien Seitenrahmen des realen Hauptspeichers; aktualisiere die Seitentabelle; 92 / 100
Verdrängungsstrategien Es gibt im Wesentlichen drei Verfahren (und Abwandlungen davon), die als Verdrängungsstrategie in Frage kommen. 1 LRU-Strategie (least recently used) Es wird die Seite ausgelagert, auf die am längsten nicht zugegriffen worden ist. 93 / 100
Verdrängungsstrategien Es gibt im Wesentlichen drei Verfahren (und Abwandlungen davon), die als Verdrängungsstrategie in Frage kommen. 1 LRU-Strategie (least recently used) Es wird die Seite ausgelagert, auf die am längsten nicht zugegriffen worden ist. 2 FIFO-Strategie (first in first out) Es wird die Seite ausgelagert, die sich am längsten im realen Speicher befindet. Hierzu werden die einem Prozess zugeordneten Seitenrahmen wie ein Ringpuffer behandelt. 94 / 100
Verdrängungsstrategien Es gibt im Wesentlichen drei Verfahren (und Abwandlungen davon), die als Verdrängungsstrategie in Frage kommen. 1 LRU-Strategie (least recently used) Es wird die Seite ausgelagert, auf die am längsten nicht zugegriffen worden ist. 2 FIFO-Strategie (first in first out) Es wird die Seite ausgelagert, die sich am längsten im realen Speicher befindet. Hierzu werden die einem Prozess zugeordneten Seitenrahmen wie ein Ringpuffer behandelt. 3 Clock-Algorithmus Wie bei der FIFO-Strategie werden die Seitenrahmen in einem Ringpuffer verwaltet. Zusätzlich wird jeder Rahmen mit einem Use Bit versehen, das auf 0 gesetzt wird, wenn der Rahmen neu belegt wird. Bei dem nächsten Zugriff wird das Bit auf 1 gesetzt. Es wird versucht, einen Seitenrahmen im Ringpuffer zu finden, dessen Use Bit auf 0 liegt. 95 / 100
Verdrängungsstrategien Strategie Aufwand Effizienz LRU FIFO Clock 96 / 100
Verdrängungsstrategien Strategie Aufwand Effizienz LRU hoch fast optimal FIFO Clock 97 / 100
Verdrängungsstrategien Strategie Aufwand Effizienz LRU hoch fast optimal FIFO sehr gering gut Clock 98 / 100
Verdrängungsstrategien Strategie Aufwand Effizienz LRU hoch fast optimal FIFO sehr gering gut Clock gering sehr gut 99 / 100
Luxemburger Oberstadt [http://www.klimabuendnis.org/] Blick auf die Oberstadt 100 / 100