Lecture 9 Memory Peripherals 2021
Lecture 9 Memory Peripherals 2021
(83-313)
Lecture 9:
Memory Peripherals
Prof. Adam Teman
25 May 2021
Disclaimer: This course was prepared, in its entirety, by Adam Teman. Many materials were copied from sources freely available on the internet. When possible, these sources have been cited;
however, some references may have been cited incorrectly or overlooked. If you feel that a picture, graph, or code example has been copied from you and either needs to be cited or removed,
please feel free to email [email protected] and I will address this as soon as possible.
Lecture Content
2
© Adam May
Teman,
25, 2021
Memory Peripherals Overview
3
Memory Architecture
Storage Cell
Bit Line Memory Size: W Words of C bits
=W x C bits
Address bus: A bits
ADDA-1 : ADDM
→W=2A
Row Decoder
Word Line
Real Datasheet
Example
Simple Definitions
• Row Decoder
• Column Multiplexer
Row Decoder
Word Line
AW-1 : AM
• Sense Amplifier
• Write Driver
• Precharge Circuit
C×2M
Sense Amplifiers /Drivers
Input/Output
(C bits)
7
© Adam May
Teman,
25, 2021
Row Decoder Design
8
Row Decoders
• A Decoder reduces the number of select signals by log2.
• Number of Rows: W
• Number of Row Address Bits: A=log2W
Word 0
Word 1
ADDA-1 : ADD0
Word 2
Row Decoder
Word W-2
Word W-1
WL0 = A7 A6 A5 A4 A3 A2 A1 A0 WL255 = A7 A6 A5 A4 A3 A2 A1 A0
• NOR Decoder:
• DeMorgan will provide us with a NOR Decoder.
• In the previous example, we’ll get 256 8-input NOR gates:
WL0 = A7 + A6 + A5 + A4 + A3 + A2 + A1 + A0
WL255 = A7 + A6 + A5 + A4 + A3 + A2 + A1 + A 0
10 Row Decoder Column Mux Precharge Sense Amp © Adam May
Teman,
25, 2021
How should we build it? WL0
WL255
(
t pd = t pINV ( pi + EFi ) = t pINV pi + N N PE )
12 Row Decoder Column Mux Precharge Sense Amp © Adam May
Teman,
25, 2021
Problem Setup
• For LE calculation we need to start with:
• Output Load (CL)
• Input Capacitance (Cin)
• Branching (B)
• What is the Load Capacitance?
• 256 bitcells on each Word Line
= 10 3; = 10 3 = 80 27;
p = 2 + 2 + 2 +1 = 7
= 2.37;
p = 8 +1 = 9 p = 4+2 = 6
p = 2 3 + 1 3 = 9
PE = F bi LEi =
= 2.37 213 = 19.418k
N opt = log 3.6 PE = 7.7
• Bit-cell Pitch:
• Each signal drives one row of bitcells.
• How will we fit 8 address signals into this pitch?
4 →16
A0
• How do we do this? A1 D
A2
• If we look at the final Boolean expression, A3
it has combinations of groups of inputs.
• By grouping together a few inputs,
we actually create a small decoder.
4 →16
• Then we just AND the outputs of all the A4
“pre” decoders.
A5 E
A6
• For example: Two 4:16 predecoders A7
D = dec ( A0 , A1 , A2 , A3 ) ; E = dec ( A4 , A5 , A6 , A7 ) ;
WL0 = D0 E0 ; WL255 = D15 E15 ; WL254 = D14 E15 ;
20 Row Decoder Column Mux Precharge Sense Amp © Adam May
Teman,
25, 2021
Predecoding - Example
• Let’s look at our example: WL0 = D0 E0
D = dec ( A0 , A1 , A2 , A3 ) WL255 = D15 E15
E = dec ( A4 , A5 , A6 , A7 ) WL254 = D15 E14
• What is our new branching effort?
• As before, each address drives half the lines of the small decoder.
• Each predecoder output drives 256/16 post-decoder gates.
• Altogether, the branching effort is:
B = baddr _ driver bpredecoder = 16 256 = 128
2 16
• Same as before!
21 Row Decoder Column Mux Precharge Sense Amp © Adam May
Teman,
25, 2021
Predecoding - Solution
• Why is this a better solution?
• Each Address driver is only driving eight gates
• less capacitance.
• We saved a ton of area by “sharing” gates.
• We can “Pitch Fit” 2-input NAND gates.
WL1 WL1
4 4 4 4 16 16
WL127 WL127
GND
GND
VDD
PC
WL0 WL3
WL1 WL2
WL1
WL2
WL0
WL3
A0
A0
A1
A1
A0
A0
A1
A1
2-input NOR decoder 2-input NAND decoder
25 Row Decoder Column Mux Precharge Sense Amp © Adam May
Teman,
25, 2021
Column Multiplexer
26
Column Multiplexer
• First option – PTL Mux with decoder
• Fast – only 1 transistor in signal path.
• Large transistor Count A1 A0
B0 B1 B2 B3
Y
27 Row Decoder Column Mux Precharge Sense Amp © Adam May
Teman,
25, 2021
4 to 1 tree decoder
• Second option – Tree Decoder
• For 2k:1 Mux, it uses k series transistors.
• Delay increases quadratically
• No external decode logic → big area reduction.
30
Precharge Circuitry
• Precharge bitlines high before reads
bit bit_b
• Equalize bitlines to minimize voltage difference when using sense amplifiers
bit bit_b
large small
small
transition s.a.
input output
Source: pcworld.com
• 32-bit, CISC architecture, introduced in 1977
• The VAX-11/780 was TTL-based, 5MHz, 2kB cache, reaching 1 MIPS
• Known as a “minicomputer”, even though it took up a whole room.
• VAX means “Virtual Address Extension”,
since the VAX was one of the first minicomputers to use virtual memory.
• Ran the VMS operating system.
• Many systems that were developed during the cold war
(e.g., F-15, F-18, Hawk missiles, nuclear programs) still use VAX today!
Further Reading
• Rabaey, et al. “Digital Integrated Circuits” (2nd Edition)
• Elad Alon, Berkeley ee141 (online)
• Weste, Harris, “CMOS VLSI Design (4th Edition)”
36
© Adam May
Teman,
25, 2021