Lec 9
Lec 9
Dynamic RAM (DRAM) is the highest density, lowest cost Internally, DRAMs are much like other memories, except:
memory currently available. For these reasons it is univerally
used in any microprocessor-based system that requires more • RAS and CAS signals strobe latches row and column halves
than a small amount of non-volatile writable storage. of multiplexed address
• One transistor per cell (drain acts as capacitor) • CAS may also serve as output enable
• Very small charges involved • Most x1 devices have separate input and output data pins
decoder
A0
latch
• reads are destructive; DRAM devices internally write Memory
data back on read A1 Array
latch
4:1 mux/demux
• using narrow logical configurations (x1, x4)
DIN DOUT
• The falling edges of RAS and CAS strobe the address bits Write timing is similar. If WE is asserted on the falling edge of
into the row and column latches, respectively. These must CAS, data is written from DIN instead of being read to DOUT.
be separated by at least tRCD. Note that this is different from SRAMs, which perform writes at
the end of the cycle (rising edge of WE).
• As with other memories, multiple access times are tRC
specified, and the time to valid data out will depend on
which is the critical path. For DRAMs, there are two access
ADDR row col
times, tRAC and tCAC, for access time from valid row
address and valid column address, respectively.
tRAS tRP
tRC
RAS
ADDR row col tRCD
tCAS
tRAC tRP
CAS
RAS
tRCD WE
tCAC
DOUT valid
• The read cycle time (tRC) is typically much larger than the • Required setup and hold times on DIN and WE not shown.
access time due to the required precharge time tRP (not
drawn to scale).
• Typically done in hardware using counter (to track next row nibble mode: pusling CAS 4 times w/o deasserting RAS gives 4
index) and timer (to initiate one refresh) adjacent bits (only first column address used)
• Example: Hitachi 64Mbit DRAM requires 8192 refreshes fast page mode (FPM): pulsing CAS w/o deasserting RAS
every 64 ms. Access one row every (64 ms/8192) = 7.8 µs. takes new column address (do as often as desired)
• Need not provide column address: “RAS-only refresh” static column: like FPM, but no need to deassert CAS (latch is
transparent); just change address and it flow through
• Can also insert refresh cycle at end of unrelated read access;
if CAS is not deasserted, read data remains valid: “hidden extended data out (EDO): like FPM, but data stays valid after
refresh” deasserting CAS (limited pipelining, lets you pump in
column addresses faster)
• Some DRAMs have internal counter; system needs only to
indicate when to refresh “next” row by asserting CAS then
RAS (opposite of regular access): “CAS-before-RAS
(CBR) refresh”
Other solutions?
• The next pair of row and column addresses can be provided • 400 Mhz clock, data transferred on both edges
while the previous access is still completing
• 16-bit bus
• SDRAMs have multiple (e.g., 4) memory arrays (banks) so
that independent accesses can be even further overlapped: • result: 1.6 Gbytes per second on one “channel”
• provide row address for bank 1 • high-end servers will have multiple channels
• provide row address for bank 2 • 16 banks per chip: if enough accesses go to different banks,
a single chip can provide the full 1.6 GB/s
• provide column address for bank 1
• nice solution to granularity problem: what is minimum
• provide column address for bank 2 memory system size/increment given very dense chips?
• get data from bank 1 • SDRAM vendors using two-edge trick in new “dual data
rate” (DDR) SDRAMs
• get data from bank 2
• Sync-Link DRAM (SLDRAM) uses similar ideas as
• Clock speeds of 66, 100, 125 MHz Rambus (with a few key changes, mostly at the electrical
level), but is standards-based instead of proprietary
• Sega Saturn was one of the earliest widespread users