2024.11.18 老师说考研不考。一得阁拉米的。

存储器概述

按照掉电是否丢失信息,分为易失性存储器与非易失性存储器:

  • 易失性存储器:SRAM、DRAM
  • 非易失性存储器:Flash、EEPROM等

为什么有这么多种类的存储器?

  • 我们无法制造出即速度快、容量大又价格便宜的存储器;我们只能制造出速度快、容量小的存储器。
  • 例如SRAM,5~20ns访问速度,很贵,只能用在CPU内部作为Cache;
  • 或者容量大、速度慢的存储器,例如DRAM,60~100ns访问速度,比SRAM便宜,作为计算机主要内部存储元件;
  • 或者速度更慢、价格便宜的存储器,例如机械硬盘,毫秒级访问速度,很便宜,计算机外部存储元件。
  • Flash,非易失性,速度慢,比硬盘贵,但现在采用新技术可以达到较高的访问速度,成本也降低了很多,但还是比硬盘贵。如SSD盘,速度比硬盘快,价格比硬盘贵
  • 新型的存储器:FRAM、MRAM、ReRAM、PCRAM、STTRAM等。目标:提高性能、降低成本、大容量等

常见存储器对比

对比项 DRAM SRAM Flash
断电易失性
数据刷新
单元结构 1T-1C 6T 1T
功率损耗 高/低
读取速度 50ns 10ns/70ns 50ns
写入速度 40ns 5/40ns 10us-1ms
使用寿命
成本 较低
应用 主存(内存) 缓存(CPU Cache) 存储卡、固态硬盘

RAM行列地址

为什么要区分行地址和列地址?

注意列地址是 8bit=23bit 的,因此是三位。则 n 列对应的是 n-3 位列地址。

地址复用:行列地址复用一条发送地址线,分两次发送进存储器。

动态随机存储器 DRAM

晶体管结构

DRAM单元的历史演变 双管与单管DRAM

对于单管DRAM:

  • 写操作时,选中字线WL,数据通过M1(或M2)写入存储单元并保存在存储电容上。
  • 读操作时,是破坏性的。存储电容与位线接通,存储电容中的电荷会被明显改变,因为位线的寄生电容比存储电容大10倍,受存储单元的电压(数据)影响而产生的位线电压的变化很小,所以读操作需要用一个放大器来放大这种信号的变化并把数据重新写回存储单元中。

存储电容越大,位线电压变化越明显。变化电压为ΔV=VDDCC2(CBL+CC)\Delta V =\dfrac{V_{DD}\sdot C_C}{2(C_{BL}+C_C)}

字线与位线:

  • 字线:控制是否对某一晶体管进行操作
  • 位线:用来传输数据位

版图结构

DRAM要在尽可能小的硅片面积上集成尽量多的单元。单元的电容对性能影响很大,单元电容越大,位线电压差越大。因此,采用各种叠层或者立体的结构提高单位面积的电容量。

最常用的是Trench电容的单管DRAM单元,面积最小。

DRAM工艺与CMOS工艺不兼容

高密度DRAM单元

三管DRAM

三管DRAM单元工作原理

注意这里的 DATA\overline {\text{DATA}}DATA_out\overline {\text{DATA}\_{out}} 都是低电平有效的,即输入输出均取反。

  • 充电时,C2与C3通过MP1与MP2充电
  • 写1时,C1与C2发生电荷共享
  • 读1时,C3通过M2和M3进行放电
  • 写0时,C1与C2通过M1与数据写入晶体管放电
  • 读0时,C3不放电

由于M1的漏端存在漏电流,C1上的电荷不能长期保存,所以每一个存储单元都要定时刷新。将数据读出,然后再把它们写回存储单元。每隔2~4ms就要进行一次刷新。

存储单元没有静态功耗!

