第7章輸入輸出接口_第1頁
第7章輸入輸出接口_第2頁
第7章輸入輸出接口_第3頁
第7章輸入輸出接口_第4頁
第7章輸入輸出接口_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

實(shí)驗(yàn)報告時間備選:15周周三晚、周六下午、周六晚上、周日晚7.6DMA方式7.5程序中斷方式7.4程序查詢方式7.3I/O接口7.2外部設(shè)備7.1概述計算機(jī)I/O系統(tǒng)結(jié)構(gòu)圖7.1概述一、輸入輸出系統(tǒng)的發(fā)展概況無I/O技術(shù)程序查詢I/O方式程序中斷方式直接內(nèi)存存取(DirectMemoryAccess,DMA)方式通道(Channel)方式外圍處理機(jī)(PeripheralProcessorUnit,PPU)方式1、無I/O技術(shù)(1)輻射式連接外設(shè)Ⅰ外設(shè)Ⅱ外設(shè)Ⅲ主機(jī)特點(diǎn)(1)每個I/O設(shè)備利用各自的邏輯控制電路與CPU相連(2)I/O與CPU交換信息時,CPU必須停止其他工作(3)I/O設(shè)備控制電路與CPU控制器緊密結(jié)合不分隔缺點(diǎn):線路復(fù)雜缺點(diǎn):效率低下缺點(diǎn):不易擴(kuò)充設(shè)備(2)總線及接口技術(shù)的引入

主機(jī)接口接口設(shè)備1設(shè)備n……總線特點(diǎn):1)總線連接,易于刪減設(shè)備,故障率低2)接口可以使不同的外設(shè)更方便的接入計算機(jī)系統(tǒng)2、程序查詢I/O方式CPU讀I/O狀態(tài)檢查狀態(tài)未準(zhǔn)備就緒N數(shù)據(jù)傳送YCPU主動去查詢外設(shè)在這種方式中.?dāng)?shù)據(jù)在CPU與外圍設(shè)備之間的傳送完全靠計算機(jī)程序控制,是在CPU主動控制下進(jìn)行的.當(dāng)輸入/輸出時,CPU暫停執(zhí)行本程序,轉(zhuǎn)去執(zhí)行輸入/輸出的服務(wù)程序,根據(jù)服務(wù)程序中的I/O指令進(jìn)行數(shù)據(jù)傳送.特點(diǎn):簡單,CPU效率低,CPU、各外設(shè)串行工作;踏步等待3.程序中斷方式I/O工作CPU不查詢CPU暫?,F(xiàn)行程序自身準(zhǔn)備與主機(jī)交換信息CPU和I/O并行工作

啟動I/O設(shè)備現(xiàn)行程序

……中斷服務(wù)程序KK+1…沒有踏步等待現(xiàn)象中斷現(xiàn)行程序程序中斷方式流程CPU向I/O發(fā)讀指令CPU讀I/O狀態(tài)檢查狀態(tài)完成否?CPU做其他事情I/O設(shè)備工作準(zhǔn)備就緒CPUI/O從CPU向主存寫入一個字CPU主存從I/O接口中讀一個字到CPUI/OCPU中斷請求I/OCPU出錯是否未錯4.DMA方式主存和I/O之間有一條直接數(shù)據(jù)通道不中斷現(xiàn)行程序周期挪用(周期竊取)CPU和I/O并行工作存取周期結(jié)束CPU執(zhí)行現(xiàn)行程序CPU執(zhí)行現(xiàn)行程序DMA請求啟動I/OI/O準(zhǔn)備I/O準(zhǔn)備一個存取周期實(shí)現(xiàn)I/O與主存之間的傳送三種方式的CPU工作效率比較存取周期結(jié)束CPU執(zhí)行現(xiàn)行程序CPU執(zhí)行現(xiàn)行程序DMA請求啟動I/OI/O準(zhǔn)備I/O準(zhǔn)備一個存取周期實(shí)現(xiàn)I/O與主存之間的傳送CPU

執(zhí)行現(xiàn)行程序CPU查詢等待并傳輸I/O數(shù)據(jù)CPU

執(zhí)行現(xiàn)行程序啟動I/OI/O準(zhǔn)備及傳送指令執(zhí)行周期結(jié)束CPU執(zhí)行現(xiàn)行程序CPU執(zhí)行現(xiàn)行程序啟動I/O中斷請求I/O準(zhǔn)備I/O準(zhǔn)備CPU處理中斷服務(wù)程序?qū)崿F(xiàn)I/O與主機(jī)之間的傳送間斷啟動I/O啟動I/OI/O準(zhǔn)備中斷請求啟動I/OI/O準(zhǔn)備一個存取周期DMA請求程序查詢方式程序中斷方式DMA方式I/O準(zhǔn)備及傳送間斷I/O準(zhǔn)備I/O準(zhǔn)備5.具有通道結(jié)構(gòu)的階段

CPUM.M通道I/O特點(diǎn):1)通道可以看作是一個I/O處理器,有專用通道指令。2)I/O通道受CPU控制:啟動、停止3)通道可以代替CPU來控制I/O設(shè)備以及控制I/O與主機(jī)進(jìn)行數(shù)據(jù)交換。6.具有I/O處理機(jī)的階段

I/O處理機(jī)又稱外圍處理機(jī)(PPU),基本獨(dú)立于主機(jī)工作。它即可以完成I/O控制,還可以完成碼制轉(zhuǎn)換、數(shù)據(jù)校驗(yàn)等功能。使I/O系統(tǒng)對主機(jī)來說獨(dú)立性更高。二、輸入輸出系統(tǒng)的組成I/O系統(tǒng)——計算機(jī)系統(tǒng)中完成輸入/輸出功能的子系統(tǒng),由I/O軟件和I/O硬件兩部分聯(lián)合組成。1.I/O硬件:由計算機(jī)系統(tǒng)中所有I/O設(shè)備及其接口電路組成,是I/O系統(tǒng)的基礎(chǔ)。2.I/O軟件:

通常指用I/O指令編制的、對I/O接口及設(shè)備進(jìn)行管理和訪問的程序,常稱為I/O驅(qū)動程序。只有在I/O驅(qū)動程序的作用下,I/O硬件才能發(fā)揮相應(yīng)的作用。7.2外部設(shè)備一、概述1.外設(shè)的基本組成主要由兩部分組成:設(shè)備控制器——用來控制設(shè)備的具體動作,由電子線路實(shí)現(xiàn)。設(shè)備的物理結(jié)構(gòu)——大多由機(jī)、電、光、磁等原理實(shí)現(xiàn),與主機(jī)的結(jié)構(gòu)原理(電子的)差距較大。外設(shè)與主機(jī)的連接特點(diǎn):

不直接相連,一般通過接口連接。外設(shè)的結(jié)構(gòu)框圖如下主機(jī)I/O接口外部設(shè)備設(shè)備控制器設(shè)備物理結(jié)構(gòu)部分2.外設(shè)分類:

1)人機(jī)交互設(shè)備:

用來實(shí)現(xiàn)操作者與計算機(jī)之間交流信息的設(shè)備;

