Modul InfB-RS: Rechnerstrukturen

Größe: px
Ab Seite anzeigen:

Download "Modul InfB-RS: Rechnerstrukturen"

Transkript

1 Rechnerstrukturen Modul InfB-RS: Rechnerstrukturen lectures/2014ws/vorlesung/rs Kapitel 18 Andreas Mäder Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Technische Aspekte Multimodaler Systeme Wintersemester 2014/2015 A. Mäder 1

2 18 Speicherhierarchie Rechnerstrukturen Kapitel 18 Speicherhierarchie Speichertypen Halbleiterspeicher Festplatten spezifische Eigenschaften Motivation Cache Speicher Virtueller Speicher Literatur A. Mäder 1266

3 18 Speicherhierarchie Rechnerstrukturen Speicherhierarchie: Konzept Smaller, faster, and costlier (per byte) storage devices Larger, slower, and cheaper (per byte) storage devices L5: L4: L3: L2: L0: registers L1: on-chip L1 cache (SRAM) off-chip L2 cache (SRAM) main memory (DRAM) local secondary storage (local disks) remote secondary storage (distributed file systems, Web servers) CPU registers hold words retrieved from L1 cache. L1 cache holds cache lines retrieved from the L2 cache memory. L2 cache holds cache lines retrieved from main memory. Main memory holds disk blocks retrieved from local disks. Local disks hold files retrieved from disks on remote network servers. [BO14] A. Mäder 1267

4 18 Speicherhierarchie Rechnerstrukturen Speicherhierarchie: Konzept (cont.) Gesamtsystem kombiniert verschiedene Speicher I wenige KByte Register (-bank) im Prozessor I einige MByte SRAM als schneller Zwischenspeicher I einige GByte DRAM als Hauptspeicher I einige TByte Festplatte als nichtflüchtiger Speicher I Hintergrundspeicher (CD/DVD/BR, Magnetbänder) I das WWW und Cloud-Services Kompromiss aus Kosten, Kapazität, Zugriffszeit I Illusion aus großem schnellem Speicher I funktioniert nur wegen räumlicher/zeitlicher Lokalität A. Mäder 1268

5 18.1 Speicherhierarchie - Speichertypen Rechnerstrukturen L0: Register I Register im Prozessor integriert I Program-Counter und Datenregister für Programmierer sichtbar I ggf. weitere Register für Systemprogrammierung I zusätzliche unsichtbare Register im Steuerwerk I Flipflops oder Registerbank mit 6 Trans.-Speicherzellen I Lesen und Schreiben in jedem Takt möglich I ggf. mehrere parallele Lesezugriffe in jedem Takt I Zugriffszeiten ca. 100 ps I typ. Größe einige KByte, z.b. 16 Register á 64-bit x86-64 A. Mäder 1269

6 18.1 Speicherhierarchie - Speichertypen Rechnerstrukturen L1-L3: Halbleiterspeicher RAM I Random-Access Memory (RAM) aufgebaut aus Mikrochips I Grundspeichereinheit ist eine Zelle (ein Bit pro Zelle) I SRAM (6T-Zelle) oder DRAM (1T-Zelle) Technologie I mehrere RAM Chips bilden einen Speicher A. Mäder 1270

7 18.1 Speicherhierarchie - Speichertypen Rechnerstrukturen L4: Festplatten I dominierende Technologie für nichtflüchtigen Speicher I hohe Speicherkapazität, derzeit einige TB I Daten bleiben beim Abschalten erhalten I aber langsamer Zugriff I besondere Algorithmen, um langsamen Zugriff zu verbergen I I Einsatz als Speicher für dauerhafte Daten Einsatz als erweiterter Hauptspeicher ( virtual memory ) I FLASH/SSD zunehmend als Ersatz für Festplatten I Halbleiterspeicher mit sehr effizienten multibit-zellen I Verwaltung (derzeit) wie Festplatten I signifikant schnellere Zugriffszeiten A. Mäder 1271

8 18.1 Speicherhierarchie - Speichertypen Rechnerstrukturen L5: Hintergrundspeicher I enorme Speicherkapazität I langsame Zugriffszeiten I Archivspeicher und Backup für (viele) Festplatten I Magnetbänder I RAID-Verbund aus mehreren Festplatten I optische Datenspeicher: CD-ROM, DVD-ROM, BlueRay I WWW und Internet-Services, Cloud-Services I Cloud-Farms ggf. ähnlich schnell wie L4 Festplatten, da Netzwerk schneller als der Zugriff auf eine lokale Festplatte I in dieser Vorlesung nicht behandelt A. Mäder 1272

9 18.1 Speicherhierarchie - Speichertypen Rechnerstrukturen Speicherhierarchie: zwei Beispiele [HP12] A. Mäder 1273

10 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Random-Access Memory / RAM SRAM statisches RAM I jede Zelle speichert Bit mit einer 6-Transistor Schaltung I speichert Wert solange er mit Energie versorgt wird I unanfällig für Störungen wie elektrische Brummspannungen I schneller und teurer als DRAM DRAM dynamisches RAM I jede Zelle speichert Bit mit 1 Kondensator und 1 Transistor I der Wert muss alle ms aufgefrischt werden I anfällig für Störungen I langsamer und billiger als SRAM A. Mäder 1274

11 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen SRAM vs. DRAM SRAM DRAM Zugriffszeit 5 50 ns ns t rac ns t cac ns t cyc Leistungsaufnahme mw mw Speicherkapazität < 72 Mbit < 4 Gbit Preis 10 /Mbit 0,1 Ct./Mbit Tran. Access per bit time Persist? Sensitive? Cost Applications SRAM 6 1X Yes No 100x cache memories DRAM 1 10X No Yes 1X Main memories, frame buffers [BO14] A. Mäder 1275

12 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen DRAM Organisation I (d w) DRAM: organisiert als d-superzellen mit w-bits 16 x 8 DRAM chip cols [BO14] (to CPU) memory controller 2 / addr 8 / data 0 1 rows 2 3 supercell (2,1) internal row buffer A. Mäder 1276

13 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Lesen der DRAM Zelle (2,1) 1.a Row Access Strobe (RAS) wählt Zeile 2 1.b Zeile aus DRAM Array in Zeilenpuffer ( Row Buffer ) kopieren memory controller RAS = 2 2 / addr 16 x 8 DRAM chip 0 1 rows 2 cols [BO14] 8 / data 3 internal row buffer A. Mäder 1277

14 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Lesen der DRAM Zelle (2,1) (cont.) 2.a Column Access Strobe (CAS) wählt Spalte 1 2.b Superzelle (2,1) aus Buffer lesen und auf Datenleitungen legen to CPU memory controller CAS = 1 2 / addr 16 x 8 DRAM chip 0 1 rows 2 cols [BO14] supercell (2,1) 8 / data 3 supercell (2,1) internal row buffer A. Mäder 1278

15 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Speichermodule addr (row = i, col = j) DRAM 7 DRAM 0 : supercell (i,j) 64 MB memory module consisting of eight 8Mx8 DRAMs bits bits bits bits bits bits bits 8-15 bits bit doubleword at main memory address A 0 Memory controller 64-bit doubleword [BO14] A. Mäder 1279

16 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Nichtflüchtige Speicher I DRAM und SRAM sind flüchtige Speicher I Informationen gehen beim Abschalten verloren I nichtflüchtige Speicher speichern Werte selbst wenn sie spannungslos sind I allgemeiner Name ist Read-Only-Memory (ROM) I irreführend, da einige ROMs auch verändert werden können I Arten von ROMs I PROM: programmierbarer ROM I EPROM: Eraseable Programmable ROM löschbar (UV Licht), programmierbar I EEPROM: Electrically Eraseable PROM elektrisch löschbarer PROM I Flash Speicher A. Mäder 1280

17 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Nichtflüchtige Speicher (cont.) Anwendungsbeispiel: nichtflüchtige Speicher I Firmware I Programm wird in einem ROM gespeichert I Boot Code, BIOS ( Basic Input/Output System ) I Grafikkarten, Festplattencontroller A. Mäder 1281

18 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Bussysteme verbinden CPU und Speicher I Bus: Bündel paralleler Leitungen I es gibt mehr als eine Quelle Tristate-Treiber I Busse im Rechner I zur Übertragung von Adressen, Daten und Kontrollsignalen I werden üblicherweise von mehreren Geräten genutzt CPU chip register file ALU system bus memory bus bus interface I/O bridge main memory [BO14] A. Mäder 1282

19 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen lesender Speicherzugriff 1. CPU legt Adresse A auf den Speicherbus register file Load operation: movl A, %eax %eax ALU bus interface I/O bridge A main memory 0 x A [BO14] A. Mäder 1283

20 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen lesender Speicherzugriff (cont.) 2.a Hauptspeicher liest Adresse A vom Speicherbus 2.b " ruft das Wort x unter der Adresse A ab 2.c " legt das Wort x auf den Bus register file Load operation: movl A, %eax %eax ALU bus interface I/O bridge x main memory 0 x A [BO14] A. Mäder 1284

21 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen lesender Speicherzugriff (cont.) 3.a CPU liest Wort x vom Bus 3.b " kopiert Wert x in Register %eax register file Load operation: movl A, %eax %eax x ALU I/O bridge main memory 0 bus interface x A [BO14] A. Mäder 1285

22 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen schreibender Speicherzugriff 1 CPU legt die Adresse A auf den Bus 2.b Hauptspeicher liest Adresse 2.c " wartet auf Ankunft des Datenworts register file Store operation: movl %eax, A %eax y ALU bus interface I/O bridge A main memory 0 A [BO14] A. Mäder 1286

23 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen schreibender Speicherzugriff (cont.) 3. CPU legt Datenwort y auf den Bus register file Store operation: movl %eax, A %eax y ALU bus interface I/O bridge y main memory 0 A [BO14] A. Mäder 1287

