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

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理主講老師:葉林鋒電子郵件:64664921@聯(lián)系電話:139221550662023/2/31計(jì)算機(jī)組成原理第8章

輸入輸出系統(tǒng)2023/2/32計(jì)算機(jī)組成原理第8章計(jì)算機(jī)的輸入輸出系統(tǒng)是整個(gè)計(jì)算機(jī)系統(tǒng)中最具有多樣性和復(fù)雜性的部分,本章首先介紹主機(jī)與外設(shè)之間的連接問題,接著重點(diǎn)介紹程序查詢方式、程序中斷方式、DMA方式和通道方式。2023/2/33計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接8.1.1

輸入輸出接口

主機(jī)和外設(shè)的連接方式有輻射型連接、總線型連接等。輸入/輸出接口(I/O接口)是主機(jī)和外設(shè)之間的交接界面,通過(guò)接口可以實(shí)現(xiàn)主機(jī)和外設(shè)之間的信息交換。主機(jī)和外設(shè)各自具有自己的工作特點(diǎn),它們?cè)谛畔⑿问胶凸ぷ魉俣壬暇哂泻艽蟮牟町?,接口正是為了解決這些差異而設(shè)置的。

2023/2/34計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接主機(jī)和外設(shè)之間需要交換的信息有:1.數(shù)據(jù)信息這類信息可以是通過(guò)輸入設(shè)備送到計(jì)算機(jī)的輸入數(shù)據(jù),也可以是經(jīng)過(guò)計(jì)算機(jī)運(yùn)算處理和加工后,送到輸出設(shè)備的結(jié)果數(shù)據(jù)。傳送可以是并行的,也可以是串行的。2.控制信息這是CPU對(duì)外設(shè)的控制信息或管理命令,如外設(shè)的啟動(dòng)和停止控制、輸入或輸出操作的指定、工作方式的選擇、中斷功能的允許和禁止等。2023/2/35計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接3.狀態(tài)信息這類信息用來(lái)標(biāo)志外設(shè)的工作狀態(tài),比如,輸入設(shè)備數(shù)據(jù)準(zhǔn)備好標(biāo)志,輸出設(shè)備忙閑標(biāo)志等。CPU在必要時(shí)可通過(guò)對(duì)它的查詢來(lái)決定下一步的操作。4.

聯(lián)絡(luò)信息這是主機(jī)和外設(shè)間工作的時(shí)間配合信息,它與主機(jī)和外設(shè)間的信息交換方式密切相關(guān)。通過(guò)聯(lián)絡(luò)信息可以決定不同工作速度的外設(shè)和主機(jī)之間交換信息的最佳時(shí)刻,以保證整個(gè)計(jì)算機(jī)系統(tǒng)能統(tǒng)一協(xié)調(diào)地工作。2023/2/36計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接5.外設(shè)識(shí)別信息這是I/O尋址的信息,使CPU能從眾多的外設(shè)中尋找出與自己進(jìn)行信息交換的唯一外部設(shè)備。2023/2/37計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接8.1.2接口的功能和基本組成1.接口的功能(1)實(shí)現(xiàn)主機(jī)和外設(shè)的通信聯(lián)絡(luò)控制接口中的同步控制電路用來(lái)解決主機(jī)與外設(shè)的時(shí)間配合問題。(2)進(jìn)行地址譯碼和設(shè)備選擇當(dāng)CPU送來(lái)選擇外設(shè)的地址碼后,接口必須對(duì)地址進(jìn)行譯碼以產(chǎn)生設(shè)備選擇信息,使主機(jī)能和指定外設(shè)交換信息。2023/2/38計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接(3)實(shí)現(xiàn)數(shù)據(jù)緩沖在接口電路中,一般設(shè)置有一個(gè)或幾個(gè)數(shù)據(jù)緩沖寄存器,用于數(shù)據(jù)的暫存,以避免因速度不一致而丟失數(shù)據(jù)。在傳送過(guò)程中,先將數(shù)據(jù)送入數(shù)據(jù)緩沖寄存器中,然后再送到輸出設(shè)備或主機(jī)中去。(4)數(shù)據(jù)格式的變換在輸入或輸出操作過(guò)程中,為了滿足主機(jī)或外設(shè)的各自要求,接口電路中必須具有完成各類數(shù)據(jù)相互轉(zhuǎn)換的功能。2023/2/39計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接(5)傳遞控制命令和狀態(tài)信息當(dāng)CPU要啟動(dòng)某一外設(shè)時(shí),通過(guò)接口中的控制命令寄存器向外設(shè)發(fā)出啟動(dòng)命令;當(dāng)外設(shè)準(zhǔn)備就緒時(shí),則有狀態(tài)信息送回接口中的狀態(tài)寄存器,為CPU提供反饋信息,告訴CPU,I/O設(shè)備已經(jīng)具備和CPU交換數(shù)據(jù)的條件。當(dāng)外設(shè)向CPU提出中斷請(qǐng)求和DMA請(qǐng)求時(shí),CPU也有相應(yīng)的響應(yīng)信號(hào)反饋給外設(shè)。2023/2/310計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接2.接口的基本組成接口中要分別傳送數(shù)據(jù)信息、控制信息和狀態(tài)信息,數(shù)據(jù)信息、控制信息和狀態(tài)信息都通過(guò)數(shù)據(jù)總線來(lái)傳送。大多數(shù)計(jì)算機(jī)都把I/O設(shè)備的狀態(tài)信息視為輸入數(shù)據(jù),而把控制信息看成輸出數(shù)據(jù),并在接口中分設(shè)各自相應(yīng)的寄存器,賦以不同的端口地址,各種信息分時(shí)地使用數(shù)據(jù)總線傳送到各自的寄存器中。2023/2/311計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接主機(jī)外設(shè)識(shí)別數(shù)據(jù)/命令/狀態(tài)控制電路地址信息控制聯(lián)絡(luò)信息數(shù)據(jù)(并)外設(shè)控制聯(lián)絡(luò)數(shù)據(jù)(并/串)接口2023/2/312計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接接口與端口是兩個(gè)不同的概念。端口是指接口電路中可以進(jìn)行讀/寫的寄存器,若干個(gè)端口加上相應(yīng)的控制邏輯電路才組成接口。2023/2/313計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接通常,一個(gè)接口中包含有數(shù)據(jù)端口、控制端口和狀態(tài)端口。存放數(shù)據(jù)信息的寄存器稱為數(shù)據(jù)端口,存放控制命令的端口稱為命令端口,存放狀態(tài)信息的寄存器稱為狀態(tài)端口。CPU通過(guò)輸入指令可以從有關(guān)端口中讀出信息,通過(guò)輸出指令可以把信息寫入有關(guān)端口。對(duì)狀態(tài)端口只進(jìn)行輸入操作,將設(shè)備狀態(tài)標(biāo)志送到CPU中去;對(duì)命令端口只進(jìn)行輸出操作,CPU將向外設(shè)發(fā)送各種控制命令。因此,在有的接口電路中狀態(tài)信息和控制信息共用一個(gè)寄存器,稱之為設(shè)備的控制狀態(tài)寄存器。2023/2/314計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接3.接口的類型(1)按數(shù)據(jù)傳送方式分類有串行接口和并行接口。這里所說(shuō)的數(shù)據(jù)傳送方式指的是外設(shè)和接口一側(cè)的傳送方式,而在主機(jī)和接口一側(cè),數(shù)據(jù)總是并行傳送的。

(2)按主機(jī)訪問I/O設(shè)備的控制方式分類可分為程序查詢式接口、中斷接口、DMA接口等。(3)按功能選擇的靈活性分類有可編程接口和不可編程接口。2023/2/315計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接(4)按通用性分類有通用接口和專用接口。(5)按輸入/輸出的信號(hào)分類有數(shù)字接口和模擬接口。(6).按應(yīng)用來(lái)分類

