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

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)報(bào)告時(shí)間備選:15周周三晚、周六下午、周六晚上、周日晚7.6DMA方式7.5程序中斷方式7.4程序查詢方式7.3I/O接口7.2外部設(shè)備7.1概述計(jì)算機(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)每個(gè)I/O設(shè)備利用各自的邏輯控制電路與CPU相連(2)I/O與CPU交換信息時(shí),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ì)算機(jī)系統(tǒng)2、程序查詢I/O方式CPU讀I/O狀態(tài)檢查狀態(tài)未準(zhǔn)備就緒N數(shù)據(jù)傳送YCPU主動(dòng)去查詢外設(shè)在這種方式中.?dāng)?shù)據(jù)在CPU與外圍設(shè)備之間的傳送完全靠計(jì)算機(jī)程序控制,是在CPU主動(dòng)控制下進(jìn)行的.當(dāng)輸入/輸出時(shí),CPU暫停執(zhí)行本程序,轉(zhuǎn)去執(zhí)行輸入/輸出的服務(wù)程序,根據(jù)服務(wù)程序中的I/O指令進(jìn)行數(shù)據(jù)傳送.特點(diǎn):簡(jiǎn)單,CPU效率低,CPU、各外設(shè)串行工作;踏步等待3.程序中斷方式I/O工作CPU不查詢CPU暫?,F(xiàn)行程序自身準(zhǔn)備與主機(jī)交換信息CPU和I/O并行工作

啟動(dòng)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向主存寫入一個(gè)字CPU主存從I/O接口中讀一個(gè)字到CPUI/OCPU中斷請(qǐng)求I/OCPU出錯(cuò)是否未錯(cuò)4.DMA方式主存和I/O之間有一條直接數(shù)據(jù)通道不中斷現(xiàn)行程序周期挪用(周期竊?。〤PU和I/O并行工作存取周期結(jié)束CPU執(zhí)行現(xiàn)行程序CPU執(zhí)行現(xiàn)行程序DMA請(qǐng)求啟動(dòng)I/OI/O準(zhǔn)備I/O準(zhǔn)備一個(gè)存取周期實(shí)現(xiàn)I/O與主存之間的傳送三種方式的CPU工作效率比較存取周期結(jié)束CPU執(zhí)行現(xiàn)行程序CPU執(zhí)行現(xiàn)行程序DMA請(qǐng)求啟動(dòng)I/OI/O準(zhǔn)備I/O準(zhǔn)備一個(gè)存取周期實(shí)現(xiàn)I/O與主存之間的傳送CPU

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

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

CPUM.M通道I/O特點(diǎn):1)通道可以看作是一個(gè)I/O處理器,有專用通道指令。2)I/O通道受CPU控制:?jiǎn)?dòng)、停止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)對(duì)主機(jī)來說獨(dú)立性更高。二、輸入輸出系統(tǒng)的組成I/O系統(tǒng)——計(jì)算機(jī)系統(tǒng)中完成輸入/輸出功能的子系統(tǒng),由I/O軟件和I/O硬件兩部分聯(lián)合組成。1.I/O硬件:由計(jì)算機(jī)系統(tǒng)中所有I/O設(shè)備及其接口電路組成,是I/O系統(tǒng)的基礎(chǔ)。2.I/O軟件:

通常指用I/O指令編制的、對(duì)I/O接口及設(shè)備進(jìn)行管理和訪問的程序,常稱為I/O驅(qū)動(dòng)程序。只有在I/O驅(qū)動(dòng)程序的作用下,I/O硬件才能發(fā)揮相應(yīng)的作用。7.2外部設(shè)備一、概述1.外設(shè)的基本組成主要由兩部分組成:設(shè)備控制器——用來控制設(shè)備的具體動(dòng)作,由電子線路實(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ì)算機(jī)之間交流信息的設(shè)備;

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

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

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

用來實(shí)現(xiàn)計(jì)算機(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í)別,語言與文字輸入輸入設(shè)備7.3I/O接口一、概述接口——硬件上廣義指計(jì)算機(jī)各部件間進(jìn)行連接的邏輯部件。一般指CPU和I/O設(shè)備間的連接部件,即I/O接口。1)引入接口的原因:由外設(shè)的特點(diǎn)決定的外設(shè)的特點(diǎn):種類和品種繁多;工作速度慢;信號(hào)類型和電平種類不同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對(duì)I/O接口的控制;

