版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 9 章 I/O系統(tǒng)組織,本章學(xué)習(xí)內(nèi)容,I/O系統(tǒng)的功能 接口的功能 中斷的基本概念 DMA的基本概念 通道的基本概念,9.1 I/O系統(tǒng)概述,I/O系統(tǒng)的基本功能 為數(shù)據(jù)傳輸操作選擇輸入/輸出設(shè)備。 控制被選的輸入/輸出設(shè)備與主機(jī)之間的信息交換。,I/O系統(tǒng)需解決的主要問題,解決主機(jī)與外部設(shè)備間的信息通訊問題,提供主機(jī)與外設(shè)間的信息通路,使外圍設(shè)備與主機(jī)能夠協(xié)調(diào)一致地工作。 使處理機(jī)與外部設(shè)備在數(shù)據(jù)處理的速度上能夠相互匹配。解決方法:緩沖技術(shù) 使處理機(jī)與外部設(shè)備能夠并行工作,以提高整個(gè)計(jì)算機(jī)系統(tǒng)的工作效率。解決方法:減少處理機(jī)對外部設(shè)備的直接控制,乃至處理機(jī)不再干預(yù)外部設(shè)備的控制,而交由專
2、門的硬件裝置去實(shí)現(xiàn)對外部設(shè)備的管理與監(jiān)督。,9.1.2 I/O系統(tǒng)的組成,典型計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組成: 系統(tǒng)總線、I/O設(shè)備接口控制器、I/O設(shè)備、相關(guān)控制軟件。,現(xiàn)代計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組成: 擴(kuò)展總線、I/O設(shè)備接口控制器、I/O設(shè)備、相關(guān)控制軟件。,擴(kuò)展總線及I/O接口控制器的作用: 分流CPU和內(nèi)存之間以及外設(shè)和內(nèi)存之間的數(shù)據(jù)流 現(xiàn)代計(jì)算機(jī)系統(tǒng)的主機(jī)與外設(shè)工作速度相差很大,需要分流CPU和內(nèi)存之間以及外設(shè)和內(nèi)存之間的數(shù)據(jù)流,因此需要引入擴(kuò)展總線。 便于系統(tǒng)實(shí)現(xiàn)標(biāo)準(zhǔn)化、模塊化。 系統(tǒng)總線(也包括擴(kuò)展總線)中的控制總線通常定義為通用或標(biāo)準(zhǔn)的信號(hào),而具體的I/O設(shè)備設(shè)置的是專用的控
3、制信號(hào),因此需要I/O接口控制器進(jìn)行信號(hào)的轉(zhuǎn)換。,I/O設(shè)備控制接口的發(fā)展趨勢 在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,許多I/O設(shè)備的控制器中(比如磁盤控制器、激光打印機(jī))往往會(huì)采用專用的微處理器對有關(guān)設(shè)備進(jìn)行控制,使用相應(yīng)的設(shè)備控制程序。 因此傳統(tǒng)的單純由硬件電路實(shí)現(xiàn)的I/O設(shè)備控制接口,逐漸演變?yōu)橛绍?、硬件相互配合的I/O設(shè)備控制接口。,9.1.3 主機(jī)與外設(shè)間的連接方式與組織管理,主機(jī)與外圍設(shè)備的連接方式大致可分為: 總線方式 通道方式 I/O處理機(jī)方式(IOP方式),1總線型連接方式,CPU通過系統(tǒng)總線與主存儲(chǔ)器,I/O控制器,I/O接口電路相連接,通過I/O接口電路進(jìn)一步實(shí)現(xiàn)對外設(shè)的控制。 系統(tǒng)總線包
4、括地址總線,數(shù)據(jù)總線和控制總線,分別用于傳送地址信號(hào),數(shù)據(jù)信號(hào)和控制信號(hào)(如讀/寫信號(hào)、中斷申請及應(yīng)答信號(hào)等)。,總線型連接方式的優(yōu)點(diǎn): 系統(tǒng)模塊化程度較高,I/O接口擴(kuò)充方便。 總線型連接方式的缺點(diǎn): 系統(tǒng)中部件之間的信息交換,均依賴于總線,總線成為系統(tǒng)中的速度瓶頸,因而不適于系統(tǒng)需配備有大量外設(shè)的場合。 實(shí)際設(shè)備中,一種I/O接口適配器也可以控制多臺(tái)I/O設(shè)備,如多用戶卡。一塊多用戶I/O適配器,可以控制多臺(tái)終端的工作,這種方式稱之為現(xiàn)代星型I/O設(shè)備的連接方式。,多用戶接口適配器,終端,終端,總線,2通道控制連接方式,通道控制方式 由通道控制器執(zhí)行專門的通道程序,通過I/O總線控制接口與
5、外設(shè)。 通道控制連接方式主要用于連接外設(shè)數(shù)量多,外設(shè)類型多,外設(shè)速度差異大的大型主機(jī)系統(tǒng)。,通道控制器是專門負(fù)責(zé)I/O操作的控制器,它執(zhí)行一種專門的通道程序,可與CPU并行工作。 通道控制器通過執(zhí)行通道程序或采用DMA方式實(shí)現(xiàn)存儲(chǔ)器與外部設(shè)備之間的直接數(shù)據(jù)傳輸,減少CPU對I/O處理工作的控制。,通道控制器,從連接角度看,主機(jī)一般通過單獨(dú)的數(shù)據(jù)通路分別連接數(shù)目有限的通道,各通道再通過I/O總線連接I/O接口,再與外設(shè)連接。 通道的四級連接方式: 主機(jī) 通道 I/O接口(設(shè)備控制器) 外設(shè),通道的四級連接方式,3I/O處理機(jī)控制連接方式(IOP方式),I/O處理機(jī)(IOP) 一種具有比I/O通道
6、更強(qiáng)獨(dú)立性的專用CPU。 IOP有自己的指令系統(tǒng),可編程控制,適應(yīng)性強(qiáng)、通用性好。其程序的執(zhí)行可與CPU并行,可使CPU徹底擺脫對I/O的控制處理。 IOP可大可小,大的如在巨型機(jī)系統(tǒng)中,IOP可為一臺(tái)通用的小型機(jī)或中型計(jì)算機(jī),稱為前端處理機(jī);小的則為一塊大規(guī)模集成電路芯片,如Intel公司為其微處理器(CPU)8086配套的IOP8089。,9.1.4 I/O信息傳送的控制方式,I/O數(shù)據(jù)傳送控制方式也稱I/O信息交換方式。 I/O數(shù)據(jù)傳送控制方式與主機(jī)和外設(shè)之間的連接方式有很大的關(guān)系,各種方式有不同的適用對象和應(yīng)用場合,需要相應(yīng)的硬件來支持。,按I/O控制組織的演變順序和外設(shè)與主機(jī)并行工作
7、程度以及數(shù)據(jù)傳送的控制方式,對I/O數(shù)據(jù)傳送控制分類如下: 直接程序控制方式: 程序中斷方式: DMA方式: 通道方式 I/O處理機(jī)方式,由專有硬件控制的數(shù)據(jù)傳送,由程序控制的數(shù)據(jù)傳送,采用輔助硬件實(shí)現(xiàn),適合快速外設(shè),快、慢設(shè)備均適用 適合于大、中型機(jī),適合慢速外設(shè),適合于小微型機(jī),(1)由程序控制的數(shù)據(jù)傳送,這種控制方式是指在主機(jī)和設(shè)備之間的I/O數(shù)據(jù)傳送,需要通過處理機(jī)執(zhí)行具體的I/O指令來完成。即由處理機(jī)執(zhí)行所謂的I/O程序,實(shí)現(xiàn)對整個(gè)I/O數(shù)據(jù)傳送過程的全程監(jiān)督與管理。 程序控制方式一般在總線型連接方式中采用。 由程序控制的數(shù)據(jù)傳送可進(jìn)一步分為直接程序控制方式和程序中斷傳送方式。,(2
8、)由專有硬件控制的數(shù)據(jù)傳送,這種控制方式需要在系統(tǒng)中設(shè)置專門用于控制I/O數(shù)據(jù)傳輸?shù)挠布b置,處理機(jī)只要啟動(dòng)這些裝置,就會(huì)在它們的控制下完成I/O數(shù)據(jù)傳輸,因此具體的I/O數(shù)據(jù)傳輸過程無需處理機(jī)的控制。 由專有硬件控制的數(shù)據(jù)傳送可具體分為: 直接存儲(chǔ)器存?。―MA)方式 通道控制方式 I/O處理機(jī)控制方式,9.2 I/O接口,接口:通常指設(shè)備(硬件)之間的界面。 I/O接口:主機(jī)(系統(tǒng)總線)與外部設(shè)備或其它外部系統(tǒng)之間的接口邏輯。,9.2.1 I/O接口的基本功能, 實(shí)現(xiàn)數(shù)據(jù)的傳送、緩沖、隔離和鎖存。 實(shí)現(xiàn)信號(hào)形式和數(shù)據(jù)格式轉(zhuǎn)換。 控制主機(jī)與外設(shè)之間的通信聯(lián)絡(luò),實(shí)現(xiàn)控制命令和狀態(tài)信息的交換,保
9、證時(shí)序協(xié)調(diào)。 尋址,即識(shí)別設(shè)備地址,選擇指定的設(shè)備和I/O端口。,CPU和外設(shè)之間傳送的信息, 數(shù)據(jù)信息 數(shù)字量 數(shù)字量是指用二進(jìn)制碼形式提供的信息,如用二進(jìn)制形式表示的數(shù)據(jù)、以ASCII碼形式表示的字符等。通常有8位、16位和32位數(shù)據(jù)。 模擬量 模擬量是指連續(xù)變化的物理量,如溫度、濕度、位移、壓力、流量等。計(jì)算機(jī)無法直接接收和處理模擬量,要經(jīng)過A/D變換將模擬量變成數(shù)字量,才能送入計(jì)算機(jī);同樣,計(jì)算機(jī)輸出的數(shù)字量要經(jīng)過D/A變換將數(shù)字量變成模擬量,才能送入使用模擬量的外設(shè)。, 開關(guān)量 開關(guān)量有兩個(gè)狀態(tài):如開關(guān)的閉合和斷開、設(shè)備的啟動(dòng)和停止等,可以“0”和“1” 表示。, 狀態(tài)信息 狀態(tài)信息
10、就是反映當(dāng)前外設(shè)所處的工作狀態(tài)的信息。 在與外設(shè)進(jìn)行數(shù)據(jù)信息的交換時(shí),CPU需要通過狀態(tài)信息了解外設(shè)的工作狀態(tài)。通常外設(shè)用準(zhǔn)備好(READY)信號(hào)來表明是否準(zhǔn)備就緒;用忙(BUSY)信號(hào)表示是否處于空閑狀態(tài)。例如,當(dāng)輸入設(shè)備準(zhǔn)備好向系統(tǒng)輸入的數(shù)據(jù)信息時(shí),就用READY信號(hào)通知CPU讀入數(shù)據(jù);輸出設(shè)備只有處于空閑狀態(tài)(不忙)時(shí),才可以接收CPU送來的信息。 外設(shè)的狀態(tài)信息通過接口送往CPU。, 控制信息 在外設(shè)的工作過程中,CPU需要通過控制信息控制外設(shè)的工作,如對外設(shè)的啟動(dòng)和停止等。不同外設(shè)所需的控制信息各不相同,因此CPU需要通過接口將控制信息傳送給外設(shè)。,I/O信息的傳送,數(shù)據(jù)信息、狀態(tài)信
11、息和控制信息各不相同,應(yīng)該分別傳送。 為了便于處理,將狀態(tài)信息、控制信息也廣義地看成數(shù)據(jù)信息,通過數(shù)據(jù)總線來傳送。為了區(qū)別這三種信息,在接口線路中將它們分別送入不同的寄存器( I/O端口)。 CPU同外設(shè)之間的信息傳送實(shí)質(zhì)上是對相應(yīng)的寄存器進(jìn)行“讀”或“寫”操作。 端口(Port或I/O端口):接口中可以由CPU進(jìn)行讀或?qū)懙募拇嫫鳌?I/O端口的尋址方式,對I/O設(shè)備的尋址實(shí)質(zhì)上就是對I/O端口的尋址。 I/O端口與主存統(tǒng)一編址 將一個(gè)I/O端口作為存儲(chǔ)器中的一個(gè)單元對待,每一個(gè)I/O端口占用一個(gè)存儲(chǔ)器單元地址。編址時(shí)將I/O端口與存儲(chǔ)器單元一起進(jìn)行編址。 又稱為存儲(chǔ)器對應(yīng)的輸入輸出方式或存儲(chǔ)
12、器映象編址方式。,I/O端口與主存統(tǒng)一編址,I/O端口與主存統(tǒng)一編址方式的優(yōu)點(diǎn): CPU可使用所有存儲(chǔ)器操作指令對I/O端口中數(shù)據(jù)進(jìn)行操作,十分靈活和方便。 不需要用專門的指令及控制信號(hào)區(qū)分是存儲(chǔ)器還是I/O操作。使得系統(tǒng)相對簡單。 I/O端口與主存統(tǒng)一編址方式存在的缺點(diǎn): I/O端口占用了內(nèi)存單元的部分地址空間,使內(nèi)存容量減小。 由于在程序中不易分清指令訪問的是存儲(chǔ)器還是I/O端口,所以采用這種方式編制的程序不易閱讀。, I/O端口獨(dú)立編址 將I/O端口與存儲(chǔ)器單元分別獨(dú)立進(jìn)行編址,CPU訪問外設(shè)時(shí),需使用專門的I/O指令,并需要有與接口電路聯(lián)系的單獨(dú)的控制信號(hào)。 也稱為I/O端口尋址輸入輸
13、出方式。,存儲(chǔ)器,I/O端口,FFFFH,0000H,FFFH,000H,IBMPC中I/O地址的分配,I/O端口獨(dú)立編址方式的優(yōu)點(diǎn): I/O端口具有獨(dú)立的地址空間,不占用內(nèi)存空間。 I/O指令中的地址字段的長度較短,可以節(jié)省指令存儲(chǔ)空間和指令執(zhí)行時(shí)間。 由于訪問存儲(chǔ)器和訪問I/O端口使用不同的指令,因此編制的程序比較清晰易讀。 I/O端口獨(dú)立編址方式的缺點(diǎn): I/O操作指令的種類通常沒有存儲(chǔ)器操作指令豐富,設(shè)計(jì)程序時(shí)不夠方便。,9.2.2 接口的基本組成, 設(shè)備選擇電路 用于接收總線傳來的地址信息,經(jīng)譯碼后,決定選擇哪個(gè)設(shè)備或I/O接口內(nèi)部的部件。 數(shù)據(jù)緩沖寄存器(數(shù)據(jù)端口) 用于存放主機(jī)與
14、外設(shè)之間要傳遞的數(shù)據(jù)信息。 命令寄存器(控制端口) 用于存放主機(jī)向外設(shè)發(fā)送的控制命令。 狀態(tài)寄存器(狀態(tài)端口) 用于存放外設(shè)或接口的工作狀態(tài)。 其它有關(guān)部件 如中斷控制邏輯、DMA控制邏輯以及各類特殊部件。,9.2.3 I/O 接口的分類,1. 按數(shù)據(jù)傳送格式分 串行接口:接口與設(shè)備之間的信息傳送是逐位串行進(jìn)行的。 并行接口:接口與設(shè)備之間的信息傳送是將一個(gè)字或一個(gè)字節(jié)的所有位同時(shí)并行地進(jìn)行傳送的。,主機(jī),串行接口,外設(shè),TxD,RxD,Dn10,主機(jī),并行接口,外設(shè),Dn10,I/On10,2. 按時(shí)序的控制方式分 同步接口:一般與同步總線相連,接口與總線采用統(tǒng)一時(shí)鐘信號(hào),無論CPU與I/O
15、設(shè)備,還是存儲(chǔ)器與I/O設(shè)備交換信息,都與總線同步時(shí)鐘脈沖同步。 異步接口:與異步總線相連,接口與系統(tǒng)總線之間采用異步應(yīng)答方式。,3. 按信息傳送交換的控制方式分 程序控制I/O接口:采用直接程序控制方式進(jìn)行信息交換的接口。 程序中斷I/O接口:主機(jī)與外設(shè)以程序中斷方式進(jìn)行信息交換控制的接口。 直接存儲(chǔ)器存取I/O接口:以直接存儲(chǔ)器存取(DMA)方式控制信息傳送的接口。,程序控制方式的特點(diǎn): 數(shù)據(jù)傳輸操作通過在處理機(jī)上執(zhí)行的I/O指令來實(shí)現(xiàn)。 程序控制方式下數(shù)據(jù)傳輸?shù)倪^程: 輸入數(shù)據(jù) CPU執(zhí)行I/O輸入指令,啟動(dòng)輸入操作總線周期,將I/O接口數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)取到CPU中的累加器中。 C
16、PU執(zhí)行寫存儲(chǔ)器指令,啟動(dòng)寫存儲(chǔ)器總線周期,將累加器中存放的輸入數(shù)據(jù)寫到內(nèi)存某個(gè)單元中。,9.3 程序控制方式, 輸出數(shù)據(jù) CPU執(zhí)行讀存儲(chǔ)器指令,啟動(dòng)讀存儲(chǔ)器總線周期,將內(nèi)存某個(gè)單元中存放的待輸出數(shù)據(jù)取到CPU的累加器中。 CPU執(zhí)行I/O輸出指令,啟動(dòng)輸出操作總線周期,將累加器中存放的待輸出數(shù)據(jù)寫到設(shè)備接口的數(shù)據(jù)緩沖寄存器中。 在程序控制方式下,內(nèi)存與外設(shè)交換一個(gè)數(shù)據(jù)需要使用兩次總線,即需要執(zhí)行一個(gè)訪問存儲(chǔ)單元的總線周期和一個(gè)訪問I/O的總線周期。,9.3.1 直接程序控制方式,直接程序控制方式完全通過程序來控制主機(jī)與外設(shè)之間信息傳送。 通常是在用戶程序中安排一段由I/O指令和其它指令組成
17、的I/O程序,通過執(zhí)行I/O程序?qū)崿F(xiàn)對外設(shè)的直接控制。,1. 直接數(shù)據(jù)傳送方式,CPU在控制與外設(shè)之間的數(shù)據(jù)傳送之前,不需了解外設(shè)的工作狀態(tài),也不需考慮同步問題,即可直接執(zhí)行I/0指令,實(shí)現(xiàn)數(shù)據(jù)傳送。 在采用直接數(shù)據(jù)傳送方式進(jìn)行數(shù)據(jù)傳輸?shù)慕涌谥?,不需設(shè)置狀態(tài)寄存器及相關(guān)邏輯。 直接數(shù)據(jù)傳送方式也稱為無條件傳送方式,是I/O數(shù)據(jù)傳送控制最簡單的一種,多用于I/0操作時(shí)間固定且已知的情況下。,n e x t :mov dx,8000h; D X指向數(shù)據(jù)端口 in al,dx;從輸入端口讀開關(guān)狀態(tài) not al;反相 out dx,al;送輸出端口顯示 call delay;調(diào)子程序延時(shí) jmp n
18、ext;重復(fù),2. 程序查詢數(shù)據(jù)傳送控制方式,CPU在進(jìn)行輸入/輸出操作之前,先查詢外設(shè)的狀態(tài),只有當(dāng)外設(shè)準(zhǔn)備就緒時(shí),才進(jìn)行數(shù)據(jù)傳送。也稱為條件傳送方式。 當(dāng)有關(guān)操作的時(shí)間未知或不定時(shí),往往采用程序查詢方式進(jìn)行同步控制。,程序查詢方式I/0程序的操作步驟,mov dx,8000h; D X指向狀態(tài)端口 status:in al,dx ;讀狀態(tài)端口 test al,01h;測試標(biāo)志位D0 jz status ; D 0,未就緒,繼續(xù)查詢0 inc dx ; D1,就緒,DX改指向數(shù)據(jù)端口0 in al,dx ;從數(shù)據(jù)端口輸入數(shù)據(jù),在程序查詢方式中,為了提供程序查詢依據(jù),通常需要設(shè)置狀態(tài)寄存器,占
19、用一個(gè)I/O端口地址。,直接程序控制方式適用于下述場合: CPU速度不高 CPU工作效率問題不是很重要 需要調(diào)試或診斷I/O接口及設(shè)備的時(shí)候 直接程序控制方式的缺點(diǎn): CPU與外圍設(shè)備無法并行工作,CPU效率很低。 無法發(fā)現(xiàn)和處理異常情況,不能響應(yīng)來自外部的隨機(jī)請求。,9.3.2 程序中斷傳送方式,程序中斷方式簡稱為中斷方式,它是目前幾乎所有計(jì)算機(jī)系統(tǒng)都具備的一種重要工作機(jī)制。 中斷不僅用在輸入輸出過程控制中,而且在多道程序、分時(shí)操作、實(shí)時(shí)處理、人機(jī)聯(lián)系、故障處理、程序的監(jiān)視與跟蹤、目態(tài)程序和操作系統(tǒng)的聯(lián)系以及多處理機(jī)系統(tǒng)中各機(jī)間聯(lián)系方面都起著十分重要的作用。,9.3.2.1 中斷的基本概念,
20、1中斷 中斷是指處理機(jī)暫時(shí)中止執(zhí)行現(xiàn)行程序而轉(zhuǎn)去執(zhí)行處理更加緊迫事件的服務(wù)程序,待處理完畢后,再自動(dòng)返回執(zhí)行原來的程序的過程。 相對于在CPU上運(yùn)行的程序,中斷具有隨機(jī)性(不可預(yù)測性)、異步性和不可再現(xiàn)性。,2實(shí)現(xiàn)中斷應(yīng)考慮的問題 保護(hù)現(xiàn)場 中斷過程實(shí)質(zhì)上是一種程序切換過程,因此必須處理好保存舊現(xiàn)場、建立新現(xiàn)場的問題。 及時(shí)獲得中斷請求信號(hào) 中斷具有隨機(jī)性(程序自愿中斷除外)。因此必須及時(shí)檢測中斷請求信號(hào),以便及時(shí)處理。,3中斷的作用,(1) 解決主機(jī)與外設(shè)的速度匹配問題,實(shí)現(xiàn)CPU與I/O設(shè)備并行工作。,(2) 及時(shí)處理異常情況,提高機(jī)器的可靠性。 (3) 便于實(shí)現(xiàn)人機(jī)聯(lián)系 (4) 便于實(shí)現(xiàn)
21、多道程序運(yùn)行 (5) 便于實(shí)現(xiàn)多臺(tái)設(shè)備并行工作 (6) 便于實(shí)現(xiàn)實(shí)時(shí)控制 (7) 便于實(shí)現(xiàn)目態(tài)程序和操作系統(tǒng)的聯(lián)系 (8) 便于實(shí)現(xiàn)多處理機(jī)系統(tǒng)中各處理機(jī)間的聯(lián)系,4中斷處理的過程,中斷源以硬件信號(hào)形式通過中斷控制線路向CPU提出中斷請求。 中斷源:引起中斷事件的原因。 中斷源可以是外部的硬件設(shè)備,如鍵盤、打印機(jī)等輸入/輸出設(shè)備和各種控制設(shè)備;也可以是軟件指令,如中斷指令;還可能是由各種故障和出錯(cuò)引起的中斷,如計(jì)算溢出等。, 中斷請求, 中斷判優(yōu)及響應(yīng) 根據(jù)中斷優(yōu)先權(quán)進(jìn)行判斷,擇優(yōu)予以響應(yīng)。 保護(hù)現(xiàn)場 保護(hù)主程序的運(yùn)行現(xiàn)狀,如PC值、PSW、寄存器和內(nèi)存中的重要數(shù)據(jù)。 中斷服務(wù) 按中斷源的工作
22、要求,執(zhí)行相應(yīng)的中斷服務(wù)程序,進(jìn)行特定的數(shù)據(jù)傳送或控制處理。, 恢復(fù)現(xiàn)場 為了正確返回原程序,需要進(jìn)行恢復(fù)現(xiàn)場的工作,即將前面保存的寄存器的內(nèi)容送回原寄存器。 中斷返回 返回被中斷的程序 ,繼續(xù)執(zhí)行。,5中斷的分類, 按中斷源來分, 按中斷服務(wù)程序入口的獲取方式分 向量中斷:由中斷系統(tǒng)硬件,直接向主機(jī)提供被響應(yīng) 中斷的中斷向量地址。 非向量中斷:通過軟件查詢方式識(shí)別中斷源,轉(zhuǎn) 入相應(yīng)的中斷服務(wù)程序入口地址。 按是否可屏蔽分 可屏蔽中斷:CPU可以禁止響應(yīng)的外部中斷。 不可屏蔽中斷:CPU必須響應(yīng)的外部中斷。,6.中斷系統(tǒng)的設(shè)計(jì)要求, 保證中斷請求信號(hào)的建立及保持的準(zhǔn)確性,保證中斷在未被響應(yīng)時(shí),
23、中斷請求信號(hào)不能隨便被丟失。 保證各類中斷都能及時(shí)得到響應(yīng),不應(yīng)出現(xiàn)某些中斷由于某種原因長時(shí)間得不到響應(yīng)的情況。 必須防止在處理某個(gè)中斷過程中,又去響應(yīng)同樣的中斷 。 保證中斷處理過程的正確性,在中斷處理過程結(jié)束后能夠正確返回被中斷的程序使之繼續(xù)執(zhí)行。, 高級中斷應(yīng)能中斷低級中斷的處理,即要允許中斷嵌套。 中斷優(yōu)先級的設(shè)置應(yīng)具備方便性及靈活性,允許動(dòng)態(tài)改變一個(gè)中斷的優(yōu)先級別。,9.3.2.2 中斷請求信號(hào)的建立與傳送,1中斷請求信號(hào)的建立與中斷屏蔽 中斷請求信號(hào)的建立,基于中斷源有請求中斷的需要。 例如,當(dāng)外設(shè)已“準(zhǔn)備就緒”或“完成一次操作”,可以用這類狀態(tài)信號(hào)作為中斷請求信號(hào)建立的原始信號(hào),
24、使中斷請求觸發(fā)器的狀態(tài)置“1” ,表明已有中斷請求。 設(shè)備中通常有三種狀態(tài):空閑、就緒、忙,空閑,忙,就緒,Busy0 Ready0,Busy0 Ready1 產(chǎn)生中斷請求,Busy1 Ready0,啟動(dòng),清除,準(zhǔn)備好,再啟動(dòng),清除,外設(shè)發(fā)出請求中斷信號(hào)的條件, 外設(shè)準(zhǔn)備就緒(Ready1) 外設(shè)的中斷請求沒有被屏蔽,中斷請求信號(hào)是否能夠傳送給CPU,要看中斷源是否被屏蔽。,中斷屏蔽,中斷屏蔽:中斷源的中斷請求不能向CPU發(fā)出。 可以根據(jù)需要對中斷請求信號(hào)予以屏蔽。 先屏蔽方式:在中斷請求觸發(fā)器IRQ的D端進(jìn)行屏蔽。 后屏蔽方式:在中斷請求觸發(fā)器IRQ的輸出端進(jìn)行屏蔽。 集中屏蔽方式:即在公共
25、接口邏輯中設(shè)置一個(gè)中斷控制器,內(nèi)含一個(gè)屏蔽字寄存器,CPU將屏蔽字送入其中。在各中斷源的接口不另設(shè)屏蔽觸發(fā)器。將各個(gè)請求信號(hào)匯集到中斷控制器,并與屏蔽字比較,若未被屏蔽,則中斷控制器送出一個(gè)公共的中斷請求信號(hào)INT,送往CPU。,TD:狀態(tài)信號(hào),TD1,需要請求中斷 TM:中斷屏蔽信號(hào),TM1,屏蔽中斷請求,8259A的內(nèi)部結(jié)構(gòu)和引腳,2中斷請求信號(hào)的傳送,一臺(tái)計(jì)算機(jī)系統(tǒng)中有多個(gè)中斷源,可能產(chǎn)生多個(gè)中斷請求信號(hào),因此需要解決多個(gè)中斷請求信號(hào)如何傳送給CPU的問題。 獨(dú)立請求線方式(多線單級結(jié)構(gòu)) 各中斷源單獨(dú)設(shè)置自己的中斷請求線,多根請求線直接送往CPU。當(dāng)CPU接到中斷請求信號(hào)后,立即知道請
26、求源是誰,并予以相應(yīng)的處理。 這種方法有利于實(shí)現(xiàn)向量中斷,因?yàn)榭梢酝ㄟ^編碼電路形成向量地址。但因?yàn)镃PU所能連接的中斷請求線數(shù)目有限,所以中斷源數(shù)目難以擴(kuò)充。,獨(dú)立請求線方式,CPU,INTR0,INTR1,INTRn1, 公共請求線方式(單線多級結(jié)構(gòu)),各中斷源的請求信號(hào)通過三態(tài)門匯集到一根公共請求線,CPU只需接收一根中斷請求線的請求信號(hào)。 這種方法節(jié)省引腳,但CPU響應(yīng)中斷后,還需要通過一定邏輯來識(shí)別是哪個(gè)中斷源發(fā)出的中斷請求,所以響應(yīng)速度慢一些。,CPU,INTR0,INTR1,INTRn1,I/O,I/O,I/O,INT, 兩維結(jié)構(gòu)(多線多級結(jié)構(gòu)),CPU設(shè)置數(shù)根中斷請求輸入線,它們
27、體現(xiàn)不同的優(yōu)先級別,稱為主優(yōu)先級。再將主優(yōu)先級相同的中斷請求源匯集到同一公共請求線上。 這種方法綜合了前兩種模式的優(yōu)點(diǎn),既可以在主優(yōu)先級層次迅速判明中斷源,又能隨意擴(kuò)充中斷源數(shù)目。,兩維結(jié)構(gòu),CPU,INTR0,INTR1,I/O,INT0,INTRk1,I/O,I/O,INTR0,INTR1,I/O,INTRn1,I/O,I/O,INTn1,INTR0,INTR1,I/O,INT1,INTRl1,I/O,I/O, 獨(dú)立請求線與公共請求線兼有方式,將要求快速響應(yīng)的中斷請求,采取獨(dú)立請求線方式,以便快速識(shí)別。將其余響應(yīng)速度允許相對低些的中斷請求,匯集為一根公共請求線。 有些微處理器由于引腳數(shù)有限
28、,就采取這種模式。,CPU,INTR,INTR,INTR,I/O,I/O,I/O,I/O,I/O,INTR0,INTR1,INTRm1,9.3.2.3 中斷排隊(duì)與判優(yōu),1. 有關(guān)概念 中斷排隊(duì):中斷系統(tǒng)設(shè)計(jì)人員對中斷請求的響應(yīng)次序作出安排。 中斷判優(yōu):系統(tǒng)運(yùn)行過程中,當(dāng)有多個(gè)中斷源同時(shí)請求中斷時(shí),根據(jù)中斷排隊(duì)事先規(guī)定的次序判斷中斷請求的響應(yīng)優(yōu)先次序。 中斷優(yōu)先級(中斷優(yōu)先權(quán)):根據(jù)中斷源中斷任務(wù)的緊迫程度,給各中斷請求安排的響應(yīng)次序。,中斷排隊(duì)的原則, 內(nèi)部中斷優(yōu)先于外部中斷 故障中斷優(yōu)先于設(shè)備請求中斷 非屏蔽中斷優(yōu)先于可屏蔽中斷 輸入操作的中斷請求優(yōu)先于輸出操作的中斷請求 數(shù)據(jù)有效時(shí)間短的中
29、斷優(yōu)先于數(shù)據(jù)有效時(shí)間長的中斷 具體設(shè)計(jì)時(shí),中斷優(yōu)先級可以是固定的,也可以是動(dòng)態(tài)變化的??梢圆捎糜布蜍浖M(jìn)行中斷排隊(duì)和判優(yōu)。,2CPU與中斷請求間的判優(yōu),CPU是否響應(yīng)中斷請求,要看當(dāng)時(shí)占有CPU的程序的優(yōu)先級。 如程序的優(yōu)先級高于或等于當(dāng)前中斷請求的優(yōu)先級,則CPU可以不響應(yīng)這個(gè)中斷,或說CPU不允許被中斷、中斷被禁止。 如占有CPU的程序優(yōu)先級低于請求中斷的優(yōu)先級,則不應(yīng)禁止這個(gè)中斷,而使CPU能夠響應(yīng)這個(gè)中斷,或說CPU允許中斷。 中斷禁止:在一定條件下,CPU不允許響應(yīng)中斷。 中斷允許:在一定條件下,CPU允許響應(yīng)中斷。,CPU現(xiàn)行程序與中斷請求的判優(yōu)方法, 通過設(shè)置CPU內(nèi)部的“中斷
30、允許”狀態(tài)進(jìn)行判優(yōu) 在CPU內(nèi)部設(shè)置 “允許中斷”觸發(fā)器IEN(或在PSR中設(shè)置相應(yīng)位 P231),指令系統(tǒng)提供開中斷與關(guān)中斷功能(特權(quán)指令)。 開中斷操作使 TIEN1,關(guān)中斷使 TIEN0。 如果CPU處于關(guān)中斷狀態(tài),則表示所有外部中斷請求要求的服務(wù)都沒有現(xiàn)行程序的任務(wù)重要,CPU不響應(yīng)外部中斷請求。 如果CPU處于開中斷狀態(tài),則可以響應(yīng)外部中斷請求。, 在現(xiàn)行程序的程序狀態(tài)字(PSW)中設(shè)置現(xiàn)行程序的優(yōu)先級 若中斷請求的優(yōu)先級高于現(xiàn)行程序的優(yōu)先級,則予以響應(yīng)。 CPU內(nèi)部有一個(gè)優(yōu)先級比較邏輯,對PSW中給定的優(yōu)先級與中斷請求的優(yōu)先級進(jìn)行比較,決定是否需要暫?,F(xiàn)行程序去響應(yīng)中斷請求。操作系
31、統(tǒng)可以根據(jù)實(shí)際情況動(dòng)態(tài)地對PSW中的優(yōu)先級進(jìn)行調(diào)整。,例:某計(jì)算機(jī)內(nèi)部程序與外部中斷請求優(yōu)先級和PSW的規(guī)定為:,處理機(jī)0級,處理機(jī)1級,處理機(jī)7級,外部請求0級,外部請求1級,外部請求7級,2中斷請求之間的排隊(duì)與判優(yōu),(1) 軟件查詢 響應(yīng)中斷請求后,先轉(zhuǎn)入中斷查詢程序,按優(yōu)先順序依次詢問各中斷源是否提出請求。如果是,則轉(zhuǎn)入相應(yīng)的服務(wù)處理程序。如果沒有,則繼續(xù)往下查詢。查詢的順序體現(xiàn)了優(yōu)先級別的高低,改變查詢順序也就修改了優(yōu)先級。 在硬件上,每一個(gè)中斷源都附帶一個(gè)標(biāo)志,用于代表相應(yīng)的中斷源是否請求中斷。CPU用測試指令按一定優(yōu)先次序檢查這些標(biāo)志,即可確定中斷源是否發(fā)出中斷請求。,軟件查詢方法
32、適用于低速和中速設(shè)備,多用于公共請求線方式。 優(yōu)點(diǎn):中斷條件標(biāo)志的優(yōu)先級可用程序任意改變,靈活性好。 缺點(diǎn):設(shè)備多時(shí),響應(yīng)速度太慢。,(2) 并行優(yōu)先排隊(duì)邏輯,采用硬件并行優(yōu)先排隊(duì)邏輯對具有獨(dú)立中斷請求線的中斷請求進(jìn)行判優(yōu)。 并行排優(yōu)邏輯適于具有多請求線的系統(tǒng),速度較快,硬件代價(jià)較高。,采用硬件優(yōu)先鏈電路判斷中斷優(yōu)先級,判優(yōu)結(jié)果可用不同的設(shè)備碼或用中斷源類型碼來表示。 鏈?zhǔn)絻?yōu)先排隊(duì)邏輯多用于采用公共請求線的系統(tǒng)。,(3) 鏈?zhǔn)絻?yōu)先排隊(duì)邏輯,INTI,中斷排隊(duì)輸入,INTO,中斷排隊(duì)輸出,INTA,中斷回答,INTR1,INTR2,INTR3,INTR4,4,5,3,2,1,0,送CPU,0CH
33、,0FH,12H,0EH,設(shè)CPU可以接受 n1 根中斷請求線,每根請求線的優(yōu)先級稱作主優(yōu)先級,在CPU內(nèi)部有一個(gè)相應(yīng)的判優(yōu)電路,以首先響應(yīng)優(yōu)先級最高的請求。如果程序狀態(tài)字中有CPU現(xiàn)行程序的優(yōu)先級編碼,這個(gè)判優(yōu)電路同時(shí)擔(dān)負(fù)CPU與請求之間的判優(yōu)問題。 將有關(guān)外設(shè)分成 n1 組,每組的請求匯集到同一根請求線上,占有同一個(gè)主優(yōu)先級。在一個(gè)小組內(nèi),各設(shè)備又作進(jìn)一步的優(yōu)先級劃分,稱為次優(yōu)先級。通常在小組內(nèi)采取菊花鏈?zhǔn)降膬?yōu)先鏈結(jié)構(gòu)。,(4) 二維結(jié)構(gòu)的優(yōu)先排隊(duì),二維結(jié)構(gòu)的優(yōu)先排隊(duì),(5)采用中斷控制器集成芯片的優(yōu)先邏輯,在微型計(jì)算機(jī)中,廣泛使用中斷控制器集成芯片,如Intel 8259A。中斷控制器將
34、中斷請求信號(hào)的寄存、匯集、屏蔽、排優(yōu)、編碼等邏輯,集成在一塊芯片之中。,可編程中斷控制器 Intel 8259A,9.3.2.4 中斷響應(yīng),CPU接到中斷請求信號(hào)后,若滿足響應(yīng)中斷的條件,即暫?,F(xiàn)行程序的執(zhí)行,而轉(zhuǎn)入中斷處理,將這一過程稱為中斷響應(yīng)。 1.CPU響應(yīng)中斷應(yīng)具備的條件: (1) 有中斷源請求中斷。 (2) CPU允許響應(yīng)中斷,即處于開中斷狀態(tài)。 (3) 現(xiàn)行指令不是停機(jī)指令 (4) 一條指令執(zhí)行結(jié)束。,一般情況下,CPU響應(yīng)中斷的時(shí)間是在一條指令執(zhí)行結(jié)束。但某些特殊的中斷,例如指令執(zhí)行過程中,取數(shù)時(shí)所需數(shù)據(jù)不在主存,這時(shí)不及時(shí)處理,指令就無法執(zhí)行下去,這就要求在指令執(zhí)行過程中響應(yīng)
35、中斷。,中斷響應(yīng)流程,取指令,停機(jī),停機(jī)指令,執(zhí)行指令,電源故障,Y,N,中斷請求,N,中斷處理,Y,Y,N,2. 中斷響應(yīng)過程中應(yīng)完成的操作,(1)關(guān)中斷 以便在保存現(xiàn)場過程中不允許響應(yīng)新的中斷請求,確保現(xiàn)場保存的正確性。 (2)保存斷點(diǎn)地址和程序狀態(tài)字 (3)轉(zhuǎn)入中斷服務(wù)程序入口,以便執(zhí)行相應(yīng)的中斷服務(wù)程序,完成中斷處理任務(wù) 中斷響應(yīng)周期的操作流程中的操作不是在程序中安排的,而是直接由硬件完成的。通常把這種操作稱為執(zhí)行中斷隱指令。,第六章模型機(jī)中斷周期操作流程,9.3.2.5 中斷服務(wù)程序入口地址的獲取方式,1. 軟件查詢方法 CPU響應(yīng)中斷請求后,先轉(zhuǎn)入中斷查詢程序,按優(yōu)先順序依次識(shí)別中
36、斷源,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。 例:某機(jī)器各接口將中斷請求存放在狀態(tài)端口的狀態(tài)字寄存器STR中,CPU響應(yīng)中斷請求后,轉(zhuǎn)入查詢程序。,1 Ready,STR,IN AL, STRA TEST AL, 08H JNZ A入口 IN AL, STRB TEST AL, 08H JNZ B入口 ,2. 通過硬件排隊(duì)與編碼電路獲得優(yōu)先級最高的中斷源的設(shè)備碼,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。,例:響應(yīng)中斷后,執(zhí)行程序: INTA AC ;發(fā)中斷回答信號(hào)INTA,將設(shè) 備碼讀入累加器AC中 JMP AC100H ;轉(zhuǎn)入(AC)100H處執(zhí)行,1、2兩種方法也稱為非向量中斷,3.向量中斷,中斷向量:每個(gè)
37、中斷源對應(yīng)的中斷服務(wù)程序的入口地址及其程序狀態(tài)字PSW。 中斷向量存放在特定的存儲(chǔ)區(qū)中,有些計(jì)算機(jī)沒有完整的程序狀態(tài)字,則中斷向量僅指中斷服務(wù)程序入口地址。 中斷向量表:存放中斷向量的表。 所有的中斷服務(wù)程序入口地址(或包括服務(wù)程序的狀態(tài)字)組織成一個(gè)一維的表格,存放在一段連續(xù)的存儲(chǔ)區(qū)中。 中斷向量地址:訪問中斷向量表的地址碼,即讀取中斷向量所需的地址,也稱為中斷指針。,中斷向量表,中斷向量,向量中斷:將各個(gè)中斷服務(wù)程序的入口地址(或包括狀態(tài)字)組織成中斷向量表;響應(yīng)中斷時(shí),由硬件直接產(chǎn)生對應(yīng)于中斷源的向量地址;據(jù)此訪問中斷向量表,從中讀取中斷服務(wù)程序入口地址,由此轉(zhuǎn)向中斷服務(wù)程序。 向量中斷
38、的響應(yīng)工作一般在中斷周期中由硬件直接實(shí)現(xiàn)。 向量中斷的特點(diǎn): 能夠根據(jù)中斷請求信號(hào)快速、直接地轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)程序。 現(xiàn)代計(jì)算機(jī)基本上都具有向量中斷功能。,IBM PC機(jī)的中斷向量表,向量中斷的工作過程, 中斷源提出中斷請求。 若CPU允許中斷,則發(fā)出中斷回答信號(hào)。 優(yōu)先級編碼電路形成優(yōu)先級最高的中斷請求的中斷向量地址存入中斷向量地址寄存器VAR。 保護(hù)斷點(diǎn)和現(xiàn)場,PC、PSW入棧。 根據(jù)中斷向量地址,將對應(yīng)的中斷服務(wù)程序入口地址和PSW送入PC和PSR。 轉(zhuǎn)入中斷服務(wù)程序,進(jìn)行中斷服務(wù)。 中斷返回,將保存的PC和PSW彈回PC和PSR。,VAR,INTR0,INTR1,INTR7,優(yōu)先級
39、編碼電路,PC,PSR,CPU,INTR,INTA, 中斷服務(wù), 中斷服務(wù),9.3.2.6 多重中斷與中斷屏蔽,1. 多重中斷(中斷嵌套) CPU在處理某一級中斷過程中又遇到了新的中斷請求,CPU暫停原中斷的處理,而轉(zhuǎn)入處理新的中斷,待處理完畢,再恢復(fù)原來中斷的處理,這種中斷稱為多重中斷,也稱中斷嵌套。 2. 多重中斷的處理原則 若新的中斷的優(yōu)先級高于原來中斷的優(yōu)先級,則響應(yīng)新的中斷請求; 若新的中斷優(yōu)先級同于或低于原來中斷的優(yōu)先級,則不予響應(yīng),必須待原來中斷處理完,返回原程序后,再響應(yīng)新的中斷。,中斷嵌套,主程序,K:,K1:,服務(wù)程序1,服務(wù)程序2,N1:,M1:,L:,L1:,中斷返回,
40、中斷返回,響應(yīng)1,響應(yīng)2,3. 實(shí)現(xiàn)多重中斷處理的方法 采用中斷屏蔽技術(shù)。 中斷屏蔽:當(dāng)產(chǎn)生中斷請求后,用程序有選擇地封鎖部分中斷,而允許其余部分中斷仍得到響應(yīng)。 4. 中斷屏蔽的實(shí)現(xiàn)方法 為每一個(gè)可屏蔽的中斷源設(shè)一個(gè)中斷屏蔽觸發(fā)器來屏蔽該中斷源的中斷請求。 為了實(shí)現(xiàn)多重中斷的處理原則,當(dāng)CPU響應(yīng)某個(gè)中斷請求后,送出一個(gè)新的屏蔽字,屏蔽同級和低級中斷,只允許響應(yīng)更高級中斷。,可編程中斷控制器 Intel 8259A,例,某計(jì)算機(jī)的中斷系統(tǒng)有五級中斷,優(yōu)先次序?yàn)?12345 若CPU在執(zhí)行正常程序時(shí),有下列事件發(fā)生: (1) 中斷1,2,4 提出請求; (2) 在處理中斷4過程中,又有中斷3提
41、出請求; (3) 在處理中斷3時(shí),又出現(xiàn)1,5中斷請求。 請畫出CPU對所有事件的處理過程圖。,中斷源 用戶程序 中斷服務(wù)程序,1 2 3 4 5,time,3,1,5,5. 中斷屏蔽技術(shù)用于調(diào)整中斷優(yōu)先級 利用硬件排隊(duì)判優(yōu)所分配的優(yōu)先級是固定的,但有時(shí)需要?jiǎng)討B(tài)地修改優(yōu)先次序。例如,有些設(shè)備的優(yōu)先級低,經(jīng)常得不到響應(yīng)的機(jī)會(huì),在適當(dāng)?shù)臅r(shí)段中就需讓它升級,使各設(shè)備得到的響應(yīng)機(jī)會(huì)均衡、合理一些。 中斷升級:在一段時(shí)間內(nèi),利用屏蔽技術(shù)將原來優(yōu)先級高的設(shè)備暫時(shí)屏蔽,而使優(yōu)先級低的設(shè)備的優(yōu)先級相對提高。過一段時(shí)間再調(diào)整屏蔽字,或者復(fù)原,或者按一定規(guī)律修改屏蔽字,以適應(yīng)程序的需要。,例:優(yōu)先級順序?yàn)?123
42、45 時(shí)的屏蔽碼,優(yōu)先級順序修改為 14325 時(shí)的屏蔽碼,作業(yè),P410 9.8 9.9,9.3.2.7 中斷服務(wù)(中斷處理),取得中斷服務(wù)程序的入口地址后,CPU開始執(zhí)行中斷服務(wù)程序,完成規(guī)定的中斷處理任務(wù)。 中斷服務(wù)程序一般由起始、主體、結(jié)尾三部分組成。,1. 起始部分, 判明中斷原因,識(shí)別中斷源,對于不同中斷源轉(zhuǎn)入不同的服務(wù)程序。 對于向量中斷,直接由硬件判明中斷源并給出中斷向量地址,轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。 對于非向量中斷,需通過執(zhí)行一段程序判明中斷源,轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。 設(shè)置屏蔽字,封鎖同級與低級中斷。, 保存中斷現(xiàn)場 除了PSW外,還要保存一些在執(zhí)行中斷服務(wù)程序過程中可能被改變
43、的寄存器的內(nèi)容。 開中斷 以便在本次中斷處理過程中,允許響應(yīng)更高級的中斷請求。 這是因?yàn)樵谥袛囗憫?yīng)時(shí),為避免影響保護(hù)現(xiàn)場,進(jìn)行了關(guān)中斷操作。,2.主體部分,執(zhí)行具體的為中斷源服務(wù)的程序。,3. 結(jié)尾部分,關(guān)中斷,以便在恢復(fù)現(xiàn)場過程中不允許響應(yīng)新的中斷。 恢復(fù)中斷現(xiàn)場,將原來保存的寄存器內(nèi)容送回原寄存器。 清中斷請求信號(hào),表示本次中斷處理結(jié)束。 清屏蔽字,開放同級與低級中斷。 開中斷,以便響應(yīng)新的中斷請求。 恢復(fù)PSW、PC,返回被中斷的程序。,例:輸出設(shè)備的程序中斷過程, CPU執(zhí)行程序設(shè)置內(nèi)存存儲(chǔ)區(qū)域的首地址和需要進(jìn)行數(shù)據(jù)傳輸?shù)淖止?jié)數(shù)。 設(shè)置中斷向量 發(fā)送設(shè)備地址,啟動(dòng)被選設(shè)備 外設(shè)準(zhǔn)備好,
44、發(fā)送中斷請求,并被響應(yīng) 執(zhí)行中斷服務(wù)程序 中斷返回,9.3.2.7 中斷響應(yīng)的及時(shí)性要求,中斷延遲時(shí)間 CPU執(zhí)行中斷響應(yīng)隱指令的開銷。 即中斷源提出中斷申請后到中斷處理程序的第一條指令開始執(zhí)行之間的時(shí)間。,影響延遲時(shí)間的因素, 指令的執(zhí)行時(shí)間 如果指令系統(tǒng)中有執(zhí)行時(shí)間較長的指令,則需要考慮提供在指令執(zhí)行過程中也可以對外部中斷請求予以響應(yīng)的能力。 程序執(zhí)行環(huán)境的轉(zhuǎn)換開銷 即保護(hù)斷點(diǎn)、現(xiàn)場和恢復(fù)斷點(diǎn)、現(xiàn)場時(shí)CPU的開銷。 可以在CPU內(nèi)部采用多組寄存器“窗口”,使得環(huán)境轉(zhuǎn)換得以加快。, 中斷服務(wù)程序入口地址的確定方式 可采用固定地址對應(yīng)的方法,即某個(gè)中斷源的中斷服務(wù)程序的第一條指令,放在固定的內(nèi)
45、存單元中,這樣CPU在響應(yīng)這個(gè)中斷時(shí),可直接轉(zhuǎn)入中斷服務(wù)程序。 可考慮將中斷向量表安排在CPU內(nèi)部的Cache中,以加快入口地址的確定時(shí)間。,中斷處理程序的處理時(shí)間,中斷處理程序最好安排在Cache中,以便加快中斷處理的速度。,例:某計(jì)算機(jī)的CPU的主頻為500MHz,所連接的某外設(shè)的最大數(shù)據(jù)傳輸率是20kBps,該外設(shè)接口中有一個(gè)16位的數(shù)據(jù)緩沖器,相應(yīng)的中斷服務(wù)程序的執(zhí)行時(shí)間為500個(gè)時(shí)鐘周期。請回答: 是否可以用中斷方式進(jìn)行該外設(shè)的輸入輸出?若能,在該設(shè)備持續(xù)工作期間,CPU用于控制該設(shè)備進(jìn)行I/O操作的時(shí)間占整個(gè)CPU時(shí)間的百分比大約是多少? 若該設(shè)備的最大數(shù)據(jù)傳輸率改為20MBps,
46、是否可以用中斷方式進(jìn)行該外設(shè)的輸入輸出?,解: 該外設(shè)接口中有一個(gè)16位的數(shù)據(jù)緩沖器,若采用中斷方式進(jìn)行I/O操作,可以每16位進(jìn)行一次中斷請求,因此,中斷請求的時(shí)間間隔為:2B/20kBps106100s 中斷服務(wù)程序的執(zhí)行時(shí)間為:500/500MHz1061s 中斷響應(yīng)時(shí)間相對于中斷服務(wù)程序的執(zhí)行時(shí)間可以忽略不計(jì),故整個(gè)中斷響應(yīng)加中斷服務(wù)的時(shí)間約為1s多一點(diǎn),遠(yuǎn)遠(yuǎn)小于中斷請求的時(shí)間間隔。 因此可以用中斷方式進(jìn)行該外設(shè)的輸入輸出。 采用中斷方式控制該設(shè)備進(jìn)行I/O操作的時(shí)間占整個(gè)CPU時(shí)間的百分比大約為1/1011%,若該設(shè)備的最大數(shù)據(jù)傳輸率是20MBps,則中斷請求的時(shí)間間隔為:2B/20
47、MBps1061s 而整個(gè)中斷響應(yīng)加中斷服務(wù)的時(shí)間約為1s多一點(diǎn),即一次中斷處理未完,新的請求就會(huì)來到,所以,不可以用中斷方式控制該設(shè)備進(jìn)行I/O操作。 此時(shí)最好采用DMA方式,直接進(jìn)行數(shù)據(jù)傳送,無需執(zhí)行程序。,中斷處理的全過程, 中斷請求; 擇優(yōu)響應(yīng); 保護(hù)現(xiàn)場; 中斷服務(wù); 恢復(fù)現(xiàn)場; 中斷返回; 在中斷處理的過程中,有些是由硬件完成的,有些是由軟件完成的,因此中斷是一種軟、硬件結(jié)合的技術(shù)手段。不同的機(jī)器,軟、硬件功能分配的比例有所不同。,9.4 直接存儲(chǔ)器存取方式(DMA),直接存儲(chǔ)器存取方式(Direct Memory Access)簡稱DMA方式。 DMA方式:以主存為中心,采用硬件
48、手段在主存與I/O設(shè)備之間建立直接的數(shù)據(jù)傳送通路,由DMA控制器(DMAC)取得總線控制權(quán),控制主存與I/O設(shè)備之間的數(shù)據(jù)傳送,在傳送過程中不需要CPU的程序干預(yù)的數(shù)據(jù)傳送控制方式。 DMA方式主要用于高速外設(shè)按照連續(xù)地址直接訪問存儲(chǔ)器。,DMA方式,CPU,主存,接口,設(shè)備,DMA 控制器,程序控制,DMA控制,9.4.1 DMA方式的特點(diǎn)與應(yīng)用場合,1. DMA方式的特點(diǎn) 以響應(yīng)隨機(jī)請求的方式,實(shí)現(xiàn)主存與I/O設(shè)備間的快速數(shù)據(jù)傳送。 采用DMA方式控制數(shù)據(jù)傳送時(shí),僅需占用系統(tǒng)總線,不切換程序,不存在保存斷點(diǎn)、保護(hù)現(xiàn)場、恢復(fù)現(xiàn)場、恢復(fù)斷點(diǎn)等操作。因此DMA傳送的插入不影響CPU的程序執(zhí)行狀態(tài)
49、,除了訪問主存的沖突外,CPU可以繼續(xù)執(zhí)行自己的程序,提高了CPU的利用率。 DMA方式只能處理簡單的數(shù)據(jù)傳送,難以識(shí)別與處理復(fù)雜的情況。,2. DMA方式的應(yīng)用 DMA方式一般應(yīng)用于主存與高速I/O設(shè)備間的簡單數(shù)據(jù)傳送(高速I/O設(shè)備如磁盤、磁帶、光盤等外存儲(chǔ)器),以及其它帶有局部存儲(chǔ)器的外圍設(shè)備、通信設(shè)備等。如: 磁盤與主存的成塊數(shù)據(jù)傳送 通信設(shè)備的批量數(shù)據(jù)傳送 動(dòng)態(tài)存儲(chǔ)器的刷新 大批量數(shù)據(jù)采集系統(tǒng),DMA傳送是直接依靠硬件實(shí)現(xiàn)的,可用于快速的數(shù)據(jù)直傳。但DMA方式本身不能處理復(fù)雜事態(tài)。因此,在某些場合常綜合應(yīng)用DMA方式與程序中斷方式,二者互為補(bǔ)充。 典型的例子是磁盤調(diào)用,磁盤讀寫采用D
50、MA方式進(jìn)行數(shù)據(jù)傳送,而對尋道是否正確的判別處理、批量傳送結(jié)束后的善后處理,則采用程序中斷方式。,9.4.2 DMA的傳送方式,1. CPU停機(jī)方式 用CPU停機(jī)方式實(shí)現(xiàn)DMA傳送時(shí),CPU停止工作,讓出對總線的控制權(quán),而由DMAC接管總線,進(jìn)行數(shù)據(jù)傳送。數(shù)據(jù)傳送結(jié)束后,再將總線交還給CPU。,CPU停機(jī)方式的特點(diǎn),優(yōu)點(diǎn): 控制簡單,比較容易實(shí)現(xiàn),是最常用、最簡單的一種DMA實(shí)現(xiàn)方式,大部分DMAC都采用這種方式。 缺點(diǎn): 由于在采用這種方式進(jìn)行的DMA傳送期間,使CPU處于空閑等待狀態(tài),降低了CPU的利用率,并且可能會(huì)影響到某些實(shí)時(shí)性很強(qiáng)的操作,如中斷響應(yīng)和對動(dòng)態(tài)RAM的刷新等。,2. 周期
51、挪用(周期竊取)方式,當(dāng)I/O設(shè)備無DMA傳送請求時(shí),CPU正常訪問主存。當(dāng)I/O設(shè)備需要使用總線傳送數(shù)據(jù)時(shí),產(chǎn)生DMA請求,DMAC把總線請求發(fā)給CPU。 若CPU本身無使用總線的要求,CPU就把總線交給DMAC,由DMAC控制I/O設(shè)備使用總線 如果此時(shí)CPU也要使用總線,則CPU自身進(jìn)入一個(gè)或幾個(gè)“空閑總線周期”狀態(tài),即CPU讓出一個(gè)或幾個(gè)總線周期給DMAC(也稱DMAC“挪用”一個(gè)總線周期),DMAC利用此總線周期控制傳送一個(gè)數(shù)據(jù)字后,再把總線交還給CPU,以便CPU可以繼續(xù)執(zhí)行總線操作。,周期挪用,采用周期挪用方式時(shí),外設(shè)要求DMA傳送的三種情況: 外設(shè)要求DMA傳送時(shí),CPU不需要
52、訪問主存(如CPU正在執(zhí)行乘法指令,由于乘法指令執(zhí)行時(shí)間較長,此時(shí)CPU不需訪問主存),故外設(shè)訪存與CPU不發(fā)生沖突。 外設(shè)要求DMA傳送時(shí),CPU正在訪存,此時(shí)必須等CPU存取周期結(jié)束后,CPU才能讓出總線控制權(quán)。 外設(shè)要求訪存時(shí),CPU也要求訪存,這就出現(xiàn)了訪存沖突。此時(shí)要求外設(shè)訪存優(yōu)先于CPU訪存。因?yàn)橥庠O(shè)不立即訪存就可能丟失數(shù)據(jù),這時(shí)DMAC要竊取一、二個(gè)存取周期,使CPU延緩一、二個(gè)存取周期再訪存。,周期挪用方式的優(yōu)點(diǎn),與CPU暫停訪存的方式相比,周期挪用方式既實(shí)現(xiàn)了I/O傳送,又較好地發(fā)揮了主存與CPU的效率,是一種廣泛采用的方法。,周期挪用方式的缺點(diǎn),每傳送一個(gè)數(shù)據(jù),DMA都要產(chǎn)
53、生訪問請求,待到CPU響應(yīng)后才能傳送,因此判優(yōu)操作及總線切換操作非常頻繁,其花費(fèi)的時(shí)間開銷較大。往往在傳輸一個(gè)數(shù)據(jù)塊時(shí),需要DMA控制器多次申請使用總線,這影響了DMA的數(shù)據(jù)傳輸速度。,周期挪用方式適用于I/O設(shè)備接口控制器中數(shù)據(jù)緩沖器容量不大的場合,例如在接口控制器中僅設(shè)置一個(gè)數(shù)據(jù)寄存器的情形,對具有較大容量數(shù)據(jù)緩沖存儲(chǔ)器的高速外設(shè)來說是不合適的。,3. DMA與CPU交替訪問內(nèi)存方式,將一個(gè)CPU周期分為兩個(gè)分周期,與DMA分別使用。其中一個(gè)專供DMA訪存,另一個(gè)專供CPU訪存。 這種方式不需要總線使用權(quán)的申請建立和歸還過程,總線使用權(quán)是通過不同的周期分別控制的。 在這種工作方式下,CPU
54、既不停止主程序的運(yùn)行也不進(jìn)入等待狀態(tài),在CPU不知不覺中完成了DMA的數(shù)據(jù)傳送,故又有“透明的DMA”方式之稱,當(dāng)然周期擴(kuò)展方式會(huì)使CPU的處理速度減慢,其相應(yīng)的硬件邏輯也變得更為復(fù)雜。,9.4.3 DMA系統(tǒng)的硬件組織,在目前的計(jì)算機(jī)系統(tǒng)中,通常專門設(shè)置了DMA控制器,并且較多采取DMA控制器與DMA接口相分離的方式。 1. DMA控制器(DMAC) DMAC負(fù)責(zé)申請、接管總線的控制權(quán)、發(fā)送地址和操作命令以及控制DMA傳送過程的起始與終止。 DMA控制器獨(dú)立于具體I/O設(shè)備,可以為多個(gè)設(shè)備通用。,DMAC的功能, 接收外設(shè)的DMA請求,向CPU發(fā)出總線請求信號(hào)。請求CPU讓出總線。 當(dāng)CPU
55、發(fā)出DMA響應(yīng)信號(hào)之后,接管對總線的控制,進(jìn)入DMA方式。 對存儲(chǔ)器尋址,輸出和修改地址信息。 向存儲(chǔ)器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號(hào)。 控制傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。 在DMA傳送結(jié)束以后,向CPU發(fā)出結(jié)束DMA請求信號(hào),釋放總線,使CPU恢復(fù)對總線的控制,繼續(xù)正常工作。,2. DMA接口 用于實(shí)現(xiàn)與設(shè)備的連接和數(shù)據(jù)緩沖,反映設(shè)備的特定要求。,9.4.4 DMA控制器的組成,1. DMAC的基本組成 為了實(shí)現(xiàn)DMAC的功能,DMAC內(nèi)部除需要有接受和發(fā)送DMA請求和響應(yīng)信號(hào)的能力外,還應(yīng)具有地址寄存和計(jì)數(shù)功能,以便控制對存儲(chǔ)器的尋址;具有傳輸量計(jì)數(shù)器,能夠?qū)魉偷臄?shù)據(jù)個(gè)數(shù)進(jìn)行計(jì)數(shù)
56、。,DMAC的基本組成,(1) 主存地址寄存器MAR 用于存放主存中需要交換數(shù)據(jù)的地址。 在DMA傳送前,CPU通過執(zhí)行程序?qū)?shù)據(jù)在主存中的首地址送到主存地址寄存器。在DMA傳送過程中,每交換一次數(shù)據(jù),將地址寄存器內(nèi)容加/減1,指向下一單元,直到一批數(shù)據(jù)傳送完畢為止。,(2) 傳輸量計(jì)數(shù)器 WC 用于記錄傳送數(shù)據(jù)的總字?jǐn)?shù)。 傳輸量計(jì)數(shù)器一般采用補(bǔ)碼(負(fù)數(shù))表示要傳送的數(shù)據(jù)量。在DMA傳送過程中,每傳送一個(gè)字(或字節(jié)),計(jì)數(shù)器自動(dòng)加1,當(dāng)WC內(nèi)容為零時(shí),表示數(shù)據(jù)已全部傳送完畢,DMAC發(fā)出DMA傳送結(jié)束信號(hào)。,(3 )數(shù)據(jù)緩沖寄存器DBR 用于暫存每次傳送的數(shù)據(jù)。 通常DMA接口與主存之間采用字
57、傳送,而DMA與設(shè)備之間可能是字節(jié)或位傳送。因此DMA接口中還可能包括有裝配或拆卸字信息的硬件邏輯,如數(shù)據(jù)移位緩沖寄存器、字節(jié)計(jì)數(shù)器等。有的系統(tǒng)采用外設(shè)控制器上的數(shù)據(jù)緩沖器與內(nèi)存單元之間通過數(shù)據(jù)總線直傳的方法,這樣就可以不用數(shù)據(jù)緩沖寄存器。,(4) 設(shè)備地址寄存器DAR 存放I/O設(shè)備的設(shè)備碼或表示設(shè)備信息存儲(chǔ)區(qū)的尋址信息。如磁盤數(shù)據(jù)所在的柱面號(hào)、盤面號(hào)和扇區(qū)號(hào)。具體內(nèi)容取決于設(shè)備的數(shù)據(jù)格式和編址方式。,(5) 控制/狀態(tài)寄存器 CSR 存放有關(guān)控制和狀態(tài)信息,如傳送方式、讀/寫狀態(tài)、傳送完畢與否等。也可使用多個(gè)寄存器,分別存放控制字和狀態(tài)字。,(6) DMA控制邏輯 DMA控制邏輯負(fù)責(zé)完成D
58、MA的預(yù)處理(初始化各類寄存器)、接收設(shè)備控制器送來的DMA請求信號(hào)、向設(shè)備控制器回答DMA允許(應(yīng)答)信號(hào)、向系統(tǒng)申請總線以及控制總線實(shí)現(xiàn)DMA傳輸控制等工作。,(7) DMA中斷控制邏輯 DMA中斷控制邏輯負(fù)責(zé)在DMA操作完成后向CPU發(fā)出中斷請求,申請CPU對DMA操作進(jìn)行后處理或進(jìn)行下一次DMA傳送的預(yù)處理。 注意: DMA傳送過程中的中斷與I/O中斷的技術(shù)相同,但中斷的目的不同。I/O中斷是為了數(shù)據(jù)的輸入或輸出,DMA傳送過程中的中斷是為了報(bào)告一批數(shù)據(jù)傳送結(jié)束。它們是I/O系統(tǒng)中不同的中斷事件。,(8) 數(shù)據(jù)線、地址線和控制信號(hào)線 DMA控制器中設(shè)置了與主機(jī)和I/O設(shè)備兩個(gè)方向的數(shù)據(jù)線、地址線和控制信號(hào)線以及有關(guān)收發(fā)與驅(qū)動(dòng)電路。,9.4.5 DMA控制方式下的數(shù)據(jù)傳送過程,1. 預(yù)處理 在DMAC開始工作之前,CPU通過執(zhí)行輸入輸出程序完成下面工作: 在 控制寄存器中寫入DMA操作命令。給DMA控制邏輯指明數(shù)據(jù)傳送方向是輸入(主存寫)還是輸出(主存讀)。 向DMA設(shè)備地址寄存器送入設(shè)備號(hào),并啟動(dòng)設(shè)備。 向DMA主存地址寄存器送入交換數(shù)據(jù)的主存起始地址。 向傳輸量計(jì)數(shù)器送入交換數(shù)據(jù)的個(gè)數(shù)。,預(yù)處理工作由CPU執(zhí)行幾條輸入輸出指令完成,稱為初始化工作。初始化工作完成后,CPU繼續(xù)執(zhí)行原來的程序。 當(dāng)外部設(shè)備準(zhǔn)備好發(fā)送的數(shù)據(jù)(輸入)或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年成都市雙流區(qū)機(jī)關(guān)第二幼兒園招聘幼兒教師2名備考題庫帶答案詳解
- 鞍鋼電工考試題及答案
- ug高級考試題及答案
- 醫(yī)患關(guān)系事故論文寫作指南
- 安全防火消防知識(shí)培訓(xùn)課件
- 電影攝影師職業(yè)發(fā)展路徑
- 當(dāng)前醫(yī)患關(guān)系改善策略
- 世界高校AI專業(yè)排名
- 2026年安徽理工大學(xué)科技園技術(shù)經(jīng)理人招募備考題庫及一套完整答案詳解
- 2025年遼寧省基層法律工作者考試卷及答案
- 2025長影集團(tuán)有限責(zé)任公司招聘3人筆試模擬試題及答案解析
- 2025西藏日喀則市薩迦縣招聘專職網(wǎng)格員11人筆試備考題庫及答案解析
- 節(jié)能工程監(jiān)理質(zhì)量評估報(bào)告范本
- 攝影取景角度課件
- 浙江省中醫(yī)醫(yī)療技術(shù)感染預(yù)防與控制標(biāo)準(zhǔn)操作規(guī)程(試行)
- 騰訊新員工入職培訓(xùn)
- 語文試卷【黑吉遼蒙卷】高一遼寧省部分學(xué)校金太陽2025-2026學(xué)年高一上學(xué)期11月聯(lián)考(26-108A)(11.24-11.25)
- 2025年政治會(huì)考重慶試卷及答案
- 統(tǒng)編版語文一年級上冊無紙化考評-趣味樂考 玩轉(zhuǎn)語文 課件
- 垃圾分類工作面試技巧與問題
- 2025年北京市海淀區(qū)中小學(xué)教師招聘筆試參考試題及答案解析
評論
0/150
提交評論