計算機組成原理-第9章-輸入輸出系統(tǒng)課件_第1頁
計算機組成原理-第9章-輸入輸出系統(tǒng)課件_第2頁
計算機組成原理-第9章-輸入輸出系統(tǒng)課件_第3頁
計算機組成原理-第9章-輸入輸出系統(tǒng)課件_第4頁
計算機組成原理-第9章-輸入輸出系統(tǒng)課件_第5頁
已閱讀5頁,還剩116頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章輸入輸出系統(tǒng)

1計算機組成原理9.1概述對于一個計算機整機系統(tǒng)而言,除了CPU和存儲器系統(tǒng)之外,第三個關(guān)鍵性的系統(tǒng)就是輸入輸出系統(tǒng)(Input/OutputSystem,簡稱I/O系統(tǒng)),該系統(tǒng)的功能是:1.為得到高效可靠的數(shù)據(jù)傳輸,選擇輸入輸出設(shè)備。2.在選定的輸入輸出設(shè)備和CPU(或內(nèi)存)之間進行數(shù)據(jù)交換。由于種類繁多、功能結(jié)構(gòu)各異的I/O設(shè)備(也稱為外部設(shè)備),在與主機的連接方法和信息交換方法上各不相同,因此I/O系統(tǒng)是計算機系統(tǒng)中最具有多樣性和復(fù)雜性的子系統(tǒng)。為了發(fā)揮主機性能,提高主機效率和得到高效可靠的信息傳遞,組織合理的I/O系統(tǒng),配備先進的I/O技術(shù)及接口部件是非常必要的。本章將以I/O設(shè)備與主機的交換方式為主線介紹I/O組織。2計算機組成原理9.1.1I/O系統(tǒng)的組成I/O系統(tǒng)由I/O軟件和I/O硬件兩部分組成。1.I/O軟件I/O軟件的主要任務(wù)是:將用戶編制的程序(或數(shù)據(jù))輸入主機;將運算結(jié)果輸送給用戶;實現(xiàn)I/O系統(tǒng)與主機的協(xié)調(diào)工作。2.I/O硬件I/O硬件的組成是多種多樣的,一般由接口和I/O設(shè)備(也稱為外部設(shè)備)組成。3計算機組成原理9.1.2I/O設(shè)備與主機的聯(lián)系方式1.I/O設(shè)備與主機的連接方式I/O設(shè)備與主機是通過一組總線與接口連接的。接口由標準邏輯和非標準邏輯兩部分組成。通過標準邏輯掛在總線上,通過非標準邏輯部分與各種不同設(shè)備連接,以滿足對不同設(shè)備的控制要求。在單機系統(tǒng)中常采用的總線結(jié)構(gòu)有:單總線結(jié)構(gòu)和雙總線結(jié)構(gòu)。4計算機組成原理(1)單總線結(jié)構(gòu)計算機若把總線控制邏輯做在主機內(nèi),主機可當作一個獨立設(shè)備掛在總線上,這就形成單總線結(jié)構(gòu)機器,如圖9-1所示。在單總線結(jié)構(gòu)機器中,CPU、主存及全部I/O設(shè)備都掛在總線上。他們之間的通信都是以相同形式通過單總線進行的;對每個發(fā)送的信息,規(guī)定其信息類型和接受信息的部件,以協(xié)調(diào)信息的傳送。必須經(jīng)過選擇判優(yōu)以確保每一時刻只有兩個設(shè)備在進行通信;還需要對信息傳送定時,防止信息的丟失和判斷本次傳送是否有效,這需要設(shè)置總線控制線路。總線控制線路包括總線判優(yōu)邏輯、總線仲裁邏輯、驅(qū)動器和中斷邏輯等部件。由于連到總線上的各部件是互相獨立的,因此當系統(tǒng)擴充、更換和維修時,從總線上摘下各個部件而不影響主機的工作。5計算機組成原理圖9-1單總線結(jié)構(gòu)6計算機組成原理這種連接方法的缺點是:所有設(shè)備共享同一總線這唯一的通信資源;同一時刻不允許多于兩臺設(shè)備進行通信,所以總線信息吞吐量影響了信息交換速度,特別是高速大容量存儲設(shè)備加在單總線上時,會使總線負荷太重,這對提高系統(tǒng)效率和充分利用系統(tǒng)不利。為解決這個問題,在主存與這類設(shè)備之間加入DMA總線,如圖9-2所示。上面這兩種連接方法仍只適用于微、小型機器,為了解決I/O設(shè)備、CPU與主存之間的傳送速率差的問題,在大中型機中將I/O總線和系統(tǒng)總線分開。7計算機組成原理圖9-2具有DMA總線的單總線結(jié)構(gòu)8計算機組成原理(2)雙總線結(jié)構(gòu)將I/O總線和系統(tǒng)總線分開形成雙總線結(jié)構(gòu)。這種連接方法使CPU從管理和控制I/O系統(tǒng)的重擔下解放出來,把管理設(shè)備的任務(wù)交給通道或IOP(輸入輸出處理機)。實現(xiàn)了不同速率的數(shù)據(jù)傳送分開管理,從而提高系統(tǒng)效率,如圖9-3所示:9計算機組成原理圖9-3雙總線結(jié)構(gòu)10計算機組成原理2.I/O的編址方式通常將I/O設(shè)備賦予設(shè)備碼,每個設(shè)備的地址碼可視為地址碼,對于I/O地址碼的編址可采用統(tǒng)一編址和獨立編址兩種方式。(1)統(tǒng)一編址統(tǒng)一編址就是將I/O地址看作是存儲器地址的一部分,即將I/O地址放入存儲器地址空間中。對I/O設(shè)備的訪問與對存儲器的訪問,采用的指令相同。(2)獨立編址獨立編址是將I/O地址與存儲器地址分開,對所有I/O設(shè)備的訪問與對存儲器訪問采用的指令不同,I/O設(shè)備的訪問采用專用的指令。11計算機組成原理9.1.3I/O設(shè)備與主機間的信息交換方式主機與外部設(shè)備(簡稱外設(shè))之間的信息交換控制,在不同系統(tǒng)結(jié)構(gòu)中有不同的方式。一般有以下幾種。1.程序直接控制方式(ProgramDirectControl)程序直接控制方式通過由I/O指令所編的程序,來控制主機與外設(shè)之間的信息傳送。其過程簡述如下:先由主機通過啟動指令啟動外設(shè)工作,啟動后主機用測試指令不斷查詢外設(shè)工作是否完成,一旦外設(shè)工作完成,就可進行數(shù)據(jù)傳送。這種方法控制簡單,但是主機和外設(shè)是串行工作。當外設(shè)速度很慢時,主機大量時間被消耗在測試等待中,使主機不能充分發(fā)揮效率。12計算機組成原理2.程序中斷控制方式(ProgramInterruptControl)在程序中斷控制方式中,當主機在啟動外設(shè)后不需要等待查詢,而是繼續(xù)執(zhí)行程序。當外設(shè)工作完成后便向CPU發(fā)中斷請求。CPU接到中斷請求后在響應(yīng)條件滿足時可以響應(yīng),并由CPU執(zhí)行中斷服務(wù)程序以完成外設(shè)和主機之間的一次信息傳送,完成傳送后主機又繼續(xù)執(zhí)行主程序。程序中斷控制方式可以使CPU和外設(shè)進行并行工作,而且可使多臺外設(shè)同時工作,使CPU效率大大提高。但程序中斷傳送使CPU增加了額外開銷時間,所以適用于外設(shè)工作速度不太高的設(shè)備與主機之間的信息傳送。而對高速設(shè)備再采用程序中斷控制將會造成數(shù)據(jù)丟失。13計算機組成原理3.直接存儲器存取方式(DirectMemoryAccess,DMA)直接存儲器存取是在外設(shè)和主存之間開辟一條直接數(shù)據(jù)通道。當高速設(shè)備的數(shù)據(jù)傳送準備好后,由專門的DMA控制器來替代CPU實現(xiàn)傳送控制。CPU除了數(shù)據(jù)塊開始傳送和結(jié)束傳送時需要進行適當處理外,在數(shù)據(jù)塊傳送過程中無須CPU干預(yù),每傳送一個數(shù)據(jù)只需要占用一個主存周期,這樣數(shù)據(jù)傳送的速度上限就由主存工作速度決定。但DMA控制器只對少量同類設(shè)備進行控制,由于中、大型機由于外設(shè)種類很多,若用DMA方式來控制,會造成硬件接口多、不經(jīng)濟,而且會造成訪存沖突,從而降低了系統(tǒng)效率。因此DMA在中、大型機中,被發(fā)展為輸入輸出通道或輸入輸出處理機。14計算機組成原理4.I/O通道控制方式(I/OChannelControl)“通道”不是一般概念的I/O通路,它是一個專用的名稱。通道能獨立地執(zhí)行用通道命令編寫的輸入輸出控制程序,所產(chǎn)生的相應(yīng)的控制信號送給由它管轄的設(shè)備控制器,繼而完成復(fù)雜的輸入輸出過程。通道是一種通用性和綜合性都較強的輸入輸出方式,它代表了現(xiàn)代計算機組織向功能分布向發(fā)展的初始發(fā)展階段,形成了如圖9-4的結(jié)構(gòu)。I/O通道具有自己的指令系統(tǒng),并能實現(xiàn)指令所控制的操作,所以I/O通道已具備處理機的功能。但它僅僅是面向外部設(shè)備的控制和數(shù)據(jù)的傳送,其指令系統(tǒng)也僅僅是幾條簡單的與I/O操作有關(guān)的命令。它要在CPU的I/O指令指揮下啟動、停止或改變工作狀態(tài)。在I/O處理過程中,有一些操作,如碼制轉(zhuǎn)換、數(shù)據(jù)塊的錯誤檢測與校正,仍由CPU來完成。因此,I/O通道不同于一個完全獨立的處理機,它只是從屬與CPU的一個專用I/O處理器。它的進一步發(fā)展引入了專用的輸入輸出處理機。15計算機組成原理圖9-4輸入輸出系統(tǒng)的結(jié)構(gòu)(具有CH通道或I/O處理機)16計算機組成原理5.外部處理機方式(PeripheralProcessorUnit-PPU)輸入輸出處理機通常稱作外部處理機。這種外部處理機的結(jié)構(gòu)更接近一般處理機,甚至是一般小型通用計算機。它可完成I/O通道所要完成的I/O控制,還可完成碼制變換、格式處理、數(shù)據(jù)塊的檢錯和糾錯等操作。它可具有相應(yīng)的運算處理部件、緩沖部件,還可形成I/O程序所必須的程序轉(zhuǎn)移手段。有了外部處理機,不但可簡化設(shè)備控制器,而且可用它作為維護、診斷、通信控制、系統(tǒng)工程情況顯示和人機聯(lián)系的工具。外部處理機基本上獨立于主機工作。在多數(shù)系統(tǒng)中,設(shè)置多臺外部處理機,分別承擔I/O控制、通信、維護、診斷等任務(wù)。有了外部處理機后,使計算機系統(tǒng)結(jié)構(gòu)有了質(zhì)的飛躍,由功能集中式發(fā)展為功能分散的分布式系統(tǒng)。該系統(tǒng)的結(jié)構(gòu)與圖9-4類似,但要將圖中CH改為I/O處理機。17計算機組成原理9.2I/O接口接口泛指設(shè)備部件之間的交換部分。主機(系統(tǒng)總線)與外部設(shè)備或其它外部系統(tǒng)之間的接口邏輯,稱為輸入/輸出接口,簡寫為I/O接口。接口在它所連接的兩個部件之間起著轉(zhuǎn)換器的作用。18計算機組成原理9.2.1I/O接口的功能I/O接口一般位于系統(tǒng)總線與外部設(shè)備之間,系統(tǒng)總線通常是標準而通用的,它符合某種總線標準,并不局限于特定的設(shè)備。1.尋址接口邏輯接收總線送來的尋址信息,經(jīng)過譯碼,選擇多臺外部設(shè)備中的某一臺以及該設(shè)備接口中的某個有關(guān)的寄存器。2.實現(xiàn)數(shù)據(jù)緩沖在接口電路中,一般設(shè)置一個或多個數(shù)據(jù)緩沖寄存器,以補償各設(shè)備之間的速度差,起到速度匹配的作用。19計算機組成原理3.實現(xiàn)數(shù)據(jù)格式變換、電平變換等預(yù)處理接口與系統(tǒng)總線之間一般采取并行傳送;接口與外設(shè)之間,由于各設(shè)備的特性不同,可能采取并行傳送,也可能采取串行傳送。因此接口完成串行與并行數(shù)據(jù)格式之間的轉(zhuǎn)換。設(shè)備使用的電源與系統(tǒng)總線使用的電源有可能不同,例如主機使用+5伏電源,而某個外設(shè)采用-12伏電源,即信號電平存在著差異。若使采用不同電源的設(shè)備之間能夠進行信息傳送,那么接口應(yīng)能完成信號電平的轉(zhuǎn)換。20計算機組成原理4.實現(xiàn)控制邏輯CPU與I/O設(shè)備之間的通信控制,是主機通過總線向接口傳送命令信息,接口予以解釋,并產(chǎn)生相應(yīng)的操作命令發(fā)送給設(shè)備。接口所連接的設(shè)備及接口本身的有關(guān)信息,通過總線回送給CPU。當采用中斷方式控制信息的傳送時,則接口中應(yīng)有相應(yīng)的中斷邏輯。如中斷請求信號的產(chǎn)生、中斷屏蔽、優(yōu)先級排隊、接收中斷批準信號、產(chǎn)生相應(yīng)的編碼等,其中的部分邏輯可集中在公共接口邏輯中。當采用DMA方式控制信息傳送時,接口中應(yīng)有相應(yīng)的DMA邏輯。21計算機組成原理5.檢錯I/O接口經(jīng)常負責檢錯,隨后將錯誤信息報告給CPU。一類錯誤是設(shè)備機構(gòu)和電路故障(例如,紙張阻塞、壞磁道);另一類錯誤是:當信息從設(shè)備向I/O接口傳送時,數(shù)據(jù)位發(fā)生變化。對于傳輸中的錯誤經(jīng)常用一些檢驗碼進行檢測,常用的檢驗方法是奇偶檢驗。22計算機組成原理9.2.2I/O接口的分類1.按數(shù)據(jù)傳送格式分(1)串行接口串行接口與輸入輸出設(shè)備之間采用串行方式傳送數(shù)據(jù),而接口與系統(tǒng)總線之間是以并行方式傳送數(shù)據(jù),因此,串行接口要完成數(shù)據(jù)格式的串行與并行之間的變換。串行接口用于串行工作設(shè)備或計算機網(wǎng)絡(luò)的遠程終端設(shè)備與計算機的連接。(2)并行接口并行接口與系統(tǒng)總線以及接口與外設(shè)之間都是以并行方式傳送信息。并行接口用于并行工作設(shè)備,而且傳送距離較短。23計算機組成原理2.按總線上數(shù)據(jù)傳送的通訊方式分(按時序控制方式分)(1)同步接口同步接口與同步總線連接,接口與系統(tǒng)總線間的信息傳送由統(tǒng)一的時序信號控制。(2)異步接口異步接口與異步總線相連,接口與系統(tǒng)總線間的信息傳送采用異步應(yīng)答的控制方式。3.按信息傳送的控制方式分(1)中斷接口如果主機與外設(shè)之間的信息傳送采用程序中斷方式控制,則接口中需有相應(yīng)的中斷系統(tǒng)所需的邏輯,這樣的接口稱為中斷接口,也稱為程序中斷接口。(2)DMA接口如果主機與高速外設(shè)之間信息傳送采用DMA方式控制,則接口中需有相應(yīng)的DMA邏輯,這樣的接口稱為DMA接口。24計算機組成原理4.按通用性分(1)通用接口通用接口可供多種外設(shè)使用,例如Intel8255、8212。(2)專用接口專用接口是為某類外設(shè)或某種用途專門設(shè)計的,例如Intel8279可編程鍵盤/顯示器接口、Intel8279可編程CRT控制器接口。25計算機組成原理9.2.3I/O接口的基本組成一般接口由以下部分組成:1.各類寄存器的集合(控制/狀態(tài)寄存器CSR、數(shù)據(jù)寄存器DR、地址寄存器DAR等)。通常在接口中至少要設(shè)有數(shù)據(jù)輸入緩沖寄存器IDBR和數(shù)據(jù)輸出緩沖寄存器ODBR。2.各種控制線路包括:設(shè)備選擇、設(shè)備地址譯碼線路、同步或異步控制、中斷控制及I/O控制等。3.數(shù)據(jù)格式轉(zhuǎn)換線路(并與串的轉(zhuǎn)換)。4.主機與接口、接口與I/O設(shè)備兩個方向的信號連接線。26計算機組成原理圖9-5給出了常用的I/O接口框圖。I/O接口通過一組信號線(例如,系統(tǒng)總線)將設(shè)備與計算機或其他設(shè)備相連,將設(shè)備傳送給主機的數(shù)據(jù)或主機傳送給設(shè)備的數(shù)據(jù)緩存在一個或幾個數(shù)據(jù)寄存器中,幾個狀態(tài)寄存器提供當前的狀態(tài)信息,狀態(tài)寄存器也能用作控制寄存器接收來自CPU的詳細的控制信息。接口內(nèi)的邏輯通過一組控制線與CPU連接,CPU使用這些控制線發(fā)送命令給I/O接口,控制線中的一部分也可被I/O接口使用(例如,用于仲裁和狀態(tài)信號)。接口也能識別和產(chǎn)生與它控制的設(shè)備相關(guān)的地址,如果一個接口控制一個設(shè)備,那么就有唯一的一個地址,如果一個接口控制一組設(shè)備,那么就有唯一的一組地址。I/O接口還包含了與它控制的每個設(shè)備進行連接的邏輯。27計算機組成原理圖9-5I/O接口框圖28計算機組成原理9.2.4I/O接口舉例為計算機而設(shè)計一些標準接口,這些接口就構(gòu)成了標準的應(yīng)用接口環(huán)境,這些環(huán)境不依賴于計算機,它們允許制造商設(shè)計與標準接口兼容的設(shè)備,而不是設(shè)計成與一個特殊的計算機擴展總線兼容的設(shè)備。標準接口常用的形式是卡,卡插在一個特殊的計算機的擴展總線上,并且為用戶提供了一個標準的界面。1.打印機接口2.串行口——RS2323.小型計算機系統(tǒng)接口4.P1394串行總線5.USB通用串行總線29計算機組成原理USB(UniversalSerialBUS)通用串行總線是一種新型外設(shè)接口標準。它是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯(lián)合提出的。不過直到近期,它才得到廣泛地應(yīng)用。從1994年11月11日發(fā)表了USBV0.7版本以后,USB版本經(jīng)歷了多年的發(fā)展,到現(xiàn)在已經(jīng)發(fā)展為2.0版本,成為目前電腦中的標準擴展接口。目前主板中主要是采用USB1.1和