单管DRAM完整电路

  • 读取1:
    • 线均衡器与读出线均衡器:预充电到电源电压的一半以减小延时
    • 字线选通之后产生电压差
    • 位线读出放大器就是敏感放大器,放大变化信号,并重新写回存储单元
    • 列选通有效使BL_IO输出到读取放大器,驱动Dout_IO输出
  • 读取0:产生的电压差为负
  • 写入0:
    • 线均衡器与读出线均衡器:预充电到电源电压的一半以减小延时
    • 列选择有效使得写入缓冲器的输入信号由Din_IO输入
    • 驱动BL_IO,改变BL/BLB信号的值
    • 写缓冲器有较大的驱动能力
    • 列选择信号由列译码电路输出,改变位线电平和存储单元的数据

DRAM芯片的读取速度主要取决于接口电路的速度!

敏感放大器

敏感放大器

PSAEQ高电平将SA/SAB预充电到电源电压的一半,当PSA/PSAB信号有效进行敏感放大时,可以加快BL和BLB的放大操作速度。

位线结构

  • 位线开路:位线连接一列中所有的单元,敏感放大器的输入来自子阵列1和子阵列2。
    • 存储密度最大化,但是噪声严重。任何两个阵列中不对称的噪声都将以差动信号的形式出现在敏感放大器输入端。
    • 信噪比低得不可接受!
  • 折叠位线:每条位线只连接一列中的一半单元,相邻位线输入敏感放大器,使噪声成为共模干扰
    • 牺牲了面积换取对噪声的抑制。

静态随机存取存储器 SRAM

SRAM的本质是双稳态电路:

两个反相器组成的双稳态电路双稳态 各种类型的SRAM结构

对于全CMOS型SRAM单元:

  • 低功耗,静态功耗为两个反相器很小的泄漏电流
  • 很高的噪声容限
  • 低电源电压工作能力
  • 由于有PMOS,需要N阱,多晶硅需要接触孔,使得单元面积稍微比其他类型的大
  • 工艺复杂,需要制造PMOS
  • 有闩锁问题

CMOS SRAM单元设计

读写操作

如何确定全CMOS SRAM单元中的晶体管尺寸?

  1. 读数据操作不能破坏单元中保存的数据(read stability)
  2. 数据写入时能够修改已保存的数据(writability)

读取0

当SRAM内存储的数据为0时:

  • ①处电压为0V,因此M2关断、M6导通
  • ②处电压为VDD,因此M1导通、M5关断
  • CC处电压大于0,因此M3上有电流
  • CnC处电压等于VDD,因此M4上无电流

M1上流过电流使①处电压升高,如果要求读取操作不改变保存的数据,则V1必须小于M2的阈值电压,使M2保持截止。M2导通可能使存储状态发生改变!不妨认为CC电压接近VDD,此时M1工作在线性区,M3工作在饱和区。

kn,32(VDDV1VT,n)2=kn,12(2(VDDVT,n)V1V12)kn,3kn,1=(W/L)3(W/L)1<2(VDD1.5VT,n)VT,n(VDD2VT,n)2\begin{aligned} & \frac{k_{n, 3}}{2}(V_{D D}-V_1-V_{T, n})^2=\frac{k_{n, 1}}{2}\big(2(V_{D D}-V_{T, n}) V_1-V_1^2\big) \\ \\ & \frac{k_{n, 3}}{k_{n, 1}}=\frac{(W / L)_3}{(W / L)_1}<\frac{2\left(V_{D D}-1.5 V_{T, n}\right) V_{T, n}}{\left(V_{D D}-2 V_{T, n}\right)^2} \end{aligned}

可确定M1与M3的尺寸关系

写入1

当SRAM内存储的数据为0时:

  • ①处电压为0V,因此M2关断、M6导通
  • ②处电压为VDD,因此M1导通、M5关断
  • CC处电压等于VDD,因此M3上有电流
  • CnC处电压等于0,因此M4上有电流

现在要将1写入单元内,即改变①处的电压。

此时M1、M6在线性区,M2、M5关断,M3、M4导通。

