7.1 I/O系統(tǒng)基本概念
I/O系統(tǒng)由I/O軟件和I/O硬件兩部分構(gòu)成。
I/O硬件包括外部設(shè)備、I/O接口、I/O總線等。
I/O設(shè)備就是可以將數(shù)據(jù)輸入到計算機,或者可以接收計算機輸出數(shù)據(jù)的外部設(shè)備
I/O接口:又稱I/O控制器(I/O Controller)、設(shè)備控制器,負責協(xié)調(diào)主機與外部設(shè)備之間的數(shù)據(jù)傳輸

I/O基本控制方式有(具體見7.4)
- 程序查詢方式:CPU不斷輪詢檢查I/O控制器中的“狀態(tài)寄存器”,檢測到狀態(tài)為“已完成”之后,再從數(shù)據(jù)寄存器取出輸入數(shù)據(jù)
- 程序中斷方式:等待鍵盤I/O時CPU可以先去執(zhí)行其他程序,鍵盤I/O完成后I/O控制器向CPU發(fā)出中斷請求,CPU響應(yīng)中斷請求,并取走輸入數(shù)據(jù)
- DMA控制方式:主存與高速I/O設(shè)備之間有一條直接數(shù)據(jù)通路(DMA總線)。CPU向DMA接口發(fā)出“讀/寫”命令,并指明主存地址、磁盤地址、讀寫數(shù)據(jù)量等參數(shù)。DMA控制器自動控制磁盤與主存的數(shù)據(jù)讀寫,每完成一整塊數(shù)據(jù)讀寫(如1KB為一整塊),才向CPU發(fā)出一次中斷請求。
- 通道可以識別并執(zhí)行一系列通道指令,通道指令種類、功能通常比較單一
- CPU向通道發(fā)出I/O指令。指明通道程序在內(nèi)存中的位置,并指明要操作的是哪個I/O設(shè)備。CPU就可以去做其他事情
- 通道執(zhí)行內(nèi)存中的通道程序,控制I/O設(shè)備完成一系列任務(wù)
- 通道執(zhí)行完規(guī)定的任務(wù)后,向CPU發(fā)出中斷請求,之后CPU對中斷進行處理
I/O 軟件包括驅(qū)動程序、用戶程序、管理程序、升級補丁等。通常采用I/O指令和通道指令實現(xiàn)主機和I/O設(shè)備的信息交換。
- I/O 指令是CPU 指令的一部分

