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ù)輸入到計(jì)算機(jī),或者可以接收計(jì)算機(jī)輸出數(shù)據(jù)的外部設(shè)備
I/O接口:又稱I/O控制器(I/O Controller)、設(shè)備控制器,負(fù)責(zé)協(xié)調(diào)主機(jī)與外部設(shè)備之間的數(shù)據(jù)傳輸
I/O基本控制方式有(具體見(jiàn)7.4)
- 程序查詢方式:CPU不斷輪詢檢查I/O控制器中的“狀態(tài)寄存器”,檢測(cè)到狀態(tài)為“已完成”之后,再?gòu)臄?shù)據(jù)寄存器取出輸入數(shù)據(jù)
- 程序中斷方式:等待鍵盤(pán)I/O時(shí)CPU可以先去執(zhí)行其他程序,鍵盤(pán)I/O完成后I/O控制器向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)中斷請(qǐng)求,并取走輸入數(shù)據(jù)
- DMA控制方式:主存與高速I(mǎi)/O設(shè)備之間有一條直接數(shù)據(jù)通路(DMA總線)。CPU向DMA接口發(fā)出“讀/寫(xiě)”命令,并指明主存地址、磁盤(pán)地址、讀寫(xiě)數(shù)據(jù)量等參數(shù)。DMA控制器自動(dòng)控制磁盤(pán)與主存的數(shù)據(jù)讀寫(xiě),每完成一整塊數(shù)據(jù)讀寫(xiě)(如1KB為一整塊),才向CPU發(fā)出一次中斷請(qǐng)求。
- 通道可以識(shí)別并執(zhí)行一系列通道指令,通道指令種類、功能通常比較單一
- CPU向通道發(fā)出I/O指令。指明通道程序在內(nèi)存中的位置,并指明要操作的是哪個(gè)I/O設(shè)備。CPU就可以去做其他事情
- 通道執(zhí)行內(nèi)存中的通道程序,控制I/O設(shè)備完成一系列任務(wù)
- 通道執(zhí)行完規(guī)定的任務(wù)后,向CPU發(fā)出中斷請(qǐng)求,之后CPU對(duì)中斷進(jìn)行處理
I/O 軟件包括驅(qū)動(dòng)程序、用戶程序、管理程序、升級(jí)補(bǔ)丁等。通常采用I/O指令和通道指令實(shí)現(xiàn)主機(jī)和I/O設(shè)備的信息交換。
- I/O 指令是CPU 指令的一部分
- 通道指令是通道能識(shí)別的指令,通道程序提前編制好放在主存中。在含有通道的計(jì)算機(jī)中,CPU執(zhí)行I/O指令對(duì)通道發(fā)出命令,由通道執(zhí)行一系列通道指令,代替CPU對(duì)I/O設(shè)備進(jìn)行管理
7.2 外部設(shè)備
外部設(shè)備也稱外圍設(shè)備,是除了主機(jī)以外的、能直接或間接與計(jì)算機(jī)交換信息的裝置。
7.2.1 輸入設(shè)備
輸入設(shè)備用于向計(jì)算機(jī)系統(tǒng)輸入命令和文本、數(shù)據(jù)等信息的部件。鍵盤(pán)和鼠標(biāo)是最基本的輸入設(shè)備。
7.2.1.1 鍵盤(pán)
鍵盤(pán)是最常用的輸入設(shè)備,通過(guò)它可發(fā)出命令或輸入數(shù)據(jù)。每個(gè)鍵相當(dāng)于一個(gè)開(kāi)關(guān),當(dāng)按下鍵時(shí),電信號(hào)連通;當(dāng)松開(kāi)鍵時(shí),彈簧把鍵彈起,電信號(hào)斷開(kāi)。
鍵盤(pán)輸入信息可分為3個(gè)步驟:
- 查出按下的是哪個(gè)鍵;
- 將該鍵翻譯成能被主機(jī)接收的編碼,如ASCII碼;
- 將編碼傳送給主機(jī)。
7.2.1.2 鼠標(biāo)
鼠標(biāo)是常用的定位輸入設(shè)備,它把用戶的操作與計(jì)算機(jī)屏幕上的位置信息相聯(lián)系。常用的鼠標(biāo)有機(jī)械式和光電式兩種。
工作原理:當(dāng)鼠標(biāo)在平面上移動(dòng)時(shí),其底部傳感器把運(yùn)動(dòng)的方向和距離檢測(cè)出來(lái),從而控制光標(biāo)做相應(yīng)運(yùn)動(dòng)。
7.2.2 輸入設(shè)備
7.2.2.1 顯示器
顯示器有以下主要參數(shù)
- 屏幕大小:以對(duì)角線長(zhǎng)度表示,常用的有12~29英寸等。
- 分辨率:所能表示的像素個(gè)數(shù),屏幕上的每一個(gè)光點(diǎn)就是一個(gè)像素,以寬、高的像素的乘積表示,例如,800×600、1024×768和1280×1024等。
- 灰度級(jí):灰度級(jí)是指黑白顯示器中所顯示的像素點(diǎn)的亮暗差別,在彩色顯示器中則表現(xiàn)為顏色的不同,灰度級(jí)越多,圖像層次越清楚逼真,典型的有8位(256級(jí))、16位等。n位可以表示????種不同的亮度或顏色。
- 刷新:光點(diǎn)只能保持極短的時(shí)間便會(huì)消失,為此必須在光點(diǎn)消失之前再重新掃描顯示一遍,這個(gè)過(guò)程稱為刷新。
- 刷新頻率:?jiǎn)挝粫r(shí)間內(nèi)掃描整個(gè)屏幕內(nèi)容的次數(shù),按照人的視覺(jué)生理,刷新頻率大于30Hz時(shí)才不會(huì)感到閃爍,通常顯示器刷新頻率在60~120Hz。
顯示存儲(chǔ)器(VRAM)也稱刷新存儲(chǔ)器,為了不斷提高刷新圖像的信號(hào),必須把一幀圖像信息存儲(chǔ)在刷新存儲(chǔ)器中。其存儲(chǔ)容量由圖像分辨率和灰度級(jí)決定,分辨率越高,灰度級(jí)越多,刷新存儲(chǔ)器容量越大。
- 陰極射線管(CRT)顯示器
CRT顯示器主要由電子槍、偏轉(zhuǎn)線圈、蔭罩、高壓石墨電極和熒光粉涂層及玻璃外殼5部分組成。具有可視角度大、無(wú)壞點(diǎn)、色彩還原度高、色度均勻、可調(diào)節(jié)的多分辨率模式、響應(yīng)時(shí)間極短等特點(diǎn),按顯示信息內(nèi)容不同可分為
- 字符顯示器。顯示字符的方法以點(diǎn)陣為基礎(chǔ)。點(diǎn)陣是指由m×n個(gè)點(diǎn)組成的陣列。點(diǎn)陣的多少取決于顯示字符的質(zhì)量和字符窗口的大小。字符窗口是指每個(gè)字符在屏幕上所占的點(diǎn)數(shù),它包括字符顯示點(diǎn)陣和字符間隔。將點(diǎn)陣存入由ROM構(gòu)成的字符發(fā)生器中,在CRT進(jìn)行光柵掃描的過(guò)程中,從字符發(fā)生器中依次讀出某個(gè)字符的點(diǎn)陣,按照點(diǎn)陣中0和1代碼不同控制掃描電子束的開(kāi)或關(guān),從而在屏幕上顯示出字符。對(duì)應(yīng)于每個(gè)字符窗口,所需顯示字符的ASCII代碼被存放在視頻存儲(chǔ)器VRAM中,以備刷新。
- 圖形顯示器。將所顯示圖形的一組坐標(biāo)點(diǎn)和繪圖命令組成顯示文件存放在緩沖存儲(chǔ)器中,緩存中的顯示文件傳送給矢量(線段)產(chǎn)生器,產(chǎn)生相應(yīng)的模擬電壓,直接控制電子束在屏幕上的移動(dòng)。為了在屏幕上保留持久穩(wěn)定的圖像,需要按一定的頻率對(duì)屏幕進(jìn)行反復(fù)刷新。這種顯示器的優(yōu)點(diǎn)是分辨率高且顯示的曲線平滑。目前高質(zhì)量的圖形顯示器采用這種隨機(jī)掃描方式。缺點(diǎn)是當(dāng)顯示復(fù)雜圖形時(shí),會(huì)有閃爍感。
- 圖像顯示器
圖形顯示器主要顯示矢量圖形,比較規(guī)則,而圖像顯示器可以顯示豐富多彩的圖像信息
- 液晶顯示器(LCD)
利用液晶的電光效應(yīng),由圖像信號(hào)電壓直接控制薄膜晶體管,再間接控制液晶分子的光學(xué)特性來(lái)實(shí)現(xiàn)圖像的顯示。具有體積小、重量輕、省電、無(wú)輻射、綠色環(huán)保、畫(huà)面柔、不傷眼等特點(diǎn)。
- LED(發(fā)光二極管)顯示器
原理:通過(guò)控制半導(dǎo)體發(fā)光二極管進(jìn)行顯示,用來(lái)顯示文字、圖形、圖像等各種信息。與LCD相比,LED顯示器在亮度、功耗、可視角度和刷新速率等方面都更具優(yōu)勢(shì)。
7.2.2.2 打印機(jī)(了解即可)
打印機(jī)是計(jì)算機(jī)的輸出設(shè)備之一,用于將計(jì)算機(jī)處理結(jié)果打印在相關(guān)介質(zhì)上。
按印字原理不同可分為
- 擊打式打印機(jī):利用機(jī)械動(dòng)作使印字機(jī)構(gòu)與色帶和紙相撞而打印字符,優(yōu)點(diǎn):設(shè)備成本低,印字質(zhì)量好;缺點(diǎn):噪聲大,速度慢
- 非擊打式打印機(jī):采用電、磁、光、噴墨等物理、化學(xué)方法來(lái)印刷字符,優(yōu)點(diǎn):速度快,噪聲小;缺點(diǎn):成本高
按打印機(jī)工作方式不同可分為
- 串行打印機(jī):逐字打印,速度慢
- 行式打印機(jī):逐行打印,速度快
按工作方式可分為
- 針式打印機(jī):在聯(lián)機(jī)狀態(tài)下,主機(jī)發(fā)出打印命令,經(jīng)接口、檢測(cè)和控制電路,間歇驅(qū)動(dòng)縱向送紙和打印頭橫向移動(dòng),同時(shí)驅(qū)動(dòng)打印機(jī)間歇沖擊色帶,在紙上打印出所需內(nèi)容。它工作原理簡(jiǎn)單,造價(jià)低廉,耗材(色帶)便宜,但打印分辨率和打印速度不夠高。
- 噴墨式打印機(jī):帶電的噴墨霧點(diǎn)經(jīng)過(guò)電極偏轉(zhuǎn)后,直接在紙上形成所需字形。彩色噴墨打印機(jī)基于三基色原理,即分別噴射3種顏色墨滴,按一定的比例混合出所要求的顏色。打印噪聲小,可實(shí)現(xiàn)高質(zhì)量彩色打印,通常打印速度比針式打印機(jī)快;但防水性差,高質(zhì)量打印需要專用打印紙。
- 激光打印機(jī):計(jì)算機(jī)輸出的二進(jìn)制信息,經(jīng)過(guò)調(diào)制后的激光束掃描,在感光鼓上形成潛像,再經(jīng)過(guò)顯影、轉(zhuǎn)印和定影,便在紙上得到所需的字符或圖像。打印質(zhì)量高、速度快、噪聲小、處理能力強(qiáng);但耗材多、價(jià)格較貴、不能復(fù)寫(xiě)打印多份,且對(duì)
紙張的要求高。
7.2.3 外存儲(chǔ)器
所謂“磁表面存儲(chǔ)”,是指把某些磁性材料薄薄地涂在金屬鋁或塑料表面上作為載磁體來(lái)存儲(chǔ)信息。磁盤(pán)存儲(chǔ)器、磁帶存儲(chǔ)器和磁鼓存儲(chǔ)器均屬于磁表面存儲(chǔ)器。
磁表面存儲(chǔ)器的優(yōu)點(diǎn):
- 存儲(chǔ)容量大,位價(jià)格低;
- 記錄介質(zhì)可以重復(fù)使用;
- 記錄信息可以長(zhǎng)期保存而不丟失,甚至可以脫機(jī)存檔;
- 非破壞性讀出,讀出時(shí)不需要再生。
磁表面存儲(chǔ)器的缺點(diǎn):
- 存取速度慢;
- 機(jī)械結(jié)構(gòu)復(fù)雜;
- 對(duì)工作環(huán)境要求較高。
7.2.3.1 磁盤(pán)存儲(chǔ)器
7.2.3.1.1 磁盤(pán)設(shè)備的組成
一塊硬盤(pán)含有若干個(gè)記錄面,每個(gè)記錄面劃分為若干條磁道,而每條磁道又劃分為若干個(gè)扇區(qū),扇區(qū)(也稱塊)是磁盤(pán)讀寫(xiě)的最小單位,也就是說(shuō)磁盤(pán)按塊存取。
- 磁頭數(shù)(Heads)即記錄面數(shù),表示硬盤(pán)總共有多少個(gè)磁頭,磁頭用于讀取/寫(xiě)入盤(pán)片上記錄面的信息,一個(gè)記錄面對(duì)應(yīng)一個(gè)磁頭。
- 柱面數(shù)(Cylinders)表示硬盤(pán)每一面盤(pán)片上有多少條磁道。在一個(gè)盤(pán)組中,不同記錄面的相同編號(hào)(位置)的諸磁道構(gòu)成一個(gè)圓柱面。
- 扇區(qū)數(shù)(Sectors)表示每一條磁道上有多少個(gè)扇區(qū)。
硬盤(pán)存儲(chǔ)器由磁盤(pán)驅(qū)動(dòng)器、磁盤(pán)控制器和盤(pán)片組成。
- 磁盤(pán)驅(qū)動(dòng)器:核心部件是磁頭組件和盤(pán)片組件,溫徹斯特盤(pán)是一種可移動(dòng)頭固定盤(pán)片的硬盤(pán)存儲(chǔ)器。
- 磁盤(pán)控制器:是硬盤(pán)存儲(chǔ)器和主機(jī)的接口,主流的標(biāo)準(zhǔn)有IDE、SCSI、SATA等。
7.2.3.1.2 磁盤(pán)的性能指標(biāo)
- 磁盤(pán)的容量: 一個(gè)磁盤(pán)所能存儲(chǔ)的字節(jié)總數(shù)稱為磁盤(pán)容量。磁盤(pán)容量有非格式化容量和格式化容量之分。
非格式化容量是指磁記錄表面可以利用的磁化單元總數(shù)。
格式化容量是指按照某種特定的記錄格式所能存儲(chǔ)信息的總量。
- 記錄密度:記錄密度是指盤(pán)片單位面積上記錄的二進(jìn)制的信息量,通常以道密度、位密度和面密度表示。
道密度是沿磁盤(pán)半徑方向單位長(zhǎng)度上的磁道數(shù);
位密度是磁道單位長(zhǎng)度上能記錄的二進(jìn)制代碼位數(shù);
面密度是位密度和道密度的乘積。
- 平均存取時(shí)間
- 數(shù)據(jù)傳輸率:磁盤(pán)存儲(chǔ)器在單位時(shí)間內(nèi)向主機(jī)傳送數(shù)據(jù)的字節(jié)數(shù),稱為數(shù)據(jù)傳輸率。假設(shè)磁盤(pán)轉(zhuǎn)數(shù)為r(轉(zhuǎn)/秒),每條磁道容量為N個(gè)字節(jié),則數(shù)據(jù)傳輸率
7.2.3.1.3 磁盤(pán)地址
主機(jī)向磁盤(pán)控制器發(fā)送尋址信息,磁盤(pán)的地址一般如圖所示:
若系統(tǒng)中有4個(gè)驅(qū)動(dòng)器,每個(gè)驅(qū)動(dòng)器帶一個(gè)磁盤(pán),每個(gè)磁盤(pán)256個(gè)磁道、16個(gè)盤(pán)面,每個(gè)盤(pán)面劃分為16個(gè)扇區(qū),則每個(gè)扇區(qū)地址要18位二進(jìn)制代碼;
7.2.3.1.4 硬盤(pán)的工作過(guò)程
硬盤(pán)的主要操作是尋址、讀盤(pán)、寫(xiě)盤(pán)。每個(gè)操作都對(duì)應(yīng)一個(gè)控制字,硬盤(pán)工作時(shí),第一步是取控制字,第二步是執(zhí)行控制字。
硬盤(pán)屬于機(jī)械式部件,其讀寫(xiě)操作是串行的,不可能在同一時(shí)刻既讀又寫(xiě),也不可能在同一時(shí)刻讀兩組數(shù)據(jù)或?qū)憙山M數(shù)據(jù)
7.2.3.2 磁盤(pán)陣列
RAID(Redundant Array of Inexpensive Disks,廉價(jià)冗余磁盤(pán)陣列)是將多個(gè)獨(dú)立的物理磁盤(pán)組成一個(gè)獨(dú)立的邏輯盤(pán),數(shù)據(jù)在多個(gè)物理盤(pán)上分割交叉存儲(chǔ)、并行訪問(wèn),具有更好的存儲(chǔ)性能、可靠性和安全性。
RAID的分級(jí)如下所示。在RAID1~RAID5的幾種方案中,無(wú)論何時(shí)有磁盤(pán)損壞,都可以隨時(shí)拔出受損的磁盤(pán)再插入好的磁盤(pán),而數(shù)據(jù)不會(huì)損壞。
- RAID0:無(wú)冗余和無(wú)校驗(yàn)的磁盤(pán)陣列。
- RAID1:鏡像磁盤(pán)陣列。
- RAID2:采用糾錯(cuò)的海明碼的磁盤(pán)陣列。
- RAID3:位交叉奇偶校驗(yàn)的磁盤(pán)陣列。
- RAID4:塊交叉奇偶校驗(yàn)的磁盤(pán)陣列。
- RAID5:無(wú)獨(dú)立校驗(yàn)的奇偶校驗(yàn)磁盤(pán)陣列。
RAID通過(guò)同時(shí)使用多個(gè)磁盤(pán),提高了傳輸率;通過(guò)在多個(gè)磁盤(pán)上并行存取來(lái)大幅提高存儲(chǔ)系統(tǒng)的數(shù)據(jù)吞吐量;通過(guò)鏡像功能,可以提高安全可靠性;通過(guò)數(shù)據(jù)校驗(yàn),可以提供容錯(cuò)能力。
7.3 I/O接口
I/O接口:又稱I/O控制器(I/O Controller)、設(shè)備控制器,負(fù)責(zé)協(xié)調(diào)主機(jī)與外部設(shè)備之間的數(shù)據(jù)傳輸
7.3.1 I/O接口的功能
- 數(shù)據(jù)緩沖:通過(guò)數(shù)據(jù)緩沖寄存器(DBR)達(dá)到主機(jī)和外設(shè)工作速度的匹配
- 錯(cuò)誤或狀態(tài)監(jiān)測(cè):通過(guò)狀態(tài)寄存器反饋設(shè)備的各種錯(cuò)誤、狀態(tài)信息,供CPU查用
- 控制和定時(shí):接收從控制總線發(fā)來(lái)的控制信號(hào)、時(shí)鐘信號(hào)
- 數(shù)據(jù)格式轉(zhuǎn)換:串-并、并-串等格式轉(zhuǎn)換
- 與主機(jī)和設(shè)備通信:實(shí)現(xiàn)主機(jī)—I/O接口—I/O設(shè)備之間的通信
7.3.2 I/O接口的基本結(jié)構(gòu)
外部接口:外部接口通過(guò)接口電纜與外設(shè)相連,外部接口的數(shù)據(jù)傳輸可能是串行方式,因此I/O接口需具有串/并轉(zhuǎn)換功能。
內(nèi)部接口:內(nèi)部接口與系統(tǒng)總線相連,實(shí)質(zhì)上是與內(nèi)存、CPU相連。
工作原理:
- 發(fā)命令:發(fā)送命令字到I/O控制寄存器,向設(shè)備發(fā)送命令(需要驅(qū)動(dòng)程序的協(xié)助)
- 讀狀態(tài):從狀態(tài)寄存器讀取狀態(tài)字,獲得設(shè)備或I/O控制器的狀態(tài)信息
- 讀/寫(xiě)數(shù)據(jù):從數(shù)據(jù)緩沖寄存器發(fā)送或讀取數(shù)據(jù),完成主機(jī)與外設(shè)的數(shù)據(jù)交換
控制寄存器、狀態(tài)寄存器在使用時(shí)間上是錯(cuò)開(kāi)的,因此有的I/O接口中可將二者合二為一
7.3.4 I/O端口及其編址
I/O端口是指接口電路中可以被CPU直接訪問(wèn)的寄存器。I/O端口要想能夠被CPU訪問(wèn),必須要有端口地址,每一個(gè)端口都對(duì)應(yīng)著一個(gè)端口地址。對(duì)I/O端口的編址分為統(tǒng)一編址和獨(dú)立編址兩種
- 統(tǒng)一編址
把I/O端口當(dāng)做存儲(chǔ)器的單元進(jìn)行地址分配,用統(tǒng)一的訪存指令就可以訪問(wèn)I/O端口,又稱存儲(chǔ)器映射方式。靠不同的地址碼區(qū)分內(nèi)存和I/O設(shè)備,I/O地址要求相對(duì)固定在地址的某部分。
優(yōu)點(diǎn):
- 不需要專門(mén)的輸入/輸出指令,所有訪存指令都可直接訪問(wèn)端口,程序設(shè)計(jì)靈活性高
- 端口有較大的編址空間
- 讀寫(xiě)控制邏輯電路簡(jiǎn)單
缺點(diǎn):
- 端口占用了主存地址空間,使主存地址空間變小
- 外設(shè)尋址時(shí)間長(zhǎng)(地址位數(shù)多,地址譯碼速度慢)
- 獨(dú)立編址
I/O端口地址與存儲(chǔ)器地址無(wú)關(guān),獨(dú)立編址CPU需要設(shè)置專門(mén)的輸入/輸出指令訪問(wèn)端口,又稱I/O映射方式。靠不同的指令區(qū)分內(nèi)存和I/O設(shè)備。
優(yōu)點(diǎn):
- 使用專用I/O指令,程序編制清晰
- I/O端口地址位數(shù)少,地址譯碼速度快
- I/O端口的地址不占用主存地址空間
缺點(diǎn):
- I/O指令類型少,一般只能對(duì)端口進(jìn)行傳送操作,程序設(shè)計(jì)靈活性差
- 需要CPU提供存儲(chǔ)器讀/寫(xiě)、I/O設(shè)備讀/寫(xiě)兩組控制信號(hào),增加了控制邏輯電路的復(fù)雜性
7.4 I/O方式
7.4.1 程序查詢方式
- CPU執(zhí)行初始化程序,并預(yù)置傳送參數(shù):設(shè)置計(jì)數(shù)器、設(shè)置數(shù)據(jù)首地址
- 向I/O接口發(fā)送命令字,啟動(dòng)I/O設(shè)備
- CPU從接口讀取設(shè)備狀態(tài)信息
- CPU不斷查詢I/O設(shè)備狀態(tài),直到外設(shè)準(zhǔn)備就緒
- 傳送一次數(shù)據(jù)、一般為一個(gè)字
- 修改地址和計(jì)數(shù)器參數(shù)
- 判斷傳送是否結(jié)束(一般計(jì)數(shù)器為0時(shí)結(jié)束),否則轉(zhuǎn)到3
在程序查詢方式的輸入/輸出系統(tǒng)中,假設(shè)不考慮處理時(shí)間,每一個(gè)查詢操作需要100個(gè)時(shí)鐘周期,CPU的時(shí)鐘頻率為50MHz。現(xiàn)有鼠標(biāo)和硬盤(pán)兩個(gè)設(shè)備,而且CPU必須每秒對(duì)鼠標(biāo)進(jìn)行30次查詢,硬盤(pán)以32位字長(zhǎng)為單位傳輸數(shù)據(jù),即每32位被CPU查詢一次,傳輸率為2×220B/s。求CPU對(duì)這兩個(gè)設(shè)備查詢所花費(fèi)的時(shí)間比率,由此可得出什么結(jié)論?(課后綜合題4)
一個(gè)時(shí)鐘周期為1/50MHz = 20ns
一個(gè)查詢操作耗時(shí)100 × 20ns = 2000ns1)鼠標(biāo)
每秒查詢鼠標(biāo)耗時(shí)30 × 2000ns = 60000ns
查詢鼠標(biāo)所花費(fèi)的時(shí)間比率= 60000ns/1s = 0.006%對(duì)鼠標(biāo)的查詢基本不影響CPU的性能
2)硬盤(pán)
每32位需要查詢一次,每秒傳送2×220B
每秒需要查詢(2×220B)/4B = 219次
查詢硬盤(pán)耗時(shí)219× 2000ns = 512 × 1024 × 2000ns≈ 1.05×109 ns
查詢硬盤(pán)所花費(fèi)的時(shí)間比率= (1.05×109 ns)/1s = 105%CPU將全部時(shí)間都用于對(duì)硬盤(pán)的查詢也不能滿足磁盤(pán)傳輸?shù)囊?/p>
7.4.2 程序中斷方式
7.4.2.1 中斷的基本概念
程序中斷是指在計(jì)算機(jī)執(zhí)行現(xiàn)行程序的過(guò)程中,出現(xiàn)某些急需處理的異常情況或特殊請(qǐng)求,CPU暫時(shí)中止現(xiàn)行程序,而轉(zhuǎn)去對(duì)這些異常情況或特殊請(qǐng)求進(jìn)行處理,在處理完畢后CPU又自動(dòng)返回到現(xiàn)行程序的斷點(diǎn)處,繼續(xù)執(zhí)行原程序。
7.4.2.2 關(guān)中斷
關(guān)中斷的作用:實(shí)現(xiàn)原子操作
- 非屏蔽中斷:關(guān)中斷時(shí)也會(huì)被響應(yīng)(如:掉電)
- 可屏蔽中斷:關(guān)中斷時(shí)不會(huì)被響應(yīng)
IF=1表示開(kāi)中斷(允許中斷)
IF=0表示關(guān)中斷(不允許中斷)
7.4.2.3 中斷請(qǐng)求標(biāo)記
每個(gè)中斷源向CPU發(fā)出中斷請(qǐng)求的時(shí)間是隨機(jī)的。為了記錄中斷事件并區(qū)分不同的中斷源,中斷系統(tǒng)需對(duì)每個(gè)中斷源設(shè)置中斷請(qǐng)求標(biāo)記觸發(fā)器INTR,當(dāng)其狀態(tài)為“1”時(shí),表示中斷源有請(qǐng)求。這些觸發(fā)器可組成中斷請(qǐng)求標(biāo)記寄存器,該寄存器可集中在CPU中,也可分散在各個(gè)中斷源中。
對(duì)于外中斷,CPU是在統(tǒng)一的時(shí)刻即每條指令執(zhí)行階段結(jié)束前向接口發(fā)出中斷查詢信號(hào),以獲取I/O的中斷請(qǐng)求,也就是說(shuō),CPU響應(yīng)中斷的時(shí)間是在每條指令執(zhí)行階段的結(jié)束時(shí)刻。
7.4.2.4 中斷判優(yōu)
中斷判優(yōu)既可以用硬件實(shí)現(xiàn),也可用軟件實(shí)現(xiàn):硬件實(shí)現(xiàn)是通過(guò)硬件排隊(duì)器實(shí)現(xiàn)的,它既可以設(shè)置在CPU中,也可以分散在各個(gè)中斷源中;軟件實(shí)現(xiàn)是通過(guò)查詢程序?qū)崿F(xiàn)的。
優(yōu)先級(jí)
- 硬件故障中斷屬于最高級(jí),其次是軟件中斷;
- 非屏蔽中斷優(yōu)于可屏蔽中斷;
- DMA請(qǐng)求優(yōu)于I/O設(shè)備傳送的中斷請(qǐng)求
- 高速設(shè)備優(yōu)于低速設(shè)備;
- 輸入設(shè)備優(yōu)于輸出設(shè)備;
- 實(shí)時(shí)設(shè)備優(yōu)于普通設(shè)備。
7.4.2.5 中斷處理過(guò)程
中斷隱指令的主要任務(wù):
- 關(guān)中斷:在中斷服務(wù)程序中,為了保護(hù)中斷現(xiàn)場(chǎng)(即CPU主要寄存器中的內(nèi)容)期間不被新的中斷所打斷,必須關(guān)中斷,從而保證被中斷的程序在中斷服務(wù)程序執(zhí)行完畢之后能接著正確地執(zhí)行下去。
- 保存斷點(diǎn):為了保證在中斷服務(wù)程序執(zhí)行完畢后能正確地返回到原來(lái)的程序,必須將原來(lái)程序的斷點(diǎn)(即程序計(jì)數(shù)器(PC)的內(nèi)容)保存起來(lái)。可以存入堆棧,也可以存入指定單元。
- 引出中斷服務(wù)程序:引出中斷服務(wù)程序的實(shí)質(zhì)就是取出中斷服務(wù)程序的入口地址并傳送給程序計(jì)數(shù)器(PC)。
中斷服務(wù)程序的主要任務(wù):
- 保護(hù)現(xiàn)場(chǎng):保存通用寄存器和狀態(tài)寄存器的內(nèi)容[1] ,以便返回原程序后可以恢復(fù)CPU環(huán)境。可使用堆棧,也可以使用特定存儲(chǔ)單元。
- 中斷服務(wù)(設(shè)備服務(wù)):主體部分,如通過(guò)程序控制需打印的字符代碼送入打印機(jī)的緩沖存儲(chǔ)器中(eg:中斷服務(wù)的過(guò)程中有可能修改ACC寄存器的值)
- 恢復(fù)現(xiàn)場(chǎng):通過(guò)出棧指令或取數(shù)指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢復(fù)原樣)
- 中斷返回:通過(guò)中斷返回指令回到原程序斷點(diǎn)處。
7.4.2.6 多重中斷
7.4.2.7 中斷屏蔽技術(shù)
中斷屏蔽技術(shù)主要用于多重中斷,CPU要具備多重中斷的功能,須滿足下列條件。
在中斷服務(wù)程序中提前設(shè)置開(kāi)中斷指令。
優(yōu)先級(jí)別高的中斷源有權(quán)中斷優(yōu)先級(jí)別低的中斷源。
每個(gè)中斷源都有一個(gè)屏蔽觸發(fā)器,1表示屏蔽該中斷源的請(qǐng)求,0表示可以正常申請(qǐng),所有屏蔽觸發(fā)器組合在一起,便構(gòu)成一個(gè)屏蔽字寄存器,屏蔽字寄存器的內(nèi)容稱為屏蔽字。
屏蔽字設(shè)置的規(guī)律:
- 一般用‘1’表示屏蔽,’0’表示正常申請(qǐng)。
- 每個(gè)中斷源對(duì)應(yīng)一個(gè)屏蔽字(在處理該中斷源的中斷服務(wù)程序時(shí),屏蔽寄存器中的內(nèi)容為該中斷源對(duì)應(yīng)的屏蔽字)。
- 屏蔽字中‘1’越多,優(yōu)先級(jí)越高。每個(gè)屏蔽字中至少有一個(gè)’1’(至少要能屏蔽自身的中斷)。
例7.1 設(shè)某機(jī)有4個(gè)中斷源A、B、C、D,其硬件排隊(duì)優(yōu)先次序?yàn)锳>B>C>D,現(xiàn)要求將中斷處理次序改為D>A>C>B。
1)寫(xiě)出每個(gè)中斷源對(duì)應(yīng)的屏蔽字。
2)按下圖所示的時(shí)間軸給出的4個(gè)中斷源的請(qǐng)求時(shí)刻,畫(huà)出CPU執(zhí)行程序的軌跡。設(shè)每個(gè)中斷源的中斷服務(wù)程序時(shí)間均為20us。例7.1答案.png
7.4.2.8 程序中斷方式
【2016年真題】假定CPU主頻為50MHz,CPI為4。設(shè)備D采用異步串行通信方式向主機(jī)傳送7位ASCII字符,通信規(guī)程中有1位奇校驗(yàn)位和1位停止位,從D接收啟動(dòng)命令到字符送入I/O端口需要0.5ms。請(qǐng)回答下列問(wèn)題,要求說(shuō)明理由。
1)每傳送一個(gè)字符,在異步串行通信線上共需傳輸多少位?在設(shè)備D持續(xù)工作過(guò)程中,每秒鐘最多可向I/O端口送入多少個(gè)字符?
2)設(shè)備D采用中斷方式進(jìn)行輸入/輸出,示意圖如下:題圖.pngI/O端口每收到一個(gè)字符申請(qǐng)一次中斷,中斷響應(yīng)需10個(gè)時(shí)鐘周期,中斷服務(wù)程序共有20條指令,其中第15條指令啟動(dòng)D工作。若CPU需從D讀取1000個(gè)字符,則完成這一任務(wù)所需時(shí)間大約是多少個(gè)時(shí)鐘周期?CPU用于完成這一任務(wù)的時(shí)間大約是多少個(gè)時(shí)鐘周期?在中斷響應(yīng)階段CPU進(jìn)行了哪些操作?
1)每傳送一個(gè)字符需要傳送1位起始位、7位數(shù)據(jù)位、1位校驗(yàn)位、1位停止位,共需傳送10位。
每秒可送入1s/0.5ms = 2000 個(gè)字符2)主頻50MHz,時(shí)鐘周期為1/50MHz = 20ns
0.5ms對(duì)應(yīng)時(shí)鐘周期數(shù)為0.5ms/20ns = 25000
傳送1個(gè)字符需要的時(shí)鐘周期數(shù)為25000 + 10 + 15×4 = 25070
傳送1000個(gè)字符需要的時(shí)鐘周期數(shù)為25070×1000 = 25070000個(gè)時(shí)鐘周期CPU用于該任務(wù)的時(shí)間大約為1000×(10+20×4)= 9×104 個(gè)時(shí)鐘周期
中斷響應(yīng)階段CPU進(jìn)行的操作(中斷隱指令)
①關(guān)中斷
②保存斷點(diǎn)(PC)
③引出中斷服務(wù)程序
7.4.3 DMA方式
CPU向DMA控制器指明要輸入還是輸出;要傳送多少個(gè)數(shù)據(jù);數(shù)據(jù)在主存、外設(shè)中的地址。
7.4.3.1 DMA控制器的主要功能
主存和 DMA接口之間有一條直接數(shù)據(jù)通路。由于DMA方式傳送數(shù)據(jù)不需要經(jīng)過(guò)CPU,因此不必中斷現(xiàn)行程序,I/O與主機(jī)并行工作,程序和傳送并行工作。DMA控制器的主要功能有
- 接受外設(shè)發(fā)出的DMA請(qǐng)求(外設(shè)傳送一個(gè)字的請(qǐng)求),并向CPU發(fā)出總線請(qǐng)求。
- CPU響應(yīng)此總線請(qǐng)求,發(fā)出總線響應(yīng)信號(hào),接管總線控制權(quán),進(jìn)入DMA操作周期。
- 確定傳送數(shù)據(jù)的主存單元地址及長(zhǎng)度,并能自動(dòng)修改主存地址計(jì)數(shù)和傳送長(zhǎng)度計(jì)數(shù)。
- 規(guī)定數(shù)據(jù)在主存和外設(shè)間的傳送方向,發(fā)出讀寫(xiě)等控制信號(hào),執(zhí)行數(shù)據(jù)傳送操作。
- 向CPU報(bào)告DMA操作的結(jié)束。
7.4.3.2 DMA控制器的組成
- 主存地址計(jì)數(shù)器:簡(jiǎn)稱AR,存放要交換數(shù)據(jù)的主存地址。
- 傳送長(zhǎng)度計(jì)數(shù)器:簡(jiǎn)稱WC,用來(lái)記錄傳送數(shù)據(jù)的長(zhǎng)度,計(jì)數(shù)溢出時(shí),數(shù)據(jù)即傳送完畢,自動(dòng)發(fā)中斷請(qǐng)求信號(hào)。
- 數(shù)據(jù)緩沖寄存器:用于暫存每次傳送的數(shù)據(jù)。
- DMA請(qǐng)求觸發(fā)器:每當(dāng)I/O設(shè)備準(zhǔn)備好數(shù)據(jù)后給出一個(gè)控制信號(hào),使DMA請(qǐng)求觸發(fā)器置位。
- “控制/狀態(tài)”邏輯:由控制和時(shí)序電路及狀態(tài)標(biāo)志組成,用于指定傳送方向,修改傳送參數(shù),并對(duì)DMA請(qǐng)求信號(hào)和CPU響應(yīng)信號(hào)進(jìn)行協(xié)調(diào)和同步。
- 中斷機(jī)構(gòu):當(dāng)一個(gè)數(shù)據(jù)塊傳送完畢后觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷請(qǐng)求。
7.4.3.3 DMA的傳送過(guò)程
7.4.3.4 DMA傳送方式
主存和DMA控制器之間有一條數(shù)據(jù)通路,因此主存和I/O設(shè)備之間交換信息時(shí),不通過(guò)CPU。但當(dāng)I/O設(shè)備和CPU同時(shí)訪問(wèn)主存時(shí),可能發(fā)生沖突,為了有效地使用主存,DMA控制器與CPU通常采用以下3種方法使用主存。
- 停止CPU訪問(wèn)主存
控制簡(jiǎn)單,但CPU 處于不工作狀態(tài)或保持狀態(tài),未充分發(fā)揮CPU 對(duì)主存的利用率
- DMA與CPU交替訪存
不需要總線使用權(quán)的申請(qǐng)、建立和歸還過(guò)程,但硬件邏輯更為復(fù)雜
- 周期挪用(周期竊取)
DMA 訪問(wèn)主存有三種可能:
- CPU 此時(shí)不訪存(不沖突)
- CPU 正在訪存(存取周期結(jié)束讓出總線)
- CPU 與DMA 同時(shí)請(qǐng)求訪存(I/O訪存優(yōu)先)
7.4.3.5 DMA方式的特點(diǎn)
主存和DMA接口之間有一條直接數(shù)據(jù)通路。由于DMA方式傳送數(shù)據(jù)不需要經(jīng)過(guò)CPU,因此不必中斷現(xiàn)行程序,I/O與主機(jī)并行工作,程序和傳送并行工作。
DMA方式具有下列特點(diǎn):
- 它使主存與CPU的固定聯(lián)系脫鉤,主存既可被CPU訪問(wèn),又可被外設(shè)訪問(wèn)。
- 在數(shù)據(jù)塊傳送時(shí),主存地址的確定、傳送數(shù)據(jù)的計(jì)數(shù)等都由硬件電路直接實(shí)現(xiàn)。
- 主存中要開(kāi)辟專用緩沖區(qū),及時(shí)供給和接收外設(shè)的數(shù)據(jù)。
- DMA傳送速度快,CPU和外設(shè)并行工作,提高了系統(tǒng)效率。
- DMA在傳送開(kāi)始前要通過(guò)程序進(jìn)行預(yù)處理,結(jié)束后要通過(guò)中斷方式進(jìn)行后處理。
7.4.3.6 DMA方式和中斷方式的對(duì)比
-
eg:保存ACC寄存器的值 ?