中断是CPU和外设进行数据交换的一种方式。所谓中断,就是当CPU正常运行程序时,由于内部和外部的随机事件,引起CPU暂时中止正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务程序,中断服务结束后再返回被中止的程序。这一过程称为中断。
中断过程可以分为中断请求、中断判优、中断响应、中断处理和中断返回5个步骤。
1.中断请求
外设需要CPU服务时,首先要发出中断请求。发出中断请求的外设就是中断源。广义地说,能引起CPU产生程序中断的随机事件都称为中断源。因为外部可以产生中断,CPU内部也可以产生中断。这些中断源的共同特点是都需要CPU对其进行适当的处理。
内部中断不发送中断请求信号,而是由软中断指令产生中断。外部中断需外设或接口向CPU发送中断请求信号。
外设及其接口的中断请求分为边沿请求和电平请求。识别中断请求信号由低到高或由高到低的跳变是边沿触发的请求,识别中断请求信号为高电平或低电平是电平触发的请求。
2.中断判优
当系统具有若干个中断源时,若某一时刻有两个及以上的中断源同时发出中断请求,因为CPU只有一条中断请求线(INTR),而CPU任一时刻只能响应并处理一个中断,这就要求中断系统判别优先级最高的中断源并响应之。中断判优就是要解决请求中断的事件优先级的顺序问题。中断判优的方法有软件判优与硬件判优两种。软件判优电路简单,判优速度慢;硬件判优电路复杂,判优速度快。
3.中断响应
中断响应就是CPU中断正进行的处理任务,转向中断请求相对应的处理程序的过程。在中断响应过程中应解决以下4个问题:(www.daowen.com)
·保护现场(如标志寄存器或其他寄存器);
·CPU关中断,由于该中断源的任务还没有处理,所以不允许此时被新的中断源打断;
·转入中断请求所对应的处理程序。
最后一个问题是实现CPU控制权的转移,它是中断响应过程的关键。现在常用的方法是采用中断向量,即由被响应的中断源在中断响应时向CPU提供自己的中断向量号,CPU根据中断向量号就能找到中断服务程序的入口地址,进而转入中断服务程序。
4.中断处理
中断处理就是执行中断服务程序,以完成中断源提出的处理要求。中断服务程序是软件编程问题,与子程序的编写原则类似。在中断服务程序中,用STI指令开中断以实现中断嵌套,并对服务程序中所用的寄存器予以保护(若中断响应中CPU不是自动保护的话),在服务程序的后面(中断返回指令之前)加入恢复现场的语句。
5.中断返回
中断服务程序的最后一条指令是中断返回指令IRET。中断返回就是控制权由中断服务程序转移到被中断程序的过程。执行中断返回指令与执行一般的“返回主程序”指令类似。所不同的是,大多数中断返回指令还有其他的附加功能,例如,部分或全部恢复CPU的现场(除程序计数器外,还有标志寄存器FR等),有些CPU的中断返回指令可自动恢复全部通用寄存器的内容。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。