5、通過保存與傳送I/O狀態(tài)實(shí)現(xiàn)CPU對(duì)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í)別與設(shè)備選擇(2)接收、保存CPU的I/O控制命令(3)反映外設(shè)的工作狀態(tài)(4)信號(hào)轉(zhuǎn)換(5)數(shù)據(jù)格式、碼制的轉(zhuǎn)換與數(shù)據(jù)檢錯(cuò)/糾錯(cuò)(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)行訪問,通常給每個(gè)寄存器分配一個(gè)地址編號(hào),這種編號(hào)被稱為I/O端口地址,相應(yīng)的寄存器也叫作I/O端口。注意:I/O接口和I/O端口是兩個(gè)不同的概念。一個(gè)接口中往往包含若干個(gè)端口,因此接口地址往往包含有若干個(gè)端口地址。接口中包含的端口數(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ì)算機(jī)程序控制,是在CPU主動(dòng)控制下進(jìn)行的.當(dāng)輸入/輸出時(shí),CPU暫停執(zhí)行本程序,轉(zhuǎn)去執(zhí)行輸入/輸出的服務(wù)程序,根據(jù)服務(wù)程序中的I/O指令進(jìn)行數(shù)據(jù)傳送.二、程序查詢流程:1.單個(gè)數(shù)據(jù)的交換過程:

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

1)啟動(dòng)外設(shè):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

現(xiàn)行程序轉(zhuǎn)管指令………管理程序一個(gè)完整的中斷過程一般包括以下幾方面的內(nèi)容:1)中斷請(qǐng)求:I/O接口具有發(fā)出中斷請(qǐng)求信號(hào)的能力2)中斷判優(yōu):優(yōu)先級(jí)排隊(duì)及屏蔽機(jī)制3)中斷響應(yīng):CPU對(duì)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)容其中,中斷請(qǐng)求和中斷判優(yōu)一般由IO接口完成;而中斷響應(yīng)、中斷服務(wù)和中斷返回由CPU完成處理器內(nèi)部必須增加相關(guān)的硬件,如:①接受中斷請(qǐng)求信號(hào)的引腳INTR、②發(fā)出中斷響應(yīng)信號(hào)的引腳INTA、③“中斷狀態(tài)”觸發(fā)器INT、④“中斷允許”標(biāo)志EINT、⑤將ENIT置為1的“開中斷”指令STI、⑥將ENIT清為0的“關(guān)中斷”指令CLI⑦將程序斷點(diǎn)“彈回”PC的中斷返回指令

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

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

中斷技術(shù)的產(chǎn)生,使計(jì)算機(jī)具有了處理隨機(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ā)中斷請(qǐng)求空閑接收數(shù)據(jù)接收數(shù)據(jù)準(zhǔn)備發(fā)中斷請(qǐng)求打印打印打印機(jī)執(zhí)行主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序響應(yīng)中斷中斷返回響應(yīng)中斷中斷返回啟動(dòng)打印機(jī)傳送數(shù)據(jù)傳送數(shù)據(jù)CPU四、中斷系統(tǒng)需解決的問題(1)各中斷源如何

向CPU提出請(qǐng)求

?(2)各中斷源同時(shí)

提出請(qǐng)求

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

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

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

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

怎么辦?硬件

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

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

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

&1&INTR1INTR2INTR3INTR4INTP1INTP2INTP3INTP4INTR1、

INTR2、

INTR3、

INTR4

優(yōu)先級(jí)

按降序

排列

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

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

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

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

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

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

CPU每執(zhí)行完一條指令,就向各中斷源發(fā)出中斷查詢信號(hào),接到查詢信號(hào)后,滿足條件的接口發(fā)出中斷請(qǐng)求信號(hào)。如果通過排隊(duì)勝出,需轉(zhuǎn)到對(duì)應(yīng)的中斷服務(wù)程序執(zhí)行,因此,CPU需要獲得中斷服務(wù)程序的入口地址。CPU獲得中斷服務(wù)程序入口地址的方法有兩種:1)軟件查詢法:(非向量中斷)通過運(yùn)行一段中斷查詢程序完成,方法同軟件判優(yōu)。2)硬件向量法:(向量中斷)通過硬件專門設(shè)置向量編碼器獲得中斷服務(wù)程序入口地址。1)軟件查詢法中斷識(shí)別程序(入口地址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ù)程序八個(gè)中斷源1、2、8按降序排列…………

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

中斷多重中斷允許級(jí)別更高

的中斷源中斷

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

+1l

+1m

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

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

的中斷源(1)提前

設(shè)置開中斷

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

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

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

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

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

1

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ1DINTR

MASKQCPU查詢MASKi

=1(屏蔽)INTPi

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

16按降序

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

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

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

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

置屏蔽字

恢復(fù)屏蔽字

關(guān)中斷

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

上CPU和I/O并行

工作微觀

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

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

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

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

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

中斷

請(qǐng)求

寄存

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

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

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

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

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

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

單步中斷。

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

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

B與C請(qǐng)求D請(qǐng)求B請(qǐng)求A請(qǐng)求

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

連接多個(gè)

設(shè)備在邏輯上

只允許連接一個(gè)

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論