存储器阵列
- 高效地保存大量数据
- 3种常见类型:
- 动态随机访问存储器(Dynamic random access memory, DRAM)
- 静态随机访问存储器(Static random access memory, SRAM)
- 只读存储器(Read only memory, ROM)
- 每一个唯一的N位地址,可以读写一个M位的数据
- 包含bit cell的二维阵列
- N位地址,M位数据:
- 2^N行、M列
- 深度:行数(字数)
- 宽度:列数(字宽)
- 阵列大小:深度x宽度 = 2^N x M
- 位单位(bit cell)
- 每一个位单元(bit cell)存储1位数据。
- 一个位单元(bit cell)与一个字线(wordline)和一个位线(bitline)相连(存储器将字线设置为高电平,并激活此行中的位单元。当字线为高电平时就从位线传出或者传入要存储的位,否则位线就与位单元断开)
- 存储器的结构
- 动态随机访问存储器(DRAM)
- 以电容的充电和放电来存储位
- DRAM位单元
- DRAM的位值存储在电容中,nMOS晶体管作为开关,决定是否从位线连接到电容,当字线有效时,nMOS处于导通状态,存储位的值就可以从位线上传入或传出
- 当读时,数据值从电容传送到位线;当写时,数据值从位线传送到电容。但是,读时会破坏存储在电容中的位值,所以每次读后需要恢复(重写)数据。(即使在DRAM在没有被读取时,电容电压也会慢慢泄露,其内容也必须要在几毫秒内刷新)
- 静态随机访问存储器(SRAM)
- SRAM的位值存储方式不是采用的电容的方式,而存储在交叉耦合反相器中,不需要刷新存储位。
- SARM位单元
- 位单元有两个输出→位线和位线
- 当字线有效时,两个nMOS晶体管都打开,数据值就从位线上传入/传出
- 与DRAM不同,如果噪声减弱了存储位的值,则交叉耦合反相器将恢复存储值
- 面积和延迟
- 总的来说,晶体管数越多的器件,芯片面积、功耗和成本也更高
存储器类型 | 每个位单位的晶体管数 | 延迟 |
触发器 | ~20(~:至少) | 快 |
DRAM | 1 | 慢 |
SARM | 6 | 中等 |
- DRAM的延迟比SRAM的延迟更长,因为它的位线不是用晶体管驱动的。DRAM必须等待充电,电容将值移动到位线的速度较慢。
- DRAM的吞吐量也比SRAM低,因为它必须周期性地在读取时候刷新
- 存储器的延迟和吞吐量也和存储器的大小有关,在其他条件相同的情况下,大容量存储器一般比小容量存储器更慢。
- 寄存器文件
- 数字系统通常使用一组寄存器来存储临时变量,这组寄存器称为寄存器文件(register file)。通常由小型多端口SARM阵列组成
- 上图,读端口:A1/RD1、A2/RRD2;写端口:A3/WD3
- 只读存储器(ROM)
- ROM以晶体管的存在与否来存储一位
- ROM位单元
- 为了读这个单元,位线被缓慢拉至高电平。随后打开字线,如果晶体管存在,它将使位线为低电平,否则,位线将保持高电平
- 注意:ROM的位单元是组合电路,在电源关闭的情况下没有可以“忘记”的状态
- ROM的内容可以有电表示法来描述
- 在行(字线)和列(位线)交叉的点表示此数据为1.