如:鍵盤、鼠標(biāo)、打印機(jī)、顯示器等。2)信息駐留設(shè)備:

用來保存計算機(jī)中大批有用信息的設(shè)備;

如:磁盤、磁帶、光盤等。3)機(jī)—機(jī)通信設(shè)備:

用來實(shí)現(xiàn)計算機(jī)系統(tǒng)間通信的設(shè)備;

如:調(diào)制解調(diào)器(Modem)、D/A、A/D轉(zhuǎn)換設(shè)備等。常用的I/O設(shè)備輸入輸出設(shè)備終端設(shè)備(鍵盤+顯示器)漢字處理設(shè)備A/D、D/A轉(zhuǎn)換多媒體脫機(jī)輸入/輸出設(shè)備(軟磁盤數(shù)據(jù)站)顯示器(字符、漢字、圖形、圖像)打印設(shè)備(點(diǎn)陣式打印機(jī)、激光打印機(jī)、噴墨打印機(jī))繪圖儀(平板式、滾筒式)語音輸出輸出設(shè)備鍵盤圖形輸入設(shè)備(鼠標(biāo)器、圖形板、跟蹤球、操縱桿、光筆)圖像輸入設(shè)備(攝像機(jī)、掃描儀、傳真機(jī))條形碼,光學(xué)字符識別,語言與文字輸入輸入設(shè)備7.3I/O接口一、概述接口——硬件上廣義指計算機(jī)各部件間進(jìn)行連接的邏輯部件。一般指CPU和I/O設(shè)備間的連接部件,即I/O接口。1)引入接口的原因:由外設(shè)的特點(diǎn)決定的外設(shè)的特點(diǎn):種類和品種繁多;工作速度慢;信號類型和電平種類不同2)設(shè)置接口的理由:1、通過設(shè)置數(shù)據(jù)緩沖實(shí)現(xiàn)CPU與I/O間的速度匹配;

2、通過串—并(或并—串)轉(zhuǎn)換電路實(shí)現(xiàn)CPU與I/O之間的數(shù)據(jù)格式轉(zhuǎn)換;

3、通過電平匹配實(shí)現(xiàn)CPU與I/O之間的電氣轉(zhuǎn)換;

4、通過接收與傳達(dá)控制命令實(shí)現(xiàn)CPU對I/O接口的控制;

5、通過保存與傳送I/O狀態(tài)實(shí)現(xiàn)CPU對I/O的查詢;

6、通過設(shè)備選擇電路向CPU提供I/O尋址功能。二、接口的功能和組成(1)設(shè)備選擇線(2)數(shù)據(jù)線(3)命令線(4)狀態(tài)線I/O接口設(shè)備I/O接口設(shè)備數(shù)據(jù)線命令線狀態(tài)線I/O總線設(shè)備選擇線總線連接方式的I/O接口電路2.接口的功能和組成接口的主要功能有:(1)地址識別與設(shè)備選擇(2)接收、保存CPU的I/O控制命令(3)反映外設(shè)的工作狀態(tài)(4)信號轉(zhuǎn)換(5)數(shù)據(jù)格式、碼制的轉(zhuǎn)換與數(shù)據(jù)檢錯/糾錯(6)傳送數(shù)據(jù)(7)中斷3.I/O接口的基本組成命令寄存器和命令譯碼器設(shè)備選擇電路設(shè)備狀態(tài)標(biāo)記數(shù)據(jù)緩沖寄存器DBR控制邏輯電路I/O接口外部設(shè)備數(shù)據(jù)線命令狀態(tài)數(shù)據(jù)線命令線狀態(tài)線CPU地址線4.接口與端口I/O端口:為了便于程序?qū)/O接口中的各種寄存器進(jìn)行訪問,通常給每個寄存器分配一個地址編號,這種編號被稱為I/O端口地址,相應(yīng)的寄存器也叫作I/O端口。注意:I/O接口和I/O端口是兩個不同的概念。一個接口中往往包含若干個端口,因此接口地址往往包含有若干個端口地址。接口中包含的端口數(shù)據(jù)端口控制端口狀態(tài)端口暫存數(shù)據(jù)信息接受控制信息反映接口外設(shè)的狀態(tài)信息在用戶看來:

①CPU了解外設(shè)的狀態(tài)、②控制外設(shè)的工作、③與外設(shè)交換數(shù)據(jù),都是通過接口中用戶可見的寄存器——端口(Port)——的“讀/寫”來實(shí)現(xiàn)的。這些端口通過總線與CPU互連。CPUI/O外設(shè)系統(tǒng)外設(shè)I/O接口電路數(shù)據(jù)口狀態(tài)口命令口端口地址譯碼選擇控制邏輯ABDBDB狀態(tài)信息命令數(shù)據(jù)CBCB(1)統(tǒng)一編址:I/O與內(nèi)存統(tǒng)一進(jìn)行編址占用內(nèi)存編址空間可利用訪存指令訪問I/O口①

特點(diǎn):②圖示:內(nèi)存空間00000HFFFFFH供I/O口使用不占用內(nèi)存的編址空間有專門的輸入輸出指令①特點(diǎn):√√√√②圖示:內(nèi)存空間00000HFFFFFHI/O空間0000HFFFFH互不干擾(2)獨(dú)立編址:I/O與內(nèi)存有各自獨(dú)立的地址空間,互不干擾。5.I/O口的編址方式三、接口類型并行接口串行接口可編程接口不可編程接口通用接口專用接口1.按數(shù)據(jù)傳送方式

分類2.按功能選擇的靈活性

分類3.按通用性

分類4.按數(shù)據(jù)傳送的控制方式

分類中斷接口DMA接口Intel8255Intel8251Intel8255、Intel8251Intel8212Intel8255、Intel8251Intel8279、Intel8275Intel8259Intel82577.4程序查詢方式一、含義:在這種方式中.?dāng)?shù)據(jù)在CPU與外圍設(shè)備之間的傳送完全靠計算機(jī)程序控制,是在CPU主動控制下進(jìn)行的.當(dāng)輸入/輸出時,CPU暫停執(zhí)行本程序,轉(zhuǎn)去執(zhí)行輸入/輸出的服務(wù)程序,根據(jù)服務(wù)程序中的I/O指令進(jìn)行數(shù)據(jù)傳送.二、程序查詢流程:1.單個數(shù)據(jù)的交換過程:

I/O交換程序的核心部分主要由三步完成:

1)啟動外設(shè):

CPU通過I/O指令訪問外設(shè)的控制端口,發(fā)送相應(yīng)的控制字,啟動外設(shè)作交換數(shù)據(jù)的準(zhǔn)備;2)測試/轉(zhuǎn)移:

CPU不斷地對I/O狀態(tài)進(jìn)行測試,每測一次,都有兩種可能的結(jié)果:I/O準(zhǔn)備就緒:轉(zhuǎn)3);

I/O未準(zhǔn)備就緒:轉(zhuǎn)2)繼續(xù)測試,直到I/O準(zhǔn)備好為止。

