Inhalt Teil Speicheraufbau und Speicherzugriff

Ähnliche Dokumente
SMP Übung 2 1. Aufgabe

DIE EVOLUTION DES DRAM

Adressierung von Speichern und Eingabe- Ausgabegeräten

B Hauptspeicher und Cache

B Hauptspeicher und Cache

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

Mikrocomputertechnik. 5. Systembus R/W. Ein Mikroprozessor kommuniziert über den Systembus mit Speicher und I/O. Der Ablauf erfolgt in zwei Schritten:

E Hauptspeicher und Cache

E Hauptspeicher und Cache

Rechnerstrukturen. 5. Speicher. Inhalt. Vorlesung Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1.

Mikrocomputertechnik. Systembus. Ein Mikroprozessor kommuniziert über den Systembus mit Speicher und I/O

RAM - Random Access Memory

Besprechung des 7. Übungsblattes Speicheraufbau Speichertypen DRAM Speicherbelegung

Modul 304: Personalcomputer in Betrieb nehmen Thema: Speicher. Speicher / Memory V 1.0. Technische Berufsschule Zürich IT Seite 1

RO-Tutorien 3 / 6 / 12

einfache DRAMs sind heute nicht mehr erhältlich, sondern nur noch die schnelleren DRAM-Varianten...

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

Mikroprozessortechnik Grundlagen 1

Rechnerorganisation. 1. Juni 201 KC Posch

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

Erweiterung von Adressraum und Bit Tiefe

REFERAT ÜBER RAM-MODULE:

Digitaltechnik II SS 2007

Lösung 5. Mikroprozessor & Eingebettete Systeme 1

Nicht flüchtige Speicher: Nicht löschbar: ROM, PROM (z.b. System). löschbar: EPROM, EEPROM, Flash (z.b. BIOS).

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

1,8V Flash and SRAM 28F3208W30

Arithmetische und Logische Einheit (ALU)

In diesem Abschnitt werden wir einige Schaltwerke kennenlernen, die als Basisbauteile überall im Aufbau digitaler Schaltungen verwendet werden.

Digitaltechnik II SS 2007

Ein- Ausgabeeinheiten

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

Digitaltechnik. 6 Speicherelemente. Revision 1.4

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

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

Fachbereich Medienproduktion

Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I

Folie 1. Folie 2. FH-Augsburg. FH-Augsburg

Kapitel 18. Externe Komponenten

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

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

Tutorium Rechnerorganisation

Technische Grundlagen der Informatik

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

Neben Prozessor ist in einem Rechner das Speichersystem entscheidend für

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

19. Speicher Überblick Entwicklung: Speicherchips

Flüchtige Halbleiterspeicher: statisch: SRAM (für Caches). dynamisch: DRAM (für Arbeitsspeicher).

Klausur Mikroprozessortechnik

Notizen-Neuerungen PC- HAUPTSPEICHER

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

ZENTRALEINHEITEN GRUPPE

Speicherhierarchie. [Technische Informatik Eine Einführung] Univ.-Prof. Dr. Paul Molitor

Grundlagen der Rechnerarchitektur. Speicher

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.

Grundlagen der Rechnerarchitektur

2. Halbleiterspeicher

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

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

1 Architektur von Rechnern und Prozessoren Cache-Speicher (11) Ersetzungsstrategie

Speicherkapazität und Zugriffszeit einiger. Informationsspeicher. Informationsspeicher

6 Speicherelemente. Digitaltechnik. Übersicht. Adressen. Read-Only Memory ROM. Random Access Memory RAM. Datenbusse. Caches.

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

In diesem Abschnitt werden wir einige Schaltwerke kennenlernen, die als Basisbauteile überall im Aufbau digitaler Schaltungen verwendet werden.

Technische Grundlagen der Informatik

Lerndokumentation. Arbeitsspeicher. Lerndokumentation Arbeitsspeicher. Ausbildung Vorlehre Informatik. Autor: Ramon Schenk

SRAM-Zelle Lesevorgang

Multi-Port-Speichermanager für die Java-Plattform SHAP

Teil VIII Von Neumann Rechner 1

2.5. Mikrocontroller-Komponenten

Computer-Systeme. Teil 3: Das Boxmodell von Variablen

Computer-Systeme Teil 3: Das Boxmodell von Variablen

