存储器分类:
按存储元件分类
半导体存储器
磁表面存储器
光盘存储器
按读取方式
随机存取存储器
顺序存取存储器
直接存取存储器
相联存储器
按信息可更改性
只读存储器
读写存储器
按断电后可保存性
非易失性
易失性
按功能分类
高速缓存
主存
辅存
后备存储器
主存的组成及操作
组成:
地址寄存器
地址译码器
记忆单元
地址译码器将地址寄存器中的地址在记忆单元中找到,根据读写控制信号和Memory data register中的在指定记忆单元中数据读写
存储器的主要性能指标
读出时间
写入时间
存储周期
各类存储器元件特点
只读芯片ROM
读写芯片RAM
静态读取SRAM 成本高速度快,无需刷新和读后再生 6个晶体管控制实现一个二进位
动态读取DRAM 成本低速度较慢 要刷新和读后再生, 1个晶体管实现一个二进位
FLASH存储器 比如U盘,可读可写
存储器的层次结构
从上到下 速度越来越慢 容量越来越大 价格越来越低
寄存器
高速缓存
主存
辅存
海量后备存储
数据的交换只能在相连的两层之间交换
这种设定的原因:
程序运行的时间局部性和空间局部性
高速缓存cache
引入cache的出发点
指令的时间局部性和空间局部性如下右图展示
循环具有时间局部性,
数组具有空间局部性
程序的局部性对程序性能的影响举例
对于一个二维数组,按照行优先还是列优先索引,会产生是否能利用cache的问题,按照行可以,按照列不可以
cache和主存的关系
主存的内容都是按照块分割,cache将主存的块复制形成映像,但是当复制新的块时会将旧的块冲掉
cache操作过程
cpu直接给的是虚拟地址,并不是主存地址
实现cache需要解决的问题
直接映射主存地址划分
主存标记位是最后被剩下来的
首先根据地址的中间四位确定槽号
根据曹的标记和主存标记是否相同确定是否在cache中命中
直接映射方式的特点
cache容量的计算
直接映射方式的特点
直接映射最大的缺点在于不能充分利用cache,效率低
全相联映射
在cahce中的查找时间特别长。
只能遍历的对比标记位
用时间效率的下降换取空间效率的提高
组相联映射方式
中和了直接映射和全相联映射,时间效率和空间效率的平衡
组内按照全相联
组间按照直接映射
cache命中率
cache的关联度
cache替换算法
先进先出算法
最近最少用算法
最近最少用算法可能出现颠簸现象,就是总是访问刚刚淘汰的块
需要一个计算记录块最近使用的次数
计算器两位就可以
cache举例
写策略概述
写策略问题
cache实现的几个因素
L1 cache 指令和数据分开
时间更重要
L2 L3一般位联合cache
命中率更重要
cache实现举例
cache综合计算举例