2012-12-22 55 views
2

例如,I/O指令週期取決於設備的速度嗎?

in al, 8 

如果在端口8的裝置是很慢的,則確實CPU必須等待在指令完成?

謝謝!

+3

否。驅動程序只在設備發出數據可用的信號時執行該指令。 –

+0

如何讀取狀態寄存器?在另一個端口使用另一個指令?這是同樣的問題。 – xmllmx

+0

@HansPassant:一個*好的驅動程序只會這樣做。壞的一個可以很容易地阻止內核選址等待磁盤。 – Linuxios

回答

1

這取決於什麼部分的設備是「真的很慢」。如果需要很多時間來回答PIO請求(如inout),那麼是的,它會停止執行單元(以及依賴於它的所有內容)。 「真正慢」的內存也會發生同樣的情況。然而,如果設備花費很長時間來完成它的任務(不管它們可能是什麼),但是對PIO請求很快響應(例如,表明它還沒有完成任務),那麼它不會真正拖延了CPU。

後者設計合理的硬件。