M1与M3串联到VDD,但V1的电压低于M2的阈值电压,因此不会使得M2导通。

随后,M4与M6串联到0,使V2的电压从VDD开始下降,降低到M1的阈值电压,使得M1截止,M5导通,V1上升到VDD,从而V2电压变为0。当V2=VTN时,M4工作在线性区,M6工作在饱和区:

kp,62(0VDDVT,p)2=kn,42(2(VDDVT,n)V2V22)(W/L)6(W/L)4<μnμp2(VDD1.5VT,n)VT,n(VDD+VT,p)2\begin{aligned} & \frac{k_{p,6}}{2}(0-V_{D D}-V_{T, p})^2=\frac{k_{n,4}}{2}\big(2(V_{DD}-V_{T,n}) V_2-V_2^2\big) \\ \\ & \frac{(W / L)_6}{(W / L)_4}<\frac{\mu_n}{\mu_p} \frac{2(V_{D D}-1.5 V_{T,n}) V_{T, n}}{(V_{D D}+V_{T,p})^2} \end{aligned}

可确定M4与M6的尺寸关系。

写入0

当SRAM内存储的数据为1时:

  • ①处电压为VDD,因此M2导通、M6关断
  • ②处电压为0,因此M1关断、M5导通
  • CC处电压等于0,因此M3上有电流
  • CnC处电压等于VDD,因此M4上有电流

此时M2、M5在线性区,M1、M6关断,M3、M4导通。

M2与M4串联到VDD,但V2的电压低于M1的阈值电压,因此不会使得M2导通。

随后,M3与M5串联到VDD,使V1的电压从VDD开始下降,降低到M2的阈值电压,使得M2截止,M6导通,V2上升到VDD,从而V1电压变为0。当V1=VTN时,M3工作在线性区,M5工作在饱和区:

kp,52(0VDDVT,p)2=kn,32(2(VDDVT,n)V1V12)(W/L)5(W/L)3<μnμp2(VDD1.5VT,n)VT,n(VDD+VT,p)2\begin{aligned} & \frac{k_{p,5}}{2}(0-V_{D D}-V_{T, p})^2=\frac{k_{n,3}}{2}\big(2(V_{DD}-V_{T,n}) V_1-V_1^2\big) \\ \\ & \frac{(W / L)_5}{(W / L)_3}<\frac{\mu_n}{\mu_p} \frac{2(V_{D D}-1.5 V_{T,n}) V_{T, n}}{(V_{D D}+V_{T,p})^2} \end{aligned}

可确定M3与M5的尺寸关系。

读取1

当SRAM内存储的数据为1时:

  • ①处电压为VDD,因此M2导通、M6关断
  • ②处电压为0,因此M1关断、M5导通
  • CC处电压等于VDD,因此M3上无电流
  • CnC处电压大于0,因此M4上有电流

M2上流过电流使②处电压升高,如果要求读取操作不改变保存的数据,则V2必须小于M1的阈值电压,使M1保持截止。M1导通可能使存储状态发生改变!不妨认为CC'电压接近VDD,此时M2工作在线性区,M4工作在饱和区。

kn,42(VDDV2VT,n)2=kn,22(2(VDDVT,n)V2V22)kn,4kn,2=(W/L)4(W/L)2<2(VDD1.5VT,n)VT,n(VDD2VT,n)2\begin{aligned} & \frac{k_{n, 4}}{2}(V_{D D}-V_2-V_{T, n})^2=\frac{k_{n, 2}}{2}\big(2(V_{D D}-V_{T, n}) V_2-V_2^2\big) \\ \\ & \frac{k_{n, 4}}{k_{n, 2}}=\frac{(W / L)_4}{(W / L)_2}<\frac{2\left(V_{D D}-1.5 V_{T, n}\right) V_{T, n}}{\left(V_{D D}-2 V_{T, n}\right)^2} \end{aligned}

可确定M2与M4的尺寸关系。

非易失存储器 ROM

