随机访问存储器(Random Access Memory, RAM)是一种能访问任意位置存储单元的半导体器件。
一个SRAM存储单元(存储一bit)由6个晶体管组成,其中4个场效应管(M1, M2, M3, M4)构成两个交叉耦合的反相器,另外两个场效应管(M5, M6)是存储基本单元到用于读写的位线的控制开关。利用晶体管的状态切换来存储数据,而不像电容器,因此读数据时不存在漏电问题,不需要刷新操作。但是由于SRAM需要的晶体管数多,因此成本高。其一般用做CPU的高速缓存。
个DRAM存储单元由1个晶体管和1个电容器组成,利用电容量存储电量的多少来存储数据,由于电容器存在漏电问题,因此需要定期刷新。读数据时,电容量的电量会消失,因此每次访问之后,也需要刷新,以防止数据丢失。
内存的分层组织如下:
内存控制器(memory controller):CPU直接与内存控制器进行通信;
通道(channel):一个内存控制器支持的通道数,由具体的内存控制器决定,一般都支持2~3个,通道之间的独立执行命令,互不干扰,因此通道数量表现了内存控制器并行处理的能力;
双列直插式存储模块(dual In-line memory module,DIMM):内存芯片的独立模组,指内存芯片被组织在一块独立的PCB上,并按DIMM形式的硬件接口与channel相连,因此DIMM实际上是内存条的封装形式;
rank:rank是一块使用DIMM上部分或全部内存芯片(chips)所组成的内存区域,同一rank内的chips共享片选信号,而同一channel内的rank共享地址/命令信号。rank典型的位宽为64bit(与CPU一次处理的最大bit一致),带校验为72bit。DIMM上可能存在1、2或4个rank,被称为1-rank、2-rank或4-rank,在内存条上一般能看到1Rx4、2Rx4或2Rx8,这里的1R或2R就是指内存条上存在的rank数量,如图3展示了2Rx8的内存条;
chip:DIMM/rank中独立的内存芯片,每个芯片内部都由n个bank组成,如图4;
bank:芯片内可独立访问的bit分区。rank提到的1Rx4中的x4就表示chip内bank的数量为4。bank按(row, col)将cell组织成矩阵的形式,如图5。对于bank而言一次读或写只能操作1bit数据;
元格(cell):存储1bit数据的存储单元。电路如图,其中字线(word line)控制晶体管的导通,位线(bit line)是访问存储电容的通道,可对其进行读取或写入操作。字线也被称为行地址线,位线也被称为列地址线。
内存执行读写命令都有一定的步骤,而完成每个步骤都有相应的时延。
重要概念:
针对cell,具体有如下几个步骤:
针对IMC(integrated memory controller,集成存储器控制器),常见有如下命令:
重要时序:
示例:
8G 2Rx8 18-22-22-42
含义:
ROM是Read Only Memory的缩写,最开始的由来是因为其一旦被写入数据就是永久的,不能被删除。后来随着技术地不断发展,ROM也能被重复使用。
PROM是可编程只读存储器(Programmable Read Only Memory)的缩写。其生产出来时,所有位都表示1,如果某个位应该是0,我们可以通过燃烧使其为0。PROM的一个主要缺点是不可能更新它。换句话说,我们无法重新编程。相反,我们必须丢弃它,用一个新的芯片取而代之。
EPROM是可擦可编程只读存储器(Erasable Programmable Read Only Memory)的缩写。我们可以擦除并重新编程EPROM而不用更换它。将存储芯片暴露在紫外线下,就可以对其进行擦除和写入操作。此外,通过封装顶部的透明熔融石英窗口更容易识别出EPROM。
EEPROM是电可擦可编程只读存储器( Electrically Erasable Programmable Read-Only Memory)的缩写。这是一种我们可以用电荷擦除和重新编程的记忆芯片。它由一组浮动栅晶体管组成。闪存(Flash)是EEPROM的一种,具有较高的密度和较低的写周期数。
EEPROM一般采用FLOTOX(Floating Gate Tunneling Oxide)MOS管结构,即浮栅隧道氧化层晶体管,如下图:
多晶硅浮栅周围的氧化层与绝缘层将其与各电极相互隔离,这些氧化物的电阻非常高,而且电子从浮栅的导带向周围氧化物导带的移动需要克服较高的势叠,因此,浮栅中的电子泄漏速度很慢,在非热平衡的亚稳态下可保持数十年。多晶硅保存的电子就是我们需要存储的数据。
浮栅延长区的下方有个薄氧区小窗口,在外加强电场的作用下漏极与浮栅之间可以进行双向电子流动,继而达到对存储单元的“擦除”与“写入”操作。
flash是通过cell的导通状态决定其值是1还是0的,具体关系如下:
具体原理可见,读取2.3.1.3操作部分。
写入操作就是向浮栅注入电荷的过程,常用有两种技术给三端器件注入电子:
热电子注入(hot electron injection):源极接地,漏极和栅极接高电平,VCG >= VD ,热电子被水平偏置电压加速,到达漏极附近拥有更高的电势的耗尽区域。当这些电子得到足够能量足以超过衬底和门氧化层之间的能量势垒3.2 eV时,由于加在门氧化层两侧的Vd ,它们能够被注入门氧化层中,当一个高的正向电势 Vcg 被加载于控制门极时,这些电子被吸引到了浮栅区中。热电子注入模式工作电压较低,但编程电流很大,有较大的功耗,且写入速度慢。
F-N隧道效应(Fowler Nordheim tunneling):漏极和源极接地,栅极接高电平(一般为+12V),直接在浮栅与漏极之间形成正向强电场,电子从漏极通过隧道氧化层进入浮栅。F-N隧道效应工作电压高,但编程电流很小,功耗小,且写入速度快。
写入操作就是移除浮栅中电荷的过程,一般利用F-N隧道效应。漏极和源极接地,栅极接负的高电平(一般为-12V),直接在浮栅与漏极之间形成反向强电场,电子从浮栅通过隧道氧化层进入漏极。
三端器件在浮栅注入电荷后,使漏极和源极之间导通需要给栅极更大的电压,如图3。VT0为浮栅注入电荷后,使三端器件导通的最低电压;而VT1则为未注入电荷时,使其导通的最低电压。在进行读取操作时,会给定一个介于两者间的电压VRead,若导通,则浮栅没有电荷,为逻辑“1”;若未导通,则浮栅有电荷,为逻辑“0”。这里是以三端器件的开闭状态来决定是逻辑1还是逻辑0,开态对应逻辑1,闭态对应逻辑0。
Flash:闪存的由来是因其按存储单元按块组织,且能在一瞬间被删除而得来。Nor Flash和Nand Flash的擦除操作一致,将一块存储单元内的所有word line偏置负电压,将浮栅上的电荷释放掉,擦除过程就完成了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LazBnd1X-1652194510305)(nand-flash-unit.png)]
Nand Flash芯片内部存储组织结构:
其中,DIE是芯片接收和执行命令的基本单元;而每个plane都有自己独立的Cache/Page寄存器,其大小为一个Page的大小;Page为Flash读写的基本单位;block是Flash擦除的基本单位,这是因为同一个block中的存储单元是共用一个衬底,当对衬底施加强电压,则上面所有浮栅中的电子都被擦除了。
最开始Flash的一个存储单元仅能存储一bit的数据,该存储单元被称为SLC,即Single level cell。我们通过图3知道,存储单元的逻辑值是通过给栅极一个在阈值电压[VT1,VT2]范围内的电压,然后根据三端器件是否导通决定的。而阈值电压是根据浮栅内的电荷数量决定,当我们能够精确控制电荷注入的数量,那么我们就能得到多个阈值电压,如MLC(Multi level cell)有3个阈值电压,其能存储2bit,TLC(Triple level cell)有7个阈值电压能存储3bit,而QLC(Quad level cell)有15个阈值电压能存储4bit。
传统Flash存储芯片中的存储单元都是集成在2D平面,而3D Flash则是像建楼房一样,将存储单元一层层堆叠起来,因此就有了16 层, 32层,64层,128层3D Flash。
缺陷:
存储数据有效期:浮栅注入电荷后仍会慢慢逃逸出去,一般定义电荷量减小到初始值的50% 时,就称为数据丢失。SSD存入数据后大概10年才会数据丢失,当然频繁擦除后这个时间会缩短。
PE(Program/Earse)次数限制:擦除、写入过程中浮栅下介电层里的化学键退化,导致介电作用减弱,数据保存的时间越来越短,直到最终不能使用。
读写干扰:读时会对block中除读Page外的其它页的word line施加电压,这会对其它Page存储单元中的电荷有轻微的影响;写时,会对本Page施加强电压,因此会对本Page未写入的存储单元和临近存储单元造成影响。
按页写入、按块擦除:因为Nand Flash是按照存储单元串联的制造工艺,造成block中的存储单元共用衬底,擦除时是对衬底施加强电压;page中的存储单元共用word line,写入时对word lone施加强电压。
方法:
彻底讲投内存超频-理论片
DRAM 原理
图解内存的工作原理及时序介绍
存储器分类
内存控制器和cpu的问题
Memory中的Channel/Rank/Bank解析
内存时序
EEPROM工作原理
Nand基本原理
的Channel/Rank/Bank解析](https://blog.csdn.net/miaomao1989/article/details/51508195/)
内存时序
EEPROM工作原理
Nand基本原理