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