ddr ram qimonda 1 gb 333 mhz

Transcrição

ddr ram qimonda 1 gb 333 mhz
Inhalt Teil 2
6.1 Speicheraufbau und Speicherzugriff
6.1.1 Funktionsweise
 SRAM asynchron
 DRAM asynchron
6.1.2 Aufbau einer Speichereinheit
•
•
•
•
6.1.5 Blockbuszyklen
6.1.6 Burst-Mode-Techniken bei DRAM und
SRAM
 bei asynchronen DRAMs
RAM-Ansteuerung
Memory Map
Adressmaske
DRAM-Speichermodule
 Lead-Off-Cycle
 bei synchronen DRAMs
 DDR
• bei synchronen SRAMs
6.1.3 Verschränken von Speicherbänken
6.1.4 Überlappen von Buszyklen
 Adresspipelining
 Split-Bus-Transaktionen
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
• SDR: Flow-through/Pipelined
• DDR
• QDR

Ergänzung




Timing 128Mbit Graphic DDR SDRAM
Measurement DDR333
einfacher Speicherschutz
(Zusammenfassung) Begriffe bei der
Speicheradressierug
Systementwurf mit Mikroprozessoren WS 09/10
1
6. Speicherorganisation
2
6.1 Speicheraufbau und Speicherzugriff
Speicherhierarchie
schnell
Register (on-chip)
Cache (on/off-chip)
Hauptspeicher (off/on-chip)
Plattenspeicher
groß
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
6.1.1 Funktionsweise
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#
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
OE# = Output Enable
dient zum separaten Einschalten des
Ausgangstreibers beim Lesen.
Falls nicht vorhanden, wird der Ausgangstreiber
bereits durch CS# eingeschaltet.
Systementwurf mit Mikroprozessoren WS 09/10
3
SRAM-Speicherzelle
T1, T2
Rückgekoppelte Transistoren
RL
Lastwiderstände
T3, T4
Durchschalt-Transistoren
Di, Di#
komplementäre Lese- oder
Schreibinformation
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
4
Lesezyklus
Adressbus
5
high
=Anfangsadresse
low
CS#
read
RAM
CPU
WE#
DOUT
read
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
tACS
tRC
Access Time From Chip Select
Read Cycle Time
Systementwurf mit Mikroprozessoren WS 09/10
Schreibzyklus
Adressbus
6
high
=Anfangsadresse
low
CS#
write
RAM
CPU
WE#
DIN
Datenbus
write
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
tAS
tWP
tDS
tDH
twc
Systementwurf mit Mikroprozessoren WS 09/10
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)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
8
*
not CS
High-Z
not OE
High-Z
OE
Output
Read
CS
Write
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Input
Systementwurf mit Mikroprozessoren WS 09/10
Lesezyklus
OE# muss aktiviert werden
Dout bleibt noch für die HoldZeiten gültig
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
9
Schreibzyklus, mit positiver Flanke von WE#
Der Schreibvorgang wird
durch die positive Flanke von
WE# ausgelöst.
Din muss tDW vorher und tDH
nachher stabil sein.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
10
Schreibzyklus, mit positiver Flanke von CS#
Wenn CS# vor der
Schreibflanke inaktiv wird,
dann wird der
Schreibvorgang mit dieser
Flanke ausgelöst.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
11
Ein Speichermodell
Din
CS
CS
Decoder
Write
AdrHigh
Speicherzelle
CS
Read
AdrLow
Multiplexer/
Decoder
CS
 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.
 Es kann als Ausgangspunkt für ein
zeitbehaftetes Simulationsmodell benutzt
werden.
CS
OutputEnable
Dout
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
12
Dynamisches RAM (DRAM)

DRAM-Speicherzelle benötigt nur etwa
1/4 der Chipfläche einer SRAMSpeicherzelle
 höhere Speicherkapazität pro
Speicherchip
 Kosten pro Speicherbit niedriger

Ladung fließt ab
 Wiederauffrischen (refresh)
