存储器:由存储体以及能访问存储体的地址译码及读写控制电路组成。
存储器的分类
1按存储介质分:
- 半导体存储
- 磁表面存储(如磁盘和磁带)
2按存取方式分:
- 随机存储器(半导体存储器都是随机存储器)
- 顺序存储器(磁带是顺序存储器,磁盘是半顺序存储器, 硬盘也是半顺序存储器)
3按存储内容可变性分:
- 只读存储器(ROM—read only memmery)
- 随机读写存储器(RAM —random access memmery)
4信息的易失性:断电后信息是否消失
- 易失存储器(RAM)
- 非易失存储器(ROM,磁性材料做的都是,)
5系统中的作用分:
- 内部存储器(半导体存储器)
- 外部存储器
6其他分法:
- 主存储器
- 高速缓冲存储器(cache)
- 辅助存储器(外部存储器)(磁盘)
- 控制存储器
(补充:CACHE采用的是静态随机存储器,即SRAM,那么主存采用DRAM动态随机存储器 存储器,外存以 磁表面存储器为主。)
存储器分级
1内存储器:CPU能够直接访问的存储器(包括cache和主存储器)
2分级
cache----主存储器----外存储器;
3存储器的技术指标
- 存储容量:指存储器可以容纳的存储单元总数
- 存取时间:指一次读写操作命令发出到该操作完成将数据读出到数据总线上所经历的时间。
- 存储周期:指连续启动两次读写操作所需间隔的最小时间。
- 存储器带宽:单位时间内存储器所存取的信息量。
(后三个也反映了主存的速度指标)
并行存储器
1双端口存储器
2多模块交叉存储器:用低地址的低位字段经过译码选择不同的模块,而高地址指向相应的模块内的存储字。见P86
cache
1cache为了解决cpu和主存之间速度不匹配而采用的一项技术,其原理基于程序运行中具有空间局部性和时间局部性。
- 时间局部性:刚刚访问过的内存单元很可能再次访问,依据是程序中有大量的循环结构
- 空间局部性:访问的某个内存单元,那么它相邻的几个内存单元很有可能即将被访问。依据是程序是顺序存储的
由SRAM组成,包括管理在内的全部功能由硬件实现的,对程序员是透明的;
透明性:本身存在的事物或属性,在某种程度上不可见。
2cache的基本原理
(主CPU首先到cache中找,没有找到再到主存中找,没有再到外存中找,外存的一部分放到主存中,主存中 的一部分放到cache中)
1cpu与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位,一个块由一个或若干个字组成,是定长的(因为内存以块为单位)
2主存的块送入cache中,要发生替换,采用(LRU)最近最少使用算法,替换一行;
3cache命中率:
假设只有cache/主存层,h = Nc/(Nz + Nc)…(访问cache次数除以访问cache和主存次数之和)。
4平均访问时间
t = hta+(1-h)*tc;;;;h表示命中率,ta表示访问cache时间,tc表示访问主存时间;
5效率
e = ta/t , cache访问时间与平均访问时间之比;
主存与cache的地址映射
1全相联映射
将主存中一个块的地址(块号)与块内容一起存入cache中,主存的一块可以直接拷贝到cache中的任意一行
- 优点:行替换率低
- 缺点是:比较电路难于设计与实现;
2直接映射
主存的块号对一个数字n(总行数)求余,这一块只能拷贝到对应余数的那一行,
- 优点;硬件简单,成本低
- 缺点是:冲突率高
3组相连映射
将cache中行号分组,主存的块号对一个数字n(总组数)求余,这一块只能拷贝到对应余数的那一组,将一二方法结合起来。
cache的写操作策略。
由于cache只是主存部分内容 的拷贝,他应当与主存内容一致
三种写策略
- 写回法:当CPU写cache命中时,只修改cache的内容,而不立即写入主存中,只有当此行被替换时才写回主存。
每个cache配置一个修改位,表示是否被修改过 - 全写法:当CPU写cache命中时,cache与主存同时发生写改写
- 写一次法:只第一次写命中时同时写入主存中。