USB2.0,各USB版本間能很好的兼容。USB用一個4針插頭作為標準插頭,采用菊花鏈形式可以把所有的外設(shè)連接起來,最多可以連接127個外部設(shè)備,并且不會損失帶寬。USB需要主機硬件、操作系統(tǒng)和外設(shè)三個方面的支持才能工作。目前的主板一般都采用支持USB功能的控制芯片組,主板上也安裝有USB接口插座,而且除了背板的插座之外,主板上還預(yù)留有USB插針,可以通過連線接到機箱前面作為前置USB接口以方便使用。而且USB接口還可以通過專門的USB連機線實現(xiàn)雙機互連,并可以通過Hub擴展出更多的接口。30計算機組成原理USB具有傳輸速度快(USB1.1是12Mbps,USB2.0是480Mbps),使用方便,支持熱插拔,連接靈活,獨立供電等優(yōu)點,可以連接鼠標、鍵盤、打印機、掃描儀、攝像頭、閃存盤、MP3機、手機、數(shù)碼相機、移動硬盤、外置光軟驅(qū)、USB網(wǎng)卡、ADSLModem、CableModem等,幾乎所有的外部設(shè)備。USB是一個外部總線標準,用于規(guī)范電腦與外部設(shè)備的連接和通訊。USB接口支持設(shè)備的即插即用和熱插拔功能。USB接口可用于連接多達127種外設(shè),如鼠標、調(diào)制解調(diào)器和鍵盤等。USB自從1996年推出后,已成功替代串口和并口,并成為當今個人電腦和大量智能設(shè)備的必配的接口之一。31計算機組成原理9.3程序直接控制方式程序直接控制方式是主機與外設(shè)之間進行數(shù)據(jù)交換的最簡單、最基本的控制方法,是CPU直接利用I/O指令編程,實現(xiàn)數(shù)據(jù)的輸入輸出。如果有關(guān)的操作時間固定且已知,可以直接執(zhí)行輸入指令或輸出指令,例如從某設(shè)備的緩沖區(qū)中讀取數(shù)據(jù),或向緩沖區(qū)輸出數(shù)據(jù)。如果有關(guān)操作時間來未知或不定,例如打印機初始化操作或打印時機電操作,則往往采用查詢,等待和再傳送的方式。即在啟動外設(shè)后,主機不斷通過I/O指令查詢設(shè)備狀態(tài)是否準備好,是否完成上一次操作。若尚未準備好或尚未完成,CPU將繼續(xù)查詢、等待,直到設(shè)備準備好或完成一次操作為止,CPU將通過I/O指令進行數(shù)據(jù)I/O傳送。在外部設(shè)備工作期間,CPU只執(zhí)行與I/O有關(guān)的操作。即查詢、等待、傳送,這種方式又稱為程序查詢方式。圖9-11、圖9-12分別給出了單個設(shè)備、多個設(shè)備查詢流程示意圖。圖9-13給出了程序查詢方式的程序流程圖。32計算機組成原理圖9-11單個設(shè)備的查詢流程示意圖33計算機組成原理圖9-12多個設(shè)備的查詢流程示意圖34計算機組成原理圖9-13程序查詢方式的程序流程圖35計算機組成原理9.4程序中斷控制方式中斷指CPU中止現(xiàn)行程序的執(zhí)行,轉(zhuǎn)而執(zhí)行另一個更緊迫事件的程序,一旦處理完成,自動返回原來被中斷的程序。中斷技術(shù)的出現(xiàn),大大增強了計算機功能。它提供了一種以響應(yīng)外部異常事件而改變狀態(tài)流程的有效手段。它支持了多重程序的運行及多個用戶同時共享整個計算機資源,充分發(fā)揮了計算機的高速處理和實時處理能力,以及自動處理機內(nèi)故障的能力。所以它是計算機發(fā)展史上的一個重大里程碑,現(xiàn)代計算機中都具有中斷功能和相應(yīng)的中斷系統(tǒng),它是各類計算機不可缺少的部分。36計算機組成原理一、中斷的基本概念(一)中斷問題的提出在計算機發(fā)展進程中,CPU的速度提高得很快,而外部設(shè)備的速度由于受機電結(jié)構(gòu)的限制至今仍是毫秒和微妙級,兩者速度相差懸殊。如某機運算速度是100萬次/秒,CPU執(zhí)行一條指令約需