- 通道指令是通道能識別的指令,通道程序提前編制好放在主存中。在含有通道的計算機中,CPU執(zhí)行I/O指令對通道發(fā)出命令,由通道執(zhí)行一系列通道指令,代替CPU對I/O設(shè)備進行管理
7.2 外部設(shè)備
外部設(shè)備也稱外圍設(shè)備,是除了主機以外的、能直接或間接與計算機交換信息的裝置。
7.2.1 輸入設(shè)備
輸入設(shè)備用于向計算機系統(tǒng)輸入命令和文本、數(shù)據(jù)等信息的部件。鍵盤和鼠標是最基本的輸入設(shè)備。
7.2.1.1 鍵盤
鍵盤是最常用的輸入設(shè)備,通過它可發(fā)出命令或輸入數(shù)據(jù)。每個鍵相當于一個開關(guān),當按下鍵時,電信號連通;當松開鍵時,彈簧把鍵彈起,電信號斷開。
鍵盤輸入信息可分為3個步驟:
- 查出按下的是哪個鍵;
- 將該鍵翻譯成能被主機接收的編碼,如ASCII碼;
- 將編碼傳送給主機。
7.2.1.2 鼠標
鼠標是常用的定位輸入設(shè)備,它把用戶的操作與計算機屏幕上的位置信息相聯(lián)系。常用的鼠標有機械式和光電式兩種。
工作原理:當鼠標在平面上移動時,其底部傳感器把運動的方向和距離檢測出來,從而控制光標做相應(yīng)運動。
7.2.2 輸入設(shè)備
7.2.2.1 顯示器
顯示器有以下主要參數(shù)
- 屏幕大小:以對角線長度表示,常用的有12~29英寸等。
- 分辨率:所能表示的像素個數(shù),屏幕上的每一個光點就是一個像素,以寬、高的像素的乘積表示,例如,800×600、1024×768和1280×1024等。
- 灰度級:灰度級是指黑白顯示器中所顯示的像素點的亮暗差別,在彩色顯示器中則表現(xiàn)為顏色的不同,灰度級越多,圖像層次越清楚逼真,典型的有8位(256級)、16位等。n位可以表示????種不同的亮度或顏色。
- 刷新:光點只能保持極短的時間便會消失,為此必須在光點消失之前再重新掃描顯示一遍,這個過程稱為刷新。
- 刷新頻率:單位時間內(nèi)掃描整個屏幕內(nèi)容的次數(shù),按照人的視覺生理,刷新頻率大于30Hz時才不會感到閃爍,通常顯示器刷新頻率在60~120Hz。
顯示存儲器(VRAM)也稱刷新存儲器,為了不斷提高刷新圖像的信號,必須把一幀圖像信息存儲在刷新存儲器中。其存儲容量由圖像分辨率和灰度級決定,分辨率越高,灰度級越多,刷新存儲器容量越大。
- 陰極射線管(CRT)顯示器
CRT顯示器主要由電子槍、偏轉(zhuǎn)線圈、蔭罩、高壓石墨電極和熒光粉涂層及玻璃外殼5部分組成。具有可視角度大、無壞點、色彩還原度高、色度均勻、可調(diào)節(jié)的多分辨率模式、響應(yīng)時間極短等特點,按顯示信息內(nèi)容不同可分為
- 字符顯示器。顯示字符的方法以點陣為基礎(chǔ)。點陣是指由m×n個點組成的陣列。點陣的多少取決于顯示字符的質(zhì)量和字符窗口的大小。字符窗口是指每個字符在屏幕上所占的點數(shù),它包括字符顯示點陣和字符間隔。將點陣存入由ROM構(gòu)成的字符發(fā)生器中,在CRT進行光柵掃描的過程中,從字符發(fā)生器中依次讀出某個字符的點陣,按照點陣中0和1代碼不同控制掃描電子束的開或關(guān),從而在屏幕上顯示出字符。對應(yīng)于每個字符窗口,所需顯示字符的ASCII代碼被存放在視頻存儲器VRAM中,以備刷新。
- 圖形顯示器。將所顯示圖形的一組坐標點和繪圖命令組成顯示文件存放在緩沖存儲器中,緩存中的顯示文件傳送給矢量(線段)產(chǎn)生器,產(chǎn)生相應(yīng)的模擬電壓,直接控制電子束在屏幕上的移動。為了在屏幕上保留持久穩(wěn)定的圖像,需要按一定的頻率對屏幕進行反復(fù)刷新。這種顯示器的優(yōu)點是分辨率高且顯示的曲線平滑。目前高質(zhì)量的圖形顯示器采用這種隨機掃描方式。缺點是當顯示復(fù)雜圖形時,會有閃爍感。
- 圖像顯示器
圖形顯示器主要顯示矢量圖形,比較規(guī)則,而圖像顯示器可以顯示豐富多彩的圖像信息
- 液晶顯示器(LCD)
利用液晶的電光效應(yīng),由圖像信號電壓直接控制薄膜晶體管,再間接控制液晶分子的光學(xué)特性來實現(xiàn)圖像的顯示。具有體積小、重量輕、省電、無輻射、綠色環(huán)保、畫面柔、不傷眼等特點。
- LED(發(fā)光二極管)顯示器
原理:通過控制半導(dǎo)體發(fā)光二極管進行顯示,用來顯示文字、圖形、圖像等各種信息。與LCD相比,LED顯示器在亮度、功耗、可視角度和刷新速率等方面都更具優(yōu)勢。
7.2.2.2 打印機(了解即可)
打印機是計算機的輸出設(shè)備之一,用于將計算機處理結(jié)果打印在相關(guān)介質(zhì)上。
按印字原理不同可分為
- 擊打式打印機:利用機械動作使印字機構(gòu)與色帶和紙相撞而打印字符,優(yōu)點:設(shè)備成本低,印字質(zhì)量好;缺點:噪聲大,速度慢
- 非擊打式打印機:采用電、磁、光、噴墨等物理、化學(xué)方法來印刷字符,優(yōu)點:速度快,噪聲?。蝗秉c:成本高
按打印機工作方式不同可分為
- 串行打印機:逐字打印,速度慢
- 行式打印機:逐行打印,速度快
按工作方式可分為
- 針式打印機:在聯(lián)機狀態(tài)下,主機發(fā)出打印命令,經(jīng)接口、檢測和控制電路,間歇驅(qū)動縱向送紙和打印頭橫向移動,同時驅(qū)動打印機間歇沖擊色帶,在紙上打印出所需內(nèi)容。它工作原理簡單,造價低廉,耗材(色帶)便宜,但打印分辨率和打印速度不夠高。
- 噴墨式打印機:帶電的噴墨霧點經(jīng)過電極偏轉(zhuǎn)后,直接在紙上形成所需字形。彩色噴墨打印機基于三基色原理,即分別噴射3種顏色墨滴,按一定的比例混合出所要求的顏色。打印噪聲小,可實現(xiàn)高質(zhì)量彩色打印,通常打印速度比針式打印機快;但防水性差,高質(zhì)量打印需要專用打印紙。
- 激光打印機:計算機輸出的二進制信息,經(jīng)過調(diào)制后的激光束掃描,在感光鼓上形成潛像,再經(jīng)過顯影、轉(zhuǎn)印和定影,便在紙上得到所需的字符或圖像。打印質(zhì)量高、速度快、噪聲小、處理能力強;但耗材多、價格較貴、不能復(fù)寫打印多份,且對
紙張的要求高。
7.2.3 外存儲器
所謂“磁表面存儲”,是指把某些磁性材料薄薄地涂在金屬鋁或塑料表面上作為載磁體來存儲信息。磁盤存儲器、磁帶存儲器和磁鼓存儲器均屬于磁表面存儲器。
磁表面存儲器的優(yōu)點:
- 存儲容量大,位價格低;
- 記錄介質(zhì)可以重復(fù)使用;
- 記錄信息可以長期保存而不丟失,甚至可以脫機存檔;
- 非破壞性讀出,讀出時不需要再生。
磁表面存儲器的缺點:
- 存取速度慢;
- 機械結(jié)構(gòu)復(fù)雜;
- 對工作環(huán)境要求較高。
7.2.3.1 磁盤存儲器
7.2.3.1.1 磁盤設(shè)備的組成
一塊硬盤含有若干個記錄面,每個記錄面劃分為若干條磁道,而每條磁道又劃分為若干個扇區(qū),扇區(qū)(也稱塊)是磁盤讀寫的最小單位,也就是說磁盤按塊存取。
- 磁頭數(shù)(Heads)即記錄面數(shù),表示硬盤總共有多少個磁頭,磁頭用于讀取/寫入盤片上記錄面的信息,一個記錄面對應(yīng)一個磁頭。
- 柱面數(shù)(Cylinders)表示硬盤每一面盤片上有多少條磁道。在一個盤組中,不同記錄面的相同編號(位置)的諸磁道構(gòu)成一個圓柱面。
- 扇區(qū)數(shù)(Sectors)表示每一條磁道上有多少個扇區(qū)。