24 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen schreibender Speicherzugriff (cont.) 4.a Hauptspeicher liest Datenwort y vom Bus 4.b " speichert Datenwort y unter Adresse A register file Store operation: movl %eax, A %eax y ALU I/O bridge main memory 0 bus interface y A [BO14] A. Mäder 1288

25 Speicherhierarchie - Speichertypen - Halbleiterspeicher Rechnerstrukturen Speicheranbindung DMA DMA Direct Memory Access I eigener Controller zum Datentransfer + Speicherzugriffe unabhängig von der CPU + CPU kann lokal (Register und Cache) weiterrechnen CPU DMA controller Addr Arbiter Data Memory I/O device ACK REQ A. Mäder 1289

26 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplattengeometrie I Platten mit jeweils zwei Oberflächen ( surfaces ) I Spuren als konzentrische Ringe auf den Oberflächen ( tracks ), I jede Spur unterteil in Sektoren ( sectors ), kurze Lücken ( gaps ) dienen zur Synchronisierung tracks surface track k gaps spindle sectors [BO14] A. Mäder 1290

27 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplattengeometrie (cont.) I untereinander liegende Spuren (mehrerer Platten) bilden einen Zylinder cylinder k surface 0 surface 1 surface 2 surface 3 surface 4 surface 5 platter 0 platter 1 platter 2 spindle [BO14] A. Mäder 1291

28 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplattenkapazität I Kapazität: Höchstzahl speicherbarer Bits I bestimmende technologische Faktoren I Aufnahmedichte [bits/in]: # Bits / 1-Inch Segment einer Spur I Spurdichte [tracks/in]: # Spuren / 1-Inch (radial) I Flächendichte [bits/in 2 ]: Aufnahme- Spurdichte I I limitiert durch minimal noch detektierbare Magnetisierung sowie durch Positionierungsgenauigkeit der Köpfe I Spuren unterteilt in getrennte Zonen ( recording zones ) I jede Spur einer Zone hat gleichviel Sektoren (festgelegt durch die Ausdehnung der innersten Spur) I jede Zone hat unterschiedlich viele Sektoren/Spuren A. Mäder 1292

29 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplattenkapazität (cont.) I Kapazität = Bytes/Sektor? Sektoren/Spur Spuren/Oberfläche Oberflächen/Platten Platten/Festplatte I Beispiel I 512 Bytes/Sektor I 300 Sektoren/Spuren (im Durchschnitt) I Spuren/Oberfläche I 2 Oberflächen/Platten I 5 Platten/Festplatte Kapazität = = = 30,72 GB uraltes Modell A. Mäder 1293

30 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplatten-Operation I Ansicht einer Platte Umdrehung mit konstanter Geschwindigkeit spindle Schreib/Lese Kopf ist an Arm befestigt fliegt auf Luftpolster über Plattenoberfläche radiale Bewegung des Arms positioniert Kopf auf Spuren [BO14] A. Mäder 1294

31 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplatten-Operation (cont.) I Ansicht mehrerer Platten arm Schreib/Lese Köpfe werden gemeinsam auf Zylindern positioniert spindle [BO14] A. Mäder 1295

32 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplatten-Zugriffszeit Durchschnittliche (avg) Zugriffszeit auf einen Zielsektor wird angenähert durch I T Zugrif f = T avgsuche + T avgrotationslatenz + T avgt ransf er Suchzeit (T avgsuche ) I Zeit in der Schreib-Lese Köpfe ( heads ) über den Zylinder mit dem Targetsektor positioniert werden I üblicherweise T avgsuche = 8 ms A. Mäder 1296

33 Universität Hamburg Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplatten-Zugriffszeit (cont.) Rotationslatenzzeit (T avgrotationslatenz ) I Wartezeit, bis das erste Bit des Targetsektors unter dem Schreib-Lese-Kopf durchrotiert I T avgrotationslatenz = 1/2 1/RPMs 60 Sek/1 Min I typische Drehzahlen, rotations per minute, sind RPM (desktop.. server) T avgrotation 5:5 ms ms Transferzeit (T avgt ransf er ) I Zeit, in der die Bits des Targetsektors gelesen werden I T avgt ransf er = 1/RPM 1/(Durchschn. # Sektoren/Spur) 60 Sek/1 Min A. Mäder 1297

34 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplatten-Zugriffszeit (cont.) Beispiel für Festplatten-Zugriffszeit I Umdrehungszahl = RPM ( Rotations per Minute ) I Durchschnittliche Suchzeit = 8 ms I Avg # Sektoren/Spur = 400 T avgrotationslatenz = 1/2 (60 Sek/7 200 RPM) ms/sek = 4 ms T avgt ransf er = 60/7 200 RPM 1/400 Sek/Spur ms/sek = 0,02 ms T avgzugrif f = 8 ms + 4 ms + 0,02 ms 12 ms A. Mäder 1298

35 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Festplatten-Zugriffszeit (cont.) Fazit I Zugriffszeit wird von Such- und Rotationslatenzzeit dominiert I erstes Bit eines Sektors ist das teuerste, der Rest ist quasi umsonst I typische Dauertransferraten aktueller Festplatten sind im Bereich 50 : : : 200 MB/s I SRAM Zugriffszeit ist ca. 4 ns/64 bit, DRAM ca. 60 ns I Kombination aus Zugriffszeit und Datentransfer I Festplatte ist ca mal langsamer als SRAM I mal langsamer als DRAM hoher Aufwand in Hardware und Betriebssystem, um dieses Problem (weitgehend) zu vermeiden A. Mäder 1299

36 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Logische Festplattenblöcke I abstrakte Benutzersicht der komplexen Sektorengeometrie I verfügbare Sektoren werden als Sequenz logischer Blöcke der Größe b modelliert (0,1,2,..,n) I typische Blockgröße war jahrzehntelang b = 512 Bytes I neuere Festplatten zunehmend mit b = 4096 Bytes I Abbildung der logischen Blöcke auf die tatsächlichen (physikalischen) Sektoren I durch Hard-/Firmware Einheit (Festplattencontroller) I konvertiert logische Blöcke zu Tripeln (Oberfläche, Spur, Sektor) I Controller kann für jede Zone Ersatzzylinder bereitstellen Unterschied zwischen formatierter- und maximaler Kapazität A. Mäder 1300

37 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Lesen eines Festplattensektors 1. CPU initiiert Lesevorgang von Festplatte I schreibt auf Port (Adresse) des Festplattencontrollers: Befehl, logische Blocknummer, Zielspeicheradresse register file ALU bus interface CPU chip I/O bridge I/O bus main memory USB controller graphics adapter disk controller mouse keyboard monitor disk [BO14] A. Mäder 1301

38 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Lesen eines Festplattensektors (cont.) 2. Festplattencontroller liest den Sektor aus 3. " führt DMA-Zugriff auf Hauptspeicher aus register file ALU bus interface CPU chip I/O bridge I/O bus main memory USB controller graphics adapter disk controller mouse keyboard monitor disk [BO14] A. Mäder 1302

39 Speicherhierarchie - Speichertypen - Festplatten Rechnerstrukturen Lesen eines Festplattensektors (cont.) 4. Festplattencontroller löst Interrupt aus register file ALU bus interface CPU chip I/O bridge I/O bus main memory USB controller graphics adapter disk controller mouse keyboard monitor disk [BO14] A. Mäder 1303

40 Speicherhierarchie - Speichertypen - spezifische Eigenschaften Rechnerstrukturen Eigenschaften der Speichertypen I Speicher Vorteile Nachteile Register sehr schnell sehr teuer SRAM schnell teuer, große Chips DRAM hohe Integration Refresh nötig, langsam Platten billig, Kapazität sehr langsam, mechanisch I Beispiel Hauptspeicher Festplatte SSD Latenz 8 ns 4 ms 0,2/0,4 ms Bandbreite 38,4 GB/sec 750 MB/sec (triple Channel) typ.: < Kosten/GB 5 4 ct. 70 ct. 1 TB, 40 A. Mäder 1304

41 18.2 Speicherhierarchie - Motivation Rechnerstrukturen Speed [log MHz] GHz 2.2GHz P DEC Alpha first 1GHz CPU Research internal CPU Clock PentiumIII external BUS Clock Processor- Memory Gap PC MC68030 i860 PCI 1/tacc 25ns in page SDRAM PC133 IO Processor- I/O Gap PCI-X 133MHz 20 40ns 1/tacc 60ns random 10 '90 '92 '94 '96 ' '02 Year A. Mäder 1305

42 18.2 Speicherhierarchie - Motivation Rechnerstrukturen Speicherhierarchie Motivation I Geschwindigkeit der Prozessoren I Kosten für den Speicherplatz I permanente Speicherung I I I magnetisch optisch mechanisch CPU Register Files 1st-Level Cache External Processor Interface 2nd-Level Cache Main Memory Disk Storage A. Mäder 1306

43 18.2 Speicherhierarchie - Motivation Rechnerstrukturen Speicherhierarchie (cont.) I schnelle vs. langsame Speichertechnologie schnell : hohe Kosten/Byte geringe Kapazität langsam : geringe " hohe " I wachsender Abstand zwischen CPU und Speichergeschwindigkeit I Prozessor läuft mit einigen GHz Takt I Register können mithalten, aber nur einige KByte Kapazität I DRAM braucht ns für Zugriff: 100 langsamer I Festplatte braucht 10 ms für Zugriff: langsamer I Lokalität der Programme wichtig I aufeinanderfolgende Speicherzugriffe sind meistens lokal I gut geschriebene Programme haben meist eine gute Lokalität Motivation für spezielle Organisation von Speichersystemen Speicherhierarchie A. Mäder 1307

44 18.2 Speicherhierarchie - Motivation Rechnerstrukturen Verwaltung der Speicherhierarchie I Register Memory I Compiler I Assembler-Programmierer I Cache Memory I Hardware I Memory Disk I Hardware und Betriebssystem (Paging) I Programmierer (Files) A. Mäder 1308

45 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache CS420/520 memory.3 UC. Colorado Springs Adapted from UCB97 & UCB03 I Memory Who Cares Wall : About DRAM the Memory zu langsam Hierarchy? für CPU Performance Processor-DRAM Memory Gap (latency) Moore s Law Year µproc 55%/yr. (2X/1.5yr) DRAM 7-9%/yr. (2X/10 yrs) A. Mäder 1309 CS420/520 memory.4 UC. Colorado Springs Adapted from UCB97 & UCB CPU Processor-Memory Performance Gap: (grows 50% / year) DRAM [PH14]

46 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache (cont.) Cache als schneller Zwischenspeicher zum Hauptspeicher I technische Realisierung: SRAM I transparenter Speicher I Cache ist für den Programmierer nicht sichtbar! I wird durch Hardware verwaltet I I enthält Hauptspeicherblöcke mit erhöhter Zugriffswahrscheinlichkeit I ggf. getrennte Caches für Befehle und Daten I basiert auf Prinzip der Lokalität von Speicherzugriffen durch ein laufendes Programm A. Mäder 1310

47 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache (cont.) I CPU referenziert Adresse I parallele Suche in L1 (level 1), L2... und Hauptspeicher I erfolgreiche Suche liefert Datum, Abbruch laufender Suchen CPU chip register file L1 ALU cache cache bus system bus memory bus L2 cache bus interface I/O bridge main memory [BO14] A. Mäder 1311

48 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen gemeinsamer Cache / unified Cache [Fur00] A. Mäder 1312

49 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen separate Instruction-/Data Caches [Fur00] A. Mäder 1313

50 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Position I First- und Second-Level Cache A. Mäder 1314

51 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Position (cont.) I Virtueller Cache + Adressumrechnung durch MMU oft nicht nötig Cache leeren bei Kontextwechseln A. Mäder 1315

52 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Position (cont.) I Physikalischer Cache + Cache muss nie geleert werden Adressumrechnung durch MMU immer nötig A. Mäder 1316

53 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Position (cont.) I typische Cache Organisation I First-Level Cache: getrennte Instruktions- und Daten-Caches I Second-Level Cache: gemeinsamer Cache je Prozessorkern I Third-Level Cache: gemeinsamer Cache für alle Prozessorkerne I bei mehreren Prozessoren / Prozessorkernen Cache-Kohärenz wichtig I gemeinsam genutzte Daten konsistent halten (s.u.) A. Mäder 1317

54 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Strategie Cachestrategie: Welche Daten sollen in den Cache? Diejenigen, die bald wieder benötigt werden! I temporale Lokalität: die Daten, die zuletzt häufig gebraucht wurden I räumliche Lokalität: die Daten, die nahe den zuletzt gebrauchten liegen I verschiedene Platzierungs-, Ersetzungs- und Rückschreibestategien für den Cache A. Mäder 1318

55 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Performanz Cacheperformanz I Begriffe Treffer (Hit) Zugriff auf Datum, ist bereits im Cache Fehler (Miss) " ist nicht " Treffer-Rate R Hit Wahrscheinlichkeit, Datum ist im Cache Fehler-Rate R Miss 1 R Hit Hit-Time T Hit Zeit, bis Datum bei Treffer geliefert wird Miss-Penalty T Miss zusätzlich benötigte Zeit bei Fehler I Mittlere Speicherzugriffszeit = T Hit + R Miss T Miss I Beispiel T Hit = 1 T akt, T Miss = 20 T akte, R Miss = 5 % Mittlere Speicherzugriffszeit = 2 T akte A. Mäder 1319

56 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Organisation I Cache ist ein Array von Speicher-Bereichen ( sets ) I jeder Bereich enthält eine oder mehrere Zeilen I jede Zeile enthält einen Datenblock I jeder Block enthält mehrere Byte 1 valid bit t tag bits per line per line B = 2 b bytes per cache block set 0: valid valid tag tag B 1 B 1 E lines per set valid tag 0 1 B 1 S = 2 s sets set 1: valid tag 0 1 B 1 valid tag 0 1 B 1 set S-1: valid tag 0 1 B 1 Cache size: C = B x E x S data bytes A. Mäder 1320

57 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Organisation (cont.) 1 valid bit per line t tag bits per line B = 2 b bytes per cache block set 0: valid valid tag tag B 1 B 1 E lines per set valid tag 0 1 B 1 S = 2 s sets set 1: valid tag 0 1 B 1 valid tag 0 1 B 1 set S-1: valid tag 0 1 B 1 [BO14] A. Mäder 1321

58 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Adressierung von Caches I Adressteil set index von A bestimmt Bereich ( set ) I Adresse A ist im Cache, wenn 1. Cache-Zeile ist als gültig markiert ( valid ) 2. Adressteil tag von A = tag Bits des Bereichs Address A: t bits s bits b bits set 0: v v tag tag B 1 B 1 m-1 <tag> <set index> <block offset> 0 set 1: v v tag tag B 1 B 1 v tag 0 1 B 1 set S-1: v tag 0 1 B 1 [BO14] A. Mäder 1322

59 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Adressierung von Caches (cont.) I Cache-Zeile ( cache line ) enthält Datenbereich von 2 b Byte I gesuchtes Wort mit Offset block offset Address A: t bits s bits b bits set 0: v v tag tag B 1 B 1 m-1 <tag> <set index> <block offset> 0 set 1: v v tag tag B 1 B 1 v tag 0 1 B 1 set S-1: v tag 0 1 B 1 [BO14] A. Mäder 1323

60 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Organisation I Welchen Platz im Cache belegt ein Datum des Hauptspeichers? I drei Verfahren direkt abgebildet / direct mapped jeder Speicheradresse ist genau eine Cache-Speicherzelle zugeordnet n-fach bereichsassoziativ / set associative jeder Speicheradresse ist eine von E möglichen Cache-Speicherzellen zugeordnet voll-assoziativ jeder Speicheradresse kann jede beliebige Cache-Speicherzelle zugeordnet werden A. Mäder 1324

61 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: direkt abgebildet / direct mapped I jeder Adresse ist genau eine Speicherzelle im Cache zugeordnet Cache Memory [PH14] A. Mäder 1325

62 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: direkt abgebildet / direct mapped (cont.) I verfügt über genau 1 Zeile pro Bereich S Bereiche (Sets) set 0: valid tag cache block E=1 lines per set set 1: valid tag cache block set S-1: valid tag cache block [BO14] + einfachste Cache-Art + große Caches möglich Effizienz, z.b. Zugriffe auf A, A + n S Cache Thrashing A. Mäder 1326

63 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: direkt abgebildet / direct mapped (cont.) Zugriff auf direkt abgebildete Caches 1. Bereichsauswahl durch Bits set index set 0: valid tag cache block selected set set 1: valid tag cache block m-1 t bits tag s bits b bits set index block offset set S-1: valid tag cache block [BO14] A. Mäder 1327

64 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: direkt abgebildet / direct mapped (cont.) 2. valid : sind die Daten gültig? 3. Line matching : stimmt tag überein? 4. Wortselektion extrahiert Wort unter Offset block offset =1? (1) The valid bit must be set selected set (i): w 0 w 1 w 2 w 3 (2) The tag bits in the cache line must match the tag bits in the address m-1 =? t bits 0110 tag s bits b bits i set index block offset (3) If (1) and (2), then cache hit, and block offset selects starting byte. [BO14] A. Mäder 1328

65 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: direkt abgebildet / direct mapped (cont.) Prinzip [Fur00] A. Mäder 1329

66 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel leer r7 IR Memory a CPU r0 Cache PC a add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) a a a a a s7 s6 s5 s4 s3 s2 s1 s0 v tag b=3 b=2 b=1 b= c abcd cafe babe address 31 <tag> <s> <b> beef aaaa A. Mäder 1330

67 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch miss r7 IR Memory a CPU r0 Cache PC a add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) a a a a a s7 s6 s5 s4 s3 s2 s1 s0 v tag b=3 b=2 b=1 b= c abcd cafe babe load r2, 8(r1) fetch cache miss (empty, all invalid) beef aaaa A. Mäder 1331

68 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch fill r7 IR Memory a CPU r0 Cache a s7 s6 s5 s4 s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) v tag PC b=3 load r2,8(r1) b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a load r2, 8(r1) fetch fill cache set s0 from memory beef aaaa A. Mäder 1332

69 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch r7 IR load r2,8(r1) Memory a CPU r0 Cache a s7 s6 s5 s4 s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) v tag PC b=3 load r2,8(r1) b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a load r2, 8(r1) fetch load instruction into IR beef aaaa A. Mäder 1333

70 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute miss r7 IR load r2,8(r1) Memory a CPU r0 Cache a s7 s6 s5 s4 s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) v tag PC b=3 load r2,8(r1) b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a load r2, 8(r1) fetch load instruction into IR execute cache miss beef aaaa A. Mäder 1334

71 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute fill r7 IR load r2,8(r1) Memory a CPU r0 Cache a s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v tag PC b=3 b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a load r2, 8(r1) fetch load instruction into IR execute fill cache set s4 from memory beef aaaa A. Mäder 1335

72 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute r7 IR load r2,8(r1) Memory a CPU r0 Cache a s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v tag PC b=3 b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a load r2, 8(r1) fetch load instruction into IR execute load value into r2 beef aaaa A. Mäder 1336

73 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch hit r7 IR load r3,4(r1) Memory a CPU r0 Cache s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v tag PC b=3 a b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a load r3, 4(r1) fetch cache hit, load instruction into IR beef aaaa A. Mäder 1337

74 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute hit r7 IR load r3,4(r1) Memory a CPU r0 Cache s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v tag PC b=3 a b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a load r3, 4(r1) fetch execute cache hit, load instruction into IR cache hit, load value into r3 beef aaaa A. Mäder 1338

75 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch hit r7 IR add r5,r2,r3 Memory a CPU r0 Cache s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v tag PC b=3 a b=2 b=1 b=0 add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a add r5,r2,r3 fetch cache hit, load instruction into IR beef aaaa A. Mäder 1339