,而某外設(shè)輸入一個數(shù)據(jù)要1ms。若采用程序直接控制傳送方式時,CPU絕大部分時間是做探詢測試等待設(shè)備工作完成,由于CPU和外設(shè)速度相差1千倍,所以在主機進行I/O傳輸時,整個計算機傳輸速度下降到外設(shè)速度,CPU效率下降了90%,其原因是CPU與某外設(shè)交換信息時,就把CPU的控制權(quán)交給了該設(shè)備,而CPU只能做測試等待,直到外設(shè)工作完成。也就是說,CPU和外設(shè)是串行工作,如圖9-14所示。CPU的大部分工作時間被白白消耗在測試等待中。假若CPU在啟動外設(shè)工作后,設(shè)備釋放對CPU的控制權(quán)使CPU繼續(xù)工作,當外設(shè)工作完成后向CPU發(fā)中斷請求信號,若CPU響應(yīng)中斷,則停止正在執(zhí)行的程序,轉(zhuǎn)中斷服務(wù)程序為該設(shè)備服務(wù),這樣就能實現(xiàn)CPU和外設(shè)并行工作,使CPU的效率充分發(fā)揮,如圖9-15所示。采用中斷技術(shù)后,在CPU控制下多臺外設(shè)可與主機同時進行工作。37計算機組成原理圖9-14CPU和外設(shè)串行工作38計算機組成原理圖9-15中斷控制下CPU和外設(shè)并行工作39計算機組成原理(二)中斷源和中斷類型中斷源是引起中斷的事件及發(fā)生中斷請求的來源。中斷的類型可以按照中斷的處理方法,中斷源種類和是否提供向量地址等分類。1、按中斷處理方法分類(1)程序中斷主機響應(yīng)中斷請求后,通過執(zhí)行一段程序來處理有關(guān)事項,稱程序中斷,簡稱中斷。程序中斷一般適合于中、慢速I/O設(shè)備的數(shù)據(jù)傳送,以及要求復(fù)雜處理的場合。(2)簡單中斷(也稱存儲器直接訪問方式)主機響應(yīng)中斷后,不需要執(zhí)行服務(wù)程序,而是讓出一個或幾個主存周期,使I/O設(shè)備和主存直接交換數(shù)據(jù)。因為簡單中斷不需要借用CPU設(shè)備,因而不破壞CPU現(xiàn)場,所以不需要做保護現(xiàn)場操作,一般用于高速I/O設(shè)備和主機的數(shù)據(jù)傳送。40計算機組成原理2、按中斷源分類(1)強迫中斷它是隨機產(chǎn)生的中斷,現(xiàn)行程序事先未知,當中斷出現(xiàn)后由中斷系統(tǒng)強行中止現(xiàn)行程序。產(chǎn)生強迫中斷的中斷源有四方面:①內(nèi)中斷是由硬件故障及程序故障引起的中斷。由于中斷源來自處理機內(nèi)部所以稱為內(nèi)中斷。由硬件故障引起的中斷,如電源掉電、存儲器奇偶錯、尋址錯、超時錯等;由運算異常引起的,如零除、上溢、下溢;由程序故障所引起中斷,如執(zhí)行非法指令、頁面失效等。②外中斷是由系統(tǒng)配置的外部設(shè)備引起的中斷。如慢速設(shè)備的緩沖寄存器準備好接收和發(fā)送數(shù)據(jù)后,要求CPU參與I/O操作,各種定時器中斷、外部信號中斷等,由于中斷源來自CPU以外,所以稱為外中斷。③正在執(zhí)行著的現(xiàn)行程序所引起的中斷。如現(xiàn)行程序要求系統(tǒng)分配給新的硬件資源(如磁盤、打印機等),因此向系統(tǒng)提出中斷請求,并等待資源的獲得,這種中斷屬于資源管理范圍。④處理機之間的中斷。在計算機網(wǎng)絡(luò)范圍內(nèi),處理機之間數(shù)據(jù)狀態(tài)的傳送所引起的中斷。(2)自愿中斷(程序自中斷)它不是隨機產(chǎn)生的中斷,而是事先在程序某處設(shè)置斷點,并借用中斷處理方式保護現(xiàn)場,引出一段服務(wù)程序。41計算機組成原理3、按中斷源是否提供向量地址分類(1)向量中斷CPU響應(yīng)中斷后,由中斷機構(gòu)自動地將向量地址通知處理機,由向量地址指明中斷向量位置,并實現(xiàn)向量切換,不必經(jīng)過處理程序來查詢中斷源的中斷功能,稱為向量中斷。中斷過程是由一個程序切換到另一個程序的過程。在程序切換時,需要保護好舊的PC和PSW,更換新的PC和PSW。新的PC即為服務(wù)程序入口地址,PSW是新服務(wù)程序的程序狀態(tài)字,通常稱PC和PSW為中斷向量。在向量中斷機器主存中開辟了一個區(qū)域用來存放各中斷源的中斷向量。如PDP-11機器中,把內(nèi)存低地址區(qū)0-4KB空間用來存放中斷向量。把存放中斷向量單元的首地址稱為向量地址。例電源掉電中斷源的中斷向量分別存放在000004單元和000006單元中,把它的首地址000004稱為向量地址。(2)非向量中斷非向量中斷是不能直接提供中斷服務(wù)程序入口地址,而要采用軟件查詢措施最后找到服務(wù)程序入口地址,然后再轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。42計算機組成原理(三)多重中斷與單級中斷1、單級中斷在執(zhí)行中斷服務(wù)程序的過程中,如果只能為本次中斷服務(wù),不允許打斷該服務(wù)程序,只有在服務(wù)程序完成后,才能響應(yīng)新的請求,這種情況稱為單級中斷。2、多重中斷如在一次服務(wù)程序執(zhí)行中,允許優(yōu)先級高的中斷源中斷級別低的中斷服務(wù)程序,在保存斷點和現(xiàn)場后,轉(zhuǎn)去響應(yīng)優(yōu)先級更高的中斷請求,并執(zhí)行新的中斷服務(wù)程序。圖9-16為多重中斷。中斷過程和子程序調(diào)用表面上相同,但實質(zhì)上是不同的。調(diào)用子程序由主程序安排,何時發(fā)生轉(zhuǎn)子程序是事先確定的,并利用轉(zhuǎn)子程序指令來實現(xiàn)。而中斷過程是隨機發(fā)生的,不能由主程序提前安排。43計算機組成原理圖9-16多重中斷44計算機組成原理(四)中斷功能1、引入中斷系統(tǒng)后,可使CPU和I/O設(shè)備并行工作,從而大大提高了CPU的工作效率。2、利用中斷來處理故障,提高了機器的可靠性。在計算機工作時,當運行程序發(fā)生故障或硬件發(fā)生故障時,機器中斷系統(tǒng)可以中斷正在處理的程序而自動進入故障處理程序。避免了某些偶然事故引起的計算錯誤或停機。提高了機器的可靠性。3、利用中斷進行實時處理。實時處理是指在某個事件或現(xiàn)象出現(xiàn)的實際時間內(nèi)及時地進行處理,而不是積壓起來再進行批處理。例如某個計算機過程控制系統(tǒng)中,在生產(chǎn)過程中采集到隨機出現(xiàn)的壓力過大、溫度過高等信息后,必須及時地輸入計算機中,并以最快速度立即響應(yīng)而不允許延遲。4、利用中斷進行人機對話。執(zhí)行某些程序時,需要操作人員由控制臺、打字機或某種終端設(shè)備提供信息,進行控制??梢岳弥袛鄬⑿畔⑻峁┙o主機,以實現(xiàn)人機對話。5、實現(xiàn)多道程序的運行。多道程序切換運行,需要借助于中斷系統(tǒng)。多道程序運行時,對每道程序分配一個固定時間片,利用時鐘定時發(fā)中斷請求,進行程序切換。45計算機組成原理(五)中斷過程中斷過程由中斷請求、中斷響應(yīng)、中斷處理和返回組成。以上過程是由計算機中的中斷系統(tǒng)實現(xiàn)的。它保證處理機從當前程序運行狀態(tài)環(huán)境平滑地轉(zhuǎn)到中斷服務(wù)環(huán)境,而且再平滑地返回。運行環(huán)境是指處理機執(zhí)行程序時,現(xiàn)行的各寄存器、PC、PSW的即時值。中斷系統(tǒng)是計算機實現(xiàn)中斷功能的軟、硬件總稱。在CPU—側(cè)配置了中斷機構(gòu),在設(shè)備一側(cè)配置了中斷控制接口,在軟件上設(shè)計了相應(yīng)的中斷服務(wù)程序。46計算機組成原理二、中斷請求(一)中斷請求的提出由中斷源向處理機發(fā)出的中斷請求,稱為中斷申請。中斷源發(fā)中斷請求要滿足以下兩個條件。1、外設(shè)工作已經(jīng)完成(即外設(shè)工作處于結(jié)束狀態(tài))。如紙帶輸入機走完一行紙,并把孔碼數(shù)據(jù)讀到接口的數(shù)據(jù)寄存器中,此時才能向處理機發(fā)中斷請求。2、該外設(shè)的中斷沒有被系統(tǒng)屏蔽。系統(tǒng)為了某種目的,常常允許一些設(shè)備可以發(fā)中斷請示,而禁止另一些設(shè)備發(fā)出中斷請求。因此用程序方式有選擇地封鎖部分中斷,而允許其余部分中斷仍得到響應(yīng),稱為中斷屏蔽。為達到中斷屏蔽的目的,在接口中要設(shè)置屏蔽碼觸發(fā)器MR。當MR被置1時,表示系統(tǒng)禁止設(shè)備的中斷請求,而MR置0時,表示允許設(shè)備的中斷請求。當某設(shè)備的中斷被屏蔽時,即使外設(shè)本身工作完成,也不能發(fā)中斷請求。47計算機組成原理在中斷系統(tǒng)中,所有屏蔽觸發(fā)器的集合稱為屏蔽寄存器,屏蔽寄存器的內(nèi)容稱為屏蔽碼。屏蔽碼可用屏蔽指令MSKO來傳送,根據(jù)需要可預(yù)先設(shè)好屏蔽碼,在程序安排下執(zhí)行MSKO指令,將屏蔽碼置于MR中,以達到控制設(shè)備中斷請示的目的。為了隨機接收異步設(shè)備中斷請求,而又能保持與系統(tǒng)的同步,接口中還設(shè)置了請求中斷觸發(fā)器,當設(shè)備的完成信號將接口中的完成觸發(fā)器置1,而MR為0時,在系統(tǒng)時鐘控制下,將請求中斷觸發(fā)器IRR置為1,把申請信號記錄下來,并由它向CPU發(fā)中斷請求信號。多位中斷請求觸發(fā)器構(gòu)成一個中斷請求寄存器,基中每一位對應(yīng)一個中斷請求源,中斷請求寄存器的內(nèi)容稱為中斷字或中斷碼。CPU在進行中斷處理時,根據(jù)中斷字和中斷位確定中斷源,以便用相應(yīng)服務(wù)程序來處理。48計算機組成原理(二)中斷請求的傳送和中斷的優(yōu)先排隊當輸入輸出設(shè)備提出中斷請求時,CPU是否響應(yīng)?當有兩種以上設(shè)備提出中斷請求時,CPU首先響應(yīng)哪個設(shè)備的請求呢?這些問題是設(shè)計中斷系統(tǒng)必須解決的問題。1、中斷源的優(yōu)先權(quán)在設(shè)計中斷系統(tǒng)時,要將全部中斷源根據(jù)中斷性質(zhì)和處理的輕重緩急確定優(yōu)先級別,并賦予一定優(yōu)先權(quán)。在各種類型的中斷請求中,一般按以下順序安排優(yōu)先權(quán):首先是故障引起的中斷最優(yōu)先,其次是簡單中斷及I/O程序中斷。在I/O程序中斷中,又根據(jù)各自重要性劃分成幾種優(yōu)先級別。一般高速外設(shè)優(yōu)先級高于低速外設(shè)的優(yōu)先級。輸入設(shè)備的優(yōu)先級高于輸出設(shè)備優(yōu)先級。當中斷源很多時,可把所有中斷按不同類別分為若干級,稱為中斷級。先按中斷級確定主優(yōu)先級次序。然后在同一優(yōu)先級內(nèi)再確定各個中斷源的次優(yōu)先級。為了確定CPU的現(xiàn)行程序與I/O設(shè)備之間的優(yōu)先級,可由指令給出CPU狀態(tài)字,設(shè)置優(yōu)先級字段,即賦予正在執(zhí)行程序以某種優(yōu)先級。49計算機組成原理2、幾種排隊判優(yōu)方法中斷系統(tǒng)的排隊判優(yōu)方法與中斷系統(tǒng)結(jié)構(gòu)有關(guān),即與中斷請求線的傳送方法有關(guān)。(1)單線請求軟件查詢判優(yōu)在單線請求的機器中,所有設(shè)備的中斷請求通過OC門連到一根公用的中斷請求線IRQ(InterruptRequest)上。在這種情況下,CPU在接到中斷請求信號后,必須判明中斷請求是由哪一個設(shè)備發(fā)送來的,即識別中斷源。它可以用程序查詢中斷源。而中斷源的排隊判優(yōu)問題可以根據(jù)查詢的先后順序來確定優(yōu)先級,若改變查詢順序就可以修改優(yōu)先級。圖9-17是具有公共請求線的中斷請求傳送方案。圖9-18是用軟件查詢中斷源流程圖。從圖9-18中顯然可以看出0#設(shè)備優(yōu)先級最高,其次是1#、2#、……n#設(shè)備。軟件查詢在有些機器中可以用I/O指令依次查詢,在確認了有請求的中斷設(shè)備后,轉(zhuǎn)入相應(yīng)服務(wù)程序,也有些機器用取回中斷寄存器內(nèi)容(中斷字)按優(yōu)先級次序逐位判定。若某位中斷請求標志為1,就轉(zhuǎn)去執(zhí)行該I/O的中斷服務(wù)程序。軟件查詢方法對中斷源的判優(yōu)和識別不需要增加硬設(shè)備,而且能靈活修改設(shè)備的優(yōu)先級別。但查詢、判優(yōu)依靠軟件實現(xiàn),增加了CPU響應(yīng)中斷的時間。50計算機組成原理圖9-17具有公共請求線的中斷請求傳送方案51計算機組成原理圖9-18軟件查詢中斷源52計算機組成原理(2)單線請求菊花鍵判優(yōu)在這種機器中,各設(shè)備的中斷請求仍共用一根請求線來傳送。但當CPU接到中斷請求后,設(shè)備的優(yōu)先級不是用查詢程序依排隊次序來決定,而是用硬件排隊線路來代替軟件排隊。即用硬接線邏輯將設(shè)備扣連在中斷響應(yīng)線INACK(InterruptAcknowledge)上,使優(yōu)先級最高的設(shè)備離CPU最近(指電氣連接上),依次下降優(yōu)先級,這樣一條鏈稱為菊花鏈。響應(yīng)信號先傳到鏈頭,若優(yōu)先級最高設(shè)備沒有提出中斷請求,則響應(yīng)信號沿菊花鏈下傳,直到某個提出中斷的設(shè)備截獲響應(yīng)信號后,響應(yīng)信號就不再往下傳,該設(shè)備把自己的設(shè)備碼或地址送到地址總線上。CPU接到設(shè)備碼后,轉(zhuǎn)相應(yīng)的服務(wù)程序。在這種結(jié)構(gòu)中借助軟件少,因此CPU響應(yīng)速度快,但增加了菊花鏈優(yōu)先權(quán)電路,使中斷響應(yīng)信號必須經(jīng)過若干門延遲才能到達優(yōu)先級最低的設(shè)備。而且在此結(jié)構(gòu)中,優(yōu)先級別被電路固死,因而不靈活。圖9-19為單線請求菊花鏈判優(yōu)。53計算機組成原理圖9-19單線請求菊花鏈判優(yōu)54計算機組成原理(3)多線請求判優(yōu)在這種機器結(jié)構(gòu)中,每一個設(shè)備分配一個優(yōu)先級,每一個設(shè)備都通過各自的中斷請求線,將中斷請求信號傳送到CPU,在CPU內(nèi)設(shè)置有判優(yōu)邏輯,接收各中斷信號。而且給每一個設(shè)備設(shè)一根中斷響應(yīng)線傳送中斷響應(yīng)信號。當幾個設(shè)備同時請求中斷時,經(jīng)判優(yōu)邏輯選擇,選出優(yōu)先級最高的設(shè)備,并形成中斷向量送CPU,CPU立即為優(yōu)先級高的設(shè)備服務(wù)。由于請求中斷的設(shè)備可立即被識別,所以它的響應(yīng)速度最快。圖9-20為多線請求判優(yōu)。55計算機組成原理圖9-20多線請求判優(yōu)56計算機組成原理(4)多線請求菊花鏈判優(yōu)如果系統(tǒng)中連接設(shè)備較多,即設(shè)備數(shù)超過了系統(tǒng)的優(yōu)先級數(shù)時,把幾個設(shè)備歸到同一個優(yōu)先級上,把同一優(yōu)先級的I/O設(shè)備掛在同一根公共請求上,在不同請求上I/O設(shè)備中斷優(yōu)先級不同。把不同申請線上的優(yōu)先級稱主優(yōu)先級,而把同一線上不同設(shè)備的優(yōu)先級稱次優(yōu)先級。這就形成了多線請求菊花鏈判優(yōu)結(jié)構(gòu)。在這種結(jié)構(gòu)中,每一個主優(yōu)先級設(shè)置一根中斷響應(yīng)線,在CPU中進行主優(yōu)先級判優(yōu),而在接口中進行次優(yōu)先級判優(yōu),各次優(yōu)先級經(jīng)判優(yōu)后,形成自己的向量地址,并通過數(shù)據(jù)線送CPU,圖9-21為多線請求菊花鏈判優(yōu)。57計算機組成原理圖9-21多線請求菊花鏈判優(yōu)58計算機組成原理三、中斷響應(yīng)I/O設(shè)備提出中斷請求后,CPU中止現(xiàn)行程序的執(zhí)行,轉(zhuǎn)去為某個設(shè)備服務(wù)的過程,稱為中斷響應(yīng)。(一)中斷響應(yīng)的條件1、中斷源有中斷請求。如外設(shè)要求與主機交換數(shù)據(jù)時需要請求中斷。2、CPU允許接受中斷請求。當有中斷源請求時,由于某種條件的存在,CPU不能中止現(xiàn)程序的執(zhí)行,稱為禁止中斷。為達到禁止中斷的目的,可在CPU內(nèi)部設(shè)一個中斷允許觸發(fā)器CIEN。當CIEN=1時,表示CPU處于開放狀態(tài),即允許中斷;當CIEN=0時,表示CPU處于關(guān)閉狀態(tài),即不響應(yīng)任何中斷請求。CIEN觸發(fā)器可以通過開中斷或關(guān)中斷指令來置位或復(fù)位,以此來確定CPU的現(xiàn)行程序是否可以被中斷。59計算機組成原理CPU響應(yīng)中斷標志可用圖9-22來表示,當CIEN=1時,又有中斷請求信號IRQ。當響應(yīng)條件滿足時,CPU脈沖將

