1.3 Speicherwerk (1) Neben Prozessor ist in einem Rechner das Speichersystem entscheidend für Leistungsfähigkeit und Kosten eines Rechners Idealvorstellung Ausreichend Kapazität Zugriffszeit kann stets mit Verarbeitungsgeschwindigkeit des Prozessors mithalten Aus wirtschaftlichen und technischen Gründen nicht realisierbar Abhilfe: mehrstufige Speicherhierarchie Jede Stufe kleiner, schneller und teurer pro Byte als nächste Stufe Inklusionsbedingung: jeder Speicher einer Hierarchiestufe enthält Ausschnitt des Speichers der nächst höheren Hierarchiestufe
1.3.1 Speicherhierarchie (1) " Speicherhierarchie und Eigenschaften (ungefähre Zeiten) Speicher Zugriffszeit Kapazität Prozessorregister 1 Taktzyklus 256-1024 Bytes Primär-Cache (40:1 zu HS) 1-3 Taktzyklen 1-128 KBytes Sekundär-Cache (10:1 zu HS) 3-6 Taktzyklen 256 KB - 4 MBytes Hauptspeicher 25-40 Taktzyklen ~ GBytes Hintergrundspeicher 5-15 ms bis zu 5 TByte Archivspeicher >> 50 ms mehrere TBytes Einlagerung von Daten Vom Hauptspeicher und Register in Cache durch HW Und vom Hintergrundspeicher in Arbeitsspeicher durch SW (Betriebssystem) durchgeführt
1.3.1 Speicherhierarchie (2) Darstellung Inklusionsbedingung innerhalb der Speicherhierarchie Rechnergehäuse Prozessor Register On-chip cache 2nd u. 3rd level cache (SRAM) Halbleiter speicher Arbeitsspeicher (DRAM) Magnetplatten; optische Laufwerke z.b. Magnetbänder Primär-Cache (Prozessor-intern) Sekundär-Tertiär-Cache (früher: Prozessor-extern)
1.3.1 Speicherhierarchie (3) Anordnung der Speicher Kapazität Zugriffsgeschwindigkeit Preis / Bit
1.3.1 Speicherhierarchie (4) Charakteristika eines Speichers
1.3.2 Speicherstruktur (1) Grob-Struktur des Prozessor-Speichersystems Chipsatz (Erklärung s. später, Folie 104)
1.3.2 Speicherstruktur (2) Zugriff Prozessor zumeist auf schnelle Speicher Möglich durch Eigenschaft der zeitlichen und räumlichen Lokalität von Referenzen auf Daten und Befehle Dadurch: Speicher mit Zugriffszeit im Bereich der mittleren Cachezugriffszeit, jedoch weitaus höhere Kapazität Zugriffswahrscheinlichkeit über Zeit 0 2 n - 1 Adressraum
1.3.3 Grundlagen Cache-Techniken (1) Cache (wörtlich Depot, Versteck) Kleiner schneller Pufferspeicher zwischen Register und Hauptspeicher Funktion von Caches Überbrückung der Prozessor-Speicher-Lücke bzgl. der Leistung Cache-Aufbau wie Hauptspeicher in Blöcken organisiert Cache-Blöcke oder Cache-Zeilen (cache blocks oder cache lines)
1.4 Architektur Arbeitsspeicher Wiederholung Haupt- oder Arbeitsspeicher Heute fast immer in DRAM (dynamic RAM) Hingegen in Caches und z.t. in Hochleistungsrechner: SRAM (static RAM) SRAM-Chips Speicherzelle: Flip-Flop dadurch zerstörungsfreies Lesen größer als DRAM-Zelle: 6-8 Transistoren schneller: ~ Faktor 8 geringere Kapazität: ~ Faktor 8
1.4 Architektur Arbeitsspeicher DRAM-Chips Vorteil: sehr kompakt Nachteil: zerstörendes Lesen; Zeile vom Lese-/Schreibverstärker wieder zurückschreiben Dynamic RAM Speicherzelle: Transistor plus Kondensator Adressleitung Bitleitung
1.4 Architektur Arbeitsspeicher Arbeitsspeicher besteht aus Speichermatrizen Speichermatrix mit einer oder einigen 1-Bit-Speicherzellen an Knotenpunkten Adressierung über Zeile und Spalte im Multiplexbetrieb Über Zeilenadresse gesamte Zeile in Puffer auslesen Über Spaltenadresse Bit oder Bits adressieren Aufgrund von Leckströmen, z.b. bis zu alle 64 ms jede Zeile (bzw. 15,6 bzw. 7,8 µs pro Zelle) periodisch neu schreiben (refresh) Geschieht einfach durch Lesen (und damit verbundenem Wiederbeschreiben) der Inhalte Entweder im Block, d.h. alle Einträge auf einmal wiederauffrischen, oder Einzeln in einem festen Raster zwischen den üblichen Zugriffen
1.4 Architektur Arbeitsspeicher Schematische Darstellung 4M 1-Bit DRAM Ohne Refresh-Logik ZAR: Zeilenadressregister LSV: Lese-/Schreibverstärker WE: Write Enable SAR: Spaltenadressregister LSS: Lese-/Schreibsteuerung OE: Output Enable ZAD: Zeilenadressdekodierer RAS: Row-Adress-Select A i : Adressen SAD: Spaltenadressdekodierer CAS: Column-Adress-Select D in,d out :Ein-/Ausgabebits
1.4 Architektur Arbeitsspeicher Beispiel: Byte-adressierbarer 16 MByte Speicher mit 32-Bit Worten aus 4M 1-Bit DRAMs Speicher-Kontroller (memory controller) sorgt für Adressinterpretation Wortadressierung und Auswahl einer oder mehrerer Byte-Blöcke Speicher-Bank (memory bank): parallel angeordnete Speicherbausteine + Speicher-Kontroller
1.4 Architektur Arbeitsspeicher Speicherverschränkung (memory interleaving) Zykluszeit bremst Prozessor Bsp.: 1 GHz Prozessor und 20 ns Zykluszeit nur jeden 20.Takt (!) kann Prozessor auf Speicher zugreifen Lösung: Speicherverschränkung Benachbarte Worte liegen in unterschiedlichen Bänken Speicherzugriffe auf unterschiedliche Bänke können überlappen Beispiel: 4-fach verschränkter Speicher
1.4 Architektur Arbeitsspeicher Entwicklungen der letzten Zeit Latenzzeit von Speichern verringerte sich pro Jahr durch Technologie nur um etwa 10% (führte zu sog. Memory-Gap!!)
1.4 Architektur Arbeitsspeicher um Latenz weiter zu verringern, waren Architekturmaßnahmen erforderlich Nibble-, Page- oder Static Column-Modus: bei Speicherzugriff gleich mehrere Folgebits in der aktiven Zeile mit auslesen z.b. EDO-RAM EDRAM (enhanced DRAM) oder CDRAM (cached DRAM) Cache mit auf dem Speicherchip integriert SDRAM (synchrone DRAM) Werden synchron zum Prozessor-/Speicherbus betrieben Zusätzlich weitere Speichermatrizen damit Speicherverschränkung mit Burst-Modus: schnelle Übertragung von Blöcken Bei 100 MHz 10 ns für Folgezugriffe DDR (double data rate) RAM Datenübertragung bei steigender und fallender Taktflanke
1.4 Architektur Arbeitsspeicher Aufbau eines 64 MBit SDRAMs
1.4 Architektur Arbeitsspeicher Zeitverlauf bei SDRAM-Zugriffen Burst-Zugriff (Nachlesen empfohlen, Stallings, Kap. 5 191-195, Synchronous DRAM) 4 aufeinanderfolgende Adressen gleich auf einmal auslesen Latenz: 2 Taktlängen Burstlänge: 4
1.4 Architektur Arbeitsspeicher Burst-Zugriff und abwechselnder Zugriff auf verschiedene Speicherbänke http://www.hardwareecke.de/berichte/grundlagen/dram_1.php Bänke versetzt in Phasen (Precharge, Active, Write/Read) ansprechen
1.4 Architektur Arbeitsspeicher Heute sind DDR-(Double Data Rate)-Technologien üblich Auslesen bei steigender und fallender Taktflanke DDR-Technologien im Vergleich SDRAM 1 Bit-Zugriff vollständig synchron zum Bustakt DDR1-400 2 Bit-Zugriff (Prefetch) mit steigender und fallender Taktflanke werden 2 aufeinanderfolgende Adressen auf einmal gelesen DDR2-533 anstatt zwei werden gleich vier Bit ausgelesen
1.4 Architektur Arbeitsspeicher DDR-Technologien im Überblick [Quelle: Wikipedia] Chip Modul Speichertakt I/O-Takt ² Effektiver Takt ³ Übertragung srate pro Modul Übertragung srate Dual- Channel DDR-200 PC-1600 100 MHz 100 MHz 200 MHz 1,6 GB/s 3,2 GB/s DDR-266 PC-2100 133 MHz 133 MHz 266 MHz 2,1 GB/s 4,2 GB/s DDR-333 PC-2700 166 MHz 166 MHz 333 MHz 2,7 GB/s 5,4 GB/s DDR-400 PC-3200 200 MHz 200 MHz 400 MHz 3,2 GB/s 6,4 GB/s ²) Geschwindigkeit der Anbindung an den Speichercontroller von CPU oder Mainboard Chip Modul Speichertakt I/O-Takt ² Effektiver Takt ³ Übertragung srate pro Modul Übertragung srate Dual- Channel DDR2-400 PC2-3200 100 MHz 200 MHz 400 MHz 3,2 GB/s 6,4 GB/s DDR2-533 PC2-4200 133 MHz 266 MHz 533 MHz 4,2 GB/s 8,4 GB/s DDR2-667 PC2-5300 166 MHz 333 MHz 667 MHz 5,3 GB/s 10,6 GB/s DDR2-800 PC2-6400 200 MHz 400 MHz 800 MHz 6,4 GB/s 12,8 GB/s DDR2-1066 PC2-8500 266 MHz 533 MHz 1066 MHz 8,5 GB/s 17,0 GB/s
1.5 Ein-/Ausgabesystem Einführung Bus Schematische Darstellung Bus in einem PC Verbindet Peripherie, Speicher, CPU miteinander Strukturelle Unterteilung Funktionale Unterteilung Wichtig Bus-Arbitrierer (nicht gezeigt), teilt Bus Komponente zu
1.5 Ein-/Ausgabesystem Einführung Bus Alternative zu Bus? Bus: im Prinzip alle an einer Leitung Netzwerk mit Punkt-zu-Punkt-Verbindungen (P2P; Point-to-Point) und Vermittlungsknoten (Routerknoten) dazwischen: Routerknoten
1.5.1 Ein-/Ausgabesystem Einführung Bus CPU-nahe oder lokale Peripheriebusse (schnelle Peripheriebusse) Früher AGP und PCI bzw. PCI-X (für Server), mittlerweile PCI-Express (PCIe) Standard
1.5.3 PCI lokale Peripheriebusse PCI-Bus (Peripheral Component Interface) Von Intel als adäquates Bussystem für Pentium entwickelt Bustakt synchron zum CPU-Takt und maximal 33/66 MHz Busbreite von 32 bzw. 64 Bit, 188 Kontakte Multiplexing für Adressen und Daten Bei 32-Bit Busbreite maximale Datenübertragungsrate 44 MByte/s (lesen) bzw. 66 MByte/s (schreiben) leistungsfähiger Burst-Modus Maximale Datenübertragungsrate steigt im Burst-Modus bei einem 32- Bit Datenbus auf 133 MByte/s an und auf 266 MByte/s bei einem 64-Bit Datenbus Verwendung von Bridges (im Prinzip Chipset für PCI-Bus) Verbindung zwischen dem PCI-Bus und anderen Bussystemen herstellen (z.b. PCI-to-ISA-Bridge).
1.5.3 PCI lokale Peripheriebusse Ausgeklügeltes Bus-Master- und Slave-Prinzip Ein PCI-Master kann Daten in den Arbeitsspeicher schreiben oder aus ihm lesen, ohne die CPU dafür in Anspruch zu nehmen (DMA-(direct memory access)-prinzip) Ein Slave dagegen kann nur als Empfänger fungieren (z.b. eine Grafikkarte) Vorteilhaft für den Anwender ist die automatische Konfiguration der PCI-Karten Konfiguration über ROM-BIOS Bei Konflikten von Interrupts oder Adressen ändert das BIOS die entsprechenden Werte oder schaltet die Karte nach einer Fehlermeldung ab
1.5.3 PCI lokale Peripheriebusse Hierarchischer Aufbau PCI-Systembus Kopplung PCI-Agenten PCI-Einheiten ISA/EISA-Bus PCI Vorläuferbus Gelegentlich noch zur Ansteuerung langsamerer Einheiten im Einsatz PCI Bridge Unterstützt Burst-Modus
1.5.3 PCI lokale Peripheriebusse Entwicklung PCI
1.5.3 PCI lokale Peripheriebusse Stand der Technik heute PCI-Express PCI-X Bus fast schon Vergangenheit Neue schnelle serielle Verbindungen auf Basis von PCIe Wir stehen vor dem radikalsten Redesign der PC-Plattform seit Einführung des PCI-Busses in den frühen 90er Jahren. P. Glasowsky, Microprocessor Report Von PCI über PCI-X zu PCI-Express Höherer Takt Schnellerer Speicher und langsamerer I/O-Controller ersetzt in einem einzigen Bridge genannten Datenpuffer Große Zahl an Leitungen (82) unpraktisch für viele Punkt-zu-Punkt- Verbindungen PCI Express: weniger, dafür schnelle gemultiplexte Leitungen ( lanes in links )
1.5.3 PCIe lokale Peripheriebusse Unterschied PCI-(X) PCI-Express
1.5.3 PCIe lokale Peripheriebusse Architektur PCI-Express Root, Switches Links, Bridges 2,5-80 GBit/s je nach Anzahl gemultiplexter Leitungen
1.5.4 USB serielle Peripheriebusse USB (Universal Serial Bus)-Bus Stern-Topologie In verschiedenen Ebenen bis zu 127 Geräte anschließbar Jedes Gerät bildet Abschluss des Sterns Steuerung durch USB-Controller Keine direkte Kommunikation zwischen einzelnen USB-Geräten USB-Controller arbeitet als Host Einziges Gerät dem BIOS Interrupt zuweisen muss Zwei Geschwindigkeitsvarianten Anfänge: 1,5 Mbit/s (USB 1.0) bzw. 12 Mbit/s (USB 1.1) Mittlerweile Standard: USB 1.0 mit max. 480 MBit/s USB 3.0 steht bereit: 5.0 Gbit/s hot-plugging -Funktion Geräte können während Betrieb angesteckt, umgesteckt und eingeschalten werden
1.5.5 Chipsätze Chipsätze stellen Schnittstelle des Prozessor-Speicher- Peripherie-Systems
1.7 Kopplung Speicher mit Ein-/Ausgabe 3 grundsätzliche Varianten Programmierte Ein-/Ausgabe Erledigt Prozessor Unterbrechungs-gesteuerte Ein-/Ausgabe Erledigt Prozessor, angestoßen durch Unterbrechung DMA (Direct Memory Access) Initiiert durch Prozessor DMA-Kontroller wickelt Datenaustausch zwischen Hauptspeicher und Peripherie ohne CPU ab
1.7 Steuerung der Ein-/Ausgabe Vorab: Modell für Zugriff auf Ein-/Ausgabemodul
1.7.1 Adressierung Peripherie Zwei Adressierungsmodi für Peripherie üblich Eingeblendeter Speicher (memory mapped) Peripherie adressieren über normale Speicheradressbefehle Isolierte Ein-/Ausgabe (isolated I/O) Peripherie addressieren über gesonderte Befehle (Load I/O, Test I/O, )
1.7.2 Unterbrechungsgesteuerte Ein-/Ausgabe Ablauf bei Unterbrechungen in Hard- und Software PSW: Program status word PC: Program counter
1.7.3 Programmierte Ein-/Ausgabe vs. DMA Ablauf Programmierte Ein-/Ausgabe CPU erledigt alles selbst
1.7.3 Programmierte Ein-/Ausgabe vs. DMA Unterbrechungs-gesteuerte Ein-/Ausgabe CPU wartet auf Interrupt Holt anschließend Daten selbst ab Ablauf DMA CPU erteilt Auftrag an DMA- Controller DMA-Controller wickelt Auftrag komplett ab CPU wird über Interrupt nach Fertigstellung benachrichtigt
1.7.4 DMA-Kopplung DMA-Kopplung Nachteile PIO und Unterbrechungs-gesteuerte Ein-/Ausgabe Ein-/Ausgabe-Transferrate begrenzt durch Zugriffsgeschwindigkeit des Ein-/Ausgabemoduls Prozessor selbst teilweise blockiert Grundlegender Aufbau DMA-Modul
1.7.4 DMA-Kopplung Mögliche DMA-Konfigurationen