76 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute hit CPU r7 r0 Cache s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v C tag IR PC b=3 add r5,r2,r3 a b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a add r5,r2,r3 fetch execute cache hit, load instruction into IR no memory access beef aaaa A. Mäder 1340

77 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch hit CPU r7 r0 Cache s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v c tag IR PC b=3 load r6,-4(r1) a c b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a load r6,-4(r1) fetch cache hit, load instruction into IR beef aaaa A. Mäder 1341

78 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute miss CPU r7 r0 Cache s7 s6 s5 s c s3 s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v c tag C IR PC b=3 load r6,-4(r1) a c b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a load r6,-4(r1) fetch execute cache hit, load instruction into IR cache miss beef aaaa A. Mäder 1342

79 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute fill CPU r7 r0 Cache s7 s6 s5 s c s abcd cafe babe s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v c tag C IR PC b=3 load r6,-4(r1) a c b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a load r6,-4(r1) fetch execute cache hit, load instruction into IR fill cache set s3 from memory beef aaaa A. Mäder 1343

80 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel execute CPU r7 r0 Cache s7 s6 s5 s c s abcd cafe babe s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v c tag C IR PC b=3 load r6,-4(r1) a c b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a load r6,-4(r1) fetch execute cache hit, load instruction into IR load value into r6 beef aaaa A. Mäder 1344

81 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch miss CPU r7 r0 Cache s7 s6 s5 s c s abcd cafe babe s2 s1 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v c tag IR PC b=3 load r6,-4(r1) a b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a add r7,r2,r6 fetch cache miss beef aaaa A. Mäder 1345

82 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch fill CPU r7 r0 Cache s7 s6 s5 s c s abcd cafe babe s2 s1 1 a add r7,r2,r6 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v c tag IR PC b=3 load r6,-4(r1) a b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a add r7,r2,r6 fetch fill cache set s1 from memory beef aaaa A. Mäder 1346

83 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Direct mapped cache: Beispiel fetch CPU r7 r0 Cache s7 s6 s5 s c s abcd cafe babe s2 s1 1 a add r7,r2,r6 s0 1 a load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) v c tag IR PC b=3 add r7,r2,r6 a b=2 b=1 b=0 Memory add r7,r2,r6 load r6,-4(r1) add r5,r2,r3 load r3,4(r1) load r2,8(r1) c abcd cafe babe a a a a a a add r7,r2,r6 fetch load instruction into IR beef aaaa A. Mäder 1347

84 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: bereichsassoziativ / set associative I jeder Speicheradresse ist ein Bereich S mit mehreren (E) Cachezeilen zugeordnet I n-fach assoziative Caches: E=2, 4 2-way set associative cache, 4-way set 0: valid tag cache block valid tag cache block E=2 lines per set set 1: valid tag cache block valid tag cache block set S-1: valid tag cache block valid tag cache block [BO14] A. Mäder 1348

85 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: bereichsassoziativ / set associative (cont.) Zugriff auf n-fach assoziative Caches 1. Bereichsauswahl durch Bits set index set 0: valid valid tag tag cache block cache block Selected set set 1: valid valid tag tag cache block cache block m-1 t bits tag s bits b bits set index block offset set S-1: valid valid tag tag cache block cache block [BO14] A. Mäder 1349

86 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: bereichsassoziativ / set associative (cont.) 2. valid : sind die Daten gültig? 3. Line matching : Cache-Zeile mit passendem tag finden? dazu Vergleich aller tags des Bereichs set index 4. Wortselektion extrahiert Wort unter Offset block offset =1? (1) The valid bit must be set selected set (i): w 0 w 1 w 2 w 3 (2) The tag bits in one of the cache lines must match the tag bits in the address m-1 =? t bits 0110 tag s bits b bits i set index block offset (3) If (1) and (2), then cache hit, and block offset selects starting byte. [BO14] A. Mäder 1350

87 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: bereichsassoziativ / set associative (cont.) Prinzip [Fur00] A. Mäder 1351

88 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache: voll-assoziativ I jeder Adresse des Speichers kann jede beliebige Cachezeile zugeordnet werden I Spezialfall: nur ein Cachebereich S benötigt E-Vergleicher nur für sehr kleine Caches realisierbar A. Mäder 1352

89 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Dimensionierung Address A: t bits s bits b bits set 0: v v tag tag B 1 B 1 m-1 <tag> <set index> <block offset> 0 set 1: v v tag tag B 1 B 1 v tag 0 1 B 1 set S-1: v tag 0 1 B 1 I Parameter: S, B, E [BO14] A. Mäder 1353

90 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Dimensionierung (cont.) I Cache speichert immer größere Blöcke / Cache-Line I Wortauswahl durch block offset in Adresse + nutzt räumliche Lokalität aus + Breite externe Datenbusse + nutzt Burst-Adressierung des Speichers: Adresse nur für erstes Wort vorgeben, dann automatisches Inkrement + kürzere interne Cache-Adressen A. Mäder 1354

91 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Dimensionierung (cont.) Cache- und Block-Dimensionierung I Blockgröße klein, viele Blöcke + kleinere Miss-Penalty + temporale Lokalität räumliche Lokalität I Blockgröße groß, wenig Blöcke größere Miss-Penalty temporale Lokalität + räumliche Lokalität [PH14] A. Mäder 1355

92 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Dimensionierung (cont.) 25% 20% 1k 4k 16k 64k 256k Miss rate 15% 10% 5% 0% Block size I Block-Size: Byte L1-Cache: KiByte L2-Cache: KiByte [HP12] A. Mäder 1356

93 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Dimensionierung: relative Performanz [Fur00] A. Mäder 1357

94 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Drei Typen von Cache-Misses I cold miss I Cache ist (noch) leer I conflict miss I wenn die Kapazität des Cache eigentlich ausreicht, aber unterschiedliche Daten in den selben Block abgebildet werden I Beispiel für Trashing beim direct-mapped Cache mit S=8: abwechselnder Zugriff auf Blöcke 0, 8, 0, 8, 0, 8, ist jedesmal ein Miss I capacity miss I wenn die Menge der aktiven Blöcke ( working set ) größer ist als die Kapazität des Cache A. Mäder 1358

95 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Ersetzungsstrategie Wenn der Cache gefüllt ist, welches Datum wird entfernt? I zufällige Auswahl I LRU (Least Recently Used): der älteste nicht benutzte Cache Eintrag I echtes LRU als Warteschlange realisiert I Pseudo LRU mit baumartiger Verwaltungsstruktur: Zugriff wird paarweise mit einem Bit markiert, die Paare wieder zusammengefasst usw. I LFU (Least Frequently Used): der am seltensten benutzte Cache Eintrag I durch Zugriffszähler implementiert A. Mäder 1359

96 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Schreibstrategie Wann werden modifizierte Daten des Cache zurückgeschrieben? I Write-Through: beim Schreiben werden Daten sofort im Cache und im Hauptspeicher modifiziert + andere Bus-Master sehen immer den richtigen Speicherinhalt: Cache-Kohärenz Werte werden unnötig oft in Speicher zurückgeschrieben I Write-Back: erst in den Speicher schreiben, wenn Datum des Cache ersetzt werden würde + häufig genutzte Werte (z.b. lokale Variablen) werden nur im Cache modifiziert Cache-Kohärenz ist nicht gegeben spezielle Befehle für Cache-Flush non-cacheable Speicherbereiche A. Mäder 1360

97 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache-Kohärenz I Daten zwischen Cache und Speicher konsistent halten I notwendig wenn mehrere Einheiten (Bus-Master) auf Speicher zugreifen können: Symmetric Multiprocessing I Harvard-Architektur hat getrennte Daten- und Instruktions-Speicher I Instruktionen sind read-only einfacherer Instruktions-Cache kein Cache-Kohärenz Problem A. Mäder 1361

98 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache-Kohärenz (cont.) I Cache-Kohärenz Protokolle und Snooping I alle Prozessoren(P 1, P 2 ) überwachen alle Bus-Transaktionen Cache schnüffelt am Speicherbus I Prozessor P2 greift auf Daten zu, die im Cache von P 1 liegen P 2 Schreibzugriff P 1 Cache aktualisieren / ungültig machen P 2 Lesezugriff P 1 Cache liefert Daten I Was ist mit gleichzeitige Zugriffen von P 1, P 2? I viele verschiedene Protokolle: Hersteller- / Prozessor-spezifisch I SI ( Write Through ) I MSI, MOSI, I MESI: Modified, Exclusive, Shared, Invalid I MOESI: Modified (exclusive), Owned (Modified shared), Exclusive, Shared, Invalid I A. Mäder 1362

99 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen MESI Protokoll I Caches enthalten Wert, Tag und zwei Statusbits für die vier Protokollzustände I Modified: Exclusive: Shared: Invalid: gültiger Wert, nur in diesem Cache, gegenüber Hauptspeicher-Wert verändert gültiger Wert, nur in diesem Cache (unmodified) gültiger Wert, in mehreren Caches vorhanden (unmodified) ungültiger Inhalt, Initialzustand I alle Prozessoren überwachen alle Bus-Transaktionen I bei Speicherzugriffen Aktualisierung des Status A. Mäder 1363

100 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen MESI Protokoll (cont.) I Zugriffe auf modified -Werte werden erkannt: 1. fremde Bus-Transaktion unterbrechen 2. eigenen (=modified) Wert zurückschreiben 3. Status auf shared ändern 4. unterbrochene Bus-Transaktion neu starten I erfordert spezielle Snoop-Logik im Prozessor I garantiert Cache-Kohärenz I gute Performance, aber schlechte Skalierbarkeit A. Mäder 1364