Grundlagen der Rechnerarchitektur. Speicher

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

Inhaltsverzeichnis. 1. Die Unterteilung des internen Speichers in ROM und RAM Seite Der ROM-Speicher Seite Der RAM Speicher Seite 4

Eine Möglichkeit: Latch als Speicherzelle

Halbleiterspeicher. Halbleiterspeicher Michael Kuhfahl 1

IT für Führungskräfte. Zentraleinheiten Gruppe 2 - CPU 1

Cache Blöcke und Offsets

Halbleiterspeicher. Halbleiterspeicher

EEPROM Lesen/Schreiben über SPI-Bus

Virtueller Speicher und Memory Management

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

Referat von Sonja Trotter. Hauptspeicher / Arbeitsspeicher / Speicher / RAM

Rechnernetze und Organisation

1. Basiskomponenten eines Rechners 1.3 Befehlssatzarchitekturen (1) Mehr Flexibilität beim Datenzugriff. Vier Klassen von Befehlssatz-Architekturen

GRUNDLAGEN DER INFORMATIONSTECHNIK. Übungen TEIL 1 RECHNER

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher

Inhalt Teil 4 (Buszyklen) aus 5. Busse und Systemstrukturen

Aufbau eines Taschenrechners

6 Exkurs: Assoziativspeicher

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

Automation und Prozessrechentechnik

Ferner müssen die DIMMs folgenden Spezifikationen entsprechen : 2,5 V 184-polige Module Maximale Anzahl Speicherbausteine auf den DDR-SDRAM-Modulen: 1

Transkript:

Inhalt Teil 2 6.1 Speicheraufbau und Speicherzugriff 1 6.1.1 Funktionsweise SRAM asynchron DRAM asynchron 6.1.2 Aufbau einer Speichereinheit RAM-Ansteuerung Memory Map Adressmaske DRAM-Speichermodule 6.1.3 Verschränken von Speicherbänken 6.1.4 Überlappen von Buszyklen Adresspipelining Split-Bus-Transaktionen 6.1.5 Blockbuszyklen 6.1.6 Burst-Mode-Techniken bei DRAM und SRAM bei asynchronen DRAMs Lead-Off-Cycle bei synchronen DRAMs DDR bei synchronen SRAMs SDR: Flow-through/Pipelined DDR QDR Ergänzung Timing 128Mbit Graphic DDR SDRAM Measurement DDR333 einfacher Speicherschutz (Zusammenfassung) Begriffe bei der Speicheradressierug

6. Speicherorganisation 6.1 Speicheraufbau und Speicherzugriff 2 Speicherhierarchie schnell Register (on-chip) Cache (on/off-chip) Hauptspeicher (off/on-chip) Plattenspeicher groß

6.1.1 Funktionsweise 3 Statisches RAM (SRAM) asynchron CS# = Chip Select (auch CE# = Chip Enable) dient zur Auswahl und Aktivierung WE# = Write Enable (auch Write# oder RW#) dient zur Angabe der Zugriffsart OE# OE# = Output Enable dient zum separaten Einschalten des Ausgangstreibers beim Lesen. Falls nicht vorhanden, wird der Ausgangstreiber bereits durch CS# eingeschaltet.

SRAM-Speicherzelle 4 T1, T2 Rückgekoppelte Transistoren RL Lastwiderstände T3, T4 Durchschalt-Transistoren Di, Di# komplementäre Lese- oder Schreibinformation

Lesezyklus 5 Adressbus high =Anfangsadresse low CS# RAM read CPU WE# DOUT read tacs trc Access Time From Chip Select Read Cycle Time

Schreibzyklus 6 Adressbus high =Anfangsadresse low CS# write CPU RAM WE# DIN Datenbus write tas twp tds tdh twc Address Set Up Time Write Pulse Width Data Set Up Time Data Hold Time Write Cycle Time

Beispiel eines SRAM-Bausteins 7 Auf einem Speicherchip sind die Bits als Matrix angeordnet. Adresse = (AH, AL) = (i, j) (konkateniert) Lesevorgang intern Auswahl der Zeile AH durch Vorauswahl (Decoder) Lesen der Zeile und in Flipflops zwischenspeichern. Auswahl des Bits AL dieser Zeile erfolgt durch Nachauswahl (Multiplexer)

8 * not CS High-Z CS Read not OE OE High-Z Output Write Input

Lesezyklus 9 OE# muss aktiviert werden Dout bleibt noch für die Hold- Zeiten gültig

Schreibzyklus, mit positiver Flanke von WE# 10 Der Schreibvorgang wird durch die positive Flanke von WE# ausgelöst. Din muss t DW vorher und t DH nachher stabil sein.

Schreibzyklus, mit positiver Flanke von CS# 11 Wenn CS# vor der Schreibflanke inaktiv wird, dann wird der Schreibvorgang mit dieser Flanke ausgelöst.

Decoder Ein Speichermodell 12 Din CS CS Write AdrHigh Speicherzelle Zweck: Das Speichermodell soll den Datenfluss in Abhängigkeit von den Steuersignalen verdeutlichen. Es ist orientiert an der Realisierung. Es lässt die zeitlichen Verzögerungen erkennen. AdrLow CS Read Es kann als Ausgangspunkt für ein zeitbehaftetes Simulationsmodell benutzt werden. Multiplexer/ Decoder CS CS OutputEnable Dout

Dynamisches RAM (DRAM) 13 DRAM-Speicherzelle benötigt nur etwa 1/4 der Chipfläche einer SRAM- Speicherzelle höhere Speicherkapazität pro Speicherchip Kosten pro Speicherbit niedriger Das Zugriffsprotokoll ist komplizierter, die Zugriffszeit ist höher. Adresse wird in zwei Teilen nacheinander im Multiplexbetrieb an den Speicher übergeben und intern zwischenge-speichert. Ladung fließt ab Wiederauffrischen (refresh) erforderlich, ca. alle 64 ms 1. Zeilenadresse (row) Übernahme durch: row address strobe RAS 2. Spaltenadresse (column) Übernahme durch: column address strobe CAS

DRAM-Speicherzelle 14 Durchschalttransistor Ladungsspeicher (Transistor) Vorteil: Geringer Platzbedarf (ca. ¼ gegenüber SRAM-Zelle) Spaltenbitleitung Entladen Laden Nachteil: Kondensator entlädt sich aufgrund von Leckströmen und muss periodisch aufgefrischt werden, falls kein Lese- oder Schreibzugriff erfolgt

DRAM-Baustein 15

Auffrischen 16 Beim Lesen/Schreiben wird die angesprochene Zeile automatisch zurückgeschrieben und damit aufgefrischt. Nicht regelmäßig angesprochene Zeilen müssen explizit unter Benutzung eines Zeilenzählers (Refresh Counter) zyklisch angesprochen werden. DRAM-Controller außerhalb oder innerhalb des Speicherbausteins steuert den Refresh-Vorgang.

Beschleunigung des Zugriffs 17 Recovery-Time Außer der Zugriffszeit t RAS wird die Recovery-Time t RP benötigt, dadurch ist die Zykluszeit t RC die Summe dieser Zeiten: Nach dem Auswerten der abgeflossenen Ladung muss die alte/neue Ladung wieder zurückgeschrieben werden. Zum Auswerten müssen die Auswerteleitungen in dem vorhergehenden Zyklus auf ein bestimmtes Potential voraufgeladen (Precharging) werden. Maßnahmen zur Beschleunigung Einbau von Pipelineregistern und synchrone Arbeitsweise Zwischenpuffern der Adressen, Din, Steuersignale, Dout in Registern Synchron Pipelined SDRAM Die synchrone Arbeitsweise hat auch den Vorteil der einfacheren Steuerung gegenüber den asynchronen Mehrere verschränkte Speicherbänke auf dem Chip Zugriff auf ganze Speicherblöcke, Blockbuszyklen

Lese- und Schreibzyklus 18

6.1.2 Aufbau einer Speichereinheit 19 AddressLow Beispiel: 1-MBit-Speicherchip mit 20 Adressleitungen und einer Datenleitung. CE RW OE Din/Dout 1 M X1 Bit-Zellen AddressLow

1 MByte-Speicher, aus 8 Speicherchips (je 1 MBit) 20 Adresse 20 CE RW OE 8 Datenbus

Aufbau eines Wortspeichers 21 AddressLow 20 CE RW OE 8 Din/Dout Gegeben: Speicherchip 1 MByte 20 Adressleitungen 8 Datenleitungen Gesucht: Wortspeicher 1M x 32Bit siehe nächste Folie

