【Note】I/O常規小結


BY《程序是怎樣跑起來的》

1.應用~硬件

應用控制硬件
利用操作系統提供的系統調用功能,實現應用對硬件的控制。WINDOWS中系統調用稱爲API。
各API就是應用調用的函數,函數的實體被存儲在DLL文件中。

2.IN & OUT

IN指令:通過指定端口號的端口輸入數據,將其存儲在CPU內部的寄存器中。
OUT指令:把CPU寄存器中存儲的數據,輸出到指定端口號的端口。
IO指令
計算機主機附帶可連接外圍設備的連接器,各連接器的內部連接可用來交換計算機主機同外圍設備之間電流特性的IC,這些IC統稱爲I/O控制器。
I/O控制器中有用於臨時保存輸入輸出數據的內存,這個內存就是端口(port),它們實質上是寄存器。端口號也稱爲I/O地址。
端口

3.中斷處理

從中斷處理開始到請求中斷的程序(中斷處理程序)運行結束之前,被中斷的程序(主程序)的處理是停止的。

實施中斷請求的是連接外圍設備的I/O控制器,負責實施中斷處理程序的是CPU。
外圍設備的中斷請求會使用不同於I/O端口的其他編號,該編號稱爲中斷編號。
操作系統及BIOS會提供相應中斷編號的中斷處理程序。
中斷控制器——I/O控制器和CPU中間,管理中斷請求。

過程:cpu接收到中斷控制器的中斷請求,把當前正運行的主程序中斷,並切換到中斷處理程序。

中斷處理程序:
把CPU所有寄存器的數值保存到內存的棧中,在中斷處理程序中完成外圍設備的輸入輸出後,把棧中保存的數值還原到CPU寄存器中,然後再繼續進行對主程序的處理。中斷請求完畢後,各寄存器的值必須還原到中斷前的狀態。
!!!只要寄存器的值保持不變,主程序就可像沒有發生任何事一樣繼續處理。!!!

4.中斷實現實時

輪詢:按照順序調查多個外圍設備的狀態稱爲輪詢。對於幾乎不產生中斷的系統來說,輪詢是比較合適的處理。
但對於計算機,輪詢不適宜,如打印機,那麼此時可用中斷,只需再中斷請求發生時輸出數據即可,其他時間CPU可集中處理別的程序,不需輪詢。

5.DMA——短時間傳送大量數據

DMA(Direct Memory Access),是指在不通過CPU的情況下,外圍設備直接和主內存進行數據傳送。磁盤等都用到了DMA機制。
節省時間是因爲CPU作爲中介的時間被節省了。
DMA

I/O端口號、IRQ、DMA通道,是識別外圍設備的3點組合。
計算機主機通過軟件控制硬件時所需的信息的最低限,是外圍設備的I/O端口號。
IRQ只對需中斷處理的外圍設備來說是必須的。
DMA通道只對需DMA機制的外圍設備來說是必須的。
假如多個外圍設備都設定成同樣端口號、IRQ、DMA通道的話,計算機就無法正常工作,會出現“設備衝突”的提示。

VRAM

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章