系統(tǒng)組織課件_第1頁
系統(tǒng)組織課件_第2頁
系統(tǒng)組織課件_第3頁
系統(tǒng)組織課件_第4頁
系統(tǒng)組織課件_第5頁
已閱讀5頁,還剩419頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章I/O系統(tǒng)組織12/20/20221

?2011第7版第9章I/O系統(tǒng)組織12/17/20221?20本章學(xué)習(xí)內(nèi)容I/O系統(tǒng)的功能接口的功能中斷的基本概念DMA的基本概念通道的基本概念12/20/20222本章學(xué)習(xí)內(nèi)容I/O系統(tǒng)的功能12/17/202229.1I/O系統(tǒng)概述I/O系統(tǒng)的基本功能①為數(shù)據(jù)傳輸操作選擇輸入/輸出設(shè)備。②控制被選的輸入/輸出設(shè)備與主機(jī)之間的信息交換。12/20/202239.1I/O系統(tǒng)概述I/O系統(tǒng)的基本功能12/17/202I/O系統(tǒng)需解決的主要問題解決主機(jī)與外部設(shè)備間的信息通訊問題,提供主機(jī)與外設(shè)間的信息通路,使外圍設(shè)備與主機(jī)能夠協(xié)調(diào)一致地工作。①使處理機(jī)與外部設(shè)備在數(shù)據(jù)處理的速度上能夠相互匹配。

解決方法:緩沖技術(shù)②使處理機(jī)與外部設(shè)備能夠并行工作,以提高整個計(jì)算機(jī)系統(tǒng)的工作效率。

解決方法:減少處理機(jī)對外部設(shè)備的直接控制,乃至處理機(jī)不再干預(yù)外部設(shè)備的控制,而交由專門的硬件裝置去實(shí)現(xiàn)對外部設(shè)備的管理與監(jiān)督。12/20/20224I/O系統(tǒng)需解決的主要問題解決主機(jī)與外部設(shè)備間的信息通訊問題9.1.2I/O系統(tǒng)的組成典型計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組成:系統(tǒng)總線、I/O設(shè)備接口控制器、I/O設(shè)備、相關(guān)控制軟件。12/20/202259.1.2I/O系統(tǒng)的組成典型計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組現(xiàn)代計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組成:擴(kuò)展總線、I/O設(shè)備接口控制器、I/O設(shè)備、相關(guān)控制軟件。12/20/20226現(xiàn)代計(jì)算機(jī)系統(tǒng)中I/O系統(tǒng)的組成:12/17/20226擴(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)的信號,而具體的I/O設(shè)備設(shè)置的是專用的控制信號,因此需要I/O接口控制器進(jìn)行信號的轉(zhuǎn)換。12/20/20227擴(kuò)展總線及I/O接口控制器的作用:12/17/20227I/O設(shè)備控制接口的發(fā)展趨勢在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,許多I/O設(shè)備的控制器中(比如磁盤控制器、激光打印機(jī))往往會采用專用的微處理器對有關(guān)設(shè)備進(jìn)行控制,使用相應(yīng)的設(shè)備控制程序。因此傳統(tǒng)的單純由硬件電路實(shí)現(xiàn)的I/O設(shè)備控制接口,逐漸演變?yōu)橛绍?、硬件相互配合的I/O設(shè)備控制接口。12/20/20228I/O設(shè)備控制接口的發(fā)展趨勢12/17/202289.1.3主機(jī)與外設(shè)間的連接方式與組織管理主機(jī)與外圍設(shè)備的連接方式大致可分為:總線方式通道方式I/O處理機(jī)方式(IOP方式)12/20/202299.1.3主機(jī)與外設(shè)間的連接方式與組織管理主機(jī)與外圍設(shè)1.總線型連接方式CPU通過系統(tǒng)總線與主存儲器,I/O控制器,I/O接口電路相連接,通過I/O接口電路進(jìn)一步實(shí)現(xiàn)對外設(shè)的控制。系統(tǒng)總線包括地址總線,數(shù)據(jù)總線和控制總線,分別用于傳送地址信號,數(shù)據(jù)信號和控制信號(如讀/寫信號、中斷申請及應(yīng)答信號等)。12/20/2022101.總線型連接方式CPU通過系統(tǒng)總線與主存儲器,I/O控制器12/20/20221112/17/202211總線型連接方式的優(yōu)點(diǎn):系統(tǒng)模塊化程度較高,I/O接口擴(kuò)充方便??偩€型連接方式的缺點(diǎn):系統(tǒng)中部件之間的信息交換,均依賴于總線,總線成為系統(tǒng)中的速度瓶頸,因而不適于系統(tǒng)需配備有大量外設(shè)的場合。實(shí)際設(shè)備中,一種I/O接口適配器也可以控制多臺I/O設(shè)備,如多用戶卡。一塊多用戶I/O適配器,可以控制多臺終端的工作,這種方式稱之為現(xiàn)代星型I/O設(shè)備的連接方式。12/20/202212總線型連接方式的優(yōu)點(diǎn):12/17/202212多用戶接口適配器終端終端…總線12/20/202213多用戶接口適配器終端終端…總線12/17/2022132.通道控制連接方式通道控制方式由通道控制器執(zhí)行專門的通道程序,通過I/O總線控制接口與外設(shè)。通道控制連接方式主要用于連接外設(shè)數(shù)量多,外設(shè)類型多,外設(shè)速度差異大的大型主機(jī)系統(tǒng)。12/20/2022142.通道控制連接方式通道控制方式12/17/20221412/20/20221512/17/202215通道控制器是專門負(fù)責(zé)I/O操作的控制器,它執(zhí)行一種專門的通道程序,可與CPU并行工作。通道控制器通過執(zhí)行通道程序或采用DMA方式實(shí)現(xiàn)存儲器與外部設(shè)備之間的直接數(shù)據(jù)傳輸,減少CPU對I/O處理工作的控制。通道控制器12/20/202216通道控制器是專門負(fù)責(zé)I/O操作的控制器,它執(zhí)行一種專門的通道從連接角度看,主機(jī)一般通過單獨(dú)的數(shù)據(jù)通路分別連接數(shù)目有限的通道,各通道再通過I/O總線連接I/O接口,再與外設(shè)連接。通道的四級連接方式:主機(jī)→通道→I/O接口(設(shè)備控制器)→外設(shè)12/20/202217從連接角度看,主機(jī)一般通過單獨(dú)的數(shù)據(jù)通路分別連接數(shù)目有限的通通道的四級連接方式12/20/202218通道的四級連接方式12/17/2022183.I/O處理機(jī)控制連接方式(IOP方式)I/O處理機(jī)(IOP)一種具有比I/O通道更強(qiáng)獨(dú)立性的專用CPU。IOP有自己的指令系統(tǒng),可編程控制,適應(yīng)性強(qiáng)、通用性好。其程序的執(zhí)行可與CPU并行,可使CPU徹底擺脫對I/O的控制處理。IOP可大可小,大的如在巨型機(jī)系統(tǒng)中,IOP可為一臺通用的小型機(jī)或中型計(jì)算機(jī),稱為前端處理機(jī);小的則為一塊大規(guī)模集成電路芯片,如Intel公司為其微處理器(CPU)8086配套的IOP—8089。12/20/2022193.I/O處理機(jī)控制連接方式(IOP方式)I/O處理機(jī)(IO9.1.4I/O信息傳送的控制方式I/O數(shù)據(jù)傳送控制方式也稱I/O信息交換方式。I/O數(shù)據(jù)傳送控制方式與主機(jī)和外設(shè)之間的連接方式有很大的關(guān)系,各種方式有不同的適用對象和應(yīng)用場合,需要相應(yīng)的硬件來支持。

12/20/2022209.1.4I/O信息傳送的控制方式I/O數(shù)據(jù)傳送控制方式按I/O控制組織的演變順序和外設(shè)與主機(jī)并行工作程度以及數(shù)據(jù)傳送的控制方式,對I/O數(shù)據(jù)傳送控制分類如下:直接程序控制方式:

程序中斷方式:

DMA方式:通道方式I/O處理機(jī)方式由專有硬件控制的數(shù)據(jù)傳送由程序控制的數(shù)據(jù)傳送采用輔助硬件實(shí)現(xiàn)適合快速外設(shè)快、慢設(shè)備均適用適合于大、中型機(jī)適合慢速外設(shè)適合于小微型機(jī)12/20/202221按I/O控制組織的演變順序和外設(shè)與主機(jī)并行工作程度以及數(shù)據(jù)傳(1)由程序控制的數(shù)據(jù)傳送這種控制方式是指在主機(jī)和設(shè)備之間的I/O數(shù)據(jù)傳送,需要通過處理機(jī)執(zhí)行具體的I/O指令來完成。即由處理機(jī)執(zhí)行所謂的I/O程序,實(shí)現(xiàn)對整個I/O數(shù)據(jù)傳送過程的全程監(jiān)督與管理。程序控制方式一般在總線型連接方式中采用。由程序控制的數(shù)據(jù)傳送可進(jìn)一步分為直接程序控制方式和程序中斷傳送方式。

12/20/202222(1)由程序控制的數(shù)據(jù)傳送這種控制方式是指在主機(jī)和設(shè)備之間的(2)由專有硬件控制的數(shù)據(jù)傳送這種控制方式需要在系統(tǒng)中設(shè)置專門用于控制I/O數(shù)據(jù)傳輸?shù)挠布b置,處理機(jī)只要啟動這些裝置,就會在它們的控制下完成I/O數(shù)據(jù)傳輸,因此具體的I/O數(shù)據(jù)傳輸過程無需處理機(jī)的控制。由專有硬件控制的數(shù)據(jù)傳送可具體分為:直接存儲器存取(DMA)方式通道控制方式I/O處理機(jī)控制方式12/20/202223(2)由專有硬件控制的數(shù)據(jù)傳送這種控制方式需要在系統(tǒng)中設(shè)置專9.2I/O接口接口:通常指設(shè)備(硬件)之間的界面。I/O接口:主機(jī)(系統(tǒng)總線)與外部設(shè)備或其它外部系統(tǒng)之間的接口邏輯。12/20/2022249.2I/O接口接口:通常指設(shè)備(硬件)之間的界面。129.2.1I/O接口的基本功能⑴實(shí)現(xiàn)數(shù)據(jù)的傳送、緩沖、隔離和鎖存。⑵實(shí)現(xiàn)信號形式和數(shù)據(jù)格式轉(zhuǎn)換。⑶控制主機(jī)與外設(shè)之間的通信聯(lián)絡(luò),實(shí)現(xiàn)控制命令和狀態(tài)信息的交換,保證時序協(xié)調(diào)。⑷尋址,即識別設(shè)備地址,選擇指定的設(shè)備和I/O端口。12/20/2022259.2.1I/O接口的基本功能⑴實(shí)現(xiàn)數(shù)據(jù)的傳送、緩沖、隔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è)。12/20/202226CPU和外設(shè)之間傳送的信息⑴數(shù)據(jù)信息12/17/20222③

