计算机组成原理中断向量表

中断向量表(Interrupt Vector Table, IVT)

中断向量表是计算机系统中用于管理中断处理的核心数据结构,主要存在于早期x86架构的实模式(16位)系统(如DOS)及部分嵌入式系统中。它为每个中断类型分配唯一的中断向量号,并存储对应中断服务程序(ISR)的入口地址,是CPU实现快速中断分发的关键组件。

一、核心定义与作用

  • 定义
    中断向量表是一个固定长度的数组,每个数组元素(表项)对应一个中断向量号(0~255,共256个表项,x86架构专用),存储该中断对应的处理程序的物理地址(段地址:偏移量)。
  • 作用
    CPU通过中断向量号直接索引IVT,获取处理程序地址并跳转执行,避免复杂的地址计算,实现高效的中断响应。

二、结构与格式(以x86实模式为例)

1. 表项数量与范围

  • 固定包含256个表项,对应向量号 0~255,覆盖所有可能的硬件中断、软件中断和异常事件。
  • 前32个向量号(031)预留给系统内部异常(如除法错误、页错误)和非屏蔽中断(NMI),32255用于可屏蔽中断(IRQ)和用户自定义中断。

2. 单个表项格式(4字节)

  • 段地址(Segment):16位,标识处理程序所在的段(16位实模式下,段地址左移4位形成20位基地址)。
  • 偏移量(Offset):16位,段内偏移地址,与段地址组合形成20位物理地址(物理地址 = 段地址×16 + 偏移量)。
  • 示例
    若向量号为 n,则其对应的表项地址为 n×4(IVT在内存中从地址 0x00000 开始存储,共占用 256×4=1024字节)。

三、典型中断向量号分配(x86架构)

向量号 中断类型 描述
0 除法错误(Divide Error) 除以0或除法结果溢出时触发,如执行DIV指令出错。
1 调试中断(Debug) 调试器使用,如单步执行、断点中断(对应INT 1指令)。
2 非屏蔽中断(NMI) 硬件紧急中断(如内存错误),不可被屏蔽,优先级最高。
3 断点中断(Breakpoint) 程序执行到INT 3指令时触发,用于调试时设置断点。
4 溢出中断(Overflow) 算术运算溢出(如INTO指令检测到溢出标志OF=1时触发)。
5~31 系统异常 包括页错误、双重故障、缺段等处理器内部错误。
32~255 可屏蔽中断(IRQ) 由外部设备通过中断控制器(如8259A)触发,如键盘(IRQ1→向量号33)、定时器(IRQ0→向量号32)。

四、工作流程

  1. 中断触发与向量号生成

    • 硬件中断:设备通过中断控制器(如8259A)向CPU发送中断请求(IRQ),控制器将IRQ映射为对应的向量号(如IRQ0对应向量号32)。
    • 软件中断:程序通过INT n指令直接指定向量号n(如INT 0x80对应向量号128,Linux早期系统调用)。
  2. CPU索引IVT
    CPU收到中断信号后,暂停当前任务,根据向量号n计算表项地址(n×4),读取段地址和偏移量,组合成物理地址。

  3. 跳转执行ISR
    CPU跳转至该物理地址,执行对应的中断服务程序,处理完毕后通过IRET指令恢复原任务。

五、与中断描述符表(IDT)的区别

特性 中断向量表(IVT) 中断描述符表(IDT,保护模式)
适用模式 实模式(16位) 保护模式(32位/64位)
表项大小 4字节(段:偏移) 8字节(中断门/陷阱门,含特权级等信息)
特权级保护 不支持(所有中断直接进入内核态) 支持(通过DPL检查调用者特权级)
地址空间 20位物理地址(实模式限制) 32位/64位线性地址(支持分页机制)
现代系统应用 仅用于兼容或简单系统 Windows、Linux等现代系统的标准选择

六、初始化与管理

  • 初始化位置
    系统启动时(如BIOS引导阶段),会预先填充IVT,将前32个向量号绑定到处理器内部异常的处理程序,后续向量号由操作系统或设备驱动动态注册(如DOS系统通过INT 21HAH=25H功能修改中断向量)。
  • 局限性
    实模式下IVT缺乏权限保护,用户程序可随意修改表项,可能导致系统崩溃(现代系统通过保护模式和IDT解决此问题)。

七、总结

中断向量表是早期x86系统中断处理的核心,通过固定的向量号与处理程序地址映射,实现了高效的中断分发。尽管现代操作系统(如Windows、Linux)在保护模式下改用功能更强的中断描述符表(IDT),但IVT的设计思想(向量号索引、快速跳转)仍被继承,且x86架构至今保留对IVT的支持(如兼容旧程序或处理特定异常)。理解IVT是掌握中断机制底层原理的重要基础。

#牛客创作赏金赛#
操作系统I 文章被收录于专栏

操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的核心程序,是用户与硬件之间的桥梁,也是计算机系统的核心组成部分。

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务