CMPUT 329 Memory Technologies Memory classes
CMPUT 329 Memory Technologies Memory classes
CMPUT 329 Memory Technologies Memory classes
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>CMPUT</strong> <strong>329</strong><br />
<strong>Memory</strong> <strong>Technologies</strong><br />
José Nelson Amaral<br />
1<br />
<strong>Memory</strong> <strong>classes</strong><br />
Read only memory (ROM) - non-volatile<br />
PROM<br />
EPROM<br />
EEPROM (flash)<br />
Random access memory (RAM) - volatile<br />
Static RAM (SRAM)<br />
Dynamic RAM (DRAM)<br />
Synchronized DRAM (SDRAM)<br />
Double data rate (DDR) SDRAM<br />
2<br />
1
Static RAM Cell<br />
3<br />
Dynamic <strong>Memory</strong> Cell<br />
An SRAM cell has a bi-stable latch that requires from<br />
four to six transistors to be built.<br />
To deliver the higher memory density required for<br />
computer systems, a single transistor memory cell<br />
was developed.<br />
bit line<br />
word line<br />
1-bit DRAM cell<br />
4<br />
2
Writing 1 in a Dynamic<br />
Memories<br />
bit line<br />
word line<br />
1-bit DRAM cell<br />
To store a 1 in this cell, a HIGH voltage is placed on<br />
the bit line, causing the capacitor to charge through<br />
the on transistor.<br />
5<br />
Writing 0 in a Dynamic<br />
Memories<br />
bit line<br />
word line<br />
1-bit DRAM cell<br />
To store a 0 in this cell, a LOW voltage is placed on<br />
the bit line, causing the capacitor to discharge through<br />
the on transistor.<br />
6<br />
3
Destructive Reads<br />
bit line<br />
word line<br />
1-bit DRAM cell<br />
To read the DRAM cell, the bit line is precharged to<br />
a voltage halfway between HIGH and LOW, and<br />
then the word line is set HIGH.<br />
Depending on the charge in the capacitor, the precharged<br />
bit line is pulled slightly higher or lower.<br />
A sense amplifier detects this small change and<br />
recovers a 1 or a 0.<br />
7<br />
Recovering from<br />
Destructive Reads<br />
bit line<br />
word line<br />
1-bit DRAM cell<br />
The read operation discharges the capacitor.<br />
Therefore a read operation in a dynamic memory must<br />
be immediately followed by a write operation of the same<br />
value read to restore the capacitor charges.<br />
8<br />
4
Forgetful Memories<br />
bit line<br />
word line<br />
1-bit DRAM cell<br />
The problem with this cell is that it is not bi-stable:<br />
only the state 0 can be kept indefinitely, when the<br />
cell is in state 1, the charge stored in the capacitor<br />
slowly dissipates and the data is lost.<br />
9<br />
Accesses to SRAM<br />
Read An address is placed on the address inputs while<br />
CS and OE are asserted. The latch outputs for the<br />
selected memory locations are delivered to DOUT.<br />
Write An address is placed on the address inputs and<br />
a data word is placed on DIN; then CS and WE are<br />
asserted. The latches in the selected memory<br />
location open, and the input word is stored.<br />
10<br />
5
0 A2<br />
1 A1<br />
1 A0<br />
3-to-8<br />
decoder<br />
1<br />
2<br />
1<br />
0<br />
WE_L<br />
CS_L<br />
OE_L<br />
0<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
WR_L<br />
IOE_L<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN2<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN1<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN0<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DOUT3 DOUT2 DOUT1 DOUT0<br />
0 A2<br />
1 A1<br />
1 A0<br />
3-to-8<br />
decoder<br />
1<br />
2<br />
1<br />
0<br />
WE_L<br />
CS_L<br />
OE_L<br />
0<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
WR_L<br />
IOE_L<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DOUT3 DOUT3 DOUT3 DOUT3<br />
6
0 A2<br />
1 A1<br />
1 A0<br />
3-to-8<br />
decoder<br />
1<br />
2<br />
1<br />
0<br />
WE_L<br />
CS_L<br />
OE_L<br />
0<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
WR_L<br />
IOE_L<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DOUT3 DOUT3 DOUT3 DOUT3<br />
0 A2<br />
1 A1<br />
1 A0<br />
3-to-8<br />
decoder<br />
1<br />
2<br />
1<br />
0<br />
WE_L<br />
CS_L<br />
OE_L<br />
0<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
WR_L<br />
IOE_L<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIN3<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DOUT3 DOUT3 DOUT3 DOUT3<br />
7
SRAM with Bi-directional<br />
Data Bus<br />
microprocessor<br />
WE_L<br />
CS_L<br />
OE_L<br />
WR_L<br />
IOE_L<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
IN OUT<br />
SEL<br />
WR<br />
DIO3 DIO2 DIO1 DIO0<br />
15<br />
Internal Address Decoding<br />
The SRAM shown in the previous slides had 3 address<br />
lines and stored 8 words, requiring a 3-to-8 internal<br />
decoder.<br />
Such a decoder requires eight AND gates, with<br />
three inputs each, and three invertors.<br />
Consider the HM628512 SRAM that has 19 address<br />
lines and stores 512K words. What size internal<br />
decoder this chip requires?<br />
A 19-to-512K decoder with 524288 AND gates, each<br />
with 19 inputs?<br />
16<br />
8
HM628512<br />
17<br />
Internal Address Decoding<br />
To avoid such a complexity in the decoding logic,<br />
all memories (EPROMs, SRAMs, and DRAMs) use<br />
two-dimensional decoding which reduces the<br />
decoder size to approximately the square root<br />
of the number of addresses.<br />
The memory cells are organized in a two-dimensional<br />
array. Some address lines are used to select a row<br />
and the others are used to select a column. The<br />
cell selected by the whole address is at the intersection<br />
of the row and the column.<br />
18<br />
9
Address Decoding: 16x1 DRAM<br />
19<br />
20<br />
10
Internal Structure of a<br />
64K × 1 DRAM<br />
Row<br />
decoder<br />
256 × 256<br />
array<br />
A0-A7<br />
RAS_L<br />
CAS_L<br />
WE_L<br />
row<br />
address<br />
control<br />
column<br />
address<br />
Column latches,<br />
multiplexers,<br />
and demultiplexers<br />
latch, mux, and<br />
dmux control<br />
DOUT<br />
DIN<br />
21<br />
Two Dimensional Decoding<br />
Row and column address lines are shared by<br />
the “temporal multiplexing” technique.<br />
RAS (row address strobe) and CAS (column<br />
address strobe) signals determine what address<br />
lines specify.<br />
Access time is further reduced when memory is<br />
read sequentially.<br />
The 2D decoding method also minimizes the<br />
length of the longest wire in the decoder.<br />
22<br />
11
Micron MT48lC128MA2<br />
512 Mbits<br />
Can work as:<br />
128 M x 4<br />
64 M x 8<br />
32 M x 16<br />
Pin Assignment<br />
Address lines: A0-A12<br />
Data lines: DQ0 - DQ15<br />
23<br />
24<br />
12
25<br />
26<br />
13
External Address Decoding<br />
microprocessor<br />
A0<br />
A0<br />
A1<br />
A1<br />
•<br />
A19<br />
A19<br />
A0<br />
27256<br />
A0<br />
A1<br />
A1<br />
•<br />
A14<br />
A14<br />
CS<br />
OE<br />
O0<br />
O1<br />
O7<br />
D0<br />
D1<br />
•<br />
D7<br />
A0<br />
A0<br />
A1<br />
A1<br />
•<br />
A14<br />
A14<br />
CS<br />
OE<br />
27256 27256 27256<br />
A0<br />
A0<br />
A0<br />
A0<br />
A1<br />
A1<br />
A1<br />
A1<br />
O0<br />
O1<br />
O7<br />
D0<br />
D1<br />
•<br />
D7<br />
•<br />
A14<br />
A14<br />
CS<br />
OE<br />
O0<br />
O1<br />
O7<br />
D0<br />
D1<br />
•<br />
D7<br />
•<br />
A14<br />
A14<br />
CS<br />
OE<br />
O0<br />
O1<br />
O7<br />
D0<br />
D1<br />
•<br />
D7<br />
D0<br />
D1<br />
D0<br />
D1<br />
•<br />
D7<br />
D7<br />
READ<br />
WRITE<br />
A19<br />
A18<br />
A17<br />
A15<br />
A16<br />
74x139<br />
HIMEN_L<br />
SE0000_L<br />
1G 1Y0<br />
SE8000_L<br />
1Y1<br />
SF0000_L<br />
1A 1Y2<br />
SF8000_L<br />
1B 1Y3<br />
27<br />
Improved DRAMs<br />
Central Idea: Each read to a DRAM actually<br />
reads a complete row of bits or word line from<br />
the DRAM core into an array of sense amps.<br />
A traditional asynchronous DRAM interface<br />
then selects a small number of these bits to be<br />
delivered to the cache/microprocessor.<br />
All the other bits already extracted from the DRAM<br />
cells into the sense amps are wasted.<br />
28<br />
14
Fast Page Mode DRAMs<br />
In a DRAM with Fast Page Mode, a page is defined as<br />
all memory addresses that have the same row address.<br />
To read in fast page mode, all the steps for row access<br />
in a standard read cycle are performed.<br />
Then OE and CAS are switched high, but RAS remains<br />
low.<br />
Then the last steps for providing a new column address,<br />
asserting CAS and OE, are performed for each new<br />
memory location to be read.<br />
29<br />
Write Cycle on an Asynchronous DRAM<br />
15
A Fast Page Mode Read Cycle on an Asynchronous DRAM<br />
Enhanced Data Output<br />
RAMs (EDO-RAM)<br />
The process to read multiple locations in an EDO-RAM<br />
is very similar to the Fast Page Mode.<br />
The difference is that the output drivers are not disabled<br />
when CAS goes high.<br />
This distinction allows the data from the current read cycle<br />
to be present at the outputs while the next cycle<br />
begins.<br />
As a result, faster read cycle times are allowed.<br />
32<br />
16
An Enhanced Data Output Read Cycle on an Asynchronous DRAM<br />
Synchronous DRAMs<br />
(SDRAM)<br />
A Synchronous DRAM (SDRAM) has a clock input. It operates<br />
in a similar fashion as the fast page mode and EDO DRAM.<br />
However the consecutive data is output synchronously on the<br />
falling/rising edge of the clock, instead of on command by<br />
CAS.<br />
How many data elements will be output (the length of<br />
the burst) is programmable up to the maximum size of<br />
the row.<br />
SDRAM also uses multiple “banks” of memory to interleave<br />
RAS/CAS activation and data transfer.<br />
34<br />
17
DDR SDRAM<br />
A Double Data Rate (DDR) SDRAM is an SDRAM<br />
that allows data transfers both on the rising and<br />
falling edge of the clock.<br />
Thus the effective data transfer rate of a DDR<br />
SDRAM is two times the data transfer rate of<br />
a standard SDRAM with the same clock frequency.<br />
35<br />
References<br />
Randy H. Katz & Gaetano Borriello,<br />
“Contemporary Logic Design”, 2/E,<br />
Pearson / Prentice Hall, 2005. (ISBN 0-201-30857-6)<br />
section 10.4<br />
John F. Wakerly, "Digital Design, Principles<br />
and Practices", 3/E, Pearson / Prentice Hall, 2001.<br />
(ISBN 0-13-089896-1) sections 10.1-10.4<br />
36<br />
18