erforderlich, ca. alle 64 ms
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur

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.
1. Zeilenadresse (row)
Übernahme durch:
row address strobe RAS
2. Spaltenadresse (column)
Übernahme durch:
column address strobe CAS
Systementwurf mit Mikroprozessoren WS 09/10
13
DRAM-Speicherzelle
Durchschalttransistor
Spaltenbitleitung
Ladungsspeicher
(Transistor)
Vorteil:
Geringer Platzbedarf (ca. ¼
gegenüber SRAM-Zelle)
Nachteil:
Kondensator entlädt sich
aufgrund von Leckströmen und
muss periodisch aufgefrischt
werden, falls kein Lese- oder
Schreibzugriff erfolgt
Entladen
Laden
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
14
DRAM-Baustein
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
15
Auffrischen
 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.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
16
Beschleunigung des Zugriffs

Recovery-Time
Außer der Zugriffszeit tRAS wird die
Recovery-Time tRP benötigt, dadurch ist
die Zykluszeit tRC 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
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
17
Systementwurf mit Mikroprozessoren WS 09/10
Lese- und Schreibzyklus
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
18
6.1.2 Aufbau einer Speichereinheit
AddressLow
Beispiel: 1-MBit-Speicherchip
mit 20 Adressleitungen und einer Datenleitung.
CE
RW
OE
Din/Dout
1 M X1 Bit-Zellen
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
AddressLow
19
1 MByte-Speicher, aus 8 Speicherchips (je 1 MBit)
Adresse
20
CE
RW
OE
8
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Datenbus
Systementwurf mit Mikroprozessoren WS 09/10
20
Aufbau eines Wortspeichers
AddressLow
20
Gegeben:
Speicherchip 1 MByte
20 Adressleitungen
8 Datenleitungen
CE
RW
OE
8
Din/Dout
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Gesucht:
Wortspeicher 1M x 32Bit
siehe nächste Folie
Systementwurf mit Mikroprozessoren WS 09/10
21
1 M x 32-Speicher, aus 8 Speichermoduln (je 1 MByte)
AddressLow
20
RW,OE
CS
BE
3
BE
2
BE
1
BE = Byte-EnableBE
Signal0vom Prozessor
CS
CS
32
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
CS
Datenbus
Systementwurf mit Mikroprozessoren WS 09/10
Die Byte-EnableSignale vom Prozessor
werden mit den ChipSelect-Signalen der
Speichermodule
verbunden.
Dadurch wird nur auf
die Module zugegriffen,
die durch BEi aktiviert
werden.
22
4 M x 32-Speicher, aus 4 Speichermoduln (je 1 M x 32)
== Anfangsadresse
Der Adressraum wird
um die Anzahl der
Module vervielfacht.
(hier 4
Bänke/Speicherseiten)
AddressLow
20
RW
Die Module werden
parallel geschaltet
(Adress- und
Datenbus).
Enable
2
Address
Middle
23
CS
CS
CS
CS
Datenbus
32
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
Die Auswahl der aktiven
Speicherbank erfolgt
über einen Decoder, der
AddressMiddle
auswertet.
Die Ausgänge des
Decoders werden nur
aktiv, wenn der EnableEingang aktiv ist.
RAM-Ansteuerung, Prinzip
24
VA (Valid Address)
Adressdecoder für RAMs
ByteEnable[3..0]
CSi = Seitennummer . VA . BEi
High
ADR
CS3
CS2
CS1
CS0
Low
CPU
BUSCLK
RW
M3
M2
M1
READY
8
DATA
32
Adresse
ADRHigh
Seitennummer
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
ADRLow
ADRByte
Adr. im Speicher
interne Adresse
Systementwurf mit Mikroprozessoren WS 09/10
M0
Memory Map

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 2k verschiedenen
Adressen (Lokale Adressen)
 aktiviert einen Baustein ab einer
