存储器 | Personal Blog

存储器

存储器分类

按存储介质分

  • 半导体存储器:由半导体器件(MOS)管组成的存储器(主存)

  • 磁表面存储器:由磁性材料制作的存储器(软盘硬盘磁带)

  • 光盘存储器:由光介质构成的存储器(光盘)

按存取方式分

  • 随机存储器:存取时间与存储单元的物理位置无关

  • 顺序存储器:存取时间与存储单元的物理位置有关(磁带)

  • 半顺序存储器:存取时间部分依赖于存储单元的物理位置(磁盘存储器)

按存储内容可变性分

  • 只读存储器:只能读出不能写入的半导体存储器

  • 随机读写存储器:既能读出又能写入的半导体存储器

按信息易失性分

  • 易失性存储器:断电后信息消失

  • 非易失性存储器:断电后仍能保存信息

按在计算机系统中的作用分

  • 主存储器:能够直接被CPU访问,用于保存系统当前运行所需的所有程序数据

  • 辅助存储器:不能被CPU直接访问,速度慢,保存系统中所有的程序数据

  • 高速缓冲存储器:Cache 能被CPU直接访问,保存使用频繁的程序数据

  • 控制存储器:CPU内部存储器,存放指令集

存储容量

指存储器能存放二进制代码的总数

存储容量=存储单元个数*存储字长

例:某机存储容量为2K*16,说明存储单元个数为211个 即地址线11根,数据线16根

存储速度

存取时间

从启动一次访问操作到完成该操作为止所经历的时间,以ns为单位

存取周期

存储器连续启动两次独立的访问操作所需的最小间隔时间,以ns为单位

存取周期=存取时间+复原时间.

存储器带宽

每秒从存储器进出信息的最大数量,以位/秒为单位

SDRAM存储器

主储存器的构成

静态RAM(SRAM) (Cache)

由MOS电路构成的双稳触发器保存二进制信息

优点:访问速度快,永久保存

缺点:集成度低,功耗高

动态RAM(DRAM) (系统内存)

由MOS电路中的栅极电容保存二进制信息

优点:集成度高,功耗低

缺点:访问速度慢,断电即失

SRAM存储器

存储体

  • 存储单元的集合,按位将各存储元组织成一个存储矩阵

  • 不同的存储器采用不同的译码方式选择存储单元

地址译码器

  • 将CPU发出的地址信息转换成存储元选通信号的电路

译码驱动器

  • 用于增强译码输出选择线的驱动能力

IO控制电路

读写周期

原则

  • 读写信号要在地址和片选均起作用,并经过一段时间后有效

  • 读写信号有效期间不允许地址/数据发生变化

  • 地址,数据要维持整个周期有效

读写周期时间

  • 存储器进行两次连续的读写操作所必须的间隔时间

  • 大于实际读写时间

读周期操作过程

  • CPU发出有效的地址信号

  • 译码电路延迟产生有效的片选信号

  • 在读信号控制下从存储单元读出数据

  • 控制信号撤销

读出时间指 从地址有效到外部数据总线上的数据信息稳定所经历的时间.

写周期操作过程

  • CPU发出有效的地址信号,提供写入的数据

  • 译码电路延迟产生有效的片选信号

  • 在写信号控制下从存储单元读出数据

  • 控制信号撤销

写入时间指:地址控制信号稳定后,到数据写入存储器所经历的时间.

DRAM存储器

记忆原理

逻辑结构

  • DRAM的外部地址引脚比SRAM减少一半:

存储芯片集成度高,体积小
送地址信息时,分行地址和列地址分别传送

  • 刷新电路

用于存储元上的信息刷新,保证数据不丢失,以行为单位
刷新计数器的位数与行译码器的输出位数相同

  • 行、列地址锁存器

用于保存完整的地址信息 使用行选通信号和列选通信号CAS锁存地址

构成

  • 地址多路开关

  • 刷新定时器

  • 刷新地址计数器

  • 仲裁电路:对同时产生的读写请求进行优先级的判断

  • 定时发生器

存储容量的扩展

存储容量的位扩展

指存储单元数不变,每个单元的位数增加

存储容量的字扩展

指每个单元位数不变,总的单元的个数增加

判断可能发生访存冲突的规则是:给定的访存地址在相邻的四次访问中出现在同一个存储模块内。

Cache存储器

  • CPU访问Cache或主存时,以字为单位

  • Cache和主存交换信息时,以块(8个字)为单位

基本构成

  • 存储体: 基本单位为字,若干个字构成一个数据块

  • 地址映射变换机构: 用于将主存地址变换为Cache地址,以利用CPU发送的主存地址访问Cache

  • 替换机构: 更新Cache中数据时,使用替换机构指示什么数据将被替换

  • 相联存储器: 快速指示指定信息是否在Cache中

  • 读写控制

命中率

命中率=访问信息存在于Cache中的次数/访问总次数 (一般>95%)

影响因素:

  • Cache容量:过小则命中率低,过大则成本高

  • Cache块的大小

平均访问时间

平均访问时间=命中率*Cache访问时间+(1-命中率)*主存访问时间

访问效率=Cache访问时间/平均访问时间

替换策略

  • 最不经常使用算法(LFU):将一段时间内被访问次数最少的数据替换;新建立的行赋计数值0,每访问一次计数值增1

  • 近期最少使用算法(LRU):将近期长久未被访问的数据替换;每访问一次,命中行计数值置0,其余增1

地址映射

  • 全相联映射:主存中任意字块可以调入Cache的任意一行;将主存中块的地址和块的内容一起保存,直接检索

  • 直接映射:
    主存的第j块只能映射到Cache中的第i行,其中i=j mod m
    (m是Cache的总行数);
    将s位的块地址的低r位(m=2r)作为Cache的行地址,高s-r位作为标记(块内地址)以供检索
    (主存的块数=2s,块大小=2w,主存地址长度=s+w)

  • 组相联映射:将Cache分为u组,每组分为v行,主存的第j块可以映射到第q组(q=j mod u)的任意行; (d=2u)

地址映射的地址格式

  • 全相联映射:s位主存标记+w位块内地址

  • 直接映射:s-r位主存标记+r位行地址+w位块内地址

  • 组相联映射:s-d位主存标记+d位组地址+w位块内地址

写策略

  • 写回法:在Cache中某一行被换出时才写入主存,多次写命中都只在Cache中进行

  • 全写法:Cache与主存同时修改

  • 写一次法:只在第一次写命中时修改主存

虚拟存储器