運(yùn)行輔助接口。

用戶交互接口。

傳感接口。

控制接口。2023/2/316計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接8.1.3外設(shè)的識(shí)別與端口尋址外設(shè)識(shí)別是通過(guò)地址總線和接口電路中的外設(shè)識(shí)別電路來(lái)實(shí)現(xiàn)的,I/O端口地址就是主機(jī)與外設(shè)直接通信的地址,CPU可以通過(guò)端口發(fā)送命令、讀取狀態(tài)和傳送數(shù)據(jù)。1.端口地址編址方式

I/O端口編址方式有兩種:一種是I/O映射方式,即把I/O端口地址與主存單元地址分別進(jìn)行獨(dú)立的編址;另一種是存儲(chǔ)器映射方式,即把端口地址與主存單元地址統(tǒng)一編址。2023/2/317計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接(1)獨(dú)立編址主存地址空間和I/O端口地址空間是相對(duì)獨(dú)立的,分別單獨(dú)編址。比如,在8086中,其主存地址范圍是從00000H~FFFFFH連續(xù)的1MB,其I/O端口的地址范圍從0000H~FFFFH,它們互相獨(dú)立,互不影響。CPU訪問主存時(shí),由主存讀/寫控制線控制;訪問外設(shè)時(shí),由I/O讀/寫控制線控制,所以在指令系統(tǒng)中必須設(shè)置專門的I/O指令。當(dāng)CPU使用I/O指令時(shí),其指令的地址字段直接或間接的指示出端口地址。2023/2/318計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接(2)統(tǒng)一編址

I/O端口地址和主存單元的地址是統(tǒng)一編址的,把I/O接口中的端口作為主存單元一樣進(jìn)行訪問,不設(shè)置專門的I/O指令。每個(gè)外設(shè)至少有兩個(gè)寄存器:控制狀態(tài)寄存器和數(shù)據(jù)緩沖寄存器,外設(shè)寄存器的地址碼是連續(xù)的。在PDP-11中,把主存的高4KB地址空間留給外設(shè)接口寄存器和CPU內(nèi)部寄存器使用,這4KB存儲(chǔ)空間不允許用戶再存放其他內(nèi)容。2023/2/319計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接2.獨(dú)立編址方式的端口訪問

Intel80x86最多可直接尋址256個(gè)字節(jié)端口,可間接尋址65536個(gè)字節(jié)端口。任意兩個(gè)連續(xù)的8位端口可作為16位端口處理;四個(gè)連續(xù)的8位端口可作為32位端口處理。因此,I/O地址空間最多能提供64K個(gè)8位端口、32K個(gè)16位端口、16K個(gè)32位端口或總?cè)萘坎怀^(guò)64KB的不同端口的組合。2023/2/320計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接

80x86的專用I/O指令I(lǐng)N和OUT有直接尋址和間接尋址兩種類型。直接尋址I/O端口的尋址范圍為00~FFH,至多為256個(gè)端口地址。這時(shí)程序可以指定:編號(hào)0到255的256個(gè)8位端口;編號(hào)0、2、4…252、254的128個(gè)16位端口;編號(hào)0、4、8…248、252的64個(gè)32位端口。2023/2/321計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接間接尋址由DX寄存器間接給出I/O端口地址。DX寄存器長(zhǎng)16位,尋址范圍為0000~FFFFH,最多可尋址216=64K個(gè)端口地址,這時(shí)程序可指定:編號(hào)0到65535的65536個(gè)8位端口;編號(hào)0、2、4…65532、65534的32768個(gè)16位端口;編號(hào)0、4、8…65528、65532的16384個(gè)32位端口。2023/2/322計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接

CPU一次可實(shí)現(xiàn)字節(jié)(8位)、字(16位)或雙字(32位)的數(shù)據(jù)傳送,與存儲(chǔ)器中的雙字一樣。32位端口應(yīng)對(duì)準(zhǔn)可被4整除的偶地址,與存儲(chǔ)器中的字一樣,16位端口應(yīng)對(duì)準(zhǔn)偶地址,8位端口可定位在偶地址,也可定位在奇地址。2023/2/323計(jì)算機(jī)組成原理

8.1主機(jī)與外設(shè)的連接8.1.4輸入/輸出信息傳送控制方式

主機(jī)和外設(shè)之間的信息傳送控制方式,經(jīng)歷了由低級(jí)到高級(jí)、由簡(jiǎn)單到復(fù)雜、由集中管理到各部件分散管理的發(fā)展過(guò)程,按其發(fā)展的先后次序和主機(jī)與外設(shè)并行工作的程度,可以分為四種。2023/2/324計(jì)算機(jī)組成原理

8.1主機(jī)與外設(shè)的連接1.程序查詢方式程序查詢方式是一種程序直接控制方式,這是主機(jī)與外設(shè)間進(jìn)行信息交換的最簡(jiǎn)單方式,輸入和輸出完全是通過(guò)CPU執(zhí)行程序來(lái)完成的。

這種方式控制簡(jiǎn)單,但外設(shè)和主機(jī)不能同時(shí)工作,各外設(shè)之間也不能同時(shí)工作,系統(tǒng)效率很低,因此,僅適用于外設(shè)的數(shù)目不多,對(duì)I/O處理的實(shí)時(shí)要求不那么高,CPU的操作任務(wù)比較單一,并不很忙的情況。2023/2/325計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接2.程序中斷方式外設(shè)在作好輸入/輸出準(zhǔn)備時(shí),向主機(jī)發(fā)中斷請(qǐng)求,主機(jī)接到請(qǐng)求后就暫時(shí)中止原來(lái)執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序?qū)ν獠空?qǐng)求進(jìn)行處理,在中斷處理完畢后返回原來(lái)的程序繼續(xù)執(zhí)行。程序中斷不僅允許主機(jī)和外設(shè)同時(shí)并行工作,并且允許一臺(tái)主機(jī)管理多臺(tái)外設(shè)。但是完成一次程序中斷需要許多輔助操作,可能使CPU應(yīng)接不暇;對(duì)于一些高速外設(shè),可能會(huì)造成信息丟失,因此,它主要適用于中、低速外設(shè)。

2023/2/326計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接3.直接存儲(chǔ)器存?。―MA)方式

DMA方式是在主存儲(chǔ)器和外部設(shè)備之間開辟直接的數(shù)據(jù)通路,可以進(jìn)行基本上不需要CPU介入的主存和外設(shè)之間的信息傳送,這樣不僅能保證CPU的高效率,而且能滿足高速外設(shè)的需要。

DMA方式只能進(jìn)行簡(jiǎn)單的數(shù)據(jù)傳送操作,在數(shù)據(jù)塊傳送的起始和結(jié)束時(shí)還需CPU及中斷系統(tǒng)進(jìn)行預(yù)處理和后處理。