硬盤存儲器由磁盤驅(qū)動器、磁盤控制器和盤片組成。
- 磁盤驅(qū)動器:核心部件是磁頭組件和盤片組件,溫徹斯特盤是一種可移動頭固定盤片的硬盤存儲器。
- 磁盤控制器:是硬盤存儲器和主機的接口,主流的標準有IDE、SCSI、SATA等。

7.2.3.1.2 磁盤的性能指標
- 磁盤的容量: 一個磁盤所能存儲的字節(jié)總數(shù)稱為磁盤容量。磁盤容量有非格式化容量和格式化容量之分。
非格式化容量是指磁記錄表面可以利用的磁化單元總數(shù)。
格式化容量是指按照某種特定的記錄格式所能存儲信息的總量。
- 記錄密度:記錄密度是指盤片單位面積上記錄的二進制的信息量,通常以道密度、位密度和面密度表示。
道密度是沿磁盤半徑方向單位長度上的磁道數(shù);
位密度是磁道單位長度上能記錄的二進制代碼位數(shù);
面密度是位密度和道密度的乘積。

- 平均存取時間

- 數(shù)據(jù)傳輸率:磁盤存儲器在單位時間內(nèi)向主機傳送數(shù)據(jù)的字節(jié)數(shù),稱為數(shù)據(jù)傳輸率。假設(shè)磁盤轉(zhuǎn)數(shù)為r(轉(zhuǎn)/秒),每條磁道容量為N個字節(jié),則數(shù)據(jù)傳輸率
7.2.3.1.3 磁盤地址
主機向磁盤控制器發(fā)送尋址信息,磁盤的地址一般如圖所示:

