Skip to content

2012年 408 计算机组成原理 第 43 题

计算机组成原理2012年综合题10分

题目

假定某计算机的 CPU 主频为 80MHz,CPI 为 4,平均每条指令访存 1.5 次,主存与 Cache 之间交换的块大小为 16B,Cache 的命中率为 99%,存储器总线宽度为 32 位。请回答下列问题。

(1) 该计算机的 MIPS 数是多少?平均每秒 Cache 缺失的次数是多少?在不考虑 DMA 传送的情况下,主存带宽至少达到多少才能满足 CPU 的访存要求?

(2) 假定在 Cache 缺失的情况下访问主存时,存在 0.0005% 的缺页率,则 CPU 平均每秒产生多少次缺页异常?若页面大小为 4KB,每次缺页都需要访问磁盘,访问磁盘时 DMA 传送采用周期挪用方式,磁盘 I/O 接口的数据缓冲寄存器为 32 位,则磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少是多少?

(3) CPU 和 DMA 控制器同时要求使用存储器总线时,哪个优先级更高?为什么?

(4) 为了提高性能,主存采用四体低位交叉存储模式,工作时每 1/4 个存储周期启动一个体。若每个体的存储周期为 50ns,则该主存能提供的最大带宽是多少?

解析

本题综合考查 4 个性能指标:CPI/MIPS、Cache 缺失带来的主存带宽需求、DMA 与 CPU 的总线争用、多体低位交叉的最大带宽。

各问之间有数据流向:第 (1) 问算出"每秒 Cache 缺失 300K 次"是第 (2) 问"每秒缺页 1.5 次"的输入。

(1) MIPS、Cache 缺失次数、主存带宽 [4 分]

MIPS。 每条指令平均 4 个时钟周期(CPI = 4),每秒 CPU 提供 80M 个时钟周期:

每秒 Cache 缺失次数。 平均每条指令访存 1.5 次,缺失率 1 − 99% = 1%:

主存带宽下限。 Cache 缺失时要从主存搬一整块 16B 到 Cache:

易错点: "每条指令访存 1.5 次"指 CPU 平均每条指令产生 1.5 次访存请求;只有缺失的那部分才真正打到主存。算主存带宽时要乘上缺失率,不是访存次数。

(2) 缺页率与磁盘 DMA 请求次数 [3 分]

Step 1. 算每秒缺页次数。

题干说 Cache 缺失时再访问主存,访问主存又有 0.0005% 的缺页率:

Step 2. 算每次缺页的 DMA 请求数。

每次缺页要从磁盘搬一个页(4KB)到主存。磁盘 I/O 接口的数据缓冲寄存器 32 位 = 4B,存储器总线宽度也是 32 位 = 4B。即 每装满一次缓冲(4B)就向 CPU 发起一次 DMA 请求

Step 3. 合并算每秒 DMA 请求总数。

(3) CPU vs DMA 的总线优先级 [2 分]

DMA 优先级更高。

原因: DMA 服务的是 I/O 设备,I/O 设备有 物理上不可推迟 的数据流(如磁盘磁头转过那一刻、网络 MAC 来了一个帧)。DMA 请求若得不到及时响应,I/O 设备的数据可能丢失(FIFO 溢出);CPU 被推迟则只是慢一点,数据不丢。

编者注(生僻术语): 在"周期挪用(cycle stealing)"DMA 模式下,DMA 控制器只在 CPU 不用总线的间隙偷走总线周期;遇到冲突时,DMA 优先,CPU 让一拍。这与 CPU 直接执行指令时的优先级体系是相反的。

(4) 四体低位交叉存储的最大带宽 [2 分]

四体低位交叉的核心机制: 4 个存储体并行工作,每个体的存储周期 50ns,但相邻体启动时间错开 ns。稳态下每 12.5ns 就有一个体的数据准备好,整体看像一个"50/4 ns 周期、4B 字宽"的伪存储体。

最大带宽: 单位时间内传出的数据量

易错点 1: 不要错算成 ""——那是单体带宽。多体交叉的整体带宽要乘上体数。

易错点 2: "高位交叉"和"低位交叉"截然不同。高位交叉用地址高位选体,连续地址全在同一个体里,不能并发;低位交叉用地址低位选体,连续地址轮转分散到不同体,这才是带宽提升的关键。本题"低位交叉"明示并行性。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题