2023/2/327計(jì)算機(jī)組成原理8.1主機(jī)與外設(shè)的連接4.I/O通道控制方式通道是一個(gè)具有特殊功能的處理器,它能獨(dú)立地執(zhí)行通道程序,產(chǎn)生相應(yīng)的控制信號(hào),實(shí)現(xiàn)對(duì)外設(shè)的統(tǒng)一管理和外設(shè)與主存之間的數(shù)據(jù)傳送。但它不是一個(gè)完全獨(dú)立的處理機(jī),它要在CPU的I/O指令指揮下才能啟動(dòng)、停止或改變工作狀態(tài),是從屬于CPU的一個(gè)專用處理器。一個(gè)通道執(zhí)行輸入/輸出過(guò)程全部由通道按照通道程序自行處理,不論交換信息多少,只打擾CPU兩次(啟動(dòng)和停止時(shí))。2023/2/328計(jì)算機(jī)組成原理8.2程序查詢方式及其接口8.2.1程序查詢方式1.程序查詢的基本思想由CPU執(zhí)行一段輸入、輸出程序來(lái)實(shí)現(xiàn)主存與外設(shè)之間的數(shù)據(jù)傳送方式,叫做程序直接控制方式。根據(jù)外設(shè)的不同性質(zhì),這種傳送方式又可分為無(wú)條件傳送和程序查詢方式兩種。在無(wú)條件傳送方式中,I/O接口總是準(zhǔn)備好接收主機(jī)的輸出數(shù)據(jù),或總是準(zhǔn)備好向主機(jī)輸入的數(shù)據(jù),因而CPU無(wú)需查詢外設(shè)的工作狀態(tài),而默認(rèn)外設(shè)始終處于準(zhǔn)備就緒狀態(tài)。2023/2/329計(jì)算機(jī)組成原理8.2程序查詢方式及其接口許多外設(shè)的工作狀態(tài)是很難事先預(yù)知的,為了保證數(shù)據(jù)傳送的正確進(jìn)行,就要求CPU在程序中查詢外設(shè)的工作狀態(tài),如果外設(shè)尚未準(zhǔn)備就緒,CPU就等待,只有外設(shè)已作好準(zhǔn)備,CPU才能執(zhí)行I/O指令,這就是程序查詢方式。2023/2/330計(jì)算機(jī)組成原理8.2程序查詢方式及其接口2.程序查詢方式的工作流程(1)預(yù)置傳送參數(shù)在傳送數(shù)據(jù)之前,由CPU執(zhí)行一段程序,預(yù)置傳送參數(shù)。傳送參數(shù)包括存取數(shù)據(jù)的主存緩沖區(qū)首地址和傳送數(shù)據(jù)的個(gè)數(shù)。(2)向I/O接口發(fā)命令字當(dāng)CPU選中某臺(tái)外設(shè)時(shí),執(zhí)行輸出指令向I/O接口發(fā)出命令字,啟動(dòng)外設(shè),為接收數(shù)據(jù)或發(fā)送數(shù)據(jù)的操作做準(zhǔn)備。2023/2/331計(jì)算機(jī)組成原理8.2程序查詢方式及其接口(3)從I/O接口取回狀態(tài)字

CPU執(zhí)行輸入指令,從I/O接口中取回狀態(tài)字并進(jìn)行測(cè)試,判斷數(shù)據(jù)傳送是否可以進(jìn)行。(4)查詢外設(shè)標(biāo)志

CPU不斷查詢狀態(tài)標(biāo)志,如果外設(shè)沒有準(zhǔn)備就緒,CPU就踏步進(jìn)行等待,一直到這個(gè)外設(shè)準(zhǔn)備就緒,并發(fā)出“準(zhǔn)備就緒”信號(hào)為止。2023/2/332計(jì)算機(jī)組成原理8.2程序查詢方式及其接口(5)傳送數(shù)據(jù)只有外設(shè)準(zhǔn)備好,才能實(shí)現(xiàn)主機(jī)與外設(shè)間的一次數(shù)據(jù)傳送。輸入時(shí),CPU執(zhí)行輸入指令,從I/O接口的數(shù)據(jù)緩沖寄存器中接收數(shù)據(jù);輸出時(shí),CPU執(zhí)行輸出指令,將數(shù)據(jù)寫入I/O接口的數(shù)據(jù)緩沖寄存器。(6)修改傳送參數(shù)每進(jìn)行一次數(shù)據(jù)傳送,需要修改傳送參數(shù),其中包括主存緩沖區(qū)地址加1,傳送個(gè)數(shù)減1。2023/2/333計(jì)算機(jī)組成原理8.2程序查詢方式及其接口(7)判斷傳送是否結(jié)束

如果傳送個(gè)數(shù)不為0,則轉(zhuǎn)第3步,繼續(xù)傳送,直到傳送結(jié)束為止。2023/2/334計(jì)算機(jī)組成原理8.2程序查詢方式及其接口預(yù)置傳送參數(shù)啟動(dòng)外設(shè)取外設(shè)狀態(tài)傳送一次數(shù)據(jù)修改傳送參數(shù)外設(shè)準(zhǔn)備就緒?傳送完否?YYNN結(jié)束輸出指令(OUT控制口,AL)輸入/輸出指令(INAL,數(shù)據(jù)口/OUT數(shù)據(jù)口,AL)輸入指令(INAL,狀態(tài)口)2023/2/335計(jì)算機(jī)組成原理8.2程序查詢方式及其接口8.2.2程序查詢方式接口最簡(jiǎn)單、經(jīng)濟(jì)的I/O方式,只需很少的硬件。通常接口中至少有兩個(gè)寄存器,一個(gè)是數(shù)據(jù)緩沖寄存器,即數(shù)據(jù)端口,用來(lái)存放與CPU進(jìn)行傳送的數(shù)據(jù)信息,另一個(gè)是供CPU查詢的設(shè)備狀態(tài)寄存器,即狀態(tài)端口,這個(gè)寄存器由多個(gè)標(biāo)志位組成,其中最重要的是設(shè)備準(zhǔn)備就緒標(biāo)志。當(dāng)CPU得到這位信息后就進(jìn)行判斷,以決定下一步是繼續(xù)循環(huán)等待還是進(jìn)行I/O傳送,也有些計(jì)算機(jī)僅設(shè)置狀態(tài)標(biāo)志觸發(fā)器,其作用與設(shè)備狀態(tài)寄存器相同。2023/2/336計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式8.3.1中斷的基本概念1.中斷的提出程序查詢方式存在著下列明顯的缺點(diǎn)。①在查詢過(guò)程中,CPU長(zhǎng)期處于踏步等待狀態(tài),使系統(tǒng)效率大大降低。②CPU在一段時(shí)間內(nèi)只能和一臺(tái)外設(shè)交換信息,其它設(shè)備不能同時(shí)工作。③不能發(fā)現(xiàn)和處理預(yù)先無(wú)法估計(jì)的錯(cuò)誤和異常情況。2023/2/337計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式啟動(dòng)工作工作完成完成響應(yīng)響應(yīng)中斷請(qǐng)求中斷請(qǐng)求中斷返回中斷返回外部設(shè)備中斷服務(wù)程序現(xiàn)行程序CPU2023/2/338計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式為了提高輸入/輸出能力和CPU的效率,50年代中期,中斷傳送方式被引進(jìn)計(jì)算機(jī)系統(tǒng)?,F(xiàn)代計(jì)算機(jī),無(wú)論是巨型機(jī)、大型機(jī)、小型機(jī)還是微型機(jī)無(wú)不具有中斷能力。中斷系統(tǒng)是計(jì)算機(jī)實(shí)現(xiàn)中斷功能的軟、硬件總稱。一般在CPU中配置中斷機(jī)構(gòu),在外設(shè)接口中配置中斷控制器,在軟件上設(shè)計(jì)相應(yīng)的中斷服務(wù)程序。2023/2/339計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式2.程序中斷與調(diào)用子程序的區(qū)別表面上看起來(lái),計(jì)算機(jī)的中斷處理過(guò)程有點(diǎn)類似于調(diào)用子程序的過(guò)程,這里現(xiàn)行程序相當(dāng)于主程序,中斷服務(wù)程序相當(dāng)于子程序。但是,它們之間卻是有著本質(zhì)上的區(qū)別的。2023/2/340計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式⑴子程序的執(zhí)行是由程序員事先安排好的(由一條調(diào)用子程序指令轉(zhuǎn)入),而中斷服務(wù)程序的執(zhí)行則是由隨機(jī)的中斷事件引起的;⑵子程序的執(zhí)行受到主程序或上層子程序的控制,而中斷服務(wù)程序一般與被中斷的現(xiàn)行程序毫無(wú)關(guān)系;⑶不存在同時(shí)調(diào)用多個(gè)子程序的情況,而有可能發(fā)生多個(gè)外設(shè)同時(shí)請(qǐng)求CPU為自己服務(wù)的情況。2023/2/341計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式3.中斷的基本類型(1)自愿中斷和強(qiáng)迫中斷自愿中斷又稱程序自中斷,它不是隨機(jī)產(chǎn)生的中斷,而是在程序中安排的有關(guān)指令,這些指令可以使機(jī)器進(jìn)入中斷處理的過(guò)程,如:指令系統(tǒng)中的軟件中斷指令等。