festzulegenden Basisadresse, die
meist ein Vielfaches R von 2k 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.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur

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
Systementwurf mit Mikroprozessoren WS 09/10
25
Beispiel 1
26
Byteadressen
Gegeben
Speichertabelle
Speicherbausteine
- ROM 64x32
- ROM 4kB =1k x 32
- RAM 1 MB=256k x 32
Gesucht
- Logik zum Anschluss
der Speicherbausteine
0
255
256
ROM Vektortabelle
4K-1
ROM
(Initialisierungs- und
Laderoutinen)
1M
unbenutzt
bzw. nicht vorhanden
RAM
(Anwendung)
2M-1
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
Lösung Beispiel 1
Wort#
0
63
64
Byte#
0
255
256
27
____
CSb = VA.(A[31:12]=0).CSa
a
CSc = VA.(A[31:20]=1)
CSa = VA.(A[31:8]=0)
Adresse
b
1k-1
4K-1
CPU
6
10
18
A[7:2]
A[11:2]
A[19:2]
a
b
c
frei
RW
256k
1M
Data
c
512k-1
2M-1
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Die CS-Signale werden nur aktiv, wenn die
Adresse gültig ist (VA=1).
Speicher b und a überlappen sich. Für die ByteAdressen von 0 – 255 wird nur der Speicher a
aktiviert, nicht der Speicher b. (Vorrangschaltung)
Systementwurf mit Mikroprozessoren WS 09/10
Adressbus: Adressmaske
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**
ADRHigh wird decodiert,
um den Anfang des
Speicherbereichs
festzulegen
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
6-Bit-Wortnummer
zum Speicherbaustein
(Lokale Adresse)
CSa=VA.(A[31:8]=0)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
28
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)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Basisadresse = $00100000
Systementwurf mit Mikroprozessoren WS 09/10
Beispielaufgabe 2
 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?)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
30
Lösung
31
Wortnummer
Wortindex
(ohne **)
Bit 22
1 M +0
AToROM= ---- ---- -1-- ---- ---x xxxx xxxx xx**
1 M +2K-1
11
ROM
CS
Bit 23
AToRAM= ---- ---- 1-xx xxxx xxxx xxxx xxxx xx**
Die nicht
angeschlossenen
Adressleitungen
sind durch „-“ in
der Adressmaske
markiert.
2M
20
RAM
RW
3M-1
CS
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
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 2n mal im Speicheradressraum. (n = Anzahl
der Striche in der Adressmaske)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
DRAM-Speichermodule
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.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
33
Qimonda 2008
DDR2-SDRAM 256Mb-2Gb
800 Mb/s
DDR2- Unbuffered DIMMs -240 pin
256MB – 2 GB
Fine Pitch Ball Grid Array
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
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
34
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
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
DDR3- Unbuffered DIMMs -240 pin
512MB – 2 GB
Systementwurf mit Mikroprozessoren WS 09/10
6.1.3 Verschränken von Speicherbänken
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.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
36
Aufeinanderfolgende Lesezugriffe, DRAM
(2+1)
(2+1)
Eine Bank
(2+0)
(2+0)
Zwei Bänke
verschränkt
Recovery muss
nicht abgewartet
werden
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
37
Verschränken: Implementierung


Ziel: Aufeinanderfolgende Zugriffe
sollen zu einem Bankwechsel führen.
Einfache Hardware-Lösung: 2n
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)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
38
Systementwurf mit Mikroprozessoren WS 09/10
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.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
 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.
Systementwurf mit Mikroprozessoren WS 09/10
39
Adresspipelining
40
(2+3=5)
Eine Bank
(5-2)
Vier Bänke
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
Speicher mit 4 Speicherbänken
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
41
(6.1.4 Überlappen von Buszyklen)
Split-Bus-Transaktionen




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 InterProcessor-Pipelining bezeichnet)
Hardware: getrennte, parallele
Verwaltung für die Zuteilung von
Adressbus und Datenbus.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
42

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 AdressPipelining, auch Intra-ProcessorPipelining genannt)

Erfordert zusätzliche Steuer-Logik und
Pufferregister.
PowerPC601, PentiumPro und
folgende

Systementwurf mit Mikroprozessoren WS 09/10
Split-Bus-Transaktionen
43
Adressbus
Arbitration
AdressTransfer1
Arbitration
AdressTransfer2
Arbitration
AdressTransfer3
Datenbus
Arbitration
DatenTransfer1
Arbitration
DatenTransfer3
Arbitration: Bewerben und Zuteilung eines Busses
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
Arbitration
DatenTransfer2
6.1.5 Blockbuszyklen


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)