開關(guān)量開關(guān)量有兩個狀態(tài):如開關(guān)的閉合和斷開、設(shè)備的啟動和停止等,可以“0”和“1”表示。12/20/202227③開關(guān)量12/17/202227⑵狀態(tài)信息狀態(tài)信息就是反映當(dāng)前外設(shè)所處的工作狀態(tài)的信息。在與外設(shè)進(jìn)行數(shù)據(jù)信息的交換時,CPU需要通過狀態(tài)信息了解外設(shè)的工作狀態(tài)。通常外設(shè)用準(zhǔn)備好(READY)信號來表明是否準(zhǔn)備就緒;用忙(BUSY)信號表示是否處于空閑狀態(tài)。例如,當(dāng)輸入設(shè)備準(zhǔn)備好向系統(tǒng)輸入的數(shù)據(jù)信息時,就用READY信號通知CPU讀入數(shù)據(jù);輸出設(shè)備只有處于空閑狀態(tài)(不忙)時,才可以接收CPU送來的信息。外設(shè)的狀態(tài)信息通過接口送往CPU。

12/20/202228⑵狀態(tài)信息12/17/202228⑶控制信息在外設(shè)的工作過程中,CPU需要通過控制信息控制外設(shè)的工作,如對外設(shè)的啟動和停止等。不同外設(shè)所需的控制信息各不相同,因此CPU需要通過接口將控制信息傳送給外設(shè)。12/20/202229⑶控制信息12/17/202229I/O信息的傳送數(shù)據(jù)信息、狀態(tài)信息和控制信息各不相同,應(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ū)懙募拇嫫鳌?2/20/202230I/O信息的傳送數(shù)據(jù)信息、狀態(tài)信息和控制信息各不相同,應(yīng)該分I/O端口的尋址方式對I/O設(shè)備的尋址實(shí)質(zhì)上就是對I/O端口的尋址。⑴

I/O端口與主存統(tǒng)一編址將一個I/O端口作為存儲器中的一個單元對待,每一個I/O端口占用一個存儲器單元地址。編址時將I/O端口與存儲器單元一起進(jìn)行編址。又稱為存儲器對應(yīng)的輸入輸出方式或存儲器映象編址方式。12/20/202231I/O端口的尋址方式對I/O設(shè)備的尋址實(shí)質(zhì)上就是對I/O端I/O端口與主存統(tǒng)一編址內(nèi)存I/O端口內(nèi)存12/20/202232I/O端口與主存統(tǒng)一編址內(nèi)存I/O端口內(nèi)存12/17/202I/O端口與主存統(tǒng)一編址方式的優(yōu)點(diǎn):①CPU可使用所有存儲器操作指令對I/O端口中數(shù)據(jù)進(jìn)行操作,十分靈活和方便。②不需要用專門的指令及控制信號區(qū)分是存儲器還是I/O操作。使得系統(tǒng)相對簡單。I/O端口與主存統(tǒng)一編址方式存在的缺點(diǎn):①I/O端口占用了內(nèi)存單元的部分地址空間,使內(nèi)存容量減小。②由于在程序中不易分清指令訪問的是存儲器還是I/O端口,所以采用這種方式編制的程序不易閱讀。12/20/202233I/O端口與主存統(tǒng)一編址方式的優(yōu)點(diǎn):12/17/202233⑵I/O端口獨(dú)立編址將I/O端口與存儲器單元分別獨(dú)立進(jìn)行編址,CPU訪問外設(shè)時,需使用專門的I/O指令,并需要有與接口電路聯(lián)系的單獨(dú)的控制信號。也稱為I/O端口尋址輸入輸出方式。存儲器I/O端口FFFFH0000HFFFH000H12/20/202234⑵I/O端口獨(dú)立編址存儲器I/O端口FFFFH0000HFIBMPC中I/O地址的分配

輸入/輸出設(shè)備占用地址數(shù)地址(16進(jìn)制)硬盤控制器16320~32F軟盤控制器83F0~3F7彩色圖形顯示適配器163D0~3DF異步通訊控制器83F8~3FF12/20/202235IBMPC中I/O地址的分配輸入/輸出設(shè)備占用地址數(shù)地I/O端口獨(dú)立編址方式的優(yōu)點(diǎn):①I/O端口具有獨(dú)立的地址空間,不占用內(nèi)存空間。②I/O指令中的地址字段的長度較短,可以節(jié)省指令存儲空間和指令執(zhí)行時間。③由于訪問存儲器和訪問I/O端口使用不同的指令,因此編制的程序比較清晰易讀。I/O端口獨(dú)立編址方式的缺點(diǎn):I/O操作指令的種類通常沒有存儲器操作指令豐富,設(shè)計(jì)程序時不夠方便。12/20/202236I/O端口獨(dú)立編址方式的優(yōu)點(diǎn):12/17/2022369.2.2接口的基本組成12/20/2022379.2.2接口的基本組成12/17/202237⑴設(shè)備選擇電路用于接收總線傳來的地址信息,經(jīng)譯碼后,決定選擇哪個設(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控制邏輯以及各類特殊部件。12/20/202238⑴設(shè)備選擇電路12/17/2022389.2.3I/O接口的分類1.按數(shù)據(jù)傳送格式分串行接口:接口與設(shè)備之間的信息傳送是逐位串行進(jìn)行的。并行接口:接口與設(shè)備之間的信息傳送是將一個字或一個字節(jié)的所有位同時并行地進(jìn)行傳送的。12/20/2022399.2.3I/O接口的分類1.按數(shù)據(jù)傳送格式分12/112/20/20224012/17/202240主機(jī)串行接口外設(shè)TxDRxDDn-1~0主機(jī)并行接口外設(shè)Dn-1~0I/On-1~012/20/202241主機(jī)串行接口外設(shè)TxDRxDDn-1~0主機(jī)并行接口外設(shè)Dn2.按時序的控制方式分同步接口:一般與同步總線相連,接口與總線采用統(tǒng)一時鐘信號,無論CPU與I/O設(shè)備,還是存儲器與I/O設(shè)備交換信息,都與總線同步時鐘脈沖同步。異步接口:與異步總線相連,接口與系統(tǒng)總線之間采用異步應(yīng)答方式。12/20/2022422.按時序的控制方式分12/17/2022423.按信息傳送交換的控制方式分程序控制I/O接口:采用直接程序控制方式進(jìn)行信息交換的接口。程序中斷I/O接口:主機(jī)與外設(shè)以程序中斷方式進(jìn)行信息交換控制的接口。直接存儲器存取I/O接口:以直接存儲器存取(DMA)方式控制信息傳送的接口。12/20/2022433.按信息傳送交換的控制方式分12/17/202243程序控制方式的特點(diǎn):數(shù)據(jù)傳輸操作通過在處理機(jī)上執(zhí)行的I/O指令來實(shí)現(xiàn)。程序控制方式下數(shù)據(jù)傳輸?shù)倪^程:⑴輸入數(shù)據(jù)①CPU執(zhí)行I/O輸入指令,啟動輸入操作總線周期,將I/O接口數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)取到CPU中的累加器中。②CPU執(zhí)行寫存儲器指令,啟動寫存儲器總線周期,將累加器中存放的輸入數(shù)據(jù)寫到內(nèi)存某個單元中。9.3程序控制方式12/20/202244程序控制方式的特點(diǎn):9.3程序控制方式12/17/202⑵輸出數(shù)據(jù)①CPU執(zhí)行讀存儲器指令,啟動讀存儲器總線周期,將內(nèi)存某個單元中存放的待輸出數(shù)據(jù)取到CPU的累加器中。②CPU執(zhí)行I/O輸出指令,啟動輸出操作總線周期,將累加器中存放的待輸出數(shù)據(jù)寫到設(shè)備接口的數(shù)據(jù)緩沖寄存器中。在程序控制方式下,內(nèi)存與外設(shè)交換一個數(shù)據(jù)需要使用兩次總線,即需要執(zhí)行一個訪問存儲單元的總線周期和一個訪問I/O的總線周期。

