如果在長時間指令中CPU收到中斷,會發生什麼情況? CPU會執行整個指令還是僅執行其中的一部分?處理器在中斷時如何處理指令
1
A
回答
1
從一個程序員的角度,任一特定的指令引退,以及其所有的副作用致力於寄存器/存儲器或它不是(和它的彷彿指令根本沒有執行)。指令退休的整個目的是保證在外部事件(如中斷)的情況下對程序狀態進行連貫的觀察。
特別值得一提的是,爲什麼指令會按順序退出,這樣外部觀察者仍然可以查看CPU的體系結構狀態,就好像它正在按順序執行指令一樣。
這也有例外,特別是REP字符串類的說明。
我相信這是你問到的問題,但如果不是的話,那麼讓我問你:你怎麼會看到一條指令從任何地方「部分」執行?
1
就我所知,它取決於處理器和指令。更具體地說,它取決於處理器是否以及何時對未決中斷進行採樣。如果處理器只在完成當前指令後才尋找掛起的中斷,那麼顯然沒有東西會中斷中間的指令。但是,如果長指令正在執行,那麼在指令執行期間多次採樣中斷可能是有益的(延遲方式)。這有一個缺點 - 在這種情況下,你必須恢復由於指令的部分執行而對寄存器和標誌所做的所有更改,因爲在中斷完成後,你必須返回並重新發出該指令。
相關問題
- 1. Gfortran預處理器指令
- 2. C#預處理器指令
- 3. VB.NET預處理器指令
- 4. 如何修改指令處理器C
- 5. 雙處理器機器如何處理中斷?
- 6. Marklogic - 如何處理XML中的處理指令
- 7. 如何在eclipse中指定預處理器指令?
- 8. SMP如何處理中斷?
- 9. xib中的預處理器指令?
- 10. nuget庫中的預處理器指令
- 11. 處理中斷:
- 12. 如何在MVC aspx頁面中使用預處理器指令
- 13. 處理程序處理消息時UI正在中斷
- 14. 何時使用.net中的預處理器指令?
- 15. C++預處理指令
- 16. JSP c:不處理指令
- 17. 輸出PHP處理指令
- 18. 處理指令文件
- 19. 處理指令異常
- 20. CSS和處理指令
- 21. 預處理指令導入基於對C#中的預處理指令平臺
- 22. Unity預處理器指令錯誤?
- 23. 預處理器指令:#elif未定義?
- 24. objective-c預處理器指令
- 25. 個人預處理器指令
- 26. 預處理器指令和#error
- 27. 腳本#預處理器指令?
- 28. C#預處理器指令範圍
- 29. 檢測iPad的預處理器指令
- 30. 葉指令(處理器/組件)
你是什麼意思的「長指令」?所有的CPU指令都是原子的,從處理器的角度來看,它們佔用最小的時間單位。或者我在課上錯過了什麼? :) – Jakob 2011-01-25 14:09:29