-
I/O端口
鎖定
- 中文名
- I/O端口
- 外文名
- I/O port
- 分 類
- I/O接口芯片 I/O接口控制卡
- 功 能
- 協調時序差異;
- 控制方式
- 程序查詢方式
I/O端口接口分類
(1)I/O接口芯片
(2)I/O接口控制卡
有若干個集成電路按一定的邏輯組成為一個部件,或者直接與CPU同在主板上,或是一個插件插在系統總線插槽上。
I/O端口接口功能
速度不匹配:I/O設備的工作速度要比CPU慢許多,而且由於種類的不 同,他們之間的速度差異也很大,例如硬盤的傳輸速度就要比打印機快出很多。
時序不匹配:各個I/O設備都有自己的定時控制電路,以自己的速度傳 輸數據,無法與CPU的時序取得統一。
基於以上原因,CPU與外設之間的數據交換必須通過接口來完成,通常接口有以下一些功能:
(1)設置數據的寄存、緩衝邏輯,以適應CPU與外設之間的速度差異,接口通常由一些寄存器或RAM芯片組成,如果芯片足夠大還可以實現批量數據的傳輸;
(2)能夠進行信息格式的轉換,例如串行和並行的轉換;
(3)能夠協調CPU和外設兩者在信息的類型和電平的差異,如電平轉換驅動器、數/模或模/數轉換器等;
(4)協調時序差異;
(5)地址譯碼和設備選擇功能;
(6)設置中斷和DMA控制邏輯,以保證在中斷和DMA允許的情況下產生中斷和DMA請求信號,並在接受到中斷和DMA應答之後完成中斷處理和DMA傳輸。
I/O端口控制方式
CPU通過接口對外設進行控制的方式有以下幾種:
(1)程序查詢方式
這種方式下,CPU通過I/O指令詢問指定外設當前的狀態,如果外設準備就緒,則進行數據的輸入或輸出,否則CPU等待,循環查詢。
這種方式的優點是結構簡單,只需要少量的硬件電路即可,缺點是由於CPU的速度遠遠高於外設,因此通常處於等待狀態,工作效率很低
(2)中斷處理方式
在這種方式下,CPU不再被動等待,而是可以執行其他程序,一旦外設為數據交換準備就緒,可以向CPU提出服務請求,CPU如果響應該請求,便暫時停止當前程序的執行,轉去執行與該請求對應的服務程序,完成後,再繼續執行原來被中斷的程序。
中斷處理方式的優點是顯而易見的,它不但為CPU省去了查詢外設狀態和等待外設就緒所花費的時間,提高了CPU的工作效率,還滿足了外設的實時要求。但需要為每個I/O設備分配一個中斷請求號和相應的中斷服務程序,此外還需要一箇中斷控制器(I/O接口芯片)管理I/O設備提出的中斷請求,例如設置中斷屏蔽、中斷請求優先級等。
(3)DMA(直接存儲器存取)傳送方式
DMA最明顯的一個特點是它不是用軟件而是採用一個專門的控制器來控制內存與外設之間的數據交流,無須CPU介入,大大提高CPU的工作效率。
I/O端口端口尋址
以8086/8088為例,其I/O端口採用獨立編制方式,可有64K字節端口或32K個字節端口。指令系統中設有專門的輸入指令IN和輸出指令OUT來訪問端口。I/O端口的尋址方式有直接端口尋址和間接端口尋址兩種。
I/O端口直接端口尋址
直接端口尋址是在指令中直接給出要訪問的端口地址,端口地址用一個8位二進制數表示,則此時最多允許尋址256個端口。
例如:IN AL, 40H 從端口地址為40H的端口中取出字節送給寄存AL
OUT 50H, AL 將AL中的內容輸出到端口地址為50H的端口中
I/O端口間接端口尋址
當訪問的端口地址數大於等於256時,直接端口尋址不能滿足要求,而要採用間接端口尋址方式。此時,端口的地址必須由DX寄存器指定,允許尋址64K(0~65535)個端口。
[1]
例如:MOV DX, 309H
IN AL,DX 從端口地址為309H的端口中取出字節給AL
MOV DX,206H
OUT DX,AL