強(qiáng)迫中斷是隨機(jī)產(chǎn)生的中斷,不是程序中事先安排好的。當(dāng)這種中斷產(chǎn)生后,由中斷系統(tǒng)強(qiáng)迫計(jì)算機(jī)中止現(xiàn)行程序并轉(zhuǎn)入中斷服務(wù)程序。2023/2/342計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(2)程序中斷和簡(jiǎn)單中斷

程序中斷就是我們前面提到的中斷,主機(jī)在響應(yīng)中斷請(qǐng)求后,通過(guò)執(zhí)行一段中斷服務(wù)程序來(lái)處理更緊迫的任務(wù)。

簡(jiǎn)單中斷就是外設(shè)與主存間直接進(jìn)行信息交換的方法,即DMA方式。這種“中斷”不去執(zhí)行中斷服務(wù)程序,故不破壞現(xiàn)行程序的狀態(tài)。主機(jī)發(fā)現(xiàn)有簡(jiǎn)單中斷請(qǐng)求(也就是DMA請(qǐng)求)時(shí),將讓出一個(gè)或幾個(gè)存取周期供外設(shè)與主存交換信息,然后繼續(xù)執(zhí)行程序。2023/2/343計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(3)內(nèi)中斷和外中斷內(nèi)中斷是指由于CPU內(nèi)部硬件或軟件原因引起的中斷。

外中斷是指CPU以外的部件引起的中斷。(4)向量中斷和非向量中斷

向量中斷是指那些中斷服務(wù)程序的入口地址是由中斷事件自己提供的中斷。中斷事件在提出中斷請(qǐng)求的同時(shí),通過(guò)硬件向主機(jī)提供中斷服務(wù)程序入口地址,即向量地址。2023/2/344計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式

非向量中斷的中斷事件不能直接提供中斷服務(wù)程序的入口地址,而由CPU查詢之后得到。(5)單重中斷和多重中斷

單重中斷在CPU執(zhí)行中斷服務(wù)程序的過(guò)程中不能被再打斷。

多重中斷在執(zhí)行某個(gè)中斷服務(wù)程序的過(guò)程中,CPU可去響應(yīng)級(jí)別更高的中斷請(qǐng)求,又稱為中斷嵌套。2023/2/345計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式8.3.2中斷請(qǐng)求和中斷判優(yōu)1.中斷源和中斷請(qǐng)求信號(hào)

中斷源是指中斷的來(lái)源,即任何引起計(jì)算機(jī)中斷的事件,一般計(jì)算機(jī)都有多個(gè)中斷源。由于每個(gè)中斷源向CPU發(fā)出中斷請(qǐng)求的時(shí)間是隨機(jī)的,為了記錄中斷事件并區(qū)分不同的中斷源,可采用具有存儲(chǔ)功能的觸發(fā)器來(lái)記錄中斷源,稱為中斷請(qǐng)求觸發(fā)器。當(dāng)某一個(gè)中斷源有中斷請(qǐng)求時(shí),其相應(yīng)的中斷請(qǐng)求觸發(fā)器置成“1”狀態(tài),此時(shí),該中斷源向CPU發(fā)出中斷請(qǐng)求信號(hào)。2023/2/346計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式多個(gè)中斷請(qǐng)求觸發(fā)器構(gòu)成一個(gè)中斷請(qǐng)求寄存器,其中每一位對(duì)應(yīng)一個(gè)中斷源,中斷請(qǐng)求寄存器的內(nèi)容稱為中斷字或中斷碼,中斷字中為“1”的位就表示對(duì)應(yīng)的中斷源有中斷請(qǐng)求。2023/2/347計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式2.中斷請(qǐng)求信號(hào)的傳送(1)獨(dú)立請(qǐng)求線每個(gè)中斷源單獨(dú)設(shè)置中斷請(qǐng)求線,將中斷請(qǐng)求信號(hào)直接送往CPU,這種方式的特點(diǎn)是CPU在接到中斷請(qǐng)求的同時(shí)也就知道了中斷源是誰(shuí),其中斷服務(wù)程序的入口地址在哪里。2023/2/348計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(2)公共請(qǐng)求線多個(gè)中斷源共有一根公共請(qǐng)求線,這種方式的特點(diǎn)是在負(fù)載允許的情況下,中斷源的數(shù)目可隨意擴(kuò)充,但CPU在接到中斷請(qǐng)求后,必須通過(guò)軟件或硬件的方法來(lái)識(shí)別中斷源,然后再找出中斷服務(wù)程序的入口地址。(3)二維結(jié)構(gòu)將中斷請(qǐng)求線連成二維結(jié)構(gòu),同一優(yōu)先級(jí)別的中斷源,采用一根公共的請(qǐng)求線,不同請(qǐng)求線上的中斷源優(yōu)先級(jí)別不同,這種方式綜合了前兩種方式的優(yōu)點(diǎn),在中斷源較多的系統(tǒng)中常采用這種方式。2023/2/349計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式3.中斷優(yōu)先級(jí)與判優(yōu)方法當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),CPU在任何瞬間只能接受一個(gè)中斷源的請(qǐng)求。通常,把全部中斷源按中斷的性質(zhì)和處理的輕重緩急安排優(yōu)先級(jí),并進(jìn)行排隊(duì)。確定中斷優(yōu)先級(jí)的原則是:對(duì)那些提出中斷請(qǐng)求后需要立刻處理,否則就會(huì)造成嚴(yán)重后果的中斷源規(guī)定最高的優(yōu)先級(jí);而對(duì)那些可以延遲響應(yīng)和處理的中斷源規(guī)定較低的優(yōu)先級(jí)。如故障中斷一般優(yōu)先級(jí)較高,接著才是I/O設(shè)備中斷。而在I/O設(shè)備中又可以根據(jù)各個(gè)設(shè)備的速度來(lái)決定優(yōu)先級(jí)。2023/2/350計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式每個(gè)中斷源均有一個(gè)為其服務(wù)的中斷服務(wù)程序,每個(gè)中斷服務(wù)程序都有與之對(duì)應(yīng)的優(yōu)先級(jí)別。另外,CPU正在執(zhí)行的程序也有優(yōu)先級(jí)。只有當(dāng)某個(gè)中斷源的優(yōu)先級(jí)別高于CPU現(xiàn)在的優(yōu)先級(jí)時(shí),才能中止CPU執(zhí)行現(xiàn)在的程序。2023/2/351計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(1)軟件判優(yōu)法軟件判優(yōu)法,就是用程序來(lái)判別優(yōu)先級(jí),這是最簡(jiǎn)單的中斷判優(yōu)方法。2023/2/352計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式當(dāng)CPU接到中斷請(qǐng)求信號(hào)后,就執(zhí)行查詢程序,逐個(gè)檢測(cè)中斷請(qǐng)求寄存器的各位狀態(tài),檢測(cè)順序是按優(yōu)先級(jí)的大小排列的,最先檢測(cè)的中斷源具有最高的優(yōu)先級(jí),其次檢測(cè)的中斷源具有次高優(yōu)先級(jí),如此下去,最后檢測(cè)的中斷源具有最低的優(yōu)先級(jí)。顯然,軟件判優(yōu)是與識(shí)別中斷源結(jié)合在一起的,當(dāng)查詢到中斷請(qǐng)求信號(hào)的發(fā)出者,也就是找到了中斷源,程序立即可以轉(zhuǎn)入對(duì)應(yīng)的中斷服務(wù)程序中去。2023/2/353計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(2)硬件判優(yōu)電路采用硬件實(shí)現(xiàn)中斷優(yōu)先級(jí)判定可節(jié)省CPU時(shí)間,而且速度快,但是成本較高。根據(jù)中斷請(qǐng)求信號(hào)的傳送方式不同,有不同的優(yōu)先排隊(duì)電路,常見的有以下幾種方案。獨(dú)立請(qǐng)求線的優(yōu)先排隊(duì)電路公共請(qǐng)求線的優(yōu)先排隊(duì)電路2023/2/354計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式8.3.3中斷響應(yīng)和中斷處理1.CPU響應(yīng)中斷的條件(1)CPU接收到中斷請(qǐng)求信號(hào)首先中斷源要發(fā)出中斷請(qǐng)求,同時(shí)CPU還要接收到這個(gè)中斷請(qǐng)求信號(hào)。(2)CPU允許中斷