IRQ信號打入CIEN,使CIEN處于禁止中斷狀態(tài)。此后不再響應(yīng)另外中斷,使CPU做內(nèi)部整理工作。在多線多級請求中斷結(jié)構(gòu)中,為了確定CPU現(xiàn)行程序與I/O設(shè)備中斷請求之間的優(yōu)先級,可在CPU的狀態(tài)字中設(shè)置優(yōu)先級字段。它賦予正在執(zhí)行程序以某種優(yōu)先級別,這種優(yōu)先級別通過指令來設(shè)置或修改。I/O設(shè)備中斷請求的優(yōu)先級和現(xiàn)行程序中斷優(yōu)先級可通過硬件連接的二維結(jié)構(gòu)來判定誰的優(yōu)先級更高。以決定現(xiàn)行程序是否需要響應(yīng)中斷請求。若I/O請求優(yōu)先級高于現(xiàn)行程序的優(yōu)先級,則CPU就響應(yīng)I/O請求,否則將不予響應(yīng)。3、CPU響應(yīng)中斷的時間。當滿足中斷響應(yīng)條件時,CPU應(yīng)等到一條指令執(zhí)行完畢,并且當前執(zhí)行的不是停機指令,又沒有優(yōu)先權(quán)更高的請求(如電源失效或DMA請求),則CPU進入中斷周期狀態(tài),進行中斷響應(yīng)。60計算機組成原理(二)中斷響應(yīng)的幾種方案1、單線請求中斷查詢的響應(yīng)在單線請求的中斷結(jié)構(gòu)里,中斷響應(yīng)即為CPU進入到中斷周期狀態(tài),在該狀態(tài)下由CPU執(zhí)行一條中斷隱指令。這條隱指令由硬件在中斷響應(yīng)時產(chǎn)生,而不在程序中出現(xiàn)。中斷隱指令主要完成以下三個操作。(1)關(guān)閉中斷允許觸發(fā)器。即將CIEN置為0,CPU響應(yīng)中斷后首先要做保護舊現(xiàn)場工作,因此不讓處理機響應(yīng)新的中斷請求,否則有可能破壞原程序現(xiàn)場,以至無法恢復(fù)運行環(huán)境。(2)保護斷點(PC)值,執(zhí)行0#←(PC)。將主存的0號單元辟為特殊單元,專門用于存放中斷響應(yīng)時的PC現(xiàn)行值。而此時PC值指向下一條指令地址,又稱斷點地址。(3)執(zhí)行JMP@1操作。1號單元內(nèi)存放公共服務(wù)程入口地址,入口地址引導(dǎo)處理機去執(zhí)行公共服務(wù)程序。61計算機組成原理執(zhí)行隱指令的機器狀態(tài)稱為中斷周期狀態(tài)。CPU響應(yīng)中斷后,下一步識別出首先服務(wù)的中斷對象,在單線請求多重查詢的結(jié)構(gòu)中,查詢程序被安排在中斷服務(wù)程序的前部,即為公共服務(wù)程序段。查詢程序根據(jù)查詢順序先后來確定優(yōu)先級,因此改變查詢的先后次序就可以改變優(yōu)先級。圖9-23是單線請求中斷查詢方案。在這種響應(yīng)方案中只需要一根中斷請求線,不需要任何專用硬件,節(jié)省了硬件開銷,但增加了查詢時間,損害了系統(tǒng)的響應(yīng)性。改進方法是將程序查詢中斷源的工作由硬件來實現(xiàn)。62計算機組成原理圖9-23單線請求中斷查詢方案63計算機組成原理2、單線請求菊花鏈響應(yīng)單線請求菊花鏈響應(yīng)方案中,CPU響應(yīng)中斷請求后,進入中斷周期狀態(tài)。在中斷周期狀態(tài)下CPU執(zhí)行中斷隱指令,并切換到中斷服務(wù)程序,其過程與中斷查詢的響應(yīng)方案相同。所不同的是,中斷服務(wù)程序首先執(zhí)行一條中斷查詢指令“INTAR0”,查詢由中斷查詢指令啟動,通過接口中硬件連接電路來查出優(yōu)先級最高的設(shè)備。圖9-24示出了單線請求菊花鏈響應(yīng)硬件連線。在此方案中,每一個接口內(nèi)設(shè)有二個“與非”門,用來傳送中斷響應(yīng)信號。在執(zhí)行“INTAR0”時,CPU通過中斷響應(yīng)線INACK發(fā)查詢信號“POL”。“POL”作為中斷鏈的輸入信號“INTI”(低電平有效)經(jīng)中斷鏈傳送。圖中INTR1、INTR2……依次為各設(shè)備的中斷請求信號。并假定1#設(shè)備的優(yōu)先級>2#設(shè)備的優(yōu)先級>3#設(shè)備的優(yōu)先級。INTS1,INTS2……依次為各設(shè)備的排隊選中信號。INTA為中斷允許信號,INTA信號由CPU執(zhí)行INTA指令時發(fā)出。假若系統(tǒng)中沒有優(yōu)先級更高級別的請求(如DMA請求)時,此時

