Skip to content

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

计算机组成原理2009年综合题8分

题目

某计算机的 CPU 主频为 500MHz,CPI 为 5(即执行每条指令平均需 5 个时钟周期)。假定某外设的数据传输率为 0.5MB/s,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中断服务程序包含 18 条指令,中断服务的其他开销相当于 2 条指令的执行时间。请回答下列问题,要求给出计算过程。

(1) 在中断方式下,CPU 用于该外设 I/ O 的时间占整个 CPU 时间的百分比是多少?

(2) 当该外设的数据传输率达到 5M B/s 时,改用 DMA 方式传送数据。假定每次 DMA 传送块大小为 5000B,且 DMA 预处理和后处理的总开销为 500 个时钟周期,则 CPU 用于该外设 I/ O 的时间占整个 CPU 时间的百分比是多少?(假设 DMA 与 CPU 之间没有访存冲突)

解析

本题考查中断方式与 DMA 方式下 CPU 用于 I/O 时间占比的计算。两种方式的本质差异在于 "CPU 介入的颗粒度"

  • 中断方式:每搬一个传输单位(这里 32 位 = 4B)就要打断 CPU 一次,频次很高;
  • DMA 方式:每搬一整块(5000B)才打扰 CPU 一次(预处理 + 后处理),整块传输过程 CPU 不参与(题干假设无访存冲突)。

通用思路:算出 1 秒内 I/O 占用的总时钟周期,除以 CPU 1 秒提供的时钟周期数(即主频)即得占比。

(1) 中断方式下 CPU 用于 I/O 的时间占比 [4 分]

Step 1. 算每次中断 CPU 的开销。

中断服务程序有 18 条指令,"中断的其他开销"折合 2 条指令的执行时间,每条指令平均 5 个时钟周期(CPI = 5):

Step 2. 算 1 秒内的中断次数。

外设传输率 ,每次中断传送 32 位即 4B,故每秒申请中断次数为:

Step 3. 算 1 秒内中断总开销。

Step 4. 与 CPU 主频对比。

CPU 主频 500 MHz,即 1 秒提供 个时钟周期:

(2) DMA 方式下 CPU 用于 I/O 的时间占比 [3 分]

Step 1. 算 1 秒内的 DMA 次数。

外设传输率提升至 ,每次 DMA 传送 5000B:

Step 2. 算 1 秒内 DMA 总开销。

DMA 在整块传输过程不占用 CPU,CPU 只在预处理 + 后处理时被占用,每次 500 个时钟周期:

Step 3. 与 CPU 主频对比。

关键易错点

易错点 1(中断开销构成): 算每次中断的 CPU 开销时,必须把"中断服务程序"+ "中断响应/保护现场/恢复现场(即题干说的'其他开销')"两部分指令数加起来,再乘以 CPI。常见错误是直接把 18 条指令当成 18 个时钟周期,漏掉 ×5。

易错点 2(DMA 不等于全程占用): DMA 整块搬运的过程 CPU 仍可执行其他指令(题干已声明"DMA 与 CPU 之间无访存冲突"),因此只统计预/后处理开销 500 周期。如果把 5000 个字节的搬运也算进 CPU 开销,就掉到了 PIO(程序查询)方式的思路里。

【评分说明】考生只给出正确的计算结果而未给出计算过程,每个结果给 2 分。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数