1 M x 32-Speicher, aus 8 Speichermoduln (je 1 MByte) 22 AddressLow 20 RW,OE BE 3 BE 2 CS BE 1 BE = Byte-Enable- BE Signal 0vom Prozessor CS 32 CS Datenbus CS Die Byte-Enable- Signale vom Prozessor werden mit den Chip- Select-Signalen der Speichermodule verbunden. Dadurch wird nur auf die Module zugegriffen, die durch BE i aktiviert werden.

Enable 4 M x 32-Speicher, aus 4 Speichermoduln (je 1 M x 32) 23 == Anfangsadresse AddressLow Der Adressraum wird um die Anzahl der Module vervielfacht. (hier 4 Bänke/Speicherseiten) 2 Address Middle RW 20 CS CS CS CS Die Module werden parallel geschaltet (Adress- und Datenbus). Die Auswahl der aktiven Speicherbank erfolgt über einen Decoder, der AddressMiddle auswertet. Datenbus 32 Die Ausgänge des Decoders werden nur aktiv, wenn der Enable- Eingang aktiv ist.

RAM-Ansteuerung, Prinzip 24 VA (Valid Address) ByteEnable[3..0] Adressdecoder für RAMs CSi = Seitennummer. VA. BEi High ADR Low CS3 CS2 CS1 CS0 CPU BUSCLK RW M3 M2 M1 M0 READY DATA 8 32 Adresse ADRHigh ADRLow ADRByte Seitennummer Adr. im Speicher interne Adresse

Memory Map 25 Memory Map = Speichertabelle, Speicherzuordnungstabelle, Adressraumbelegungsplan definiert die Zuordnung der Speicherbereiche der Bausteine (Speicher, EA-Bausteine,...) zu bestimmten Bereichen im gesamten Adressraum. Die Bausteine haben meist eine Kapazität von 2 k verschiedenen Adressen (Lokale Adressen) aktiviert einen Baustein ab einer festzulegenden Basisadresse, die meist ein Vielfaches R von 2 k ist. R entspricht dann dem höherwertigen Adressteil ADRHigh, der von einem Decoder ausgewertet wird. Der Decoder kann zentral oder dezentral (bei den Bausteinen) angeordnet sein. In der Regel werden die Basisadressen so gewählt, dass sich die Speicherbereiche nicht überlappen. Falls sich die Speicherbereiche in besonderen Fällen überlappen sollen (z.b. zum Einblenden kleiner Bereiche in große), muss der Decoder im Überlappungsbereich eine Priorisierung (Vorrangauswahl) vornehmen. Im einfachsten Falle werden drei Bereiche unterschieden ROM-Bereich, der Initialisierungskonstanten und Initialisierungsrouten (bootstrap loader) enthält. RAM-Bereich der die Programme nach dem Laden enthält. EA-Bereich, der es erlaubt, EA Zellen anzusprechen

Beispiel 1 26 Gegeben Speichertabelle Speicherbausteine - ROM 64x32 - ROM 4kB =1k x 32 - RAM 1 MB=256k x 32 Byteadressen 0 255 256 4K-1 ROM Vektortabelle ROM (Initialisierungs- und Laderoutinen) Gesucht - Logik zum Anschluss der Speicherbausteine 1M unbenutzt bzw. nicht vorhanden 2M-1 RAM (Anwendung)

Lösung Beispiel 1 27 Wort# Byte# 0 0 63 255 64 256 a b CSb = VA.(A[31:12]=0).CSa CSa = VA.(A[31:8]=0) 6 10 18 CSc = VA.(A[31:20]=1) Adresse 1k-1 4K-1 A[7:2] A[11:2] A[19:2] CPU a b c frei RW 256k 1M 512k-1 2M-1 c Die CS-Signale werden nur aktiv, wenn die Adresse gültig ist (VA=1). Data Speicher b und a überlappen sich. Für die Byte- Adressen von 0 255 wird nur der Speicher a aktiviert, nicht der Speicher b. (Vorrangschaltung)

