网站制作哪些公司制作,比较好约的网站设计,app定制开发公司上班怎么样,网站开发需要多久中断优先级包括响应优先级和处理优先级#xff0c;响应优先级由硬件线路或查询程序的查询顺序决定#xff0c;不可动态改变。处理优先级可利用中断屏蔽技术动态调整#xff0c;以实现多重中断。下面来看他们如何运用在中断处理过程中#xff1a;
中断控制器位于CPU和外设之…中断优先级包括响应优先级和处理优先级响应优先级由硬件线路或查询程序的查询顺序决定不可动态改变。处理优先级可利用中断屏蔽技术动态调整以实现多重中断。下面来看他们如何运用在中断处理过程中
中断控制器位于CPU和外设之间用于处理I/O中断请求。以下是一个简化的中断控制器 现在有A,B,C三个中断源。中断响应优先级ABC中断处理优先级CBA 根据图来看CPU响应中断应该具备3个条件 ① 在 CPU 内部设置的中断屏蔽寄存器触发器必须是开放的。 ② 外设有中断请求时中断请求寄存器触发器必须处于“1”状态保持中断请求信号。 ③ 外设(接口)中断允许触发器必须为“1”这样才能把外设中断请求送至 CPU。 具备上述三个条件时CPU 在现行指令结束的最后一个状态周期响应中断。 假设CPU正在处理A中断源的中断请求此时B,C同时发出了中断请求CPU执行完当前指令后会检查INTR(中断请求信号寄存器)是否有效INTR高电平有效。 怎么看INTR是否有效那就要看屏蔽寄存器是否会将信号屏蔽由于中断处理优先级CBA所以屏蔽寄存器不会屏蔽中断信号INTR会接收到中断请求变为有效。 CPU是否能检测到中断请求信号有效是由中断处理优先级决定的而不是中断响应优先级。 由于现在B,C的处理优先级都大于A所以都要被送到判优电路。当有多个中断源的中断请求到达判优电路时就由中断响应优先级来决定CPU应该响应哪一个。响应优先级BC所以向量地址形成线路会形成中断源B的中断类型号也就是下图的送中断向量的过程。
CPU响应B中断源的中断请求执行B的中断服务程序程序会设置新的中断屏蔽字(每个中断源对应一个屏蔽字其中1越多优先级越高)并且保存现场并且开中断。 由于C的中断请求还没有被处理并且处理优先级CB所以B的中断服务程序又会响应C中断源发来的中断请求。当C的中断服务程序执行完后返回到BB的服务程序再返回到A。所以完成顺序CBA响应顺序BC。
总结非常重要
中断优先级包括响应优先级和处理优先级中断屏蔽标志改变的是处理优先级。中断响应优先级是由中断查询程序或中断判优电路决定的它反映的是多个中断同时请求时哪个先被响应即中断服务程序开始执行的顺序。在多重中断系统中中断处理优先级决定了本中断是否能打断正在执行的中断服务程序决定了多个中断服务程序执行完的次序。 注 ① 中断类型号是通过数据线传给CPU的一定要记得地址线是单向的地址只能从 CPU 传向外部存储器或 I/O 端口。中断类型号用于指出中断向量的地址CPU响应某个外部中断后就从数据总线上获取该中断源的中断类型号然后据此计算对应中断向量的地址再根据该地址从中断向量表中取出中断服务程序入口地址即中断向量。 ② 只有每条指令执行的最后一个操作控制信号CPU才会检测INTR是否有中断请求信号。CPU采样到INT信号有效则进入中断响应周期。 ③ CPU检测到信号有效进入中断响应周期隔一段固定的时间就会发出中断查询信号也就是在中断响应过程中发出中断查询信号中断回答信号。由这个信号所有未被屏蔽的信号就会进入判优电路由判优线路决定是否响应。 到这里就可以更清楚地理解中断响应的条件 ① CPU处于开中断状态 ② 一条指令执行完 ③ 至少要有一个未被屏蔽的中断请求 中断响应的时间点和异常处理的时间点是不一样的中断一定是在一条指令执行结束后开始查询有无中断请求有的话立即响应所以一定是在指令执行完时响应中断而异常发生在指令执行过程中异常的处理是在指令执行中进行的。 中断处理的过程 中断响应 中断响应是硬件完成的也就是从总线上取中断地址CPU会做三件事 ① 关中断② 保护断点和程序状态③ 识别中断源取得中断服务程序的首地址和初始PSW送PC和PSWR 执行中断服务 1准备阶段 ① 保护现场比如一些通用寄存器的内容及旧屏蔽字比如B打断A的中断服务程序后要保存A的中断屏蔽字以便中断返回时恢复旧的屏蔽字 ② 查明原因(软件识别中断时才会用到) ③ 设置新屏蔽字 ④ 开中断 注对于保存屏蔽字设置新的屏蔽字以及开中断都是针对多级中断的因为可能会有多个中断请求所以需要设置屏蔽字和开中断。 2进行具体的中断处理 3恢复阶段 ① 关中断 ② 恢复现场及旧屏蔽字 ③ 清除中断标志清除该中断源的中断请求否则CPU又检测到中断又会反复进入中断④ 开中断 ⑤ 中断返回 注这里为什么又要开中断了呢这个开中断是对应中断响应的关中断的如果这里不开中断就没有办法响应新的中断请求了。 所以 对于单级中断 中断响应 ① 关中断 ② 保存断点和程序状态 ③ 寻找中断程序入口地址 中断服务 ① 保存现场 ② 处理中断事件 ③ 恢复现场 ④ 开中断 ⑤ 中断返回 对于多级中断 中断响应 ① 关中断 ② 保存断点和程序状态 ③ 寻找中断程序入口地址 中断服务 ① 保存现场和屏蔽字 ②开中断 ③ 处理中断事件 ④ 关中断 ③ 恢复现场和屏蔽字 ④ 开中断 ⑤ 中断返回 11号中断源11111 2号01100 3号00100 4号01111 5号 01101 ① 先响应2的中断请求即保存现场保存中断屏蔽字设置新的中断屏蔽字开中断。一旦开中断就会立马响应4因为4的中断处理优先级大于2。 ② 处理完4的中断服务程序后会回到2继续执行其中断服务程序。 ③ 中断处理优先级1523所以当135同时发出中断请求2能屏蔽3。 ④ 中断响应优先级15所以先执行1并且1的中断处理优先级也是最高的所以1不会被5打断。如果这里1的中断处理优先级小于5则1中断服务程序执行过程中会响应5的中断请求 ⑤ 1处理完后返回2由于5的中断处理优先级大于2所以5会被响应。 ⑥ 由于2的处理优先级大于3所以3号中断源被2号屏蔽只有当2号执行完后并且返回用户程序因为2号的中断屏蔽字决定了2号是检测不到3号的中断请求的再执行3号中断请求 例题