存储器分类
按存储介质分
-
半导体存储器:由半导体器件(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与主存同时修改
-
写一次法:只在第一次写命中时修改主存