2023 年 408 真题2023 年 408 计算机组成原理 · 第 22 题选中文字高亮 · 下划线下列关于 I/O 控制方式的叙述中,错误的是( )。A查询方式下,通过 CPU 执行查询程序进行 I/O 操作B中断方式下,通过 CPU 执行中断服务程序进行 I/O 操作CDMA 方式下,通过 CPU 执行 DMA 传送程序进行 I/O 操作D对于 SSD 网络适配器等高速设备,采用 DMA 方式输入/输出←上一题下列关于硬件和异常/中断关系的叙述中,错误的是( )。下一题已知计算机 M 字长为 32 位,按字节编址,采用请求调页策略的虚拟存储管理方式,虚拟地址为 32 位,页面大小为 4KB;数据 Cache 采用 4 路组相联映射,数据区大小为 8KB,主存块大小为 32B。现有 C 语言程序段如下: for (i = 0; i < 24; i++) for (j = 0; j < 64; j++) a[i][j] = 10; 已知二维数组 a 按行优先存放,在虚拟地址空间中分配的起始地址为 0042 2000H,sizeof(int)=4,假定在 M 上执行上述程序段之前数组 a 不在主存,且在该程序段执行过程中不会发生页面置换。请回答下列问题。 (1) 数组 a 分为几个页面存储?对于数组 a 的访问,会发生几次缺页异常?页故障地址各是什么? (2) 不考虑变量 i 和 j,该程序段的数据访问是否具有时间局部性?为什么? (3) 计算机 M 的虚拟地址(A31~A0)中哪几位用作块内地址?哪几位用作 Cache 组号?a[1][0] 的虚拟地址是多少?其所在主存块对应的 Cache 组号是多少? (4) 数组 a 占用多少主存块?假设上述程序段执行过程中数组 a 的访问不会和其他数据发生 Cache 访问冲突,则数组 a 的 Cache 命中率是多少?若将循环中 i 和 j 的次序按如下方式调换: for (j = 0; j < 64; j++) for (i = 0; i < 24; i++) a[i][j] = 10; 则数组 a 的 Cache 命中率又是多少?→