101 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen MESI Protokoll (cont.) I Zustandsübergänge: MESI Protokoll SHR INVALID RMS SHW SHARED PowerPC 604 RISC Microprocessor User s Manual [Motorola / IBM] RH WM RME WH LRU replacement SHW SHR SHW SHR Bus Transactions RH MODIFIED WH WH EXCLUSIVE RH RH = Read hit RMS = Read miss, shared RME = Read miss, exclusive WH = Write hit WM = Write miss SHR = Snoop hit on a read SHW = Snoop hit on a write or read-with-intent-to-modify = Snoop push = Invalidate transaction = Read-with-intent-to-modify = Read A. Mäder 1365

102 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen MESI Protokoll (cont.) I Snooping Beispiel MESI-Status Wert A: CPU1 CPU2 E CPU 1 A CPU 2 Hauptspeicher CPU 1 lädt Wert A E I M CPU 1 A CPU 2 Hauptspeicher CPU 1 modifiziert A M I CPU 1 M A CPU 2 Hauptspeicher CPU 2 lädt A (aber Wert modified) - - CPU 1 M A CPU 2 Hauptspeicher CPU 1 SNOOP! (CPU2 read gestoppt) E CPU 1 A CPU 2 Hauptspeicher CPU 1 schreibt A (CPU2 read gestoppt) E I CPU 1 CPU 2 Hauptspeicher S A S A CPU 2 lädt A S S (CPU2 read restart, A shared) A. Mäder 1366

103 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Optimierung der Cachezugriffe I Mittlere Speicherzugriffszeit = T Hit + R Miss T Miss Verbesserung der Cache Performanz durch kleinere T Miss am einfachsten zu realisieren I mehrere Cache Ebenen I Critical Word First: bei großen Cache Blöcken (mehrere Worte) gefordertes Wort zuerst holen und gleich weiterleiten I Read-Miss hat Priorität gegenüber Write-Miss Zwischenspeicher für Schreiboperationen (Write Buffer) I Merging Write Buffer: aufeinanderfolgende Schreiboperationen zwischenspeichern und zusammenfassen I Victim Cache: kleiner voll-assoziativer Cache zwischen direct-mapped Cache und nächster Ebene sammelt verdrängte Cache Einträge A. Mäder 1367

104 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Optimierung der Cachezugriffe (cont.) Verbesserung der Cache Performanz durch kleinere R Miss I größere Caches ( mehr Hardware) I höhere Assoziativität ( langsamer) Optimierungstechniken I Software Optimierungen I Prefetch: Hardware (Stream Buffer) Software (Prefetch Operationen) I Cache Zugriffe in Pipeline verarbeiten I Trace Cache: im Instruktions-Cache werden keine Speicherinhalte, sondern ausgeführte Sequenzen (trace) einschließlich ausgeführter Sprünge gespeichert Beispiel: NetBurst Architektur (Pentium 4) A. Mäder 1368

105 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Effekte bei Matrixzugriffen public static double sumrowcol( double[][] matrix ) { int rows = matrix. length; int cols = matrix[0]. length; double sum = 0.0; for( int r = 0; r < rows; r++ ) { for( int c = 0; c < cols; c++ ) { sum += matrix[r][c]; } } return sum; } Matrix creation ( ) 2105 msec. Matrix row-col summation 75 msec. Matrix col-row summation 383 msec. 5x langsamer Sum = 600, / 600, andere Werte A. Mäder 1369

106 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Effekte bei Matrixzugriffen (cont.) /* ijk */ for (i=0; i<n; i++) { for (j=0; j<n; j++) { sum = 0.0; for (k=0; k<n; k++) sum += a[i][k] * b[k][j]; c[i][j] = sum; } } Inner loop: (i,*) (*,j) A B C Row-wise Columnwise (i,j) Fixed Misses per Inner Loop Iteration: A B C [BO14] A. Mäder 1370

107 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Effekte bei Matrixzugriffen (cont.) /* kij */ for (k=0; k<n; k++) { for (i=0; i<n; i++) { r = a[i][k]; for (j=0; j<n; j++) c[i][j] += r * b[k][j]; } } Inner loop: (i,k) (k,*) (i,*) A B C Fixed Row-wise Row-wise Misses per Inner Loop Iteration: A B C [BO14] A. Mäder 1371

108 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Effekte bei Matrixzugriffen (cont.) /* jki */ for (j=0; j<n; j++) { for (k=0; k<n; k++) { r = b[k][j]; for (i=0; i<n; i++) c[i][j] += a[i][k] * r; } } Misses per Inner Loop Iteration: A B C Inner loop: (*,k) (k,j) A B C Fixed (*,j) Columnwise Columnwise [BO14] A. Mäder 1372

109 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Effekte bei Matrixzugriffen (cont.) ijk (& jik): 2 loads, 0 stores misses/iter = 1.25 kij (& ikj): 2 loads, 1 store misses/iter = 0.5 jki (& kji): 2 loads, 1 store misses/iter = 2.0 for (i=0; i<n; i++) { for (j=0; j<n; j++) { sum = 0.0; for (k=0; k<n; k++) sum += a[i][k] * b[k][j]; c[i][j] = sum; } } for (k=0; k<n; k++) { for (i=0; i<n; i++) { r = a[i][k]; for (j=0; j<n; j++) c[i][j] += r * b[k][j]; } } for (j=0; j<n; j++) { for (k=0; k<n; k++) { r = b[k][j]; for (i=0; i<n; i++) c[i][j] += a[i][k] * r; } } [BO14] A. Mäder 1373

110 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache Effekte bei Matrixzugriffen (cont.) Cycles/iteration kji jki kij ikj jik ijk Array size (n) [BO14] A. Mäder 1374

111 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Chiplayout ARM7 / ARM10 I IBOX: Steuerwerk (instruction fetch und decode) EBOX: Operationswerk, ALU, Register (execute) IMMU/DMMU: Virtueller Speicher (instruction/data TLBs) ICACHE: Instruction Cache DCACHE: Data Cache A. Mäder 1375

112 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Chiplayout (cont.) A. Mäder 1376

113 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Chiplayout (cont.) A. Mäder 1377

114 18.3 Speicherhierarchie - Cache Speicher Rechnerstrukturen Cache vs. Programmcode Programmierer kann für maximale Cacheleistung optimieren B Datenstrukturen werden fortlaufend alloziert 1. durch entsprechende Organisation der Datenstrukturen 2. durch Steuerung des Zugriffs auf die Daten I Geschachtelte Schleifenstruktur I Blockbildung ist eine übliche Technik Systeme bevorzugen einen Cache-freundlichen Code I Erreichen der optimalen Leistung ist plattformspezifisch I Cachegrößen, Zeilengrößen, Assoziativität etc. I generelle Empfehlungen I working set klein zeitliche Lokalität I kleine Adressfortschaltungen ( strides ) räumliche Lokalität A. Mäder 1378

115 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher Motivation I Wunsch des Programmierers I möglichst großer Adressraum, ideal 2 32 Byte oder größer I linear adressierbar I Sicht des Betriebssystems I verwaltet eine Menge laufender Tasks / Prozesse I jedem Prozess steht nur begrenzter Speicher zur Verfügung I strikte Trennung paralleler Prozesse I Sicherheitsmechanismen und Zugriffsrechte I read-only Bereiche für Code I read-write Bereiche für Daten widersprüchliche Anforderungen Lösung mit virtuellem Speicher und Paging A. Mäder 1379

116 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher Motivation (cont.) 1. Benutzung der Festplatte als zusätzlichen Hauptspeicher I Prozessadressraum kann physikalische Speichergröße übersteigen I Summe der Adressräume mehrerer Prozesse kann physikalischen Speicher übersteigen 2. Vereinfachung der Speicherverwaltung I viele Prozesse liegen im Hauptspeicher I jeder Prozess mit seinem eigenen Adressraum (0 n) I nur aktiver Code und Daten sind tatsächlich im Speicher I bedarfsabhängige, dynamische Speicherzuteilung 3. Bereitstellung von Schutzmechanismen I ein Prozess kann einem anderen nicht beeinflussen I sie operieren in verschiedenen Adressräumen I Benutzerprozess hat keinen Zugriff auf privilegierte Informationen I jeder virtuelle Adressraum hat eigene Zugriffsrechte A. Mäder 1380

117 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Festplatte erweitert Hauptspeicher 1 MB: ~ 5 SRAM 1GB: ~5 DRAM 1 TB: ~40 Disk [BO14] I Vollständiger Adressraum zu groß DRAM ist Cache I 32-bit Adressen: Byte 4 Milliarden I 64-bit Adressen: Byte 16 Quintillionen I Speichern auf Festplatte ist 125 billiger als im DRAM I 1 TiB DRAM: I 1 TiB Festplatte: 40 kostengünstiger Zugriff auf große Datenmengen A. Mäder 1381

118 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Ebenen in der Speicherhierarchie cache virtual memory CPU regs C 16 B a 64 B 4 KB Memory c h e disk size: speed: $/Mbyte: line size: Register Cache Memory Disk Memory 64 B 300 ps 16 B 32 KB-12MB 1 ns 5 /MB 64 B 8 GB 8 ns 5 /GB 4 KB 2 TB 4 ms 4 Ct./GB larger, slower, cheaper [BO14] A. Mäder 1382

119 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Ebenen in der Speicherhierarchie (cont.) I Hauptspeicher als Cache für den Plattenspeicher CPU Register Files 1st-Level Cache External Processor Interface 2nd-Level Cache Main Memory Disk Storage I Parameter der Speicherhierarchie 1st-Level Cache virtueller Speicher Blockgröße Byte 4-64 KiByte Hit-Dauer 1-2 Zyklen Zyklen Miss Penalty Zyklen Zyklen Miss Rate 0,5-10 % 0, ,001 % Adressraum bit bit Virtual memory A. Mäder 1383

120 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Ebenen in der Speicherhierarchie (cont.) I DRAM vs. Festplatte ist extremer als SRAM vs. DRAM I Zugriffswartezeiten I DRAM 10 langsamer als SRAM I Festplatte langsamer als DRAM Nutzung der räumlichen Lokalität wichtig I erstes Byte langsamer als nachfolgende Bytes SRAM DRAM Disk [BO14] A. Mäder 1384

