• 数电学习(七、半导体存储器)



    引言

    • 同步电路的核心部分就是有限状态机(FSM),但是是有限状态机,它和要解决的实际背景紧密结合。之前写的蚂蚁,出去了之后还会回去。能解决的问题确实有限。
    • 现在用的PC,ARM,当我们要处理问题的时候,我们并不需要改变硬件而是去改软件,所以对于我们来讲,我们特别希望硬件部分不动,而通过不同的配置让他能解决特定的问题。
    • (阿兰图灵)如何解决有限性的问题,提出了一个最根本的图灵机。用一个有限状态机不是去解决特性的问题,而是去解决读写功能,另外所有的信息存在另外无限的空间中。图灵机解决了FSM的F,解决了有限性的问题,他认为存储空间可以是无限的。
    • 冯诺依曼结构和哈佛结构的control unit都是有限状态机,memory他认为无限(这里的无限是相对来说可扩展的)
    • 所有的memory系统(比如光盘,硬盘等)都是存0,1,和第五章没有区别,但是现在的数据量是海量的。
    • !!!存储设备的指标,一个是存储量,一个是访问时间。
      在这里插入图片描述
    • 速度快的体量就小,体量大的速度慢。想设计一个存储系统,体量很大,访问的时候速度快,尤其是相关的信息,运算的信息。CPU有SRAM,外面还有MAIN MEM,所以没有最好的,是一起来构成一个合适的系统。
    • 本章讲的是所有存储器中,以半导体工艺实现的存储器,记忆棒,内存条。

    一些术语

    1. 存储器单元cell:用于存储一个bit的电路单元
    2. 字节:Byte = 8 bits
    3. 字:Word = 1-8 Bytes,1个字中有8-64bits
    4. 容量:表示特定存储单元或整个存储器系统能够存储多少bits
    5. 密度:表示容量的另一种属于
    6. 地址:用于确定某个word在存储系统中位置

    概述

    在这里插入图片描述

    • 后面都围绕这个图讲
    • 在半导体存储器中,是以什么结构来管理和储存大量的数据

    分类

    1. 从存取功能:
      (1)只读存储器ROM:使用过程中,只读数据,而不改变数据,并不是数据不能变
      (2)随机读写RAM:使用过程中,要频繁的读写(内存),希望读写速度相同
    2. 从工艺上:
      (1)双极型(TTL)
      (2)MOS型(CMOS,MOS)

    ROM

    在这里插入图片描述

    • 基本工作:存储矩阵存了大量的数据,通过地址译码器能够访问到希望访问的单元,然后把单元的数据送到输出缓存然后输出来
    • 和RAM相比,最大的特点就是非易失性,也就是掉电之后数据依然保存
    • 和前面对应的话,其实是组合电路。组合电路的特点是任何时刻的输出仅仅取决于这一时刻的输入,拉闸上电之后如果给一样的输入还是根据真值表的一样的输出

    掩膜ROM

    • 半导体制造有个关键工艺是光刻,用光腐蚀材料,光照到和没照到会形成沟道。掩模决定哪些地方能照到哪些不能

    举例

    在这里插入图片描述

    • 这时一个典型的最早期的双极性二极管的ROM

    地址译码器

    • 看一下W0
      在这里插入图片描述
    • Y = AB,所以W0 = A0’A1’
    • 在任何时候,W0-W3有且仅有一个为1

    存储矩阵

    • 看一下d0
      在这里插入图片描述
    • Y = A + B

    总结

    • 所以上面的译码器就是一个与阵列,下面的存储矩阵就是一个或阵列
    • W0-W3译出了地址所有最小项,下面的输出是某些最小项之和
    • 前面的与阵列把所有的地址输入变成地址线,而地址线和地址输入之间存在2的n次方的关系
    • 或阵列是把这些地址线,取谁就把谁相或
    • 从逻辑上来讲没有难度,因为看到的是一个组合电路,组合的输出一定是关于某些最小项之和
    • 如何理解它是一个存储,就是W给出不同的字,D会有不同的输出
      在这里插入图片描述
    • 当把组合电路看成ROM的时候,数据表是横着看的,也就是当输入是A1,A0时,输出的4个数据是什么
    • 问题1:现在每一个字能访问的位数是4位,我现在想访问五位怎么办?
    • 对于数据表来讲,把列加一位就可以,行不用动,相应的电路就是存储矩阵加一行
    • 问题2:我现在想用三位地址线,怎么办?
    • 加一个A2,数据表的输入加了一位,行数翻翻。对应电路就是现在是4条线,加一位地址就变成八条线
    • 问题3:对于组合电路来讲,我关心的是他输入和输出的个数。如果这是一个存储电路,我关心它的容量,这个电路的容量是多少?
    • 4*4,前面的4的地址线的条数,下面的4是存储电路的位数,行数。所以一看到ROM就能想到它的容量,就是地址线为n,输出位线的条数是m,容量就是2的n次方乘以m

    两个概念

    • 存储矩阵的每个交叉点是一个“存储单元”,存储单元中有器件存入“1”,没有器件存入“0”
    • 存储容量:“字数”x“位数”
    • 字线和位线是否相连决定“0”,“1”,那这个相连不一定是通过二极管,如果换成别的器件(场效应管,三极管)就是别的工艺,举例如下
      在这里插入图片描述
    • 如果换成上图的连接方式,交叉点之间的连接器件就变成MOS管了
    • 最左边那一列,相当于一个上拉电阻,输出都是高电平,右边的MOS导通,经过最后取反就输出1;如果没有连接,那输出就是0。所以还是通过有没有连接来区分0,1
    • 如果用的是NPN三极管,连接方式不变,但是希望它工作在饱和状态,这样才能输出比较理想的低电平,再取反变成高电平

    掩膜ROM的特点

    • 最早的时候所有的ROM都是掩膜ROM,当时有一个数据需要被存储的时候就要把数据交给半导体生产厂商,厂商根据数据判断连接和不连接,然后绘制掩膜,然后生产器件
    • 出厂时已经固定,不能更改,适合大量生产
    • 便宜,简单,非易失性

    可编程ROM(PROM)

    • 总体结构和 掩膜ROM一样,但是存储单元不同

    在这里插入图片描述

    • 最早的时候时用了一个熔丝。出厂的时候把所有字线和位线都连起来
    • 熔丝的特点是过流烧,所以用的是三极管,并没有用MOS管
    • 编程的时候是通过把某些位的熔丝烧掉,某些位保留
    • !一次性编程,不能改写
    • 写入时需要使用编程器

    可擦除的可编程ROM(EPROM

    • 总体结构和 掩膜ROM一样,但是存储单元不同

    用紫外线擦除的PROM(UVEPROM)

    • 这一类芯片在背部有一个小的石英窗口,是给紫外线查出用的

    • SIMOS(Stacked-gate Injuction MOS)

    在这里插入图片描述

    • 在栅极除了多晶硅那一层还加了一层浮置栅浮在中间
      在这里插入图片描述

    • 控制原理
      (1)若Gf上充以负电荷,则Gc处正常逻辑高电平下不导通
      (2)若Gf上未充负电荷,则Gc处正常逻辑高电平下导通

    • 写入:雪崩注入,D-S间加高压(20-25V),发生雪崩击穿(复习顺便看一下齐纳击穿,同时在Gc上加25V,50ms宽的正脉冲。吸引高速电子穿过SiO2到达Gf,形成注入电荷
      半导体击穿有一个好处,如果是电击穿,电压消失之后就复原了,如果是热击穿就复原不了了

    • 擦除:通过照射产生电子-空穴对,提供泄放通道
      (紫外线照射20-30min,阳光下一周,荧光灯下三年)

    • 有点麻烦:编程和擦除需要不同的器件,编写需要编程器,因为编写需要高电压,而擦除需要擦除器,而且器件必须烙下来

    电可擦除的PROM(E2PROM)

    • 总体结构和 掩膜ROM一样,但是存储单元不同

    • 为了克服UVEPROM擦除慢,操作不便的缺点,采用FLOTOX(浮栅隧道氧化层MOS管)
      在这里插入图片描述

    • 隧穿原理:Gf与D之间有小的隧道区,SiO2厚度<2*10的8次方m,当场强达到一定大小(10的7次方V/cm),电子会穿越隧道------“隧道效应”

    在这里插入图片描述

    • 工作原理:
      (1)Gf充电荷后,正常读出Gc电压(3V)下,T截止
      (2)未充电荷时,正常读出Gc电压(3V)下,T导通
    1. 充电:Wi,Gc加20V,10ms的正脉冲,Bj接0,电子隧道区->Gf
    2. 放电:Gc接0,Wi,Bj加正脉冲,Gf上电荷经隧道区放电

    闪存(Flash Memory)

    • 随着工艺的提高,发现两个管实现太占面积了
    • 为了提高集成度,省去上面的选通管
    • 改用叠栅MOS管(类似于SIMOS)

    在这里插入图片描述

    • Gf与衬底间SiO2更薄(10-15nm)

    • Gf与S区有极小的重叠区(隧道区)

    • 工作原理:向Gf充电利用雪崩注入的方式,D-S加正压(6V),Vss接0,Gc加12V,10us的正脉冲

    关注点

    1. 不同的工艺,字线和位线之间采用了什么器件
    2. 这个器件存0,1的原理

    用存储器实现组合逻辑函数

    基本原理

    从ROM数据表可见:若以地址线位输入变量,则数据线为一组关于地址变量的逻辑函数

    举例

    • 用ROM产生:
      在这里插入图片描述
    • 首先,输出位数是四位,输入是2的四次方
    1. 写成最小项之和
      在这里插入图片描述
    2. 打点
      在这里插入图片描述

    小结

    • 所有组合电路都可以用ROM实现
    • 把ROM下面配上触发器,就一定能实现任意形式的数字电路

    在这里插入图片描述

    • 16*4是ROM进出都是4条线
    • 下面的3是3个触发器
    • 三个触发器就是8个状态
    • 上面实现了输出方程和驱动方程,4个方程可以把3个引到下面,也可以不接输入,因为时序电路可以不从外面引输入

    随机存储器RAM

    • 前面实现了半天,实现了ROM的部分,是高度集成了。而下面的部分还是触发器,触发器只能是任何时候都可读可写,但是集成度不高。
    • 高集成度的能随时读写的触发器,就是RAM
    • RAM的基本原理就是触发器,功能也和触发器一样,希望任何时候都可以读写,但是一旦掉电后,数就没了

    静态随机存储器SRAM(S是static)

    结构和工作原理

    在这里插入图片描述

    • 采用了行地址译码和列地址译码,省线
      在这里插入图片描述

    • 途中行地址编码对应的译出来就是2的6次方条线,列地址编码对应译出来的就是16,出来的就是64+16

    • 但是如果还是刚刚ROM的连接方式,那就需要2的10次方,也就是1024条线

    • 拉出一个小方块展开
      在这里插入图片描述

    • T1-T4为基本存储单元,就是两个反相器首位相连构成基本存储单元

    • Xi = 1时,T5和T6选通,Q、Q’和Bj、Bj’相通

    • Yj = 1时,所在列被选中,T7,T8导通,这时单元(i,j)与缓冲器相连

    • A2和A3是往里写的,A1是往外读的

    • 读的时候一个数就可以了,但是为什么写的时候需要两个数?为了解决反相器不能只写一个点的问题,写进去的数,一个用同相一个用反相,相当于接首位相连的一个反相器的入和出

    • CS‘是整个器件的选通端,当CS’=1时,三态被锁死,都是高阻态。如果CS’=0,R/W’=1时,则A2与A3截止,QI/O,读操作。R/W’=0时,则A2与A3导通,A1截止,I/O->Q,写操作

    • 根据图就能看出,RAM里面的东西太多了,而ROM就一个管子,所以RAM的集成度比ROM要小

    动态随机存储器DRAM

    • 一直想提高集成度
    • 动态存储单元是利用电容可以储存电荷的原理
    • 利用场效应管,认为电容上有电荷就是1,没有就是0,这时候就把中间四个管子的基本存储变成两个管子
    • 这会有一个问题,出现电容后,只要有电阻的地方就存在漏电,所以过了多长时间,1就变成0了,数据就丢了
    • 所以要设计一个电路,对已有的数据进行不断的刷新
    • 所以在省了芯片面积的时候,付出了其他的面积代价
    • 所以用的不多了

    存储器容量的扩展

    位扩展方式(最简单)

    • 适用于每片RAM,ROM字数够用而位数不够时
    • 接法:将各片的地址线、读写线、片选线并联即可
      例:用八阵1024x1位---->1024x8位的RAM
      在这里插入图片描述

    字扩展方式

    • 适用于每片RAM,ROM位数够用而字数不够时

    例:用四阵256x8位—>1024x8位RAM
    在这里插入图片描述

    • 每一片提供256个字,需要256个地址

    • 用A9,A8两位代码区分4片,即将A9,A8译成Y0’-Y3’,分别接四片的CS’
      在这里插入图片描述

    • !!!如果和物理背景挂钩,可以更改设计,改变读取顺序

    • 比如想每片储存一个东西
      在这里插入图片描述
      在这里插入图片描述

    • 把A0-A9任意两个拿下来都行(根据物理背景)

    • 字扩展和位扩展并不矛盾可以都做,但是应该选择合理的扩展方式,避免浪费的问题

    • RAM是可以用来产生组合逻辑电路的

    总结

    1. 存储器分类,各自特点
    2. 扩展接法(字扩展,位扩展)
    3. 用ROM产生组合逻辑电路
  • 相关阅读:
    Django初窥门径-自定义用户模型
    jdk环境变量配置、maven环境变量配置
    Redis(主从复制、哨兵模式、集群)概述及部署
    SSL及GMVPN握手协议详解
    使用C/C++实现字典树(数组或者链表方式)
    【DS基础】栈与队列
    鲈鱼的面试题库+答案
    maven高级
    linux安装chrome及其驱动
    C#编程学习
  • 原文地址:https://blog.csdn.net/y_u_yu_yu_/article/details/127663585