• DJ9-2 中断方式


    目录

    一、中断的基本概念

    1. 中断的含义

    2. 中断的实质和特点

    3. 中断的分类

    4. 向量中断

    二、外中断全过程

    1. 中断请求的产生与传输

    2. 中断请求的优先级判断

    3. 中断响应

    4. 中断处理

    三、中断接口模型

    1. 组成(寄存器级)

    2. 工作过程(外中断)


    一、中断的基本概念

    1. 中断的含义

    程序中断方式简称中断,是指:

    在计算机运行过程中,如果发生某种随机事态,CPU 将暂停执行现行程序,转向去执行 中断处理程序,为该随机事态服务,并在服务完毕后自动恢复原程序的执行。 

    断点:恢复原程序后的后继指令地址。

    2. 中断的实质和特点

    由中断的含义可知,中断的操作过程涵盖了 程序切换随机性 两大重要特征。

    ① 实质:程序切换

    方法:保存断点,保护现场;恢复现场,返回断点。

    时间:在一条指令执行结束时进行切换。—— 保证程序的完整性

    ② 特点:随机性

    • 随机发生的事态(按键、故障)
    • 有意调用但随机请求与处理的事态(调用打印机)
    • 随机插入的事态(软中断指令可插入程序任意位置,如:INT n)

    注意中断与转子程序的区别:

    子程序的执行由程序员事先安排,而中断服务程序的执行则是由随机中断事件触发。

    子程序的执行受主程序或上层程序控制,而中断服务程序一般与被中断的现行程序无关。

    ③ 一般不存在同时调用多个子程序的情况,但可能发生多个外设同时向 CPU 发出中断服务请求的情况。

    3. 中断的分类

    中断源:引起中断的原因或事件。

    ① 硬中断和软中断

    硬中断:由硬件请求信号引发的中断,向量地址由中断请求信号产生。

    软中断:由软中断指令(INT)引发的中断,向量地址由软中断指令提供的中断号产生。

    ② 内中断和外中断

    内中断:中断源来自主机内部。如:掉电中断、CPU 故障中断、软中断等。

    外中断:中断源来自主机外部。如:键盘中断、显示器中断、打印机中断等。

    软中断一定是内中断。

    ③ 可屏蔽中断和非屏蔽中断

    可屏蔽中断:CPU 通过屏蔽字屏蔽请求;CPU 关中断,不再响应请求。

    非屏蔽中断:与屏蔽字无关;对请求的响应与开/关中断无关。

    1. ; 中断允许标志位
    2. IF = 1 ; 开中断
    3. IF = 0 ; 关中断

    (判断题)所有外中断都是可屏蔽中断。(×)

    ④ 向量中断和非向量中断(常考)

    根据中断源获取中断服务程序的入口地址的方式有 向量中断方式非向量中断方式

    向量中断:由硬件直接提供服务程序入口地址,即依靠硬件通过查询中断向量表来确定入口地址。

    非向量中断:由软件查询提供服务程序入口地址,即通过执行 中断服务总程序 来确定入口地址。

    4. 向量中断

    基础概念

    • 中断类型码/中断号:每个中断源对应的编号。
    • 中断向量:中断服务程序的入口地址。
    • 中断向量表:存放各中断服务程序的入口地址的单元。
    • 向量地址:访问中断向量表的地址码,可通过中断类型码计算得到。

    关系图

    应用举例

    考察选择题和填空题,其中填空题偏多。

    ① 模型机的中断向量表。

    从主存 2# 单元开始安排,主存按字编址。一个入口地址 16 位,占 1 个编址单元。

    向量地址 = 中断号 + 2

    ② IBM PC 的中断向量表。

    从主存 0# 单元开始安排,主存按字节编址。一个入口地址 32 位,占 4 个编址单元。

    向量地址 = 中断号 * 4

    中断响应

    在中断响应周期 IT 内:

    1. 关中断
    2. 保存断点及 PSW
    3. 读取服务程序入口地址及新的 PSW

    读取服务程序入口地址:

    1. 获取中断类型码/中断号
    2. 访问中断向量表
    3. 得到中断服务程序的入口地址

    二、外中断全过程

    1. 中断请求的产生与传输

    中断请求的产生:

    ① 外部设备有中断请求的需要:可将请求标志设置为 1 。

    ② CPU 允许请求,且没有屏蔽该中断源:可将屏蔽信号设置为 0 。

    如图所示:IRQ 为中断请求信号,TD 为请求标志,TM 为屏蔽信号。

    (a) 在中断请求触发器 IRQ 的 D 端进行屏蔽;(b) 在中断请求触发器 IRQ 的 Q 端进行屏蔽。

    中断请求的传输:

    2. 中断请求的优先级判断

    (1)优先顺序:故障 > 内中断 > DMA > 外中断

    这样安排是因为处理故障的紧迫性最高,DMA 请求是要求高速数据传输,高速操作一般应比低速操作优先。

    按中断请求要求的数据传输方向,一般原则是输入操作的优先级高于输出操作。这是因为如果不及时响应输入操作请求,则有可能丢失输入信息。输出信息一般可暂存于主存或者缓存之中,如果暂时延缓一些处理,也不致丢失信息。

    故基本原则为:高速操作 > 低速操作;输入 > 输出。

    (2)CPU 现行程序与外设请求的判优

    ① CPU 设置 PSW 的中断允许标志位 IF

    1. ; 中断允许标志位
    2. IF = 1 ; 开中断
    3. IF = 0 ; 关中断

    ② CPU 设置 PSW 的程序优先级字段

    (3)各外设请求之间的判优

    ① 软件判优(软件查询式)

    使用公共请求线:

    响应中断请求后,先转入查询程序,按优先顺序依次询问各中断源是否提出请求。如果查询到中断源,则转入相应的服务处理程序;如果没有,则继续往下查询。

    查询的顺序体现了优先级别的高低,先被询问则优先级更高,改变查询顺序也就改变了优先级。

    ② 硬件判优(硬件电路式)

    a. 使用独立请求线的并行判优逻辑

    b. 使用公共请求线的链式判优逻辑

    CPU 响应中断请求后,通过硬件电路判断是哪个中断源提出了请求。我们假设是图中的 1 号中断源提出了请求,则分析过程如下:

    c. 专用芯片硬件判优 —— 中断控制器(8259)

    集中解决请求信号的接收、屏蔽、判优、编码等问题。

    3. 中断响应

    (1)中断的响应条件

    针对可屏蔽的中断请求,满足下述几个条件,CPU 才能响应中断:

    • 有中断请求信号发生,并且该中断请求未被屏蔽
    • CPU 处于开中断状态
    • 中断源的优先级高于当前程序的优先级
    • 在一条指令(非停机)执行结束时响应

    Q:在程序执行过程中,CPU 何时响应中断请求?何时响应 DMA 请求?请说明原因。

    在一条指令结束时响应中断请求。因为中断过程是一种程序切换的过程,需要保证程序的完整性。

    在一个总线周期结束时响应 DMA 请求。因为 DMA 传送不切换程序,可在一个数据传送完后响应。

    (2)中断的响应过程

    安排一个过渡周期,位于主程序与中断服务程序之间,为转到中断服务程序做准备。

    中断周期 IT 是响应过程的一个专用的过渡周期,在这一周期中 依靠硬件 实现程序切换,即硬件按顺序发一个个微命令来完成。以向量中断方式且单级中断为例:

    教材 P355 介绍:

    ① 关中断:为了保证本次中断响应过程不受外界干扰,CPU 在进入中断周期后,便立即关中断,即设置 PSW[4] = 0 。

    ② 保存断点。将程序计数器 PC 的内容保存起来,PC 内容为恢复程序后的后继指令地址,称为断点。

    ③ 获取中断服务程序入口。被批准的中断源接口通过总线向 CPU 送入向量地址。CPU 据此在中断周期中访问中断向量表,从中读取中断服务程序的入口地址。

    ④ 转向程序运行状态,以开始执行中断服务程序。如组合逻辑控制方式,在中断周期将要结束时形成 1→FT,再切换到取指周期。

    4. 中断处理

    主要任务:CPU 执行中断服务程序。

    (1)单级中断

    (2)多重中断

    教材 P356

    关于设置新的屏蔽字

    • IMR:中断屏蔽寄存器
    • IRR:中断请求寄存器
    • ISR:中断服务寄存器(指示当前正在执行的中断)

    三、中断接口模型

    1. 组成(寄存器级)

    (1)寄存器选择电路:对接口寄存器寻址。

    (2)命令字寄存器:接收 CPU 发向外设的命令字,转换为相应操作命令送外设。

    命令字格式的拟定:用代码表示各种命令。

    (3)状态字寄存器:反映设备和接口的运行状态。

    (4)数据缓冲器:传送数据,实现缓冲。

    (5)控制逻辑

    • 请求信号产生逻辑

    • 电平转换逻辑

    • 串-并转换逻辑(串口)

    • 扩展中断源

    (6)公用中断控制器

    • 接收外设请求,判优,送出公共请求 INT 。

    • 接收中断批准 INTA,送出中断号,即中断类型码。

    (选择题)中断类型码是经过数据总线传输的。

    2. 工作过程(外中断)

    (1)初始化:设置工作方式、屏蔽字、分配中断类型码等。

    由操作系统为每个中断源分配中断码,然后写进中断控制器,该过程只在初始化期间完成。

    (2)启动设备(送命令字)。

    (3)设备请求中断。

    (4)中断控制器汇集各请求,向 CPU 送 INT 。

    (5)CPU 响应,发 INTA 。

    (6)中断控制器送出中断号。

    (7)CPU 执行中断隐指令操作,转中断服务程序。

    中断响应即中断隐指令操作。在中断周期 IT 中计算向量地址。

  • 相关阅读:
    .net 6开发linq与lambda写法对照
    深度学习(part3)--深度学习框架tensorflow
    弘辽科技:淘宝9月什么时候有活动?99大促有哪些活动?
    单独编译某个驱动模块
    Java面试题-线程
    项目八 51单片机WIFI控制继电器
    0826(040天 集合框架05 亿点总结)
    linux加密安全和时间同步
    【python】python实现函数指针映射表
    python输出奇数:如何使用Python输出奇数?
  • 原文地址:https://blog.csdn.net/m0_64140451/article/details/127720364