121 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Prinzip des virtuellen Speichers I jeder Prozess besitzt seinen eigenen virtuellen Adressraum I Kombination aus Betriebssystem und Hardwareeinheiten I MMU Memory Management Unit I Umsetzung von virtuellen zu physikalischen Adressen, Programm-Relokation A. Mäder 1385

122 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Prinzip des virtuellen Speichers (cont.) I I Umsetzungstabellen werden vom Betriebssystem verwaltet wegen des Speicherbedarfs der Tabellen beziehen sich diese auf größere Speicherblöcke (Segmente oder Seiten) I Umgesetzt wird nur die Anfangsadresse, der Offset innerhalb des Blocks bleibt unverändert I Blöcke dieses virtuellen Adressraums können durch Betriebssystem auf Festplatte ausgelagert werden I Windows: Auslagerungsdatei I Unix/Linux: swap Partition und -Datei(en) I Konzepte zur Implementation virtuellen Speichers I Segmentierung I Speicherzuordnung durch Seiten ( Paging ) I gemischte Ansätze (Standard bei: Desktops, Workstations ) A. Mäder 1386

123 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher: Segmentierung I Unterteilung des Adressraums in kontinuierliche Bereiche variabler Größe Virtuelle Adresse pid = 1.data 1.text 1 pid = 2.data 2.text 2 MMU zur Laufzeit... phys. Mem..data 1.text 1.text 2.data 2 Physikalische Adresse... access rights address access trap 9600 = upper bound Memory fragmentation > protection violation trap from processor virtual address R/W I/D S/U b f nt base of segment.data.text. + physical addr to memory pid = 1 A. Mäder 1387

124 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher: Segmentierung (cont.) I Idee: Trennung von Instruktionen, Daten und Stack Abbildung von Programmen in den Hauptspeicher + Inhalt der Segmente: logisch zusammengehörige Daten + getrennte Zugriffsrechte, Speicherschutz + exakte Prüfung der Segmentgrenzen Segmente könne sehr groß werden Ein- und Auslagern von Segmenten kann sehr lange dauern Verschnitt / Memory Fragmentation A. Mäder 1388

125 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher: Paging / Seitenadressierung I Unterteilung des Adressraums in Blöcke fester Größe = Seiten Abbildung auf Hauptspeicherblöcke = Kacheln Memory Virtual Addresses Page Table 0: 1: Physical Addresses 0: 1: CPU P-1: N-1: Disk [BO14] A. Mäder 1389

126 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher: Paging / Seitenadressierung (cont.) Abbildung von Adressen in den virtuellen Speicher + Programme können größer als der Hauptspeicher sein + Programme können an beliebige physikalischen Adressen geladen werden, unabhängig von der Aufteilung des physikalischen Speichers + feste Seitengröße: einfache Verwaltung in Hardware + Zugriffsrechte für jede Seite (read/write, User/Supervisor) + gemeinsam genutzte Programmteile/-Bibliotheken können sehr einfach in das Konzept integriert werden I Windows:.dll-Dateien I Unix/Linux:.so-Dateien A. Mäder 1390

127 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher: Paging / Seitenadressierung (cont.) I große Miss-Penalty (Nachladen von der Platte) Seiten sollten relativ groß sein: 4 64 KiByte Speicherplatzbedarf der Seitentabelle viel virtueller Speicher, 4 KiByte Seitengröße = sehr große Pagetable Hash-Verfahren (inverted page tables) mehrstufige Verfahren Linear Address Directory Table Offset 12 Physical memory 486 TM CPU 31 0 CR0 CR2 CR2 CR3 dir_base Control registers {} {} base 20 Page directory 31 0 base 20 Page table {} Address A. Mäder 1391

128 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Virtueller Speicher: Segmentierung + Paging aktuell = Mischung: Segmentierung und Paging (seit I386) A. Mäder 1392

129 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Seitenfehler I Seiten-Tabelleneintrag: Startadresse der virt. Seite auf Platte I Daten von Festplatte in Speicher laden: Aufruf des Exception handler des Betriebssystems I laufender Prozess wird unterbrochen, andere können weiterlaufen I Betriebssystem kontrolliert die Platzierung der neuen Seite im Hauptspeicher (Ersetzungsstrategien) etc. Virtual Addresses CPU Page Table Physical Addresses Memory Virtual Addresses CPU Page Table Physical Addresses Memory Disk Disk [BO14] A. Mäder 1393

130 18.4 Speicherhierarchie - Virtueller Speicher Rechnerstrukturen Seitenfehler (cont.) Behandlung des Seitenfehlers 1. Prozessor signalisiert DMA-Controller I lies Block der Länge P ab Festplattenadresse X I speichere Daten ab Adresse Y in Hauptspeicher 2. Lesezugriff erfolgt als I Direct Memory Access (DMA) I Kontrolle durch I/O Controller 3. I/O Controller meldet Abschluss I Gibt Interrupt an den Prozessor I Betriebssystem lässt unterbrochenen Prozess weiterlaufen Processor Reg Cache Memory (1) Initiate Block Read Memory-I/O bus (2) DMA Transfer (3) Read Done I O controller Disk Disk [BO14] A. Mäder 1394

Modul InfB-RS: Rechnerstrukturen

Modul InfB-RS: Rechnerstrukturen A. Mäder 1 MIN-Fakultät Fachbereich Informatik 64-040 Modul InfB-RS: Rechnerstrukturen https://tams.informatik.uni-hamburg.de/ lectures/2016ws/vorlesung/rs Kapitel 18 Andreas Mäder Universität Hamburg

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

Mehr

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen: Übersicht 1 Einleitung Hauptspeicher 2 Hauptspeicher 3 Caches, Cache-Kohärenz Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Mehr

Modul IP7: Rechnerstrukturen

Modul IP7: Rechnerstrukturen 64-4 Modul IP7: Rechnerstrukturen http://tams.informatik.uni-hamburg.de/ lectures/211ws/vorlesung/rs Kapitel 21 Andreas Mäder Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften

Mehr

Rechnerorganisation. 1. Juni 201 KC Posch

Rechnerorganisation. 1. Juni 201 KC Posch .6.2 Rechnerorganisation. Juni 2 KC Posch .6.2 2 .6.2 Front Side Bus Accelerated Graphics Port 28 MHz Front Side Bus North Bridge RAM idge South Bri IDE USB PCI Bus 3 .6.2 Front Side Bus Front Side Bus

Mehr

Modul IP7: Rechnerstrukturen

Modul IP7: Rechnerstrukturen 64-040 Rechnerstrukturen 64-040 Modul IP7: Rechnerstrukturen http://tams.informatik.uni-hamburg.de/ lectures/2012ws/vorlesung/rs Kapitel 18 Andreas Mäder Universität Hamburg Fakultät für Mathematik, Informatik

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

Grob-Struktur des Prozessor-Speichersystems

Grob-Struktur des Prozessor-Speichersystems 2.3.2 Speicherstruktur (1) Grob-Struktur des Prozessor-Speichersystems Chipsatz (Erklärung s. später, Folie 104) 22.4.-27.5.2013, Folie 52 2.3.2 Speicherstruktur (2) Zugriff Prozessor zumeist auf schnelle

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

Rechnerstrukturen Winter SPEICHER UND CACHE. (c) Peter Sturm, University of Trier 1

Rechnerstrukturen Winter SPEICHER UND CACHE. (c) Peter Sturm, University of Trier 1 9. SPEICHER UND CACHE (c) Peter Sturm, University of Trier 1 Inhalt Grundlagen Speichertypen RAM / ROM Dynamisches RAM Cache- Speicher Voll AssoziaNv n- Wege AssoziaNv Direct Mapping Beispiel: 8 Bit- Register

Mehr

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 10 AM 01./02.07.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Themen heute Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Besprechung des 8. Übungsblattes Aufgabe 2.6. In diesem

Mehr

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache 1/53 2012-02-29 Einleitung Hauptspeicherzugriffe sind langsam die

Mehr

Cache II. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Cache II. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache II Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache II 1/14 2012-02-29 Schreibstrategien Es sind verschiedene Fälle

Mehr

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse Kapitel 11 Rechnerarchitektur 11.1 Der von-neumann-rechner Wir haben uns bisher mehr auf die logischen Bausteine konzentriert. Wir geben jetzt ein Rechnermodell an, das der physikalischen Wirklichkeit

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

Arithmetische und Logische Einheit (ALU)

Arithmetische und Logische Einheit (ALU) Arithmetische und Logische Einheit (ALU) Enthält Blöcke für logische und arithmetische Operationen. n Bit Worte werden mit n hintereinander geschalteten 1 Bit ALUs bearbeitet. Steuerleitungen bestimmen

Mehr

RAM. Konsistenzprobleme entstehen => CPU - durch Verzögerung in Warteschlange, Umfangreiche Pufferung in den PCI Brücken. lesen. EOP-Signal.

RAM. Konsistenzprobleme entstehen => CPU - durch Verzögerung in Warteschlange, Umfangreiche Pufferung in den PCI Brücken. lesen. EOP-Signal. 11. s 11.1 Pufferspeicher Lesepuffer um vorauszulesen: - erste Leseoperation hat lange Latenzzeit, - Folgedaten vorsorglich schon gelesen, - "prefetch buffer". Schreibpuffer um ein Blockieren des schreibenden

Mehr

4.3 Hintergrundspeicher

4.3 Hintergrundspeicher 4.3 Hintergrundspeicher Registers Instr./Operands Cache Blocks Memory Pages program 1-8 bytes cache cntl 8-128 bytes OS 512-4K bytes Upper Level faster Disk Tape Files user/operator Mbytes Larger Lower