CPU允許中斷即開中斷。CPU內(nèi)部有一個(gè)中斷允許觸發(fā)器,只有當(dāng)其被置位時(shí),CPU才可能響應(yīng)中斷源的中斷請(qǐng)求(中斷開放)。如其被復(fù)位,CPU處于不可中斷狀態(tài),即使中斷源有中斷請(qǐng)求,CPU也不響應(yīng)(中斷關(guān)閉)。2023/2/355計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(3)一條指令執(zhí)行完畢一般情況下,CPU在一條指令執(zhí)行完畢,且沒有更緊迫的任務(wù)時(shí)才能響應(yīng)中斷請(qǐng)求。2.中斷隱指令

CPU響應(yīng)中斷之后,經(jīng)過(guò)某些操作,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。這些操作是由硬件直接實(shí)現(xiàn)的,我們把它稱為中斷隱指令。中斷隱指令并不是指令系統(tǒng)中的一條真正的指令,它沒有操作碼,所以中斷隱指令是一種不允許、也不可能為用戶使用的特殊指令。其所完成的操作主要有:2023/2/356計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(1)保存斷點(diǎn)將原來(lái)程序的斷點(diǎn)(即程序計(jì)數(shù)器PC的內(nèi)容)保存起來(lái)。(2)暫不允許中斷為了在用軟件保護(hù)中斷現(xiàn)場(chǎng)(即CPU的主要寄存器狀態(tài))時(shí),不被新的中斷所打斷,從而保證被中斷的程序在中斷服務(wù)程序執(zhí)行完畢之后能接著正確地執(zhí)行下去。(3)引出中斷服務(wù)程序引出中斷服務(wù)程序的實(shí)質(zhì)就是取出中斷服務(wù)程序的入口地址送程序計(jì)數(shù)器。2023/2/357計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式3.中斷周期中斷周期需完成如下操作:⑴將特定地址“0”送至存儲(chǔ)器地址寄存器,記作0→MAR;⑵將PC的內(nèi)容(斷點(diǎn))送至MDR,記作(PC)→MDR;

⑶向主存發(fā)寫命令,啟動(dòng)存儲(chǔ)器做寫操作,記作Write;⑷將MDR的內(nèi)容通過(guò)數(shù)據(jù)總線寫入到MAR所指示的主存單元(0號(hào))中,記作MDR→M(MAR);2023/2/358計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式⑸向量地址形成部件的輸出送至PC,為進(jìn)入中斷服務(wù)程序作準(zhǔn)備,記作向量地址→PC;⑹

關(guān)中斷,將中斷允許觸發(fā)器清0,記作0→EINT。如果斷點(diǎn)存入堆棧,只需將上述⑴改為堆棧指針SP→MAR。2023/2/359計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式4.進(jìn)入中斷服務(wù)程序識(shí)別中斷源在于轉(zhuǎn)入為該中斷源專門設(shè)置的中斷服務(wù)程序。向量中斷時(shí),中斷源向CPU發(fā)出中斷請(qǐng)求信號(hào)之后,CPU經(jīng)過(guò)一定的判優(yōu)處理,若決定響應(yīng)這個(gè)中斷請(qǐng)求,則向中斷源發(fā)出中斷響應(yīng)信號(hào)。中斷源接到中斷響應(yīng)信號(hào)后就通過(guò)自己的向量地址發(fā)生器向CPU發(fā)送向量地址。2023/2/360計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式工作完成允許中斷發(fā)中斷請(qǐng)求中斷優(yōu)先級(jí)判定選優(yōu)中斷響應(yīng)識(shí)別中斷源向量地址形成現(xiàn)場(chǎng)處理啟動(dòng)中斷服務(wù)程序向量地址_____INTRINTA中斷源

CPU工作完成允許中斷發(fā)中斷請(qǐng)求中斷優(yōu)先級(jí)判定選優(yōu)中斷響應(yīng)識(shí)別中斷源向量地址形成現(xiàn)場(chǎng)處理啟動(dòng)中斷服務(wù)程序2023/2/361計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式向量地址通常有兩種情況:(1)向量地址是中斷服務(wù)程序的入口地址如果向量地址就是中斷服務(wù)程序的入口地址,則CPU不需要再經(jīng)過(guò)處理就可以進(jìn)入相應(yīng)的中斷服務(wù)程序。

PC←8×NNN轉(zhuǎn)中斷服務(wù)程序入口地址由此可見,中斷服務(wù)程序的入口地址依次是00H、08H、10H、……、38H。2023/2/362計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式(2)向量地址是中斷向量表的指針如果向量地址是中斷向量表的指針,則向量地址指向一個(gè)中斷向量表,從中斷向量表的相應(yīng)單元中再取出中斷服務(wù)程序的入口地址,此時(shí)中斷源給出的向量地址是中斷服務(wù)程序入口地址的地址。2023/2/363計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式2023/2/364計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式5.中斷現(xiàn)場(chǎng)的保護(hù)和恢復(fù)中斷現(xiàn)場(chǎng)指的是發(fā)生中斷時(shí)CPU的主要狀態(tài),其中最重要的是斷點(diǎn),另外還有一些通用寄存器的狀態(tài)。之所以需要保護(hù)和恢復(fù)現(xiàn)場(chǎng)的原因是因?yàn)镃PU要先后執(zhí)行兩個(gè)完全不同的程序(現(xiàn)行程序和中斷服務(wù)程序),必須進(jìn)行兩種程序運(yùn)行狀態(tài)的轉(zhuǎn)換。一般來(lái)說(shuō),在中斷隱指令中,CPU硬件將自動(dòng)保存斷點(diǎn),有些計(jì)算機(jī)還自動(dòng)保存程序狀態(tài)寄存器的內(nèi)容。但是,在許多應(yīng)用中,要保證中斷返回后原來(lái)的程序能正確地繼續(xù)運(yùn)行,僅保存這一、二個(gè)寄存器的內(nèi)容是不夠的。2023/2/365計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式為此,在中斷服務(wù)程序開始時(shí),應(yīng)由軟件去保存那些硬件沒有保存,而在中斷服務(wù)程序中又可能用到的寄存器(如某些通用寄存器)的內(nèi)容,在中斷返回之前,這些內(nèi)容還應(yīng)該被恢復(fù)?,F(xiàn)代計(jì)算機(jī)一般都先采用硬件方法來(lái)自動(dòng)快速的保護(hù)和恢復(fù)部分重要的現(xiàn)場(chǎng),其余寄存器的內(nèi)容再由軟件完成保護(hù)和恢復(fù),這種方法的硬件支持是堆棧。