12/20/202245⑵輸出數(shù)據(jù)12/17/2022459.3.1直接程序控制方式

直接程序控制方式完全通過程序來控制主機(jī)與外設(shè)之間信息傳送。通常是在用戶程序中安排一段由I/O指令和其它指令組成的I/O程序,通過執(zhí)行I/O程序?qū)崿F(xiàn)對外設(shè)的直接控制。12/20/2022469.3.1直接程序控制方式直接程序控制方式完全通過程序來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操作時間固定且已知的情況下。12/20/2022471.直接數(shù)據(jù)傳送方式CPU在控制與外設(shè)之間的數(shù)據(jù)傳送之前,next: movdx,8000h ;DX指向數(shù)據(jù)端口 inal,dx ;從輸入端口讀開關(guān)狀態(tài) notal ;反相 outdx,al ;送輸出端口顯示 calldelay ;調(diào)子程序延時 jmpnext ;重復(fù)12/20/202248next: movdx,8000h ;DX指向2.程序查詢數(shù)據(jù)傳送控制方式CPU在進(jìn)行輸入/輸出操作之前,先查詢外設(shè)的狀態(tài),只有當(dāng)外設(shè)準(zhǔn)備就緒時,才進(jìn)行數(shù)據(jù)傳送。也稱為條件傳送方式。當(dāng)有關(guān)操作的時間未知或不定時,往往采用程序查詢方式進(jìn)行同步控制。12/20/2022492.程序查詢數(shù)據(jù)傳送控制方式CPU在進(jìn)行輸入/輸出操作之程序查詢方式I/0程序的操作步驟12/20/202250程序查詢方式I/0程序的操作步驟12/17/202250movdx,8000h ;DX指向狀態(tài)端口status: inal,dx ;讀狀態(tài)端口 testal,01h ;測試標(biāo)志位D0 jzstatus ;D=0,未就緒,繼續(xù)查詢0 incdx ;D=1,就緒,DX改指向數(shù)據(jù)端口0 inal,dx ;從數(shù)據(jù)端口輸入數(shù)據(jù)12/20/202251movdx,8000h ;D在程序查詢方式中,為了提供程序查詢依據(jù),通常需要設(shè)置狀態(tài)寄存器,占用一個I/O端口地址。12/20/202252在程序查詢方式中,為了提供程序查詢依據(jù),通常需要設(shè)置狀態(tài)寄存直接程序控制方式適用于下述場合:①CPU速度不高②CPU工作效率問題不是很重要③需要調(diào)試或診斷I/O接口及設(shè)備的時候直接程序控制方式的缺點(diǎn):①CPU與外圍設(shè)備無法并行工作,CPU效率很低。②無法發(fā)現(xiàn)和處理異常情況,不能響應(yīng)來自外部的隨機(jī)請求。12/20/202253直接程序控制方式適用于下述場合:12/17/2022539.3.2程序中斷傳送方式程序中斷方式簡稱為中斷方式,它是目前幾乎所有計(jì)算機(jī)系統(tǒng)都具備的一種重要工作機(jī)制。中斷不僅用在輸入輸出過程控制中,而且在多道程序、分時操作、實(shí)時處理、人機(jī)聯(lián)系、故障處理、程序的監(jiān)視與跟蹤、目態(tài)程序和操作系統(tǒng)的聯(lián)系以及多處理機(jī)系統(tǒng)中各機(jī)間聯(lián)系方面都起著十分重要的作用。12/20/2022549.3.2程序中斷傳送方式程序中斷方式簡稱為中斷方式,9.3.2.1中斷的基本概念1.中斷中斷是指處理機(jī)暫時中止執(zhí)行現(xiàn)行程序而轉(zhuǎn)去執(zhí)行處理更加緊迫事件的服務(wù)程序,待處理完畢后,再自動返回執(zhí)行原來的程序的過程。相對于在CPU上運(yùn)行的程序,中斷具有隨機(jī)性(不可預(yù)測性)、異步性和不可再現(xiàn)性。12/20/2022559.3.2.1中斷的基本概念1.中斷12/17/20222.實(shí)現(xiàn)中斷應(yīng)考慮的問題⑴保護(hù)現(xiàn)場中斷過程實(shí)質(zhì)上是一種程序切換過程,因此必須處理好保存舊現(xiàn)場、建立新現(xiàn)場的問題。⑵及時獲得中斷請求信號中斷具有隨機(jī)性(程序自愿中斷除外)。因此必須及時檢測中斷請求信號,以便及時處理。12/20/2022562.實(shí)現(xiàn)中斷應(yīng)考慮的問題12/17/2022563.中斷的作用(1)解決主機(jī)與外設(shè)的速度匹配問題,實(shí)現(xiàn)CPU與I/O設(shè)備并行工作。CPU打印機(jī)執(zhí)行主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序空閑啟動準(zhǔn)備發(fā)中斷請求接收數(shù)據(jù)打印發(fā)中斷請求接收數(shù)據(jù)啟動打印機(jī)傳送數(shù)據(jù)傳送數(shù)據(jù)響應(yīng)中斷響應(yīng)中斷打印中斷返回中斷返回12/20/2022573.中斷的作用(1)解決主機(jī)與外設(shè)的速度匹配問題,實(shí)現(xiàn)CP(2)及時處理異常情況,提高機(jī)器的可靠性。(3)便于實(shí)現(xiàn)人—機(jī)聯(lián)系(4)便于實(shí)現(xiàn)多道程序運(yùn)行(5)便于實(shí)現(xiàn)多臺設(shè)備并行工作(6)便于實(shí)現(xiàn)實(shí)時控制(7)便于實(shí)現(xiàn)目態(tài)程序和操作系統(tǒng)的聯(lián)系(8)便于實(shí)現(xiàn)多處理機(jī)系統(tǒng)中各處理機(jī)間的聯(lián)系12/20/202258(2)及時處理異常情況,提高機(jī)器的可靠性。12/17/204.中斷處理的過程12/20/2022594.中斷處理的過程12/17/202259中斷源以硬件信號形式通過中斷控制線路向CPU提出中斷請求。中斷源:引起中斷事件的原因。中斷源可以是外部的硬件設(shè)備,如鍵盤、打印機(jī)等輸入/輸出設(shè)備和各種控制設(shè)備;也可以是軟件指令,如中斷指令;還可能是由各種故障和出錯引起的中斷,如計(jì)算溢出等。⑴中斷請求12/20/202260中斷源以硬件信號形式通過中斷控制線路向CPU提出中斷請求。⑴⑵中斷判優(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ù)按中斷源的工作要求,執(zhí)行相應(yīng)的中斷服務(wù)程序,進(jìn)行特定的數(shù)據(jù)傳送或控制處理。12/20/202261⑵中斷判優(yōu)及響應(yīng)12/17/202261⑸恢復(fù)現(xiàn)場為了正確返回原程序,需要進(jìn)行恢復(fù)現(xiàn)場的工作,即將前面保存的寄存器的內(nèi)容送回原寄存器。⑹中斷返回返回被中斷的程序,繼續(xù)執(zhí)行。12/20/202262⑸恢復(fù)現(xiàn)場12/17/2022625.中斷的分類⑴按中斷源來分內(nèi)中斷外中斷強(qiáng)迫中斷自愿中斷:程序中預(yù)先安排的中斷硬件故障軟件故障外設(shè)請求中斷控制臺中斷12/20/2022635.中斷的分類⑴按中斷源來分內(nèi)中斷外中斷強(qiáng)迫中斷自愿中斷:⑵按中斷服務(wù)程序入口的獲取方式分

向量中斷:由中斷系統(tǒng)硬件,直接向主機(jī)提供被響應(yīng)

中斷的中斷向量地址。非向量中斷:通過軟件查詢方式識別中斷源,轉(zhuǎn)

入相應(yīng)的中斷服務(wù)程序入口地址。⑶按是否可屏蔽分

可屏蔽中斷:CPU可以禁止響應(yīng)的外部中斷。不可屏蔽中斷:CPU必須響應(yīng)的外部中斷。

