Transcript 10-SDRAM

SDRAM Memory Controller
 Static RAM Technology
6T Memory Cell
Memory Access Timing
 Dynamic RAM Technology
1T Memory Cell
Memory Access Timing
CS 150 - Spring 2007 – Lec #10: Memory Controller - 1
Tri-State Gates
IN
OUT
+
OE_L
In OE_L Out
X
1
Z
0
0
0
1
0
1
IN
OUT
+
OE_L
OUT
OUT
OE_L
OE_L
IN
IN
0
CS 150 - Spring 2007 – Lec #10: Memory Controller - 2
0
Slick Multiplexer Implementation
2:1 Multiplexer
S
0
1
Out
IN0
IN1
IN0
IN1
S
CS 150 - Spring 2007 – Lec #10: Memory Controller - 3
OUT
Basic Memory Subsystem Block Diagram
Word Line
Address
Decoder
Memory
cell
2n word
lines
what happens
if n and/or m is
very large?
n Address
Bits
m Bit Lines
CS 150 - Spring 2007 – Lec #10: Memory Controller - 4
Static RAM Cell
word
6-Transistor SRAM Cell
0
0
bit
word
(row select)
1
1
bit
 Write:
1. Drive bit lines (bit=1, bit=0)
2. Select row
 Read:
bit
bit
replaced with pullup
to save area
1. Precharge bit and bit to Vdd or Vdd/2 => make sure equal!
2.. Select row
3. Cell pulls one line low
4. Sense amp on column detects difference between bit and bit
CS 150 - Spring 2007 – Lec #10: Memory Controller - 5
Typical SRAM Organization: 16-word x 4-bit
Din 3
Din 2
Din 1
Din 0
WrEn
Precharge
Wr Driver &
- Precharger+
Wr Driver &
- Precharger+
Wr Driver &
- Precharger+
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
:
:
:
:
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
- Sense Amp+
- Sense Amp+
- Sense Amp+
- Sense Amp+
Dout 3
Dout 2
Dout 1
Dout 0
CS 150 - Spring 2007 – Lec #10: Memory Controller - 6
Word 0
Word 1
Word 15
Address Decoder
Wr Driver &
- Precharger+
A0
A1
A2
A3
Logic Diagram of a Typical SRAM
 Write Enable is usually active low
(WE_L)
 Din and Dout are combined to
save pins:
A new control signal, output enable
(OE_L) is needed
WE_L is asserted (Low), OE_L is
disasserted (High)
D serves as the data input pin
WE_L is disasserted (High), OE_L is
asserted (Low)
A
N
WE_L
OE_L
D is the data output pin
Both WE_L and OE_L are asserted:
Result is unknown. Don’t do that!!!
CS 150 - Spring 2007 – Lec #10: Memory Controller - 7
2 N words
x M bit
SRAM
M
D
Typical SRAM Timing
A
N
WE_L
OE_L
2 N words
x M bit
SRAM
D
M
Write Timing:
D
OE determines direction
Hi = Write, Lo = Read
Writes are dangerous! Be careful!
Double signaling: OE Hi, WE Lo
Read Timing:
High Z
Data In
Data Out
Data Out
Junk
A
Write Address
Read Address
Read Address
OE_L
WE_L
Write
Hold Time
Write Setup Time
Read Access
Time
CS 150 - Spring 2007 – Lec #10: Memory Controller - 8
Read Access
Time
Problems with SRAM
 Six transistors use up lots
of area
 Consider a “Zero” is stored
in the cell:
Transistor N1 will try to pull
“bit” to 0
Transistor P2 will try to pull
“bit bar” to 1
 Bit lines are already precharged high: Are P1 and P2
really necessary?
Select = 1
P1
P2
Off On
On
On
On Off
N1
bit = 1
CS 150 - Spring 2007 – Lec #10: Memory Controller - 9
N2
bit = 0
1-Transistor Memory Cell (DRAM)
 Write:
row select
1. Drive bit line
2. Select row
 Read:
1. Precharge bit line to Vdd/2
2. Select row
3. Cell and bit line share charges
Minute voltage changes on the bit line
4. Sense (fancy sense amp)
bit
Can detect changes of ~1 million electrons
5. Write: restore the value
 Refresh
1. Just do a dummy read to every cell
CS 150 - Spring 2007 – Lec #10: Memory Controller - 10
Read is really a
read followed by
a restoring write
Classical DRAM Organization (Square)
bit (data) lines
r
o
w
d
e
c
o
d
e
r
row
address
Each intersection represents
a 1-T DRAM Cell
RAM Cell
Array
Square keeps the wires short:
Power and speed advantages
Less RC, faster precharge and
discharge is faster access time!
word (row) select
Column Selector &
I/O Circuits
data
Column
Address
 Row and Column Address together:
Select 1 bit a time
CS 150 - Spring 2007 – Lec #10: Memory Controller - 11
Sense Amps & I/O
11
R
O
W
D
E
C
O
D
E
R
11
Memory Array
(2,048 x 2,048)
Storage
Word Line Cell
 Square root of bits per RAS/CAS