基于NOR的ROM

基于NOR的ROM

对于NOR的ROM来说,字线默认为0。当译码电路选中某个字线时,该字线被置为高电平。交叉点有晶体管保存数据0,无晶体管保存数据1。

NOR的ROM本质上是一个伪NMOS逻辑或非门,而或非门“有1就是0”,因此当字线被选中时会被拉高,而如果有晶体管的话就会导通,因此会将输出拉低,变成0。

4X4的NOR掩模ROM版图,注意扩散区为什么不能连上

也可以使用离子注入的方式来改变阈值电压进行编程。若阈值电压比电源电压还高,则晶体管始终无法导通,因此可看做无晶体管,即保存数据1。用这种方式的版图面积比金属编程方式的小。

基于NAND的ROM

基于NAND的ROM

对于NOR的ROM来说,字线默认为1。当译码电路选中某个字线时,该字线被置为低电平。交叉点有晶体管保存数据1,无晶体管保存数据0。

NAND的ROM本质上是一个伪NMOS逻辑与非门,而与非门“有0就是1”,因此当字线被选中时会被拉低,而如果有晶体管的话就会关断,因此输出不会被拉低,保持1。

编程方法同样有金属线编程和离子注入编程两种方式。但是,离子注入是降低阈值电压,使晶体管变成耗尽型,常通就相当于没有晶体管。由于阵列中没有接触孔,所以NAND ROM比NOR ROM面积更小。

由于下拉通路串联了多个NMOS晶体管,所以NAND ROM的访问速度比NOR型ROM要慢。

行列译码器设计

行译码器

基于NOR的行译码器电路

基于NOR的行译码电路可以和基于NOR的ROM阵列相邻并排放置。

NAND行译码器相当于每个行输出是由一个N输入NAND门实现。行有效时,输出低电平,未被选中的行是高电平。

NAND行译码电路和NAND ROM阵列相邻放置,译码电路的版图也可以采用和NAND ROM阵列相同的版图方法。

列译码器设计

基于译码器的译码电路 基于二进制数的译码电路

延时计算

可能不考计算,但需要掌握。

数字CMOS集成电路复习笔记:第三篇

闪存 Flash

闪存的基本存储单元是带浮栅的晶体管,该晶体管的阈值电压可以通过在其栅极上加电场而反复改变(编程)。被编程的晶体管不导通,保存1;未被编程的晶体管在字线有效时导通,保存0。

NOR Flash

对于NOR Flash而言,使用F-N隧穿效应进行擦除、热电子注入效应进行编程:

NOR闪存单元

擦除时,浮栅中的电子会往源极移动。因为是负电荷,因此逆着电场方向移动,即从栅极0V向着源极12V移动,数据被擦除,存储单元变为低阈值电压的晶体管。

编程时,字线接高,使得栅极高电平。被字线和位线选中的晶体管由热电子注入浮栅而被编程,变成高阈值电压管。

读取时,源线接低,要读取的字线接5V,位线接1V。

NAND Flash

对于NAND Flash而言,使用F-N隧穿效应进行擦除、F-N隧穿效应进行编程:

NAND擦除操作 NAND编程操作

对比

NOR Flash NAND Flash
擦除方法 F-N隧穿 F-N隧穿
编程方法 热电子注入
擦除速度
编程速度
读取速度
单元尺寸
可扩展性

SLC、MLC、TLC

  • SLC = Single-Level Cell ,即1bit/Cell,速度快寿命长,价格超贵(约MLC 3倍以上的价格),约10万次擦写寿命
  • MLC = Multi-Level Cell,即2bit/Cell,速度一般,寿命一般,价格一般,约8000---10000次擦写寿命
  • TLC = Trinary-Level Cell,即3bit/Cell,也有Flash厂家叫8LC,速度慢寿命短,价格便宜,约500次擦写寿命。
  • QLC = Quad-Level Cell,即4bit/Cell,当前工业界最高密度的Flash芯片