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

下載本文檔

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

文檔簡介

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

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

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

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

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

;PSW進(jìn)線MOVPC,-(SP)

;PC進(jìn)棧MOVVA,PC ;(VA)→

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

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

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

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

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

評論

0/150

提交評論