Row selects 1 row of 2048 bits from 2048 rows
Col selects 1 bit out of 2048 bits in such a row
CS 150 - Spring 2007 – Lec #10: Memory Controller - 12
Data In
Column Decoder
…
Bit Line
A0…A10
Address Buffer
4 Mbit = 22 address bits
11 row address bits
11 col address bits
D
Data Out
DRAM Logical Organization (4 Mbit)
Q
Logic Diagram of a Typical DRAM
RAS_L
A
9
CAS_L WE_L
256K x 8
DRAM
OE_L
8
D
 Control Signals (RAS_L, CAS_L, WE_L, OE_L) are all active low
 Din and Dout are combined (D):
 WE_L is asserted (Low), OE_L is disasserted (High)
D serves as the data input pin
 WE_L is disasserted (High), OE_L is asserted (Low)
D is the data output pin
 Row and column addresses share the same pins (A)
 RAS_L goes low: Pins A are latched in as row address
 CAS_L goes low: Pins A are latched in as column address
 RAS/CAS edge-sensitive
CS 150 - Spring 2007 – Lec #10: Memory Controller - 13
DRAM READ Timing
RAS_L
 Every DRAM access begins at:
 Assertion of the RAS_L
 2 ways to read: early or late v. CAS
CAS_L WE_L
A
256K x 8
DRAM
9
OE_L
D
8
DRAM Read Cycle Time
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Row Address
Col Address
Junk
WE_L
OE_L
D
High Z
Junk
Data Out
Read Access
Time
High Z
Data Out
Output Enable
Delay
Early Read Cycle: OE_L asserted before CAS_L
Late Read Cycle: OE_L asserted after CAS_L
CS 150 - Spring 2007 – Lec #10: Memory Controller - 14
Early Read Sequencing
 Assert Row Address
 Assert RAS_L
 Commence read cycle
 Meet Row Addr setup time before RAS/hold time after RAS
 Assert OE_L
 Assert Col Address
 Assert CAS_L
 Meet Col Addr setup time before CAS/hold time after CAS
 Valid Data Out after access time
 Disassert OE_L, CAS_L, RAS_L to end cycle
CS 150 - Spring 2007 – Lec #10: Memory Controller - 15
Sketch of Early Read FSM
FSM Clock?
Row Address to Memory
Setup time met?
Assert RAS_L
Hold time met?
Assert OE_L, RAS_L
Col Address to Memory
Setup time met?
Assert OE_L, RAS_L, CAS_L
Hold time met?
Assert OE_L, RAS_L, CAS_L
Data Available (better grab it!)
CS 150 - Spring 2007 – Lec #10: Memory Controller - 16
Late Read Sequencing
 Assert Row Address
 Assert RAS_L
 Commence read cycle
 Meet Row Addr setup time before RAS/hold time after RAS
 Assert Col Address
 Assert CAS_L
 Meet Col Addr setup time before CAS/hold time after CAS
 Assert OE_L
 Valid Data Out after access time
 Disassert OE_L, CAS_L, RAS_L to end cycle
CS 150 - Spring 2007 – Lec #10: Memory Controller - 17
Sketch of Late Read FSM
FSM Clock?
Row Address to Memory
Setup time met?
Assert RAS_L
Hold time met?
Col Address to Memory
Assert RAS_L
Setup time met?
Col Address to Memory
Assert RAS_L, CAS_L
Hold time met?
Assert OE_L, RAS_L, CAS_L
Data Available (better grab it!)
CS 150 - Spring 2007 – Lec #10: Memory Controller - 18
DRAM WRITE Timing
RAS_L
CAS_L WE_L
OE_L
 Every DRAM access begins at:
 The assertion of the RAS_L
 2 ways to write: early or late v. CAS
A
9
256K x 8
DRAM
8
Col Address
Junk
D
DRAM WR Cycle Time
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Row Address
OE_L
WE_L
D
Junk
Data In
WR Access Time
Early Wr Cycle: WE_L asserted before CAS_L
Junk
Data In
Junk
WR Access Time
Late Wr Cycle: WE_L asserted after CAS_L
CS 150 - Spring 2007 – Lec #10: Memory Controller - 19
Key DRAM Timing Parameters
 tRAC: minimum time from RAS line falling to the valid data
output.
 Quoted as the speed of a DRAM
 A fast 4Mb DRAM tRAC = 60 ns
 tRC: minimum time from the start of one row access to the start
of the next.
 tRC = 110 ns for a 4Mbit DRAM with a tRAC of 60 ns
 tCAC: minimum time from CAS line falling to valid data output.
 15 ns for a 4Mbit DRAM with a tRAC of 60 ns
 tPC: minimum time from the start of one column access to the
start of the next.
 35 ns for a 4Mbit DRAM with a tRAC of 60 ns
CS 150 - Spring 2007 – Lec #10: Memory Controller - 20
SDRAM Memory Controller
 Static RAM Technology
6T Memory Cell
Memory Access Timing
 Dynamic RAM Technology
1T Memory Cell
Memory Access Timing
CS 150 - Spring 2007 – Lec #10: Memory Controller - 22