08-内部存储器

本讲关注存储器层次架构中的“主存”部分

存储器

由一定数量的单元构成,每个单元可被唯一标识,每个单元具有储存一个数值的能力

  • 地址:单元的唯一标识

  • 地址空间:单元总数

  • 寻址能力:单元储存信息的位数

半导体存储器

位元 Memory Cell

  • 半导体存储器的基本元件,储存1位数据

  • 特性

    • 呈现两种稳态/半稳态:对应0&1

    • 至少能被写入1次

    • 能被读取

分类

类型
种类
可擦除性
擦除级别
写机制
易失性

随机存取存储器 RAM

读-写存储器

电可擦除

字节级

易失

只读存储器 ROM

只读存储器

不可擦除

-

掩膜(光刻)

非易失

可编程ROM PROM

主要进行读操作的存储器

不可擦除

-

非易失

可擦除PROM EPROM

主要进行读操作的存储器

紫外线可擦除

芯片级

非易失

电可擦除PROM EEPROM

主要进行读操作的存储器

电可擦除

字节级

非易失

快闪存储器

主要进行读操作的存储器

电可擦除

块级

非易失

RAM

  • 可快速读/写

  • 易失:供电中断后数据消失

动态RAM DRAM

  • 在电容器上用电容充电的方式储存数据:有电荷1,无电荷0

  • 需要周期性充电刷新:电容漏电

  • 通过阈值判断为1或0

  • 地址复用:22n2^{2n}的地址只需用nn根线,先传行,再传列

静态RAM SRAM

  • 使用触发器、逻辑门储存二进制值

  • 有电源就可以维持数据

  • 行列独立:SRAM的储存线性排列,2n2^{n}的地址用nn根线

DRAM vs SRAM

  • 相同:易失,需持续供电

  • 不同

    • DRAM比SRAM具有更简单、更小的位元,但需要能刷新的电路

    • DRAM密度更高,价格更低,功耗低:结构简单,元件少

    • DRAM速度慢:需要刷新

  • DRAM用于大容量存储器(主存),SRAM用于高速缓存

高级的DRAM架构

同步DRAM SDRAM

  • 传统DRAM是异步的

    • 处理器向内存提供地址、控制信号:在xx读/写数据

    • DRAM执行内部功能,处理器等待存取时间的延迟

    • 在延迟后DRAM读/写

  • SDRAM的读写受系统时钟控制,以总线的最高速度运行,无需插入等待状态

  • 在SDRAM处理读写时,CPU可完成其他工作

  • 每周期向CPU传送一次数据

双速率DRAM Double-Data-Rate SDRAM DDR

  • 每个时钟周期发送两次数据,一次在时钟脉冲的上升沿,一次在下降沿

  • DDR->DDR2->DDR3->DDR4:提高RAM芯片的操作频率和预取缓冲区

ROM

只读存储器 ROM

  • 非易失

  • 只能写入一次,此后可读不可写

  • 应用:防止数据篡改的场景(微程序设计、系统编程、函数表……)

  • 问题

    • 无出错处理机会:写错即报废

    • 用户无法写入数据

可编程ROM PROM

  • 非易失

  • 只能写入一次,此后可读不可写

  • 与ROM的不同

    • 写入时用特殊设备

    • 电写入

  • 对比

    • ROM:大批量生产

    • PROM:灵活

可擦除PROM EPROM

  • 光擦除

    • 紫外线下

    • 所有单元重置

    • 耗时约20min

  • 电写入

  • 比PROM更贵,能多次改写

电可擦除PROM EEPROM

  • 电擦除

  • 随时写入

  • 擦除范围小:字节级

  • 耗时相对较短,写需几百微秒

  • 比EPROM更贵,密度低,支持小容量芯片

Flash Memory

  • 电擦除

  • 擦除时间在EPROM和EEPROM之间

  • 擦除范围在EPROM和EEPROM之间:块级擦除

  • 密度达到EPROM

  • 价格在EPROM和EEPROM之间

从位元到主存

寻址单元

  • 由若干相同地址的位元组成

  • 寻址模式:Byte(常用)/Word

储存阵列

  • 方形结构

    • 122n1*2^{2n}的长方形,需要1个22n2^{2n}大小的译码器

    • 2n2n2^n*2^n的正方形,则需要2个2n2^{n}大小的译码器,更省

    • 方形结构连线长度更短,访存更快

  • 随机访问:读取地址->定位行->定位列->选中的耗时相同

寻址

  • 地址译码器

  • nn位地址,2n2^n种输出

刷新

  • 都是逐行刷新

  • 行数越多,刷新开销越大

集中式刷新

  • 停止读写操作,逐行刷新

    • 逐行:DRAM看成正方形的行数

  • 刷新时无法操作内存

  • 刷新次数:单个DRAM芯片的行数

    • 并行刷新,与DRAM芯片的个数无关

分散式刷新

  • 在每个储存周期中,当完成读写操作时刷新

  • 增加储存周期的时间

异步刷新:常用

  • 将刷新周期分配给所有行,使得每一行在刷新周期内仅被刷新一次

  • 每行各自以刷新周期为间隔刷新

  • 效率高

芯片

  • 芯片引脚

    • Address:A0 –A19

    • Data:D0 – D7

    • Vcc:电源

    • Vss:地线

    • CE:芯片允许引脚

    • Vpp:程序电压

    • WE:写允许

    • OE:读允许

    • RAS:行地址选通

    • CAS:列地址选通

模块组织

位拓展

  • 拓展位数

  • 8块4k*1bit=>4k*8bit

  • 数据线增加,地址线不变

字拓展

  • 拓展地址范围

  • 8块4k*8bit=>32k*8bit

  • 地址线增加,数据线不变

字、位同时拓展

  • 位拓展+字拓展

内存条&插槽

  • 插槽:组合多个储存模块

其他

  • 存储器地址寄存器(MAR)的位数取决于设计的最大地址空间而非当前实际安装的内存容量

  • 注意选择题里面说xx区域是RAM区还是ROM

交叉编址

  • 在不改变存取周期的前提下,提高存储器带宽,因为可以在一个访问周期下,访问多个不同的存储体

  • 访存一次要走4步,4个储存块交叉访问完美利用时间

  • 当访存地址在相邻的四次访存中,出现在同一存储块内,就会发生访存冲突

大端/小端

  • 数据:12345678H,假设左侧地址低

    • 大端:12|34|56|78

    • 小端:78|56|34|12

  • 现代计算机常用小端

    • 低字节内存地址低

    • 拓展不用改变数据的起始地址

最后更新于