12/20/202264⑵按中斷服務(wù)程序入口的獲取方式分12/17/2022646.中斷系統(tǒng)的設(shè)計(jì)要求⑴保證中斷請求信號的建立及保持的準(zhǔn)確性,保證中斷在未被響應(yīng)時,中斷請求信號不能隨便被丟失。⑵保證各類中斷都能及時得到響應(yīng),不應(yīng)出現(xiàn)某些中斷由于某種原因長時間得不到響應(yīng)的情況。⑶必須防止在處理某個中斷過程中,又去響應(yīng)同樣的中斷。⑷保證中斷處理過程的正確性,在中斷處理過程結(jié)束后能夠正確返回被中斷的程序使之繼續(xù)執(zhí)行。12/20/2022656.中斷系統(tǒng)的設(shè)計(jì)要求⑴保證中斷請求信號的建立及保持的準(zhǔn)確⑸高級中斷應(yīng)能中斷低級中斷的處理,即要允許中斷嵌套。⑹中斷優(yōu)先級的設(shè)置應(yīng)具備方便性及靈活性,允許動態(tài)改變一個中斷的優(yōu)先級別。12/20/202266⑸高級中斷應(yīng)能中斷低級中斷的處理,即要允許中斷嵌套。12/9.3.2.2中斷請求信號的建立與傳送1.中斷請求信號的建立與中斷屏蔽中斷請求信號的建立,基于中斷源有請求中斷的需要。例如,當(dāng)外設(shè)已“準(zhǔn)備就緒”或“完成一次操作”,可以用這類狀態(tài)信號作為中斷請求信號建立的原始信號,使中斷請求觸發(fā)器的狀態(tài)置“1”,表明已有中斷請求。設(shè)備中通常有三種狀態(tài):空閑、就緒、忙12/20/2022679.3.2.2中斷請求信號的建立與傳送1.中斷請求信號的空閑忙就緒Busy=0Ready=0Busy=0Ready=1產(chǎn)生中斷請求Busy=1Ready=0啟動清除準(zhǔn)備好再啟動清除12/20/202268空閑忙就緒Busy=0Busy=0Busy=1啟動清除準(zhǔn)備好外設(shè)發(fā)出請求中斷信號的條件①外設(shè)準(zhǔn)備就緒(Ready=1)②外設(shè)的中斷請求沒有被屏蔽12/20/202269外設(shè)發(fā)出請求中斷信號的條件①外設(shè)準(zhǔn)備就緒(Ready=1)中斷請求信號是否能夠傳送給CPU,要看中斷源是否被屏蔽。中斷屏蔽12/20/202270中斷請求信號是否能夠傳送給CPU,要看中斷源是否被屏蔽。中斷中斷屏蔽:中斷源的中斷請求不能向CPU發(fā)出??梢愿鶕?jù)需要對中斷請求信號予以屏蔽。①先屏蔽方式:在中斷請求觸發(fā)器IRQ的D端進(jìn)行屏蔽。②后屏蔽方式:在中斷請求觸發(fā)器IRQ的輸出端進(jìn)行屏蔽。③集中屏蔽方式:即在公共接口邏輯中設(shè)置一個中斷控制器,內(nèi)含一個屏蔽字寄存器,CPU將屏蔽字送入其中。在各中斷源的接口不另設(shè)屏蔽觸發(fā)器。將各個請求信號匯集到中斷控制器,并與屏蔽字比較,若未被屏蔽,則中斷控制器送出一個公共的中斷請求信號INT,送往CPU。12/20/202271中斷屏蔽:中斷源的中斷請求不能向CPU發(fā)出。12/17/20TD:狀態(tài)信號,TD=1,需要請求中斷TM:中斷屏蔽信號,TM=1,屏蔽中斷請求QIRQCPDIRQ&TDTMQIRQCPD1TDTMIRQ12/20/202272TD:狀態(tài)信號,TD=1,需要請求中斷8259A的內(nèi)部結(jié)構(gòu)和引腳12/20/2022738259A的內(nèi)部結(jié)構(gòu)和引腳12/17/2022732.中斷請求信號的傳送一臺計(jì)算機(jī)系統(tǒng)中有多個中斷源,可能產(chǎn)生多個中斷請求信號,因此需要解決多個中斷請求信號如何傳送給CPU的問題。⑴獨(dú)立請求線方式(多線單級結(jié)構(gòu))各中斷源單獨(dú)設(shè)置自己的中斷請求線,多根請求線直接送往CPU。當(dāng)CPU接到中斷請求信號后,立即知道請求源是誰,并予以相應(yīng)的處理。這種方法有利于實(shí)現(xiàn)向量中斷,因?yàn)榭梢酝ㄟ^編碼電路形成向量地址。但因?yàn)镃PU所能連接的中斷請求線數(shù)目有限,所以中斷源數(shù)目難以擴(kuò)充。12/20/2022742.中斷請求信號的傳送一臺計(jì)算機(jī)系統(tǒng)中有多個中斷源,可能產(chǎn)生獨(dú)立請求線方式CPUINTR0INTR1INTRn-1┇12/20/202275獨(dú)立請求線方式CPUINTR0INTR1INTRn-1┇12⑵公共請求線方式(單線多級結(jié)構(gòu))各中斷源的請求信號通過三態(tài)門匯集到一根公共請求線,CPU只需接收一根中斷請求線的請求信號。這種方法節(jié)省引腳,但CPU響應(yīng)中斷后,還需要通過一定邏輯來識別是哪個中斷源發(fā)出的中斷請求,所以響應(yīng)速度慢一些。CPUINTR0INTR1INTRn-1I/OI/OI/O…INT12/20/202276⑵公共請求線方式(單線多級結(jié)構(gòu))各中斷源的請求信號通過三態(tài)⑶兩維結(jié)構(gòu)(多線多級結(jié)構(gòu))CPU設(shè)置數(shù)根中斷請求輸入線,它們體現(xiàn)不同的優(yōu)先級別,稱為主優(yōu)先級。再將主優(yōu)先級相同的中斷請求源匯集到同一公共請求線上。這種方法綜合了前兩種模式的優(yōu)點(diǎn),既可以在主優(yōu)先級層次迅速判明中斷源,又能隨意擴(kuò)充中斷源數(shù)目。12/20/202277⑶兩維結(jié)構(gòu)(多線多級結(jié)構(gòu))CPU設(shè)置數(shù)根中斷請求輸入線,它兩維結(jié)構(gòu)CPUINTR0INTR1I/O…INT0INTRk-1I/OI/OINTR0INTR1I/O…INTRn-1I/OI/OINTn-1INTR0INTR1I/O…INT1INTRl-1I/OI/O┇12/20/202278兩維結(jié)構(gòu)CPUINTR0INTR1I/O…INT0INTRk⑷獨(dú)立請求線與公共請求線兼有方式將要求快速響應(yīng)的中斷請求,采取獨(dú)立請求線方式,以便快速識別。將其余響應(yīng)速度允許相對低些的中斷請求,匯集為一根公共請求線。有些微處理器由于引腳數(shù)有限,就采取這種模式。CPUINTRINTRINTRI/OI/OI/O…I/OI/OINTR0INTR1INTRm-112/20/202279⑷獨(dú)立請求線與公共請求線兼有方式將要求快速響應(yīng)的中斷請求,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)有多個中斷源同時請求中斷時,根據(jù)中斷排隊(duì)事先規(guī)定的次序判斷中斷請求的響應(yīng)優(yōu)先次序。中斷優(yōu)先級(中斷優(yōu)先權(quán)):根據(jù)中斷源中斷任務(wù)的緊迫程度,給各中斷請求安排的響應(yīng)次序。12/20/2022809.3.2.3中斷排隊(duì)與判優(yōu)1.有關(guān)概念12/17/2中斷排隊(duì)的原則①內(nèi)部中斷優(yōu)先于外部中斷②故障中斷優(yōu)先于設(shè)備請求中斷③非屏蔽中斷優(yōu)先于可屏蔽中斷④輸入操作的中斷請求優(yōu)先于輸出操作的中斷請求⑤數(shù)據(jù)有效時間短的中斷優(yōu)先于數(shù)據(jù)有效時間長的中斷具體設(shè)計(jì)時,中斷優(yōu)先級可以是固定的,也可以是動態(tài)變化的。可以采用硬件或軟件進(jìn)行中斷排隊(duì)和判優(yōu)。12/20/202281中斷排隊(duì)的原則①內(nèi)部中斷優(yōu)先于外部中斷12/17/20222.CPU與中斷請求間的判優(yōu)CPU是否響應(yīng)中斷請求,要看當(dāng)時占有CPU的程序的優(yōu)先級。如程序的優(yōu)先級高于或等于當(dāng)前中斷請求的優(yōu)先級,則CPU可以不響應(yīng)這個中斷,或說CPU不允許被中斷、中斷被禁止。如占有CPU的程序優(yōu)先級低于請求中斷的優(yōu)先級,則不應(yīng)禁止這個中斷,而使CPU能夠響應(yīng)這個中斷,或說CPU允許中斷。中斷禁止:在一定條件下,CPU不允許響應(yīng)中斷。中斷允許:在一定條件下,CPU允許響應(yīng)中斷。12/20/2022822.CPU與中斷請求間的判優(yōu)CPU是否響應(yīng)中斷請求,要看當(dāng)時CPU現(xiàn)行程序與中斷請求的判優(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),則表示所有外部中斷請求要求的服務(wù)都沒有現(xiàn)行程序的任務(wù)重要,CPU不響應(yīng)外部中斷請求。如果CPU處于開中斷狀態(tài),則可以響應(yīng)外部中斷請求。12/20/202283CPU現(xiàn)行程序與中斷請求的判優(yōu)方法⑴通過設(shè)置CPU內(nèi)部的“12/20/20228412/17/202284⑵在現(xiàn)行程序的程序狀態(tài)字(PSW)中設(shè)置現(xiàn)行程序的優(yōu)先級若中斷請求的優(yōu)先級高于現(xiàn)行程序的優(yōu)先級,則予以響應(yīng)。CPU內(nèi)部有一個優(yōu)先級比較邏輯,對PSW中給定的優(yōu)先級與中斷請求的優(yōu)先級進(jìn)行比較,決定是否需要暫停現(xiàn)行程序去響應(yīng)中斷請求。操作系統(tǒng)可以根據(jù)實(shí)際情況動態(tài)地對PSW中的優(yōu)先級進(jìn)行調(diào)整。12/20/202285⑵在現(xiàn)行程序的程序狀態(tài)字(PSW)中設(shè)置現(xiàn)行程序的優(yōu)先級1例:某計(jì)算機(jī)內(nèi)部程序與外部中斷請求優(yōu)先級和PSW的規(guī)定為:處理機(jī)0級處理機(jī)1級處理機(jī)7級外部請求0級外部請求1級外部請求7級765PSW內(nèi)部優(yōu)先級12/20/202286例:某計(jì)算機(jī)內(nèi)部程序與外部中斷請求優(yōu)先級和PSW的規(guī)定為:處2.中斷請求之間的排隊(duì)與判優(yōu)(1)軟件查詢響應(yīng)中斷請求后,先轉(zhuǎn)入中斷查詢程序,按優(yōu)先順序依次詢問各中斷源是否提出請求。如果是,則轉(zhuǎn)入相應(yīng)的服務(wù)處理程序。如果沒有,則繼續(xù)往下查詢。查詢的順序體現(xiàn)了優(yōu)先級別的高低,改變查詢順序也就修改了優(yōu)先級。在硬件上,每一個中斷源都附帶一個標(biāo)志,用于代表相應(yīng)的中斷源是否請求中斷。CPU用測試指令按一定優(yōu)先次序檢查這些標(biāo)志,即可確定中斷源是否發(fā)出中斷請求。12/20/2022872.中斷請求之間的排隊(duì)與判優(yōu)(1)軟件查詢12/17/2012/20/20228812/17/202288軟件查詢方法適用于低速和中速設(shè)備,多用于公共請求線方式。優(yōu)點(diǎn):中斷條件標(biāo)志的優(yōu)先級可用程序任意改變,靈活性好。缺點(diǎn):設(shè)備多時,響應(yīng)速度太慢。12/20/202289軟件查詢方法適用于低速和中速設(shè)備,多用于公共請求線方式。12(2)并行優(yōu)先排隊(duì)邏輯采用硬件并行優(yōu)先排隊(duì)邏輯對具有獨(dú)立中斷請求線的中斷請求進(jìn)行判優(yōu)。并行排優(yōu)邏輯適于具有多請求線的系統(tǒng),速度較快,硬件代價較高。12/20/202290(2)并行優(yōu)先排隊(duì)邏輯采用硬件并行優(yōu)先排隊(duì)邏輯對具有獨(dú)立中12/20/20229112/17/202291采用硬件優(yōu)先鏈電路判斷中斷優(yōu)先級,判優(yōu)結(jié)果可用不同的設(shè)備碼或用中斷源類型碼來表示。鏈?zhǔn)絻?yōu)先排隊(duì)邏輯多用于采用公共請求線的系統(tǒng)。(3)鏈?zhǔn)絻?yōu)先排隊(duì)邏輯12/20/202292采用硬件優(yōu)先鏈電路判斷中斷優(yōu)先級,判優(yōu)結(jié)果可用不同的設(shè)備碼或INTI中斷排隊(duì)輸入INTR1INTR2INTR3INTR4INTO中斷排隊(duì)輸出INTA中斷回答INTR1INTR2INTR3INTR4453210送CPU0CH0FH12H0EH12/20/202293INTI中斷排隊(duì)輸入INTR1INTR2INTR3INTR4設(shè)CPU可以接受n+1根中斷請求線,每根請求線的優(yōu)先級稱作主優(yōu)先級,在CPU內(nèi)部有一個相應(yīng)的判優(yōu)電路,以首先響應(yīng)優(yōu)先級最高的請求。如果程序狀態(tài)字中有CPU現(xiàn)行程序的優(yōu)先級編碼,這個判優(yōu)電路同時擔(dān)負(fù)CPU與請求之間的判優(yōu)問題。將有關(guān)外設(shè)分成n+1組,每組的請求匯集到同一根請求線上,占有同一個主優(yōu)先級。在一個小組內(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ì)12/20/202294設(shè)CPU可以接受n+1根中斷請求線,每根請求線的優(yōu)先級稱二維結(jié)構(gòu)的優(yōu)先排隊(duì)12/20/202295二維結(jié)構(gòu)的優(yōu)先排隊(duì)12/17/202295(5)采用中斷控制器集成芯片的優(yōu)先邏輯在微型計(jì)算機(jī)中,廣泛使用中斷控制器集成芯片,如Intel8259A。中斷控制器將中斷請求信號的寄存、匯集、屏蔽、排優(yōu)、編碼等邏輯,集成在一塊芯片之中。12/20/202296(5)采用中斷控制器集成芯片的優(yōu)先邏輯在微型計(jì)算機(jī)中,廣泛使可編程中斷控制器Intel8259A12/20/202297可編程中斷控制器Intel8259A12/17/20229.3.2.4中斷響應(yīng)CPU接到中斷請求信號后,若滿足響應(yīng)中斷的條件,即暫停現(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é)束。12/20/2022989.3.2.4中斷響應(yīng)CPU接到中斷請求信號后,若滿足響一般情況下,CPU響應(yīng)中斷的時間是在一條指令執(zhí)行結(jié)束。但某些特殊的中斷,例如指令執(zhí)行過程中,取數(shù)時所需數(shù)據(jù)不在主存,這時不及時處理,指令就無法執(zhí)行下去,這就要求在指令執(zhí)行過程中響應(yīng)中斷。12/20/202299一般情況下,CPU響應(yīng)中斷的時間是在一條指令執(zhí)行結(jié)束。但某些中斷響應(yīng)流程取指令停機(jī)停機(jī)指令執(zhí)行指令電源故障YN中斷請求N中斷處理YYN12/20/2022100中斷響應(yīng)流程取指令停機(jī)停機(jī)指令執(zhí)行指令電源故障YN中斷請求N2.中斷響應(yīng)過程中應(yīng)完成的操作(1)關(guān)中斷

