408考研逐题详解:2010年第17题——内存的地址转换和数据访问

2010年第17题

下列命中组合情况中,一次访存过程中不可能发生的是( )

A. TLB 未命中,Cache 未命中,Page 未命中

B. TLB 未命中,Cache 命中,Page 命中

C. TLB 命中,Cache 未命中,Page 命中

D. TLB 命中,Cache 命中,Page 未命中

解析

本题考查计算机组成原理中主存管理相关的知识点,特别是虚拟内存系统中的地址转换和数据访问流程。题目要求判断在 TLB(Translation Lookaside Buffer)、Cache(高速缓存)和 Page(页面)的命中组合中,哪种情况在一次访存过程中不可能发生。核心知识点包括 TLB 的作用、Cache 的作用、Page 的状态及其相互关系。

  1. TLB(Translation Lookaside Buffer,准换检测缓冲区,即快表):
    • TLB 是 CPU 主存管理单元(MMU)的一部分,用于缓存逻辑地址到物理地址的转换结果(即页表条目)。它是一个高速硬件缓存,旨在减少访问主存中页表的延迟。
      • TLB命中:逻辑地址的转换在 TLB 中找到,无需访问主存中的页表,直接获得物理地址。
      • TLB未命中:逻辑地址的转换结果不在 TLB 中,需要访问主存中的页表获取物理地址。如果页表不在 Cache 中,再访问主存。
    • 关键特性:TLB 只存储有效的页表条目,这些条目对应于已驻留在主存中的页面(即 Page 命中的页面)。如果页面不在主存中(Page 未命中),其页表条目通常无效或不存在于 TLB 中,因此 TLB 不可能命中一个未驻留的页面。
  2. Cache(高速缓存):
    • Cache 是 CPU 与主存之间的高速数据缓存,用于存储最近访问的数据或指令,以减少访问主存的延迟。它使用物理地址进行访问。
      • Cache 命中:所需数据在 Cache 中找到,无需访问主存。
      • Cache未命中:所需数据不在 Cache 中,需要访问主存获取数据。如果主存中没有数据(例如 Page 未命中),则无法从主存加载数据。
    • 关键特性:Cache 访问依赖于物理地址(由 TLB 或页表提供)。数据能否在 Cache 中命中取决于该数据是否已被缓存,但前提是页面必须驻留在主存中(Page 命中),否则数据无法从主存加载。
  3. Page(页面):
    • 在虚拟内存系统中,物理内存(主存)被划分为固定大小的页面。Page 状态指示页面是否驻留在主存中。
      • Page 命中:所需页面已加载到主存中,页表条目有效,可以直接访问主存数据。
      • Page 未命中(页面错误):所需页面不在主存中(可能在磁盘上),页表条目无效或标记为“不在主存”。此时会触发页面错误异常,操作系统需从磁盘加载页面到主存,然后重新启动访存指令。
    • 关键特性:Page 状态直接影响 TLB 和 Cache:
      • 如果 Page 未命中,页表条目无效,TLB 不可能包含该页面的有效条目(因此 TLB 未命中)。
      • 如果 Page 未命中,数据无法从主存获取,因此 Cache 不可能命中该数据(因为 Cache 数据来源于主存)。
  4. 一次访存过程的的两个阶段:CPU 生成逻辑地址后,
    • 阶段1:地址翻译(通过 MMU),先查 TLB:若命中,获得物理地址;若未命中,访问主存中的页表获取物理地址(此过程可能涉及 Cache 访问)。
    • 阶段2:数据访问(使用物理地址),查 Cache:若命中,返回数据;若未命中,访问主存获取数据。
    • Page 状态的影响:
      • 如果 Page 未命中(在地址翻译阶段发现),会触发页面错误,中断访存流程,数据访问无法进行。
      • Page 命中是地址翻译成功的前提:只有 Page 命中,页表条目才有效,TLB 才能存储或提供物理地址。
    • 内在关系:
      • TLB 和 Page 的关系:TLB 命中以 Page 命中为前提。因为 TLB 缓存的是有效页表条目(对应驻留页面),如果 Page 未命中,TLB 不可能命中。
      • Cache 和 Page 的关系:Cache 命中以 Page 命中为前提。因为 Cache 数据来自主存,如果 Page 未命中,数据不在主存,Cache 无法命中。
      • TLB 和 Cache 的关系:TLB 提供物理地址,用于 Cache 访问,但两者独立(TLB 命中不影响 Cache 是否命中,反之亦然)。

本题要求找出“一次访存过程中不可能发生”的组合。结合以上知识点,逐一分析每个选项:

  • 选项 A:TLB 未命中,Cache 未命中,Page 未命中

    TLB 未命中时,需访问页表;Page 未命中表示页面不在主存,触发页面错误;Cache 未命中是合理的,因为数据不在主存。这符合访存流程:地址翻译失败(Page 未命中)导致数据访问无法进行。所以,可能发生。例如,访问一个新页面时,TLB 无缓存,页表显示页面不在主存。

  • 选项 B:TLB未命中,Cache命中,Page命中

    TLB 未命中时,需访问页表;Page 命中表示页表访问成功,获得物理地址;Cache 命中表示数据在 Cache 中找到。这符合流程:TLB 未命中但页表在主存中(可能页表条目被缓存),然后数据在 Cache 中。所以,可能发生。此选项说明 TLB 和 Cache 间的相对独立,TLB 未命中不影响 Cache 命中,只要 Page 命中。

  • 选项 C:TLB 命中,Cache 未命中,Page 命中

    TLB 命中直接获得物理地址;Page 命中是隐含的(因为 TLB 条目有效);Cache 未命中表示数据不在 Cache,需访问主存。这符合流程:地址翻译成功,但数据未缓存。所以,可能发生。例如,TLB 有地址转换结果,但数据是首次访问或已被淘汰出 Cache。

  • 选项 D:TLB 命中,Cache 命中,Page 未命中

    TLB 命中要求 Page 必须命中(TLB 只存储有效条目,对应驻留页面);但 Page 未命中表示页面不在主存,产生了矛盾。此外,Page 未命中时,数据不在主存,Cache 不可能命中。所以,不可能发生。因为:

    • TLB 命中的前提是页面驻留(Page 命中),Page 未命中时 TLB 不可能命中。
    • Page 未命中时,数据无法从主存加载,Cache 不可能包含该数据(Cache 命中要求数据在主存中)。

本题答案:D

你可能感兴趣的:(考研复习408,考研,计算机,408,考研真题,计算机考研)