Memory Structures

Download Report

Transcript Memory Structures

Very Large Scale Integration II - VLSI II
Memory Structures
Hayri Uğur UYANIK
Devrim Yılmaz AKSIN
ITU VLSI Laboratories
Istanbul Technical University
1
www.vlsi.itu.edu.tr
08.04.2015
Outline



History Lesson
General Memory Structure
Memory Cell Types
–
Volatile


–
Non-Volatile







MPROM
EPROM
OTP & UV-EPROM
E2PROM
FeRAM
Memristor
Sense Amplifiers
–
–



SRAM
DRAM
Voltage Sense Amplifiers
Current Sense Amplifiers
Address Decoder
Memory Modelling In Verilog
References
2
www.vlsi.itu.edu.tr
08.04.2015
History Lesson

Delay line memory
–
–
–
Piezoelectric pulses within mercury
One of the earliest electronic (?) memory
1000 word storage
3
www.vlsi.itu.edu.tr
08.04.2015
General Memory Structure
DATA_IN[7:0]
ADR[3:0]
R/W
DATA_IN[7:0]
Address
Decoder
Memory Cell Array
DATA[7:0]
DATA_OUT[7:0]
Sense Amplifier
DATA_OUT[7:0]
4
www.vlsi.itu.edu.tr
08.04.2015
Memory Cell Types

Volatile
–
–
SRAM
DRAM

Non-Volatile
–
–
MPROM
EPROM



–
–
OTP
UV-EPROM
E2PROM
FeRAM
Memristor
5
www.vlsi.itu.edu.tr
08.04.2015
SRAM

Static Random Access Memory
SEL
Q
B
Q
B
6
www.vlsi.itu.edu.tr
08.04.2015
SRAM

Not area efficient 
No special semiconductor process 
Fast 
Low power consumption 
Easy to communicate 

Used in




–
–
–
Embedded systems
CPU Cache
FPGA CPLD LUT
7
www.vlsi.itu.edu.tr
08.04.2015
DRAM

Dynamic Random Access Memory
SEL
B
8
www.vlsi.itu.edu.tr
08.04.2015
DRAM

Area efficient 
Very area efficient 
Needs special semiconductor process 
Slow 
Hard to communicate with 
High power consumption 
Needs refreshing 

Used in






–
–
–
Computer primary storage
Video card primary storage
Cell Phones, PDAs
9
www.vlsi.itu.edu.tr
08.04.2015
DRAM Types


Asynchronous DRAM
Synchronous DRAM (SDRAM)
–
–
Single Data Rate (SDR SDRAM)
Dual Data Rate (DDR SDRAM)



–
Both rising and falling edge
Memory cells are slow compared to bandwidth demand
Bandwidth is increased by increasing the I/O buffer data rate
(DDR2 and DDR3)
Dual DDR

Communicate with two different RAM slots at the same time
10
www.vlsi.itu.edu.tr
08.04.2015
DRAM Types
11
www.vlsi.itu.edu.tr
08.04.2015
Dual Ported RAM

SRAMs and DRAMs can be dual ported
–
–
can read from and write to two different addresses at
the same time
Mostly effective in

Video processing
–


One port filling the RAM, one port is reading for display
CPU registers
FIFOs
12
www.vlsi.itu.edu.tr
08.04.2015
MPROM

Mask Programmable ROM
13
www.vlsi.itu.edu.tr
08.04.2015
MPROM

Programmed at the fab 
–
–
Route metal interconnects
Increase VT


Change channel implant
Change gate oxide thickness

One time programmable 
Only few masks are changed 
Cheap in large volume 

Used in


–
–
–
Old video games
Sound data in electronic music instruments
Electronic dictionaries
14
www.vlsi.itu.edu.tr
08.04.2015
OTP & UV-EPROM


One Time Programmable ROM
UV Erasable Programmable ROM
15
www.vlsi.itu.edu.tr
08.04.2015
OTP & UV-EPROM
1.
2.
3.
4.
High VG and VD creates hot electrons
They penetrate gate oxide
They become trapped in the floating polysilicon
Additional negative charge below the gate
increases VT (For a 5V ROM, VT increases
from 1V to 8V)
16
www.vlsi.itu.edu.tr
08.04.2015
OTP & UV-EPROM

OTP and UV-EPROM are the same
–
–