Adressbus: Adressmaske 28 Die Adressmaske definiert, welche Bits an den Speicherbaustein angeschlossen werden (lokale Adresse, markiert durch x). die Anfangsadresse (Basisadresse) des Speicherbausteins im gesamten Adressraum (ADRHigh_0..0). ADRHigh wird durch einen Decoder ausgewertet und aktiviert über CS den Baustein. Die nicht benötigten niederwertigen Adressleitungen werden durch * markiert. Sie definieren hier das Byte im Wort. Adressmaske für den Speicherbaustein a AToMema= 0000 0000 0000 0000 0000 0000 xxxx xx** Die beiden niederwertigsten Bits werden nicht benutzt, da hier nur ganze 32-Bit-Worte adressiert werden. Der Prozessor stellt sie auch nicht zu Verfügung, dafür aber die BE-Signale ADRHigh wird decodiert, um den Anfang des Speicherbereichs festzulegen 6-Bit-Wortnummer zum Speicherbaustein (Lokale Adresse) CSa=VA.(A[31:8]=0)

Adressmasken für die Bausteine c und d 29 AToMemb = 0000 0000 0000 0000 0000 xxxx xxxx xx** 10-Bit-Wortnummer CSb = VA.(A[31:12]=0).CSa hex Basisadresse = $0000000 AToMemc= 0000 0000 0001 xxxx xxxx xxxx xxxx xx** 18-Bit-Wortnummer CSc = VA.(A[31:20]=1) Basisadresse = $00100000

Beispielaufgabe 2 30 Gegeben Ein Speicherbaustein ROM 8 kb = 2k x 32 Ein Speicherbaustein RAM 4 MB = 1M x 32 Gesucht Sinnvolle Speichertabelle Verbindungen und möglichst einfache Logik zur Aktivierung der Speicherbausteine. Nebenbedingung: In dem Mikroprozessorsystem sollen keine weiteren Speicherbausteine mehr angeschlossen werden. Dadurch kann die Decodierlogik vereinfacht werden. (Wie, welche Konsequenzen ergeben sich daraus?)

Lösung Bit 22 AToROM= ---- ---- -1-- ---- ---x xxxx xxxx xx** 11 Wortnummer Wortindex (ohne **) 1 M +0 1 M +2K-1 31 ROM CS Bit 23 AToRAM= ---- ---- 1-xx xxxx xxxx xxxx xxxx xx** 2M Die nicht angeschlossenen Adressleitungen sind durch - in der Adressmaske markiert. 20 CS RAM RW 3M-1

Erklärung zur Lösung 32 Bit 22 und 23 werden direkt zur Aktivierung benutzt Bit22 = 1: das ROM wird aktiviert (Anfangsadresse = 1M, wenn alle Striche = 0) Bit23 = 1: das RAM wird aktiviert (Anfangsadresse = 2M, wenn alle Striche = 0) Es handelt sich um eine unvollständige Decodierung. Dabei dienen einzelne höherwertige Adressbits direkt zur Auswahl der Bausteine. Der Programmierer muss darauf achten, dass nicht mehrere Bausteine gleichzeitig aktiviert werden. Es dürfen keine Adressen im Programm verwendet werden, bei denen beide Bits 1 sind! Der Programmierer verwendet im Programm am besten für die - Adressbits den Wert 0. Wenn n Adressbits mit - vorhanden sind, dann vervielfacht (spiegelt) sich der Adressraum des Speichermoduls 2 n mal im Speicheradressraum. (n = Anzahl der Striche in der Adressmaske)

DRAM-Speichermodule 33 DRAM-Module = DRAM-Bausteine auf einer kleinen Steckplatine SIMM: Single in-line memory module PS/2-Modul: Datenbreite 32 Bit, 72 Kontakte, bis 64 Mbyte/Modul DIMM: dual in-line memory module, Datenbreite 64 bit 168 Kontakte: SDRAM 184 Kontakte: DDR-SDRAM 240 Kontakte: DDR2-SDRAM 144/200 Kontakte: SODIMM (small outline) Beispiel 256-Mbyte-Modul besteht aus 8 DDR-SRAM-Bausteinen (32M x 8) ECC-DIMM: zusätzlich 8 Sicherungsbits pro 64 Bit-Wort, single error correction, double error detection) Registered DIMM: Adresse und Zugriffskommando wird über Register gepuffert. Arbeitsweise im Pipeline-Modus. Taktphase kann durch PLL (phase locked loop) optimal angepasst werden.