若系統(tǒng)中有4個驅(qū)動器,每個驅(qū)動器帶一個磁盤,每個磁盤256個磁道、16個盤面,每個盤面劃分為16個扇區(qū),則每個扇區(qū)地址要18位二進制代碼;
7.2.3.1.4 硬盤的工作過程
硬盤的主要操作是尋址、讀盤、寫盤。每個操作都對應(yīng)一個控制字,硬盤工作時,第一步是取控制字,第二步是執(zhí)行控制字。
硬盤屬于機械式部件,其讀寫操作是串行的,不可能在同一時刻既讀又寫,也不可能在同一時刻讀兩組數(shù)據(jù)或?qū)憙山M數(shù)據(jù)
7.2.3.2 磁盤陣列
RAID(Redundant Array of Inexpensive Disks,廉價冗余磁盤陣列)是將多個獨立的物理磁盤組成一個獨立的邏輯盤,數(shù)據(jù)在多個物理盤上分割交叉存儲、并行訪問,具有更好的存儲性能、可靠性和安全性。
RAID的分級如下所示。在RAID1~RAID5的幾種方案中,無論何時有磁盤損壞,都可以隨時拔出受損的磁盤再插入好的磁盤,而數(shù)據(jù)不會損壞。
- RAID0:無冗余和無校驗的磁盤陣列。
- RAID1:鏡像磁盤陣列。
- RAID2:采用糾錯的海明碼的磁盤陣列。
- RAID3:位交叉奇偶校驗的磁盤陣列。
- RAID4:塊交叉奇偶校驗的磁盤陣列。
- RAID5:無獨立校驗的奇偶校驗磁盤陣列。
RAID通過同時使用多個磁盤,提高了傳輸率;通過在多個磁盤上并行存取來大幅提高存儲系統(tǒng)的數(shù)據(jù)吞吐量;通過鏡像功能,可以提高安全可靠性;通過數(shù)據(jù)校驗,可以提供容錯能力。
7.3 I/O接口
I/O接口:又稱I/O控制器(I/O Controller)、設(shè)備控制器,負責協(xié)調(diào)主機與外部設(shè)備之間的數(shù)據(jù)傳輸
7.3.1 I/O接口的功能
- 數(shù)據(jù)緩沖:通過數(shù)據(jù)緩沖寄存器(DBR)達到主機和外設(shè)工作速度的匹配
- 錯誤或狀態(tài)監(jiān)測:通過狀態(tài)寄存器反饋設(shè)備的各種錯誤、狀態(tài)信息,供CPU查用
- 控制和定時:接收從控制總線發(fā)來的控制信號、時鐘信號
- 數(shù)據(jù)格式轉(zhuǎn)換:串-并、并-串等格式轉(zhuǎn)換
- 與主機和設(shè)備通信:實現(xiàn)主機—I/O接口—I/O設(shè)備之間的通信
7.3.2 I/O接口的基本結(jié)構(gòu)

