計算機組成原理(唐朔飛)教材筆記 第五章 輸入輸出系統

1. 輸入輸出系統由I/O軟件和I/O硬件兩部分組成

#I/O軟件
將用戶編制的程序(或數據)輸入至主機內,將運算結果輸送給用戶;
採用接口模塊方式時,機器指令系統的I/O指令+系統軟件中的管理程序;
採用通道管理方式時,I/O指令+通道指令+操作系統;

#I/O硬件
接口系統,包括接口模塊+I/O設備兩大部分
通道或I/O處理機系統,包括通道(或I/O處理機)+設備控制器+ I/O設備

2. I/O編址方式有兩種,存儲器統一編址,獨立編址,各有優缺點

# 存儲器統一編址
I/O地址是存儲器地址的一部分,影響了存儲器空間,但是可以用訪存命令訪問I/O

# 獨立編址
I/O地址與存儲器地址分開,不影響存儲空間,有專門的I/O指令訪問I/O

3. I/O的聯絡方式用來解決與主機(CPU+主存)的聯絡問題,按速度不同分爲三種;

#立即響應方式    對於十分緩慢的設備
#異步方式       對於與主機速度十分不匹配的設備
#同步方式       對於要求與主機速度完全匹配的設備

4. I/O的傳送方式,指數據是串行還是並行傳送

5. I/O的連接方式,指I/O設備與主機總線式還是輻射式連接;現代計算機大多采用總線式

6.主機與I/O設備之間要設置接口,理由如下:

#一臺機器通常配有多臺I/O設備,通過接口可以實現I/O設備的選擇

#I/O設備的速度不一,與CPU可能相差很大,通過接口可以實現數據緩衝達到數據匹配

#有些I/O設備可能串行傳輸數據而CPU一般爲並行傳送,通過接口可以實現串/並格式的轉換

#I/O設備的輸入輸出電平可能與CPU的輸入輸出電平不同,通過接口可實現電平轉換

#CPU啓動I/O設備工作,通過接口可以傳送控制命令

#I/O設備需要將其工作狀態(“忙”,“就緒”,“錯誤”,“中斷請求”等)及時向CPU報告,通過接口可以監視設備的工作狀態,共CPU查詢

7. 接口(Interface)和端口(Port)是兩個不同的概念。端口是指接口電路中的一些寄存器,用來存放數據信息、控制信息、狀態信息,相應的端口分別爲數據端口、控制端口和狀態端口,若干個端口加上相應的控制邏輯才能組成接口。

8. 接口的功能

# 選址功能

# 傳送命令

# 傳送數據
接口中的數據通路完成數據傳送,數據通路還應具有緩衝能力,能將數據暫存在接口內;
接口中通常有數據緩衝寄存器(Data Buffer Register, DBR),用來暫存I/O設備與主機準備交換的信息,與I/O總線中的數據線是相連的

# 反映I/O設備工作狀態
完成觸發器D和工作觸發器B來標誌設備所處的狀態,比如D=0 B=1表示I/O設備處於準備狀態
中斷技術中還用到中斷請求觸發器INTR,當其爲1時表示I/O設備向CPU發出中斷請求,還有屏蔽觸發器MASK,與中斷請求觸發器配合使用,完成設備的屏蔽功能
所有狀態標誌觸發器都與I/O總線中的狀態線相連

9. 接口類型

# 按數據傳送方式分類, 有並行接口和串行接口

# 按功能選擇的靈活性分類, 有可編程接口和不可編程接口

# 按通用性分類有通用接口和專用接口

# 按數據傳送的控制方式分類,有程序型接口和DMA型接口;
程序型接口用於連接速度較慢的I/O設備,如顯示終端、鍵盤、打印機等;
DMA型接口用於連接高速I/O設備,如磁盤、磁帶等

10. 當I/O設備較多時,CPU需按各個I/O設備在系統中的優先級別進行逐級查詢,流程圖見191頁,單個I/O設備的程序查詢方式大致包括10個步驟,流程圖見191頁