INTI=0,則門1輸出為高電平,使INTS1=1,即1#設(shè)備被選中。假設(shè)1#設(shè)備本身并無中斷請求,即1#設(shè)備的INTR1=0時,則使INTR1=1,“與非”門2輸出為低電平。表示中斷響應(yīng)信號被中斷鏈傳送下去,并作為2#設(shè)備的INTI信號。若同樣2#,3#設(shè)備均無中斷請求,則中斷響應(yīng)信號一直被中斷鏈傳遞到優(yōu)先級最低的設(shè)備,并被此設(shè)備截獲。64計算機組成原理若上面的情況變?yōu)?#設(shè)備有中斷請求信號,即INTR1=1,則INTR1=0,此時“與非”門2輸出為高電平,則使以后各級的INTS均為低電平,不能被選中,也就是中斷響應(yīng)信號被1#設(shè)備所截獲。1#設(shè)備截獲了INTI信號后,通過下面的設(shè)備碼發(fā)送電路將設(shè)備碼發(fā)送到數(shù)據(jù)總線上,被送到CPU的R0寄存器中,供CPU識別。CPU根據(jù)該地址碼轉(zhuǎn)向此設(shè)備的服務(wù)程序。INTA有很高的硬件響應(yīng)速度,其缺點是中斷源優(yōu)先級被硬件線路固死,使中斷系統(tǒng)不靈活,而且對多重中斷沒有提供硬件支持。并使CPU的響應(yīng)時間中增加了中斷鏈的鏈路延遲時間。65計算機組成原理圖9-24單線請求菊花鏈響應(yīng)66計算機組成原理四、向量中斷多線請求結(jié)構(gòu)是對單線結(jié)構(gòu)的改進,最大變化是有能力處理每一個中斷源獨立發(fā)出的中斷請求。(一)多線請求并行排隊的向量中斷在多線請求的中斷機構(gòu)中,為了提高CPU響應(yīng)的速度,均采用向量中斷的響應(yīng)方法。在硬件線路上,由串行排隊改為并行排隊。在向量中斷中,每一個中斷源都給出一個中斷向量和向量地址。當CPU響應(yīng)中斷后,由中斷機構(gòu)自動地將向量地址通知CPU,由向量地址指明向量的位置并實現(xiàn)向量的切換,而不必經(jīng)過處理程序查詢中斷源的中斷,這種響應(yīng)稱向量中斷響應(yīng)。由于CPU每次只能為一個中斷請求服務(wù),因此同樣也存在優(yōu)先級排隊問題。在多線單級請求結(jié)構(gòu)中,將各級設(shè)備向量地址形成線路和優(yōu)先權(quán)排隊線路集合在一起,組成向量中斷優(yōu)先級編碼器VIPE(VecterInterruptPriorityEncoder)。向量中斷優(yōu)先級編碼器是單線請求走向多線請求結(jié)構(gòu)、串行排隊(鏈式)變?yōu)椴⑿信抨牭年P(guān)鍵性線路。下面以8級中斷為例說明硬件并行排隊的基本概念。假定8級中斷請求為I0~I7,并規(guī)定0級優(yōu)先級最高,1級次之,7級為最低。表9-5為8級中斷屏蔽碼和向量地址,其中屏蔽碼定義:0為允許中斷,1為屏蔽中斷。67計算機組成原理表9-58級中斷屏蔽碼和向量地址中斷請求屏蔽碼向量地址VA01234567VA0VA1VA2I0I1I2I3I4I5I6I7111111110111111100111111000111110000111100000111000000110000000100000101001110010111011168計算機組成原理圖9-25為向量地址形成電路。圖中第1列為屏蔽碼寄存器MR,屏蔽碼可由MSKO指令置入;第2列為中斷請求寄存器IRR,D0~D7為各設(shè)備的完成信號;第3列“與門”的輸出是各級中斷請求信號的輸出,并將其加入到并行排隊器;第4列是多線并行優(yōu)先權(quán)排隊線路,它不同于菊花鏈排隊線路,不需要執(zhí)行中斷查詢指令,即沒有查詢操作,對所有中斷請求級的選擇時間是相等的,沒有鏈路的門延遲時間;第5列由三個“或門”組成8~3編碼器,輸出為向量地址VA0、VA1、VA2。圖中虛線框內(nèi)稱為向量中斷優(yōu)先權(quán)編碼器VIPE。所有中斷向量集合組成一張向量表,向量表建立在主存中。向量地址可用主存地址MAR表示,這時所形成的VA0、VA1、VA2三位變量嵌在MAR中。如果向量表是連續(xù)表,而且存放在內(nèi)存從0號單元開始的內(nèi)存區(qū),則VA0、VA1、VA2就作為MAR的低位MAR0、MAR1、MAR2。若向量表在內(nèi)存是離散分布,則向量地址嵌入主存地址的中間部分。由圖可知向量地址又是各級中斷源的優(yōu)先級,這樣設(shè)計既簡單又合邏輯。下面舉例說明向量地址的形成。69計算機組成原理圖9-25向量地址VA形成電路70計算機組成原理若處理機給出的屏蔽碼為11000011,在某一個時刻t,只有D1、D3、D4三個設(shè)備的完成信號同時到達,它們的向量地址應(yīng)該是什么呢?分析:因為各設(shè)備的向量地址又是中斷源的優(yōu)先級,D1、D3、D4這三個設(shè)備的優(yōu)先級應(yīng)該是1>3>4。屏蔽碼為11000011,它屏蔽了0#、1#、6#、7#設(shè)備的中斷申請,但對2#、3#、4#設(shè)備的中斷是開放的。對1#、3#、4#設(shè)備來說,1#設(shè)備中斷申請應(yīng)被屏蔽,3#、4#設(shè)備既滿足了外設(shè)工作已完成的條件,而且設(shè)備未被屏蔽,所以可有中斷請求參與排隊。又因3#設(shè)備優(yōu)先級大于4#設(shè)備,所以經(jīng)排隊線路應(yīng)產(chǎn)生3#設(shè)備的向量地址011(因向量地址等于優(yōu)先權(quán)),可由VIPE電路中看到它的輸出向量地址確為011。71計算機組成原理(二)向量中斷的執(zhí)行過程圖9-26為向量中斷的執(zhí)行過程。它表示在多線請求向量中斷結(jié)構(gòu)中,具有優(yōu)先級為6級的中斷源中斷優(yōu)先級為7級的執(zhí)行過程。圖中主機一側(cè)包括CPU、VIPE、中斷向量表和堆棧,設(shè)備一側(cè)包括外部設(shè)備和中斷源等,接口未畫出。向量中斷過程如下:1、當設(shè)備有中斷源請求時,通過中斷請求線IRQ向CPU提出申請;2、CPU響應(yīng)后,由中斷響應(yīng)線INACK回答中斷向量優(yōu)先權(quán)編碼器VIPE;3、由VIPE形成優(yōu)先級最高的向量地址VA,通知CPU;4、CPU執(zhí)行中斷隱指令,隱指令可完成保護舊現(xiàn)場,在本例中將PSW7和PC7壓入堆棧。5、同時建立新現(xiàn)場,用PSW6和PC6填寫CPU內(nèi)的PSW和PC,至使CPU脫離原程序,執(zhí)行新的中斷服務(wù)程序。72計算機組成原理圖9-26向量中斷的執(zhí)行過程73計算機組成原理程序的切換可歸結(jié)為中斷向量的切換。向量中斷的程序切換由CPU在響應(yīng)過程中,執(zhí)行隱指令來實現(xiàn)。這條隱指令的功能相當執(zhí)行四條傳送指令。其中兩條保護舊現(xiàn)場,兩條建立新現(xiàn)場。由于機器中設(shè)置堆棧,保護舊現(xiàn)場操作可用棧操作來完成。MOVPSW,-(SP)

