Skip to content

2016年 408 计算机组成原理 第 44 题

计算机组成原理2016年综合题9分

题目

假定 CPU 主频为 50MHz,CPI 为 4。设备 D 采用异步串行通信方式向主机传送 7 位 ASCII 字符,通信规程中有 1 位奇校验位和 1 位停止位,从 D 接收启动命令到字符送入 I/O 端口需要 0.5ms。请回答下列问题,要求说明理由。

(1) 每传送一个字符,在异步串行通信线上共需传输多少位?在设备 D 持续工作过程中,每秒钟最多可向 I/O 端口送入多少个字符?

(2) 设备 D 采用中断方式进行输入/输出,示意图如下∶

image-20260501022817365

I/O 端口每收到一个字符申请一次中断,中断响应需 10 个时钟周期,中断服务程序共有 20 条指令,其中第 15 条指令启动 D 工作。若 CPU 需从 D 读取 1000 个字符,则完成这一任务所需时间大约是多少个时钟周期?CPU 用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段 CPU 进行了哪些操作?

解析

本题考查 异步串行通信的帧格式中断方式 I/O 的时间核算中断响应阶段的工作内容 三块内容。难点在第 (2) 问的"两个时间"区分:

  • 总任务时间:CPU 等设备 D 准备字符的时间 + 中断响应 + 中断服务程序部分指令;
  • CPU 实际占用时间:只有 CPU 真正在干活的部分(中断响应 + 整段中断服务程序),不包括 CPU 在等设备的时间。

(1) 异步串行通信每帧位数与最大字符速率 [3 分]

每个字符的帧位数。

异步串行通信的字符帧 = 起始位 + 数据位 + 校验位 + 停止位:

易错点: 起始位(start bit)必须算上——它是异步通信的同步信号。如果只数 9 位(漏掉起始位),按评分说明给 1 分。

每秒最多字符数。 题干说"从 D 接收启动命令到字符送入 I/O 端口需要 0.5ms"——这是设备 D 准备 1 个字符的耗时。每秒最多准备:

【评分说明】第 1 问若答总位数为 9,给 1 分。

(2) 中断方式下 1000 字符的总时间与 CPU 占用时间 [9 分]

Step 0. 算时钟周期。

Step 1. 拆解一个字符的传送过程。

阶段含义时间
① 设备 D 准备字符启动到字符到 I/O 端口0.5 ms
② 中断响应关中断、保护断点等10 个时钟周期
③ 中断服务程序前 15 条指令含第 15 条启动 D 工作 个时钟周期
④ 中断服务程序后 5 条指令CPU 处理收尾,但此时 D 已开始下一字符的准备 个时钟周期(与下个字符的 ① 重叠)

Step 2. 算单字符传送时间。

注意:第 15 条指令"启动 D 工作"之后,D 开始为下一字符准备,所以 ④ 与下一字符的 ① 重叠——传送时间只算到第 15 条为止。

设备 D 准备时间换算成时钟周期:

单字符传送时间:

Step 3. 算 1000 字符总时间。

【评分说明】第 1 问若答 25070020,同样给分;若答 25000000 或 25000020,给 2 分。

Step 4. 算 CPU 实际占用时间。

CPU 在每字符上真正干活的部分:中断响应(10)+ 整段 20 条中断服务():

1000 字符:

易错点(关键的两个时间区别):

  • 任务总时间 包括"等 D 准备字符"——CPU 在等的时候也在跑,但等的时候 CPU 处理的是别的程序;
  • CPU 用于该任务时间 只算 CPU 真正给这个 I/O 任务工作的时间。

两者的差就是"中断方式相对于程序查询方式的优势"——CPU 不必空轮询等设备。

Step 5. 中断响应阶段 CPU 的操作。

中断响应(一次中断刚被识别后的硬件动作)至少做:

  1. 关中断(屏蔽其他中断,避免中断嵌套竞争);
  2. 保护断点(把当前 PC 压栈或写入断点寄存器,以便中断返回);
  3. 保护程序状态(PSW);
  4. 识别中断源(向量法或软件查询)。

【评分说明】只要回答关中断和保护断点,就给 2 分;其他答案酌情给分。

编者注(生僻术语): "中断响应"是 CPU 内部硬件自动完成的几步固定动作,紧接着才进入"中断服务程序"(软件层面的处理代码)。两者不要混淆——前者由硬件做,后者由软件写。

最后更新:

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

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