#1 將寄存器原內容保護起來(若該寄存器中存有有用信息)
#2 設置I/O設備與主機交換數據的計數值(由於傳送往往是一批數據)
#3 設置欲傳送數據在主存緩衝區的主地址
#4 CPU啓動I/O設備
#5 取I/O接口中的設備狀態標誌到CPU,檢查I/O設備是否就緒;對於輸入而言,準備就緒意味着接口緩衝寄存器的數據已滿等待CPU取走,對於輸出而言表示接口緩衝寄存器的數據已空等待CPU將數據傳輸到接口
#6 CPU執行I/O指令
#7 修改主存地址
#8 修改計數值,若原設置計數值爲原碼則依次-1,若原設置計數值爲負數的補碼,則依次+1
#9 判斷計數值是否爲0,爲0則表示傳輸完畢
#10 結束I/O傳送,繼續執行現行程序 

11. 每臺外部設備都必須配置一箇中斷請求觸發器INTR,當其爲“1”時,表示該設備向CPU提出中斷請求,但是設備欲提出中斷請求時,其設備本身必須準備就緒,即接口內完成觸發器D的狀態必須爲“1”;

12. 凡是能向CPU提出中斷請求的各種因素統稱爲中斷源,CPU在任何瞬間只能接受一箇中斷源的請求;當多箇中斷源同時提出中斷請求時,CPU必須對各中斷源的請求進行排隊,且只能接受級別最高的中斷源的請求;因此需要在I/O接口中設置一個屏蔽觸發器MASK,當其爲“1”時表示被屏蔽;

13. CPU總是在統一的時間,即每條指令執行階段的最後時刻,查詢所有的設備是否有中斷請求;

14. 當多箇中斷源發出中斷請求時,CPU只能按中斷源的不同性質對其排隊,給予不同等級的優先權;就I/O中斷而言,速度越高的I/O設備,優先級越高;

15. 設備優先權的處理可以採用硬件方法,也可採用軟件方法,硬件法是用一個鏈式排隊器(見課本196頁);

16. 設備編碼器的作用,形成中斷向量地址;硬件向量法通過向量地址來尋找設備的中斷服務程序入口地址,而且向量地址是由硬件電路產生的;

17. 中斷向量地址的形成部件的輸入是來自排隊器的輸出INTP1,INTP2,····,INTPN,它的輸出是中斷向量(二進制代碼表示),一箇中斷源對應一個向量地址;注意區分向量地址和中斷服務程序的入口地址

18. CPU相應中斷的時間一定是在每條指令執行階段的結束時刻;

19. 中斷處理的過程大致分10個步驟,5個階段,簡單歸納爲中斷請求、中斷判優、中斷響應、中斷服務、中斷返回;具體見教材199頁;

20. 一般中斷服務的流程分四大部分:保護現場、中斷服務、恢復現場、中斷返回:

#1 保護現場
有兩個含義,其一是保存程序的斷點,其二是保存通用寄存器和狀態寄存器的內容;前者由中斷隱指令完成,後者由中斷服務程序完成;

#2 中斷服務(設備服務)
是中斷服務程序的主體部分

#3 恢復現場
中斷服務程序的結尾部分,要求在退出服務程序前,將原程序中斷時的“現場”恢復到原來的寄存器中;

#4 中斷返回
中斷服務程序的最後一條指令,返回到原程序的斷點處,繼續執行原程序

21. 單重中斷和多重中斷,

CPU在執行中斷程序時,不理睬新的中斷請求,稱爲單重中斷;
CPU暫停現行的中斷程序去執行新的中斷請求,稱爲多重中斷(或中斷嵌套)

22. DMA方式,主存與DMA接口之間有一條數據通路,主存與設備交換信息時不需要通過CPU,省去了保護現場和恢復現場,工作速度比程序中斷方式高;特別適合與高速I/O或輔存與主存之間的信息交換;

23. 如果出現高速I/O(通過DMA接口)和CPU同時訪問主存,CPU必須將總線(如地址線、數據線)佔有權讓給DMA接口使用,DMA採用週期竊取的方式佔用一個存取週期;

24. 通常DMA與CPU出現爭用主存時,採用如下三種方法與主存交換數據

#1 停止CPU訪問主存
DMA接口向CPU發出一個停止信號,要求CPU放棄地址線、數據線和有關控制線的使用權;DMA獲得總線控制權後進行數據傳送,結束後DMA通知CPU可以使用主存,交還控制權;
該方法的優點是控制簡單,缺點是DMA使用主存時CPU基本處於不工作狀態,CPU對主存的利用率並沒有得到充分發揮(可以通過在DMA接口中設置一個小容量存儲器緩衝)