Qimonda 2008 34 DDR2-SDRAM 256Mb-2Gb 800 Mb/s Fine Pitch Ball Grid Array DDR2- Unbuffered DIMMs -240 pin 256MB 2 GB DDR2-SO-DIMMs 200-pin 512MB 2 GB DDR2-Registered DIMMs 240-pin 256MB 8 GB http://www.qimonda.de/computing-dram/ddr3/index.html

Qimonda 2008 35 DDR3-SDRAM 512Mb-1Gb Fine Pitch Ball Grid Array 1,5V, 1600 Mb/s DDR3-SO-DIMMs 200-pin 1GB 2 GB DDR3- Unbuffered DIMMs -240 pin 512MB 2 GB

6.1.3 Verschränken von Speicherbänken 36 Wie lassen sich Wartezyklen vermeiden? Schnelle RAMs: einfach, aber Kosten, Platzbedarf und Stromverbrauch sind höher als bei DRAMs. Verschränken von Speicherbänken: aufeinanderfolgende Zugriffe mit Adressen, die in verschiedenen Bänken liegen. Überlappende Adressierung (6.1.4): Die nächste Adresse wird schon vor Abschluss des laufenden Zugriffs ausgegeben.

Aufeinanderfolgende Lesezugriffe, DRAM 37 (2+1) (2+1) Eine Bank (2+0) (2+0) Zwei Bänke verschränkt Recovery muss nicht abgewartet werden

Verschränken: Implementierung 38 Ziel: Aufeinanderfolgende Zugriffe sollen zu einem Bankwechsel führen. Einfache Hardware-Lösung: 2 n Speicherbänke, die durch die n niederwertigsten Adressbits selektiert werden. Wenn die Zugriffsadressen aufeinander folgen: Inkrementiere die Adresse Umschalten auf die nächste Speicherbank (zyklisch). Erholzeit = 1 Zyklus, kein Wartezyklus. sich zufällig ändern: Wahrscheinlichkeit, dass der nächste Zugriff in einer gerade nicht noch benutzten Speicherbank liegt ist umso höher, desto mehr Speicherbänke benutzt werden. Nur wenn auf eine Speicherbank zugegriffen wird, die sich noch nicht erholt hat, muss der Prozessor warten. (WAIT-Signal)

6.1.4 Überlappen von Buszyklen Address Pipelining Voraussetzung: Der Speicher kann intern parallel arbeiten, z. B. durch Speicherbänke oder internem Cache. DRAM-Controller übernimmt die Steuerung. Controller fordert mit Next Address Request NARQ den Prozessor zum vorzeitigen nächsten Speicherzugriff auf. Der Prozessor gibt die nächste Adresse, das Schreib-/Lesesignal und die Byte-Enable-Signale schon während des laufenden Buszyklus aus. Diese Werte werden in zusätzlichen Registern zwischengespeichert. Der Zugriff beginnt sofort überlappend. Der Zugriff auf eine gerade belegte Bank (Bankkonflikt) verursacht Wartezyklen. 39

Adresspipelining 40 (2+3=5) Eine Bank (5-2) Vier Bänke

Speicher mit 4 Speicherbänken 41

(6.1.4 Überlappen von Buszyklen) Split-Bus-Transaktionen 42 Ziel: Überlappende Verwaltung von mehreren Transaktionen Voraussetzung: Getrennter Adressund Datenbus Anwendung: In Mehrprozessorsystemen mit gemeinsamen Speicher, um während einer laufenden Transaktion zwischen einem Master1 und einem Target1 bereits eine weitere Transaktion zwischen einem Master2 und einem Target2 anzustoßen: (auch als Inter- Processor-Pipelining bezeichnet) Hardware: getrennte, parallele Verwaltung für die Zuteilung von Adressbus und Datenbus. Wichtiger Sonderfall: Target1 = Target2 = gemeinsamer Speicher Parken: Bei zu erwartenden auffeinanderfolgenden Zugriffen eines Master1 kann dieser auf dem Bus 'geparkt' werden, wodurch die Zeit für die Buszuteilung entfällt. (entspricht dem herkömmlichen Adress- Pipelining, auch Intra-Processor- Pipelining genannt) Erfordert zusätzliche Steuer-Logik und Pufferregister. PowerPC601, PentiumPro und folgende