OTP has a opaque plastic package (cheaper) 
UV-EPROM has a package with transparent quartz window
(expensive) 
Need special semiconductor process 
Slow write 
High power consumption when writing 
Fast read 
OTP data is permanent 
UV-EPROMs can be erased 
–
When exposed to UV light for 20 minutes 
17
www.vlsi.itu.edu.tr
08.04.2015
E2PROM

Electrically Erasable Programmable ROM
18
www.vlsi.itu.edu.tr
08.04.2015
E2PROM

Erasing:
–
–
VD=0, VS=0, VG=High (e.g. 15V)
Floating gate becomes positively charged

–

Fowler-Nordheim Tunneling
VT below floating gate (VTFG) drops
Making Open Circuit:
–
–
–
–
–
EPROM like operation
VD=0, VS=High (e.g. 12V) VG=VTCG
Channel present under control gate
Hot electrons penetrate gate oxide
VTFG increases
19
www.vlsi.itu.edu.tr
08.04.2015
E2PROM



Fast read/write 
Need special semiconductor process 
Low power consumption when writing 
20
www.vlsi.itu.edu.tr
08.04.2015
FeRAM

Ferroelectric RAM
21
www.vlsi.itu.edu.tr
08.04.2015
FeRAM




Fast read/write 
Need special semiconductor process 
Low power consumption 
Destructive reading 
22
www.vlsi.itu.edu.tr
08.04.2015
Memristor

Missing circuit element for 37 years
–
–

Concept: Leon Chua - 1971
First Realization: HP Labs - 2008
Final addition to RLC team
23
www.vlsi.itu.edu.tr
08.04.2015
Memristor

Charge dependent resistance (memristance)
V t 
M  q t  
I t 

Applied voltage or current changes charge (thus
the resistance)
–
–
–
Resistance is stored in a non-volatile manner
Can be used to store digital data
Must be read with an AC signal for non-destructive
reading (AC does not change stored charge)
24
www.vlsi.itu.edu.tr
08.04.2015
Memristor

Best of both worlds
–
–
–

Non-volatile
Fast (~fDRAM/10)
Dense (~1Pb/cm3)
Has a potential to alter the
computer programming paradigm
–
No need for two sets of memories (fast & volatile for
computing, slow & non-volatile for data storage)
25
www.vlsi.itu.edu.tr
08.04.2015
Sense Amplifiers

Voltage Sense Amplifiers
26
www.vlsi.itu.edu.tr
08.04.2015
Sense Amplifiers

Current Sense Amplifiers
27
www.vlsi.itu.edu.tr
08.04.2015
Address Decoder
module ADD_3_8 (in, out);
input [2:0] in;
output [7:0] out;
reg [7:0] out;
always @(in) begin
case (in)
3'b000 : out = 8'b00000001;
3'b001 : out = 8'b00000010;
3'b010 : out = 8'b00000100;
3'b011 : out = 8'b00001000;
3'b100 : out = 8'b00010000;
3'b101 : out = 8'b00100000;
3'b110 : out = 8'b01000000;
3'b111 : out = 8'b10000000;
endcase
end
endmodule
28
www.vlsi.itu.edu.tr
08.04.2015
Memory Modelling In Verilog
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_data>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <address>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_data>;
initial
$readmemh("<data_file_name>", <ram_name>, <begin_address>, <end_address>);
always @(posedge <clock>) begin
if (<ram_enable>)
if (<write_enable>)
<ram_name>[<address>] <= <input_data>;
else
<output_data> <= <ram_name>[<address>];
end
29
www.vlsi.itu.edu.tr
08.04.2015
References









http://www.ieee.org/portal/cms_docs_sscs/sscs/08Winter/sunamifig3.jpg
http://en.wikipedia.org
http://www.seas.upenn.edu/~ese570/1244.pdf
http://www.xtremesystems.org/forums/showthread.php?208829Memory-101-SDR-vs-DDR1-vs-DDR2-vs-DDR3
http://smithsonianchips.si.edu/ice/cd/MEMORY97/SEC09.PDF
http://smithsonianchips.si.edu/ice/cd/MEMORY97/SEC07.PDF
http://spectrum.ieee.org/semiconductors/design/the-mysteriousmemristor
http://www.eecg.toronto.edu/~kphang/papers/2001/igor_sense.pdf
Xilinx Documentation
30
www.vlsi.itu.edu.tr
08.04.2015