第四章 存储器
★ 重点掌握
1 存储器的分类(各类存储体的特点、主要用途)
2 存储系统的层次结构
3 主存储器的概念及基本组成框图
4 高速缓冲存储器的概念
5 利用高速缓存提高系统运行速度所基于的原理
6 高速缓存与主存之间的映射方式和方法
7 辅助存储器及主要类别
1.主存储器的基本组成
包括(存储体M,各种逻辑部件及控制电路)等。
主存储器的示意图如下:
2. 存储体
我们看主存储体中的存储体:把存储体放大来看,先给一个示意图,方便理解:
存储体的组成:
存储体由许多存储单元组成,每个存储单元又包含若干个存储元件,每个存储元件可以寄存一位二进制代码0/1。
对于其组成我们可以这样来记忆:
- 工作党:存储体 == 大型公司;存储单元 == 公司中不同部门;存储元件 == 部门中每个员工的工位;0/1就是工位上有没有人
- 学生党:存储体 == 系学生宿舍楼;存储单元 == 每个宿舍;存储元件 == 宿舍中的床位;0/1就是床位上有没有人
- 依次类推…
存储单元:以8位二进制作为一个存储单元,也就是一个字节。
一个存储单元可以存储一串二进制代码,称这串二进制代码为一个存储字,代码位数位就是存储字长。
存储单元有编号,这些编号称为存储单元的地址号。存储单元按地址寻访。这些地址都是二进制的形式。
MAR
存储器地址寄存器。保存了存储单元的地址(编号)。其位数反映存储单元的个数。
为什么这么说呢?
比如有16个存储单元,而存储单元的地址是用二进制表示的,那么用4位二进制数就可以表示。
MAR的位数就是4位。
那么相反,如果我们知道MAR有4位,那么存储单元就有 2 4 2^4 24,16个存储单元。
所以MAR反映存储单元的个数。
MDR
存储器数据寄存器,其位数反映存储字长。
存放的是:存储器中从存储某单元读出、或要写入某存储单元的数据(代码)。
如果MDR=8,每个存储单元进行访问时,数据是8位,存储字长8位。
主存储器和CPU的联系
要想完成一个完整的取或存操作,CPU(控制器)还得给主存加以各种控制信号
(读命令、写命令、地址译码驱动信号等)。
现代计算机中:
1.主存由半导体集成电路构成
2.驱动器、译码器和读写电路均在存储芯片中
3.MAR和MDR在CPU芯片中
4.存储芯片和CPU芯片可以通过总线(系统总线)连接
5.地址总线用来指出存储单元地址号。
一个16K×32位的存储器,其地址线和数据线的总和是()。
16k = 2 14 2^{14} 214,所以地址线为14根,32位即 数据线位数=32.
-------------------------------------------------------------------------------------------------------------
存储器(中)
- 每个 2114上的数据线与cpu上的四位地址线连接,满足cpu8为数据的要求.
- CS 片选器连接两个2114保证同时工作, WE读写信号也接上.
- 内扩展的关键就是将两个芯片当作一个来使用,同时读写操作,将两个芯片的片选,
用相同的信号进行连接.
- 这两个芯片接法虽然相同 但是不可以同时工作,否则造成数据混乱。
- 通过第11根地址线A10 当作片选信号,CS=0选择芯片1工作,CS=1选择芯片2工作.
- A10 通过非门取反. 实现切换.。
- cpu与芯片的连接的几个关键点,数据线/ 地址线/ 读写命令线/ 片选线的连接。
-------------------------------------------------------------------------------------------------------------
存储器(下)
主存地址长度: 主存中存储单元个数为 2 10 2^{10} 210,则主存地址长度就是10
Cache地址长度:Cache中存储单元个数为 2 10 2^{10} 210,则Cache地址长度就是10
t:主存地址长度 - Cache地址长度
c:Cache可以被分为 2 c 2^{c} 2c块
m:主存可以被分为 2 m 2^{m} 2m块
b:块长为 2 b 2^{b} 2b(按访存地址计算)
m = t + c
m=主存地址长度 - b
主存地址长度 = t + c + b
2.全相联映射
计算方法与上面的一样.
3.组相联映射
2 c 2^{c} 2c 表示Cache的总块数
2 q 2^{q} 2q 表示Cache分组个数(分组个数=分块个数/组内块数)
2 r 2^{r} 2r 表示组内包含的块数(r=1,每组包含2块,叫做二路组相联)
s = t + r
q = c - r