以便在保存現(xiàn)場過程中不允許響應(yīng)新的中斷請求,確?,F(xiàn)場保存的正確性。(2)保存斷點(diǎn)地址和程序狀態(tài)字(3)轉(zhuǎn)入中斷服務(wù)程序入口,以便執(zhí)行相應(yīng)的中斷服務(wù)程序,完成中斷處理任務(wù)中斷響應(yīng)周期的操作流程中的操作不是在程序中安排的,而是直接由硬件完成的。通常把這種操作稱為執(zhí)行中斷隱指令。12/20/20221012.中斷響應(yīng)過程中應(yīng)完成的操作(1)關(guān)中斷12/17/第六章模型機(jī)中斷周期操作流程12/20/2022102第六章模型機(jī)中斷周期操作流程12/17/20221029.3.2.5中斷服務(wù)程序入口地址的獲取方式1.軟件查詢方法CPU響應(yīng)中斷請求后,先轉(zhuǎn)入中斷查詢程序,按優(yōu)先順序依次識別中斷源,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。例:某機(jī)器各接口將中斷請求存放在狀態(tài)端口的狀態(tài)字寄存器STR中,CPU響應(yīng)中斷請求后,轉(zhuǎn)入查詢程序。3INTR=1ReadySTR12/20/20221039.3.2.5中斷服務(wù)程序入口地址的獲取方式1.軟件查

INAL,STRATESTAL,08HJNZA入口INAL,STRBTESTAL,08HJNZB入口┇12/20/2022104INAL,STRA12/17/20222.通過硬件排隊(duì)與編碼電路獲得優(yōu)先級最高的中斷源的設(shè)備碼,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。例:響應(yīng)中斷后,執(zhí)行程序:INTAAC;發(fā)中斷回答信號INTA,將設(shè)

