第七章 IO系統
7.1 IO系統基本概念
-
IO設備編址方式
(1)統一編址 : 和主存統一編址
(2)不統一編址 : 有專門的IO指令 -
設備選址
用設備選擇電路識別是否被選中 -
傳送方式:串行和並行
-
聯絡方式:
(1)立即響應
(2)異步工作采用應答信號
並行:
串行:想象網絡傳輸的包
(3)同步工作采用同步時標 -
IO設備與主機的連接方式
(1)輻射式連接:每台設備都有一套控制線和一組信號線。不便於增刪設備
(2)總線連接:便於增刪設備 -
IO設備分類
(1)人機交互設備:鍵盤鼠標
(2)計算機信息存儲設備:磁盤光盤
(3)機機通信設備:網絡傳輸
7.2 CPU對IO設備的控制
-
程序查詢方式
(1)由軟件控制查詢IO設備的狀態,只要設備沒准備好,CPU就會意志詢問狀態
(2)每次只能傳輸一個字,繼續傳輸CPU就要走下一個IO詢問
(3)踏步等待,串行傳輸,大量浪費CPU時間
-
程序中斷方式
(1)CPU只發出IO請求,啟動設備,然后繼續執行其他工作。IO設備傳輸數據到緩沖寄存器中,存滿則對CPU發出中斷請求,請求把數據傳輸到CPU.
(2)IO操作和CPU的其他工作是並行進行的。沒有踏步等待,IO傳輸開始會中斷現行程序
(3)中斷服務程序,解決中斷酸發生的問題。(保留中斷前程序執行的現場,回復中斷后程序執行的現場)
(4)引起中斷的方式
人為設置的中斷:轉管指令
程序性故障:溢出,操作碼不能識別
硬件故障
I/O設備
外部事件用鍵盤中斷現行程序
(5)中斷系統需要解決的問題
各中斷源如何向CPU提出中斷請求
各中斷源同時提出中斷請求怎么辦
CPU什么條件,什么時間,以什么方式響應中斷
如何保護現場
如何尋找入口地址
如何恢復現場,如何返回
處理中斷的過程又出現新的中斷怎么辦?
(6)中斷響應的條件
中斷源提出中斷請求
中斷未被屏蔽
中斷源具有較高的優先級
CPU允許中斷
一條指令執行完畢
沒有更高級的中斷服務程序正在執行
(7)中斷請求標記和中斷判優邏輯
中斷請求標記:INTR。INTR是一個中斷請求標記觸發器,多個INTR觸發器組成一個中斷請求寄存器。:
(a)硬件實現排隊器(進行中斷判優)
分散在各個中斷源的接口電路中,形成鏈式排隊器
(b)軟件實現:按照優先級的順序一次查詢這些設備是否有請求
(8)中斷服務程序的尋址
硬件向量法:
把上面排隊器的輸出接入到鄉里那個地址形成部件,輸出一個主存地址。這個地址上的內容是提前服務程序
排隊器的輸出又稱”向量地址“,向量地址形成部件輸出的物理地址又稱”中斷服務程序的入口地址“
(8)中斷處理過程:
(a)執行中斷隱指令:
硬件關中斷:
保存斷點:保存當前程序斷點PC.到特定地址(0號地址),斷點進棧
尋找中斷服務程序入口地址:向量地址->PC(硬件向量法)
中斷服務程序入口地址M -> PC (軟件查詢法)
(b)轉入中斷服務程序:
保護現場:保護CPU的主要狀態,PCB保存等。通用寄存器入棧保存
開中斷:為了響應其它優先級更高的中斷請求。另外在小中斷服務程序執行完畢后,再次響應
中斷處理。
結尾部分:關中斷,以防止在恢復現場的過程中被新的中斷打斷。
恢復現場
開放中斷
中斷返回
【注】:保護現場和恢復現場只是一半指令的疊加,例如PC值入棧等操作。這些操作計算並不能意識到是他個數的操作,所以要先關閉中斷,在進行保存和回復操作.
(9)中斷屏蔽技術
(a)多重中斷的概念:在執行中斷服務程序的時候,該程序被優先級更高的中斷請求中斷。前提是先開中斷
(b)屏蔽技術 :
I. 中斷的優先級是硬件電路實現的,所謂屏蔽,就是在每個電路上,加上mask掩碼電路。
ii. 通過設置mask掩碼電路的值,和原中斷優先級的判斷進行與操作,來對中斷進行屏蔽。
iii. (因此,mask值為1不進行屏蔽,為0進行屏蔽)
V. 中斷屏蔽字的編碼:把所有中斷操作列出01序列,優先級高的位設置為0。eg:中斷屏蔽字為A:1111,B:0100,C:0110,D:0111。中斷優先級為:ADCB(0的個數依次增多)
-
DMA方式:
(1)概念:
(a)在數據准備階段,CPU與外設並行工作。數據傳輸階段,DMA方式在外設和主存之間開辟一條”直接數據通道“,數據不再經CPU轉存
(b)DMA是純硬件方式進行成組信息傳送的IO方式
(c)因為數據不再經CPU轉存,所以也就不會有CPU保護恢復現場的操作,因此,DMA也稱數據直接存儲
(2)總線征用方式:因為CPU和DMA控制器都能向總線傳輸數據,所以會導致總線沖突
(a)停止CPU訪問主存
(b)DMA與CPU交替訪問主存
(c)周期挪用
(3)DMA傳送過程
(a)預處理:由CPU完成一些准備工作。測試IO設備狀態,啟動設備等。當IO設備准備好發生的數據或接受的數據后,設備向DMA控制器發送DMA請求,然后DMA控制器向CPU發送總線請求
(b)數據傳送:完全有DMA控制器協調主存和外設進行傳輸數據
(c)后處理:當數據傳輸完畢,DMA控制器向CPU發送中斷請求,CPU執行中斷服務程序校驗傳輸數據是否准確,是否需要繼續傳輸其他塊等
【注】:DMA方式,只有預處理和后處理需要CPU進行干預。
DMA和CPU同時向主存寫入數據時,DMA優先級高於CPU。先讓DMA寫入數據
不競爭的情況下,CPU在執行完指令后,會空出一個存儲周期,用於DMA中斷
7.3 輸入輸出設備
-
輸入設備
(1)鍵盤:將此鍵翻譯成ASCII碼(編碼鍵盤) -
輸出設備
(1)顯示器:
分辨率:顯示器所能顯示的像素個數
灰度級:像素點的亮暗差別(黑白)顏色。每個像素對應的舒心存儲器的位數
刷新:反復不斷的掃面整個屏幕
刷新存儲器:容量 = 分辨率*灰度級 -
外存儲器:硬盤
(1)按序存儲,不能隨機存儲
(2)存儲密度:
道密度:沿磁盤半徑方向單位長度上的磁道數。單位是道/英寸
位密度:磁道單位長度上能記錄的二進制字節數。單位是位/英寸
面密度:位密度和道密度的乘積,單位是位/平方英寸
(3)磁盤總的平均存取時間
存取時間\(T_a\):存取時間是指從發出讀寫命令后,磁頭從某一個起始位置移動到新的記錄位置,到開始從盤面讀出或寫入信息加上傳送數據所需要的時間。
平均找道時間\(T_s\):將磁頭移動到所要求的磁道上所需的時間(磁臂移動到哪個同心圓)
平均等待時間\(\frac{1}{2r}\):在同心圓上,移動到哪個圓弧段。(用磁盤旋轉一周所需時間的一半)
數據傳輸時間\(\frac{b}{rN}\):磁盤存儲器在單位時間內向主機傳送的字節數。
設磁盤轉速為r轉/秒,每條磁道容量為N個字節,數據傳輸率為\(D_r = rN\)字節/秒
7.4 IO接口
-
IO接口又稱作IO控制器,是主機和外設之間的交接面。用來實現主機和外設質檢的信息交互。主機和外設的工作方式和工作速度具有很大差異,接口正是為了解決這些差異而出現的
-
IO接口的功能
(1)實現主機和外設的通信聯絡控制
(2)進行地址譯碼和設備選擇:把CPU傳來的地址號轉換為制定設備
(3)實現數據緩沖
(4)電平信號轉換:外社和主機的電平信號不同,要通過轉換
(5)傳送控制命令和狀態信息:接收CPU傳來的啟動設備命令,和向CPU傳遞設備准備就緒信號 -
接口的邏輯電路
(1)CPU同外設之間的信息傳送實質是對接口中某些寄存器(端口)進行讀寫。eg:傳送數據就是對DBR讀寫
(2)內部接口:與系統總線相連,實質上是與內存,CPU相連。數據傳輸方式只能是並行傳輸
外部接口:外部接口通過接口電纜和外設相連,外部接口的數據傳輸方式是串行傳輸。
因此,接口要有串並轉換功能