Skip to content

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

计算机组成原理2009年选择题2分

题目

下列选项中,能引起外部中断的事件是( )。

错因

B

除数为 0 是内部异常(fault),不是外部中断。它由 CPU 内部 ALU 在执行除法指令时直接触发,源头在 CPU 内部,与外部设备无关。把"程序运行出错"当成"外部事件"是常见误判——出错的事件再"外"也是程序行为,不是外部硬件信号。

C

浮点运算下溢同样是内部异常——浮点单元(FPU)在算出超小值无法规格化时由 CPU 自己触发,与外部设备没关系。和 B 一样,错点都是把"运算异常"误归为"外部中断"。

D

访存缺页是内部异常(page fault),由 MMU 在地址翻译时发现"页表项的存在位 = 0"产生,事件源在 CPU/MMU 内部。选 D 的人可能想成"访问内存涉及到存储器(外部)"——但触发主体是 CPU 自己的地址翻译逻辑,主存/磁盘只是后续被调动的资源,触发方不是它们。

总解析

外部中断 vs 内部异常——这是 408 反复考的二分法:

类别触发源与当前指令的关系例子
外部中断(外中断)CPU 外部的硬件信号(设备 / 外部时钟 / DMA 完成等)与当前指令无关,异步发生键盘输入、定时器到时、磁盘读完、DMA 结束、网卡收包
内部异常(内中断 / Trap / Fault / Abort)CPU 内部逻辑(ALU、MMU、控制器)由当前指令的执行直接引发,同步除 0、溢出、缺页、非法指令、特权违规、INT n 指令

逐项判定

选项事件触发主体类别是否外部中断
A键盘输入键盘控制器 → 中断控制器 → CPU INTR 引脚外部中断
B除数为 0ALU 执行 div 时检测内部异常(fault)
C浮点下溢FPU 执行浮点运算时检测内部异常(fault)
D访存缺页MMU 地址翻译时检测内部异常(fault)

A 是唯一的外部事件——键盘按键产生的信号经键盘控制器、再经中断控制器(PIC/APIC),最终从 CPU 的 INTR 引脚进入。其余三项的触发主体都在 CPU 内部,与"外部"无关。

最终答案是 A(键盘输入)

记忆口诀

  • 外部 = "设备/时钟/网络":用户按键、磁盘、网卡、定时器、DMA 完成
  • 内部 = "程序自己作的死":除 0、溢出、缺页、非法指令、特权违规、INT 软中断
  • 模糊例子:硬件断点(外,由调试单元发但属调试外设);软件断点 INT 3(内,是软中断指令)

最后更新:

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