Split-Bus-Transaktionen 43 Adressbus Arbitration Arbitration Arbitration Adress- Adress- Adress- Transfer1 Transfer2 Transfer3 Datenbus Arbitration Transfer1 Arbitration Daten- Daten- Transfer3 Arbitration Daten- Transfer2 Arbitration: Bewerben und Zuteilung eines Busses

6.1.5 Blockbuszyklen 44 Die Übertragung von Daten zwischen Hauptspeicher und Cache (oder L2-Cache und L1-Cache) erfolgt blockweise. (üblicherweise 4-Wort-Burst) Nur die Anfangsadresse des Blocks muss übertragen werden, dadurch können Takte gespart werden (2-1-1-1-Burst). (Der erste Zugriff benötigt 2 Takte) Mögliche Speicherorganisation: 4 verschränkte Speicherbänke (vergl. Bild 6-9) die gleichzeitig adressiert werden. Erster Zugriff (Lead-off-Cycle) mit der Speicherzugriffzeit, Folgezugriffe mit der Registerzugriffszeit. (Bild 6-13b) Pipelined-Burst: Während des laufenden Bursts wird der nächste schon addressiert. Der Speicher muss intern so organisiert sein, dass er Folgezugriffe beschleunigt ausführen kann. Dadurch Einsparung des Takts für die Adressierung zwischen zwei Bursts. (Bild 6-13c) Die Folgeadressen werden automatisch im Speicherbaustein selbst oder in seiner Nähe durch eine geeignete Speicheransteuerlogik generiert.

Burst, Pipelined Burst 45

6.1.6 Burst-Mode-Techniken bei DRAM und SRAM 46 Lead-off-Cycle Bei dem Lesen von 4 Worten (Cacheline) dauert das Lesen des 1. Wortes länger als ein Takt (siehe nächste Folie) Erster Zugriff: (Access Time from RAS) + (Access Time from CAS) Folgezugriff geht schneller, wenn die Zeile noch 'geöffnet' ist, nur (Access Time from CAS)

Lead-Off-Cycle 47 Lesen von 4 Worten Die Anzahl der Takte (Beispiel): Page-Hit: Zeile ist geöffnet, nur Auswahl mit Spaltenadresse j (geöffnet) 2-1-1-1 Row-Miss: Adresse verursacht einen Zeilenwechsel. Die zuletzt geöffnete Zeile wurde bereits zurück geschrieben. (nur öffnen) 4-1-1-1 Page-Miss: Adresse verursacht einen Zeilenwechsel, die noch geöffnete Zeile muss zuerst zurückgeschrieben werden. (schließen, öffnen) 6-1-1-1 Back-to-Back-Cycle: Zwei 4-Wort-Zugriffe folgen aufeinander, die Zeile und Folgezeile sind bereits geöffnet (Page-Hit), überlappender Zugriff 2-1-1-1 - 1-1-1-1

Burst-Modes bei asynchronen DRAMs 48 Page- und Fast-Page-Mode-DRAM erlaubt den wahlfreien Zugriff innerhalb einer geöffneten Zeile ( Page i =const ) Nibble-Mode Unterstützung des Blockzugriffs auf 4 aufeinanderfolgende Bits, die ausgerichtet sind (räumlich auf dem Chip zusammenhängen) EDO- und Burst-EDO-DRAM EDO: Extended Data Out nächste Spaltenadresse lässt sich vorab (überlappend mit dem momentanten Zugriff) angeben beschleunigte Folgezugriffe

Burst-Modes bei SDRAMs (synchrones DRAM) 49 Die internen Abläufe werden durch den Bustakt (CLK-Eingang) synchronisiert, dadurch können die Ansteuerzeiten reduziert werden. DDR = double data rate, beide Taktflanken werden genutzt Die Steuersignale werden zu einem Steuerwort zusammengefasst. Aktionen Aktivieren der Zeile i Lesen/Schreiben des Bits j Intern sind 2 (oder mehr) Speicherbänke vorhanden, die beim Zeilenwechsel zyklisch aktiviert werden. Die Bänke werden überlappend aktiviert (Verdeckung der Precharge Time) unterstützte Blocklängen: 1, 2, 4, 8, Spaltenzahl (komplette Zeile)