#2 週期挪用(週期竊取)
每當I/O設備發出DMA請求時,I/O設備挪用或竊取總線佔用權一個或幾個主存週期,而DMA不請求時,CPU仍繼續訪問主存;
該方法的優點是既實現了I/O傳送,又較好地發揮了註冊與CPU的效率,目前廣泛採用;
缺點是,I/O設備每次挪用一個主存週期都要申請總線控制權、建立總線控制、歸還總線控制權等,因此儘管傳送一個字對主存而言只佔用一個主存週期,但對DMA接口而言實質上要佔用2~5個主存週期;因此該方法比較適合與I/O設備的讀/寫週期大於主存週期的情況;

#3 DMA與CPU交替訪問
這種方法比較適用於CPU的工作週期比主存存取週期長的情況,將CPU的工作週期分爲兩個或多個部分,第一個部分用於CPU做準備工作和交給DMA訪問主存,第二個部分交由CPU訪問主存;
該方法的優點是不需要總線使用權的申請、建立和歸還,總線控制權的轉移幾乎不需要什麼時間,具有很高的DMA傳送速率;
缺點是相應的硬件邏輯變得更爲複雜;

25. DMA接口又稱DMA控制器,有如下幾個功能

# 向CPU申請DMA傳送

# 在CPU允許DMA工作時,處理總線控制權的轉交,避免總線競爭

# 在DMA期間管理系統總線,控制數據傳送

# 確定數據傳送的起始地址和數據長度,修正數據傳送過程中的數據地址和數據長度

# 在數據塊傳送結束時,給出DMA操作完成的信號

26. DMA接口由以下幾個邏輯部件組成

# 主存地址寄存器(AR)
存放主存中需要交換數據的地址,交換數據前需要把主存中首地址送到AR,交換數據中每交換一次數據將地址寄存器內容加1直到第一批數據傳送完畢

# 字計數器(WC)
記錄傳送數據的總字數

# 數據緩衝寄存器(BR)
BR用於暫存每次傳送的數據

# DMA控制邏輯
負責管理DMA的傳送過程,由控制電路、時序電路及命令狀態控制寄存器等組成

# 中斷機構
當字計數器溢出(全“0”)時,表示一批數據交換完畢,由“溢出信號”通過中斷機構向CPU提出中斷請求,請求CPU作DMA操作的後處理;這裏與I/O系統中的中斷事件有一定區別

# 設備地址寄存器(DAR)
DAR存放I/O設備的設備碼或表示設備信息存儲區的尋址信息,如磁盤數據所在的區號、盤面號和柱面號。

27. DMA傳送過程

# 預處理
指明數據傳送方向(輸入還是輸出);
DMA設備地址寄存器送入設備號,啓動設備;
DMA主存地址寄存器送入交換數據的主存起始地址;

# 數據傳送
DMA以數據塊爲單位傳送,流程如下
1.當準備好一個字時,發出選通信號,將該字讀到DMA的數據緩衝寄存器(BR)中,表示數據緩衝寄存器“滿”;
2.設備向DMA接口發出請求(DREQ)
3.DMA接口向CPU申請總線控制權(HRQ)
4.CPU發回HLDA信號,表示允許將總線控制權交給DMA接口
5.將DMA主存地址寄存器中的主存地址送地址總線,並命令存儲器寫
6.通知設備已被授予一個DMA週期(DACK),併爲下一個字做準備
7.將DMA數據緩衝寄存器的內容送數據總線
8.主存將數據總線上的信息寫至地址總線指定的存儲單元中
9.修改主存地址和字計數值
10.判斷數據塊是否傳送結束,若未結束則繼續傳送;若已結束,則向CPU申請程序中斷,標誌數據塊傳送結束;

# 後處理
包括檢驗送入主存的數據是否正確;決定是否使用DMA繼續傳送其他數據塊;測試在傳送過程中是否發生錯誤

28. 與程序中斷相比,DMA方式有如下特點

# 從數據傳送看,程序中斷方式靠程序傳送,DMA方式靠硬件傳送

# 從CPU響應時間看,程序中斷方式是在一條指令執行結束時響應,DMA方式在指令內任一存取週期結束時響應

# 程序中斷方式有處理異常事件的能力,DMA沒有

# 程序中斷需要中斷現行程序,故需要保護現場;DMA不需要保護現場

# DMA優先級比程序中斷優先級更高

29. DMA接口的類型,分選擇型和多路型

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