備碼讀入累加器AC中JMPAC+100H;轉(zhuǎn)入(AC)+100H處執(zhí)行1、2兩種方法也稱為非向量中斷12/20/20221052.通過硬件排隊(duì)與編碼電路獲得優(yōu)先級最高的中斷源的設(shè)備碼,3.向量中斷中斷向量:每個中斷源對應(yīng)的中斷服務(wù)程序的入口地址及其程序狀態(tài)字PSW。中斷向量存放在特定的存儲區(qū)中,有些計(jì)算機(jī)沒有完整的程序狀態(tài)字,則中斷向量僅指中斷服務(wù)程序入口地址。中斷向量表:存放中斷向量的表。所有的中斷服務(wù)程序入口地址(或包括服務(wù)程序的狀態(tài)字)組織成一個一維的表格,存放在一段連續(xù)的存儲區(qū)中。中斷向量地址:訪問中斷向量表的地址碼,即讀取中斷向量所需的地址,也稱為中斷指針。12/20/20221063.向量中斷中斷向量:每個中斷源對應(yīng)的中斷服務(wù)程序的入口地址中斷向量地址1入口地址1程序狀態(tài)字1中斷向量地址2入口地址2程序狀態(tài)字2︰︰中斷向量地址n入口地址n程序狀態(tài)字n中斷向量表中斷向量12/20/2022107中斷向量地址1入口地址1程序狀態(tài)字1中斷向量地址2入口地址2向量中斷:將各個中斷服務(wù)程序的入口地址(或包括狀態(tài)字)組織成中斷向量表;響應(yīng)中斷時,由硬件直接產(chǎn)生對應(yīng)于中斷源的向量地址;據(jù)此訪問中斷向量表,從中讀取中斷服務(wù)程序入口地址,由此轉(zhuǎn)向中斷服務(wù)程序。向量中斷的響應(yīng)工作一般在中斷周期中由硬件直接實(shí)現(xiàn)。向量中斷的特點(diǎn):能夠根據(jù)中斷請求信號快速、直接地轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)程序?,F(xiàn)代計(jì)算機(jī)基本上都具有向量中斷功能。12/20/2022108向量中斷:將各個中斷服務(wù)程序的入口地址(或包括狀態(tài)字)組織成IBMPC機(jī)的中斷向量表12/20/2022109IBMPC機(jī)的中斷向量表12/17/2022109向量中斷的工作過程⑴中斷源提出中斷請求。⑵若CPU允許中斷,則發(fā)出中斷回答信號。⑶優(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。12/20/2022110向量中斷的工作過程⑴中斷源提出中斷請求。12/17/202主存0級入口0級PSW1級入口1級PSW┇7級入口7級PSWVARINTR0INTR1INTR7堆棧PSWPC××優(yōu)先級編碼電路PCPSRCPUINTRINTA⑤③①②④⑦⑥中斷服務(wù)⑥中斷服務(wù)12/20/2022111主存0級入口0級PSW1級入口1級PSW┇7級入口7級PSW9.3.2.6多重中斷與中斷屏蔽1.多重中斷(中斷嵌套)CPU在處理某一級中斷過程中.又遇到了新的中斷請求,CPU暫停原中斷的處理,而轉(zhuǎn)入處理新的中斷,待處理完畢,再恢復(fù)原來中斷的處理,這種中斷稱為多重中斷,也稱中斷嵌套。2.多重中斷的處理原則⑴若新的中斷的優(yōu)先級高于原來中斷的優(yōu)先級,則響應(yīng)新的中斷請求;⑵若新的中斷優(yōu)先級同于或低于原來中斷的優(yōu)先級,則不予響應(yīng),必須待原來中斷處理完,返回原程序后,再響應(yīng)新的中斷。12/20/20221129.3.2.6多重中斷與中斷屏蔽1.多重中斷(中斷嵌套中斷嵌套主程序K:K+1:服務(wù)程序1服務(wù)程序2N1:M1:L:L+1:中斷返回中斷返回響應(yīng)1響應(yīng)212/20/2022113中斷嵌套主程序K:K+1:服務(wù)程序1服務(wù)程序2N1:M1:L3.實(shí)現(xiàn)多重中斷處理的方法采用中斷屏蔽技術(shù)。中斷屏蔽:當(dāng)產(chǎn)生中斷請求后,用程序有選擇地封鎖部分中斷,而允許其余部分中斷仍得到響應(yīng)。4.中斷屏蔽的實(shí)現(xiàn)方法為每一個可屏蔽的中斷源設(shè)一個中斷屏蔽觸發(fā)器來屏蔽該中斷源的中斷請求。為了實(shí)現(xiàn)多重中斷的處理原則,當(dāng)CPU響應(yīng)某個中斷請求后,送出一個新的屏蔽字,屏蔽同級和低級中斷,只允許響應(yīng)更高級中斷。12/20/20221143.實(shí)現(xiàn)多重中斷處理的方法12/17/2022114可編程中斷控制器Intel8259A12/20/2022115可編程中斷控制器Intel8259A12/17/2022例某計(jì)算機(jī)的中斷系統(tǒng)有五級中斷,優(yōu)先次序?yàn)?>2>3>4>5若CPU在執(zhí)行正常程序時,有下列事件發(fā)生:(1)中斷1,2,4提出請求;(2)在處理中斷4過程中,又有中斷3提出請求;(3)在處理中斷3時,又出現(xiàn)1,5中斷請求。請畫出CPU對所有事件的處理過程圖。12/20/2022116例某計(jì)算機(jī)的中斷系統(tǒng)有五級中斷,優(yōu)先次序?yàn)?2/17/202中斷源用戶程序中斷服務(wù)程序12345

1,2,4time31,512/20/2022117中斷源用戶程序中斷服務(wù)程序5.中斷屏蔽技術(shù)用于調(diào)整中斷優(yōu)先級利用硬件排隊(duì)判優(yōu)所分配的優(yōu)先級是固定的,但有時需要動態(tài)地修改優(yōu)先次序。例如,有些設(shè)備的優(yōu)先級低,經(jīng)常得不到響應(yīng)的機(jī)會,在適當(dāng)?shù)臅r段中就需讓它升級,使各設(shè)備得到的響應(yīng)機(jī)會均衡、合理一些。中斷升級:在一段時間內(nèi),利用屏蔽技術(shù)將原來優(yōu)先級高的設(shè)備暫時屏蔽,而使優(yōu)先級低的設(shè)備的優(yōu)先級相對提高。過一段時間再調(diào)整屏蔽字,或者復(fù)原,或者按一定規(guī)律修改屏蔽字,以適應(yīng)程序的需要。12/20/20221185.中斷屏蔽技術(shù)用于調(diào)整中斷優(yōu)先級12/17/20221例:優(yōu)先級順序?yàn)?>2>3>4>5時的屏蔽碼12/20/2022119例:優(yōu)先級順序?yàn)?>2>3>4>5時的屏蔽碼12/17/優(yōu)先級順序修改為1>4>3>2>5時的屏蔽碼12/20/2022120優(yōu)先級順序修改為1>4>3>2>5時的屏蔽碼12/17/作業(yè)P4109.89.912/20/2022121作業(yè)P4109.89.912/17/20229.3.2.7中斷服務(wù)(中斷處理)取得中斷服務(wù)程序的入口地址后,CPU開始執(zhí)行中斷服務(wù)程序,完成規(guī)定的中斷處理任務(wù)。中斷服務(wù)程序一般由起始、主體、結(jié)尾三部分組成。12/20/20221229.3.2.7中斷服務(wù)(中斷處理)取得中斷服務(wù)程序的入口1.起始部分①判明中斷原因,識別中斷源,對于不同中斷源轉(zhuǎn)入不同的服務(wù)程序。對于向量中斷,直接由硬件判明中斷源并給出中斷向量地址,轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。對于非向量中斷,需通過執(zhí)行一段程序判明中斷源,轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。②設(shè)置屏蔽字,封鎖同級與低級中斷。12/20/20221231.起始部分①判明中斷原因,識別中斷源,對于不同中斷源轉(zhuǎn)③保存中斷現(xiàn)場除了PSW外,還要保存一些在執(zhí)行中斷服務(wù)程序過程中可能被改變的寄存器的內(nèi)容。④開中斷以便在本次中斷處理過程中,允許響應(yīng)更高級的中斷請求。這是因?yàn)樵谥袛囗憫?yīng)時,為避免影響保護(hù)現(xiàn)場,進(jìn)行了關(guān)中斷操作。12/20/2022124③保存中斷現(xiàn)場12/17/20221242.主體部分執(zhí)行具體的為中斷源服務(wù)的程序。12/20/20221252.主體部分執(zhí)行具體的為中斷源服務(wù)的程序。12/17/2023.結(jié)尾部分①關(guān)中斷,以便在恢復(fù)現(xiàn)場過程中不允許響應(yīng)新的中斷。②恢復(fù)中斷現(xiàn)場,將原來保存的寄存器內(nèi)容送回原寄存器。③清中斷請求信號,表示本次中斷處理結(jié)束。④清屏蔽字,開放同級與低級中斷。⑤開中斷,以便響應(yīng)新的中斷請求。⑥恢復(fù)PSW、PC,返回被中斷的程序。12/20/20221263.結(jié)尾部分①關(guān)中斷,以便在恢復(fù)現(xiàn)場過程中不允許響應(yīng)新的中例:輸出設(shè)備的程序中斷過程①CPU執(zhí)行程序設(shè)置內(nèi)存存儲區(qū)域的首地址和需要進(jìn)行數(shù)據(jù)傳輸?shù)淖止?jié)數(shù)。②設(shè)置中斷向量③發(fā)送設(shè)備地址,啟動被選設(shè)備④外設(shè)準(zhǔn)備好,發(fā)送中斷請求,并被響應(yīng)⑤執(zhí)行中斷服務(wù)程序⑥中斷返回12/20/2022127例:輸出設(shè)備的程序中斷過程①CPU執(zhí)行程序設(shè)置內(nèi)存存儲區(qū)域9.3.2.7中斷響應(yīng)的及時性要求

中斷延遲時間CPU執(zhí)行中斷響應(yīng)隱指令的開銷。即中斷源提出中斷申請后到中斷處理程序的第一條指令開始執(zhí)行之間的時間。

