计算机组成原理--中断系统
-----中断系统------
1.定义:CPU正常执行流程被某些外部事件的发生而打断。
2.中断系统的意义
可以提高CPU利用率,使得CPU在执行程序指令时候,可以兼顾到其他的一些必要事件
的处理;比如IO操作,异常错误等。
3.引起中断的事件---大体分为软件和硬件
*人为设置引起的中断
*程序执行过程中的错误
*硬件故障
*IO设备传输数据引起
*其他外部设备等
4.中断系统要解决的问题---依靠软件+硬件实现
*中断源怎么提出中断请求
*存在多个中断请求时候如何处理
*CPU如何响应中断
*保护程序断点和程序现场
*中断服务程序的入口地址
*中断断点恢复现场恢复
*多重中断的处理
5.中断判优具体实现
中断源设置有中断标志INTR,CPU具有中断信号查询的线路连接到中断源
每当有当中断源INTR=1时候,中断源的请求送入CPU中断请求寄存器,进而
将这些中断请求送入CPU内部的链式排队器里面,获得一个中断请求被CPU
响应,并将该中断源的INTR=0--标准着该中断被响应
6.中断程序的入口地址的形成
中断程序的入口地址--需要根据中断向量获得。
中断向量的产生两种方式:硬件方式和软件方式;通常硬件产生的中断向量被
存储在内存的某个固定的地方--中断程序的入口地址就是中断向量指向的内存
单元的地址:要么是跳转/要么直接是地址。
硬件向量:根据几个bit来产生。具体的位数根据系统中中断源的个数。产生
一串二进制数--就标识一个中断服务程序。
7.单个中断处理过程
*中断源提出中断请求
*CPU响应中断的条件:处于开中断、指令执行的结束才会查询有没有中断
*中断响应:保存程序断点:由中断隐指令完成--硬件完成保证正确
关中断;将PC的值保存在内存/堆栈中;确定中断程序入口地址;
*进入中断服务程序
保护现场--保存寄存器/内存中的值--中断服务程序完成;
执行中断服务程序;
恢复现场
开中断
中断返回--返回到中断发生的下条指令执行
8.中断屏蔽技术
存在于多重中断中,由于开中断的提前,导致CPU在处理一个中断的时候,
又来了新的中断--对于这个中断是否被响应要看其优先级;
注意:被响应的优先级是固定的,但是新的中断是否被处理是可以改变的;
处理优先级;可以通过中断屏蔽技术改变。
响应优先级:这个是由CPU中断排队器决定的不会改变。
中断屏蔽技术:排队器里面含有集中的MASK标志;通过设置这个标志的值就可以
实现某个中断请求的处理被屏蔽。
中断屏蔽字举例:A B C 3个中断 对应的屏蔽字:111;011;001;
表示:A不会被屏蔽;B会被A屏蔽;C会被A/B屏蔽
中断屏蔽字被存储在CPU里面的中断屏蔽字寄存器中。
9.多重中断的处理流程
关中断;保护程序断点;设置屏蔽字;开中断;进入中断服务程序
关中断;恢复现场;恢复屏蔽字;开中断;中断返回。
10.多重中断断点的保护:断点压栈、断点存入内存