;PSW進線MOVPC,-(SP)

;PC進棧MOVVA,PC ;(VA)→

PCMOVVA+2,PSW ;(VA+2)→

PSW中斷隱指令執(zhí)行后,PC中存放著優(yōu)先權(quán)最高的外設(shè)中斷服務(wù)程序的入口地址。從而使CPU運行中斷服務(wù)程序。與單線查詢方式相比,CPU省去了轉(zhuǎn)到公共服務(wù)程序或執(zhí)行中斷查詢指令來確定中斷源過程。因為向量中斷系統(tǒng)沒有延誤環(huán)節(jié),所以實時響應(yīng)性高。堆棧應(yīng)用于多重中斷嵌套,使返回過程十分簡便靈活。被中斷程序的向量不斷壓入堆棧,返回時,在服務(wù)程序末尾編入一條從中斷返回指令RTI即可。RTI相當于執(zhí)行兩條堆棧彈出操作:MOV(SP)+,PC ;恢復(fù)斷點地址MOV(SP)+,PSW ;恢復(fù)PSW堆棧與向量中斷結(jié)合,極大地改善了中斷系統(tǒng)的性能。74計算機組成原理五、中斷服務(wù)處理CPU在中斷響應(yīng)后轉(zhuǎn)入中斷服務(wù)程序,進入中斷服務(wù)處理。不同計算機對中斷處理各不相同,但對多數(shù)機器而言,中斷處理過程如圖9-27所示。中斷服務(wù)程序是程序員根據(jù)中斷機構(gòu)、中斷系統(tǒng)、中斷源性質(zhì)或服務(wù)特點編制的程序。典型的中斷服務(wù)程序應(yīng)包括三個程序段。75計算機組成原理圖9-27中斷服務(wù)子程序