12/20/20221289.3.2.7中斷響應(yīng)的及時性要求中斷延遲時間12/17影響延遲時間的因素⑴指令的執(zhí)行時間如果指令系統(tǒng)中有執(zhí)行時間較長的指令,則需要考慮提供在指令執(zhí)行過程中也可以對外部中斷請求予以響應(yīng)的能力。⑵程序執(zhí)行環(huán)境的轉(zhuǎn)換開銷即保護(hù)斷點(diǎn)、現(xiàn)場和恢復(fù)斷點(diǎn)、現(xiàn)場時CPU的開銷??梢栽贑PU內(nèi)部采用多組寄存器“窗口”,使得環(huán)境轉(zhuǎn)換得以加快。12/20/2022129影響延遲時間的因素⑴指令的執(zhí)行時間12/17/202212⑶中斷服務(wù)程序入口地址的確定方式可采用固定地址對應(yīng)的方法,即某個中斷源的中斷服務(wù)程序的第一條指令,放在固定的內(nèi)存單元中,這樣CPU在響應(yīng)這個中斷時,可直接轉(zhuǎn)入中斷服務(wù)程序。可考慮將中斷向量表安排在CPU內(nèi)部的Cache中,以加快入口地址的確定時間。12/20/2022130⑶中斷服務(wù)程序入口地址的確定方式12/17/2022130中斷處理程序的處理時間中斷處理程序最好安排在Cache中,以便加快中斷處理的速度。12/20/2022131中斷處理程序的處理時間中斷處理程序最好安排在Cache中,以例:某計(jì)算機(jī)的CPU的主頻為500MHz,所連接的某外設(shè)的最大數(shù)據(jù)傳輸率是20kBps,該外設(shè)接口中有一個16位的數(shù)據(jù)緩沖器,相應(yīng)的中斷服務(wù)程序的執(zhí)行時間為500個時鐘周期。請回答:⑴是否可以用中斷方式進(jìn)行該外設(shè)的輸入輸出?若能,在該設(shè)備持續(xù)工作期間,CPU用于控制該設(shè)備進(jìn)行I/O操作的時間占整個CPU時間的百分比大約是多少?⑵若該設(shè)備的最大數(shù)據(jù)傳輸率改為20MBps,是否可以用中斷方式進(jìn)行該外設(shè)的輸入輸出?

12/20/2022132例:某計(jì)算機(jī)的CPU的主頻為500MHz,所連接的某外設(shè)的最解:該外設(shè)接口中有一個16位的數(shù)據(jù)緩沖器,若采用中斷方式進(jìn)行I/O操作,可以每16位進(jìn)行一次中斷請求,因此,中斷請求的時間間隔為:2B/20kBps×106=100μs中斷服務(wù)程序的執(zhí)行時間為:

500/500MHz×106=1μs中斷響應(yīng)時間相對于中斷服務(wù)程序的執(zhí)行時間可以忽略不計(jì),故整個中斷響應(yīng)加中斷服務(wù)的時間約為1μs多一點(diǎn),遠(yuǎn)遠(yuǎn)小于中斷請求的時間間隔。因此可以用中斷方式進(jìn)行該外設(shè)的輸入輸出。采用中斷方式控制該設(shè)備進(jìn)行I/O操作的時間占整個CPU時間的百分比大約為1/101=1%12/20/2022133解:12/17/2022133若該設(shè)備的最大數(shù)據(jù)傳輸率是20MBps,則中斷請求的時間間隔為:

2B/20MBps×106=1μs而整個中斷響應(yīng)加中斷服務(wù)的時間約為1μs多一點(diǎn),即一次中斷處理未完,新的請求就會來到,所以,不可以用中斷方式控制該設(shè)備進(jìn)行I/O操作。此時最好采用DMA方式,直接進(jìn)行數(shù)據(jù)傳送,無需執(zhí)行程序。12/20/2022134若該設(shè)備的最大數(shù)據(jù)傳輸率是20MBps,則中斷請求的時間間隔中斷處理的全過程①中斷請求;②擇優(yōu)響應(yīng);③保護(hù)現(xiàn)場;④中斷服務(wù);⑤恢復(fù)現(xiàn)場;⑥中斷返回;在中斷處理的過程中,有些是由硬件完成的,有些是由軟件完成的,因此中斷是一種軟、硬件結(jié)合的技術(shù)手段。不同的機(jī)器,軟、硬件功能分配的比例有所不同。12/20/2022135中斷處理的全過程①中斷請求;12/17/20221359.4直接存儲器存取方式(DMA)直接存儲器存取方式(DirectMemoryAccess)

簡稱DMA方式。DMA方式:以主存為中心,采用硬件手段在主存與I/O設(shè)備之間建立直接的數(shù)據(jù)傳送通路,由DMA控制器(DMAC)取得總線控制權(quán),控制主存與I/O設(shè)備之間的數(shù)據(jù)傳送,在傳送過程中不需要CPU的程序干預(yù)的數(shù)據(jù)傳送控制方式。DMA方式主要用于高速外設(shè)按照連續(xù)地址直接訪問存儲器。12/20/20221369.4直接存儲器存取方式(DMA)直接存儲器存取方式(D12/20/202213712/17/2022137DMA方式CPU主存接口設(shè)備DMA控制器程序控制DMA控制12/20/2022138DMA方式CPU主存接口設(shè)備DMA程序控制DMA控制12/1

9.4.1DMA方式的特點(diǎn)與應(yīng)用場合1.DMA方式的特點(diǎn)⑴以響應(yīng)隨機(jī)請求的方式,實(shí)現(xiàn)主存與I/O設(shè)備間的快速數(shù)據(jù)傳送。⑵采用DMA方式控制數(shù)據(jù)傳送時,僅需占用系統(tǒng)總線,不切換程序,不存在保存斷點(diǎn)、保護(hù)現(xiàn)場、恢復(fù)現(xiàn)場、恢復(fù)斷點(diǎn)等操作。因此DMA傳送的插入不影響CPU的程序執(zhí)行狀態(tài),除了訪問主存的沖突外,CPU可以繼續(xù)執(zhí)行自己的程序,提高了CPU的利用率。⑶DMA方式只能處理簡單的數(shù)據(jù)傳送,難以識別與處理復(fù)雜的情況。12/20/20221399.4.1DMA方式的特點(diǎn)與應(yīng)用場合1.DMA方式的2.DMA方式的應(yīng)用DMA方式一般應(yīng)用于主存與高速I/O設(shè)備間的簡單數(shù)據(jù)傳送(高速I/O設(shè)備如磁盤、磁帶、光盤等外存儲器),以及其它帶有局部存儲器的外圍設(shè)備、通信設(shè)備等。如:⑴磁盤與主存的成塊數(shù)據(jù)傳送⑵通信設(shè)備的批量數(shù)據(jù)傳送⑶動態(tài)存儲器的刷新⑷大批量數(shù)據(jù)采集系統(tǒng)12/20/20221402.DMA方式的應(yīng)用12/17/2022140DMA傳送是直接依靠硬件實(shí)現(xiàn)的,可用于快速的數(shù)據(jù)直傳。但DMA方式本身不能處理復(fù)雜事態(tài)。因此,在某些場合常綜合應(yīng)用DMA方式與程序中斷方式,二者互為補(bǔ)充。典型的例子是磁盤調(diào)用,磁盤讀寫采用DMA方式進(jìn)行數(shù)據(jù)傳送,而對尋道是否正確的判別處理、批量傳送結(jié)束后的善后處理,則采用程序中斷方式。12/20/2022141DMA傳送是直接依靠硬件實(shí)現(xiàn)的,可用于快速的數(shù)據(jù)直傳。但DM9.4.2DMA的傳送方式1.CPU停機(jī)方式用CPU停機(jī)方式實(shí)現(xiàn)DMA傳送時,CPU停止工作,讓出對總線的控制權(quán),而由DMAC接管總線,進(jìn)行數(shù)據(jù)傳送。數(shù)據(jù)傳送結(jié)束后,再將總線交還給CPU。12/20/20221429.4.2DMA的傳送方式1.CPU停機(jī)方式12/112/20/202214312/17/2022143CPU停機(jī)方式的特點(diǎn)優(yōu)點(diǎn):控制簡單,比較容易實(shí)現(xiàn),是最常用、最簡單的一種DMA實(shí)現(xiàn)方式,大部分DMAC都采用這種方式。缺點(diǎn):由于在采用這種方式進(jìn)行的DMA傳送期間,使CPU處于空閑等待狀態(tài),降低了CPU的利用率,并且可能會影響到某些實(shí)時性很強(qiáng)的操作,如中斷響應(yīng)和對動態(tài)RAM的刷新等。12/20/2022144CPU停機(jī)方式的特點(diǎn)優(yōu)點(diǎn):12/17/20221442.周期挪用(周期竊取)方式當(dāng)I/O設(shè)備無DMA傳送請求時,CPU正常訪問主存。當(dāng)I/O設(shè)備需要使用總線傳送數(shù)據(jù)時,產(chǎn)生DMA請求,DMAC把總線請求發(fā)給CPU。①若CPU本身無使用總線的要求,CPU就把總線交給DMAC,由DMAC控制I/O設(shè)備使用總線②如果此時CPU也要使用總線,則CPU自身進(jìn)入一個或幾個“空閑總線周期”狀態(tài),即CPU讓出一個或幾個總線周期給DMAC(也稱DMAC“挪用”一個總線周期),DMAC利用此總線周期控制傳送一個數(shù)據(jù)字后,再把總線交還給CPU,以便CPU可以繼續(xù)執(zhí)行總線操作。12/20/20221452.周期挪用(周期竊取)方式當(dāng)I/O設(shè)備無DMA傳送請求時周期挪用12/20/2022146周期挪用12/17/2022146采用周期挪用方式時,外設(shè)要求DMA傳送的三種情況:⑴外設(shè)要求DMA傳送時,CPU不需要訪問主存(如CPU正在執(zhí)行乘法指令,由于乘法指令執(zhí)行時間較長,此時CPU不需訪問主存),故外設(shè)訪存與CPU不發(fā)生沖突。⑵外設(shè)要求DMA傳送時,CPU正在訪存,此時必須等CPU存取周期結(jié)束后,CPU才能讓出總線控制權(quán)。⑶外設(shè)要求訪存時,CPU也要求訪存,這就出現(xiàn)了訪存沖突。此時要求外設(shè)訪存優(yōu)先于CPU訪存。因?yàn)橥庠O(shè)不立即訪存就可能丟失數(shù)據(jù),這時DMAC要竊取一、二個存取周期,使CPU延緩一、二個存取周期再訪存。12/20/2022147采用周期挪用方式時,外設(shè)要求DMA傳送的三種情況:12/17周期挪用方式的優(yōu)點(diǎn)與CPU暫停訪存的方式相比,周期挪用方式既實(shí)現(xiàn)了I/O傳送,又較好地發(fā)揮了主存與CPU的效率,是一種廣泛采用的方法。12/20/2022148周期挪用方式的優(yōu)點(diǎn)與CPU暫停訪存的方式相比,周期挪用方式既周期挪用方式的缺點(diǎn)每傳送一個數(shù)據(jù),DMA都要產(chǎn)生訪問請求,待到CPU響應(yīng)后才能傳送,因此判優(yōu)操作及總線切換操作非常頻繁,其花費(fèi)的時間開銷較大。往往在傳輸一個數(shù)據(jù)塊時,需要DMA控制器多次申請使用總線,這影響了DMA的數(shù)據(jù)傳輸速度。12/20/2022149周期挪用方式的缺點(diǎn)每傳送一個數(shù)據(jù),DMA都要產(chǎn)生訪問請求,待周期挪用方式適用于I/O設(shè)備接口控制器中數(shù)據(jù)緩沖器容量不大的場合,例如在接口控制器中僅設(shè)置一個數(shù)據(jù)寄存器的情形,對具有較大容量數(shù)據(jù)緩沖存儲器的高速外設(shè)來說是不合適的。12/20/2022150周期挪用方式適用于I/O設(shè)備接口控制器中數(shù)據(jù)緩沖器容量不大的3.DMA與CPU交替訪問內(nèi)存方式