2023/2/366計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式2023/2/367計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式8.3.4多重中斷與中斷屏蔽1.中斷嵌套中斷嵌套的層次可以有多層,越在里層的中斷越急迫,優(yōu)先級(jí)越高,因此優(yōu)先得到CPU的服務(wù)。要使計(jì)算機(jī)具有多重中斷的能力,首先要能保護(hù)多個(gè)斷點(diǎn),先發(fā)生的中斷請(qǐng)求的斷點(diǎn),先保護(hù)后恢復(fù);后發(fā)生的中斷請(qǐng)求的斷點(diǎn),后保護(hù)先恢復(fù),堆棧的先進(jìn)后出特點(diǎn)正好滿足多重中斷這一先后次序的需要。在CPU進(jìn)入某一中斷服務(wù)程序之后,系統(tǒng)必須處于開中斷狀態(tài),否則中斷嵌套是不可能實(shí)現(xiàn)的。2023/2/368計(jì)算機(jī)組成原理現(xiàn)行程序中斷服務(wù)程序1中斷服務(wù)程序2第一次中斷請(qǐng)求優(yōu)先級(jí)別更高的中斷請(qǐng)求8.3中斷系統(tǒng)和程序中斷方式2023/2/369計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式2.允許和禁止中斷允許中斷還是禁止中斷是用CPU中的中斷允許觸發(fā)器控制的,當(dāng)中斷允許觸發(fā)器被置“1”,則允許中斷,當(dāng)中斷允許觸發(fā)器被置“0”,則禁止中斷。

允許中斷即開中斷,下列情況時(shí)應(yīng)開中斷:

在中斷服務(wù)程序執(zhí)行完畢,恢復(fù)中斷現(xiàn)場(chǎng)之后;

在多重中斷的情況下,保護(hù)中斷現(xiàn)場(chǎng)之后。2023/2/370計(jì)算機(jī)組成原理

禁止中斷即關(guān)中斷,下列情況時(shí)應(yīng)關(guān)中斷:

當(dāng)響應(yīng)某一級(jí)中斷請(qǐng)求,不再允許被其他中斷請(qǐng)求打斷時(shí);

在中斷服務(wù)程序的保護(hù)和恢復(fù)現(xiàn)場(chǎng)之前。3.中斷屏蔽中斷源發(fā)出中斷請(qǐng)求之后,這個(gè)中斷請(qǐng)求并不一定能真正送到CPU去,在有些情況下,可以用程序方式有選擇地封鎖部分中斷,這就是中斷屏蔽。8.3中斷系統(tǒng)和程序中斷方式2023/2/371計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式如果給每個(gè)中斷源都相應(yīng)地配備一個(gè)中斷屏蔽觸發(fā)器MASK,則每個(gè)中斷請(qǐng)求信號(hào)在送往判優(yōu)電路之前,還要受到屏蔽觸發(fā)器的控制。當(dāng)MASK=1,表示對(duì)應(yīng)中斷源的請(qǐng)求被屏蔽(封鎖其中斷源的請(qǐng)求),可見中斷請(qǐng)求觸發(fā)器和中斷屏蔽觸發(fā)器是成對(duì)出現(xiàn)的,只有當(dāng)INTRi=1(中斷源有中斷請(qǐng)求),MASKi=0(該級(jí)中斷未被屏蔽),才允許對(duì)應(yīng)的中斷請(qǐng)求送往CPU。

2023/2/372計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式在中斷接口電路中,多個(gè)屏蔽觸發(fā)器組成一個(gè)屏蔽寄存器,其內(nèi)容稱為屏蔽字或屏蔽碼,由程序來(lái)設(shè)置。屏蔽字某一位的狀態(tài)將成為本中斷源能否真正發(fā)出中斷請(qǐng)求信號(hào)的必要條件之一。這樣,就可實(shí)現(xiàn)CPU對(duì)中斷處理的控制,使中斷能在系統(tǒng)中合理協(xié)調(diào)地進(jìn)行。中斷屏蔽寄存器的作用:用程序設(shè)置的方法將屏蔽寄存器中的某一位置“1”,則對(duì)應(yīng)的中斷請(qǐng)求被封鎖,無(wú)法去參加排隊(duì)判優(yōu);若屏蔽寄存器中的某一位置“0”,才允許對(duì)應(yīng)的中斷請(qǐng)求送往CPU。2023/2/373計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式&

≥12023/2/374計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式如一個(gè)中斷系統(tǒng)有16個(gè)中斷源,每一個(gè)中斷源按其優(yōu)先級(jí)別賦予一個(gè)屏蔽字。“0”表示開放,“1”表示屏蔽。第1級(jí)中斷源的優(yōu)先級(jí)別最高,它禁止本級(jí)和更低級(jí)的中斷請(qǐng)求;第16級(jí)中斷源的優(yōu)先級(jí)別最低,它僅禁止本級(jí)的中斷請(qǐng)求,而對(duì)其他高級(jí)的中斷請(qǐng)求全部開放。

中斷源的優(yōu)先級(jí)屏蔽字(16位)123

1516111…111011…111001…111

000…011000…001……2023/2/375計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式4.中斷升級(jí)中斷屏蔽字的另一個(gè)作用是可以改變中斷優(yōu)先級(jí),將原級(jí)別較低的中斷源變成較高的級(jí)別,我們稱之為中斷升級(jí)。這實(shí)際上是一種動(dòng)態(tài)改變優(yōu)先級(jí)的方法。這里所說(shuō)的改變優(yōu)先次序是指改變中斷的處理次序。中斷處理次序和中斷響應(yīng)次序是兩個(gè)不同的概念,中斷響應(yīng)次序是由硬件排隊(duì)電路決定的,無(wú)法改變。但是,中斷處理次序是可以由屏蔽碼來(lái)改變的,故把屏蔽碼看成軟排隊(duì)器。中斷處理次序可以不同于中斷響應(yīng)次序。2023/2/376計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式例如,某計(jì)算機(jī)的中斷系統(tǒng)有4個(gè)中斷源,每個(gè)中斷源對(duì)應(yīng)一個(gè)屏蔽碼。中斷響應(yīng)的優(yōu)先次序?yàn)?→2→3→4。中斷的處理次序和中斷的響應(yīng)次序是一致的。程序級(jí)別

屏蔽碼1級(jí)2級(jí)3級(jí)4級(jí)第1級(jí)第2級(jí)第3級(jí)第4級(jí)10001100111011112023/2/377計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式根據(jù)這一次序,可以看到CPU運(yùn)動(dòng)的軌跡,當(dāng)多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn)時(shí),處理次序與響應(yīng)次序一致;當(dāng)中斷請(qǐng)求先后出現(xiàn)時(shí),允許優(yōu)先級(jí)別高的中斷請(qǐng)求打斷優(yōu)先級(jí)別低的中斷服務(wù)程序,實(shí)現(xiàn)中斷嵌套。中斷服務(wù)程序現(xiàn)行程序①②①③③②②④④①2023/2/378計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式在不改變中斷響應(yīng)次序的條件下,通過(guò)改寫屏蔽碼可以改變中斷處理次序,例如,要使中斷處理次序改為1→4→3→2。程序級(jí)別