3)交換一個數(shù)據(jù)(字或字節(jié))。現(xiàn)行程序現(xiàn)行程序就緒?交換數(shù)據(jù)啟動I/OYN就緒?N就緒?特點(diǎn):當(dāng)I/O未準(zhǔn)備就緒時,CPU需反復(fù)查詢I/O狀態(tài)而不能作其他事,因此稱此階段為“踏步等待”。踏步等待的存在對CPU工作效率有顯著的影響。2.成塊數(shù)據(jù)交換過程:

如果CPU需要用程序查詢方式交換一批數(shù)據(jù),只要在單個數(shù)據(jù)交換流程的基礎(chǔ)上,增加交換個數(shù)控制步驟即可。

現(xiàn)行程序保存要用到的寄存器內(nèi)容設(shè)置計數(shù)值設(shè)置內(nèi)存緩沖區(qū)首址修改內(nèi)存地址修改計數(shù)值傳送一個數(shù)據(jù)YN啟動外設(shè)A就緒?AB現(xiàn)行程序Y傳送完?BN就緒?啟動外設(shè)A就緒?傳送一個數(shù)據(jù)Y修改內(nèi)存地址修改計數(shù)值傳送完?B3.程序輪詢方式:

為了減少踏步等待時間的浪費(fèi),CPU可對多個I/O設(shè)備輪流進(jìn)行查詢,稱為程序輪詢方式。這是程序查詢方式的改進(jìn)方案。

程序輪詢方式時,查詢的先后順序決定了I/O設(shè)備的優(yōu)先級別,即:優(yōu)先級高的先查,優(yōu)先級低的后查。如果查詢的設(shè)備個數(shù)安排的不合適,可能有些設(shè)備總是不被查詢,導(dǎo)致數(shù)據(jù)丟失。設(shè)備1就緒?設(shè)備2就緒?N設(shè)備N就緒?…N處理設(shè)備1Y處理設(shè)備2Y處理設(shè)備NYN設(shè)備1就緒?設(shè)備2就緒?設(shè)備N就緒?三、程序查詢方式的接口電路程序查詢方式對接口控制電路的要求最簡單,主要要求設(shè)置兩個狀態(tài)觸發(fā)器,以供CPU查詢用。這兩個觸發(fā)器是:完成觸發(fā)器D和工作觸發(fā)器B。這兩個觸發(fā)器均為RS觸發(fā)器。當(dāng)D=0,B=0時,表示I/O設(shè)備處于暫停狀態(tài);當(dāng)D=1,B=0時,表示I/O設(shè)備已經(jīng)準(zhǔn)備就緒;當(dāng)D=0,B=1時,表示I/O設(shè)備正處于準(zhǔn)備狀態(tài);設(shè)備選擇電路QQ&準(zhǔn)備就緒啟動命令地址線SEL啟動設(shè)備設(shè)備工作結(jié)束DB1010SSRRQn+1=S+/R﹡Qn;SR=0②設(shè)備選擇電路DBRQQ&數(shù)據(jù)線準(zhǔn)備就緒啟動命令地址線SEL輸入數(shù)據(jù)啟動設(shè)備設(shè)備工作結(jié)束①③④⑤⑥D(zhuǎn)B①②③⑤⑥1010④工作過程以輸入為例程序查詢接口工作過程(以輸入為例):

1)CPU發(fā)I/O地址地址總線接口設(shè)備選擇器譯碼選中,發(fā)SEL信號開命令接收門;

2)CPU發(fā)啟動命令D置0,B置1接口向設(shè)備發(fā)啟動命令設(shè)備開始工作;

3)輸入:CPU等待,輸入設(shè)備讀出數(shù)據(jù)DBR;

4)外設(shè)工作完成,完成信號接口B置0,D置1;

5)準(zhǔn)備就緒信號控制總線CPU;

6)輸入:CPU通過輸入指令(IN)將DBR中的數(shù)據(jù)取走;

若為輸出,除數(shù)據(jù)傳送方向相反以外,其他工作與輸入相同。7.4程序查詢方式例.在程序查詢方式的輸入輸出系統(tǒng)中,假設(shè)不考慮處理時間,每一次查詢操作需要100個時鐘周期,CPU的時鐘周期為50MHz?,F(xiàn)有鼠標(biāo)和硬盤兩個設(shè)備,而且CPU必須每秒對鼠標(biāo)進(jìn)行30次查詢,硬盤以32位字長為單位傳輸數(shù)據(jù),即每32位被CPU查詢一次,傳輸率為2MBps。求CPU對這兩個設(shè)備查詢所花費(fèi)的時間比率,由此可得出什么結(jié)論?解.CPU對鼠標(biāo)查詢所需時鐘周期數(shù)為100×30=3000對鼠標(biāo)查詢占用的CPU時間比率為 [3000/(50×106)]×100%=0.006%硬盤每秒查詢次數(shù)為2MB/4B=512K每秒查詢的時鐘周期數(shù)為100×512×1024=52.4×106對硬盤查詢占用的CPU時間比率為 [5.24×106/(50×106)]×100%=105%結(jié)論:對鼠標(biāo)查詢不影響cpu性能;即使CPU將全部時間用于對硬盤查詢也不能滿足要求。查詢方式適用于低速設(shè)備?!璌K+1…中斷服務(wù)程序入口7.5程序中斷方式一、中斷的概念及中斷的內(nèi)容1.概念所謂中斷(Interrupt),指計算機(jī)在執(zhí)行程序的過程中,出現(xiàn)某種非預(yù)期的緊急事件,引起CPU暫?,F(xiàn)行程序的執(zhí)行,轉(zhuǎn)去處理此事件,處理完后又返回現(xiàn)行程序執(zhí)行的過程,叫中斷,或“程序中斷”。凡是向CPU提出中斷請求的各種因素,統(tǒng)稱為中斷源。(可以是硬件也可以是軟件)2.引起中斷的各種因素(1)人為設(shè)置的中斷(2)程序性事故如轉(zhuǎn)管指令溢出、操作碼不能識別、除法非法(5)外部事件(4)I/O設(shè)備(3)硬件故障用鍵盤中斷

現(xiàn)行程序轉(zhuǎn)管指令………管理程序一個完整的中斷過程一般包括以下幾方面的內(nèi)容:1)中斷請求:I/O接口具有發(fā)出中斷請求信號的能力2)中斷判優(yōu):優(yōu)先級排隊(duì)及屏蔽機(jī)制3)中斷響應(yīng):CPU對I/O的響應(yīng)4)中斷服務(wù):中斷完成的具體功能5)中斷返回:中斷服務(wù)完成后返回主程序

中斷是一種軟硬結(jié)合的技術(shù),即一部分由硬件實(shí)現(xiàn),一部分由軟件實(shí)現(xiàn)。而由硬件實(shí)現(xiàn)的功能,又分別由CPU和I/O接口完成。3.中斷的內(nèi)容其中,中斷請求和中斷判優(yōu)一般由IO接口完成;而中斷響應(yīng)、中斷服務(wù)和中斷返回由CPU完成處理器內(nèi)部必須增加相關(guān)的硬件,如:①接受中斷請求信號的引腳INTR、②發(fā)出中斷響應(yīng)信號的引腳INTA、③“中斷狀態(tài)”觸發(fā)器INT、④“中斷允許”標(biāo)志EINT、⑤將ENIT置為1的“開中斷”指令STI、⑥將ENIT清為0的“關(guān)中斷”指令CLI⑦將程序斷點(diǎn)“彈回”PC的中斷返回指令

IRET等,要支持中斷,需要多方的配合:接口中要設(shè)置:①中斷請求觸發(fā)器“INTR”②中斷屏蔽觸發(fā)器MASK。CPU主存中必須存儲:

①處理不同中斷請求的中斷服務(wù)程序。(中斷)接口主存實(shí)現(xiàn)中斷的軟/硬件,總稱為中斷系統(tǒng)。二、中斷的特點(diǎn)及其作用1.特點(diǎn):實(shí)時性(隨機(jī)性)2.作用CPU與I/O設(shè)備并行工作硬件故障報警與處理實(shí)現(xiàn)人機(jī)交互聯(lián)系實(shí)現(xiàn)多道程序分時運(yùn)行實(shí)現(xiàn)實(shí)時控制與實(shí)時處理實(shí)現(xiàn)多處理機(jī)和多計算機(jī)間的聯(lián)系實(shí)現(xiàn)用戶程序和操作系統(tǒng)程序間的轉(zhuǎn)換注意:中斷的發(fā)生是隨機(jī)的。在實(shí)現(xiàn)中斷時,必須做到:不管一個程序在執(zhí)行的過程中,是否被中斷,中斷多少次,其最終的運(yùn)行結(jié)果必須是唯一的。當(dāng)有多個中斷源向CPU提出中斷請求時,CPU必須堅(jiān)持的原則是:在任何一個時刻只能為一個中斷源的請求提供服務(wù)。三、I/O中斷:

中斷技術(shù)的產(chǎn)生,使計算機(jī)具有了處理隨機(jī)事件的能力,這是計算機(jī)功能上的一大進(jìn)步。

如果把I/O與CPU的交換過程也作為隨機(jī)事件,用程序中斷技術(shù)實(shí)現(xiàn),就構(gòu)成了所謂的“I/O中斷”。

采用程序中斷實(shí)現(xiàn)I/O交換可使I/O操作與CPU現(xiàn)行程序并行運(yùn)行,僅在I/O交換過程中現(xiàn)行程序與I/O交換程序串行運(yùn)行,不用CPU踏步等待,大大提高了CPU運(yùn)行效率。發(fā)中斷請求空閑接收數(shù)據(jù)接收數(shù)據(jù)準(zhǔn)備發(fā)中斷請求打印打印打印機(jī)執(zhí)行主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序響應(yīng)中斷中斷返回響應(yīng)中斷中斷返回啟動打印機(jī)傳送數(shù)據(jù)傳送數(shù)據(jù)CPU四、中斷系統(tǒng)需解決的問題(1)各中斷源如何

向CPU提出請求

?(2)各中斷源同時

提出請求

怎么辦?(5)如何尋找入口地址

?(4)如何保護(hù)現(xiàn)場

?(3)CPU什么條件、什么時間、以什么方式響應(yīng)中斷?(6)如何恢復(fù)現(xiàn)場,如何返回

?(7)處理中斷的過程中又出現(xiàn)新的中斷

怎么辦?硬件

軟件接口對中斷請求的支持:當(dāng)I/O設(shè)備操作完成時,通過發(fā)中斷請求信號通知CPU,這就要求I/O接口中設(shè)置“中斷請求”標(biāo)記電路,以提供持續(xù)穩(wěn)定的中斷請求信號。

接口中通常設(shè)置了一個專門的觸發(fā)器INTR來表示中斷請求狀態(tài)(INTR=1),稱為“中斷請求觸發(fā)器”。每一個向CPU發(fā)中斷請求的部件,都被CPU看成是“中斷源”。當(dāng)某個中斷源發(fā)出中斷請求信號后,CPU這邊根據(jù)情況來決定是否理睬這一信號。這一功能是通過在I/O接口中設(shè)置一個“中斷屏蔽觸發(fā)器”(MASK)實(shí)現(xiàn)的。CPU通過程序設(shè)置MASK的值,一般定義:MASK=1,表示中斷屏蔽,即CPU對該接口發(fā)的中斷請求信號不理睬;MASK=0,表示該中斷開放,CPU對其發(fā)來的中斷請求信號予以響應(yīng)。由上可知,中斷屏蔽觸發(fā)器起著對某個中斷源開關(guān)的作用,它和中斷請求觸發(fā)器在I/O接口中一般是成對設(shè)置的。結(jié)論:中斷請求功能一般是由接口硬件完成的。配置中斷請求觸發(fā)器和中斷屏蔽觸發(fā)器DQ&1INTR中斷請求觸發(fā)器MASK中斷屏蔽觸發(fā)器來自CPU的中斷查詢信號受設(shè)備本身控制INTRDMASKQD完成觸發(fā)器中斷請求

當(dāng)多個中斷源同時向CPU請求中斷時,CPU需要按其緊急程度進(jìn)行排隊(duì)。對I/O設(shè)備而言,速度越高,緊急程度就越高,則安排的優(yōu)先級就越高。111&1

&1&INTR1INTR2INTR3INTR4INTP1INTP2INTP3INTP4INTR1、

INTR2、

INTR3、

INTR4

優(yōu)先級

按降序

排列

2.中斷判優(yōu)邏輯

中斷判優(yōu)即可用硬件實(shí)現(xiàn),也可用軟件實(shí)現(xiàn)。硬件排隊(duì)判優(yōu)常用的方法有:1)獨(dú)立請求方式:(并行排隊(duì))

這種方式在CPU中設(shè)一個集中式的排隊(duì)電路,對所有中斷源發(fā)出的請求信號同時進(jìn)行排隊(duì)。2)鏈?zhǔn)讲樵兎绞剑海ù信抨?duì))

排隊(duì)電路分別設(shè)置在各I/O接口中,每個接口具有排隊(duì)器的一段。鏈?zhǔn)脚抨?duì)器邏輯示意圖如下:1INTP11INTP21INTP31INTP4&&&&INTR1INTR2INTR3INTR4INTR1INTR2INTR3INTR41&1&1&1&INTP1′

INTP2′INTP3′INTP4′INTR2INTR1INTR1INTR21&INTP2A、B、C優(yōu)先級按降序

排列(3)軟件實(shí)現(xiàn)(程序查詢)否……是否A請求?是否B請求?是否C請求?轉(zhuǎn)A的服務(wù)程序入口地址轉(zhuǎn)B的服務(wù)程序入口地址轉(zhuǎn)C的服務(wù)程序入口地址是是是否否3.中斷服務(wù)程序入口地址的尋找CPU響應(yīng)中斷的時刻一般安排在每條指令的執(zhí)行末。

CPU每執(zhí)行完一條指令,就向各中斷源發(fā)出中斷查詢信號,接到查詢信號后,滿足條件的接口發(fā)出中斷請求信號。如果通過排隊(duì)勝出,需轉(zhuǎn)到對應(yīng)的中斷服務(wù)程序執(zhí)行,因此,CPU需要獲得中斷服務(wù)程序的入口地址。CPU獲得中斷服務(wù)程序入口地址的方法有兩種:1)軟件查詢法:(非向量中斷)通過運(yùn)行一段中斷查詢程序完成,方法同軟件判優(yōu)。2)硬件向量法:(向量中斷)通過硬件專門設(shè)置向量編碼器獲得中斷服務(wù)程序入口地址。1)軟件查詢法中斷識別程序(入口地址M)地址說明指令MJMP1#SR1#D=1轉(zhuǎn)1#服務(wù)程序

SKPDZ2#JMP2#SR2#D=0跳2#D=1轉(zhuǎn)2#服務(wù)程序

SKPDZ8#JMP8#SR8#D=0跳8#D=1轉(zhuǎn)8#服務(wù)程序八個中斷源1、2、8按降序排列…………

SKPDZ1#1#D=0跳(D為完成觸發(fā)器)優(yōu)點(diǎn):不需要增加硬件,可以靈活改變中斷源的優(yōu)先級;缺點(diǎn):占用CPU時間,處理速度慢,優(yōu)先級低的中斷請求需要等待較長時間才能開始中斷服務(wù)2)硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址12H、13H、14H入口地址200、300、400…向量地址…排隊(duì)器輸出中斷向量地址形成部件設(shè)備編碼器1000…000100100100…00010011中斷入口地址產(chǎn)生過程:

中斷請求排隊(duì)判優(yōu)排隊(duì)成功信號向量編碼器中斷向量主存向量地址區(qū)主存取中斷服務(wù)程序入口地址中斷服務(wù)程序注意:中斷向量地址和中斷服務(wù)程序入口地址是兩個不同的概念。

中斷向量地址=中斷服務(wù)程序入口地址指示器1)CPU響應(yīng)中斷的條件和時間(1)條件(2)時間中斷允許觸發(fā)器EINT=1用開中斷

指令置“1”EINT用關(guān)中斷

指令置“0”EINT或硬件自動復(fù)位當(dāng)D=1(隨機(jī))且MASK=0時在每條指令執(zhí)行階段的結(jié)束前CPU

發(fā)中斷查詢信號(將INTR置“1”)4.中斷響應(yīng)2)中斷隱指令(1)保護(hù)程序斷點(diǎn)(2)尋找服務(wù)程序入口地址(3)硬件關(guān)中斷向量地址形成部件INTSQREINTSQRPC

1&≥1排隊(duì)器……斷點(diǎn)存于特定地址(0號地址)內(nèi)斷點(diǎn)進(jìn)棧INT中斷狀態(tài)EINT允許中斷R–S

觸發(fā)器向量地址PC(硬件向量法)中斷識別程序

入口地址MPC(軟件查詢法)CPU工作周期的標(biāo)志CPU訪存有四種性質(zhì)取指令取地址取操作數(shù)存程序斷點(diǎn)取指周期間址周期執(zhí)行周期中斷周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4個工作周期

提問.在中斷系統(tǒng)中,INTR、INT、EINT這三個觸發(fā)器各有何作用?

解:INTR——中斷請求觸發(fā)器,用來登記中斷源發(fā)出的隨機(jī)性中斷請求信號,以便為CPU查詢中斷及中斷排隊(duì)判優(yōu)線路提供穩(wěn)定的中斷請求信號;

EINT——中斷允許觸發(fā)器,CPU中的中斷總開關(guān)。當(dāng)EINT=1時,表示允許中斷(開中斷),當(dāng)EINT=0時,表示禁止中斷(關(guān)中斷)。其狀態(tài)可由開、關(guān)中斷等指令設(shè)置;

INT——中斷標(biāo)記觸發(fā)器,控制器時序系統(tǒng)中周期狀態(tài)分配電路的一部分,表示中斷周期標(biāo)記。當(dāng)INT=1時,進(jìn)入中斷周期,執(zhí)行中斷隱指令的操作。5.保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場1)保護(hù)現(xiàn)場2)恢復(fù)現(xiàn)場寄存器

內(nèi)容斷點(diǎn)保護(hù)現(xiàn)場其他服務(wù)程序恢復(fù)現(xiàn)場中斷返回PUSH視不同請求源而定POP中斷服務(wù)程序

完成中斷服務(wù)程序中斷隱指令

完成中斷服務(wù)程序完成IRET五、中斷服務(wù)程序流程1.中斷服務(wù)程序的流程(1)保護(hù)現(xiàn)場(2)中斷服務(wù)(3)恢復(fù)現(xiàn)場(4)中斷返回對不同的I/O設(shè)備具有不同內(nèi)容的設(shè)備服務(wù)中斷返回指令2.單重中斷和多重中斷中斷隱指令完成進(jìn)棧指令出棧指令程序斷點(diǎn)的保護(hù)寄存器內(nèi)容的保護(hù)在處理中斷的過程中,可能有新的、優(yōu)先級更高的中斷請求到來。當(dāng)這種現(xiàn)象發(fā)生時,若允許CPU暫?,F(xiàn)行的中斷服務(wù)程序,轉(zhuǎn)去處理新的中斷請求,這種現(xiàn)象稱為多重中斷或中斷嵌套,否則為單重中斷。不允許中斷

現(xiàn)行的中斷服務(wù)程序單重

中斷多重中斷允許級別更高

的中斷源中斷

現(xiàn)行的中斷服務(wù)程序klmk

+1l

+1m

+1第一次中斷第二次中斷第三次中斷程序斷點(diǎn)k+1,l+1,m+13.實(shí)現(xiàn)多重中斷的條件B,CA中斷請求主程序(2)優(yōu)先級別高

的中斷源有權(quán)中斷優(yōu)先級別低

的中斷源(1)提前

設(shè)置開中斷

指令A(yù)BCD中斷服務(wù)程序(A、B、C、D優(yōu)先級按降序排列)D4.單重中斷和多重中斷的服務(wù)程序流程中斷否?保護(hù)現(xiàn)場設(shè)備服務(wù)恢復(fù)現(xiàn)場開中斷中斷返回取指令執(zhí)行指令中斷服務(wù)程序

中斷響應(yīng)程序斷點(diǎn)進(jìn)棧關(guān)中斷向量地址PC中斷周期是中斷返回保護(hù)現(xiàn)場設(shè)備服務(wù)關(guān)中斷恢復(fù)現(xiàn)場開中斷開中斷開中斷開中斷中斷隱指令中斷隱指令否取指令執(zhí)行指令中斷否?否

中斷響應(yīng)程序斷點(diǎn)進(jìn)棧關(guān)中斷向量地址PC中斷周期是中斷服務(wù)程序單重多重六、中斷屏蔽中斷判優(yōu)和中斷響應(yīng),通常是由硬件完成的。這樣,在中斷優(yōu)先級確定后,中斷響應(yīng)的順序也就隨之確定了。能否在運(yùn)行時,臨時調(diào)整中斷的服務(wù)順序呢?回答是肯定的,一個可行的解決方案就是引入由操作系統(tǒng)管理的、可變的“中斷屏蔽字”。

在CPU響應(yīng)了某級中斷的某個中斷源發(fā)來的中斷請求后,系統(tǒng)將該中斷源所屬中斷級別對應(yīng)的中斷屏蔽字,寫入中斷屏蔽寄存器IMR。CPU根據(jù)中斷屏蔽字決定屏蔽掉某些級別中斷的請求信號,使其不能進(jìn)入排隊(duì)器排隊(duì),從而間接地改變中斷響應(yīng)順序。

&1.屏蔽觸發(fā)器的作用MASK=0(未屏蔽)INTR能被置“1”

1

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ1DINTR

MASKQCPU查詢MASKi

=1(屏蔽)INTPi

=0(不能被排隊(duì)選中)中斷處理程序級別中斷級屏蔽位1級2級3級4級第1級第2級第3級第4級1000110011101111中斷處理順序就是中斷響應(yīng)順序時的中斷屏蔽字設(shè)“1”代表屏蔽,“0”表示開放2.屏蔽字優(yōu)先級屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111……000000000000001100000000000000011234561516……16個中斷源1、2、3……

16按降序

排列3.屏蔽技術(shù)可改變處理優(yōu)先等級響應(yīng)優(yōu)先級響應(yīng)優(yōu)先級A→B→C→D降序排列

不可改變處理優(yōu)先級可改變(通過重新設(shè)置屏蔽字)中斷源原屏蔽字新屏蔽字ABCD11110111001100011111010001100111處理優(yōu)先級A→D→C→B

降序排列服務(wù)程序B處理完C處理完D處理完A處理完t主程序A程序B程序C程序D程序A、B、C、D同時請求中斷CPU執(zhí)行程序軌跡(原屏蔽字)3.屏蔽技術(shù)可改變處理優(yōu)先等級4.屏蔽技術(shù)的其他作用便于程序控制可以人為地屏蔽

某個中斷源的請求服務(wù)程序D處理完C處理完B處理完A處理完t主程序A程序B程序C程序D程序A、B、C、D同時請求中斷CPU執(zhí)行程序軌跡(新屏蔽字)3.屏蔽技術(shù)可改變處理優(yōu)先等級5.新屏蔽字的設(shè)置保護(hù)現(xiàn)場置屏蔽字開中斷中斷服務(wù)關(guān)中斷恢復(fù)現(xiàn)場恢復(fù)屏蔽字開中斷中斷返回

置屏蔽字

恢復(fù)屏蔽字

關(guān)中斷

開中斷設(shè)備選擇電路DBRDQ&數(shù)據(jù)線啟動命令地址線SEL輸入數(shù)據(jù)啟動設(shè)備設(shè)備工作結(jié)束&1QQDINTRBQQMASK設(shè)備編碼器排隊(duì)器中斷查詢來自高一級的排隊(duì)器至低一級的排隊(duì)器向量地址中斷響應(yīng)INTA中斷請求命令譯碼①②③④⑤⑥⑦⑧七、I/O中斷處理過程①10&DBR③④⑤⑦⑧⑥設(shè)備選擇電路01以輸入為例②主程序和服務(wù)程序搶占CPU示意準(zhǔn)備工作準(zhǔn)備工作準(zhǔn)備工作傳送數(shù)據(jù)傳送數(shù)據(jù)發(fā)中斷請求發(fā)中斷請求I/O宏觀

上CPU和I/O并行

工作微觀

上CPU中斷現(xiàn)行程序

為I/O服務(wù)主程序繼續(xù)執(zhí)行主程序啟動外設(shè)

服務(wù)程序(傳送數(shù)據(jù))

服務(wù)程序(傳送數(shù)據(jù))繼續(xù)執(zhí)行主程序CPU程序中斷接口芯片8259A的內(nèi)部結(jié)構(gòu)

內(nèi)部總線緩沖器讀/寫邏輯級聯(lián)緩沖器/比較器優(yōu)先權(quán)比較器(PR)中斷服務(wù)寄存器(ISR)

中斷

請求

寄存

器(IRR)中斷屏蔽寄存器(IMR)控制邏輯INTINTAD7~D0A0RDWRCSCAS0CAS1CAS2SP/ENIR0IR1IR2IR3IR4IR5IR6IR7內(nèi)部總線八、中斷控制器8259A8259A的主要引腳描述如下:IR7∽IR0:輸入引腳,用于接收來至外設(shè)的中斷請求信號INT:輸出引腳,一般與CPU的INTR引腳連接。當(dāng)8259A接收到外設(shè)的中斷請求信號后,通過該引腳統(tǒng)一向CPU發(fā)中斷請求。INTA:這是一個輸入引腳,用于接收來至CPU的中斷響應(yīng)信號INTA。4.

CS:片選信號,允許8259A進(jìn)行編程與控制。5.WR:低電位有效,與系統(tǒng)的寫入控制線連接。6.RD:低電位有效,與系統(tǒng)的讀出控制線連接。7.A0:用A0的取值來選擇8259A內(nèi)部不同的命令字。8259A的主要引腳描述如下:8.SP/EN:主從定義/緩沖器方向。接高電平時為主片,接低電平時為從片。當(dāng)8259A工作于緩沖器方式時,它作為控制緩沖器傳送方向的輸出控制線;否則為輸入線。9.CAS2∽CAS0:級連控制信號,主片為輸出,從片為輸出。主片輸出一個識別碼,哪一個從片的識別碼與其相符,則該從片的中斷請求被準(zhǔn)許。主片最多可以控制8個從片。九、8086/8088微處理器的中斷系統(tǒng)1.概述

8086/8088微處理器的中斷源分為兩類:①位于處理器外部、由硬件引起的硬件中斷(或外部中斷)硬件中斷又分為不可屏蔽中斷和可屏蔽中斷。它們的請求信號,分別由不可屏蔽中斷請求輸入引腳NMI和可屏蔽中斷請求輸入引腳INTR輸入到處理器中。當(dāng)有不可屏蔽中斷請求信號到來時,處理器會在結(jié)束當(dāng)前指令的執(zhí)行后,立即轉(zhuǎn)去執(zhí)行不可屏蔽中斷處理程序。②來自處理器內(nèi)部、由某條指令的執(zhí)行或某個標(biāo)志位的設(shè)置而引起的軟件中斷(或內(nèi)部中斷)。8086/8088微處理器的中斷系統(tǒng)框圖

“屏蔽”是通過標(biāo)志寄存器中的中斷允許標(biāo)志IF來實(shí)現(xiàn)的。處理器會在每條指令執(zhí)行的末尾,掃描INTR引腳。當(dāng)檢測到請求信號時,則檢查IF。①若IF=1,則表示屏蔽中斷、不響應(yīng),②否則響應(yīng)。響應(yīng)信號通過INTA引腳發(fā)給中斷源。軟件中斷有5類:①除法錯誤(溢出或除數(shù)為0)、②定點(diǎn)加法溢出、③斷點(diǎn)中斷、④單步中斷⑤中斷指令I(lǐng)NTn。

軟件中斷不會發(fā)出請求信號,也不需要響應(yīng)信號。除單步中斷外,內(nèi)部中斷無法用軟件禁止。響應(yīng)中斷后,8086/8088微處理器進(jìn)入中斷周期。中斷周期內(nèi),8086/8088微處理器將執(zhí)行的操作是:(1)發(fā)出中斷響應(yīng)信號INTA.(2)將標(biāo)志寄存器FR壓入堆棧,將IF和TF清為0.(3)依次將寄存器CS和IP壓入堆棧.(4)根據(jù)中斷類型號找到中斷處理程序的入口地址,并將其寫入寄存器CS和IP.2.中斷向量和向量表

8086/8088微處理器的中斷處理程序的入口地址表示為:中斷向量“CS:IP”8086/8088微處理器被設(shè)計成最多能管理256個中斷。這些中斷的中斷向量組成中斷向量表。每個中斷向量長4個字節(jié),故中斷向量表的大小為1024字節(jié)00000H……FFFFFH00001H00002H00003H0號中斷的中斷向量(地址)003FCH003FDH003FEH003FFH256號中斷的中斷向量(地址)CSIPCSIP8086/8088微處理器管理中斷是通過中斷類型號(0~255)來實(shí)現(xiàn)的。前32個中斷向量為系統(tǒng)專用。其中,①0號是“除法錯誤”中斷,②1號是“單步”中斷,③2號是“非屏蔽”中斷,④3號是“斷點(diǎn)”中斷或INT3,⑤4號是“溢出”中斷或INTO。中斷類型5到31,系統(tǒng)保留使用。0號中斷1號中斷2號中斷3號中斷4號中斷5號中斷…31號中斷…255號中斷…中斷向量表3.中斷指令I(lǐng)NTn和中斷返回指令I(lǐng)RET廣義上的INTn指令,包括了:①INT3(即斷點(diǎn)中斷)和②INT4(即INTO)。但除INT3和INTO為單字節(jié)指令外,其余INTn指令為2個字節(jié)的指令,第1個字節(jié)是操作碼,第2個字節(jié)是操作數(shù)。操作數(shù)n為中斷類型號,當(dāng)執(zhí)行INTn時,系統(tǒng)根據(jù)類型號n找到中斷處理程序的入口地址。中斷返回指令I(lǐng)RET的功能是順序從堆棧中彈出3個字,依次送入寄存器IP、CS和FR。中斷優(yōu)先級,由高到低,依次為:①軟件中斷(不含單步中斷)②不可屏蔽中斷、③可屏蔽中斷、④

單步中斷。

練習(xí).現(xiàn)有A、B、C、D四個中斷源,其優(yōu)先級由高向低按A→B→C→D順序排列。若中斷服務(wù)程序的執(zhí)行時間為20μs,請根據(jù)下圖所示時間軸給出的中斷源請求中斷的時刻,畫出CPU執(zhí)行程序的軌跡。

解:CPU執(zhí)行程序的軌跡圖如下:A服務(wù)B服務(wù)C服務(wù)D服務(wù)現(xiàn)行程序0102030405060708090100110120130140150t(μs)

B與C請求D請求B請求A請求

練習(xí).設(shè)某機(jī)有五個中斷源L0、L1、L2、L3、L4,按中斷響應(yīng)的優(yōu)先次序由高向低排序?yàn)長0L1L2L3L4,現(xiàn)要求中斷處理次序改為L1L4L2L0L3,根據(jù)下面的格式,寫出各中斷源的屏蔽字。

解:各中斷源屏蔽狀態(tài)見下表:中斷源屏蔽字01234L0L1L2L3L41001011111101100001010111例.在程序中斷方式中,磁盤申請中斷優(yōu)先權(quán)高于打印機(jī)。當(dāng)打印機(jī)正在打印時,磁盤申請中斷,試問是否要將打印機(jī)輸出停下來?7.6DMA方式一、DMA方式的特點(diǎn)及應(yīng)用1.概述:

DMA是在高速外設(shè)和主存儲器間自動成批傳送信息而盡量減少CPU干預(yù)的輸入/輸出方式。DMA方式在I/O與主存之間開辟了一條直接的數(shù)據(jù)通路,I/O交換不需通過CPU進(jìn)行,大大提高了交換速度。另外,交換操作不影響CPU現(xiàn)行程序的執(zhí)行,CPU工作效率不會下降。CPU主存ACC中斷接口DMA接口I/O設(shè)備中斷方式數(shù)據(jù)傳送通路輸入指令輸出指令DMA方式數(shù)據(jù)傳送通路2.DMA與主存交換數(shù)據(jù)的三種方式1)停止CPU訪問主存:

當(dāng)DMA要和主存交換數(shù)據(jù)時,CPU暫?,F(xiàn)行程序的運(yùn)行,等待DMA將一批數(shù)據(jù)全部傳送完才繼續(xù)工作。

這種方法實(shí)現(xiàn)簡單但對CPU工作效率影響較大,不是典型的DMA方式。其改進(jìn)方法是在DMA控制器中設(shè)一小容量存儲器,使I/O先和小存交換,小存再和主存交換,這樣交換時可使MM全速運(yùn)行,減少CPU等待時間。

這種方法與程序查詢方式有點(diǎn)像,但有區(qū)別:不用程序查詢;不破壞CPU現(xiàn)場,CPU只需暫停即可。主存工作時間CPU不執(zhí)行程序DMA不工作DMA不工作DMA工作CPU控制并使用主存DMA控制并使用主存t2)周期挪用(周期竊?。?/p>

當(dāng)DMA交換時,CPU不需完全停止等待,可繼續(xù)運(yùn)行程序。每當(dāng)I/O準(zhǔn)備好一個數(shù)據(jù)時,就發(fā)出DMA請求,DMA控制器在接到請求后,申請總線控制權(quán),占用一到二個主存周期與主存交換數(shù)據(jù),交換完后就釋放總線,CPU此時如要訪存,可暫停一到二個主存周期,如不訪存,可照常運(yùn)行程序。

由于I/O操作比CPU慢得多,因此I/O交換占用主存的時間比例并不大,暫停一到二個主存周期對CPU工作影響不大,就像被DMA偷去了幾個主存周期而CPU沒有覺察一樣,因此這種方式也稱為“周期竊取”。這是一種典型的DMA方式。主存工作時間CPU控制并使用主存DMA控制并使用主存t3)DMA與CPU交替訪存:

這種方式適合CPU工作周期比主存周期長一倍以上的情況。此時一個CPU工作周期中含有兩個主存周期,因此可將CPU工作周期劃分為兩半(C1、C2),然后規(guī)定CPU和DMA訪存各用一半(如C1時DMA訪存,C2時CPU訪存),這樣CPU與I/O可交替訪存,兩者的工作效率毫無影響。由于這一點(diǎn),這種方式也叫“透明的DMA”。

這是一種高效的傳送方式,但需要較高的技術(shù)支持,硬件結(jié)構(gòu)較復(fù)雜。主存工作時間DMA控制并使用主存CPU控制并使用主存t3.DMA的特點(diǎn)及應(yīng)用1)特點(diǎn):靠硬件控制傳送不用保護(hù)現(xiàn)場不具備處理故障的能力優(yōu)先級高,響應(yīng)速度快2)DMA應(yīng)用場合:用于高速數(shù)據(jù)傳送的場合硬盤及軟盤的I/O接口通信信道的I/O接口多處理機(jī)和多任務(wù)系統(tǒng)CRT掃描二、DMA接口的功能和組成(1)向CPU申請DMA傳送(2)處理總線控制權(quán)的轉(zhuǎn)交(3)管理