Mehr

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1 Entwicklung der DRAMs Richard Roth / FB Informatik und Mathematik Speicher 1 Entwicklung der DRAMs in Zukunft Richard Roth / FB Informatik und Mathematik Speicher 2 DRAM Speicherzelle (Trench Technology)

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Memory 1 Übersicht Motivation Speicherarten Register SRAM, DRAM Flash Speicherhierarchie Cache Virtueller Speicher 2 Motivation Speicher ist zentraler Bestandteil eines Computers neben Prozessor CPU Computer

Mehr

Mikroprozessortechnik Grundlagen 1

Mikroprozessortechnik Grundlagen 1 Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes

Mehr

Rechnerarchitektur. Vorlesungsbegleitende Unterlagen. WS 2003/2004 Klaus Waldschmidt

Rechnerarchitektur. Vorlesungsbegleitende Unterlagen. WS 2003/2004 Klaus Waldschmidt Rechnerarchitektur Vorlesungsbegleitende Unterlagen WS 2003/2004 Klaus Waldschmidt Teil 15 Speicherhierarchie und s Seite 1 Speicherhierarchie: Der Speicherraum wird in einzelne Schichten unterteilt, die

Mehr

Fachbereich Medienproduktion

Fachbereich Medienproduktion Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen

Mehr

6 Exkurs: Assoziativspeicher (2) 6 Exkurs: Assoziativspeicher. 7.1 Speicherhierarchie. 7 Caches

6 Exkurs: Assoziativspeicher (2) 6 Exkurs: Assoziativspeicher. 7.1 Speicherhierarchie. 7 Caches 6 Exkurs: Assoziativspeicher alternative Möglichkeit der Speicherung von Informationen in einem Computer: Assoziativspeicher (inhaltsadressierbarer Speicher bzw. CAM = Content Addressable Memory) : bei

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 11 Datum: 21. 22. 12. 2017 Virtueller Speicher 1 Performanz Gehen Sie von einem virtuellen

Mehr

Speicher (1) zur Realisierung eines Rechnerspeichers benötigt man eine Materie mit physikalischen Eigenschaften, die

Speicher (1) zur Realisierung eines Rechnerspeichers benötigt man eine Materie mit physikalischen Eigenschaften, die Speicher (1) Definition: Speichern ist die kurz- oder langfristige Änderung einer oder mehrerer physikalischer Eigenschaften einer Materie durch ein externes Ereignis. zur Realisierung eines Rechnerspeichers

Mehr

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler 1 Überlegungen Wenn wir einige Seiten eines Programms in den Speicher laden, brauchen wir eine Strategie, welche Seiten als nächstes geladen werden

Mehr

Vorlesung: Technische Informatik 3

Vorlesung: Technische Informatik 3 Rechnerarchitektur und Betriebssysteme zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme zhang@informatik.uni-hamburg.de Inhaltsverzeichnis 4. Computerarchitektur........................235

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

2. Ansatzpunkt: Reduktion der Penalty Early Restart und critical word first

2. Ansatzpunkt: Reduktion der Penalty Early Restart und critical word first 2. Ansatzpunkt: Reduktion der Penalty 2.1. Early Restart und critical word first Beide Techniken basieren darauf, die Wartezeit der CPU auf das Mindestmaß zu beschränken. Early restart lädt den Block wie

Mehr

Besprechung des 7. Übungsblattes Speicheraufbau Speichertypen DRAM Speicherbelegung

Besprechung des 7. Übungsblattes Speicheraufbau Speichertypen DRAM Speicherbelegung Themen heute Besprechung des 7. Übungsblattes Speicheraufbau Speichertypen DRAM Speicherbelegung Besprechung des 7. Übungsblattes Aufgabe 4a Der eigentliche Sprung erfolgt in der MEM-Phase (4. Pipeline-Stufe),

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

Speicher: RAMs, ROMs PROMS, EPROMs, EEPROMs, Flash EPROM

Speicher: RAMs, ROMs PROMS, EPROMs, EEPROMs, Flash EPROM Speicher: RAMs, ROMs PROMS, EPROMs, EEPROMs, Flash EPROM RAMs (Random Access Memory) - Schreib-Lese-Speicher RAMs sind Speicher mit der Aufgabe, binäre Daten für eine bestimmte Zeit zu speichern. Diese

Mehr

1 Organisationsaspekte RISC- und CISC-Prozessoren Ausnutzen von Cache-Effekten

1 Organisationsaspekte RISC- und CISC-Prozessoren Ausnutzen von Cache-Effekten McFarling [1989] konnte Cache Misses um 75% in 8KB direkt abbildenden Caches durch Softwaremaßnahmen senken. Instruktionen Umordnen im Speicher, um Conflict-Misses zu reduzieren Profiling : spezielle Konfliktvermeidungsmaßnahmen

Mehr

Superskalare Prozessoren

Superskalare Prozessoren 4.5 Rechnerarchitektur - Pipelining 18.145 RAM Superskalare Prozessoren Superskalare CPUs besitzen mehrere Recheneinheiten: 4... 10 In jedem Takt werden (dynamisch) mehrere Instruktionen eines konventionell

Mehr

Kapitel II. Einführung: Hardware und Software. VO Betriebssysteme

Kapitel II. Einführung: Hardware und Software. VO Betriebssysteme Kapitel II Einführung: Hardware und Software V 1 Computersysteme (1) omputer haben viele verschiedene Devices: Input/Output Devices Speicher Prozessor(en) Monitor auteile eines einfachen PCs Bus Computersysteme

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Einfaches MSI-Writeback-Inval-Protokoll

Einfaches MSI-Writeback-Inval-Protokoll Einfaches MSI-Writeback-Inval-Protokoll Write-Back Cache typischerweise Write-allocate bei einem Write-Miss Zustände Invalid (I): Shared (S): Kopien in einem oder mehreren Caches Dirty or Modified (M):

Mehr

Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle

Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle Architecture of Parallel Computer Systems WS15/16 J.Simon 1 SC mit Write-Back Caches Beweisidee: Behandlung von Reads wie beim Write-Through

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 13. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 15. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Das Konzept der Speicherhierarchie

Das Konzept der Speicherhierarchie Das Konzept der Speicherhierarchie Small is fast, daher sind kleine Speicher schneller (und kosten mehr pro Byte). Vergrößerung von Speichern und schnellerer Zugriff sind aber Schlüsselfunktionen in der

Mehr

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor. Rechnerstrukturen 6. System Systemebene 1 (Monoprozessor) 2-n n (Multiprozessor) s L1- in der L2- ( oder Motherboard) ggf. L3- MMU Speicher Memory Controller (Refresh etc.) E/A-Geräte (c) Peter Sturm,

Mehr

Speicherorganisation

Speicherorganisation Speicherorganisation John von Neumann 1946 Ideal wäre ein unendlich großer, undendlich schneller und undendlich billiger Speicher, so dass jedes Wort unmittelbar, d.h. ohne Zeitverlust, zur Verfügung steht

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 10 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Rechnerarchitektur SS 2012

Rechnerarchitektur SS 2012 Rechnerarchitektur SS 2012 Cachekohärenz Michael Engel TU Dortmund, Fakultät für Informatik Teilweise basierend auf Material von Gernot A. Fink und R. Yahyapour 11. Juni 2013 Speicher in MP-Systemen Zentrales

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht

Mehr

Betriebssysteme (BTS)

Betriebssysteme (BTS) .Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme..007 Organisatorisches zur Übung Verteilung auf die beiden

Mehr

Rechnerarchitektur SS 2012

Rechnerarchitektur SS 2012 Rechnerarchitektur SS 2012 Cachekohärenz TU Dortmund, Fakultät für Informatik XII Literatur: Hennessy/Patterson: Computer Architecture, 3. Auflage, 2003, Abschnitte 6.2, S. 549ff und 6.5, S. 576ff. Huang:

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 9 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Betriebssysteme Vorstellung

Betriebssysteme Vorstellung Am Anfang war die Betriebssysteme Vorstellung CPU Ringvorlesung SE/W WS 08/09 1 2 Monitor CPU Komponenten eines einfachen PCs Bus Holt Instruktion aus Speicher und führt ihn aus Befehlssatz Einfache Operationen

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Notizen-Neuerungen PC- HAUPTSPEICHER

Notizen-Neuerungen PC- HAUPTSPEICHER PC- HAUPTSPEICHER Einleitung...2 Erklärung... 2 Technische Grundlagen... 3 Die Vorläufer der heutigen Speicherarten...4 Von SDRAM zu DDR RAM und RDRAM... 5 Die Unterschiede zwischen SDRAM und DDR RAM...

Mehr

183.579, WS2012 Übungsgruppen: Mo., 07.01. Do., 10.01.2013

183.579, WS2012 Übungsgruppen: Mo., 07.01. Do., 10.01.2013 VU Technische Grundlagen der Informatik Übung 7: Speicher, Peripherie 183.579, WS2012 Übungsgruppen: Mo., 07.01. Do., 10.01.2013 Aufgabe 1: Ihre Kreativität ist gefragt! Um die Qualität der Lehrveranstaltung

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 07 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe16 Moritz Kaufmann

Mehr

Lösung von Übungsblatt 2

Lösung von Übungsblatt 2 Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende

Mehr

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

Mehr

Ram/Rom/EPRom WIRTSCHAFTSINGENIEURSWESEN. Ausbildungsschwerpunkte: BETRIEBSMANAGEMENT LOGISTIK. Xaver Schweitzer. Jahr: 2011/12

Ram/Rom/EPRom WIRTSCHAFTSINGENIEURSWESEN. Ausbildungsschwerpunkte: BETRIEBSMANAGEMENT LOGISTIK. Xaver Schweitzer. Jahr: 2011/12 Name: Klasse: Xaver Schweitzer 1BHWI Jahr: 2011/12 Ram/Rom/EPRom Abb. 1 Abb. 2 Abb. 3 Ram Rom EPRom 22.09.2011 1 von 10 Inhaltsverzeichnis INHALTSVERZEICHNIS... 2 EINLEITUNG... 3 RAM... 4 SRAM - Static

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Ein- und Ausgabegeräte

