Академический Документы
Профессиональный Документы
Культура Документы
1
Dynamic RAM (DRAM) Dynamic RAM Structure
Bits stored as charge in capacitors
But charges leak, need refreshing even when
powered
Simpler construction than static RAM (SRAM)
Slower, but smaller per bit and less expensive
than SRAM
Used for main memory
Essentially analog rather than digital
Level of charge determines value
2
SRAM v DRAM Acronym Soup
Both are volatile So what is SDRAM?
Power needed to preserve data Synchronous DRAM
Dynamic cell SDR SDRAM Single Data Rate
Simpler to build and smaller then SRAM DDR SDRAM Double Data Rate
Therefore more dense and less expensive
DDR2, DDR3 double and quadruple r/w unit, DDR4 in
Needs refresh circuitry development
Favored for larger memory units RDRAM Rambus DRAM (more later)
Static cells Many more acronyms abound
Faster then DRAM
See A Fast Guide to RAM
More expensive to build http://whatis.techtarget.com/definition/0,,sid9_gci523855,00.html
Favored for cache memory
More on SDRAM later
3
Flash memory Chip Logic
Flash memory is not durable Trade-offs in chip design among speed,
Mostly limited to ~50K to ~100K erase cycles capacity and cost
Recently extended upwards to ~1M cycles Key issue is number of bits that can be written
Flash drivers have to manage bad blocks in a simultaneously
fashion similar to disk drivers One extreme: physical arrangement of memory cells
same as logical arrangement of words in memory.
16Mbit chip is 1M 16-bit words
Other extreme: one bit per chip, 16M memory uses
16 1-bit chips; with bit 1 of each word in chip 1 etc.
Refreshing Packaging
Refresh circuit included on chip
Disable chip
Count through rows
Read & Write back
Refresh takes time
Slows down apparent performance
4
1 MB EPROM Packaging 16MBit DRAM
Organized as 1M 8 bit words; 32 pins Organized as 4Mx4 bits
A0 A19 address pins (20 bit address) Data pins D1-D4 are input/output
D0 D7 are data out WE (Write enable) and OE (output enable)
determine if R or W
Power supply Vcc and ground Vss
Because DRAM is accessed by row, then by
Chip enable pin CE column, 11 address pins A0-A10 are
indicates whether address is valid for this chip; multiplexed
there may be several chips RAS (row address select) and CAS (column
CE pins are connected to H.O. bits of address lines address select) pins
on bus (> A19)
2 supply Vcc and ground pins Vss
Programming voltage pin Vpp used in write One No-Connect NC to make even number of
operations pins
256kByte Module
Organisation 1MByte Module Organisation
Each
5
Hamming Codes History of Hamming Codes
Developed at Bell Labs by Richard Hamming Richard Hamming worked on a Bell Model V
late 1940s electro-mechanical computer
Input was on punch cards, and the reader was
Key to Hamming codes is to add extra parity not reliable
bits in such a way that each bit in a word is On weekdays it would flash lights to alert the
checked by a unique combination of parity bits operator of an error. On weekends it would just
abort the job
Parity bits themselves are included in parity Richard Hamming unfortunately worked on
computations we can tell if there was simply weekends and became rather annoyed at having
an error in a parity bit to re-run all of his jobs, so he invented error-
correcting codes!
Bit Position 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Enc ode d Bits c1 c2 d1 c3 d2 d3 d4 c4 d5 d6 d7 d8 d9 d10 d11 c 5 d12 d13 d14 d15 d16
c1 X X X X X X X X X X X
c2 X X X X X X X X X X
Che ck Bit
Cov era ge c3 X X X X X X X X X X
c4 X X X X X X X X
c5 X X X X X X
6
Computing a Hamming Code Finding the error
Note that each check bit also checks itself! We had 101001110010
Example: A byte of data: 10110010
Create the data word, leaving spaces for the parity bits: Suppose mem read = 101001110110
_ _ 1 _ 01 1 _ 0 0 1 0 Compute check bits:
Calculate the parity for each check bit (? represents the bit position being set;
treat as 0): _ _ 1 _ 0 1 1 _ 0 1 1 0
Position 1 checks bits 1,3,5,7,9,11: 1 2 3 4 5 6 7 8 9 10 11 12
?_1_011_0010. Odd parity so c1 <- 1: c1 [3,5,7,9,11] <- 1 (OK)
1_1_011_0010
c2 [3,6,7,10,11] <- 1 (but c2 = 0)
Position 2 checks bits 2,3,6,7,10,11:
1?1_011_0010. Even parity so c2<-0: c3 [5,6,7,12] <- 0 (OK)
101_011_0010 c4 [9,10,11,12] <- 0 (but c4 = 1)
Position 4 checks bits 4,5,6,7,12: Error: c2 in pos 2, c4 in pos 8. 8+2=10
101?011_0010. Even parity so c3 <-0:
1010011_0010 Correct bit 10: 101001110010
Position 8 checks bits 8,9,10,11,12:
1010011?0010. Odd parity so c4 <- 1
101001110010
Coded word: 101001110010
7
Synchronous DRAM (SDRAM) Synchronous DRAM (SDRAM)
Access is synchronized with an external clock SDRAM latency is about the same asynchronous
Very fast (18 ns access time, 1.3 Gbs at 166 MHz bus speed) DRAM
Request on address bus latched in the SDRAM
Speed comes from ability to interleave
Some time later RAM responds with data
operations between banks of chips
(CPU waits for conventional DRAM)
Since SDRAM moves data in time with system clock, CPU knows Note that SDRAM has a mode register
when data will be ready Specifies things like burst length and read timing
CPU and bus do not have to wait; can do something else
Burst mode allows SDRAM to set up stream of data and
fire it out in block
DDR-SDRAM sends data twice per clock cycle (leading &
trailing edge)
8
RAMBUS Diagram DDR SDRAM
SDRAM can only send data once per clock
Double-data-rate SDRAM can send data twice
per clock cycle
Rising edge and falling edge
Fast, 12.5ns access time, 3.2Gbs at 200MHz bus
speed