中断方式与轮询方式

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-30 09:07   820   0

中断方式与轮询方式

标签(空格分隔): 计算机


原文链接:http://lionwq.spaces.eepw.com.cn/articles/article/item/18936#


本人校对链接:https://www.zybuluo.com/DHclly/note/551476

此文章仅仅用于本人练习MarkDown语法之用,如果作者本人觉得侵权,请留言,本人立即删除

1. 中断方式的基本概念

程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断。

2. 80 x86微处理器的中断

80 x86微处理器的中断类型一般分为2类,即由于执行某些指令引起的软中断和由处理器以外其他控制电路发出中断请求信号引起的硬中断。 CPU要从主程序转入中断服务程序,必须知道该中断服务程序的入口地址,即中断向量。80 x86为CPU的PC机共有256个中断向量。

中断的一般过程:
主程序只是在设备A,B,C数据准备就绪时,才去处理A,B,C,进行数据交换。在速度较慢的外围设备准备自己的数据时,CPU照常执行自己的主程序 。在这个意义上说,CPU和外围设备的一些操作是并行地进行的,因而同串行进行的程序查询方式相比,计算机系统的效率是大大提高了。如下图:

Start-->|主程序| node1
node1 --> node2
node2 --> node3
node3 --> End
A[鼠标]-->|请求中断| node1
node1 --> |响应中断| A
B[键盘]-->|请求中断| node2
node2 --> |响应中断| B
C[摄像头]-->|请求中断| node3
node3 --> |响应中断| C

实际的中断过程还要复杂一些,下图示出了中断处理过程的详细流程图.当CPU执行完—条现行指令时,如果外设向CPU发出中断请求,那么CPU在满足响应条件的情况下,将发出中断响应信号,与此同时关闭中断(中断屏蔽触发器置1),表示CPU不再受理另外—个设备的中断。这时、CPU将寻找中断请求源是哪个设备。并保存CPU自己的程序计数器(PC)的内容.然后,它将转移到处理该中断源的中断服务程序.CPU再保存现场信息,执行设备服务(如交换数据)以后.将恢复现场信息。在这些动作完成以后,开放中断(中断屏蔽触发器置0),并返回到原来被中断的主程序的下一条指令。

start=>start
op1=>operation: 取指令
op2=>operation: 执行指令
op3=>operation: 响应中断
op4=>operation: 转移到中断服务子程序
op5=>operation: 关闭中断,中断屏蔽复位
op6=>operation: 找出中断源,保存计数器(PC)
op7=>operation: 保存CPU现场
op8=>operation: 执行设备服务
op9=>operation: 恢复CPU现场
op10=>operation: 打开中断,返回主程序执行下一条命令
cond1=>condition: 中断
sub1=>subroutine: 中断服务程序(比如键盘输入响应程序)
start->op1->op2->cond1
cond1(no)->op1
cond1(yes)->op3->op4->sub1->op9->op10->op1
  1. 尽管外界中断请求是随机的,但CPU只有在当前一条指令执行完毕后,即转入公操作1时才受理设备的中断请求,这样才不致于使当前指令的执行受到干扰。公操作是指一条指令执行结束后CPU所进行的操作,如中断处理、直接内存传送、取下条指令等。外界中断请求信号通常存放在接口中的中断源锁存器里,并通过中断请求线连至CPU,每当一条指令执行到末尾,CPU便检查中断请求信号。若中断请求信号为1,则CPU转入中断周期,受理外界中断。
  2. 为了在中断服务程序执行完毕以后正确地返回到原来主程序被中断的断点(PC内容)而继续执行主程序,必须把程序计数器PC的内容,以及当前指令执行结束后CPU的状态(包括寄存器的内容和一些状态标志位)都保存到堆栈中去。这些操作叫做保存现场
  3. 当CPU响应都必须进行修改,这会使修改费用升高很多倍。因此,程序控制方式会使相关硬件模块的局部修改指标相对较低。

    中断处理方式

    应用程序不直接操作端口,对端口的操作是由中断服务程序来完成的。如果某个硬件接口的设计发生了变化,只需要修改它相关的中断服务程序即可。因此,中断处理方式使得相关硬件模块的局部修改指标较高。

    生命期

    程序控制方式(CPU查询方式)

    在早期的计算机系统中能够满足应用需求;但是随着外部设备种类的增多、速度差异的加大,这种方式逐渐成为系统性能提高的障碍。它的生命期只限于早期计算机阶段,因为当时外部设备少,且都是低速设备,到8位机出现以后,这种外设控制方式(体系结构)被淘汰。

    中断处理方式(外设请求方式)

    能够协调CPU与外设间的速度差异,能够协调各种外设间的速度差异,提高系统的工作效率(速度指标)。使应用程序与外设操作基本脱离开来,降低了程序的设备相关性(关联可靠性指标、局部修改指标)。虽然目前某些快速设备相互间的通信没有通过CPU,也没有使用中断处理方式,但是对于慢速设备、设备故障的处理来说,中断处理方式仍然是最有效的。无论将来计算机系统中的元件怎样变化,只要存在慢速设备与快速CPU之间的矛盾,使用中断处理方式都是适合的。即便不使用中断服务程序,中断的概念也会保持很久。在短时期内,计算机系统还无法在所有领域离开人工交互操作,人的操作速度一定比机器的处理速度慢,因此慢速设备将仍然保持存在(但这不是慢速设备存在的唯一原因)。正因为存在这样的需求,中断处理方式具有较长的生命期。


    1. 公操作:所谓公操作,就是一条指令执行完毕后,CPU所开始进行的一些操作,这些操作主要是CPU对外围设备请求的处理,如中断处理、通道处理等。如果外围设备没有向CPU请求交换数据,那么CPU又转向下一条指令。由于所有指令的取指周期是完全一样的,因此,取指令也可以认为是公操作。这是因为,一条指令执行结束后,如果没有外设请求,CPU一定转 入“取指令”操作。

转载于:https://www.cnblogs.com/DHclly/p/6022792.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP