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