NOIP 提高组初赛 · NOIP 2010 提高组初赛试题 第 8 题

选择题 · 答案 B · 考点:计算机存储体系

← 整套速查表 NOIP 提高组初赛 全部真题

题目

主存储器的存取速度比中央处理器(CPU)的工作速度慢的多,从而使得后者的效率受到影响。而根据局部性原理,CPU 所访问的存储单元通常都趋于一个较小的连续区域中。于是,为了提高系统整体的执行效率,在 CPU 中引入了(   )。

答案:B

考点

计算机存储体系

解题思维

这题考存储层次和局部性原理。拿到题先想:CPU 和主存速度差咋补?结合‘局部性’这个关键词,直接指向 Cache,寄存器在 CPU 内部不解决主存延迟,闪存和外存更慢,所以选高速缓存。

常见错误

学生容易把‘寄存器’当成答案,因为寄存器最快,但它就在 CPU 内部,解决的是指令取数和操作数暂存,没法解决 CPU 去主存取数据时的等待问题。另外有人会把‘缓存’和‘闪存’搞混,闪存是掉电保存的大容量介质,速度远不如 Cache,也不在 CPU 里。

详细解析(节选)

这道题考查的是计算机存储层次结构和局部性原理的应用。

首先,得搞清楚 CPU 和主存之间有个巨大的‘速度鸿沟’。CPU 一拍纳秒级,主存一拍几十纳秒甚至上百纳秒,CPU 等主存太痛苦了。怎么解决?靠局部性原理——程序运行过程中,CPU 访问的内存地址往往集中在一个小区域,而且访问是重复的。基于这个特性,我们在 CPU 和主存之间插了一层‘高速缓存’(Cache)。

Cache 就是利用局部性原理,把主存里那些 CPU 最近要用、将来可能还要用的数据,提前‘预取’到离 CPU 更近、速度更快的存储单元里。这样 CPU 就不用每次都跑去慢吞吞的主存取数据了,直接从 Cache 拿,效率就拉回来了。

这里要特别注意几个易错点:第一,寄存器(A 选项)虽然速度最快,但它就在 CPU 内部,主要解决指令取数和操作数暂存,解决不了 CPU 去主存取数据时的等待问题,所以不是本题答案。第二,闪存(C 选项)和外存(D 选项)速度比主存还慢,而且容量大、掉电保存,显然不是用来加速 CPU 的。第三,很多人会把‘缓存’和‘闪存’搞混,或者觉得‘缓存’就是泛指所有快存储,其实 Cache 特指 CPU 那一层的高速缓冲。

从命题视角看,这类题喜欢挖‘寄存器 vs 缓存’的坑,或者把‘闪存’‘外存’混进来干扰判断。解题心法是:看到‘局部性原理’+‘CPU 效率’,立刻反应出 Cache;看到‘寄存器’,要警惕它是否真的能解决主存延迟问题。

最后,这个知识点在历年真题里很常见。题库共考过 14 题,覆盖 5 个考试级别(2007-2023);逐年分布:2007 年 2 题、2008 年 2 题、2009 年 1 题、2010 年 2 题、2011 年 1 题、2014 年 2 题、2015 年 1 题、2020 年 1 题、2023 年 2 题;分赛事:NOIP 普及组 初赛 6 题、NOIP 提高组 初赛 5 题、GESP 一级 1 题、CSP 入门级 1 题、GESP 二级 1 题。考频这么高,说明命题人一直觉得这个概念必须考透。基于这个趋势,未来可能继续考 Cache 的替换算法(LRU/FIFO)或者多级 Cache 结构,但核心还是局部性原理的应用。暂无足够依据预测具体题型变化,但建议把 Cache 在存储层次中的位置和作用彻底吃透。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断