將一個CPU周期分為兩個分周期,與DMA分別使用。其中一個專供DMA訪存,另一個專供CPU訪存。這種方式不需要總線使用權(quán)的申請建立和歸還過程,總線使用權(quán)是通過不同的周期分別控制的。在這種工作方式下,CPU既不停止主程序的運(yùn)行也不進(jìn)入等待狀態(tài),在CPU不知不覺中完成了DMA的數(shù)據(jù)傳送,故又有“透明的DMA”方式之稱,當(dāng)然周期擴(kuò)展方式會使CPU的處理速度減慢,其相應(yīng)的硬件邏輯也變得更為復(fù)雜。12/20/20221513.DMA與CPU交替訪問內(nèi)存方式將一個CPU周期分為兩12/20/202215212/17/20221529.4.3DMA系統(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è)備,可以為多個設(shè)備通用。12/20/20221539.4.3DMA系統(tǒng)的硬件組織在目前的計(jì)算機(jī)系統(tǒng)中,通

DMAC的功能①接收外設(shè)的DMA請求,向CPU發(fā)出總線請求信號。請求CPU讓出總線。②當(dāng)CPU發(fā)出DMA響應(yīng)信號之后,接管對總線的控制,進(jìn)入DMA方式。③對存儲器尋址,輸出和修改地址信息。④向存儲器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號。⑤控制傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。⑥在DMA傳送結(jié)束以后,向CPU發(fā)出結(jié)束DMA請求信號,釋放總線,使CPU恢復(fù)對總線的控制,繼續(xù)正常工作。12/20/2022154DMAC的功能①接收外設(shè)的DMA請求,向CPU發(fā)出總線請2.DMA接口用于實(shí)現(xiàn)與設(shè)備的連接和數(shù)據(jù)緩沖,反映設(shè)備的特定要求。12/20/20221552.DMA接口12/17/20221559.4.4DMA控制器的組成1.DMAC的基本組成為了實(shí)現(xiàn)DMAC的功能,DMAC內(nèi)部除需要有接受和發(fā)送DMA請求和響應(yīng)信號的能力外,還應(yīng)具有地址寄存和計(jì)數(shù)功能,以便控制對存儲器的尋址;具有傳輸量計(jì)數(shù)器,能夠?qū)魉偷臄?shù)據(jù)個數(shù)進(jìn)行計(jì)數(shù)。12/20/20221569.4.4DMA控制器的組成1.DMAC的基本組成12/DMAC的基本組成12/20/2022157DMAC的基本組成12/17/2022157(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傳送過程中,每傳送一個字(或字節(jié)),計(jì)數(shù)器自動加1,當(dāng)WC內(nèi)容為零時,表示數(shù)據(jù)已全部傳送完畢,DMAC發(fā)出DMA傳送結(jié)束信號。12/20/2022158(1)主存地址寄存器MAR(2)傳輸量計(jì)數(shù)器WC12/(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è)備信息存儲區(qū)的尋址信息。如磁盤數(shù)據(jù)所在的柱面號、盤面號和扇區(qū)號。具體內(nèi)容取決于設(shè)備的數(shù)據(jù)格式和編址方式。12/20/2022159(3)數(shù)據(jù)緩沖寄存器DBR(4)設(shè)備地址寄存器DAR12(5)控制/狀態(tài)寄存器

CSR存放有關(guān)控制和狀態(tài)信息,如傳送方式、讀/寫狀態(tài)、傳送完畢與否等。也可使用多個寄存器,分別存放控制字和狀態(tài)字。(6)DMA控制邏輯DMA控制邏輯負(fù)責(zé)完成DMA的預(yù)處理(初始化各類寄存器)、接收設(shè)備控制器送來的DMA請求信號、向設(shè)備控制器回答DMA允許(應(yīng)答)信號、向系統(tǒng)申請總線以及控制總線實(shí)現(xiàn)DMA傳輸控制等工作。12/20/2022160(5)控制/狀態(tài)寄存器CSR(6)DMA控制邏輯12/(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)中不同的中斷事件。12/20/2022161(7)DMA中斷控制邏輯12/17/2022161(8)數(shù)據(jù)線、地址線和控制信號線

DMA控制器中設(shè)置了與主機(jī)和I/O設(shè)備兩個方向的數(shù)據(jù)線、地址線和控制信號線以及有關(guān)收發(fā)與驅(qū)動電路。

12/20/2022162(8)數(shù)據(jù)線、地址線和控制信號線12/17/2022169.4.5DMA控制方式下的數(shù)據(jù)傳送過程1.預(yù)處理在DMAC開始工作之前,CPU通過執(zhí)行輸入輸出程序完成下面工作:①在控制寄存器中寫入DMA操作命令。給DMA控制邏輯指明數(shù)據(jù)傳送方向是輸入(主存寫)還是輸出(主存讀)。②向DMA設(shè)備地址寄存器送入設(shè)備號,并啟動設(shè)備。③向DMA主存地址寄存器送入交換數(shù)據(jù)的主存起始地址。④向傳輸量計(jì)數(shù)器送入交換數(shù)據(jù)的個數(shù)。12/20/20221639.4.5DMA控制方式下的數(shù)據(jù)傳送過程1.預(yù)處理12預(yù)處理工作由CPU執(zhí)行幾條輸入輸出指令完成,稱為初始化工作。初始化工作完成后,CPU繼續(xù)執(zhí)行原來的程序。當(dāng)外部設(shè)備準(zhǔn)備好發(fā)送的數(shù)據(jù)(輸入)或上次接受的數(shù)據(jù)已經(jīng)處理完畢(輸出)時,它便通過DMA接口向CPU提出占用總線的申請,若有多個DMA同時申請,則按輕重緩急由硬件排隊(duì)判優(yōu)邏輯決定優(yōu)先等級。待設(shè)備得到主存總線的控制權(quán)后,數(shù)據(jù)的傳送便由該DMAC進(jìn)行管理。12/20/2022164預(yù)處理工作由CPU執(zhí)行幾條輸入輸出指令完成,稱為初始化工作。2.?dāng)?shù)據(jù)交換操作

DMAC獲得總線后,即可按規(guī)定的傳送方式,進(jìn)行數(shù)據(jù)的輸入或輸出操作,直到將所有數(shù)據(jù)傳輸完畢,DMAC將總線交還給CPU。需要時還向CPU發(fā)出中斷請求。12/20/20221652.?dāng)?shù)據(jù)交換操作DMAC獲得總線后,即可按規(guī)定的傳送方式,CPU響應(yīng)中斷后,為DMA傳送作結(jié)束處理工作。①校驗(yàn)送入主存的數(shù)據(jù)是否正確②決定是否繼續(xù)用DMA方式傳送,還是結(jié)束傳送③測試在傳送過程中是否發(fā)生了錯誤④判斷傳送工作是否正常結(jié)束3.DMA后處理12/20/2022166CPU響應(yīng)中斷后,為DMA傳送作結(jié)束處理工作。3.DMA后12/20/202216712/17/202216712/20/202216812/17/2022168例:DMA數(shù)據(jù)輸入過程(DMA寫)①從設(shè)備讀入一個字到DMA的數(shù)據(jù)緩沖寄存器DBR中,表示數(shù)據(jù)緩沖寄存器“滿”;②外設(shè)向DMAC發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論