ECE 554 Computer Architecture Main Memory Spring 2013
ECE 554 Computer Architecture Main Memory Spring 2013
ECE 554 Computer Architecture Main Memory Spring 2013
Lecture 5
Main Memory
Spring 2013
Sudeep Pasricha
Department of Electrical and Computer Engineering
Colorado State University
Pasricha; portions: Kubiatowicz, Patterson, Mutlu, Binkert, Elsevier
Page 1
Memory subsystem
Channel
Processor
Memory
channel
Memory
channel
Page 2
Side view
Front of DIMM
Back of DIMM
Side view
Front of DIMM
Page 3
Back of DIMM
Rank 1
Rank
Rank 0 (Front)
Rank 1 (Back)
<0:63>
Addr/Cmd CS <0:1>
<0:63>
Data <0:63>
Memory channel
Page 4
Chip 7
<56:63>
Chip 1
...
<8:15>
<0:63>
<0:7>
Rank 0
Chip 0
Data <0:63>
Bank 0
<0:7>
<0:7>
Chip 0
<0:7>
...
<0:7>
<0:7>
Page 5
...
Bank 0
<0:7>
row 0
Row-buffer
1B
...
1B
<0:7>
1B
...
Channel 0
DIMM 0
0x40
64B
Rank 0
cache block
0x00
Page 6
Chip 1
0xFFFFF
Rank 0
Chip 7
<56:63
>
<0:7>
<8:15>
...
...
0x40
64B
Data <0:63>
cache block
0x00
Chip 1
0xFFFFF
Rank 0
Chip 7
...
Row 0
<56:63>
<8:15>
<0:7>
...
Col 0
0x40
64B
Data <0:63>
cache block
0x00
Page 7
Chip 1
Rank 0
0xFFFFF
Chip 7
...
Row 0
<0:7>
<8:15>
<56:63>
...
Col 0
0x40
64B
0x00
8B
Data <0:63>
cache block
8B
Chip 1
0xFFFFF
Rank 0
Chip 7
...
Row 0
<56:63>
<8:15>
<0:7>
...
Col 1
0x40
64B
0x00
8B
Data <0:63>
cache block
Page 8
Chip 1
Rank 0
0xFFFFF
Chip 7
...
Row 0
<0:7>
<8:15>
<56:63>
...
Col 1
0x40
8B
0x00
8B
64B
Data <0:63>
cache block
8B
Chip 1
0xFFFFF
Rank 0
Chip 7
...
Row 0
<56:63
>
<8:15>
<0:7>
...
Col 1
0x40
8B
0x00
8B
64B
Data <0:63>
cache block
Page 9
DRAM Overview
19
DRAM Architecture
bit lines
Col.
2M
Col.
1
N+M
Row 1
Row Address
Decoder
word lines
Row 2N
Memory cell
(one bit)
Page 10
Write:
1. Drive bit line
2.. Select row
Read:
1. Precharge bit line to Vdd/2
2. Select row
bit
3. Storage cell shares charge with bitlines
Very small voltage changes on the bit line
4. Sense (fancy sense amp)
Can detect changes of ~1 million electrons
5. Write: restore the value
Refresh
1. Just do a dummy read to every cell.
21
22
Page 11
24
Page 12
Rows
Row address 0
1
Commands
Columns
Row decoder
Access Address:
(Row 0, Column 0)
(Row 0, Column 1)
(Row 0, Column 85)
(Row 1, Column 0)
Row 01
Row
Empty
Column address 0
1
85
ACTIVATE 0
READ 0
READ 1
READ 85
PRECHARGE
ACTIVATE 1
READ 0
Column mux
Data
26
Page 13
RAS_L
CAS_L
WE_L
256K x 8
DRAM
OE_L
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Row Address
Col Address
Junk
WE_L
OE_L
D
High Z
Junk
Read Access
Time
Data Out
High Z
Output Enable
Delay
Data Out
27
DRAM: Burst
28
Page 14
DRAM: Banks
29
DRAM: Banks
30
Page 15
32
Page 16
Column
Address
DRAM
Row
Address
N rows
N cols
N x M SRAM
M bits
M-bit Output
2nd M-bit
3rd M-bit
4th M-bit
Col Address
Col Address
Col Address
RAS_L
CAS_L
A
Row Address
Col Address
34
CAS
RAS
(New Bank)
CAS Latency
Precharge
Burst
READ
Page 17
Row
Column
Precharge
Row
Data
[ Micron, 256Mb DDR2 SDRAM datasheet ]
400Mb/s
Data Rate
36
Memory Organizations
Page 18
Memory Organizations
Graphics Memory
Page 19
40
41
DRAM Modules
42
Page 20
DRAM Modules
43
44
Page 21
45
DRAM Ranks
46
Page 22
47
48
Page 23
FB-DIMM challenges
49
50
Page 24
DRAM Channels
52
DRAM Channels
53
Page 25
54
55
Page 26
56
Memory Controller
57
Page 27
58
59
Page 28
Latency Components:
Basic DRAM Operation
60
DRAM Addressing
61
Page 29
62
63
Page 30
68
70
Page 31
71
72
Page 32
73
74
Page 33
75
DRAM Reliability
DRAMs are susceptible to soft and hard errors
Dynamic errors can be
detected by parity bits
usually 1 parity bit per 8 bits of data
detected and fixed by the use of Error Correcting Codes (ECCs)
E.g. SECDED Hamming code can detect two errors and correct a
single error with a cost of 8 bits of overhead per 64 data bits
Page 34
Looking Forward
Continued slowdown in both density and access time of
DRAMs new DRAM that does not require a capacitor?
Z-RAM prototype from Hynix
77
Page 35