I/O系統(二)

程序查詢流程
1測試指令,查詢IO設備是否就緒。
2傳送指令,當已經就緒時,執行傳送功能。
3轉移指令,未就緒時,轉移至繼續測試IO設備的狀態。

當須要啓動某一IO設備時,必須將該程序插入到現行程序中。
1,因爲這種傳送數據時要佔用CPU寄存器,先將寄存器內容保護起來。
2,傳送的是一批數據,先設置IO設備與主機交換數據的計數值
3,設置欲傳送數據在主存緩衝區的首地址
4,CPU啓動IO設備
5,將IO接口中的設備狀態標誌取至CPU並測試IO設備是否準備就緒。若是就緒就傳輸,若是沒就緒等待。
6,CPU執行IO指令,或從IO接口的數據緩衝寄存器讀一個數據,或把一個數據寫入IO接口中的數據緩衝寄存器內,同時將接口中的狀態標誌復位。
7,修改主存地址。
8,修改計數值。
9,判斷計數值
10,結束IO傳送,繼續執行現行程序。


程序中斷方式

中斷接口:
1,中斷請求觸發器和中斷屏蔽觸發器
每臺設備必須配置一個請求觸發器INTR,當爲1時,表示該設備向CPU提出中斷請求。提出中斷請求時,自己必須準備就緒。多箇中斷源向CPU提出中斷請求時,CPU必須堅持一個原則,即在任何瞬間,只能接受一箇中斷請求。其餘的進行排隊,接受級別高的。在IO接口中設置一個屏蔽觸發器MASK,當爲1時,表示屏蔽,即封鎖其中中斷源的請求。請求觸發器和屏蔽觸發器在IO接口中是成對出現的。
CPU老是在統一的時間,每條指令執行階段的最後時刻,查詢全部的設備是否有中斷請求。

僅當設備準備就緒D=1,設備未屏蔽MASK=0,CPU中斷查詢信號可將中斷請求觸發器設置爲1,INTR=1

2排隊器
多箇中斷源同時向CPU提出請求時,根據性質不一樣,給予不一樣等級的優先權。速度越高的IO,優先級越高,由於若CPU不及時響應高速IO請求,其信息可能當即丟失。

3中斷向量地址造成部件
一旦響應了IO中斷,就要暫停現行程序,轉去執行改設備中的中斷服務程序。每一個服務程序都有一個入口地址。
硬件方法尋找地址:經過向量地址來尋找設備的中斷服務程序入口地址。中斷向量地址造成部件的輸入時來自排隊器的輸出INTP1,INTP2...INTPN。它的輸出是中斷向量,位數與計算機能夠處理中斷源的個數有關。一箇中斷源對應一個向量地址。其中12H,13H是向量地址,200,300是打印機服務程序和顯示器服務程序入口地址。
測試

 

 


IO中斷處理過程

1,CPU響應中斷的條件和時間。
CPU響應中斷的時間是每條指令執行階段的結束時刻。

2,IO中斷處理過程。
當CPU經過IO指令的地址碼選中某設備後
1,由CPU發動啓動IO設備命令,將接口中B設置1,D設置0
2,接口啓動輸入設備開始工做
3,輸入設備將數據傳送到數據緩衝寄存器。
4,輸入設備向接口發送設備工做結束信號,D設置爲1,B設置爲0,標誌設備準備就緒。
5,當設備準備就緒D=1,且本設備未被屏蔽MASK=0,在指令結束時,由CPU發送出中斷查詢信號。
6,設備中斷請求觸發器INTR設置爲1,標誌設備向CPU提出中斷請求,同時,INTR送至排隊器,進行中斷判優
7,若CPU容許中斷EINT=1,設備又被排隊選中,進入中斷響應。由中斷響應信號INTA將排隊器輸出送至編碼器造成向量地址。
8,向量地址送至PC,做爲下一條指令的地址。
9,因爲向量地址中存放的是一條無條件轉移指令,因此指令結束後,轉至程序入口地址,開始執行中斷服務程序。
10,中斷服務程序最後一條指令是中斷返回指令,當執行結束,返回到源程序的斷點。

以上能夠簡單的概括爲:中斷請求,中斷判優,中斷響應,中斷服務,中斷返回。


中斷服務程序的流程

