题7

题目

【2020 统考真题】假定主存地址为 32 位,按字节编址,指令 Cache 和数据 Cache 与主存之间均采用 8 路组相联映射方式,直写(WriteThrough)写策略和 LRU 替换算法,主存块大小为 64B,数据区容量各为 32KB。开始时 Cache 均为空。请回答下列问题。

(1) Cache 每一行中标记(Tag)、LRU 位各占几位?是否有修改位?

(2) 有如下 C 语言程序段:

for(k = 0; k < 1024; k++)
    s[k] = 2 * s[k];

若数组 s 及其变量 k 均为 int 型,int 型数据占 4B,变量 k 分配在寄存器中,数组 s 在主存中的起始地址为 008000C0H,则该程序段执行过程中,访问数组 s 的数据 Cache 缺失次数为多少?

(3) 若 CPU 最先开始的访问操作是读取主存单元 00010003H 中的指令,简要说明从 Cache 中访问该指令的过程,包括 Cache 缺失处理过程。

分析