Der Speicher muss intern so organisiert
sein, dass er Folgezugriffe beschleunigt
ausführen kann.

Die Folgeadressen werden automatisch
im Speicherbaustein selbst oder in seiner
Nähe durch eine geeignete
Speicheransteuerlogik generiert.
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.


R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur

Mögliche Speicherorganisation:
Dadurch Einsparung des Takts für die
Adressierung zwischen zwei Bursts. (Bild
6-13c)
Systementwurf mit Mikroprozessoren WS 09/10
44
Burst, Pipelined Burst
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
45
6.1.6 Burst-Mode-Techniken bei DRAM und SRAM

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)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
46
Lead-Off-Cycle
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
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
47
Burst-Modes bei  asynchronen DRAMs
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
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
48
Burst-Modes bei  SDRAMs (synchrones DRAM)
 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
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
 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)
Systementwurf mit Mikroprozessoren WS 09/10
49
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
DDR2-800 PC2-6400 200 MHz
DDR3-1066 PC3-8500 133 MHz
I/O-Takt ²
400 MHz
533 MHz
Effektiver Takt ³
Ü-rate pro Modul
Ü-rate Dual-Channel
800 MHz
1066 MHz
6,4 GB/s
8,5 GB/s
12,8 GB/s
17,0 GB/s
² = Geschwindigkeit der Anbindung an den Speichercontroller von CPU oder
Mainboard
³ = Effektiver Takt im Vergleich zu SDR-SDRAM (theoretisch)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
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.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
Burst-Modes bei  Synchronen (statischen) SRAMs
 schnellerer, mit dem Takt
synchronisierter Zugriff im Vergleich
zu den asynchronen SRAMs
 öffnen und schließen der Zeile
entfällt, direkter Zugriff
 Unterstützung von 4-Wort und 2Wort-Bursts (syncburst SRAM)
 Speichwortbreite 16 oder 32 Bit
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
52
 Hauptanwendung: Realisierung
prozessorexterner Caches (L2Cache)
 Nebenanwendung: als schnelle
Speicher für Mikroprozessoren und
FPGAs einsetzbar
 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
Systementwurf mit Mikroprozessoren WS 09/10
SyncBurst SRAM Varianten
53
 Single Data Rate
 flow-through: kein Ausgaberegister
 pipelined: Ausgaberegister
• erlaubt dadurch höhere Taktung
din
adr
 Double Data Rate, DDR-SRAM
 höhere externe Taktraten
 interne Verbreiterung der Datenpfade
dout
 Quad Data Rate
 Schreib- und Leseport getrennt
 paralleles Schreiben und Lesen von Blöcken
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
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
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
Ergänzungen




Timing 128Mbit Graphic DDR SDRAM
Measurement DDR333
einfacher Speicherschutz
Begriffe bei der Speicheradressierung (Zusammenfassung)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
55
Timing 128Mbit Graphic DDR SDRAM
Rev 1.1(Nov 2004)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
56
Measurements at DDR333 SODIMM
data
strobe
Altera Stratix Device and Micron DDR333 SODIMM
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 09/10
57
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 SupervisorSpeicher, 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
CPU
Supervisor
Supervisor Programm/Data
A31=0
Statussignal
User
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
User Programm/Data
A31=1
Systementwurf mit Mikroprozessoren WS 09/10
Begriffe bei der Speicheradressierung (Zusammenfassung)
Seitennummer
ADRHigh
Wortnummer (Adr. im Speicher)
ADRLow
ADRByte
1010 1111 0000 xxxx xxxx xxxx xxxx xx
xx
1010 1111 0000 0000 0000 0000 0000 00
00
1010 1111 0000 xxxx xxxx xxxx xxxx xx
12
18
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
**
2
Byteadresse
Seite (Seitenadressbereich)
x = 0 oder 1
Basisadresse
Adressmaske
für Speicherbaustein mit
20 Bit Adresse
x = 0 oder 1
* = nicht angeschlossen
Systementwurf mit Mikroprozessoren WS 09/10
59