Technische Weiterentwicklung SDRAM 50 Takt: 100 133 200 effektiver Takt bis 1066 MHz Single Data Rate (SDR) Double Data Rate (DDR) 2 4 Bänke Interne Verdoppelung oder Vervierfachung der Speicherdatenbreite, um die externe Zugriffsrate zu erreichen. Chip Modul Speichertakt I/O-Takt ² Effektiver Takt ³ Ü-rate pro Modul Ü-rate Dual-Channel DDR2-800 PC2-6400 200 MHz 400 MHz 800 MHz 6,4 GB/s 12,8 GB/s DDR3-1066 PC3-8500 133 MHz 533 MHz 1066 MHz 8,5 GB/s 17,0 GB/s ² = Geschwindigkeit der Anbindung an den Speichercontroller von CPU oder Mainboard ³ = Effektiver Takt im Vergleich zu SDR-SDRAM (theoretisch)

Interne Struktur eines DDR Speicherchips 51 256 MBit (32Mx8) DDR Chip 4 Bänke interne Datenbreite 16 Bit externe Datenbreite 8 Bit DQS = bidirektionales Strobesignal zeigt Gültigkeit der Daten an. Dient zur Synchronisation DM = DataInMask zeigt das zu schreibende Byte an.

Burst-Modes bei Synchronen (statischen) SRAMs 52 schnellerer, mit dem Takt synchronisierter Zugriff im Vergleich zu den asynchronen SRAMs Hauptanwendung: Realisierung prozessorexterner Caches (L2- Cache) öffnen und schließen der Zeile entfällt, direkter Zugriff Nebenanwendung: als schnelle Speicher für Mikroprozessoren und FPGAs einsetzbar Unterstützung von 4-Wort und 2- Wort-Bursts (syncburst SRAM) Speichwortbreite 16 oder 32 Bit Beispiel für einen SRAM-Modul Datenkapazität: 512 kbyte Zugriffsbreite 64 Bit 2 SRAMs mit je 64 K * 32 Bit für die Daten (Cache-Lines) zusätzlich 1 SRAM mit 16K * 8 Bit für das Tag

SyncBurst SRAM Varianten 53 Single Data Rate flow-through: kein Ausgaberegister pipelined: Ausgaberegister erlaubt dadurch höhere Taktung Double Data Rate, DDR-SRAM höhere externe Taktraten interne Verbreiterung der Datenpfade Quad Data Rate Schreib- und Leseport getrennt paralleles Schreiben und Lesen von Blöcken adr din dout

Zugriffe, maßstabsgetreu 54 Einzelwort- / 4 Wort-Zugriff Einzelwort- / 4 Wort-Zugriff Zwei 4 Wort-Zugriffe Zwei 4 Wort-Zugriffe Zwei 4 Wort-Zugriffe Read Zwei 4 Wort-Zugriffe Write

Ergänzungen 55 Timing 128Mbit Graphic DDR SDRAM Measurement DDR333 einfacher Speicherschutz Begriffe bei der Speicheradressierung (Zusammenfassung)

Timing 128Mbit Graphic DDR SDRAM 56 Rev 1.1(Nov 2004)

Measurements at DDR333 SODIMM 57 data strobe Altera Stratix Device and Micron DDR333 SODIMM

Einfacher Speicherschutz 58 Die CPU gibt ein Statussignal User/Supervisor aus. Der Adressraum wird in zwei Hälften geteilt. In der unteren Hälfte befindet sich der Supervisor- Speicher, in der oberen der User-Speicher. Im User-Mode kann nur der User-Speicher aktiviert werden (durch Adressen mit A31=1) Im Supervisor-Mode können beide Speicher aktiviert werden. Adressbit A31 User/Supervisor Supervisor Supervisor Programm/Data A31=0 CPU Statussignal User User Programm/Data A31=1

Begriffe bei der Speicheradressierung (Zusammenfassung) 59 Seitennummer Wortnummer (Adr. im Speicher) ADRHigh ADRLow ADRByte Byteadresse 1010 1111 0000 xxxx xxxx xxxx xxxx xx xx Seite (Seitenadressbereich) x = 0 oder 1 1010 1111 0000 0000 0000 0000 0000 00 00 Basisadresse 1010 1111 0000 xxxx xxxx xxxx xxxx xx ** 12 18 2 Adressmaske für Speicherbaustein mit 20 Bit Adresse x = 0 oder 1 * = nicht angeschlossen