408模拟选择题 · 计算机组成原理 · 第3章 存储系统
3.1 存储器概述
3.1.1 存储器的分类
- 【竟成·模拟七-16】 下列存储器中,属于易失性存储器的是()。
查看答案与解析
答案: A
解析: 易失性存储器是指断电后所存信息会丢失的存储器。Cache 通常采用 SRAM 实现,SRAM 需要持续供电维持存储内容,断电后数据消失,因此属于易失性存储器。
- EPROM 属于可擦除可编程只读存储器,断电后信息仍可保存。
- Flash Memory 属于非易失性半导体存储器。
- CD-ROM 属于光盘只读存储器,也具有非易失性。
所以选择 A。
3.2 主存储器
3.2.1 半导体随机存取存储器
- 【竟成·模拟四-15】 下列同时具有行地址选通和列地址选通引脚的存储器芯片是()。
查看答案与解析
答案: C
解析: DRAM 为减少地址引脚数量,通常将行地址和列地址分时复用同一组地址引脚,并分别使用:
- 行地址选通信号 RAS;
- 列地址选通信号 CAS。
SDRAM 属于同步动态随机存取存储器,本质上仍是 DRAM,具有行地址选通和列地址选通信号,因此选择 C。
SRAM 通常不采用行、列地址分时复用,不需要 RAS/CAS;EPROM 和 Flash 也不以这种 DRAM 行列选通方式工作。
3.2.3 多模块存储器
- 【王道·卷八-Q15】 有一个八体低位交叉存储器,每个存储体的容量为 位,若每个存储体的存储周期为 ,采用轮流启动的方式,则该存储器能提供的最大带宽是( )。
查看答案与解析
答案: B
解析: 八体低位交叉存储器采用轮流启动时,相邻存储体的启动时间间隔为:
每次访问一个存储体可传送 64 位,即:
稳定流水传输时,每 可输出 8B,因此最大带宽为:
所以选择 B。
也可用公式:
其中 为存储体数, 为每体一次传输的数据量, 为存储周期。
- 【竟成·模拟一-16】 某计算机采用4体低位交叉编址存储器。存取周期T=80ns,总线启动访问间隔Δt=20ns。CPU访问的主存地址序列为0,3,9,17,2,4,8,67,51,10。该序列访问过程中,若发生体冲突则后续访问都要随之延后,则发生体冲突的总次数是()。
查看答案与解析
答案: C
解析: 4 体低位交叉编址时,主存地址对应的存储体号为:
因此地址序列对应的存储体序列为:
每个存储体启动一次后,需要经过完整存取周期 才能再次启动。总线原本每隔 发起一次访问;若出现冲突,则本次及后续访问整体延后。
逐次分析如下:
- 地址 0、3、9 分别访问体 0、3、1,启动时刻为 、、,均无冲突。
- 地址 17 仍访问体 1,原计划在 启动,但体 1 从 起需忙到 ,发生第 1 次冲突,本次延后到 。
- 后续地址 2、4 分别访问体 2、0,无冲突。
- 地址 8 再次访问体 0,原计划启动时体 0 尚未完成上一访问,发生第 2 次冲突。
- 地址 67 访问体 3,无冲突;地址 51 又访问体 3,发生第 3 次冲突。
- 最后地址 10 访问体 2,无冲突。
因此总共发生 3 次体冲突,选择 C。
- 【竟成·模拟二-15】 某八体低位交叉存储器由容量为128M×32位的存储体组成,每个存储体的存储周期为800ns,存取时间为100ns,则该存储器提供的最大带宽为()。
查看答案与解析
答案: A
解析: 八体低位交叉存储器在理想情况下可轮流启动各存储体,相邻两次启动的最短间隔为:
这与题给存取时间 一致,说明可以形成连续流水访问。
每次传送的数据宽度为 32 位,即:
因此最大带宽为:
所以选择 A。
容量 位只说明每个存储体的存储规模,并不直接决定连续传输带宽。
- 【竟成·模拟七-17】 一个八体低位交叉存储器,每个存储体的容量为256M×64位,若每个体的存储周期为80ns,那么该存储器能提供的最大带宽是()。
查看答案与解析
答案: B
解析: 八个存储体轮流启动时,相邻两次启动的时间间隔为:
每个存储体一次传送 64 位,即 8B,因此最大带宽为:
也可直接使用:
所以选择 B。
3.3 主存储器与CPU的连接
3.3.2 主存容量的扩展
- 【王道·卷一-Q15】 某DDR3 SDRAM芯片内部的核心频率为133.25MHz,通过芯片内部的 缓冲可以实现预取功能,芯片总线上每秒传输数据的次数达到芯片内部核心频率的8倍。存储器总线在时钟信号CLK的上升沿与下降沿共进行两次数据传输,每次传输8B,则下列说法中错误的是( )。
查看答案与解析
答案: C
解析: 芯片总线的数据传输率为核心频率的 8 倍:
因而:
- I/O 缓冲采用 8n 预取,A 正确;
- 每秒传输约 次数据,B 正确。
DDR 在时钟上升沿和下降沿各传输一次数据,因此每个总线时钟周期完成两次传输。总线实际时钟频率为:
所以 C 将“有效数据传输率”误写成“时钟频率”,错误。
每次传输 8B,带宽为:
约为 ,D 正确。因此选择 C。
- 【王道·卷一-Q16】 假定用若干 位的芯片组成一个 位的存储器,存储字长为32位,内存按字编址,则地址 所在芯片的最大地址是( )。
查看答案与解析
答案: C
解析: 目标存储器为 位,单片为 位:
- 位扩展倍数为 ,即每组需 4 片并行组成 32 位字长;
- 字扩展倍数为 ,共形成 4 个地址区间。
每个地址区间包含 个字地址,因此 4 组地址范围依次为:
地址 落在第三组 中,因此与该地址对应的芯片组的最大地址为 。选择 C。
- 【王道·卷二-Q15】 某计算机的字长为64位,采用64位定长指令字,存储器总线的宽度为64位,若用8个 位的DRAM芯片扩展构成一个 位的内存条,支持突发传输方式,则下列说法中正确的是( )。 I. 在该内存条中,所有芯片行缓冲的总大小为 II. 采用多模块交叉编址方式 III. 每代DRAM芯片如果地址引脚数增加1个,那么容量至少增加4倍 IV. 该计算机的主存数据寄存器(MDR)的宽度为8位
查看答案与解析
答案: A
解析: 逐项判断:
I 正确。 单片容量为 位,其中 。DRAM 通常将 26 位地址均分为 13 位行地址和 13 位列地址。选中一行后,单片行缓冲可保存:
8 片并行,所有芯片行缓冲总大小为:
II 错误。 8 个芯片同时接收同一地址,每片提供 8 位,合起来构成一个 64 位存储字。这属于位扩展,而不是多模块交叉编址。交叉编址要求不同模块存放连续地址并轮流启动。
III 正确。 DRAM 的行地址和列地址复用同一组地址引脚。若地址引脚增加 1 根,则行地址和列地址通常都可各增加 1 位,存储单元数扩大为:
即容量至少扩大 4 倍。
IV 错误。 MDR 的宽度通常与一次主存读写的数据宽度或存储器总线宽度一致,本题应为 64 位,而不是单个芯片的 8 位。
因此正确的是 I、III,选择 A。
- 【竟成·模拟三-15】 某存储器按字节编址,地址0000H~FFFFH为RAM区,若采用16K×2位的RAM芯片进行设计,则在字方向和位方向上分别扩展了()倍。
查看答案与解析
答案: B
解析: 地址范围为 ,共包含:
个字节地址。因此目标 RAM 的组织形式为:
单片容量为 位:
- 字方向扩展倍数为:
- 位方向扩展倍数为:
所以字方向和位方向均扩展 4 倍,选择 B。
- 【竟成·模拟五-15】 某容量为16K×8bit的存储器由若干4K×4bit的SRAM芯片通过字位扩展构成,则该存储器正常工作所需的最少输入地址线位数为()。
查看答案与解析
答案: D
解析: 目标存储器共有 个可寻址存储字,因此从整个存储器的外部看,必须使用 14 根地址线才能唯一选择其中一个字:
单片 位芯片内部需要 12 根地址线;目标存储器在字方向上扩展 4 倍,还需用额外 2 位高位地址进行片选。故总地址输入位数为:
位方向扩展只增加并行芯片数量,不增加地址线。因此选择 D。
3.4 外部存储器
3.4.1 磁盘存储器
- 【王道·卷三-Q16】 下列关于磁盘术语的说法中,错误的是( )。
查看答案与解析
答案: C
解析: 逐项判断:
- A 正确。位密度是沿磁道圆周方向单位长度上记录的位数。采用固定位密度时,外圈磁道周长更长,因此可记录的信息量更多。
- B 正确。道密度是沿半径方向单位长度内的磁道数,等于相邻磁道间距的倒数。
- C 错误。一个扇区的传输时间不仅与扇区大小和转速有关,还与每条磁道包含的扇区数、磁盘实际数据传输率等有关,不能只由题述两个因素决定。
- D 正确。磁盘控制器负责控制磁盘的读写操作,并协调磁盘与主存之间的数据传送。
因此选择 C。
- 【王道·卷三-Q22】 假设磁盘采用DMA方式与主机交换信息,其数据传输率为 ,平均传输的数据块大小为4KB,若忽略预处理时间,则该磁盘机向CPU发出中断请求的时间间隔最少是( )。
查看答案与解析
答案: D
解析: DMA 每传送完一个数据块,才向 CPU 发出一次中断请求。因此最小中断间隔等于传送一个平均数据块所需的时间。
数据块大小为:
数据传输率为 ,故传输时间为:
所以选择 D。
DMA 方式虽然减少了 CPU 对每个字节或字的干预,但每完成一个数据块仍需通过中断通知 CPU,因此中断间隔由块传输时间决定。
- 【王道·卷五-Q15】 磁盘阵列(RAID)做不到的是( )。
查看答案与解析
答案: D
解析: RAID 的基本思想是将多个独立磁盘组织成一个逻辑磁盘,通过并行访问、数据条带化、镜像或校验信息等方式改善性能与可靠性。
- A 正确。RAID 可将数据分散到多个磁盘上,使多个磁盘并行读写。
- B 正确。采用条带化后,多块磁盘可同时传输数据,从而提高 I/O 吞吐率。
- C 正确。RAID 1、RAID 5 等通过镜像或校验信息提供数据恢复能力,可提高可靠性。
- D 错误。多数具有容错能力的 RAID 恰恰需要增加冗余数据,而不是减少数据冗余。RAID 0 虽然没有冗余,但也不能提供可靠性提升。
因此选择 D。
- 【王道·卷六-Q14】 一个磁盘的转速为 (转/分),平均寻道时间为 ,平均数据传输率为 ,不考虑排队等待时间,则读一个 扇区的平均时间约为( )。
查看答案与解析
答案: B
解析: 读取一个扇区的平均访问时间由三部分组成:
磁盘转速为 ,即每秒转数为:
因此旋转一周所需时间为:
平均旋转延迟为半周时间:
传输一个 扇区所需时间为:
所以平均访问时间为:
因此选择 B。
- 【竟成·模拟五-16】 下列关于RAID说法正确的是()。
查看答案与解析
答案: D
解析: RAID 1 的核心机制是镜像:同一份数据同时写入两块或多块磁盘。当其中一块磁盘故障时,仍可从镜像盘读取完整数据,因此能够提高可靠性。
- A 错误。RAID 0 采用条带化,可提升并行读写性能,但没有冗余信息,任一磁盘故障都可能导致整个阵列的数据丢失。
- B 错误。RAID 1 的读性能可能因并行读取而提高,但写操作需要同时写入镜像盘,不能笼统地说其读写性能在所有 RAID 中最高。
- C 错误。奇偶校验主要用于 RAID 3、RAID 4、RAID 5、RAID 6 等,RAID 1 不使用奇偶校验。
- D 正确。RAID 1 通过镜像保存数据副本,以冗余换取可靠性。
因此选择 D。
3.4.2 固态硬盘
- 【王道·卷四-Q15】 在下列关于固态硬盘的说法中,错误的是( )。
查看答案与解析
答案: D
解析: 固态硬盘通常采用闪存作为存储介质,没有机械磁头和旋转盘片,因此支持快速随机访问。不过,闪存单元可擦写次数有限,写入前通常还需要先擦除相应块。
- A 正确。相较于读取,闪存写入尤其是擦除操作通常更慢,因此一般表现为读快、写相对较慢。
- B 正确。固态硬盘可直接按地址访问闪存页,不需要机械寻道和旋转等待,支持随机访问。
- C 正确。若持续擦写同一物理块,会更快耗尽该块的擦写寿命。
- D 错误。磨损均衡的主要目的是将写操作尽量均匀地分布到各闪存块,避免少数块过早损坏,从而延长固态硬盘的使用寿命;提高读写速度并不是其根本目的。
因此选择 D。
3.5 高速缓冲存储器
3.5.2 Cache的基本工作原理
- 【王道·卷四-Q16】 对于存储器层次结构,在下列描述中,属于Cache-主存和主存-辅存这两个层次结构的不同点的是( )。
查看答案与解析
答案: B
解析: Cache—主存层次与主存—辅存层次都利用程序的局部性,将近期可能访问的信息保存在较快的存储层中,但二者的主要目的不同。
- Cache—主存层次主要用于弥补 CPU 与主存之间的速度差距,提高访存速度。
- 主存—辅存层次通过虚拟存储器机制,为程序提供比实际主存更大的逻辑地址空间,主要目的是扩大可用存储容量。
逐项判断:
- A 错误。两个层次都需要建立快、慢存储器之间的映射关系。
- B 正确。二者的主要引入目的分别是提高速度和扩大容量。
- C 错误。Cache 需要替换算法,虚拟存储器在主存页框不足时也需要页面置换算法。
- D 错误。快速层未命中时,二者都需要到相应的较慢层查找并调入信息。
因此选择 B。
- 【王道·卷六-Q16】 在下列关于Cache与TLB的描述中,说法错误的是( )。
查看答案与解析
答案: C
解析: TLB 是页表项的高速缓存,保存虚拟页号到物理页框号等地址转换信息;Cache 保存的是主存中指令或数据块的副本。
- A 正确。TLB 保存页表项,Cache 保存普通存储数据或指令,二者内容和作用不同。
- B 正确。TLB 未命中后,处理器需要访问主存中的页表。由于页表本身也位于主存,其页表项可能恰好已缓存在 Cache 中,因此可能直接命中 Cache。
- C 错误。TLB 未命中并不等于地址转换失败,更不会必然导致程序出错;系统只需进行页表查询并将结果填入 TLB。只有查页表后发现页面不在主存时,才会产生缺页异常。Cache 未命中同样只是需要从下一级存储器取数。
- D 正确。页表项和数据、指令访问都具有时间局部性和空间局部性,因此 TLB 与 Cache 的命中率都受程序局部性影响。
因此选择 C。
- 【王道·卷七-Q14】 某计算机的存储系统由Cache—主存系统构成,Cache的存取周期为 ,主存的存取周期为 。当CPU执行一段程序时,Cache完成存取的次数为4800次,主存完成存取的次数为200次,则该Cache—主存系统的效率是( )。(设Cache和主存不能同时访问。)
查看答案与解析
答案: A
解析: 总访存次数为:
Cache 命中率为:
因为 Cache 和主存不能同时访问,所以:
- 命中时耗时为 ;
- 未命中时先访问 Cache,再访问主存,耗时为 。
平均访问时间为:
Cache—主存系统效率定义为理想 Cache 访问时间与实际平均访问时间之比:
因此选择 A。
3.5.3 Cache和主存的映射方式
- 【竟成·模拟二-16】 某计算机按字节编址,内部Cache由64组构成,每组包括4个Cache行,内存块大小为32B,主存共有8192个内存块,则主存地址中标记位长度为()位。
查看答案与解析
答案: A
解析: Cache 共有 64 组,因此组号需要:
主存块大小为 ,且按字节编址,因此块内地址需要 5 位。
主存共有 个内存块,所以主存块号共需要 13 位。采用组相联映射时,主存块号由“标记位 + 组号”组成,因此标记位长度为:
每组有 4 个 Cache 行只说明这是 4 路组相联,不会增加组号位数。
因此选择 A。
3.5.4 Cache中主存块的替换算法
- 【王道·卷二-Q17】 Cache缺失会导致系统需要额外的时间开销去获取数据,通常以时钟周期为单位来衡量Cache缺失的开销,下列关于Cache缺失引起的开销的说法中,正确的是( )。
查看答案与解析
答案: C
解析: Cache 的总缺失开销不仅取决于缺失率,还取决于访存次数和单次缺失代价,可概括为:
- A 错误。即使 Cache1 缺失率更高,如果访问次数更少或单次缺失代价更低,其总缺失开销仍可能更小。
- B 错误。提高关联度通常能减少冲突缺失,但并不保证缺失率一定降低;缺失率还受容量、块大小、替换算法及访问序列影响,结果也可能不变。
- C 正确。若访问序列反复访问会映射到同一组而该组容纳不下的若干块,就可能发生“刚换出又访问”的抖动现象。直接映射和组相联映射都可能因此每次访问均不命中,使缺失率达到 。
- D 错误。缺失代价还取决于下一级存储器的访问时间、总线宽度、块大小和传输方式等,并非只由 Cache 本身结构决定。
因此选择 C。
- 【王道·卷七-Q16】 在下列关于Cache和虚拟存储器的说法中,错误的有( )。 I. 当Cache失效(不命中)时,处理器将切换进程,以更新Cache中的内容 II. 当虚拟存储器失效(如缺页)时,处理器将切换进程,以更新主存中的内容 III. Cache和虚拟存储器由硬件和OS共同实现,对应用程序员均是透明的 IV. 虚拟存储器的容量等于主存和辅存的容量之和
查看答案与解析
答案: D
解析: 逐项判断:
- I 错误。Cache 不命中时,通常由硬件自动从下一级存储器取回相应块并更新 Cache,不需要切换进程。
- II 正确。发生缺页时,需要由操作系统从辅存调入所需页面。由于磁盘 I/O 耗时较长,当前进程通常会阻塞,处理器可切换执行其他就绪进程。
- III 错误。虚拟存储器由硬件和操作系统共同实现;而 Cache 的查找、映射、替换和填充主要由硬件完成,通常不由操作系统参与。二者对应用程序员一般都透明,但前半句不正确,因此该项整体错误。
- IV 错误。虚拟存储器的容量由虚拟地址空间、辅存可用空间以及系统结构共同限制,并不等于主存容量与辅存容量的简单相加。
因此错误的是 I、III、IV,选择 D。
- 【竟成·模拟五-17】 假设某计算机按字编址,Cache有4个行,Cache和主存之间交换的块大小为1个字。若Cache的内容初始为空,采用2路组相联映射方式和LFU替换策略。访问的主存地址依次为:0、4、9、0、2、6、0、5、5、2时,则命中Cache的次数是()。
查看答案与解析
答案: C
解析: Cache 共 4 行,采用 2 路组相联,因此共有:
块大小为 1 个字,且按字编址,所以主存地址本身就是主存块号。映射组号为:
逐次访问过程如下:
| 访问地址 | 所在组 | 命中情况 | 访问后的主要状态 |
|---|---|---|---|
| 0 | 0 | 未命中 | 组 0 装入 0,频次为 1 |
| 4 | 0 | 未命中 | 组 0 装入 4,频次为 1 |
| 9 | 1 | 未命中 | 组 1 装入 9,频次为 1 |
| 0 | 0 | 命中 | 0 的频次变为 2 |
| 2 | 0 | 未命中 | 4 的频次最低,被 2 替换 |
| 6 | 0 | 未命中 | 2 的频次最低,被 6 替换 |
| 0 | 0 | 命中 | 0 的频次变为 3 |
| 5 | 1 | 未命中 | 组 1 尚有空行,装入 5 |
| 5 | 1 | 命中 | 5 的频次变为 2 |
| 2 | 0 | 未命中 | 6 的频次最低,被 2 替换 |
命中发生在第 4、7、9 次访问,共 3 次,因此选择 C。
3.5.6 Cache容量的计算举例
- 【竟成·模拟四-16】 某计算机采用一级全相联Cache进行主存和CPU之间的数据交换,Cache采用写回方式和随机替换策略。计算机按照字节编址,主存地址为32位,主存块大小为16B,则包含16KB数据的Cache总容量至少有()位。
查看答案与解析
答案: C
解析: Cache 数据区容量为 16KB,每个主存块为 16B,因此 Cache 行数为:
主存按字节编址,块大小为 ,块内偏移需要 4 位。采用全相联映射,没有组号位,因此标记位长度为:
每个 Cache 行需要保存:
- 数据:;
- 标记位:28 位;
- 有效位:1 位;
- 写回方式所需的脏位:1 位。
随机替换不需要为每行设置额外的替换状态位,所以每行总位数为:
Cache 总容量为:
因此选择 C。
- 【竟成·模拟六-15】 假定主存地址为32位,按字节编址,主存和Cache之间采用全相联映射方式,主存块大小为1个字,每字32位,采用回写(Write Back)方式和随机替换策略,则能存放128KB数据的Cache的总容量至少应有()位。
查看答案与解析
答案: D
解析: 每字 32 位,即:
Cache 数据区为 128KB,因此 Cache 行数为:
采用全相联映射,不含组号字段。块内偏移为 2 位,所以标记位为:
每行需要:
- 数据位:32 位;
- 标记位:30 位;
- 有效位:1 位;
- 脏位:1 位。
因此每行总位数为:
Cache 总容量为:
因此选择 D。
3.5.7 Cache的应用
- 【竟成·模拟二-17】 二维数组a的定义为:int a[32][64]。数组a在内存中按行优先存储,在16题所述计算机中执行下述程序段访问数组a。假设Cache初始为空,则访问a的Cache命中率为()。
for(int j = 0; j < 64; j++)
for(int i = 0; i < 32; i++)
a[i][j] = 1;
查看答案与解析
答案: D
解析: 第 16 题中的 Cache 共有 64 组,每组 4 行,主存块大小为 32B。一个 int 占 4B,因此每个主存块可以容纳:
数组按行优先存储,每行有 64 个元素,即每行占:
对于固定的 ,程序依次访问 32 行中的第 个元素。令:
则第 行所访问元素所在的主存块号为:
其映射到的 Cache 组号为:
当 时,同一个组中恰好映入 4 个不同主存块,正好等于 4 路组相联的容量,因此不会发生冲突替换。
同一主存块中的 8 个数组元素会在连续的 8 个外层循环中被访问。第一次访问该块时未命中,后续 7 次均命中,所以每 8 次访问中有 7 次命中:
因此选择 D。
- 【竟成·模拟三-21】 假定采用多模块交叉存储器组织方式,存储器芯片和总线支持突发传送,总线时钟频率500MHz,CPU通过存储器总线读取数据的过程为:发送首地址和读命令需1个时钟周期,存储器准备第一个数据需8个时钟周期(即CAS潜伏期为8),随后每个时钟周期总线上传送1个数据,可连续传送8个数据(即突发长度为8)。若主存和Cache之间交换的主存块大小为64B,存取宽度和总线宽度都为8B,则Cache的一次缺失处理至少用时()。
查看答案与解析
答案: B
解析: 总线频率为 500MHz,因此一个总线时钟周期为:
主存块大小为 64B,总线每次传送 8B,因此需要传送:
一次 Cache 缺失处理至少包括:
- 发送首地址和读命令:1 个周期;
- CAS 潜伏期:8 个周期;
- 突发传送 8 个数据:8 个周期。
总周期数为:
因而总时间为:
因此选择 B。
- 【竟成·模拟四-17】 某计算机的主存采用8体交叉存储的方式,每个存储体的存储字长为4B,存储器总线宽度为32位。Cache与主存间的数据交互支持突发传送方式,每次突发传送总数据量为32B,过程包括送地址和读命令(耗时1总线时钟周期)、存储器准备和发送数据(存储器准备第1个存储体的数据耗时8个总线时钟周期,之后每个总线时钟周期完成一个存储体的数据传输)。若主存与Cache间每次交换的主存块大小为32B,则一次Cache缺失的时间最少是()个总线时钟周期。
查看答案与解析
答案: B
解析: 总线宽度为 32 位,即每个总线时钟周期可传送:
主存块大小为 32B,因此共需传送:
一次突发传送需要:
- 发送地址和读命令:1 个周期;
- 准备第一个存储体的数据:8 个周期;
- 连续传送 8 个存储体的数据:8 个周期。
因此最少需要:
8 体交叉存储使各存储体可以流水启动,从而做到之后每周期传送一个数据,但不能省略首个数据的准备时间和 8 次实际传输时间。因此选择 B。
- 【竟成·模拟五-19】 某计算机主频为1GHz,Cache命中时CPI为10,单次Cache未命中时的额外开销总共为100ns。该计算机需要执行100条指令,平均每条指令需进行1.5次访存,Cache缺失率为10%,则该计算机执行这100条指令一共耗时()。
查看答案与解析
答案: A
解析: 主频为 1GHz,因此一个时钟周期为:
Cache 全部命中时,100 条指令的基本执行时间为:
总访存次数为:
Cache 缺失次数为:
缺失带来的额外时间为:
因而总执行时间为:
因此选择 A。
3.6 虚拟存储器
3.6.2 页式虚拟存储器
- 【王道·卷五-Q17】 某虚拟存储系统采用页式存储管理,只有 、 和 三个页框,页面访问顺序为 0,1,2,4,2,3,0,2,1,3,2,3,0,1,4。若采用 FIFO 算法,则命中率为( )。
查看答案与解析
答案: B
解析: 系统有 3 个页框,采用 FIFO 算法。命中时不改变页面进入内存的先后顺序。逐次访问如下:
| 访问页面 | 页框内容(从最早进入到最晚进入) | 是否命中 |
|---|---|---|
| 0 | 0 | 否 |
| 1 | 0,1 | 否 |
| 2 | 0,1,2 | 否 |
| 4 | 1,2,4 | 否 |
| 2 | 1,2,4 | 是 |
| 3 | 2,4,3 | 否 |
| 0 | 4,3,0 | 否 |
| 2 | 3,0,2 | 否 |
| 1 | 0,2,1 | 否 |
| 3 | 2,1,3 | 否 |
| 2 | 2,1,3 | 是 |
| 3 | 2,1,3 | 是 |
| 0 | 1,3,0 | 否 |
| 1 | 1,3,0 | 是 |
| 4 | 3,0,4 | 否 |
共访问 15 次,其中命中 4 次,因此命中率为:
因此选择 B。
- 【竟成·模拟一-17】 某系统依次进行4次访存读数据操作,这4次访存操作情况如下:第1次:TLB命中,未发生缺页,Cache命中;第2次:TLB未命中,未发生缺页,Cache未命中;第3次:TLB未命中,发生缺页,Cache未命中;第4次:TLB命中,未发生缺页,Cache未命中。已知缺页处理过程中会同时更新TLB和页表,并将整个缺页处理过程只视作一次访存,则这4次访存操作的总访存次数是()。
查看答案与解析
答案: C
解析: 分别统计 4 次读数据操作引起的访存次数:
- TLB 命中、Cache 命中:不需要访问页表,直接完成数据访问,共 1 次访存。
- TLB 未命中、未缺页、Cache 未命中:需要访问页表完成地址转换,再访问数据,共 2 次访存。
- TLB 未命中、发生缺页、Cache 未命中:先访问页表发现缺页;题目规定整个缺页处理过程只按 1 次访存计算;页面调入并更新 TLB、页表后,还需重新访问目标数据,共 3 次访存。
- TLB 命中、Cache 未命中:地址转换不需查页表,直接访问目标数据,共 1 次访存。
因此总访存次数为:
Cache 是否命中只决定数据来自 Cache 还是下一级存储器,并不会在这里将一次数据访问重复计数。因此选择 C。