屏蔽碼1級(jí)2級(jí)3級(jí)4級(jí)第1級(jí)第2級(jí)第3級(jí)第4級(jí)10001111101110012023/2/379計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式在同樣中斷請(qǐng)求的情況下,CPU的運(yùn)動(dòng)軌跡發(fā)生了變化。中斷服務(wù)程序現(xiàn)行程序①①③③②②④④②①2023/2/380計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式8.3.5中斷全過(guò)程中斷全過(guò)程是指從中斷源發(fā)出中斷請(qǐng)求開始,CPU響應(yīng)這個(gè)請(qǐng)求,現(xiàn)行程序被中斷,轉(zhuǎn)至中斷服務(wù)程序,直至中斷服務(wù)程序執(zhí)行完畢,CPU再返回原來(lái)的程序繼續(xù)執(zhí)行的整個(gè)過(guò)程。中斷全過(guò)程分為五個(gè)階段:

中斷請(qǐng)求、中斷判優(yōu)、中斷響應(yīng)、中斷處理、中斷返回。2023/2/381計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式其中中斷處理就是執(zhí)行中斷服務(wù)程序,中斷服務(wù)程序基本上由三部分組成,第一部分為準(zhǔn)備部分,其基本功能是保護(hù)現(xiàn)場(chǎng),對(duì)于非向量中斷方式則需要確定中斷源,最后開放中斷,允許更高級(jí)的中斷請(qǐng)求打斷低級(jí)的中斷服務(wù)程序。第二部分為處理部分,即真正執(zhí)行為某個(gè)中斷源服務(wù)的中斷服務(wù)程序。第三部分為結(jié)尾部分,首先要關(guān)中斷,以防止在恢復(fù)現(xiàn)場(chǎng)過(guò)程中被新的中斷打斷,接著恢復(fù)現(xiàn)場(chǎng),然后開放中斷,以便返回原來(lái)的程序后可響應(yīng)其它的中斷請(qǐng)求。2023/2/382計(jì)算機(jī)組成原理8.3中斷系統(tǒng)和程序中斷方式2023/2/383計(jì)算機(jī)組成原理8.4DMA方式及其接口8.4.1DMA方式的基本概念1.DMA方式的特點(diǎn)無(wú)論程序查詢還是程序中斷方式,主要的工作都是由CPU執(zhí)行程序完成的,這需要花費(fèi)時(shí)間,因此不能實(shí)現(xiàn)高速外設(shè)與主機(jī)的信息交換。直接存儲(chǔ)器訪問DMA方式是在外設(shè)和主存儲(chǔ)器之間開辟一條“直接數(shù)據(jù)通道”,在不需要CPU干預(yù)也不需要軟件介入的情況下在兩者之間進(jìn)行的高速數(shù)據(jù)傳送方式。2023/2/384計(jì)算機(jī)組成原理8.4DMA方式及其接口在DMA傳送方式中,對(duì)數(shù)據(jù)傳送過(guò)程進(jìn)行控制的硬件稱為DMA控制器。當(dāng)外設(shè)需要進(jìn)行數(shù)據(jù)傳送時(shí),通過(guò)DMA控制器向CPU提出DMA傳送請(qǐng)求,CPU響應(yīng)之后將讓出系統(tǒng)總線,由DMA控制器接管總線進(jìn)行數(shù)據(jù)傳送。

DMA方式具有下列特點(diǎn):①它使主存與CPU的固定聯(lián)系脫鉤,主存既可被CPU訪問,又可被外設(shè)訪問。2023/2/385計(jì)算機(jī)組成原理②在數(shù)據(jù)塊傳送時(shí),主存地址的確定,傳送數(shù)據(jù)的計(jì)數(shù)等等都用硬件電路直接實(shí)現(xiàn)。③主存中要開辟專用緩沖區(qū),及時(shí)供給和接收外設(shè)的數(shù)據(jù)。④DMA傳送速度快,CPU和外設(shè)并行工作,提高了系統(tǒng)的效率。⑤DMA在開始前和結(jié)束后要通過(guò)程序和中斷方式進(jìn)行預(yù)處理和后處理。8.4DMA方式及其接口2023/2/386計(jì)算機(jī)組成原理8.4DMA方式及其接口2.DMA和中斷的區(qū)別兩者的重要區(qū)別為:①中斷方式是程序切換,需要保護(hù)和恢復(fù)現(xiàn)場(chǎng);而DMA方式除了開始和結(jié)尾時(shí),不占用CPU的任何資源。②對(duì)中斷請(qǐng)求的響應(yīng)只能發(fā)生在每條指令執(zhí)行完畢時(shí);而對(duì)DMA請(qǐng)求的響應(yīng)可以發(fā)生在每個(gè)機(jī)器周期結(jié)束時(shí)。取指令取源操作數(shù)取目的操作數(shù)執(zhí)行中斷斷點(diǎn)DMA斷點(diǎn)中斷斷點(diǎn)DMA斷點(diǎn)2023/2/387計(jì)算機(jī)組成原理8.4DMA方式及其接口③中斷傳送過(guò)程需要CPU的干預(yù);而DMA傳送過(guò)程不需要CPU的干預(yù),故數(shù)據(jù)傳送速率非常高,適合于高速外設(shè)的成組數(shù)據(jù)傳送。④DMA請(qǐng)求的優(yōu)先級(jí)高于中斷請(qǐng)求。⑤中斷方式具有對(duì)異常事件的處理能力;而DMA方式僅局限于完成傳送信息塊的I/O操作。2023/2/388計(jì)算機(jī)組成原理8.4DMA方式及其接口8.4.2DMA接口(DMA控制器)1.DMA控制器的功能在DMA傳送過(guò)程中,DMA控制器將接管CPU的地址總線、數(shù)據(jù)總線和控制總線,CPU的主存控制信號(hào)被禁止使用。而當(dāng)DMA傳送結(jié)束后,將恢復(fù)CPU的一切權(quán)利并開始執(zhí)行其操作。由此可見,DMA控制器必須具有控制系統(tǒng)總線的能力,即能夠像CPU一樣輸出地址信號(hào),接收或發(fā)出控制信號(hào),輸入或輸出數(shù)據(jù)信號(hào)。2023/2/389計(jì)算機(jī)組成原理8.4DMA方式及其接口

DMA控制器在外設(shè)與主存之間直接傳送數(shù)據(jù)期間,完全代替CPU進(jìn)行工作,它的主要功能有:

接受外設(shè)發(fā)出的DMA請(qǐng)求,并向CPU發(fā)出總線請(qǐng)求;

當(dāng)CPU響應(yīng)此總線請(qǐng)求,發(fā)出總線響應(yīng)信號(hào)后,接管對(duì)總線的控制,進(jìn)入DMA操作周期;

確定傳送數(shù)據(jù)的主存單元地址及傳送長(zhǎng)度,并能自動(dòng)修改主存地址計(jì)數(shù)值和傳送長(zhǎng)度計(jì)數(shù)值;2023/2/390計(jì)算機(jī)組成原理8.4DMA方式及其接口⑷

規(guī)定數(shù)據(jù)在主存與外設(shè)之間的傳送方向,發(fā)出讀/寫或其他控制信號(hào),并執(zhí)行數(shù)據(jù)傳送的操作。