Ein- und Ausgabegeräte Blockorientiert Jeder Block kann unabhängig gelesen und geschrieben werden. Festplatten, CD-ROMs, USB-Sticks, etc. Zeichenorientiert Keine Struktur, nicht adressierbar, Daten werden als Folge von Zeichen

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 4 Cache el0100 copyright W.

Mehr

HORUS. Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HWS Martin Scherer

HORUS. Seminar Ausgewählte Themen in Hardwareentwurf und Optik im HWS Martin Scherer HORUS Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HWS 2006 Martin Scherer Horus Inhalt 1 Einführung 2 Cachekohärenz 3 ExtendiScale Architektur 4 Übertragungsbeispiele 5 Performance Erweiterungen

Mehr

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR #7 Terminchaos Nächste Vorlesungen: 27. 5. Vertretung durch Prof. Fekete 3. 6. Exkursionswoche 10. 6. Vertretung durch N.N. 17. 6. back to normal... Experiment Durchlaufe zwei gleichgrosse Arrays: Sortierte

Mehr

B Hauptspeicher und Cache

B Hauptspeicher und Cache und Cache 1. Begriffe 2. SRAM 3. DRAM 4. DRAM-Varianten: EDO-RAM, SDRAM, DDR-RAM, RAMBUS 5. Festwertspeicher: PROM, EPROM, EEPROM 6. Exkurs: Assoziativspeicher 7. Cache 1 und Cache Einordnung in das Schichtenmodell:

Mehr

B Hauptspeicher und Cache

B Hauptspeicher und Cache und Cache und Cache Einordnung in das Schichtenmodell: 1. Begriffe 2. SRAM 3. DRAM 4. DRAM-Varianten: EDO-RAM, SDRAM, DDR-RAM, RAMBUS 5. Festwertspeicher: PROM, EPROM, EEPROM 6. Exkurs: Assoziativspeicher

Mehr

Gregor Michalicek, Marcus Schüler. Multiprozessoren

Gregor Michalicek, Marcus Schüler. Multiprozessoren Gregor Michalicek, Marcus Schüler Gregor Michalicek Marcus Schüler Gregor Michalicek, Marcus Schüler Vorteile gegenüber Singleprozessoren ¾ sind zuverlässiger. Einige Multiprozessorsysteme können trotz

Mehr

E Hauptspeicher und Cache

E Hauptspeicher und Cache und Cache 1. Begriffe 2. SRAM 3. DRAM 4. DRAM-Varianten: EDO-RAM, SDRAM, DDR-RAM, RAMBUS 5. Festwertspeicher: PROM, EPROM, EEPROM 6. Exkurs: Assoziativspeicher 7. Cache 1 und Cache Einordnung in das Schichtenmodell:

Mehr

Ergänzung: RAM und ROM. SS 2012 Grundlagen der Rechnerarchitektur Speicher 72

Ergänzung: RAM und ROM. SS 2012 Grundlagen der Rechnerarchitektur Speicher 72 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

Mehr

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Grundlagen der Rechnerarchitektur. Ein und Ausgabe Grundlagen der Rechnerarchitektur Ein und Ausgabe Übersicht Grundbegriffe Hard Disks und Flash RAM Zugriff auf IO Geräte RAID Systeme SS 2012 Grundlagen der Rechnerarchitektur Ein und Ausgabe 2 Grundbegriffe

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme Übung 2: Speicherarchitekturen in Mikrocontrollern und AOStuBS Christoph Borchert Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/~chb/

Mehr

RAM - Random Access Memory

RAM - Random Access Memory RAM - Random Access Memory Random Access Memory (dt. Speicher mit wahlfreiem Zugriff), abgekürzt RAM, ist ein Speicher, der besonders bei Computern als Arbeitsspeicher Verwendung findet. RAMs werden als

Mehr

Vorlesung 14 Speichersysteme (2)

Vorlesung 14 Speichersysteme (2) D - CA - XIV - MH - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 14 Speichersysteme (2) Sommersemester 2003 Leitung: Prof. Dr. Miroslaw Malek D - CA - XIV - MH - 2 SPEICHERSYSTEME

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

Theorie der Programmiersprachen

Theorie der Programmiersprachen slide 1 Vorlesung Theorie der Programmiersprachen Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Heute Komponenten eines Computers Speicher Die

Mehr

Kapitel II. Computersysteme (1) Einführung: Hardware und Software. Bauteile eines einfachen PCs

Kapitel II. Computersysteme (1) Einführung: Hardware und Software. Bauteile eines einfachen PCs Kapitel II Einführung: Hardware und Software 1 Computersysteme (1) Computer haben viele verschiedene Devices: Input/Output Devices Speicher Prozessor(en) Monitor 2 Bauteile eines einfachen PCs Bus Computersysteme

Mehr

(Cache-Schreibstrategien)

(Cache-Schreibstrategien) Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. 2. Nennen Sie zwei rotierende magnetische digitale Datenspeicher. 3. Nennen Sie zwei

Mehr

DIE EVOLUTION DES DRAM

DIE EVOLUTION DES DRAM DIE EVOLUTION DES DRAM Gliederung 1. Motivation 2. Aufbau und Funktionsweise 3. SDRAM 4. DDR SDRAM 5. DDR SDRAM Versionen 06.02.2018 Die Evolution des DRAM Folie 2 von 27 1. Motivation Motivation - Immer

Mehr

Quantitative Prinzipien im Hardwareentwurf. 1. Small is fast

Quantitative Prinzipien im Hardwareentwurf. 1. Small is fast Quantitative Prinzipien im Hardwareentwurf 1. Small is fast Kleine Hardwareeinheiten schalten in der Regel schneller als größere. Kleine Transistoren bilden an ihren Gates kleinere Kapazitäten die Source-Drain

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

Digitaltechnik II SS 2007

Digitaltechnik II SS 2007 Digitaltechnik II SS 27 7. Vorlesung Klaus Kasper Inhalt Register Halbleiterspeicher Random Access Memory (RAM) SRAM DRAM ROM Programmierbare ROM Realisierung digitaler Systeme Digitaltechnik 2 2 Digitaltechnik

Mehr

Modul InfB-RS: Rechnerstrukturen

Modul InfB-RS: Rechnerstrukturen 64-040 Rechnerstrukturen 64-040 Modul InfB-RS: Rechnerstrukturen http://tams.informatik.uni-hamburg.de/ lectures/2014ws/vorlesung/rs Kapitel 1 Andreas Mäder Universität Hamburg Fakultät für Mathematik,

Mehr

Teil 2: Speicherstrukturen

Teil 2: Speicherstrukturen Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)

Mehr

CPU. Memory. Highest. Fastest. Smallest. Memory. Biggest. Lowest

CPU. Memory. Highest. Fastest. Smallest. Memory. Biggest. Lowest Speed CPU Size Cost ($/bit) Fastest Memory Smallest Highest Memory Slowest Memory Biggest Lowest Processor Data are transferred CPU Levels in the memory hierarchy Level Level 2 Increasing distance from

Mehr

Die Sicht eines Sysadmins auf DB systeme

Die Sicht eines Sysadmins auf DB systeme Die Sicht eines Sysadmins auf DB systeme Robert Meyer 21. Oktober 2016 Robert Meyer Die Sicht eines Sysadmins auf DB systeme 21. Oktober 2016 1 / 20 Inhaltsverzeichnis 1 Einleitung 2 IO unter Linux typische

Mehr

Inhalt Teil 10 (Caches) aus 6. Speicherorganisation

Inhalt Teil 10 (Caches) aus 6. Speicherorganisation Inhalt Teil 10 (Caches) aus 6. Speicherorganisation 1 6.2 Caches 6.2.1 Systemstrukturen 6.2.2 Laden des Cache 6.2.3 Cache-Strukturen Vollassoziativer Cache Direkt zuordnender Cache N-fach assoziativer

Mehr

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden. Name: Vorname: Matr.-Nr.: 4 Aufgabe 1 (8 Punkte) Entscheiden Sie, welche der folgenden Aussagen zum Thema CISC/RISC-Prinzipien korrekt sind. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen

Mehr

Speicher Typen. TI-Übung 5. Speicher SRAM. Speicher DRAM. SRAM vs. DRAM (EEP)ROM, NV-RAM, Flash,... Speicher, Caches

Speicher Typen. TI-Übung 5. Speicher SRAM. Speicher DRAM. SRAM vs. DRAM (EEP)ROM, NV-RAM, Flash,... Speicher, Caches Speicher Typen TI-Übung 5 Speicher, Caches Andreas I. Schmied (andreas.schmied@uni-ulm.de) AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS2005 SRAM vs. DRAM (EEP)ROM, NV-RAM, Flash,... Charakteristik

Mehr

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff von Athanasia Kaisa Grundzüge eines Zwischenspeichers Verschiedene Arten von Zwischenspeicher Plattenzwischenspeicher in LINUX Dateizugriff

Mehr

ZENTRALEINHEITEN GRUPPE

ZENTRALEINHEITEN GRUPPE 31. Oktober 2002 ZENTRALEINHEITEN GRUPPE 2 Rita Schleimer IT für Führungskräfte WS 2002/03 1 Rita Schleimer TEIL 1 - Inhalt Zentraleinheit - Überblick Architekturprinzipien Zentralspeicher IT für Führungskräfte

Mehr

Hauptspeicher H.1.1 Einordnung Organisation und Verhalten von Hauptspeichermodulen. Caches und assoziative Speicherung. Höhere Informatik :

Hauptspeicher H.1.1 Einordnung Organisation und Verhalten von Hauptspeichermodulen. Caches und assoziative Speicherung. Höhere Informatik : H. Hauptspeicher H.. Einordnung Organisation und Verhalten von Hauptspeichermodulen. Caches und assoziative Speicherung. Höhere Informatik : Hierarchische Datenspeicherung. - Programmierung, Datenbanken,

Mehr

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie

Mehr