7.1 I/O系統基本概念
I/O系統由I/O軟件和I/O硬件兩部分構成。
I/O硬件包括外部設備、I/O接口、I/O總線等。
常見的OA設備
I/O基本控制方式有(具體見7.4)
通道方式流程如下
CPU向通道發出I/O指令。指明通道程序在內存中的位置,并指明要操作的是哪個I/O設備。CPU就可以去做其他事情通道執行內存中的通道程序,控制I/O設備完成一系列任務通道執行完規定的任務后,向CPU發出中斷請求,之后CPU對中斷進行處理
I/O 軟件包括驅動程序、用戶程序、管理程序、升級補丁等。通常采用I/O指令和通道指令實現主機和I/O設備的信息交換。
I/O指令
7.2 外部設備
外部設備也稱外圍設備,是除了主機以外的、能直接或間接與計算機交換信息的裝置。
7.2.1 輸入輸出設備7.2.1.1 輸入設備
輸入設備用于向計算機系統輸入命令和文本、數據等信息的部件。鍵盤和鼠標是最基本的輸入設備。
(1) 鍵盤
鍵盤是最常用的輸入設備,通過它可發出命令或輸入數據。每個鍵相當于一個開關微機原理數據傳送程序設計,當按下鍵時,電信號連通;當松開鍵時,彈簧把鍵彈起,電信號斷開。
鍵盤輸入信息可分為3個步驟:
(2) 鼠標
鼠標是常用的定位輸入設備,它把用戶的操作與計算機屏幕上的位置信息相聯系。常用的鼠標有機械式和光電式兩種。
工作原理:當鼠標在平面上移動時,其底部傳感器把運動的方向和距離檢測出來,從而控制光標做相應運動。
7.2.1.2 輸出設備
顯示器
顯示器有以下主要參數
顯示存儲器(VRAM)也稱刷新存儲器,為了不斷提高刷新圖像的信號,必須把一幀圖像信息存儲在刷新存儲器中。其存儲容量由圖像分辨率和灰度級決定,分辨率越高,灰度級越多,刷新存儲器容量越大。
按所用的顯示器件分類
CRT顯示器主要由電子槍、偏轉線圈、蔭罩、高壓石墨電極和熒光粉涂層及玻璃外殼5部分組成。具有可視角度大、無壞點、色彩還原度高、色度均勻、可調節的多分辨率模式、響應時間極短等特點,按顯示信息內容不同可分為
字符顯示器。顯示字符的方法以點陣為基礎。點陣是指由m×n個點組成的陣列。點陣的多少取決于顯示字符的質量和字符窗口的大小。字符窗口是指每個字符在屏幕上所占的點數,它包括字符顯示點陣和字符間隔。將點陣存入由ROM構成的字符發生器中,在CRT進行光柵掃描的過程中,從字符發生器中依次讀出某個字符的點陣,按照點陣中0和1代碼不同控制掃描電子束的開或關,從而在屏幕上顯示出字符。對應于每個字符窗口,所需顯示字符的ASCII代碼被存放在視頻存儲器VRAM中,以備刷新。圖形顯示器。將所顯示圖形的一組坐標點和繪圖命令組成顯示文件存放在緩沖存儲器中,緩存中的顯示文件傳送給矢量(線段)產生器,產生相應的模擬電壓,直接控制電子束在屏幕上的移動。為了在屏幕上保留持久穩定的圖像,需要按一定的頻率對屏幕進行反復刷新。這種顯示器的優點是分辨率高且顯示的曲線平滑。目前高質量的圖形顯示器采用這種隨機掃描方式。缺點是當顯示復雜圖形時,會有閃爍感。圖像顯示器 圖形顯示器主要顯示矢量圖形,比較規則,而圖像顯示器可以顯示豐富多彩的圖像信息
利用液晶的電光效應,由圖像信號電壓直接控制薄膜晶體管,再間接控制液晶分子的光學特性來實現圖像的顯示。具有體積小、重量輕、省電、無輻射、綠色環保、畫面柔、不傷眼等特點。
利用液晶的電光效應,由圖像信號電壓直接控制薄膜晶體管,再間接控制液晶分子的光學特性來實現圖像的顯示。具有體積小、重量輕、省電、無輻射、綠色環保、畫面柔、不傷眼等特點。
原理:通過控制半導體發光二極管進行顯示,用來顯示文字、圖形、圖像等各種信息。與LCD相比,LED顯示器在亮度、功耗、可視角度和刷新速率等方面都更具優勢。
7.2.1.2-2 打印機(了解即可)
打印機是計算機的輸出設備之一,用于將計算機處理結果打印在相關介質上。
按印字原理不同可分為
按打印機工作方式不同可分為
按工作方式可分為
7.2.2 外存儲器
所謂“磁表面存儲”,是指把某些磁性材料薄薄地涂在金屬鋁或塑料表面上作為載磁體來存儲信息。磁盤存儲器、磁帶存儲器和磁鼓存儲器均屬于磁表面存儲器。
磁表面存儲器的優點:
磁表面存儲器的缺點:
(1) 磁盤存儲器
1)磁盤設備的組成
一塊硬盤含有若干個記錄面,每個記錄面劃分為若干條磁道,而每條磁道又劃分為若干個扇區,扇區(也稱塊)是磁盤讀寫的最小單位,也就是說磁盤按塊存取。
磁盤內部結構
硬盤存儲器由磁盤驅動器、磁盤控制器和盤片組成。
磁盤讀取
7.2.2-1.2 磁盤的性能指標
非格式化容量是指磁記錄表面可以利用的磁化單元總數。
格式化容量是指按照某種特定的記錄格式所能存儲信息的總量。
道密度是沿磁盤半徑方向單位長度上的磁道數;
位密度是磁道單位長度上能記錄的二進制代碼位數;
面密度是位密度和道密度的乘積。
記錄密度
平均存取時間
7.2.2-1.3 磁盤地址
主機向磁盤控制器發送尋址信息,磁盤的地址一般如圖所示:
磁盤地址
若系統中有4個驅動器,每個驅動器帶一個磁盤,每個磁盤256個磁道、16個盤面,每個盤面劃分為16個扇區,則每個扇區地址要18位二進制代碼;
7.2.2-1.4 硬盤的工作過程
硬盤的主要操作是尋址、讀盤、寫盤。每個操作都對應一個控制字,硬盤工作時,第一步是取控制字,第二步是執行控制字。
硬盤屬于機械式部件,其讀寫操作是串行的微機原理數據傳送程序設計,不可能在同一時刻既讀又寫,也不可能在同一時刻讀兩組數據或寫兩組數據
7.2.22 磁盤陣列
RAID( Array of Disks,廉價冗余磁盤陣列)是將多個獨立的物理磁盤組成一個獨立的邏輯盤,數據在多個物理盤上分割交叉存儲、并行訪問,具有更好的存儲性能、可靠性和安全性。
RAID的分級如下所示。在RAID1~RAID5的幾種方案中,無論何時有磁盤損壞,都可以隨時拔出受損的磁盤再插入好的磁盤,而數據不會損壞。
RAID通過同時使用多個磁盤,提高了傳輸率;通過在多個磁盤上并行存取來大幅提高存儲系統的數據吞吐量;通過鏡像功能,可以提高安全可靠性;通過數據校驗,可以提供容錯能力。
7.3 I/O接口
I/O接口:又稱I/O控制器(I/O )、設備控制器,負責協調主機與外部設備之間的數據傳輸
7.3.1 I/O接口的功能
7.3.2 I/O接口的基本結構
I/O接口的基本結構
外部接口:外部接口通過接口電纜與外設相連,外部接口的數據傳輸可能是串行方式,因此I/O接口需具有串/并轉換功能。
內部接口:內部接口與系統總線相連,實質上是與內存、CPU相連。
工作原理:
發命令:發送命令字到I/O控制寄存器,向設備發送命令(需要驅動程序的協助)讀狀態:從狀態寄存器讀取狀態字,獲得設備或I/O控制器的狀態信息讀/寫數據:從數據緩沖寄存器發送或讀取數據,完成主機與外設的數據交換
控制寄存器、狀態寄存器在使用時間上是錯開的,因此有的I/O接口中可將二者合二為一
7.3.4 I/O端口及其編址
I/O端口是指接口電路中可以被CPU直接訪問的寄存器。I/O端口要想能夠被CPU訪問,必須要有端口地址,每一個端口都對應著一個端口地址。對I/O端口的編址分為統一編址和獨立編址兩種
統一編址
把I/O端口當做存儲器的單元進行地址分配,用統一的訪存指令就可以訪問I/O端口,又稱存儲器映射方式??坎煌牡刂反a區分內存和I/O設備,I/O地址要求相對固定在地址的某部分。
優點:
缺點:
2.獨立編址
I/O端口地址與存儲器地址無關,獨立編址CPU需要設置專門的輸入/輸出指令訪問端口,又稱I/O映射方式。靠不同的指令區分內存和I/O設備。
優點:
缺點:
統一編制和獨立編址 7.4 I/O控制方式
三種I/O控制方式
7.4.1 程序查詢方式
(1) 程序查詢方式流程說明
以打印3個字符為例 解釋程序查詢方式流程:
CPU通過地址線指明Rn+1寄存器地址,控制線指明此次為寫操作,將打印對應的命令字(如:00010)放入數據線上。通過OUT指令完成。 I/O控制邏輯電路根據命令字,給打印機發出命令信號。打印機啟動。打印機啟動完成后,通過狀態線給I/O接口反饋。I/O控制邏輯電路將Ready(如:0010)存入狀態/控制寄存器中。CPU輪詢檢查(通過IN指令)狀態/控制寄存器是否已經Ready。是Ready就開始傳送數據。CPU通過地址線指明此次要操作的是Rn端口,控制線指明此次為寫操作,將打印對應的數據a放入數據線上。通過OUT指令完成。 I/O控制邏輯把數據緩沖寄存器的數據發送給外設打印機,同時發出相應的控制信號 。當打印機完成打印,I/O控制邏輯收集外設狀態(Ready)到狀態寄存器CPU輪詢檢查(通過IN指令)狀態/控制寄存器是否已經Ready。是Ready就開始傳送下一個數據b。
程序查詢方式 例子
流程圖
主要特點:
CPU有“踏步”等待現象,CPU與I/O串行工作
優點:
缺點:
(2) 例題——程序查詢方式
在程序查詢方式的輸入/輸出系統中,假設不考慮處理時間,每一個查詢操作需要100個時鐘周期,CPU的時鐘頻率為50MHz?,F有鼠標和硬盤兩個設備,而且CPU必須每秒對鼠標進行30次查詢,硬盤以32位字長為單位傳輸數據,即每32位被CPU查詢一次,傳輸率為2×220B/s。求CPU對這兩個設備查詢所花費的時間比率,由此可得出什么結論?(課后綜合題4)
一個時鐘周期為1/50MHz = 20ns
一個查詢操作耗時100 × 20ns =
1)鼠標
每秒查詢鼠標耗時30 × =
查詢鼠標所花費的時間比率= /1s = 0.006%
對鼠標的查詢基本不影響CPU的性能
2)硬盤
每32位需要查詢一次,每秒傳送2×220B
每秒需要查詢(2×220B)/4B = 219次
查詢硬盤耗時219× = 512 × 1024 × ≈ 1.05×109 ns
查詢硬盤所花費的時間比率= (1.05×109 ns)/1s = 105%
結論: 可以發現即使CPU將全部時間都用于對硬盤的查詢也不能滿足磁盤傳輸的要求
程序查詢方式再劃分
獨占查詢:%的時間都在查詢I/O狀態,完全串行
定時查詢:在保證數據不丟失的情況下(如本題的鼠標可以每次點擊都獲取到),每隔一段時間就查詢一次I/O狀態。查詢的間隔內CPU可以執行其他程序
7.4.2 程序中斷方式
程序中斷方式示意圖
中斷的基本概念:程序中斷是指在計算機執行現行程序的過程中,出現某些急需處理的異常情況或特殊請求,CPU暫時中止現行程序,而轉去對這些異常情況或特殊請求進行處理,在處理完畢后CPU又自動返回到現行程序的斷點處,繼續執行原程序。
中斷處理過程
(1)工作流程——程序中斷方式
中斷請求中斷響應判優CPU響應中斷的條件中斷響應過程
1.關中斷:
作用:實現原子操作(即一次性做完所有步驟,保證系統中的數據相互統一)
2.中斷請求標記:
(不重要)每個中斷源向CPU發出中斷請求的時間是隨機的。為了記錄中斷事件并區分不同的中斷源,中斷系統需對每個中斷源設置中斷請求標記觸發器INTR,當其狀態為“1”時,表示中斷源有請求。這些觸發器可組成中斷請求標記寄存器,該寄存器可集中在CPU中,也可分散在各個中斷源中。
對于外中斷,CPU在每條指令執行階段結束前向接口發出中斷查詢信號,以獲取I/O的中斷請求,并判別是哪個設備發出的。
中斷請求標記寄存器
CPU響應中斷必須滿足以下3個條件:
中斷源有中斷請求。CPU允許中斷即開中斷(異常和不可屏蔽中斷不受此限制)。一條指令執行完畢,且沒有更緊迫的任務。
3.中斷判優:
目的:當多個中斷源同時提出請求時,需要通過中斷判優邏輯來確定響應哪個中斷源的請求
實現方式:
僅供理解,不必深究
僅供理解,不必深究
優先級設置:
硬件故障中斷屬于最高級,其次是軟件中斷;非屏蔽中斷優于可屏蔽中斷;DMA請求優于I/O設備傳送的中斷請求高速設備優于低速設備;(如第三條DMA就是高速設備)輸入設備優于輸出設備;實時設備優于普通設備。
4.中斷響應過程
CPU響應中斷后,經過某些操作,這些操作由硬件直接實現,稱為中斷隱指令。經過中斷隱指令即可轉去執行中斷服務程序。
中斷隱指令:
兩種方法識別中斷源:
1.硬件向量法
原理:由硬件產生向量地址,再由向量地址找到入口地址。
硬件向量法
通過排隊器輸入的信息,通過向量地址形成部件輸出一個對應的向量地址(中斷類型號)。根據向量地址去主存找到對應的中斷向量。
2.軟件向量法
找到中斷源后即可執行中斷服務程序
中斷服務程序:
保護現場:保存通用寄存器和狀態寄存器的內容(eg:保存ACC寄存器的值) ,以便返回原程序后可以恢復CPU環境??墒褂枚褩?,也可以使用特定存儲單元。中斷服務(設備服務):主體部分,如通過程序控制需打印的字符代碼送入打印機的緩沖存儲器中(eg:中斷服務的過程中有可能修改ACC寄存器的值)恢復現場:通過出棧指令或取數指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢復原樣)中斷返回:通過中斷返回指令回到原程序斷點處。
單重中斷過程
(2)多重中斷和中斷屏蔽技術
兩種中斷的處理流程,主要區別在屏蔽字、開關中斷
中斷屏蔽技術主要用于多重中斷,CPU要具備多重中斷的功能,須滿足下列條件。
每個中斷源都有一個屏蔽觸發器,1表示屏蔽該中斷源的請求,0表示可以正常申請,所有屏蔽觸發器組合在一起,便構成一個屏蔽字寄存器,屏蔽字寄存器的內容稱為屏蔽字。
屏蔽字設置的規律:
一般用‘1’表示屏蔽,’0’表示正常申請。每個中斷源對應一個屏蔽字(在處理該中斷源的中斷服務程序時,屏蔽寄存器中的內容為該中斷源對應的屏蔽字)。屏蔽字中‘1’越多,優先級越高。每個屏蔽字中至少有一個’1’(至少要能屏蔽自身的中斷)。
例題——多重中斷和中斷屏蔽技術
設某機有4個中斷源A、B、C、D,其硬件排隊優先次序為A>B>C>D,現要求將中斷處理次序改為D>A>C>B。
1)寫出每個中斷源對應的屏蔽字。
2)按下圖所示的時間軸給出的4個中斷源的請求時刻,畫出CPU執行程序的軌跡。設每個中斷源的中斷服務程序時間均為20us。
例題答案
7.4.3 DMA方式
DMA方式存在意義:對于程序中斷方式來說,每一次I/O設備準備好一個字的數據,CPU就需要運行中斷服務程序把這個字的數據轉存到主存中。對于速度很快的I/O設備來說,采用程序中斷方式會使CPU執行中斷服務的時間開銷特別大,效率低。為解決這個問題就提出DMA方式。
(1)DMA控制器
CPU向DMA控制器指明要輸入還是輸出;要傳送多少個數據;數據在主存、外設中的地址。
主存和 DMA接口之間有一條直接數據通路。由于DMA方式傳送數據不需要經過CPU,因此不必中斷現行程序,I/O與主機并行工作,程序和傳送并行工作。DMA控制器的主要功能有
1.DMA控制器的組成
各個部件的組成及其功能
(2)DMA傳送過程
1)預處理
CPU指明各個寄存器的值
2)數據傳送
CPU繼續執行主程序。設備把數據放入數據緩沖寄存器,同時向DMA請求觸發器發出高電平信號,DMA請求觸發器變為1,控制/狀態邏輯檢測到一個字的傳送完成后,向CPU發送申請總線控制權(信號名字HRQ不重要)。如果系統總線可以給DMA使用,CPU傳送反饋信號(HLDA)。
DMA獲得總線控制權后,可以通過總線(控制/數據/地址)發出讀/寫命令??刂?狀態邏輯發出寫命令給控制線,同時把數據緩沖寄存器的數據信息打到數據線上,主存地址計數器的地址信息打到地址線上。
數據傳輸結束后,讓主存地址后移,修改傳送長度計數器。傳輸完多個字的數據后,傳送長度計數器后發生溢出并發出溢出信號給中斷機構。中斷機構檢測到中斷信號后向CPU發出中斷請求。
3)后處理
數據傳送完后,CPU運行中斷服務程序,做DMA結束處理。
注:DMA請求:意味著DMA要給主存傳送一個字的數據。
DMA中斷請求:意味著一整塊的數據傳輸已經完成。
DMA傳送流程
(3)DMA的傳送方式
主存和DMA控制器之間有一條數據通路,因此主存和I/O設備之間交換信息時,不通過CPU。但當I/O設備和CPU同時訪問主存時,可能發生沖突,為了有效地使用主存,DMA控制器與CPU通常采用以下3種方法使用主存。
停止CPU訪問主存
停止CPU訪問主存
優點:控制簡單
缺點:但CPU 處于不工作狀態或保持狀態,未充分發揮CPU 對主存的利用率
2.DMA與CPU交替訪存
DMA與CPU交替訪存
優點:不需要總線使用權的申請、建立和歸還過程
缺點:但硬件邏輯更為復雜
3.周期挪用(周期竊取)
周期挪用
DMA 訪問主存有三種可能:
CPU 此時不訪存(不沖突 ,DMA直接訪存)CPU 正在訪存(存取周期結束讓出總線) CPU 與DMA 同時請求訪存(I/O訪存優先)
I/O訪存優先原因:如果不及時把DMA的數據緩沖寄存器的數據及時寫到主存里,外部設備繼續往里面充入數據可能導致數據丟失。
(4)DMA方式的特點
主存和DMA接口之間有一條直接數據通路。由于DMA方式傳送數據不需要經過CPU,因此不必中斷現行程序,I/O與主機并行工作,程序和傳送并行工作。
DMA方式具有下列特點:
它使主存與CPU的固定聯系脫鉤,主存既可被CPU訪問,又可被外設訪問。在數據塊傳送時,主存地址的確定、傳送數據的計數等都由硬件電路直接實現。主存中要開辟專用緩沖區,及時供給和接收外設的數據。DMA傳送速度快,CPU和外設并行工作,提高了系統效率。DMA在傳送開始前要通過程序進行預處理,結束后要通過中斷方式進行后處理。
(5)DMA方式和中斷方式的對比
DMA方式和中斷方式的對比