1,保護現場
1)保存程序的斷點,由中斷隱指令完成。2)保存通用寄存器和狀態寄存器內容,由中斷服務程序完成。

2,中斷服務
對於不一樣中斷請求,服務內容是不一樣的。好比,打印,顯示字符。

3,恢復現場
一般採用取數指令或出棧指令(POP),將保存在儲存器或堆棧中的信息送回到原來的寄存器中。

4,中斷返回
返回到原來程序的斷點處。


DMA方式

DMA特色:



在主存和DMA之間有一條數據通路,主存和設備交換信息不須要經過CPU,也不須要CPU暫停現行程序爲設備服務,省去了保護現場和恢復現場。適合高速IO或輔存與主存之間的信息交換。若高速IO和CPU同時訪問主存,CPU必須將總線佔有權給DMA使用,即DMA採用週期竊取的方式佔用一個存取週期。


爲了有效分時使用主存,一般DMA與主存交換數據時採用的方法:
1,中止CPU訪問主存
特色:適用數據傳輸率很高的IO設備實現成組數據傳輸。缺點是DMA接口在訪問主存時,CPU基本上處於不工做狀態或保持原態。能夠再DMA接口中設置一個小容量儲存器,使IO設備先與小容量儲存器交換數據,而後再與主存交換。減小佔用時間。減小CPU暫停工做時間。

2,週期挪用
每當IO設備發出DMA請求時,IO設備便挪用或竊取總線佔用權,或幾個主存週期,而DMA不請求時,CPU扔繼續訪問主存。
UI設備請求DMA傳送三個狀況:
1,CPU不須要訪問主存,IO設備與CPU不衝突。
2,IO請求DMA傳送時,CPU訪問主存。此時等存取週期結束,CPU才能將總線佔有權讓出。
3,IO設備訪問主存時,CPU也要訪問,出現衝突。IO設備優先於CPU,竊取存儲週期,延緩了CPU訪問主存。

IO設備每挪用一個主存週期都要申請總線控制權,創建總線控制權和歸還總線控制權。週期挪用的方法比較適合IO設備的讀寫週期大於主存週期。

3,DMA與CPU交替訪問。
此方法適合CPU工做週期比主存存取週期長的狀況。這種狀況下不須要總線使用權的申請,創建和歸還。


DMA接口功能和組成

DMA接口功能:
1,向CPU申請DMA傳送
2,在CPU容許DMA工做時,處理總線控制權的轉交,避免進入DMA而影響CPU正常活動。
3,在DMA期間管理系統總線,控制數據傳輸。
4,肯定數據傳送的起始地址和數據長度,修正傳輸過程當中的數據地址和數據長度。
5,在數據塊傳送結束時,給出DMA操做完成的信號。

接口基本組成:
1,主存地址寄存器AR
AR用於存放主存中須要交換數據的地址。
2,字計數器WC
WC用於記錄傳送數據的總字數,一般交換字數的補碼值預置。
3,數據緩衝寄存器BR
BR用於暫存每次傳送的數據。
4,DMA控制邏輯
5,中斷機構
當字計數器全0時,表示數據交換完畢,由溢出信號經過中斷向CPU發出中斷請求。
6,設備地址寄存器DAR
存放IO設備的設備碼


DMA工做過程

1,預處理
在DMA接口開始工做以前,CPU給他預置信息。
DMA邏輯控制指明傳輸方向,讀主存,寫主存。
DMA設備地址寄存器送入設備號,啓動設備
DMA主存地址寄存器送入交換數據的主存起始地址
對字計數器賦予交換數據的個數。
2,數據傳送
DMA以數據塊爲單位傳送的。

            \\
             \\_
          .---(')
        o( )_-\_

3,後處理
包括校驗送入主存數據正確性,是否繼續傳送等。

DMA接口和系統接連方式




與程序中斷方式相比,DMA方式特色:

1,程序中斷方式靠程序傳輸,DMA靠硬件傳輸。
2,中斷在一條指令執行結束時響應,DMA在指令週期內任意存取週期結束時響應。
3,中斷有異常處理事件能力,DMA沒有。
4,中斷須要保護現場,DMA不中斷程序,無需保護現場。
5,DMA優先級比中斷高。

DMA接口類型

1,選擇型DMA接口
2,多路型DMA接口編碼

相關文章
相關標籤/搜索