外部接口:外部接口通過接口電纜與外設(shè)相連,外部接口的數(shù)據(jù)傳輸可能是串行方式,因此I/O接口需具有串/并轉(zhuǎn)換功能。
內(nèi)部接口:內(nèi)部接口與系統(tǒng)總線相連,實質(zhì)上是與內(nèi)存、CPU相連。
工作原理:
- 發(fā)命令:發(fā)送命令字到I/O控制寄存器,向設(shè)備發(fā)送命令(需要驅(qū)動程序的協(xié)助)
- 讀狀態(tài):從狀態(tài)寄存器讀取狀態(tài)字,獲得設(shè)備或I/O控制器的狀態(tài)信息
- 讀/寫數(shù)據(jù):從數(shù)據(jù)緩沖寄存器發(fā)送或讀取數(shù)據(jù),完成主機與外設(shè)的數(shù)據(jù)交換
控制寄存器、狀態(tài)寄存器在使用時間上是錯開的,因此有的I/O接口中可將二者合二為一
7.3.4 I/O端口及其編址
I/O端口是指接口電路中可以被CPU直接訪問的寄存器。I/O端口要想能夠被CPU訪問,必須要有端口地址,每一個端口都對應(yīng)著一個端口地址。對I/O端口的編址分為統(tǒng)一編址和獨立編址兩種
- 統(tǒng)一編址
把I/O端口當做存儲器的單元進行地址分配,用統(tǒng)一的訪存指令就可以訪問I/O端口,又稱存儲器映射方式。靠不同的地址碼區(qū)分內(nèi)存和I/O設(shè)備,I/O地址要求相對固定在地址的某部分。
優(yōu)點:
- 不需要專門的輸入/輸出指令,所有訪存指令都可直接訪問端口,程序設(shè)計靈活性高
- 端口有較大的編址空間
- 讀寫控制邏輯電路簡單
缺點:
- 端口占用了主存地址空間,使主存地址空間變小
- 外設(shè)尋址時間長(地址位數(shù)多,地址譯碼速度慢)
- 獨立編址
I/O端口地址與存儲器地址無關(guān),獨立編址CPU需要設(shè)置專門的輸入/輸出指令訪問端口,又稱I/O映射方式。靠不同的指令區(qū)分內(nèi)存和I/O設(shè)備。
優(yōu)點:
- 使用專用I/O指令,程序編制清晰
- I/O端口地址位數(shù)少,地址譯碼速度快
- I/O端口的地址不占用主存地址空間
缺點:
- I/O指令類型少,一般只能對端口進行傳送操作,程序設(shè)計靈活性差
- 需要CPU提供存儲器讀/寫、I/O設(shè)備讀/寫兩組控制信號,增加了控制邏輯電路的復(fù)雜性

7.4 I/O方式
7.4.1 程序查詢方式
- CPU執(zhí)行初始化程序,并預(yù)置傳送參數(shù):設(shè)置計數(shù)器、設(shè)置數(shù)據(jù)首地址
- 向I/O接口發(fā)送命令字,啟動I/O設(shè)備
- CPU從接口讀取設(shè)備狀態(tài)信息
- CPU不斷查詢I/O設(shè)備狀態(tài),直到外設(shè)準備就緒
- 傳送一次數(shù)據(jù)、一般為一個字
- 修改地址和計數(shù)器參數(shù)
- 判斷傳送是否結(jié)束(一般計數(shù)器為0時結(jié)束),否則轉(zhuǎn)到3
在程序查詢方式的輸入/輸出系統(tǒng)中,假設(shè)不考慮處理時間,每一個查詢操作需要100個時鐘周期,CPU的時鐘頻率為50MHz?,F(xiàn)有鼠標和硬盤兩個設(shè)備,而且CPU必須每秒對鼠標進行30次查詢,硬盤以32位字長為單位傳輸數(shù)據(jù),即每32位被CPU查詢一次,傳輸率為2×220B/s。求CPU對這兩個設(shè)備查詢所花費的時間比率,由此可得出什么結(jié)論?(課后綜合題4)
一個時鐘周期為1/50MHz = 20ns
一個查詢操作耗時100 × 20ns = 2000ns1)鼠標
每秒查詢鼠標耗時30 × 2000ns = 60000ns
查詢鼠標所花費的時間比率= 60000ns/1s = 0.006%對鼠標的查詢基本不影響CPU的性能
2)硬盤
每32位需要查詢一次,每秒傳送2×220B
每秒需要查詢(2×220B)/4B = 219次
查詢硬盤耗時219× 2000ns = 512 × 1024 × 2000ns≈ 1.05×109 ns
查詢硬盤所花費的時間比率= (1.05×109 ns)/1s = 105%CPU將全部時間都用于對硬盤的查詢也不能滿足磁盤傳輸?shù)囊?/p>
7.4.2 程序中斷方式
7.4.2.1 中斷的基本概念
程序中斷是指在計算機執(zhí)行現(xiàn)行程序的過程中,出現(xiàn)某些急需處理的異常情況或特殊請求,CPU暫時中止現(xiàn)行程序,而轉(zhuǎn)去對這些異常情況或特殊請求進行處理,在處理完畢后CPU又自動返回到現(xiàn)行程序的斷點處,繼續(xù)執(zhí)行原程序。

