文章目錄
I/O接口的作用
接口是介於 CPU 和外設之間的一種緩衝電路
在 CPU 和外設之間起到了速度匹配、信號轉換的作用
CPU 與外設交換信息
交換的信息分爲
- 數據信息:可分爲數字量、模擬量、狀態量
- 狀態信息:反映當前外設所處的工作狀態
- 控制信息:CPU 通過接口傳送給外設的信息,用來設置外設(包括接口)的工作方式、控制外設的工作等
I/O端口的編址
接口中每個端口都有一個地址編號,稱爲端口地址
- 統一編址
- 獨立編址
統一編址
對 I/O 端口和存儲1單元統一編排地址號,由 I/O 端口地址和存儲單元地址共同構成一個統一的地址空間(1MB)
優點
- 簡化了指令系統的設計
- I/O 端口和存儲單元用同樣的編址方式,給編程者提供了很大的方便
缺點
- 減少了內存的地址可用範圍
獨立編址
建立兩個地址空間,一個爲內存地址空間(1MB),一個爲 I/O 地址空間(64kb),兩個地址空間相對獨立。
優點
- 存儲器地址空間不受 I/O 端口地址空間的影響
- 專用的輸入/輸出指令和訪問存儲器指令有明顯區別,便於理解和檢查
缺點
- 專用 I/O 接口指令增加了指令系統的複雜性,且 I/O 指令類型少,程序設計靈活性較差
- CPU 需提供專門的控制信號以區分對存儲器和 I/O 端
8086CPU組成的微機系統都採用獨立編址的方式
CPU 與外設之間數據傳送的方式
程序傳送的方式
通過執行程序的 I/O 指令來控制 CPU 與外設之間的數據交換
- 無條件傳送:無需考慮外設的狀態
- 程序設計和接口電路簡單
- 默認外設狀態是準備好的
- 適用於與簡單外設進行少量不頻繁的數據傳送
- 查詢傳送(有條件傳送):需要考慮外設的狀態
- 可以保證CPU與外設之間協調同步工作
- 浪費 CPU 時間,實時性差
- 適用於輸入/出不太頻繁且外設較少,對實時性要求不高的情況
中斷傳送的方式
當外設需要與 CPU發生信息交換時,外設向 CPU 發出請求信號,CPU 暫停正在執行的程序,去執行數據的輸入/出,數據傳送結束後,CPU繼續執行被暫停的程序
- 不需要查詢等待,執行效率高
- 接口電路相對複雜;浪費 CPU 的時間
- 適用於少量的數據傳送
直接存儲器存取(DMA)方式
DMA方式適合在外設和存儲器之間進行大量的告訴數據交換,數據的傳送直接由專用的接口芯片(DMAC)來控制。
傳送過程中,CPU 暫停指令的執行並讓出總線控制權,由 DMA 控制器接管總線的控制權。
傳送速度快
中斷
名詞
1、中斷
計算機在執行正常程序過程中,當出現某種異常事件或某種外部請求時,處理器就暫停執行當前的程序,而轉去執行對異常事件或某種外部請求的處理操作。當處理完畢後,CPU再返回到被暫停執行的程序,繼續執行,這個過程稱爲程序中斷。
2、中斷系統
爲實現中斷功能而設置的相應硬件電路和相應的軟件稱之爲中斷系統
3、中斷源
引起中斷的原因或發出中斷請求的來源成爲中斷源。
- 硬件中斷源
- 軟件中斷源
4、中斷處理過程
單箇中斷源的中斷過程:
中斷請求 =》中斷響應 =》保護斷點 =》中斷處理 =》中斷返回
中斷
中斷優先級
中斷請求是隨機發生的,當系統具有多箇中斷源時,有時會同時出現多箇中斷請求,CPU只能按一定的次序予以響應和處理,這個響應的次序稱爲中斷優先級。
-
不同按高低
-
低級讓高級
-
高級封低級 :正在處理高優先級中斷時,低優先級發起請求,暫不響應
-
同級等處理
中斷優先級的確定
- 軟件查詢法
- 硬件排隊電路發
- 專用中斷控制芯片法
8086/8088中斷源類型
8086/8088 CPU可以處理256種不同類型的中斷,每一種中斷都給定一個編號(0~255),稱爲中斷類型號,CPU根據中斷類型號來識別不同的中斷源。
8086/8088中斷優先級(高到低)
- 軟件中斷(除單步中斷外)
- 非屏蔽中斷
- 可屏蔽中斷
- 單步中斷
中斷向量表
所有中斷都是中斷服務程序來處理。
入口地址稱爲中斷向量,每個中斷向量包含一組段基址和偏移地址(邏輯地址),4個字節形式存放在中斷向量表中,中斷向量表位於內存00000H~003FFH,存放256箇中斷向量(1K字節)
中斷向量在中斷向量表中存放地址由中斷類型碼X4得到
中斷向量 是中斷服務子程序的入口地址
邏輯地址的範圍就是 0000H:0000H ~ 0000H:03FFH
求下列中斷類型號所對應的中斷向量表的邏輯地址
(1)2EH;(2)60H;(3)0A0H
邏輯地址 = 段基址 + 偏移地址
(1)2EH = 0010 1110;乘四相當於左移2位 = 1011 1000 = B8H =》 0000H:00B8H
(2)60H = 0100 0000;*4 = 1 1000 0000 = 0180H =》 0000H:0180H
(3)0A0H = 0000 1010 0000;*4 = 10 1000 0000 = 280H =》 0000H:0280H
8086中斷處理過程
將中斷服務程序入口地址置入中斷向量表的方法有兩種
- DOS系統功能調用法
- 直接裝入法