Ergänzung: RAM und ROM SS 2012 Grundlagen der Rechnerarchitektur Speicher 72
Speichern eines Bits versus viele MB Wir wissen wie wir einzelne Bits speichern können (Erinnerung: Latches, Flip Flops) Mehrere solcher Bausteine können zu Register zusammengebaut werden D Q CK Wie baut man daraus aber komplexe RAM Bausteine? Bildquelle: Andrew S. Tanenbaum, Structured Computer Organization, Fifth Edition, 2006 SS 2012 Grundlagen der Rechnerarchitektur Speicher 73
Beispiel: Speicherbaustein mit Adressierung Dateneingänge (3 Bit): I 0, I 1, I 2 Datenausgänge (3 Bit): O 1, O 2, O 3 Adressleitungen (4 Wörter ): A 0, A 1 Kontrollleitungen: CS = Chip Select RD = Read (=1) / Write (=0) OE = Output Enable Lesen und Schreiben am Beispiel Wenn man entweder liest oder schreibt können I 0, I 1, I 2 und O 1, O 2, O 3 auch dieselben Leitungen sein (das spart Pins und Busleitungen). Dies erfordert aber, dass beim Schreiben die Ausgabe getrennt wird. Baustein hierfür: noninverting und inverting Buffer: (sog. Tri State Device: Ausgabe 0/1 oder none (d.h. open circuit)) Bildquelle: Andrew S. Tanenbaum, Structured Computer Organization, Fifth Edition, 2006 SS 2012 Grundlagen der Rechnerarchitektur Speicher 74
Erweiterung von Adressraum und Bit Tiefe Erweiterung des vorigen Beispiels ist offensichtlich: Vergrößerung des Adressraums (in der Größenordnung 2 n ): Füge eine Adressleitung hinzu und verdoppele die Anzahl Zeilen Vergrößerung der Bit Tiefe (beliebig): Füge in jede Zeile eine/mehrere Spalte/n hinzu Zwei dimensionales sich wiederholendes Muster: lässt sich gut mit dem Konzept von integrierten Schaltung vereinen (z.b. kein Anwachsen von Leitungsüberkreuzungen) Speicherkapazität ist nur direkt an Chip Integrationsdichte gekoppelt Verschiedene Chip Organisationsformen möglich. Beispiel für zwei 4Mbit Chip Varianten: Variante (a): wie eben nur größer Variante (b): 2048x2048 Matrix mit 1 Bit Zellen Adressierung ist zweistufig (z.b. erst Row Address Strobe (RAS) und dann Column Address Strobe (CAS)) Bildquelle: Andrew S. Tanenbaum, Structured Computer Organization, Fifth Edition, 2006 SS 2012 Grundlagen der Rechnerarchitektur Speicher 75
Organisation als Matrix n x n Matrix Konzept des vorigen Beispiels allgemein: Geeignet für große Speicher Chips Reduziert die Anzahl Pins Adressierung dauert aber doppelt so lang Mögliche Optimierung: Teile zuerst die Row Adresse mit Anschließend können innerhalb dieser Row mit einer Sequenz von Column Adressen Speichereinträge erreicht werden Mehrere n x n 1 Bit Bausteine lassen sich auch parallel zu größerer Bit Tiefe zusammenbringen, z.b. Tiefe 8 Bit Matrix Organisation eines Einzelbausteins nicht auf Bit Einträge begrenzt Beispielsweise: 4, 8, oder 16 Bit Breiten möglich; daraus lassen sich mit weniger Einzel Chips größere RAM Bausteine zusammenbauen (z.b. Anstatt 32 Bit Tiefe mit vier 8 Bit Bausteinen anstatt mit 32 1 Bit Bausteinen) Bildquelle: Andrew S. Tanenbaum, Structured Computer Organization, Fifth Edition, 2006 SS 2012 Grundlagen der Rechnerarchitektur Speicher 76
Weitere Aspekte Matrix muss nicht Quadratisch sein (z.b. 13 Rows und 10 Columns) Zusätzlich kann Speicher noch in Bänken organisiert sein (z.b. 4 Bänke mit je 128Mbit ergibt 512 Mbit) Zwei Beispiele eines 512Mbit Chips: Vier interne Bänke a 128MBit (d.h. zwei Bank Select Leitungen) Variante (a): 32M x 16 Design mit 13 Bit RAS und 10 Bit CAS => 2 13+10+2 = 2 25 interne 16 Bit Zellen Variante (b): 128M x 4 Design mit13 Bit RAS und 12 Bit CAS => 2 13+12+2 = 2 27 interne 4 Bit Zellen Bildquelle: Andrew S. Tanenbaum, Structured Computer Organization, Fifth Edition, 2006 SS 2012 Grundlagen der Rechnerarchitektur Speicher 77
Zwei RAM Varianten: SRAM und DRAM SRAM und DRAM Static RAM (SRAM) Aufgebaut mit Schaltungen wie die diskutierten Flip Flops Zustand bleibt erhalten solange Strom anliegt Sehr schneller Speicher (Zugriffszeit wenige nsec) Dynamic RAM (DRAM) Nutzt keine Flip Flops sondern Array von Zellen mit je einem Transistor und einem winzigen Kondensator pro Bit Ladezustand des Kondensator (aufgeladen/entladen) stellt 1 Bit Information dar Kondensator entladen sich => damit periodischer Refresh notwendig (alle paar Millisekunden) Vorteil: hohe Dichte bzgl. Bit pro Chip (Transistor+Kondensator anstatt 6 Transistoren für den Flip Flop) => große RAM Speicher damit realisierbar Nachteil: wesentlich langsamer (mehrere 10 nsec) Guter Kompromiss: DRAM Baustein mit SRAM Cache SS 2012 Grundlagen der Rechnerarchitektur Speicher 78
FPM, EDO, SDRAM und DDR DRAM Varianten: z.b. FPM und EDO Fast Page Mode (FPM) DRAM Matrix zur Adressierung von Bit Eine Row Adresse und anschließend aufeinander folgende Column Adressen RAM läuft unabhängig (asynchron) vom Haupt Systemtakt Extended Data Putput (EDO) DRAM Nächste Speicherreferenz ist möglich bevor die vorige beendet wurde (vgl. Pipelining Prinzip) Erhöht nicht die individuelle Speicherzugriffzeit aber den Speicherdurchsatz Synchronous DRAM (SDRAM) Hybrid aus dynamischem und statischem DRAM durch den Haupt Systemtakt getriggert Keine Kontrollnachrichten zwischen Prozessor und RAM wie bei asynchronem RAM erforderlich Wesentlich schneller Double Data Rate (DDR) SDRAM Output bei fallender und steigender Clock Flanke => verdoppelt die Datenrate SS 2012 Grundlagen der Rechnerarchitektur Speicher 79
ROM Read Only Memory (ROM) Zum Chipherstellungsprozess wird das Bitmuster festgelegt; besonders billiger Speicher Programmable ROM (PROM) kann einmalig Programmiert werden; Meist ein Feld von Column Row Adressierbaren Knotenpunkten die über einen Eingangs Pin einmalig auf einen Bit Wert gesetzt werden können Erasable PROM (EPROM) Belichtung des Quartz Fenster mit starkem UV Licht für 15 Minuten setzt alle Bit Werte zurück auf 1. Erneutes Setzen der Bits damit möglich EEPROM Löschen mittels elektrischer Impulse; Re Programmierung direkt am Chip möglich (anstatt wie bei EPROM in spezieller Apparatur) Diskussion: EEPROMS typischerweise wesentlich kleiner als EPROMS und nur halb so schnell EEPROMS wesentlich langsamer kleiner und teurer als DRAM und SRAM Nur dann sinnvoll, wenn Werte einmalig festgelegt sein sollen Aktueller als EEPROMs sind Flash Speicher (auf NAND Basis) Unterschied: Block Erasable/Rewritable anstatt Byte Erasable/Rewritable SS 2012 Grundlagen der Rechnerarchitektur Speicher 80
Flash Speicher Flash Speicher: nichtvolatiler Halbleiterspeicher. Vorteile gegenüber Disks: Latenz ist 100 bis 1000 fach schneller Kleiner Größere Leistungseffizienz Größere Shock Resistenz Nachteile gegenüber Disks: Höherer Preis pro GB Flash Speicher Bits sind nach vielem Überschreiben nicht mehr verwendbar (Wear Out). Flash Speicher muss ein entsprechendes Wear Leveling durchführen. SS 2012 Grundlagen der Rechnerarchitektur Ein und Ausgabe 81
NOR und NAND Flash Speicher Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Ein und Ausgabe 82
Zusammengefasst Typ Kategorie Löschen Volatil Typische Anwendung SRAM R/W Elektr. Ja Level1/2 Cache DRAM R/W Elektr. Ja Hauptspeicher (alt) SDRAM R/W Elektr. Ja Hauptspeicher (neuer) ROM PROM EPROM EEPROM Read Only Read Only Read Mostly Read Mostly Nicht möglich Nicht möglich Nein Nein UV Licht Nein Prototyping Elektr. Nein Prototyping Produkte großer Stückzahl Produkte kleinerer Stückzahl Flash R/W Elektr. Nein Sekundärer Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 83
Zusammenfassung und Literatur SS 2012 Grundlagen der Rechnerarchitektur Speicher 84
Zusammenfassung Cache Ziel: Speicher so groß wie auf unterstem Level aber annähernd so schnell wie auf höchstem Level. Warum funktionieren Caches überhaupt so gut? Lokalitätsprinzip. Virtueller Speicher ist prinzipiell das selbe wie ein Cache. Auch hier gelten dieselben Cache Prinzipien (z.b. Lokalität) Insgesamt ergibt sich eine Hierarchie von Caches. Caches sind prinzipiell vor der Software unsichtbar. Dennoch ist es sinnvoll diese in der Software zu beachten (z.b. Speicherblöcke in Schleifen Cachegünstig durchlaufen, Prefetching) SS 2012 Grundlagen der Rechnerarchitektur Speicher 85
Literatur [PattersonHennessy2012] David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 5.1 Introduction 5.2 The Basics of Caches 5.3 Measuring and Improving Cache Performance 5.4 Virtual Memory 5.8 Parallelism and Memory Hierarchies: Cache Coherence 6.4 Flash Storage [Tanenbaum2001] Andrew S. Tanenbaum, Modern Operating Systems, Second Edition, 2001 4.8 Segmentation [Tanenbaum2006] Andrew S. Tanenbaum, Structured Computer Organization, Fifth Edition, 2006 3.3 Memory SS 2012 Grundlagen der Rechnerarchitektur Speicher 86