7.4.2.2 關(guān)中斷
關(guān)中斷的作用:實現(xiàn)原子操作
- 非屏蔽中斷:關(guān)中斷時也會被響應(yīng)(如:掉電)
- 可屏蔽中斷:關(guān)中斷時不會被響應(yīng)
IF=1表示開中斷(允許中斷)
IF=0表示關(guān)中斷(不允許中斷)

7.4.2.3 中斷請求標記
每個中斷源向CPU發(fā)出中斷請求的時間是隨機的。為了記錄中斷事件并區(qū)分不同的中斷源,中斷系統(tǒng)需對每個中斷源設(shè)置中斷請求標記觸發(fā)器INTR,當其狀態(tài)為“1”時,表示中斷源有請求。這些觸發(fā)器可組成中斷請求標記寄存器,該寄存器可集中在CPU中,也可分散在各個中斷源中。

對于外中斷,CPU是在統(tǒng)一的時刻即每條指令執(zhí)行階段結(jié)束前向接口發(fā)出中斷查詢信號,以獲取I/O的中斷請求,也就是說,CPU響應(yīng)中斷的時間是在每條指令執(zhí)行階段的結(jié)束時刻。
7.4.2.4 中斷判優(yōu)
中斷判優(yōu)既可以用硬件實現(xiàn),也可用軟件實現(xiàn):硬件實現(xiàn)是通過硬件排隊器實現(xiàn)的,它既可以設(shè)置在CPU中,也可以分散在各個中斷源中;軟件實現(xiàn)是通過查詢程序?qū)崿F(xiàn)的。
優(yōu)先級
- 硬件故障中斷屬于最高級,其次是軟件中斷;
- 非屏蔽中斷優(yōu)于可屏蔽中斷;
- DMA請求優(yōu)于I/O設(shè)備傳送的中斷請求
- 高速設(shè)備優(yōu)于低速設(shè)備;
- 輸入設(shè)備優(yōu)于輸出設(shè)備;
- 實時設(shè)備優(yōu)于普通設(shè)備。
7.4.2.5 中斷處理過程
中斷隱指令的主要任務(wù):
- 關(guān)中斷:在中斷服務(wù)程序中,為了保護中斷現(xiàn)場(即CPU主要寄存器中的內(nèi)容)期間不被新的中斷所打斷,必須關(guān)中斷,從而保證被中斷的程序在中斷服務(wù)程序執(zhí)行完畢之后能接著正確地執(zhí)行下去。
- 保存斷點:為了保證在中斷服務(wù)程序執(zhí)行完畢后能正確地返回到原來的程序,必須將原來程序的斷點(即程序計數(shù)器(PC)的內(nèi)容)保存起來??梢源嫒攵褩?,也可以存入指定單元。
- 引出中斷服務(wù)程序:引出中斷服務(wù)程序的實質(zhì)就是取出中斷服務(wù)程序的入口地址并傳送給程序計數(shù)器(PC)。

中斷服務(wù)程序的主要任務(wù):
- 保護現(xiàn)場:保存通用寄存器和狀態(tài)寄存器的內(nèi)容[1] ,以便返回原程序后可以恢復(fù)CPU環(huán)境??墒褂枚褩?,也可以使用特定存儲單元。
- 中斷服務(wù)(設(shè)備服務(wù)):主體部分,如通過程序控制需打印的字符代碼送入打印機的緩沖存儲器中(eg:中斷服務(wù)的過程中有可能修改ACC寄存器的值)
- 恢復(fù)現(xiàn)場:通過出棧指令或取數(shù)指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢復(fù)原樣)
- 中斷返回:通過中斷返回指令回到原程序斷點處。
7.4.2.6 多重中斷