系統(tǒng)總線、控制

數(shù)據(jù)傳送(4)確定

數(shù)據(jù)傳送的首地址和長度(5)DMA傳送結(jié)束時,給出操作完成信號修正

傳送過程中的數(shù)據(jù)地址和長度1.DMA接口的功能:

DMA接口實(shí)際上起著接口和DMA控制器雙重作用。所以DMA接口中一般應(yīng)包括如下功能:2.DMA接口組成DMA接口主存CPUDMA控制邏輯中斷邏輯設(shè)備HLDAARWCDARHRQ中斷請求數(shù)據(jù)線地址線+1+1溢出信號DREQDACKBRAR:主存地址寄存器WC:字計數(shù)器DAR:設(shè)備地址寄存器BR:數(shù)據(jù)緩沖寄存器三、DMA的工作過程1.DMA傳送過程預(yù)處理、數(shù)據(jù)傳送、后處理(1)預(yù)處理通過幾條輸入輸出指令預(yù)置如下信息通知DMA控制邏輯傳送方向(入/出)設(shè)備地址DMA的DAR主存地址DMA的AR傳送字?jǐn)?shù)DMA的WC預(yù)處理:主存起始地址設(shè)備地址傳送數(shù)據(jù)個數(shù)啟動設(shè)備DMADMADMA數(shù)據(jù)傳送:繼續(xù)執(zhí)行主程序同時完成一批數(shù)據(jù)傳送后處理:中斷服務(wù)程序做DMA結(jié)束處理繼續(xù)執(zhí)行主程序CPU(2)DMA傳送過程示意允許傳送?主存地址送總線數(shù)據(jù)送I/O設(shè)備(或主存)主存地址加1傳送個數(shù)減1數(shù)據(jù)塊傳送結(jié)束?向CPU申請程序中斷DMA請求否否是是數(shù)據(jù)傳送(3)數(shù)據(jù)傳送過程(輸入)BR設(shè)備DMA控制邏輯中斷邏輯ARWCDARDMA接口主存CPU+1+1DREQ②HRQ③HLDA④地址線⑤DACK⑥①數(shù)據(jù)線⑦溢出信號中斷請求ARWC+1+1BRBRBRBRBRBRBR設(shè)備DMA控制邏輯中斷邏輯ARWCDARDMA接口主存CPU+1+1DREQ②HRQ③HLDA④地址線⑤DACK⑥①數(shù)據(jù)線⑦溢出信號中斷請求ARWC+1+1(4)數(shù)據(jù)傳送過程(輸出)BRBRBRBR(5)后處理校驗(yàn)送入主存的數(shù)是否正確是否繼續(xù)用DMA測試傳送過程是否正確,錯則轉(zhuǎn)診斷程序由中斷服務(wù)程序完成例.一個DMA接口可采用周期竊取方式把字符傳送到存儲器,它支持的最大批量為400個字節(jié)。若存取周期為100ns,每處理一次中斷需5μs,現(xiàn)有的字符設(shè)備傳輸率為9600bps。假設(shè)字符之間的傳輸是無間隙的,若忽略預(yù)處理所需要的時間,試問采用DMA方式每秒因數(shù)據(jù)傳輸需占用處理器多少時間?如果完全采用中斷方式,又需占用處理器多少時間?解:每秒傳輸9600/8=1200B傳送1200個字符需要1200個存取周期,占用處理器時間為0.1×1200+5×(1200/400)=135μs若采用中斷方式,占用處理器時間為5×1200=6000μs例.假設(shè)磁盤采用DMA方式與主機(jī)交換信息,其數(shù)據(jù)傳輸率為2MBps,而且DMA的預(yù)處理需1000個時鐘周期,DMA完成傳送后處理中斷需500個時鐘周期。如果平均傳輸?shù)臄?shù)據(jù)長度為4KB,試問在磁盤工作時,50MHz的處理器需用多少時間比率進(jìn)行DMA輔助操作(預(yù)處理和后處理)?解:DMA傳送過程包括預(yù)處理、數(shù)據(jù)傳送和后處理3個階段。傳送4KB數(shù)據(jù)長度需4KB/2MBps=0.002s如果磁盤不斷進(jìn)行傳輸,每秒所需的DMA輔助操作的時鐘周期為(1000+500)/0.002=750000故DMA輔助操作占用CPU的時間比率為[750000/(50×106)]×100%=1.5%例.假設(shè)磁盤存儲器轉(zhuǎn)速為3000rpm,分8個扇區(qū),每個扇區(qū)存儲1KB,主存與磁盤存儲器傳送的寬度為16b。假設(shè)一條指令最長執(zhí)行時間是25μs,是否可采用一條指令執(zhí)行結(jié)束時響應(yīng)DMA請求,為什么?若不行,應(yīng)采取什么方案?解:磁盤轉(zhuǎn)速為3000/60=50r/s磁盤每秒可傳送信息1KB×8×50=400KB若采用DMA方式,每秒需有200K次DMA請求,即每隔5μs有一次DMA請求。如果采用一條指令執(zhí)行結(jié)束時響應(yīng)DMA請求,會造成數(shù)據(jù)丟失。必須按每個存取周期結(jié)束響應(yīng)DMA請求的方案。2.DMA接口與系統(tǒng)的連接方式DMA接口1DMA接口2DMA接口nCPU…主存DMA響應(yīng)I/O總線數(shù)據(jù)線地址線DMA請求(1)具有公共請求線的DMA請求(2)獨(dú)立的DMA請求DMA接口1DMA接口2DMA接口3CPU主存DMA響應(yīng)1DMA請求1DMA響應(yīng)2DMA請求2DMA響應(yīng)3DMA請求3I/O總線數(shù)據(jù)線地址線3.DMA方式與程序中斷方式的比較(1)數(shù)據(jù)傳送(2)響應(yīng)時間(3)處理異常情況(4)中斷請求(5)優(yōu)先級中斷方式DMA方式程序硬件指令執(zhí)行結(jié)束存取周期結(jié)束能不能低高傳送數(shù)據(jù)后處理四、DMA接口的類型1.選擇型在物理上

連接多個

設(shè)備在邏輯上

只允許連接一個

設(shè)備設(shè)備地址寄存器控制狀態(tài)寄存器數(shù)據(jù)緩沖寄存器主存地址寄存器時序電路字計數(shù)器DMA接口CPU主存設(shè)備1設(shè)備2設(shè)備n選擇線...系統(tǒng)總線2.多路型在物理上連接多個設(shè)備在邏輯上允許連接多個設(shè)備同時工作設(shè)備設(shè)備設(shè)備DMA接口CPU主存…鏈?zhǔn)皆O(shè)備設(shè)備設(shè)備DMA接口CPU主存…獨(dú)立請求式

某計算機(jī)處理器主頻為50MHz,采用定時查詢方式控制設(shè)備A的I/O,查詢程序運(yùn)行一次所用的機(jī)器周期數(shù)至少為50

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論