文章目录
- 一、存储器的分类
- 1. 按存储介质分类
- 2. 按存取方式分类
- 二、存储器的层次结构
- 三、CPU、缓存、主存、辅存之间的通信关系
- 1. 缓存-主存层次
- 2. 局部性原理
- 3. 主存-辅存层次
一、存储器的分类
1. 按存储介质分类
2. 按存取方式分类
二、存储器的层次结构
在讲存储器的层次结构之前,我们可以思考一下:平时我们考虑存储器的话,会考虑哪些方面特性呢?
- 读写速度,比如读写速度为5400转、7200转等
- 存储容量,比如2T、8G等
- 价格
那么这些因素是怎样影响存储器的层次结构呢?对于存储器,我们肯定希望读写速度越高越好,存储容量越大越好,价格越低越好。
为了量化存储器的性价比,就提出了一个专门的单位:位价,计算公式如下:
综合位价、读写速度这些因素,将存储器的层次结构划分为三个:缓存、主存、辅存,如下图所示。
这里的缓存指的是CPU里面的寄存器以及高速缓存,读写速度最快、位价最高;主存指的是计算机里面的内存,读写速度次于缓存、位价适中;辅存主要是计算机的外部辅助存储设备(比如磁盘、U盘、移动硬盘等),读写速度是最慢的、位价最低。这三者容量大小排序为:缓存<主存<辅存。
三、CPU、缓存、主存、辅存之间的通信关系
在计算机中,CPU和高速缓存、主存、辅存之间的通信关系如下图所示:
从图中可以看出,CPU与高速缓存是直接通信的,同时,CPU也可以直接与主存通信,而高速缓存与主存之间也可以相互直接通信,这样的层次称为:缓存-主存层次;主存与辅存之间的通信,CPU是不参与的,这个层次称为:主存-辅存层次;
1. 缓存-主存层次
- 利用原理:局部性原理
- 实现方式:在CPU与主存之间增加一层速度快(容量小)的Cache
- 目的:为了解决主存与CPU速度不匹配的问题(主存速度不足,CPU速度很快)
2. 局部性原理
局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。如下示意图所示:
从上图中可以看出,假设程序所经常访问的内存是上图的红色阴影区域,那么按照缓存-主存的层次,我们就可以把这段内存按照一定的策略置换至缓存中即可,CPU再用到这部分内存的时候,就可以直接访问缓存获取,而不需要到速度比较慢的内存中获取。因为有这个局部性原理的存在,所以这个缓存组成的层次才得以生效和高效的运行在计算机中。
3. 主存-辅存层次
- 利用原理:局部性原理
- 实现方式:主存之外增加辅助存储器(磁盘、SD卡、U盘等)
- 目的:解决主存容量不足的问题。假设电脑中有一个20G的游戏,但是电脑只有8G的内存,那么这个游戏是怎么运行起来的呢?因为有局部性原理,可以把当前游戏中使用的数据加载到主存中,而对一些不实用的数据放到辅存中去。这就是使用了主存-辅存层次来解决主存容量不足的问题。