向CPU報(bào)告DMA操作的結(jié)束。2023/2/391計(jì)算機(jī)組成原理8.4DMA方式及其接口2.DMA控制器的基本組成(1)主存地址計(jì)數(shù)器用來(lái)存放主存中要交換數(shù)據(jù)的地址,該計(jì)數(shù)器的初始值為主存緩沖區(qū)的首地址,當(dāng)DMA傳送時(shí),每傳送一個(gè)數(shù)據(jù),將地址計(jì)數(shù)器加“1”,從而以增量方式給出主存中要交換的一批數(shù)據(jù)的地址,直至這批數(shù)據(jù)傳送完畢為止。2023/2/392計(jì)算機(jī)組成原理(2)傳送長(zhǎng)度計(jì)數(shù)器用來(lái)記錄傳送數(shù)據(jù)塊的長(zhǎng)度,其初始值為傳送數(shù)據(jù)的總字?jǐn)?shù)或總字節(jié)數(shù),每傳送一個(gè)字或一個(gè)字節(jié),計(jì)數(shù)器自動(dòng)減“1”,當(dāng)其內(nèi)容為“0”時(shí)表示數(shù)據(jù)已全部傳送完畢。(3)數(shù)據(jù)緩沖寄存器用來(lái)暫存每次傳送的數(shù)據(jù)。輸入時(shí),數(shù)據(jù)由外設(shè)(如磁盤)先送往數(shù)據(jù)緩沖寄存器,再通過(guò)數(shù)據(jù)總線送到主存。反之,輸出時(shí),數(shù)據(jù)由主存通過(guò)數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到外設(shè)。8.4DMA方式及其接口2023/2/393計(jì)算機(jī)組成原理8.4DMA方式及其接口(4)DMA請(qǐng)求觸發(fā)器每當(dāng)外設(shè)準(zhǔn)備好一個(gè)數(shù)據(jù)后給出一個(gè)控制信號(hào),使DMA請(qǐng)求觸發(fā)器置位,控制/狀態(tài)邏輯經(jīng)系統(tǒng)總線向CPU發(fā)出總線請(qǐng)求(HOLD),如果CPU響應(yīng),發(fā)回批準(zhǔn)信號(hào)(HLDA),DMA控制器接管總線控制權(quán),向系統(tǒng)總線送出傳送命令與總線地址。控制/狀態(tài)邏輯接收此信號(hào)后使DMA請(qǐng)求觸發(fā)器復(fù)位,為交換下一個(gè)數(shù)據(jù)做準(zhǔn)備。2023/2/394計(jì)算機(jī)組成原理8.4DMA方式及其接口(5)控制/狀態(tài)邏輯它由控制和時(shí)序電路以及狀態(tài)標(biāo)志等組成,用于指定傳送方向,修改傳送參數(shù),并對(duì)DMA請(qǐng)求信號(hào)和CPU響應(yīng)信號(hào)進(jìn)行協(xié)調(diào)和同步。(6)中斷機(jī)構(gòu)當(dāng)一個(gè)數(shù)據(jù)塊傳送完畢,由溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷請(qǐng)求,CPU將進(jìn)行DMA傳送的結(jié)尾處理。2023/2/395計(jì)算機(jī)組成原理8.4DMA方式及其接口3.DMA控制器的引出線(1)地址總線

在DMA方式下,呈輸出狀態(tài),可對(duì)主存進(jìn)行地址選擇;在CPU方式下,呈輸入狀態(tài),可對(duì)DMA控制器中的有關(guān)寄存器進(jìn)行尋址。(2)數(shù)據(jù)總線

在DMA方式下,用它進(jìn)行數(shù)據(jù)傳送;在CPU方式下,可對(duì)DMA控制器的有關(guān)寄存器進(jìn)行編程。2023/2/396計(jì)算機(jī)組成原理8.4DMA方式及其接口(3)控制數(shù)據(jù)傳送方式的信號(hào)線

存儲(chǔ)器讀信號(hào)、存儲(chǔ)器寫信號(hào)、外設(shè)讀信號(hào)、外設(shè)寫信號(hào)。(4)DMA控制器與外設(shè)之間的聯(lián)絡(luò)信號(hào)線

DMA請(qǐng)求信號(hào)

DMA響應(yīng)信號(hào)(5)DMA控制器與CPU之間的聯(lián)絡(luò)信號(hào)線

總線請(qǐng)求

總線響應(yīng)信號(hào)2023/2/397計(jì)算機(jī)組成原理8.4DMA方式及其接口

4.DMA控制器的連接和傳送

⑴首先由外設(shè)向DMA控制器發(fā)出請(qǐng)求信號(hào)DREQ。⑵DMA控制器向CPU發(fā)出總線請(qǐng)求信號(hào)HRQ。⑶CPU向DMA控制器發(fā)出總線響應(yīng)信號(hào)HLDA,此時(shí),DMA控制器獲取了總線的控制權(quán)。⑷DMA控制器向外設(shè)發(fā)出DMA響應(yīng)信號(hào)DACK,表示DMA控制器已控制了總線,允許外設(shè)與主存交換數(shù)據(jù)。2023/2/398計(jì)算機(jī)組成原理8.4DMA方式及其接口⑸DMA控制器按主存地址計(jì)數(shù)器的內(nèi)容發(fā)出地址信號(hào)作為主存地址的選擇,同時(shí)主存地址計(jì)數(shù)器的內(nèi)容加1(或減1)。⑹DMA控制器發(fā)出IOR信號(hào)到外設(shè),將外設(shè)數(shù)據(jù)讀入總線,同時(shí)發(fā)出MEMW信號(hào),將數(shù)據(jù)總線的數(shù)據(jù)寫入地址總線選中的主存單元。⑺傳送長(zhǎng)度計(jì)數(shù)器減1。重復(fù)⑸⑹⑺步驟,直到字節(jié)計(jì)數(shù)器減到“0”為止,數(shù)據(jù)塊的DMA方式傳送工作宣告完成。這時(shí),DMA控制器的HRQ降為低電平,總線控制權(quán)交還CPU。2023/2/399計(jì)算機(jī)組成原理8.4DMA方式及其接口8.4.3DMA傳送方法與傳送過(guò)程1.DMA傳送方法(1)CPU停止訪問主存法用DMA請(qǐng)求信號(hào)迫使CPU讓出總線控制權(quán),CPU在現(xiàn)行機(jī)器周期執(zhí)行完成之后,使其數(shù)據(jù)、地址總線處于三態(tài),并輸出總線批準(zhǔn)信號(hào)。每次DMA請(qǐng)求獲得批準(zhǔn)后,DMA控制器獲得總線控制權(quán)以后,連續(xù)占用若干個(gè)存取周期(總線周期)進(jìn)行成組連續(xù)的數(shù)據(jù)傳送,直至批量傳送結(jié)束,DMA控制器才把總線控制權(quán)交回CPU。在DMA操作期間,CPU處于保持狀態(tài),停止訪問主存,僅能進(jìn)行一些與總線無(wú)關(guān)的內(nèi)部操作。這種方法只適用于高速外設(shè)的成組傳送。2023/2/3100計(jì)算機(jī)組成原理8.4DMA方式及其接口DMA不工作DMA不工作CPU控制并使用主存DMA控制并使用主存主存工作時(shí)間tDMA工作2023/2/3101計(jì)算機(jī)組成原理8.4DMA方式及其接口(2)存儲(chǔ)器分時(shí)法把原來(lái)的一個(gè)存取周期分成兩個(gè)時(shí)間片,一片給CPU,一片給DMA,使CPU和DMA交替地訪問主存。這種方法不需要申請(qǐng)和歸還總線,使總線控制權(quán)的轉(zhuǎn)移幾乎不需要什么時(shí)間,所以對(duì)DMA傳送來(lái)講效率是很高的,而且CPU既不停止現(xiàn)行程序的運(yùn)行,也不進(jìn)入保持狀態(tài),在CPU不知不覺中便進(jìn)行了DMA傳送,但這種方法需要主存在原來(lái)的存取周期內(nèi)為兩個(gè)部件服務(wù),如果要維持CPU的訪存速度不變,就要求主存的工作速度提高一倍。2023/2/3102計(jì)算機(jī)組成原理8.4DMA方式及其接口另外,由于大多數(shù)外設(shè)的速度都不能與CPU相匹配,所以供DMA使用的時(shí)間片可能成為空操作,將會(huì)造成一些不必要的浪費(fèi)。CPU控制并使用主存DMA控制并使用主存主存工作時(shí)間t2023/2/3103計(jì)算機(jī)組成原理8.4DMA方式及其接口

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論