76計算機組成原理(一)先行段的主要功能1、判斷引起中斷的設(shè)備對于非向量中斷方式,此段要查詢中斷源,向量中斷則不需要查詢。2、保護現(xiàn)場及屏蔽字此時的現(xiàn)場指各工作寄存器的內(nèi)容(斷點地址和程序狀態(tài)字在中斷周期中進行保護)?,F(xiàn)行程序和各中斷服務(wù)程序都設(shè)有屏蔽字,它可能對某些中斷請求開放,對另一些中斷請求則屏蔽,以表示本程序與其它中斷的關(guān)系,所以要加以保護,設(shè)置新屏蔽字。開放中斷,在完成保護舊現(xiàn)場及屏蔽字并建立新屏蔽字后,打開中斷。此后可以響應(yīng)更高級的中斷請求,如果本程序不允許再次中斷,則可以不開中斷。(二)中斷服務(wù)程序本體中斷服務(wù)程序是根據(jù)中斷源性質(zhì)、特點編寫的。它可以是一個很簡單的程序,如執(zhí)行輸入輸出指令,也可能是一段很長的程序。77計算機組成原理(三)恢復(fù)段的主要功能1、關(guān)閉中斷,防止恢復(fù)現(xiàn)場過程被別的中斷打擾而丟失信息;2、恢復(fù)本次中斷現(xiàn)場和屏蔽字;3、清除中斷請求,表示本次中斷處理完畢;4、打開中斷;5、返回被中斷的程序,從斷點繼續(xù)往下執(zhí)行。注意:在單線請求結(jié)構(gòu)中,開放中斷指令與返回指令在硬件上要在一起完成,以避免出現(xiàn)不能返回到斷點地址的失誤,向量中斷不存在此問題。78計算機組成原理六、中斷系統(tǒng)的響應(yīng)性硬件中斷機構(gòu)和軟件服務(wù)程序,以及包括接口中的中斷線路稱為中斷系統(tǒng)。中斷處理過程可劃分為三個階段;先行處理、服務(wù)處理和恢復(fù)處理,如圖9-28所示。79計算機組成原理圖9-28中斷過程三階段80計算機組成原理1、先行處理階段包括響應(yīng)、查詢和保護三個步驟。響應(yīng)指執(zhí)行隱指令的時間。它決定于中斷機構(gòu)和隱指令要完成的操作。查詢是確定對優(yōu)先級最高的中斷請求設(shè)備的識別,可由軟件查詢和硬件排隊線路決定,串行和并行排隊所需時間不同。保護是將程序用的寄存器內(nèi)容轉(zhuǎn)移到安全地方。2、服務(wù)處理階段是對中斷設(shè)備的要求進行處理,服務(wù)處理時間長短與中斷源的性質(zhì)有關(guān)。3、恢復(fù)處理階段僅包括恢復(fù)工作寄存器的內(nèi)容,返回可用返回指令來實現(xiàn)。81計算機組成原理壓縮先行處理和恢復(fù)處理的時間對提高中斷響應(yīng)性至關(guān)重要,因為系統(tǒng)頻繁的中斷,要占用大量的處理時間(稱額外開銷)。為提高系統(tǒng)效率,希望盡量壓縮額外開銷。對先行處理階段的時間壓縮主要是壓縮查詢時間。從上一節(jié)討論中可清楚看到,采用多線請求向量中斷技術(shù)后,可以不需要查詢時間,即在執(zhí)行中斷隱指令后,可轉(zhuǎn)入現(xiàn)場保護。現(xiàn)場保護的傳統(tǒng)方法是執(zhí)行存儲指令或進棧指令。為壓縮保護現(xiàn)場時間可采取下列幾種改進方法。1、部分保護。只保護幾個在中斷處理程序中需要使用的寄存器,這就可以縮短不必要的轉(zhuǎn)存時間。2、設(shè)置功能強的“通用寄存器轉(zhuǎn)儲”指令。執(zhí)行該指令后可將部分或全部寄存器內(nèi)容轉(zhuǎn)儲到指定單元。3、采用多套通用寄存器。每個中斷源均指定一套通用寄存器。4、設(shè)計功能強的中斷指令。一般說,恢復(fù)處理是先行處理的逆過程,可采取同先行處理相同的技術(shù)。82計算機組成原理七、多重中斷及中斷優(yōu)先權(quán)的動態(tài)分配多重中斷是指,當CPU正在執(zhí)行某個中斷服務(wù)程序期間,且CPU處于開中斷狀態(tài),則允許優(yōu)先級高的中斷源中斷級別低的中斷服務(wù)程序,在保存斷點和現(xiàn)場后轉(zhuǎn)去響應(yīng)優(yōu)先級更高的中斷請求,并執(zhí)行新的中斷服務(wù)程序。中斷系統(tǒng)中的優(yōu)先權(quán)包含著響應(yīng)優(yōu)先和處理優(yōu)先權(quán)。響應(yīng)優(yōu)先指多個中斷請求同時提出時,由硬件排隊線路決定CPU響應(yīng)中斷請求的次序。處理優(yōu)先權(quán)指CPU執(zhí)行服務(wù)程序過程中,優(yōu)先執(zhí)行哪個中斷服務(wù)程序的次序。83計算機組成原理中斷級的響應(yīng)次序由硬件排隊線路決定。一旦設(shè)計完成,系統(tǒng)的響應(yīng)優(yōu)先級別就決定了,但缺乏改變優(yōu)先級別的靈活性。在有優(yōu)先級中斷屏蔽碼控制的條件下,可以在不改變系統(tǒng)排隊線路的條件下,由系統(tǒng)軟件根據(jù)需要,改變多重中斷的處理次序,使其和中斷響應(yīng)次序不同。因為中斷屏蔽碼是由軟件賦值,改變屏蔽碼可以改變各設(shè)備之間中斷處理次序。所以屏蔽可看成中斷處理過程中的軟排隊器。從中斷服務(wù)程序結(jié)構(gòu)中看,中斷服務(wù)程序可以在具體處理前被中斷。所以中斷處理次序可以不同于中斷響應(yīng)次序。這就反映了中斷系統(tǒng)軟硬件結(jié)合帶來的靈活性。下面舉例說明屏蔽在多重中斷情況下所起的作用。假設(shè)某機中斷系統(tǒng)有4級響應(yīng)優(yōu)先權(quán),響應(yīng)級由高到低為1→2→3→4,每級對應(yīng)1個屏蔽碼。表9-6列出中斷響應(yīng)優(yōu)先級與屏蔽級一致情況下的屏蔽碼。84計算機組成原理表9-6中斷響應(yīng)優(yōu)先級與屏蔽級一致時的屏蔽碼程序級別屏蔽碼1234備注第一級第二級第三級第四級11110111001100010為開放1為屏蔽85計算機組成原理在以上條件下,可描述多重中斷CPU運動的軌跡。由圖9-29可知,橫向表示時間,記號①為1號設(shè)備中斷請求信號在時間軸上出現(xiàn)的時刻。在CPU執(zhí)行主程序過程中的某一時刻,①②④三個設(shè)備同時出現(xiàn)請求信號,按排隊線路,CPU應(yīng)首先響應(yīng)1級請求,執(zhí)行1級的服務(wù)程序并保護現(xiàn)場和舊屏蔽字后,將1級程序的屏蔽碼置入各接口屏蔽寄存器,它將屏蔽掉2、4級的中斷請求,執(zhí)行完`1級服務(wù)程序后,恢復(fù)原屏蔽碼,返回主程序后,再響應(yīng)②、④請求,與上述分析過程相同。當?shù)诙M中斷請求出現(xiàn)時,由于③請求先出現(xiàn),系統(tǒng)響應(yīng)3級請求,并執(zhí)行服務(wù)程序。當3級程序屏蔽碼置入屏蔽寄存器后,由于它對1級中斷是開放的,所以產(chǎn)生①請求時,則系統(tǒng)被1級中斷,當執(zhí)行完1服務(wù)程序返回3級時,又有②請求出現(xiàn),因為3級對2級開放,所以再被2級中斷,這就形成嵌套中斷。86計算機組成原理圖9-29響應(yīng)次序與處理次序一致時的CPU運動軌跡87計算機組成原理在不改變硬件排隊響應(yīng)次序條件下,欲改變中斷處理次序為1—4—3—2,則改變屏蔽碼如表9-7表所示。在同樣中斷請求情況下,CPU運動軌跡如圖9-30所示。當?shù)谝唤M三個請求①、④、②同時到來時,首先響應(yīng)1級請求,當返回主程序后,④和②請求同時產(chǎn)生,由硬件排隊線路決定先響應(yīng)2級請求,但當2級屏蔽碼置入屏蔽寄存器后,由于2級對4級是開放的,且屏蔽它本身,當2級服務(wù)程序執(zhí)行到開中斷指令后就被4級中斷;當4級中斷服務(wù)程序執(zhí)行完后返回到2級程序,并執(zhí)行完2級服務(wù)程序后返回主程序。由此可知,它改變了硬排隊所決定的響應(yīng)次序。當?shù)诙M中斷請求出現(xiàn)時,③申請先出現(xiàn),故應(yīng)首先響應(yīng)3級中斷,并執(zhí)行中斷程序,因3級對1級開放,所以當①請求出現(xiàn)時,1級中斷了3級。1級服務(wù)程序執(zhí)行完后返回3級。在執(zhí)行3級服務(wù)程序過程中,②請求出現(xiàn),由于3級對2級屏蔽,所以當3級執(zhí)行完返回主程序后才響應(yīng)2級請求并執(zhí)行,執(zhí)行完后返回主程序。屏蔽技術(shù)為用戶提供了用程序控制中斷系統(tǒng)的手段,它動態(tài)地調(diào)度多重中斷優(yōu)先處理順序,為中斷系統(tǒng)帶來靈活性。88計算機組成原理表9-7中斷處理次序為1→4→3→2的屏蔽碼程序級別屏蔽碼1234第一級第二級第三級第四級111101000110011189計算機組成原理圖9-30響應(yīng)次序與處理次序不一致時的CPU運動軌跡90計算機組成原理9.5DMA(存儲器直接存?。┓绞?/p>

一、程序直接控制與程序中斷控制數(shù)據(jù)傳送的不足高速大容量存儲器和主存儲器之間交換信息時,若采用程序直接控制傳送或程序中斷控制傳送的方式,則會有如下問題發(fā)生。1、采用程序直接傳送,每傳送一個字節(jié)(字)要執(zhí)行若干條指令,并占用多個存儲周期。在傳送完一個字節(jié)后,要判斷一批數(shù)據(jù)是否傳送完成。若沒有完成,要重新啟動外設(shè)工作。而一般高速設(shè)備具有獨立的時鐘控制,從啟動到整個數(shù)據(jù)傳送結(jié)束都是在獨立的時鐘控制下完成的,不可能在傳送完一個字符后停止,因此這種高速同步操作的設(shè)備與程序直接控制傳送不相容。此外若外設(shè)工作速度低于主存周期時,主機效率受到限制。91計算機組成原理2、采用中斷控制數(shù)據(jù)傳送可以提高主機效率,但若用于高速外設(shè)和主機交換信息,會使主機處于頻繁的中斷與返回過程中,從而加重了與中斷有關(guān)的額外負擔(即保護舊現(xiàn)場,恢復(fù)新現(xiàn)場),這樣便降低了CPU的性能,還有有發(fā)生丟失數(shù)據(jù)的可能。例如磁盤平均速度為10萬字符/秒,即用10us傳送一個字符,CPU指令周期為2us,若中斷服務(wù)程序為10條指令,交換一次數(shù)據(jù)CPU需要20us。其結(jié)果顯然是,CPU第一個數(shù)據(jù)還沒有取走,而第二個數(shù)據(jù)便將第一個數(shù)據(jù)沖掉,致使數(shù)據(jù)丟失。所以對高速I/O設(shè)備,用程序中斷傳送控制方式也是不合適的。綜上所述,高速度、大容量存儲設(shè)備和主存之間的數(shù)據(jù)傳送需要有更為有效的技術(shù)。采用直接存儲器訪問方式(DMA方式)較為適合。92計算機組成原理二、直接存儲器訪問(DMA)DMA數(shù)據(jù)傳送方式是在I/O設(shè)備與存儲器之間由硬件組成的直接數(shù)據(jù)通路,用于高速外設(shè)按照連接地址直接訪問主存儲器的成塊數(shù)據(jù)傳送。圖9-31為具有DMA數(shù)據(jù)通道結(jié)構(gòu)框圖。數(shù)據(jù)傳送是在DMA控制器的控制下進行的。由DMA給出當前正在傳送的數(shù)據(jù)字的主存地址,并統(tǒng)計傳送數(shù)據(jù)的個數(shù),以確定一組數(shù)據(jù)的傳送是否已結(jié)束。在主存中開辟連續(xù)地址的專用緩沖器,用來提供或接受傳送的數(shù)據(jù)。在數(shù)據(jù)傳送前和結(jié)束后,要通過程序或中斷方式對緩沖器和DMA控制器進行預(yù)處理和后處理。93計算機組成原理圖9-31DMA數(shù)據(jù)通道結(jié)構(gòu)框圖94計算機組成原理三、DMA的特點DMA和前兩種I/O控制方式有如下基本區(qū)別:1、DMA控制器建立了外部設(shè)備和內(nèi)存之間直接交換的數(shù)據(jù)通道,大大減輕了總線負荷。2、數(shù)據(jù)傳送過程是由DMA控制器來實現(xiàn)控制的。DMA控制能像CPU一樣訪問主存。因此DMA方式是以存儲器為中心,而程序直接傳送、程序中斷傳送都是以CPU為中心,利用軟硬件手段來控制數(shù)據(jù)傳送。當DMA和CPU同時要求訪問內(nèi)存時,常賦予DMA以較高的優(yōu)先級。3、主存需開辟專用緩沖區(qū),及時供給和接收數(shù)據(jù)。DMA數(shù)據(jù)傳送開始前,需由主程序為DMA傳送作準備,使DMA初始化;在DMA傳送結(jié)束后,再通過中斷方式進行結(jié)束處理。4、為了解決CPU和DMA同時訪問主存發(fā)生的沖突,DMA傳送常采用周期挪用(StealingCycle)。周期挪用是在CPU執(zhí)行指令周期中凍結(jié)一個存儲周期,被DMA設(shè)備挪用,進行一次數(shù)據(jù)讀寫操作。一旦高速設(shè)備提出與主存交換信息時,在一個存儲周期結(jié)束后,立即竊取下一個儲存周期,這樣就不必等待CPU響應(yīng),而且被竊取周期內(nèi)CPU仍可執(zhí)行內(nèi)部操作,因此可使CPU和外設(shè)的并行操作程度更高,只有CPU的指令周期連續(xù)占滿存儲周期時,DMA才會引起CPU性能的下降。95計算機組成原理四、DMA三種工作方式1、CPU暫停方式主機響應(yīng)DMA請求后,讓出存儲總線,直到一組數(shù)據(jù)傳送完畢后,DMA控制器才把總線控制權(quán)交還給CPU。采用這種工作方式的I/O設(shè)備,在其接口中一般設(shè)置有小容量存儲器。I/O設(shè)備先與小容量存儲器交換數(shù)據(jù),然后由小容量存儲器與主機交換數(shù)據(jù),這樣可減少DMA傳送占用存儲總線的時間,也即減少CPU暫停工作時間。2、CPU周期竊取方式DMA控制器與主存儲器之間傳送一個數(shù)據(jù),占用(竊取)一個CPU周期,即CPU暫停工作一個周期,然后繼續(xù)執(zhí)行程序。3、直接訪問存儲器工作方式這是標準的DMA工作方式,如傳送數(shù)據(jù)時CPU正好不占用存儲總線,則對CPU不產(chǎn)生任何影響。如DMA和CPU同時需要訪問存儲總線,則DMA的優(yōu)先級高于CPU。在DMA傳送數(shù)據(jù)過程中,不能占用或破壞

CPU硬件資源或工作狀態(tài),否則將影響CPU的程序執(zhí)行。96計算機組成原理五、DMA控制器的組成DMA控制器(接口)的結(jié)構(gòu)框圖如圖9-32所示。圖9-32DMA接口97計算機組成原理1、寄存器組(1)DMA地址寄存器DMAR該寄存器初始值為主存緩沖區(qū)的首地址。主存緩沖區(qū)地址是連續(xù)的,I/O設(shè)備訪存時,由該首地址開始。該寄存器具有自動加1功能,能不斷提供存儲器數(shù)據(jù)區(qū)的地址。(2)外部設(shè)備地址寄存器DAR該寄存器存放I/O設(shè)備的設(shè)備碼或表示設(shè)備信息存儲區(qū)的尋址信息,如磁盤數(shù)據(jù)所在的區(qū)號,盤面號和柱面號等。具體內(nèi)容由I/O設(shè)備的數(shù)據(jù)格式及地址編址方式?jīng)Q定。(3)字數(shù)計數(shù)器WCR該寄存器初始值為要傳送數(shù)據(jù)的總字數(shù),每傳遞一個字(或字節(jié))計數(shù)器自動減1。當WCR減為零時,表示數(shù)據(jù)已全部傳送完畢,結(jié)束傳輸。98計算機組成原理(4)控制與狀態(tài)寄存器CSR它是在DMA傳送時存放DMA控制字或狀態(tài)字的寄存器,其格式為:其中1~3為方式控制位。有的接口中使用兩個寄存器,分別存放控制字和狀態(tài)字。(5)數(shù)據(jù)緩沖寄存器DBR它是用來暫存I/O設(shè)備與主存之間傳遞的數(shù)據(jù),與主機之間并行傳送,并具有字節(jié)拼裝能力。它可以是移位寄存器,接受外設(shè)串行傳送數(shù)據(jù)并拼成字節(jié)或字。99計算機組成原理2、中斷控制邏輯DMA通道由CPU程序準備和啟動。一旦啟動后,數(shù)據(jù)傳送過程完全由DMA接口實現(xiàn);當DMA傳送結(jié)束后,由DMA接口中的中斷控制邏輯向CPU發(fā)中斷申請,要求處理機做結(jié)束處理工作。如讀出盤驅(qū)動器的狀態(tài)字,判斷是否出錯,若出錯則進行出錯處理。3、DMA請求觸發(fā)器CDMAREQ在批量交換數(shù)據(jù)傳輸過程中,每一個數(shù)據(jù)的交換都要向CPU發(fā)一次DMA請求,接口中設(shè)置DMA觸發(fā)器CDMAREQ。一次周期挪用結(jié)束,在CPU一側(cè),DMA控制器清除CDMAREQ;在設(shè)備一側(cè),當設(shè)備讀/寫操作完成后,則以完成信號回答接口,且使CDMAREQ置1,表示下次DMA請求開始。4、傳輸線傳輸線是DMA接口與主機和DMA接口與I/O設(shè)備兩個方向的數(shù)據(jù)線、地址線和控制信號線。100計算機組成原理六、DMA操作過程DMA的數(shù)據(jù)傳送過程可分為三個階段:DMA傳送前的預(yù)處理(即CPU用主程序為DMA傳送作準備)、數(shù)據(jù)傳送及傳送后處理。如圖9-33所示。圖9-33DMA傳送過程101計算機組成原理1、DMA傳送前的預(yù)處理為了實現(xiàn)外部設(shè)備和主存之間數(shù)據(jù)直接成批的交換,必然把有關(guān)數(shù)據(jù)來源、去向和傳送數(shù)據(jù)的總數(shù)等信息事先通知DMA接口。所以在傳送前先由CPU用測試指令測試設(shè)備狀態(tài),以判斷是否可以調(diào)用該設(shè)備。若可以調(diào)用該設(shè)備,則用以下幾條輸入輸出指令實現(xiàn)。MOV設(shè)備地址,DAR;設(shè)備地址→DAR MOV主存數(shù)據(jù)區(qū)首址,DMAR;主存數(shù)據(jù)區(qū)首址→DMARMOV數(shù)據(jù)字數(shù),WCR;數(shù)據(jù)字數(shù)→WCR MOV控制字,DSR;啟動設(shè)備在完成這些工作之后,CPU繼續(xù)執(zhí)行原程序,從此CPU與高速設(shè)備重疊運行。DMA接口被啟動后,便代替CPU管理I/O設(shè)備進行數(shù)據(jù)傳送。102計算機組成原理2、DMA的數(shù)據(jù)傳送下面以數(shù)據(jù)輸入操作為例,介紹DMA的數(shù)據(jù)傳送過程。(1)由主程序啟動設(shè)備后,從I/O設(shè)備存儲介質(zhì)上讀入一個字到DMA數(shù)據(jù)緩沖寄存器的DBR中。此時設(shè)備控制器以“完成”信號置CDMAREQ=1,表明設(shè)備已完成一個數(shù)據(jù)傳送工作,并向CPU發(fā)出DMA請求,申請存儲周期。此時若有幾個DMA接口同時發(fā)DMA請求,則按優(yōu)先級由硬件排隊線路來決定首先響應(yīng)哪一個DMA請求。(2)CPU響應(yīng)DMA請求并在CPU的一個存儲周期結(jié)束后,DMA立即占用下一個存儲周期(DMA周期)進行寫操作,此時CPU現(xiàn)場凍結(jié)。圖9-34為DMA運動軌跡。當DMA周期結(jié)束后開始熱啟動。103計算機組成原理圖9-34DMA運動軌跡104計算機組成原理在DMA周期中CPU把存儲器的控制權(quán)移交給DMA接口,DMA接口與主存儲器直接溝通,并執(zhí)行以下三個操作:MAR←DMAR;將存儲器數(shù)據(jù)區(qū)首址送MARMDR←DBR;將數(shù)據(jù)緩沖寄存器數(shù)據(jù)送MDRWRITE;發(fā)送寫存儲器命令當DMA周期結(jié)束后以清除信號送DMA接口。105計算機組成原理(3)清除信號在DMA接口中執(zhí)行三個操作:WCR←(WCR)+1;WCR為補碼計數(shù)器DMAR←(DMAR)+1;指向存儲器數(shù)據(jù)區(qū)的下一個地址CDMAREQ←0;表示本次DMA結(jié)束(4)高速設(shè)備只需要啟動一次,以后連續(xù)不斷讀出,即循環(huán)上面(1)、(2)、(3)操作,完成所要傳送的全部字符。(5)數(shù)據(jù)全部讀出并交換完畢后,DMA接口發(fā)DMA中斷請求。中斷請求條件是WCR·R·I=1。WCR=1,即全部字數(shù)交換完畢,R=1外設(shè)工作完成,I=1系統(tǒng)允許中斷。3、DMA的結(jié)束處理CPU響應(yīng)中斷后,則停止原程序執(zhí)行,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,做一些DMA結(jié)束處理工作,如對送入主存數(shù)據(jù)的檢驗,測試在傳送過程中是否發(fā)生錯誤等。106計算機組成原理七、DMA與中斷的區(qū)別1、中斷方式是程序的切換,即通過CPU執(zhí)行一段中斷服務(wù)程序來交換一個數(shù)據(jù)。因此CPU硬件資源被所有程序共享,在切換過程中破壞原程序的狀態(tài),每次切換都要以額外開銷(保護舊現(xiàn)場和恢復(fù)舊現(xiàn)場)執(zhí)行中斷服務(wù)程序。DMA方式僅挪用一個存儲周期:若在此周期中,CPU執(zhí)行與主存有關(guān)的操作,則只需要凍結(jié)此存儲周期,在DMA結(jié)束后可馬上熱啟動,CPU可繼續(xù)執(zhí)行原程序;若在此周期中,CPU執(zhí)行與主存無關(guān)的操作,此時CPU可繼續(xù)執(zhí)行程序,這使CPU操作與DMA操作高度重疊。DMA操作只需在啟動和結(jié)束階段由CPU執(zhí)行一段程序外,在整個數(shù)據(jù)傳送期間不占用CPU硬件資源。107計算機組成原理2、中斷方式只能在一條指令結(jié)束后CPU才能響應(yīng)中斷請求。而在DMA方式中,CPU可以在指令周期中任何一個周期結(jié)束時DMA請求。圖9-35為中斷與DMA的不同插入點。3、DMA方式使CPU與DMA的并行性比中斷方式高。4、DMA方式的優(yōu)先權(quán)比中斷方式高。中斷具有對異?;驈?fù)雜事件的處理功能,而DMA方式只適用于對數(shù)據(jù)傳送的控制。5、DMA方式只對少量同類設(shè)備進行控制,適于在微小型機中使用。系統(tǒng)較大時,外部設(shè)備很多,多個DM

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論