版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章I/O系統(tǒng)組織2/4/20231?2011第7版本章學(xué)習(xí)內(nèi)容I/O系統(tǒng)的功能接口的功能中斷的基本概念DMA的基本概念通道的基本概念2/4/202329.1I/O系統(tǒng)概述I/O系統(tǒng)的基本功能①為數(shù)據(jù)傳輸操作選擇輸入/輸出設(shè)備。②控制被選的輸入/輸出設(shè)備與主機(jī)之間的信息交換。2/4/20233I/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ī)對(duì)外部設(shè)備的直接控制,乃至處理機(jī)不再干預(yù)外部設(shè)備的控制,而交由專門的硬件裝置去實(shí)現(xiàn)對(duì)外部設(shè)備的管理與監(jiān)督。2/4/202349.1.2I/O系統(tǒng)的組成典型計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組成:系統(tǒng)總線、I/O設(shè)備接口控制器、I/O設(shè)備、相關(guān)控制軟件。2/4/20235現(xiàn)代計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組成:擴(kuò)展總線、I/O設(shè)備接口控制器、I/O設(shè)備、相關(guān)控制軟件。2/4/20236擴(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è)置的是專用的控制信號(hào),因此需要I/O接口控制器進(jìn)行信號(hào)的轉(zhuǎn)換。2/4/20237I/O設(shè)備控制接口的發(fā)展趨勢(shì)在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,許多I/O設(shè)備的控制器中(比如磁盤控制器、激光打印機(jī))往往會(huì)采用專用的微處理器對(duì)有關(guān)設(shè)備進(jìn)行控制,使用相應(yīng)的設(shè)備控制程序。因此傳統(tǒng)的單純由硬件電路實(shí)現(xiàn)的I/O設(shè)備控制接口,逐漸演變?yōu)橛绍洝⒂布嗷ヅ浜系腎/O設(shè)備控制接口。2/4/202389.1.3主機(jī)與外設(shè)間的連接方式與組織管理主機(jī)與外圍設(shè)備的連接方式大致可分為:總線方式通道方式I/O處理機(jī)方式(IOP方式)2/4/202391.總線型連接方式CPU通過系統(tǒng)總線與主存儲(chǔ)器,I/O控制器,I/O接口電路相連接,通過I/O接口電路進(jìn)一步實(shí)現(xiàn)對(duì)外設(shè)的控制。系統(tǒng)總線包括地址總線,數(shù)據(jù)總線和控制總線,分別用于傳送地址信號(hào),數(shù)據(jù)信號(hào)和控制信號(hào)(如讀/寫信號(hào)、中斷申請(qǐng)及應(yīng)答信號(hào)等)。2/4/2023102/4/202311總線型連接方式的優(yōu)點(diǎn):系統(tǒng)模塊化程度較高,I/O接口擴(kuò)充方便??偩€型連接方式的缺點(diǎn):系統(tǒng)中部件之間的信息交換,均依賴于總線,總線成為系統(tǒng)中的速度瓶頸,因而不適于系統(tǒng)需配備有大量外設(shè)的場(chǎng)合。實(shí)際設(shè)備中,一種I/O接口適配器也可以控制多臺(tái)I/O設(shè)備,如多用戶卡。一塊多用戶I/O適配器,可以控制多臺(tái)終端的工作,這種方式稱之為現(xiàn)代星型I/O設(shè)備的連接方式。2/4/202312多用戶接口適配器終端終端…總線2/4/2023132.通道控制連接方式通道控制方式由通道控制器執(zhí)行專門的通道程序,通過I/O總線控制接口與外設(shè)。通道控制連接方式主要用于連接外設(shè)數(shù)量多,外設(shè)類型多,外設(shè)速度差異大的大型主機(jī)系統(tǒng)。2/4/2023142/4/202315通道控制器是專門負(fù)責(zé)I/O操作的控制器,它執(zhí)行一種專門的通道程序,可與CPU并行工作。通道控制器通過執(zhí)行通道程序或采用DMA方式實(shí)現(xiàn)存儲(chǔ)器與外部設(shè)備之間的直接數(shù)據(jù)傳輸,減少CPU對(duì)I/O處理工作的控制。通道控制器2/4/202316從連接角度看,主機(jī)一般通過單獨(dú)的數(shù)據(jù)通路分別連接數(shù)目有限的通道,各通道再通過I/O總線連接I/O接口,再與外設(shè)連接。通道的四級(jí)連接方式:主機(jī)→通道→I/O接口(設(shè)備控制器)→外設(shè)2/4/202317通道的四級(jí)連接方式2/4/2023183.I/O處理機(jī)控制連接方式(IOP方式)I/O處理機(jī)(IOP)一種具有比I/O通道更強(qiáng)獨(dú)立性的專用CPU。IOP有自己的指令系統(tǒng),可編程控制,適應(yīng)性強(qiáng)、通用性好。其程序的執(zhí)行可與CPU并行,可使CPU徹底擺脫對(duì)I/O的控制處理。IOP可大可小,大的如在巨型機(jī)系統(tǒng)中,IOP可為一臺(tái)通用的小型機(jī)或中型計(jì)算機(jī),稱為前端處理機(jī);小的則為一塊大規(guī)模集成電路芯片,如Intel公司為其微處理器(CPU)8086配套的IOP—8089。2/4/2023199.1.4I/O信息傳送的控制方式I/O數(shù)據(jù)傳送控制方式也稱I/O信息交換方式。I/O數(shù)據(jù)傳送控制方式與主機(jī)和外設(shè)之間的連接方式有很大的關(guān)系,各種方式有不同的適用對(duì)象和應(yīng)用場(chǎng)合,需要相應(yīng)的硬件來支持。
2/4/202320按I/O控制組織的演變順序和外設(shè)與主機(jī)并行工作程度以及數(shù)據(jù)傳送的控制方式,對(duì)I/O數(shù)據(jù)傳送控制分類如下:直接程序控制方式:
程序中斷方式:
DMA方式:通道方式I/O處理機(jī)方式由專有硬件控制的數(shù)據(jù)傳送由程序控制的數(shù)據(jù)傳送采用輔助硬件實(shí)現(xiàn)適合快速外設(shè)快、慢設(shè)備均適用適合于大、中型機(jī)適合慢速外設(shè)適合于小微型機(jī)2/4/202321(1)由程序控制的數(shù)據(jù)傳送這種控制方式是指在主機(jī)和設(shè)備之間的I/O數(shù)據(jù)傳送,需要通過處理機(jī)執(zhí)行具體的I/O指令來完成。即由處理機(jī)執(zhí)行所謂的I/O程序,實(shí)現(xiàn)對(duì)整個(gè)I/O數(shù)據(jù)傳送過程的全程監(jiān)督與管理。程序控制方式一般在總線型連接方式中采用。由程序控制的數(shù)據(jù)傳送可進(jìn)一步分為直接程序控制方式和程序中斷傳送方式。
2/4/202322(2)由專有硬件控制的數(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ī)控制方式2/4/2023239.2I/O接口接口:通常指設(shè)備(硬件)之間的界面。I/O接口:主機(jī)(系統(tǒng)總線)與外部設(shè)備或其它外部系統(tǒng)之間的接口邏輯。2/4/2023249.2.1I/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)信息的交換,保證時(shí)序協(xié)調(diào)。⑷尋址,即識(shí)別設(shè)備地址,選擇指定的設(shè)備和I/O端口。2/4/202325CPU和外設(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è)。2/4/202326③
開關(guān)量開關(guān)量有兩個(gè)狀態(tài):如開關(guān)的閉合和斷開、設(shè)備的啟動(dòng)和停止等,可以“0”和“1”表示。2/4/202327⑵狀態(tài)信息狀態(tài)信息就是反映當(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。
2/4/202328⑶控制信息在外設(shè)的工作過程中,CPU需要通過控制信息控制外設(shè)的工作,如對(duì)外設(shè)的啟動(dòng)和停止等。不同外設(shè)所需的控制信息各不相同,因此CPU需要通過接口將控制信息傳送給外設(shè)。2/4/202329I/O信息的傳送數(shù)據(jù)信息、狀態(tài)信息和控制信息各不相同,應(yīng)該分別傳送。為了便于處理,將狀態(tài)信息、控制信息也廣義地看成數(shù)據(jù)信息,通過數(shù)據(jù)總線來傳送。為了區(qū)別這三種信息,在接口線路中將它們分別送入不同的寄存器(I/O端口)。CPU同外設(shè)之間的信息傳送實(shí)質(zhì)上是對(duì)相應(yīng)的寄存器進(jìn)行“讀”或“寫”操作。端口(Port或I/O端口):接口中可以由CPU進(jìn)行讀或?qū)懙募拇嫫鳌?/4/202330I/O端口的尋址方式對(duì)I/O設(shè)備的尋址實(shí)質(zhì)上就是對(duì)I/O端口的尋址。⑴
I/O端口與主存統(tǒng)一編址將一個(gè)I/O端口作為存儲(chǔ)器中的一個(gè)單元對(duì)待,每一個(gè)I/O端口占用一個(gè)存儲(chǔ)器單元地址。編址時(shí)將I/O端口與存儲(chǔ)器單元一起進(jìn)行編址。又稱為存儲(chǔ)器對(duì)應(yīng)的輸入輸出方式或存儲(chǔ)器映象編址方式。2/4/202331I/O端口與主存統(tǒng)一編址內(nèi)存I/O端口內(nèi)存2/4/202332I/O端口與主存統(tǒng)一編址方式的優(yōu)點(diǎn):①CPU可使用所有存儲(chǔ)器操作指令對(duì)I/O端口中數(shù)據(jù)進(jìn)行操作,十分靈活和方便。②不需要用專門的指令及控制信號(hào)區(qū)分是存儲(chǔ)器還是I/O操作。使得系統(tǒng)相對(duì)簡(jiǎn)單。I/O端口與主存統(tǒng)一編址方式存在的缺點(diǎn):①I/O端口占用了內(nèi)存單元的部分地址空間,使內(nèi)存容量減小。②由于在程序中不易分清指令訪問的是存儲(chǔ)器還是I/O端口,所以采用這種方式編制的程序不易閱讀。2/4/202333⑵I/O端口獨(dú)立編址將I/O端口與存儲(chǔ)器單元分別獨(dú)立進(jìn)行編址,CPU訪問外設(shè)時(shí),需使用專門的I/O指令,并需要有與接口電路聯(lián)系的單獨(dú)的控制信號(hào)。也稱為I/O端口尋址輸入輸出方式。存儲(chǔ)器I/O端口FFFFH0000HFFFH000H2/4/202334IBMPC中I/O地址的分配
輸入/輸出設(shè)備占用地址數(shù)地址(16進(jìn)制)硬盤控制器16320~32F軟盤控制器83F0~3F7彩色圖形顯示適配器163D0~3DF異步通訊控制器83F8~3FF2/4/202335I/O端口獨(dú)立編址方式的優(yōu)點(diǎn):①I/O端口具有獨(dú)立的地址空間,不占用內(nèi)存空間。②I/O指令中的地址字段的長(zhǎng)度較短,可以節(jié)省指令存儲(chǔ)空間和指令執(zhí)行時(shí)間。③由于訪問存儲(chǔ)器和訪問I/O端口使用不同的指令,因此編制的程序比較清晰易讀。I/O端口獨(dú)立編址方式的缺點(diǎn):I/O操作指令的種類通常沒有存儲(chǔ)器操作指令豐富,設(shè)計(jì)程序時(shí)不夠方便。2/4/2023369.2.2接口的基本組成2/4/202337⑴設(shè)備選擇電路用于接收總線傳來的地址信息,經(jīng)譯碼后,決定選擇哪個(gè)設(shè)備或I/O接口內(nèi)部的部件。⑵數(shù)據(jù)緩沖寄存器(數(shù)據(jù)端口)用于存放主機(jī)與外設(shè)之間要傳遞的數(shù)據(jù)信息。⑶命令寄存器(控制端口)用于存放主機(jī)向外設(shè)發(fā)送的控制命令。⑷狀態(tài)寄存器(狀態(tài)端口)用于存放外設(shè)或接口的工作狀態(tài)。⑸其它有關(guān)部件如中斷控制邏輯、DMA控制邏輯以及各類特殊部件。2/4/2023389.2.3I/O接口的分類1.按數(shù)據(jù)傳送格式分串行接口:接口與設(shè)備之間的信息傳送是逐位串行進(jìn)行的。并行接口:接口與設(shè)備之間的信息傳送是將一個(gè)字或一個(gè)字節(jié)的所有位同時(shí)并行地進(jìn)行傳送的。2/4/2023392/4/202340主機(jī)串行接口外設(shè)TxDRxDDn-1~0主機(jī)并行接口外設(shè)Dn-1~0I/On-1~02/4/2023412.按時(shí)序的控制方式分同步接口:一般與同步總線相連,接口與總線采用統(tǒng)一時(shí)鐘信號(hào),無論CPU與I/O設(shè)備,還是存儲(chǔ)器與I/O設(shè)備交換信息,都與總線同步時(shí)鐘脈沖同步。異步接口:與異步總線相連,接口與系統(tǒng)總線之間采用異步應(yīng)答方式。2/4/2023423.按信息傳送交換的控制方式分程序控制I/O接口:采用直接程序控制方式進(jìn)行信息交換的接口。程序中斷I/O接口:主機(jī)與外設(shè)以程序中斷方式進(jìn)行信息交換控制的接口。直接存儲(chǔ)器存取I/O接口:以直接存儲(chǔ)器存取(DMA)方式控制信息傳送的接口。2/4/202343程序控制方式的特點(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中的累加器中。②CPU執(zhí)行寫存儲(chǔ)器指令,啟動(dòng)寫存儲(chǔ)器總線周期,將累加器中存放的輸入數(shù)據(jù)寫到內(nèi)存某個(gè)單元中。9.3程序控制方式2/4/202344⑵輸出數(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的總線周期。
2/4/2023459.3.1直接程序控制方式
直接程序控制方式完全通過程序來控制主機(jī)與外設(shè)之間信息傳送。通常是在用戶程序中安排一段由I/O指令和其它指令組成的I/O程序,通過執(zhí)行I/O程序?qū)崿F(xiàn)對(duì)外設(shè)的直接控制。2/4/2023461.直接數(shù)據(jù)傳送方式CPU在控制與外設(shè)之間的數(shù)據(jù)傳送之前,不需了解外設(shè)的工作狀態(tài),也不需考慮同步問題,即可直接執(zhí)行I/0指令,實(shí)現(xiàn)數(shù)據(jù)傳送。在采用直接數(shù)據(jù)傳送方式進(jìn)行數(shù)據(jù)傳輸?shù)慕涌谥校恍柙O(shè)置狀態(tài)寄存器及相關(guān)邏輯。直接數(shù)據(jù)傳送方式也稱為無條件傳送方式,是I/O數(shù)據(jù)傳送控制最簡(jiǎn)單的一種,多用于I/0操作時(shí)間固定且已知的情況下。2/4/202347next: movdx,8000h ;DX指向數(shù)據(jù)端口 inal,dx ;從輸入端口讀開關(guān)狀態(tài) notal ;反相 outdx,al ;送輸出端口顯示 calldelay ;調(diào)子程序延時(shí) jmpnext ;重復(fù)2/4/2023482.程序查詢數(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)行同步控制。2/4/202349程序查詢方式I/0程序的操作步驟2/4/202350movdx,8000h ;DX指向狀態(tài)端口status: inal,dx ;讀狀態(tài)端口 testal,01h ;測(cè)試標(biāo)志位D0 jzstatus ;D=0,未就緒,繼續(xù)查詢0 incdx ;D=1,就緒,DX改指向數(shù)據(jù)端口0 inal,dx ;從數(shù)據(jù)端口輸入數(shù)據(jù)2/4/202351在程序查詢方式中,為了提供程序查詢依據(jù),通常需要設(shè)置狀態(tài)寄存器,占用一個(gè)I/O端口地址。2/4/202352直接程序控制方式適用于下述場(chǎng)合:①CPU速度不高②CPU工作效率問題不是很重要③需要調(diào)試或診斷I/O接口及設(shè)備的時(shí)候直接程序控制方式的缺點(diǎn):①CPU與外圍設(shè)備無法并行工作,CPU效率很低。②無法發(fā)現(xiàn)和處理異常情況,不能響應(yīng)來自外部的隨機(jī)請(qǐng)求。2/4/2023539.3.2程序中斷傳送方式程序中斷方式簡(jiǎn)稱為中斷方式,它是目前幾乎所有計(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)系方面都起著十分重要的作用。2/4/2023549.3.2.1中斷的基本概念1.中斷中斷是指處理機(jī)暫時(shí)中止執(zhí)行現(xiàn)行程序而轉(zhuǎn)去執(zhí)行處理更加緊迫事件的服務(wù)程序,待處理完畢后,再自動(dòng)返回執(zhí)行原來的程序的過程。相對(duì)于在CPU上運(yùn)行的程序,中斷具有隨機(jī)性(不可預(yù)測(cè)性)、異步性和不可再現(xiàn)性。2/4/2023552.實(shí)現(xiàn)中斷應(yīng)考慮的問題⑴保護(hù)現(xiàn)場(chǎng)中斷過程實(shí)質(zhì)上是一種程序切換過程,因此必須處理好保存舊現(xiàn)場(chǎng)、建立新現(xiàn)場(chǎng)的問題。⑵及時(shí)獲得中斷請(qǐng)求信號(hào)中斷具有隨機(jī)性(程序自愿中斷除外)。因此必須及時(shí)檢測(cè)中斷請(qǐng)求信號(hào),以便及時(shí)處理。2/4/2023563.中斷的作用(1)解決主機(jī)與外設(shè)的速度匹配問題,實(shí)現(xiàn)CPU與I/O設(shè)備并行工作。CPU打印機(jī)執(zhí)行主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序空閑啟動(dòng)準(zhǔn)備發(fā)中斷請(qǐng)求接收數(shù)據(jù)打印發(fā)中斷請(qǐng)求接收數(shù)據(jù)啟動(dòng)打印機(jī)傳送數(shù)據(jù)傳送數(shù)據(jù)響應(yīng)中斷響應(yīng)中斷打印中斷返回中斷返回2/4/202357(2)及時(shí)處理異常情況,提高機(jī)器的可靠性。(3)便于實(shí)現(xiàn)人—機(jī)聯(lián)系(4)便于實(shí)現(xiàn)多道程序運(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)系2/4/2023584.中斷處理的過程2/4/202359中斷源以硬件信號(hào)形式通過中斷控制線路向CPU提出中斷請(qǐng)求。中斷源:引起中斷事件的原因。中斷源可以是外部的硬件設(shè)備,如鍵盤、打印機(jī)等輸入/輸出設(shè)備和各種控制設(shè)備;也可以是軟件指令,如中斷指令;還可能是由各種故障和出錯(cuò)引起的中斷,如計(jì)算溢出等。⑴中斷請(qǐng)求2/4/202360⑵中斷判優(yōu)及響應(yīng)根據(jù)中斷優(yōu)先權(quán)進(jìn)行判斷,擇優(yōu)予以響應(yīng)。⑶保護(hù)現(xiàn)場(chǎng)保護(hù)主程序的運(yùn)行現(xiàn)狀,如PC值、PSW、寄存器和內(nèi)存中的重要數(shù)據(jù)。⑷中斷服務(wù)按中斷源的工作要求,執(zhí)行相應(yīng)的中斷服務(wù)程序,進(jìn)行特定的數(shù)據(jù)傳送或控制處理。2/4/202361⑸恢復(fù)現(xiàn)場(chǎng)為了正確返回原程序,需要進(jìn)行恢復(fù)現(xiàn)場(chǎng)的工作,即將前面保存的寄存器的內(nèi)容送回原寄存器。⑹中斷返回返回被中斷的程序,繼續(xù)執(zhí)行。2/4/2023625.中斷的分類⑴按中斷源來分內(nèi)中斷外中斷強(qiáng)迫中斷自愿中斷:程序中預(yù)先安排的中斷硬件故障軟件故障外設(shè)請(qǐng)求中斷控制臺(tái)中斷2/4/202363⑵按中斷服務(wù)程序入口的獲取方式分
向量中斷:由中斷系統(tǒng)硬件,直接向主機(jī)提供被響應(yīng)
中斷的中斷向量地址。非向量中斷:通過軟件查詢方式識(shí)別中斷源,轉(zhuǎn)
入相應(yīng)的中斷服務(wù)程序入口地址。⑶按是否可屏蔽分
可屏蔽中斷:CPU可以禁止響應(yīng)的外部中斷。不可屏蔽中斷:CPU必須響應(yīng)的外部中斷。
2/4/2023646.中斷系統(tǒng)的設(shè)計(jì)要求⑴保證中斷請(qǐng)求信號(hào)的建立及保持的準(zhǔn)確性,保證中斷在未被響應(yīng)時(shí),中斷請(qǐng)求信號(hào)不能隨便被丟失。⑵保證各類中斷都能及時(shí)得到響應(yīng),不應(yīng)出現(xiàn)某些中斷由于某種原因長(zhǎng)時(shí)間得不到響應(yīng)的情況。⑶必須防止在處理某個(gè)中斷過程中,又去響應(yīng)同樣的中斷。⑷保證中斷處理過程的正確性,在中斷處理過程結(jié)束后能夠正確返回被中斷的程序使之繼續(xù)執(zhí)行。2/4/202365⑸高級(jí)中斷應(yīng)能中斷低級(jí)中斷的處理,即要允許中斷嵌套。⑹中斷優(yōu)先級(jí)的設(shè)置應(yīng)具備方便性及靈活性,允許動(dòng)態(tài)改變一個(gè)中斷的優(yōu)先級(jí)別。2/4/2023669.3.2.2中斷請(qǐng)求信號(hào)的建立與傳送1.中斷請(qǐng)求信號(hào)的建立與中斷屏蔽中斷請(qǐng)求信號(hào)的建立,基于中斷源有請(qǐng)求中斷的需要。例如,當(dāng)外設(shè)已“準(zhǔn)備就緒”或“完成一次操作”,可以用這類狀態(tài)信號(hào)作為中斷請(qǐng)求信號(hào)建立的原始信號(hào),使中斷請(qǐng)求觸發(fā)器的狀態(tài)置“1”,表明已有中斷請(qǐng)求。設(shè)備中通常有三種狀態(tài):空閑、就緒、忙2/4/202367空閑忙就緒Busy=0Ready=0Busy=0Ready=1產(chǎn)生中斷請(qǐng)求Busy=1Ready=0啟動(dòng)清除準(zhǔn)備好再啟動(dòng)清除2/4/202368外設(shè)發(fā)出請(qǐng)求中斷信號(hào)的條件①外設(shè)準(zhǔn)備就緒(Ready=1)②外設(shè)的中斷請(qǐng)求沒有被屏蔽2/4/202369中斷請(qǐng)求信號(hào)是否能夠傳送給CPU,要看中斷源是否被屏蔽。中斷屏蔽2/4/202370中斷屏蔽:中斷源的中斷請(qǐng)求不能向CPU發(fā)出??梢愿鶕?jù)需要對(duì)中斷請(qǐng)求信號(hào)予以屏蔽。①先屏蔽方式:在中斷請(qǐng)求觸發(fā)器IRQ的D端進(jìn)行屏蔽。②后屏蔽方式:在中斷請(qǐng)求觸發(fā)器IRQ的輸出端進(jìn)行屏蔽。③集中屏蔽方式:即在公共接口邏輯中設(shè)置一個(gè)中斷控制器,內(nèi)含一個(gè)屏蔽字寄存器,CPU將屏蔽字送入其中。在各中斷源的接口不另設(shè)屏蔽觸發(fā)器。將各個(gè)請(qǐng)求信號(hào)匯集到中斷控制器,并與屏蔽字比較,若未被屏蔽,則中斷控制器送出一個(gè)公共的中斷請(qǐng)求信號(hào)INT,送往CPU。2/4/202371TD:狀態(tài)信號(hào),TD=1,需要請(qǐng)求中斷TM:中斷屏蔽信號(hào),TM=1,屏蔽中斷請(qǐng)求QIRQCPDIRQ&TDTMQIRQCPD1TDTMIRQ2/4/2023728259A的內(nèi)部結(jié)構(gòu)和引腳2/4/2023732.中斷請(qǐng)求信號(hào)的傳送一臺(tái)計(jì)算機(jī)系統(tǒng)中有多個(gè)中斷源,可能產(chǎn)生多個(gè)中斷請(qǐng)求信號(hào),因此需要解決多個(gè)中斷請(qǐng)求信號(hào)如何傳送給CPU的問題。⑴獨(dú)立請(qǐng)求線方式(多線單級(jí)結(jié)構(gòu))各中斷源單獨(dú)設(shè)置自己的中斷請(qǐng)求線,多根請(qǐng)求線直接送往CPU。當(dāng)CPU接到中斷請(qǐng)求信號(hào)后,立即知道請(qǐng)求源是誰(shuí),并予以相應(yīng)的處理。這種方法有利于實(shí)現(xiàn)向量中斷,因?yàn)榭梢酝ㄟ^編碼電路形成向量地址。但因?yàn)镃PU所能連接的中斷請(qǐng)求線數(shù)目有限,所以中斷源數(shù)目難以擴(kuò)充。2/4/202374獨(dú)立請(qǐng)求線方式CPUINTR0INTR1INTRn-1┇2/4/202375⑵公共請(qǐng)求線方式(單線多級(jí)結(jié)構(gòu))各中斷源的請(qǐng)求信號(hào)通過三態(tài)門匯集到一根公共請(qǐng)求線,CPU只需接收一根中斷請(qǐng)求線的請(qǐng)求信號(hào)。這種方法節(jié)省引腳,但CPU響應(yīng)中斷后,還需要通過一定邏輯來識(shí)別是哪個(gè)中斷源發(fā)出的中斷請(qǐng)求,所以響應(yīng)速度慢一些。CPUINTR0INTR1INTRn-1I/OI/OI/O…INT2/4/202376⑶兩維結(jié)構(gòu)(多線多級(jí)結(jié)構(gòu))CPU設(shè)置數(shù)根中斷請(qǐng)求輸入線,它們體現(xiàn)不同的優(yōu)先級(jí)別,稱為主優(yōu)先級(jí)。再將主優(yōu)先級(jí)相同的中斷請(qǐng)求源匯集到同一公共請(qǐng)求線上。這種方法綜合了前兩種模式的優(yōu)點(diǎn),既可以在主優(yōu)先級(jí)層次迅速判明中斷源,又能隨意擴(kuò)充中斷源數(shù)目。2/4/202377兩維結(jié)構(gòu)CPUINTR0INTR1I/O…INT0INTRk-1I/OI/OINTR0INTR1I/O…INTRn-1I/OI/OINTn-1INTR0INTR1I/O…INT1INTRl-1I/OI/O┇2/4/202378⑷獨(dú)立請(qǐng)求線與公共請(qǐng)求線兼有方式將要求快速響應(yīng)的中斷請(qǐng)求,采取獨(dú)立請(qǐng)求線方式,以便快速識(shí)別。將其余響應(yīng)速度允許相對(duì)低些的中斷請(qǐng)求,匯集為一根公共請(qǐng)求線。有些微處理器由于引腳數(shù)有限,就采取這種模式。CPUINTRINTRINTRI/OI/OI/O…I/OI/OINTR0INTR1INTRm-12/4/2023799.3.2.3中斷排隊(duì)與判優(yōu)1.有關(guān)概念中斷排隊(duì):中斷系統(tǒng)設(shè)計(jì)人員對(duì)中斷請(qǐng)求的響應(yīng)次序作出安排。中斷判優(yōu):系統(tǒng)運(yùn)行過程中,當(dāng)有多個(gè)中斷源同時(shí)請(qǐng)求中斷時(shí),根據(jù)中斷排隊(duì)事先規(guī)定的次序判斷中斷請(qǐng)求的響應(yīng)優(yōu)先次序。中斷優(yōu)先級(jí)(中斷優(yōu)先權(quán)):根據(jù)中斷源中斷任務(wù)的緊迫程度,給各中斷請(qǐng)求安排的響應(yīng)次序。2/4/202380中斷排隊(duì)的原則①內(nèi)部中斷優(yōu)先于外部中斷②故障中斷優(yōu)先于設(shè)備請(qǐng)求中斷③非屏蔽中斷優(yōu)先于可屏蔽中斷④輸入操作的中斷請(qǐng)求優(yōu)先于輸出操作的中斷請(qǐng)求⑤數(shù)據(jù)有效時(shí)間短的中斷優(yōu)先于數(shù)據(jù)有效時(shí)間長(zhǎng)的中斷具體設(shè)計(jì)時(shí),中斷優(yōu)先級(jí)可以是固定的,也可以是動(dòng)態(tài)變化的??梢圆捎糜布蜍浖M(jìn)行中斷排隊(duì)和判優(yōu)。2/4/2023812.CPU與中斷請(qǐng)求間的判優(yōu)CPU是否響應(yīng)中斷請(qǐng)求,要看當(dāng)時(shí)占有CPU的程序的優(yōu)先級(jí)。如程序的優(yōu)先級(jí)高于或等于當(dāng)前中斷請(qǐng)求的優(yōu)先級(jí),則CPU可以不響應(yīng)這個(gè)中斷,或說CPU不允許被中斷、中斷被禁止。如占有CPU的程序優(yōu)先級(jí)低于請(qǐng)求中斷的優(yōu)先級(jí),則不應(yīng)禁止這個(gè)中斷,而使CPU能夠響應(yīng)這個(gè)中斷,或說CPU允許中斷。中斷禁止:在一定條件下,CPU不允許響應(yīng)中斷。中斷允許:在一定條件下,CPU允許響應(yīng)中斷。2/4/202382CPU現(xiàn)行程序與中斷請(qǐng)求的判優(yōu)方法⑴通過設(shè)置CPU內(nèi)部的“中斷允許”狀態(tài)進(jìn)行判優(yōu)在CPU內(nèi)部設(shè)置“允許中斷”觸發(fā)器IEN(或在PSR中設(shè)置相應(yīng)位P231),指令系統(tǒng)提供開中斷與關(guān)中斷功能(特權(quán)指令)。開中斷操作使TIEN=1,關(guān)中斷使TIEN=0。如果CPU處于關(guān)中斷狀態(tài),則表示所有外部中斷請(qǐng)求要求的服務(wù)都沒有現(xiàn)行程序的任務(wù)重要,CPU不響應(yīng)外部中斷請(qǐng)求。如果CPU處于開中斷狀態(tài),則可以響應(yīng)外部中斷請(qǐng)求。2/4/2023832/4/202384⑵在現(xiàn)行程序的程序狀態(tài)字(PSW)中設(shè)置現(xiàn)行程序的優(yōu)先級(jí)若中斷請(qǐng)求的優(yōu)先級(jí)高于現(xiàn)行程序的優(yōu)先級(jí),則予以響應(yīng)。CPU內(nèi)部有一個(gè)優(yōu)先級(jí)比較邏輯,對(duì)PSW中給定的優(yōu)先級(jí)與中斷請(qǐng)求的優(yōu)先級(jí)進(jìn)行比較,決定是否需要暫?,F(xiàn)行程序去響應(yīng)中斷請(qǐng)求。操作系統(tǒng)可以根據(jù)實(shí)際情況動(dòng)態(tài)地對(duì)PSW中的優(yōu)先級(jí)進(jìn)行調(diào)整。2/4/202385例:某計(jì)算機(jī)內(nèi)部程序與外部中斷請(qǐng)求優(yōu)先級(jí)和PSW的規(guī)定為:處理機(jī)0級(jí)處理機(jī)1級(jí)處理機(jī)7級(jí)外部請(qǐng)求0級(jí)外部請(qǐng)求1級(jí)外部請(qǐng)求7級(jí)765PSW內(nèi)部?jī)?yōu)先級(jí)2/4/2023862.中斷請(qǐng)求之間的排隊(duì)與判優(yōu)(1)軟件查詢響應(yīng)中斷請(qǐng)求后,先轉(zhuǎn)入中斷查詢程序,按優(yōu)先順序依次詢問各中斷源是否提出請(qǐng)求。如果是,則轉(zhuǎn)入相應(yīng)的服務(wù)處理程序。如果沒有,則繼續(xù)往下查詢。查詢的順序體現(xiàn)了優(yōu)先級(jí)別的高低,改變查詢順序也就修改了優(yōu)先級(jí)。在硬件上,每一個(gè)中斷源都附帶一個(gè)標(biāo)志,用于代表相應(yīng)的中斷源是否請(qǐng)求中斷。CPU用測(cè)試指令按一定優(yōu)先次序檢查這些標(biāo)志,即可確定中斷源是否發(fā)出中斷請(qǐng)求。2/4/2023872/4/202388軟件查詢方法適用于低速和中速設(shè)備,多用于公共請(qǐng)求線方式。優(yōu)點(diǎn):中斷條件標(biāo)志的優(yōu)先級(jí)可用程序任意改變,靈活性好。缺點(diǎn):設(shè)備多時(shí),響應(yīng)速度太慢。2/4/202389(2)并行優(yōu)先排隊(duì)邏輯采用硬件并行優(yōu)先排隊(duì)邏輯對(duì)具有獨(dú)立中斷請(qǐng)求線的中斷請(qǐng)求進(jìn)行判優(yōu)。并行排優(yōu)邏輯適于具有多請(qǐng)求線的系統(tǒng),速度較快,硬件代價(jià)較高。2/4/2023902/4/202391采用硬件優(yōu)先鏈電路判斷中斷優(yōu)先級(jí),判優(yōu)結(jié)果可用不同的設(shè)備碼或用中斷源類型碼來表示。鏈?zhǔn)絻?yōu)先排隊(duì)邏輯多用于采用公共請(qǐng)求線的系統(tǒng)。(3)鏈?zhǔn)絻?yōu)先排隊(duì)邏輯2/4/202392INTI中斷排隊(duì)輸入INTR1INTR2INTR3INTR4INTO中斷排隊(duì)輸出INTA中斷回答INTR1INTR2INTR3INTR4453210送CPU0CH0FH12H0EH2/4/202393設(shè)CPU可以接受n+1根中斷請(qǐng)求線,每根請(qǐng)求線的優(yōu)先級(jí)稱作主優(yōu)先級(jí),在CPU內(nèi)部有一個(gè)相應(yīng)的判優(yōu)電路,以首先響應(yīng)優(yōu)先級(jí)最高的請(qǐng)求。如果程序狀態(tài)字中有CPU現(xiàn)行程序的優(yōu)先級(jí)編碼,這個(gè)判優(yōu)電路同時(shí)擔(dān)負(fù)CPU與請(qǐng)求之間的判優(yōu)問題。將有關(guān)外設(shè)分成n+1組,每組的請(qǐng)求匯集到同一根請(qǐng)求線上,占有同一個(gè)主優(yōu)先級(jí)。在一個(gè)小組內(nèi),各設(shè)備又作進(jìn)一步的優(yōu)先級(jí)劃分,稱為次優(yōu)先級(jí)。通常在小組內(nèi)采取菊花鏈?zhǔn)降膬?yōu)先鏈結(jié)構(gòu)。(4)二維結(jié)構(gòu)的優(yōu)先排隊(duì)2/4/202394二維結(jié)構(gòu)的優(yōu)先排隊(duì)2/4/202395(5)采用中斷控制器集成芯片的優(yōu)先邏輯在微型計(jì)算機(jī)中,廣泛使用中斷控制器集成芯片,如Intel8259A。中斷控制器將中斷請(qǐng)求信號(hào)的寄存、匯集、屏蔽、排優(yōu)、編碼等邏輯,集成在一塊芯片之中。2/4/202396可編程中斷控制器Intel8259A2/4/2023979.3.2.4中斷響應(yīng)CPU接到中斷請(qǐng)求信號(hào)后,若滿足響應(yīng)中斷的條件,即暫?,F(xiàn)行程序的執(zhí)行,而轉(zhuǎn)入中斷處理,將這一過程稱為中斷響應(yīng)。1.CPU響應(yīng)中斷應(yīng)具備的條件:(1)有中斷源請(qǐng)求中斷。(2)CPU允許響應(yīng)中斷,即處于開中斷狀態(tài)。(3)現(xiàn)行指令不是停機(jī)指令(4)一條指令執(zhí)行結(jié)束。2/4/202398一般情況下,CPU響應(yīng)中斷的時(shí)間是在一條指令執(zhí)行結(jié)束。但某些特殊的中斷,例如指令執(zhí)行過程中,取數(shù)時(shí)所需數(shù)據(jù)不在主存,這時(shí)不及時(shí)處理,指令就無法執(zhí)行下去,這就要求在指令執(zhí)行過程中響應(yīng)中斷。2/4/202399中斷響應(yīng)流程取指令停機(jī)停機(jī)指令執(zhí)行指令電源故障YN中斷請(qǐng)求N中斷處理YYN2/4/20231002.中斷響應(yīng)過程中應(yīng)完成的操作(1)關(guān)中斷
以便在保存現(xiàn)場(chǎng)過程中不允許響應(yīng)新的中斷請(qǐng)求,確?,F(xiàn)場(chǎng)保存的正確性。(2)保存斷點(diǎn)地址和程序狀態(tài)字(3)轉(zhuǎn)入中斷服務(wù)程序入口,以便執(zhí)行相應(yīng)的中斷服務(wù)程序,完成中斷處理任務(wù)中斷響應(yīng)周期的操作流程中的操作不是在程序中安排的,而是直接由硬件完成的。通常把這種操作稱為執(zhí)行中斷隱指令。2/4/2023101第六章模型機(jī)中斷周期操作流程2/4/20231029.3.2.5中斷服務(wù)程序入口地址的獲取方式1.軟件查詢方法CPU響應(yīng)中斷請(qǐng)求后,先轉(zhuǎn)入中斷查詢程序,按優(yōu)先順序依次識(shí)別中斷源,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。例:某機(jī)器各接口將中斷請(qǐng)求存放在狀態(tài)端口的狀態(tài)字寄存器STR中,CPU響應(yīng)中斷請(qǐng)求后,轉(zhuǎn)入查詢程序。3INTR=1ReadySTR2/4/2023103
INAL,STRATESTAL,08HJNZA入口INAL,STRBTESTAL,08HJNZB入口┇2/4/20231042.通過硬件排隊(duì)與編碼電路獲得優(yōu)先級(jí)最高的中斷源的設(shè)備碼,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。例:響應(yīng)中斷后,執(zhí)行程序:INTAAC;發(fā)中斷回答信號(hào)INTA,將設(shè)
備碼讀入累加器AC中JMPAC+100H;轉(zhuǎn)入(AC)+100H處執(zhí)行1、2兩種方法也稱為非向量中斷2/4/20231053.向量中斷中斷向量:每個(gè)中斷源對(duì)應(yīng)的中斷服務(wù)程序的入口地址及其程序狀態(tài)字PSW。中斷向量存放在特定的存儲(chǔ)區(qū)中,有些計(jì)算機(jī)沒有完整的程序狀態(tài)字,則中斷向量?jī)H指中斷服務(wù)程序入口地址。中斷向量表:存放中斷向量的表。所有的中斷服務(wù)程序入口地址(或包括服務(wù)程序的狀態(tài)字)組織成一個(gè)一維的表格,存放在一段連續(xù)的存儲(chǔ)區(qū)中。中斷向量地址:訪問中斷向量表的地址碼,即讀取中斷向量所需的地址,也稱為中斷指針。2/4/2023106中斷向量地址1入口地址1程序狀態(tài)字1中斷向量地址2入口地址2程序狀態(tài)字2︰︰中斷向量地址n入口地址n程序狀態(tài)字n中斷向量表中斷向量2/4/2023107向量中斷:將各個(gè)中斷服務(wù)程序的入口地址(或包括狀態(tài)字)組織成中斷向量表;響應(yīng)中斷時(shí),由硬件直接產(chǎn)生對(duì)應(yīng)于中斷源的向量地址;據(jù)此訪問中斷向量表,從中讀取中斷服務(wù)程序入口地址,由此轉(zhuǎn)向中斷服務(wù)程序。向量中斷的響應(yīng)工作一般在中斷周期中由硬件直接實(shí)現(xiàn)。向量中斷的特點(diǎn):能夠根據(jù)中斷請(qǐng)求信號(hào)快速、直接地轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)程序?,F(xiàn)代計(jì)算機(jī)基本上都具有向量中斷功能。2/4/2023108IBMPC機(jī)的中斷向量表2/4/2023109向量中斷的工作過程⑴中斷源提出中斷請(qǐng)求。⑵若CPU允許中斷,則發(fā)出中斷回答信號(hào)。⑶優(yōu)先級(jí)編碼電路形成優(yōu)先級(jí)最高的中斷請(qǐng)求的中斷向量地址存入中斷向量地址寄存器VAR。⑷保護(hù)斷點(diǎn)和現(xiàn)場(chǎng),PC、PSW入棧。⑸根據(jù)中斷向量地址,將對(duì)應(yīng)的中斷服務(wù)程序入口地址和PSW送入PC和PSR。⑹轉(zhuǎn)入中斷服務(wù)程序,進(jìn)行中斷服務(wù)。⑺中斷返回,將保存的PC和PSW彈回PC和PSR。2/4/2023110主存0級(jí)入口0級(jí)PSW1級(jí)入口1級(jí)PSW┇7級(jí)入口7級(jí)PSWVARINTR0INTR1INTR7堆棧PSWPC××優(yōu)先級(jí)編碼電路PCPSRCPUINTRINTA⑤③①②④⑦⑥中斷服務(wù)⑥中斷服務(wù)2/4/20231119.3.2.6多重中斷與中斷屏蔽1.多重中斷(中斷嵌套)CPU在處理某一級(jí)中斷過程中.又遇到了新的中斷請(qǐng)求,CPU暫停原中斷的處理,而轉(zhuǎn)入處理新的中斷,待處理完畢,再恢復(fù)原來中斷的處理,這種中斷稱為多重中斷,也稱中斷嵌套。2.多重中斷的處理原則⑴若新的中斷的優(yōu)先級(jí)高于原來中斷的優(yōu)先級(jí),則響應(yīng)新的中斷請(qǐng)求;⑵若新的中斷優(yōu)先級(jí)同于或低于原來中斷的優(yōu)先級(jí),則不予響應(yīng),必須待原來中斷處理完,返回原程序后,再響應(yīng)新的中斷。2/4/2023112中斷嵌套主程序K:K+1:服務(wù)程序1服務(wù)程序2N1:M1:L:L+1:中斷返回中斷返回響應(yīng)1響應(yīng)22/4/20231133.實(shí)現(xiàn)多重中斷處理的方法采用中斷屏蔽技術(shù)。中斷屏蔽:當(dāng)產(chǎn)生中斷請(qǐng)求后,用程序有選擇地封鎖部分中斷,而允許其余部分中斷仍得到響應(yīng)。4.中斷屏蔽的實(shí)現(xiàn)方法為每一個(gè)可屏蔽的中斷源設(shè)一個(gè)中斷屏蔽觸發(fā)器來屏蔽該中斷源的中斷請(qǐng)求。為了實(shí)現(xiàn)多重中斷的處理原則,當(dāng)CPU響應(yīng)某個(gè)中斷請(qǐng)求后,送出一個(gè)新的屏蔽字,屏蔽同級(jí)和低級(jí)中斷,只允許響應(yīng)更高級(jí)中斷。2/4/2023114可編程中斷控制器Intel8259A2/4/2023115例某計(jì)算機(jī)的中斷系統(tǒng)有五級(jí)中斷,優(yōu)先次序?yàn)?>2>3>4>5若CPU在執(zhí)行正常程序時(shí),有下列事件發(fā)生:(1)中斷1,2,4提出請(qǐng)求;(2)在處理中斷4過程中,又有中斷3提出請(qǐng)求;(3)在處理中斷3時(shí),又出現(xiàn)1,5中斷請(qǐng)求。請(qǐng)畫出CPU對(duì)所有事件的處理過程圖。2/4/2023116中斷源用戶程序中斷服務(wù)程序12345
1,2,4time31,52/4/20231175.中斷屏蔽技術(shù)用于調(diào)整中斷優(yōu)先級(jí)利用硬件排隊(duì)判優(yōu)所分配的優(yōu)先級(jí)是固定的,但有時(shí)需要?jiǎng)討B(tài)地修改優(yōu)先次序。例如,有些設(shè)備的優(yōu)先級(jí)低,經(jīng)常得不到響應(yīng)的機(jī)會(huì),在適當(dāng)?shù)臅r(shí)段中就需讓它升級(jí),使各設(shè)備得到的響應(yīng)機(jī)會(huì)均衡、合理一些。中斷升級(jí):在一段時(shí)間內(nèi),利用屏蔽技術(shù)將原來優(yōu)先級(jí)高的設(shè)備暫時(shí)屏蔽,而使優(yōu)先級(jí)低的設(shè)備的優(yōu)先級(jí)相對(duì)提高。過一段時(shí)間再調(diào)整屏蔽字,或者復(fù)原,或者按一定規(guī)律修改屏蔽字,以適應(yīng)程序的需要。2/4/2023118例:優(yōu)先級(jí)順序?yàn)?>2>3>4>5時(shí)的屏蔽碼2/4/2023119優(yōu)先級(jí)順序修改為1>4>3>2>5時(shí)的屏蔽碼2/4/2023120作業(yè)P4109.89.92/4/20231219.3.2.7中斷服務(wù)(中斷處理)取得中斷服務(wù)程序的入口地址后,CPU開始執(zhí)行中斷服務(wù)程序,完成規(guī)定的中斷處理任務(wù)。中斷服務(wù)程序一般由起始、主體、結(jié)尾三部分組成。2/4/20231221.起始部分①判明中斷原因,識(shí)別中斷源,對(duì)于不同中斷源轉(zhuǎn)入不同的服務(wù)程序。對(duì)于向量中斷,直接由硬件判明中斷源并給出中斷向量地址,轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。對(duì)于非向量中斷,需通過執(zhí)行一段程序判明中斷源,轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。②設(shè)置屏蔽字,封鎖同級(jí)與低級(jí)中斷。2/4/2023123③保存中斷現(xiàn)場(chǎng)除了PSW外,還要保存一些在執(zhí)行中斷服務(wù)程序過程中可能被改變的寄存器的內(nèi)容。④開中斷以便在本次中斷處理過程中,允許響應(yīng)更高級(jí)的中斷請(qǐng)求。這是因?yàn)樵谥袛囗憫?yīng)時(shí),為避免影響保護(hù)現(xiàn)場(chǎng),進(jìn)行了關(guān)中斷操作。2/4/20231242.主體部分執(zhí)行具體的為中斷源服務(wù)的程序。2/4/20231253.結(jié)尾部分①關(guān)中斷,以便在恢復(fù)現(xiàn)場(chǎng)過程中不允許響應(yīng)新的中斷。②恢復(fù)中斷現(xiàn)場(chǎng),將原來保存的寄存器內(nèi)容送回原寄存器。③清中斷請(qǐng)求信號(hào),表示本次中斷處理結(jié)束。④清屏蔽字,開放同級(jí)與低級(jí)中斷。⑤開中斷,以便響應(yīng)新的中斷請(qǐng)求。⑥恢復(fù)PSW、PC,返回被中斷的程序。2/4/2023126例:輸出設(shè)備的程序中斷過程①CPU執(zhí)行程序設(shè)置內(nèi)存存儲(chǔ)區(qū)域的首地址和需要進(jìn)行數(shù)據(jù)傳輸?shù)淖止?jié)數(shù)。②設(shè)置中斷向量③發(fā)送設(shè)備地址,啟動(dòng)被選設(shè)備④外設(shè)準(zhǔn)備好,發(fā)送中斷請(qǐng)求,并被響應(yīng)⑤執(zhí)行中斷服務(wù)程序⑥中斷返回2/4/20231279.3.2.7中斷響應(yīng)的及時(shí)性要求
中斷延遲時(shí)間CPU執(zhí)行中斷響應(yīng)隱指令的開銷。即中斷源提出中斷申請(qǐng)后到中斷處理程序的第一條指令開始執(zhí)行之間的時(shí)間。
2/4/2023128影響延遲時(shí)間的因素⑴指令的執(zhí)行時(shí)間如果指令系統(tǒng)中有執(zhí)行時(shí)間較長(zhǎng)的指令,則需要考慮提供在指令執(zhí)行過程中也可以對(duì)外部中斷請(qǐng)求予以響應(yīng)的能力。⑵程序執(zhí)行環(huán)境的轉(zhuǎn)換開銷即保護(hù)斷點(diǎn)、現(xiàn)場(chǎng)和恢復(fù)斷點(diǎn)、現(xiàn)場(chǎng)時(shí)CPU的開銷。可以在CPU內(nèi)部采用多組寄存器“窗口”,使得環(huán)境轉(zhuǎn)換得以加快。2/4/2023129⑶中斷服務(wù)程序入口地址的確定方式可采用固定地址對(duì)應(yīng)的方法,即某個(gè)中斷源的中斷服務(wù)程序的第一條指令,放在固定的內(nèi)存單元中,這樣CPU在響應(yīng)這個(gè)中斷時(shí),可直接轉(zhuǎn)入中斷服務(wù)程序??煽紤]將中斷向量表安排在CPU內(nèi)部的Cache中,以加快入口地址的確定時(shí)間。2/4/2023130中斷處理程序的處理時(shí)間中斷處理程序最好安排在Cache中,以便加快中斷處理的速度。2/4/2023131例:某計(jì)算機(jī)的CPU的主頻為500MHz,所連接的某外設(shè)的最大數(shù)據(jù)傳輸率是20kBps,該外設(shè)接口中有一個(gè)16位的數(shù)據(jù)緩沖器,相應(yīng)的中斷服務(wù)程序的執(zhí)行時(shí)間為500個(gè)時(shí)鐘周期。請(qǐng)回答:⑴是否可以用中斷方式進(jìn)行該外設(shè)的輸入輸出?若能,在該設(shè)備持續(xù)工作期間,CPU用于控制該設(shè)備進(jìn)行I/O操作的時(shí)間占整個(gè)CPU時(shí)間的百分比大約是多少?⑵若該設(shè)備的最大數(shù)據(jù)傳輸率改為20MBps,是否可以用中斷方式進(jìn)行該外設(shè)的輸入輸出?
2/4/2023132解:該外設(shè)接口中有一個(gè)16位的數(shù)據(jù)緩沖器,若采用中斷方式進(jìn)行I/O操作,可以每16位進(jìn)行一次中斷請(qǐng)求,因此,中斷請(qǐng)求的時(shí)間間隔為:2B/20kBps×106=100μs中斷服務(wù)程序的執(zhí)行時(shí)間為:
500/500MHz×106=1μs中斷響應(yīng)時(shí)間相對(duì)于中斷服務(wù)程序的執(zhí)行時(shí)間可以忽略不計(jì),故整個(gè)中斷響應(yīng)加中斷服務(wù)的時(shí)間約為1μs多一點(diǎn),遠(yuǎn)遠(yuǎn)小于中斷請(qǐng)求的時(shí)間間隔。因此可以用中斷方式進(jìn)行該外設(shè)的輸入輸出。采用中斷方式控制該設(shè)備進(jìn)行I/O操作的時(shí)間占整個(gè)CPU時(shí)間的百分比大約為1/101=1%2/4/2023133若該設(shè)備的最大數(shù)據(jù)傳輸率是20MBps,則中斷請(qǐng)求的時(shí)間間隔為:
2B/20MBps×106=1μs而整個(gè)中斷響應(yīng)加中斷服務(wù)的時(shí)間約為1μs多一點(diǎn),即一次中斷處理未完,新的請(qǐng)求就會(huì)來到,所以,不可以用中斷方式控制該設(shè)備進(jìn)行I/O操作。此時(shí)最好采用DMA方式,直接進(jìn)行數(shù)據(jù)傳送,無需執(zhí)行程序。2/4/2023134中斷處理的全過程①中斷請(qǐng)求;②擇優(yōu)響應(yīng);③保護(hù)現(xiàn)場(chǎng);④中斷服務(wù);⑤恢復(fù)現(xiàn)場(chǎng);⑥中斷返回;在中斷處理的過程中,有些是由硬件完成的,有些是由軟件完成的,因此中斷是一種軟、硬件結(jié)合的技術(shù)手段。不同的機(jī)器,軟、硬件功能分配的比例有所不同。2/4/20231359.4直接存儲(chǔ)器存取方式(DMA)直接存儲(chǔ)器存取方式(DirectMemoryAccess)
簡(jiǎn)稱DMA方式。DMA方式:以主存為中心,采用硬件手段在主存與I/O設(shè)備之間建立直接的數(shù)據(jù)傳送通路,由DMA控制器(DMAC)取得總線控制權(quán),控制主存與I/O設(shè)備之間的數(shù)據(jù)傳送,在傳送過程中不需要CPU的程序干預(yù)的數(shù)據(jù)傳送控制方式。DMA方式主要用于高速外設(shè)按照連續(xù)地址直接訪問存儲(chǔ)器。2/4/20231362/4/2023137DMA方式CPU主存接口設(shè)備DMA控制器程序控制DMA控制2/4/2023138
9.4.1DMA方式的特點(diǎn)與應(yīng)用場(chǎng)合1.DMA方式的特點(diǎn)⑴以響應(yīng)隨機(jī)請(qǐng)求的方式,實(shí)現(xiàn)主存與I/O設(shè)備間的快速數(shù)據(jù)傳送。⑵采用DMA方式控制數(shù)據(jù)傳送時(shí),僅需占用系統(tǒng)總線,不切換程序,不存在保存斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)、恢復(fù)現(xiàn)場(chǎng)、恢復(fù)斷點(diǎn)等操作。因此DMA傳送的插入不影響CPU的程序執(zhí)行狀態(tài),除了訪問主存的沖突外,CPU可以繼續(xù)執(zhí)行自己的程序,提高了CPU的利用率。⑶DMA方式只能處理簡(jiǎn)單的數(shù)據(jù)傳送,難以識(shí)別與處理復(fù)雜的情況。2/4/20231392.DMA方式的應(yīng)用DMA方式一般應(yīng)用于主存與高速I/O設(shè)備間的簡(jiǎn)單數(shù)據(jù)傳送(高速I/O設(shè)備如磁盤、磁帶、光盤等外存儲(chǔ)器),以及其它帶有局部存儲(chǔ)器的外圍設(shè)備、通信設(shè)備等。如:⑴磁盤與主存的成塊數(shù)據(jù)傳送⑵通信設(shè)備的批量數(shù)據(jù)傳送⑶動(dòng)態(tài)存儲(chǔ)器的刷新⑷大批量數(shù)據(jù)采集系統(tǒng)2/4/2023140DMA傳送是直接依靠硬件實(shí)現(xiàn)的,可用于快速的數(shù)據(jù)直傳。但DMA方式本身不能處理復(fù)雜事態(tài)。因此,在某些場(chǎng)合常綜合應(yīng)用DMA方式與程序中斷方式,二者互為補(bǔ)充。典型的例子是磁盤調(diào)用,磁盤讀寫采用DMA方式進(jìn)行數(shù)據(jù)傳送,而對(duì)尋道是否正確的判別處理、批量傳送結(jié)束后的善后處理,則采用程序中斷方式。2/4/20231419.4.2DMA的傳送方式1.CPU停機(jī)方式用CPU停機(jī)方式實(shí)現(xiàn)DMA傳送時(shí),CPU停止工作,讓出對(duì)總線的控制權(quán),而由DMAC接管總線,進(jìn)行數(shù)據(jù)傳送。數(shù)據(jù)傳送結(jié)束后,再將總線交還給CPU。2/4/20231422/4/2023143CPU停機(jī)方式的特點(diǎn)優(yōu)點(diǎn):控制簡(jiǎn)單,比較容易實(shí)現(xiàn),是最常用、最簡(jiǎn)單的一種DMA實(shí)現(xiàn)方式,大部分DMAC都采用這種方式。缺點(diǎn):由于在采用這種方式進(jìn)行的DMA傳送期間,使CPU處于空閑等待狀態(tài),降低了CPU的利用率,并且可能會(huì)影響到某些實(shí)時(shí)性很強(qiáng)的操作,如中斷響應(yīng)和對(duì)動(dòng)態(tài)RAM的刷新等。2/4/20231442.周期挪用(周期竊取)方式當(dāng)I/O設(shè)備無DMA傳送請(qǐng)求時(shí),CPU正常訪問主存。當(dāng)I/O設(shè)備需要使用總線傳送數(shù)據(jù)時(shí),產(chǎn)生DMA請(qǐng)求,DMAC把總線請(qǐng)求發(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í)行總線操作。2/4/2023145周期挪用2/4/2023146采用周期挪用方式時(shí),外設(shè)要求DMA傳送的三種情況:⑴外設(shè)要求DMA傳送時(shí),CPU不需要訪問主存(如CPU正在執(zhí)行乘法指令,由于乘法指令執(zhí)行時(shí)間較長(zhǎng),此時(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è)存取周期再訪存。2/4/2023147周期挪用方式的優(yōu)點(diǎn)與CPU暫停訪存的方式相比,周期挪用方式既實(shí)現(xiàn)了I/O傳送,又較好地發(fā)揮了主存與CPU的效率,是一種廣泛采用的方法。2/4/2023148周期挪用方式的缺點(diǎn)每傳送一個(gè)數(shù)據(jù),DMA都要產(chǎn)生訪問請(qǐng)求,待到CPU響應(yīng)后才能傳送,因此判優(yōu)操作及總線切換操作非常頻繁,其花費(fèi)的時(shí)間開銷較大。往往在傳輸一個(gè)數(shù)據(jù)塊時(shí),需要DMA控制器多次申請(qǐng)使用總線,這影響了DMA的數(shù)據(jù)傳輸速度。2/4/2023149周期挪用方式適用于I/O設(shè)備接口控制器中數(shù)據(jù)緩沖器容量不大的場(chǎng)合,例如在接口控制器中僅設(shè)置一個(gè)數(shù)據(jù)寄存器的情形,對(duì)具有較大容量數(shù)據(jù)緩沖存儲(chǔ)器的高速外設(shè)來說是不合適的。2/4/20231503.DMA與CPU交替訪問內(nèi)存方式
將一個(gè)CPU周期分為兩個(gè)分周期,與DMA分別使用。其中一個(gè)專供DMA訪存,另一個(gè)專供CPU訪存。這種方式不需要總線使用權(quán)的申請(qǐng)建立和歸還過程,總線使用權(quán)是通過不同的周期分別控制的。在這種工作方式下,CPU既不停止主程序的運(yùn)行也不進(jìn)入等待狀態(tài),在CPU不知不覺中完成了DMA的數(shù)據(jù)傳送,故又有“透明的DMA”方式之稱,當(dāng)然周期擴(kuò)展方式會(huì)使CPU的處理速度減慢,其相應(yīng)的硬件邏輯也變得更為復(fù)雜。2/4/20231512/4/20231529.4.3DMA系統(tǒng)的硬件組織
在目前的計(jì)算機(jī)系統(tǒng)中,通常專門設(shè)置了DMA控制器,并且較多采取DMA控制器與DMA接口相分離的方式。1.DMA控制器(DMAC)DMAC負(fù)責(zé)申請(qǐng)、接管總線的控制權(quán)、發(fā)送地址和操作命令以及控制DMA傳送過程的起始與終止。DMA控制器獨(dú)立于具體I/O設(shè)備,可以為多個(gè)設(shè)備通用。2/4/2023153
DMAC的功能①接收外設(shè)的DMA請(qǐng)求,向CPU發(fā)出總線請(qǐng)求信號(hào)。請(qǐng)求CPU讓出總線。②當(dāng)CPU發(fā)出DMA響應(yīng)信號(hào)之后,接管對(duì)總線的控制,進(jìn)入DMA方式。③對(duì)存儲(chǔ)器尋址,輸出和修改地址信息。④向存儲(chǔ)器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號(hào)。⑤控制傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。⑥在DMA傳送結(jié)束以后,向CPU發(fā)出結(jié)束DMA請(qǐng)求信號(hào),釋放總線,使CPU恢復(fù)對(duì)總線的控制,繼續(xù)正常工作。2/4/20231542.DMA接口用于實(shí)現(xiàn)與設(shè)備的連接和數(shù)據(jù)緩沖,反映設(shè)備的特定要求。2/4/20231559.4.4DMA控制器的組成1.DMAC的基本組成為了實(shí)現(xiàn)DMAC的功能,DMAC內(nèi)部除需要有接受和發(fā)送DMA請(qǐng)求和響應(yīng)信號(hào)的能力外,還應(yīng)具有地址寄存和計(jì)數(shù)功能,以便控制對(duì)存儲(chǔ)器的尋址;具有傳輸量計(jì)數(shù)器,能夠?qū)魉偷臄?shù)據(jù)個(gè)數(shù)進(jìn)行計(jì)數(shù)。2/4/2023156DMAC的基本組成2/4/2023157(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)。2/4/2023158(3)數(shù)據(jù)緩沖寄存器DBR用于暫存每次傳送的數(shù)據(jù)。通常DMA接口與主存之間采用字傳送,而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ù)格式和編址方式。2/4/2023159(5)控制/狀態(tài)寄存器
CSR存放有關(guān)控制和狀態(tài)信息,如傳送方式、讀/寫狀態(tài)、傳送完畢與否等。也可使用多個(gè)寄存器,分別存放控制字和狀態(tài)字。(6)DMA控制邏輯DMA控制邏輯負(fù)責(zé)完成DMA的預(yù)處理(初始化各類寄存器)、接收設(shè)備控制器送來的DMA請(qǐng)求信號(hào)、向設(shè)備控制器回答DMA允許(應(yīng)答)信號(hào)、向系統(tǒng)申請(qǐng)總線以及控制總線實(shí)現(xiàn)DMA傳輸控制等工作。2/4/2023160(7)DMA中斷控制邏輯DMA中斷控制邏輯負(fù)責(zé)在DMA操作完成后向CPU發(fā)出中斷請(qǐng)求,申請(qǐng)CPU對(duì)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)中不同的中斷事件。2/4/2023161(8)數(shù)據(jù)線、地址線和控制信號(hào)線
DMA控制器中設(shè)置了與主機(jī)和I/O設(shè)備兩個(gè)方向的數(shù)據(jù)線、地址線和控制信號(hào)線以及有關(guān)收發(fā)與驅(qū)動(dòng)電路。
2/4/20231629.4.5DMA控制方式下的數(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ù)。2/4/2023163預(yù)處理工作由CPU執(zhí)行幾條輸入輸出指令完成,稱為初始化工作。初始化工作完成后,CPU繼續(xù)執(zhí)行原來的程序。當(dāng)外部設(shè)備準(zhǔn)備好發(fā)送的數(shù)據(jù)(輸入)或上次接受的數(shù)據(jù)已經(jīng)處理完畢(輸出)時(shí),它便通過DMA接口向CPU提出占用總線的申請(qǐng),若有多個(gè)DMA同時(shí)申請(qǐng),則按輕重緩急由硬件排隊(duì)判優(yōu)邏輯決定優(yōu)先等級(jí)。待設(shè)備得到主存總線的控制權(quán)后,數(shù)據(jù)的傳送便由該DMAC進(jìn)行管理。2/4/20231642.?dāng)?shù)據(jù)交換操作
DMAC獲得總線后,即可按規(guī)定的傳送方式,進(jìn)行數(shù)據(jù)的輸入或輸出操作,直到將所有數(shù)據(jù)傳輸完畢,DMAC將總線交還給CPU。需要時(shí)還向CPU發(fā)出中斷請(qǐng)求。2/4/2023165CPU響應(yīng)中斷后,為DMA傳送作結(jié)束處理工作。①校驗(yàn)送入主存的數(shù)據(jù)是否正確②決定是否繼續(xù)用DMA方式傳送,還是結(jié)束傳送③測(cè)試在傳送過程中是否發(fā)生了錯(cuò)誤④判斷傳送工作是否正常結(jié)束3.DMA后處理2/4/20231662/4/20231672/4/2023168例:DMA數(shù)據(jù)輸入過程(DMA寫)①?gòu)脑O(shè)備讀入一個(gè)字到DMA的數(shù)據(jù)緩沖寄存器DBR中,表示數(shù)據(jù)緩沖寄存器“滿”;②外設(shè)向DMAC發(fā)請(qǐng)求(DREQ);③DMAC向CPU申請(qǐng)總線控制權(quán)(HRQ);④CPU發(fā)回HLDA信號(hào),表示允許將總線控制權(quán)交給DMAC;⑤將DMA主存地址寄存器中的主存地址送地址總線;⑥通知設(shè)備已被授予一個(gè)DMA周期(DACK),并為交換下一個(gè)字做準(zhǔn)備;2/4/2023169⑦將DMA數(shù)據(jù)緩沖寄存器的內(nèi)容送數(shù)據(jù)總線;⑧向存儲(chǔ)器發(fā)寫命令:⑨修改主存地址和字計(jì)數(shù)值;⑩判斷數(shù)據(jù)塊是否傳送結(jié)束,若未結(jié)束,則繼續(xù)傳送;若已結(jié)束,(字計(jì)數(shù)器計(jì)數(shù)為0),則向CPU申請(qǐng)程序中斷,標(biāo)志數(shù)據(jù)塊傳送結(jié)束。2/4/2023170例:DMA數(shù)據(jù)輸出過程(DMA讀)①當(dāng)DMA數(shù)據(jù)緩沖寄存器已將輸出數(shù)據(jù)送至I/O設(shè)備后,表示數(shù)據(jù)緩沖寄存器已“空”;②外設(shè)向DMAC發(fā)請(qǐng)求(DREQ);③DMAC向CPU申請(qǐng)總線控制權(quán)(HRQ);④CPU發(fā)回HLDA信號(hào),表示允許將總線控制權(quán)交給DMAC使用;⑤將DMA主存地址寄存器中的主存地址送地址總線,并發(fā)存儲(chǔ)器讀命令;⑥通知設(shè)備已被授予一個(gè)DMA周期(DACK),并為交換下一個(gè)字做準(zhǔn)備:2/4/2023171⑦主存將相應(yīng)地址單元的內(nèi)容通過數(shù)據(jù)總線讀入到DMA的數(shù)據(jù)緩沖寄存器中;⑧將DMA數(shù)據(jù)緩沖寄存器的內(nèi)容送到輸出設(shè)備;⑨修改主存地址和字計(jì)數(shù)值:⑩判斷數(shù)據(jù)塊是否已傳送完畢,若未完,繼續(xù)傳送;若已送完,則向CPU申請(qǐng)程序中斷。2/4/2023172DMA方式與程序中斷的比較程序中斷DMA方式以CPU為中心,采用軟硬結(jié)合,以軟件為主的方式,控制設(shè)備與主機(jī)之間的數(shù)據(jù)傳送。以主存為中心,采用硬件手段,控制設(shè)備與主存間直接進(jìn)行數(shù)據(jù)傳送。因?yàn)樾枰绦蚯袚Q,所以需要保護(hù)與恢復(fù)現(xiàn)場(chǎng)。由DMA控制器直接控制數(shù)據(jù)傳送。在數(shù)據(jù)傳送期間,不需要CPU干預(yù),不需保護(hù)與恢復(fù)現(xiàn)場(chǎng)。適合于慢速外設(shè)。適合于快速外設(shè)。必須在一條指令執(zhí)行結(jié)束后才能響應(yīng)。在一個(gè)訪存周期結(jié)束后即可響應(yīng)??蓪?shí)現(xiàn)多種處理功能僅用于數(shù)據(jù)傳送2/4/2023173總結(jié)直接程序控制(無條件傳送和查詢式傳送):外設(shè)與主機(jī)工作完全串行。程序中斷:外設(shè)與主機(jī)工作大部分并行。DMA方式:外設(shè)與主機(jī)工作幾乎完全并行,系統(tǒng)開銷很小。隨著I/O系統(tǒng)的日益復(fù)雜,僅靠中斷和DMA方式已不能滿足要求。因?yàn)槌绦蛑袛嗟南到y(tǒng)開銷較大;DMAC可帶的設(shè)備少,功能簡(jiǎn)單,且系統(tǒng)中多個(gè)DMAC容易造成訪存沖突,所以又出現(xiàn)了通道和I/O處理機(jī)方式,從而可以更好地控制I/O系統(tǒng)的工作。2/4/20231749.5I/O通道方式
9.5.1概述
在計(jì)算機(jī)系統(tǒng)中,通道作為一個(gè)獨(dú)立的I/O控制部件,能執(zhí)行有限的I/O通道指令,代替CPU管理和控制外設(shè)。通道使主機(jī)與I/O設(shè)備之間能夠達(dá)到更高的并行程度。通道能夠被多臺(tái)外圍設(shè)備共享。I/O通道的任務(wù)控制、管理輸入/輸出操作,為I/O設(shè)備提供傳送數(shù)據(jù)的通道。2/4/20231751.I/O通道的特點(diǎn)⑴I/O通道有自己的指令系統(tǒng),能夠獨(dú)立執(zhí)行用通道命令編寫的輸入輸出控制程序,控制設(shè)備工作。⑵I/O通道可根據(jù)需要控制多種不同的設(shè)備。⑶每個(gè)I/O通道可以連接多個(gè)外部設(shè)備,每個(gè)外設(shè)對(duì)應(yīng)一個(gè)子通道。⑷I/O通道通過系統(tǒng)中的數(shù)據(jù)通路與設(shè)備的控制器進(jìn)行通信。2/4/20231762.I/O通道與DMA方式的異同⑴相同點(diǎn)I/O通道與DMA方式都是在主存與I/O設(shè)備之間建立數(shù)據(jù)通路,用專用的控制器控制數(shù)據(jù)的直接傳送。⑵不同點(diǎn)DMA方式通過硬件控制主存與設(shè)備之間的信息傳送。I/O通道通過執(zhí)行通道程序控制主存與設(shè)備之間的信息傳送。DMA方式只能控制少量的同類設(shè)備,只能傳送數(shù)據(jù)。I/O通道可控制多種不同的設(shè)備,除傳送數(shù)據(jù)外,還可以完成接口的初始化、故障診斷與處理等工作。2/4/20231773.I/O通道與程序中斷方式的異同⑴相同點(diǎn)I/O通道與程序中斷方式都是通過執(zhí)行程序去管理I/O操作,因而靈活性較強(qiáng),都可以通過擴(kuò)展程序的功能來擴(kuò)展處理能力。⑵不同點(diǎn)程序中斷方式在數(shù)據(jù)傳輸時(shí)需要CPU執(zhí)行程序控制數(shù)據(jù)的傳輸,要占用CPU的時(shí)間;I/O通道在被CPU啟動(dòng)后,由通道執(zhí)行程序控制數(shù)據(jù)傳輸,使CPU可以從大部分I/O管理中解脫出來。2/4/20231784.帶有I/O通道的I/O系統(tǒng)結(jié)構(gòu)主機(jī)—通道—設(shè)備控制器—設(shè)備四級(jí)連接方式。
2/4/2023179⑴CPU的任務(wù)執(zhí)行I/O指令。啟動(dòng)/關(guān)閉通道與設(shè)備。處理來自通道的中斷,如數(shù)據(jù)傳輸中斷、故障中斷等。通道執(zhí)行的通道程序由操作系統(tǒng)提供。2/4/2023180⑵I/O通道的任務(wù)①接受CPU發(fā)來的I/O指令,與指定的設(shè)備連接,訪問指定的設(shè)備。②執(zhí)行CPU為通道組織的通道程序。從通道緩沖區(qū)中讀取通道指令,經(jīng)譯碼分析,向指定的設(shè)備控制器或設(shè)備發(fā)出各種操作控制命令。③組織和控制數(shù)據(jù)在內(nèi)存與外設(shè)之間的信息傳送操作。根據(jù)需要提供數(shù)據(jù)緩存空間以及數(shù)據(jù)存入內(nèi)存或從內(nèi)存中讀取的地址;提供外設(shè)的有關(guān)地址;控制傳送的數(shù)據(jù)量;指定傳送工作結(jié)束時(shí)要進(jìn)行的操作,根據(jù)對(duì)傳送數(shù)據(jù)的計(jì)數(shù)判斷數(shù)據(jù)傳送工作是否結(jié)束。2/4/2023181④在數(shù)據(jù)傳輸過程中完成必要的格式變換,例如,把字拆卸為字節(jié),或者把字節(jié)裝配成字等。⑤讀取和接收外設(shè)的狀態(tài)信息,檢查外圍設(shè)備的工作狀態(tài)是正常還是故障,形成通道狀態(tài)信息,并根據(jù)需要將設(shè)備的狀態(tài)信息送往主存指定單元保存。⑥向CPU發(fā)出I/O中斷請(qǐng)求。對(duì)來自外設(shè)及通道的中斷請(qǐng)求按優(yōu)先次序進(jìn)行排隊(duì)后報(bào)告CPU。通道使用通道指令控制設(shè)備進(jìn)行數(shù)據(jù)傳送操作,并以通道狀態(tài)字的形式接收設(shè)備控制器提供的外部設(shè)備的狀態(tài)。2/4/2023182⑶設(shè)備控制器的任務(wù)①?gòu)耐ǖ澜邮芡ǖ乐噶睿刂仆獠吭O(shè)備完成指定的操作。如控制外設(shè)的啟/停,向設(shè)備發(fā)出各種設(shè)備專有的控制信號(hào)等。②向通道提供外部設(shè)備的狀態(tài)。如設(shè)備的忙、閑、出錯(cuò)信息等。③將各種外部設(shè)備的不同信號(hào)轉(zhuǎn)換成通道能夠識(shí)別的標(biāo)準(zhǔn)信號(hào)。④控制輔助操作。如磁帶的進(jìn)帶、倒帶等操作。2/4/20231839.5.2通道的類型根據(jù)多臺(tái)外設(shè)共享通道的不同情況,可將通道分為三種類型。1.字節(jié)多路通道字節(jié)多路通道是一種簡(jiǎn)單的共享通道,可以依靠通道與CPU之間的高速數(shù)據(jù)通路分時(shí)地為多臺(tái)設(shè)備服務(wù)。在字節(jié)多路通道中,一個(gè)通道含有多個(gè)子通道,使用公共的控制部分。每個(gè)子通道連接一個(gè)設(shè)備控制器,一個(gè)設(shè)備控制器可連接多臺(tái)設(shè)備,設(shè)備可以采用字節(jié)交叉模式分時(shí)交替地使用通道進(jìn)行數(shù)據(jù)傳送。2/4/2023184字節(jié)交叉模式:連接在通道上的各個(gè)設(shè)備輪流占用一個(gè)很短的時(shí)間片傳輸一個(gè)字節(jié)。字節(jié)多路通道要求每種設(shè)備分時(shí)占用通道一個(gè)很短的時(shí)間段,不同的設(shè)備在各自分得的時(shí)間段內(nèi)與通道建立傳輸連接,實(shí)現(xiàn)數(shù)據(jù)的傳送。
2/4/2023185字節(jié)多路通道的結(jié)構(gòu)2/4/2023186字節(jié)多路通道的信息傳送方式A1A2A3A4A5A6B1B2B3B4B5B6C1C2C3C4C5C6通道控制A1B1C1A2B2C2Ai、Bi、Ci分別為傳送的字節(jié)信息2/4/20231872.選擇通道選擇通道只有一套完整的硬件,以獨(dú)占的方式工作,逐個(gè)輪流地為物理上連接的幾臺(tái)高速外設(shè)服務(wù)。選擇通道在一段時(shí)間內(nèi)單獨(dú)為一臺(tái)外設(shè)服務(wù),但在不同的時(shí)間內(nèi)可以選擇不同的設(shè)備。選擇通道一旦選中某一設(shè)備,通道就進(jìn)入“忙”狀態(tài)直到該設(shè)備的數(shù)據(jù)傳輸工作全部結(jié)束為止。選擇通道傳送的數(shù)據(jù)寬度是可變的,它為一臺(tái)外設(shè)傳送完數(shù)據(jù)后才轉(zhuǎn)去處理其他外設(shè)。2/4/2023188選擇通道的結(jié)構(gòu)2/4/2023189選擇通道的信息傳送方式A1A2A3…An通道A1…AnB1…BnC1…CnB1B2B3…BnC1C2C3…CnA1…An、B1…Bn、
C1…Cn分別為成組數(shù)據(jù)2/4/20231903.?dāng)?shù)組多路通道數(shù)組多路通道將字節(jié)多路通道和選擇通道的特性結(jié)合起來。一個(gè)通道可帶有多個(gè)子通道,各子通道以成組交叉模式輪流使用通道。成組交叉模式:利用通道
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《FTTH入戶施工》課件
- 《薄膜論壇報(bào)告》課件
- 工傷免責(zé)合同
- 鐵路系統(tǒng) 單一采購(gòu) 合同模板
- 工程內(nèi)部聯(lián)營(yíng)合同要注意哪些問題
- 《骨科康復(fù)護(hù)理》課件
- 2025年南寧b2貨運(yùn)資格證模擬考試
- 體育園區(qū)施工合同
- 圖書館幕墻安裝施工協(xié)議
- 鋼鐵廠新司機(jī)招聘模板
- 2024-2025學(xué)年上學(xué)期廣州初中地理七年級(jí)期末模擬卷1
- 八年級(jí)地理期末模擬卷(考試版A4)【測(cè)試范圍:晉教版八上全冊(cè)】
- 隧道爆破施工合同
- 護(hù)理亮點(diǎn)工作展示
- 2024年河南省中考物理試題解析版
- 期末綜合試卷(含答案)2024-2025學(xué)年蘇教版數(shù)學(xué)四年級(jí)上冊(cè)
- 《營(yíng)銷管理與分析》課件
- 挖機(jī)承包土地開挖合同2024年
- 2024個(gè)稅內(nèi)部培訓(xùn)
- 辦公樓外立面玻璃更換施工方案
- 出生醫(yī)學(xué)證明警示教育培訓(xùn)
評(píng)論
0/150
提交評(píng)論