您的位置:首页 > 其它

现代体系结构(指令流水),中断处理(中断隐指令,中断门,Do_IRQ,关中断,Do_IRQ_Handler, 软中断SWI,中断嵌套与屏蔽)

2016-02-21 00:00 387 查看

现代体系结构:

1 流水

五级流水: ( =》代表经过时钟边缘触发。对于a-》b=》c:b为时钟触发,a为触发前的输入,c为触发后的输出。 -》代表不经过时钟触发器的计算/处理 )
PC=>PC+4->PC->instruction->IR=>RegCtrl->IRex=>ExCtrl->IRmem=>MemCtrl->IRwb=>WbCtrl->Reg

每条命令经过5次 =》 时钟边缘,5个时钟周期





点击打开链接

2 冒险

*解决方法: 前递(及时将Exctrl=》得到的输出电平 输入到IRex=》) 旁路, 预测,空泡, 指令/数据内存cache

3 乱序 和 意外事件处理

*最终一致性

4 中断处理

处理流程

考虑单核单流水
一次中断处理: 中断隐指令=》中断门 Intr Gate=》Do_IRQ保存现场及其他处理(如中断计数变化)=》 [开中断] => Do_IRQ_Handler中断处理 => [软中断SWI] => Ret_From_IRQ or Restore_All or 处理其它中断 => IRET
点击打开链接

中断x被cpu[由搁置态]正式处理(中断隐指令开始执行)的时机:

1 cpu上正在进行的是中断处理y, 而且能够被打断:

y处于开中断状态且不屏蔽x类型中断:

开关中断发生在: 1 中断隐指令会关中断、2 Do_IRQ过程中会开/关中断、3返回时IRET指令恢复EFLAGS会开中断

2 cpu上正在运行的是现行程序(各种主动的内核/用户的线程/进程)

这种情况下中断也应该是打开的



点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: