【软考】4 存储系统
1、层次化存储体系
存储硬件:
注意,Cache位于CPU和主存之间,不属于主存部分
存储分类方式:
例题:
1、CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。
若一一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为(A)。
A、数据局部性
B、指令局部性
C、空间局部性
D、时间局部性
2、虚拟存储体系由(A )两级存储器构成。
A、主存-辅存
B、寄存器Cache
C、寄存器-主存
D、Cache-主存
虚拟存储体系是当主存资源不足时,使用部分辅存作为虚拟主存资源
3、在微机系统中,BIOS (基本输入输出系统)保存在( A)中。
A、主板上的ROM
B、CPU的寄存器
C、主板上的RAM
D、虚拟存储器
2、缓存Cache
局部性概念
在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)。
使用Cache改善系统性能的依据是程序的局部性原理。
- 时间局部性
- 空间局部性
平均周期的计算公式
如果以h代表对Cache的访问命中率,t1 表示Cache的周期时间,t2 表示主存储器周期时间
以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3,则:
平均周期 = 命中率 * Cache周期 + 失效率 * 主存周期,公式为【t3 = h * t1 + (1 - h) * t2】
其中,(1 - h) 又称为失效率(未命中率)。默认Cache一般命中率为90%
Cache和主存的对应关系
主存和Cache之间的地址映射由硬件完成
三种映射方式:
例题
1、以下关于Cache (高速缓冲存储器)的叙述中,不正确的是( A)。
A、Cache 的设置扩大了主存的容量
B、Cache 的内容是主存部分内容的拷贝
C、Cache 的命中率并不随其容量增大线性地提高
D、Cache位于主存与CPU之间
2、在程序执行过程中,高速缓存(Cache)与主存间的地址映射由( D)
A、操作系统进行管理
B、存储管理软件进行管理
C、程序员自行安排
D、硬件自动完成
3、主存与Cache的地址映射方式中,(A )方式可以实现主存任意块装入Cache中任意位置,只有装满才需要替换。
A、全相联
B、直接映射
C、组相联
D、串并联
3、主存编址计算
bit 比特位,4bit表示4字长
存储单元,由N个字长组成, 由(起始地址 到 结束地址) + 1 为存储单元个数
1、存储器拼接【垂直拼接】
字长不发生改变,存储单元个数改变,容量改变
2、存储器拼接【水平拼接】
字长改变,存储单元个数不变,容量改变
3、特性概念
存储单元
存储单元个数 = 最大地址 - 最小地址 + 1
编址内容
按字编址; 存储体的存储单元是字存储单元,即最小寻址单位是一个字
按字节编址: 存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。
总容量 = 存储单元个数 * 编址内容
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:
总片数 = 总容量 / 每片的容量
例题
1、内存按字节编址,地址从A0000H到CFFFFH的内存,共有( )字节,
若用存储容量为64K X 8bit的存储器芯片构成该内存空间,至少需要()片。
A、80KB B、96KB C、160KB D、192KB
A、2 B、3 C、5 D、8
解题思路
- 字节表示 8个比特位 8bit , 即8字长
存储单元个数 = 最大地址 - 最小地址 + 1
最大地址 + 1,CFFFF -> D0000, D转十进制为13, A转十进制为10
存储单元个数为 30000H 当前为十六进制,需要转换十进制处理
30000H 一共4个位阶[4, 3, 2, 1, 0],则为 3 * 164
则总容量为 3 * 164 * 8
1K = 210 * 8 (1024B) ,1M = 220 * 8 (1048576B),1G = 230 * 8 (1073741824B)
所以字节部分可以抵消 3 * 164 对上 210
转换 16 = 2^4,16^4 = (2 ^ 4) ^ 4 = 2 ^ 16
约分 210 和 216后, 剩余 26
2^6 * 3 = 64 * 3 = 192,上一步约分是为KB单位,192KB,选D
64K * 8bit的存储器芯片构成,位宽一致,只需要对比192和64,上一步就是由64得来的,所以为3片,答案选B