計(jì)算機(jī)組成原理(七)輸入輸出系統(tǒng)

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ù)傳輸

常見(jiàn)的I/O設(shè)備.png

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 指令的一部分
I/O 指令.png
  • 通道指令是通道能識(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ǔ)器容量越大。
VRAM容量= 分辨率× 灰度級(jí)位數(shù)

VRAM帶寬= 分辨率× 灰度級(jí)位數(shù)× 幀頻

  • 陰極射線管(CRT)顯示器

CRT顯示器主要由電子槍、偏轉(zhuǎn)線圈、蔭罩、高壓石墨電極和熒光粉涂層及玻璃外殼5部分組成。具有可視角度大、無(wú)壞點(diǎn)、色彩還原度高、色度均勻、可調(diào)節(jié)的多分辨率模式、響應(yīng)時(shí)間極短等特點(diǎn),按顯示信息內(nèi)容不同可分為

  1. 字符顯示器。顯示字符的方法以點(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中,以備刷新。
  2. 圖形顯示器。將所顯示圖形的一組坐標(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ì)有閃爍感。
  3. 圖像顯示器

圖形顯示器主要顯示矢量圖形,比較規(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)內(nèi)部結(jié)構(gòu).png

硬盤(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等。
磁盤(pán)讀取.png

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ù);

面密度是位密度和道密度的乘積。

記錄密度.png
  • 平均存取時(shí)間

平均存取時(shí)間= 尋道時(shí)間(磁頭移動(dòng)到目的磁道)+ 旋轉(zhuǎn)延遲時(shí)間(磁頭定位到所在扇區(qū))+ 傳輸時(shí)間(傳輸數(shù)據(jù)所花費(fèi)的時(shí)間)

平均存取時(shí)間.png
  • 數(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ù)傳輸率

D_r=rN

7.2.3.1.3 磁盤(pán)地址

主機(jī)向磁盤(pán)控制器發(fā)送尋址信息,磁盤(pán)的地址一般如圖所示:

磁盤(pán)地址.png

若系統(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)

I/O接口的基本結(jié)構(gòu).png

外部接口:外部接口通過(guò)接口電纜與外設(shè)相連,外部接口的數(shù)據(jù)傳輸可能是串行方式,因此I/O接口需具有串/并轉(zhuǎn)換功能。

內(nèi)部接口:內(nèi)部接口與系統(tǒng)總線相連,實(shí)質(zhì)上是與內(nèi)存、CPU相連。

工作原理:

  1. 發(fā)命令:發(fā)送命令字到I/O控制寄存器,向設(shè)備發(fā)送命令(需要驅(qū)動(dòng)程序的協(xié)助)
  2. 讀狀態(tài):從狀態(tài)寄存器讀取狀態(tài)字,獲得設(shè)備或I/O控制器的狀態(tài)信息
  3. 讀/寫(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ú)立編址兩種

  1. 統(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ù)多,地址譯碼速度慢)
  1. 獨(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ù)雜性
統(tǒng)一編址和獨(dú)立編址.png

7.4 I/O方式

7.4.1 程序查詢方式

  1. CPU執(zhí)行初始化程序,并預(yù)置傳送參數(shù):設(shè)置計(jì)數(shù)器、設(shè)置數(shù)據(jù)首地址
  2. 向I/O接口發(fā)送命令字,啟動(dòng)I/O設(shè)備
  3. CPU從接口讀取設(shè)備狀態(tài)信息
  4. CPU不斷查詢I/O設(shè)備狀態(tài),直到外設(shè)準(zhǔn)備就緒
  5. 傳送一次數(shù)據(jù)、一般為一個(gè)字
  6. 修改地址和計(jì)數(shù)器參數(shù)
  7. 判斷傳送是否結(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 = 2000ns

1)鼠標(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í)行原程序。

中斷處理過(guò)程.png

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)中斷(不允許中斷)

PSW.png

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è)中斷源中。

中斷請(qǐng)求標(biāo)記.png

對(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í)

  1. 硬件故障中斷屬于最高級(jí),其次是軟件中斷;
  2. 非屏蔽中斷優(yōu)于可屏蔽中斷;
  3. DMA請(qǐng)求優(yōu)于I/O設(shè)備傳送的中斷請(qǐng)求
  4. 高速設(shè)備優(yōu)于低速設(shè)備;
  5. 輸入設(shè)備優(yōu)于輸出設(shè)備;
  6. 實(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)。
硬件向量法.png

中斷服務(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 多重中斷

單重中斷與多重中斷.png

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. 一般用‘1’表示屏蔽,’0’表示正常申請(qǐng)。
  2. 每個(gè)中斷源對(duì)應(yīng)一個(gè)屏蔽字(在處理該中斷源的中斷服務(wù)程序時(shí),屏蔽寄存器中的內(nèi)容為該中斷源對(duì)應(yīng)的屏蔽字)。
  3. 屏蔽字中‘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 程序中斷方式

程序中斷方式.png

【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)行輸入/輸出,示意圖如下:

題圖.png

I/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控制器的組成

DMA控制器.png
  • 主存地址計(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ò)程

DMA的傳送流程.png
DMA的傳送流程.png

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種方法使用主存。

  1. 停止CPU訪問(wèn)主存
停止CPU訪問(wèn)主存.png

控制簡(jiǎn)單,但CPU 處于不工作狀態(tài)或保持狀態(tài),未充分發(fā)揮CPU 對(duì)主存的利用率

  1. DMA與CPU交替訪存
DMA與CPU交替訪存.png

不需要總線使用權(quán)的申請(qǐng)、建立和歸還過(guò)程,但硬件邏輯更為復(fù)雜

  1. 周期挪用(周期竊取)
周期挪用.png

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ì)比

DMA方式和中斷方式的對(duì)比.png

  1. eg:保存ACC寄存器的值 ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評(píng)論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,634評(píng)論 3 419
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,653評(píng)論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,063評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,835評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,235評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,459評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,000評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,819評(píng)論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,004評(píng)論 1 370
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,257評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,676評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,937評(píng)論 1 288
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,717評(píng)論 3 393
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,003評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容