如果在长时间指令中CPU收到中断,会发生什么情况? CPU会执行整个指令还是仅执行其中的一部分?处理器在中断时如何处理指令
1
A
回答
1
从一个程序员的角度,任一特定的指令引退,以及其所有的副作用致力于寄存器/存储器或它不是(和它的仿佛指令根本没有执行)。指令退休的整个目的是保证在外部事件(如中断)的情况下对程序状态进行连贯的观察。
特别值得一提的是,为什么指令会按顺序退出,这样外部观察者仍然可以查看CPU的体系结构状态,就好像它正在按顺序执行指令一样。
这也有例外,特别是REP字符串类的说明。
我相信这是你问到的问题,但如果不是的话,那么让我问你:你怎么会看到一条指令从任何地方“部分”执行?
1
就我所知,它取决于处理器和指令。更具体地说,它取决于处理器是否以及何时对未决中断进行采样。如果处理器只在完成当前指令后才寻找挂起的中断,那么显然没有东西会中断中间的指令。但是,如果长指令正在执行,那么在指令执行期间多次采样中断可能是有益的(延迟方式)。这有一个缺点 - 在这种情况下,你必须恢复由于指令的部分执行而对寄存器和标志所做的所有更改,因为在中断完成后,你必须返回并重新发出该指令。
相关问题
- 1. 处理器如何处理中断
- 2. C#预处理器指令
- 3. Gfortran预处理器指令
- 4. VB.NET预处理器指令
- 5. DDK预处理器指令
- 6. 如何修改指令处理器C
- 7. 双处理器机器如何处理中断?
- 8. Marklogic - 如何处理XML中的处理指令
- 9. 角指令处理
- 10. 如何在eclipse中指定预处理器指令?
- 11. SMP如何处理中断?
- 12. KVM如何处理中断
- 13. 如何处理中断?
- 14. T4模板处理错误:“解析指令处理器<指令处理器名称>的类型失败。”
- 15. 处理中断:
- 16. nuget库中的预处理器指令
- 17. xib中的预处理器指令?
- 18. Cron在处理此指令时出错
- 19. KVM如何处理物理中断?
- 20. 如何在scriptcs中使用自定义处理器指令?
- 21. 如何在处理器中查找每个周期的指令?
- 22. 如何在MVC aspx页面中使用预处理器指令
- 23. 如何阅读处理指令属性?
- 24. 处理程序处理消息时UI正在中断
- 25. 何时使用.net中的预处理器指令?
- 26. 处理指令异常
- 27. C++预处理指令
- 28. CSS和处理指令
- 29. 处理指令文件
- 30. JSP c:不处理指令
你是什么意思的“长指令”?所有的CPU指令都是原子的,从处理器的角度来看,它们占用最小的时间单位。或者我在课上错过了什么? :) – Jakob 2011-01-25 14:09:29