7.4.2.7 中斷屏蔽技術(shù)
中斷屏蔽技術(shù)主要用于多重中斷,CPU要具備多重中斷的功能,須滿足下列條件。
在中斷服務(wù)程序中提前設(shè)置開中斷指令。
優(yōu)先級別高的中斷源有權(quán)中斷優(yōu)先級別低的中斷源。
每個中斷源都有一個屏蔽觸發(fā)器,1表示屏蔽該中斷源的請求,0表示可以正常申請,所有屏蔽觸發(fā)器組合在一起,便構(gòu)成一個屏蔽字寄存器,屏蔽字寄存器的內(nèi)容稱為屏蔽字。
屏蔽字設(shè)置的規(guī)律:
- 一般用‘1’表示屏蔽,’0’表示正常申請。
- 每個中斷源對應(yīng)一個屏蔽字(在處理該中斷源的中斷服務(wù)程序時,屏蔽寄存器中的內(nèi)容為該中斷源對應(yīng)的屏蔽字)。
- 屏蔽字中‘1’越多,優(yōu)先級越高。每個屏蔽字中至少有一個’1’(至少要能屏蔽自身的中斷)。
例7.1 設(shè)某機有4個中斷源A、B、C、D,其硬件排隊優(yōu)先次序為A>B>C>D,現(xiàn)要求將中斷處理次序改為D>A>C>B。
1)寫出每個中斷源對應(yīng)的屏蔽字。
2)按下圖所示的時間軸給出的4個中斷源的請求時刻,畫出CPU執(zhí)行程序的軌跡。設(shè)每個中斷源的中斷服務(wù)程序時間均為20us。例7.1答案.png
7.4.2.8 程序中斷方式

【2016年真題】假定CPU主頻為50MHz,CPI為4。設(shè)備D采用異步串行通信方式向主機傳送7位ASCII字符,通信規(guī)程中有1位奇校驗位和1位停止位,從D接收啟動命令到字符送入I/O端口需要0.5ms。請回答下列問題,要求說明理由。
1)每傳送一個字符,在異步串行通信線上共需傳輸多少位?在設(shè)備D持續(xù)工作過程中,每秒鐘最多可向I/O端口送入多少個字符?
2)設(shè)備D采用中斷方式進行輸入/輸出,示意圖如下:題圖.pngI/O端口每收到一個字符申請一次中斷,中斷響應(yīng)需10個時鐘周期,中斷服務(wù)程序共有20條指令,其中第15條指令啟動D工作。若CPU需從D讀取1000個字符,則完成這一任務(wù)所需時間大約是多少個時鐘周期?CPU用于完成這一任務(wù)的時間大約是多少個時鐘周期?在中斷響應(yīng)階段CPU進行了哪些操作?
1)每傳送一個字符需要傳送1位起始位、7位數(shù)據(jù)位、1位校驗位、1位停止位,共需傳送10位。
每秒可送入1s/0.5ms = 2000 個字符2)主頻50MHz,時鐘周期為1/50MHz = 20ns
0.5ms對應(yīng)時鐘周期數(shù)為0.5ms/20ns = 25000
傳送1個字符需要的時鐘周期數(shù)為25000 + 10 + 15×4 = 25070
傳送1000個字符需要的時鐘周期數(shù)為25070×1000 = 25070000個時鐘周期CPU用于該任務(wù)的時間大約為1000×(10+20×4)= 9×104 個時鐘周期
中斷響應(yīng)階段CPU進行的操作(中斷隱指令)
①關(guān)中斷
②保存斷點(PC)
③引出中斷服務(wù)程序
7.4.3 DMA方式
CPU向DMA控制器指明要輸入還是輸出;要傳送多少個數(shù)據(jù);數(shù)據(jù)在主存、外設(shè)中的地址。
7.4.3.1 DMA控制器的主要功能
主存和 DMA接口之間有一條直接數(shù)據(jù)通路。由于DMA方式傳送數(shù)據(jù)不需要經(jīng)過CPU,因此不必中斷現(xiàn)行程序,I/O與主機并行工作,程序和傳送并行工作。DMA控制器的主要功能有
- 接受外設(shè)發(fā)出的DMA請求(外設(shè)傳送一個字的請求),并向CPU發(fā)出總線請求。
- CPU響應(yīng)此總線請求,發(fā)出總線響應(yīng)信號,接管總線控制權(quán),進入DMA操作周期。
- 確定傳送數(shù)據(jù)的主存單元地址及長度,并能自動修改主存地址計數(shù)和傳送長度計數(shù)。
- 規(guī)定數(shù)據(jù)在主存和外設(shè)間的傳送方向,發(fā)出讀寫等控制信號,執(zhí)行數(shù)據(jù)傳送操作。
- 向CPU報告DMA操作的結(jié)束。
7.4.3.2 DMA控制器的組成

- 主存地址計數(shù)器:簡稱AR,存放要交換數(shù)據(jù)的主存地址。
- 傳送長度計數(shù)器:簡稱WC,用來記錄傳送數(shù)據(jù)的長度,計數(shù)溢出時,數(shù)據(jù)即傳送完畢,自動發(fā)中斷請求信號。
- 數(shù)據(jù)緩沖寄存器:用于暫存每次傳送的數(shù)據(jù)。
- DMA請求觸發(fā)器:每當I/O設(shè)備準備好數(shù)據(jù)后給出一個控制信號,使DMA請求觸發(fā)器置位。
- “控制/狀態(tài)”邏輯:由控制和時序電路及狀態(tài)標志組成,用于指定傳送方向,修改傳送參數(shù),并對DMA請求信號和CPU響應(yīng)信號進行協(xié)調(diào)和同步。
- 中斷機構(gòu):當一個數(shù)據(jù)塊傳送完畢后觸發(fā)中斷機構(gòu),向CPU提出中斷請求。
7.4.3.3 DMA的傳送過程


7.4.3.4 DMA傳送方式
主存和DMA控制器之間有一條數(shù)據(jù)通路,因此主存和I/O設(shè)備之間交換信息時,不通過CPU。但當I/O設(shè)備和CPU同時訪問主存時,可能發(fā)生沖突,為了有效地使用主存,DMA控制器與CPU通常采用以下3種方法使用主存。
- 停止CPU訪問主存

控制簡單,但CPU 處于不工作狀態(tài)或保持狀態(tài),未充分發(fā)揮CPU 對主存的利用率
- DMA與CPU交替訪存

不需要總線使用權(quán)的申請、建立和歸還過程,但硬件邏輯更為復(fù)雜
- 周期挪用(周期竊取)

DMA 訪問主存有三種可能:
- CPU 此時不訪存(不沖突)
- CPU 正在訪存(存取周期結(jié)束讓出總線)
- CPU 與DMA 同時請求訪存(I/O訪存優(yōu)先)
7.4.3.5 DMA方式的特點
主存和DMA接口之間有一條直接數(shù)據(jù)通路。由于DMA方式傳送數(shù)據(jù)不需要經(jīng)過CPU,因此不必中斷現(xiàn)行程序,I/O與主機并行工作,程序和傳送并行工作。
DMA方式具有下列特點:
- 它使主存與CPU的固定聯(lián)系脫鉤,主存既可被CPU訪問,又可被外設(shè)訪問。
- 在數(shù)據(jù)塊傳送時,主存地址的確定、傳送數(shù)據(jù)的計數(shù)等都由硬件電路直接實現(xiàn)。
- 主存中要開辟專用緩沖區(qū),及時供給和接收外設(shè)的數(shù)據(jù)。
- DMA傳送速度快,CPU和外設(shè)并行工作,提高了系統(tǒng)效率。
- DMA在傳送開始前要通過程序進行預(yù)處理,結(jié)束后要通過中斷方式進行后處理。
7.4.3.6 DMA方式和中斷方式的對比

-
eg:保存ACC寄存器的值 ?

