第9章IO系統(tǒng)組織_第1頁
第9章IO系統(tǒng)組織_第2頁
第9章IO系統(tǒng)組織_第3頁
第9章IO系統(tǒng)組織_第4頁
第9章IO系統(tǒng)組織_第5頁
已閱讀5頁,還剩206頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

解決方法:減少處理機對外部設備的直接控制,乃至處理機不再干預外部設備的控制,而交由專門的硬件裝置去實現(xiàn)對外部設備的管理與監(jiān)督。2/4/202349.1.2I/O系統(tǒng)的組成典型計算機系統(tǒng)中I/O系統(tǒng)的組成:系統(tǒng)總線、I/O設備接口控制器、I/O設備、相關控制軟件。2/4/20235現(xiàn)代計算機系統(tǒng)中I/O系統(tǒng)的組成:擴展總線、I/O設備接口控制器、I/O設備、相關控制軟件。2/4/20236擴展總線及I/O接口控制器的作用:①分流CPU和內存之間以及外設和內存之間的數(shù)據(jù)流現(xiàn)代計算機系統(tǒng)的主機與外設工作速度相差很大,需要分流CPU和內存之間以及外設和內存之間的數(shù)據(jù)流,因此需要引入擴展總線。②便于系統(tǒng)實現(xiàn)標準化、模塊化。系統(tǒng)總線(也包括擴展總線)中的控制總線通常定義為通用或標準的信號,而具體的I/O設備設置的是專用的控制信號,因此需要I/O接口控制器進行信號的轉換。2/4/20237I/O設備控制接口的發(fā)展趨勢在現(xiàn)代計算機系統(tǒng)中,許多I/O設備的控制器中(比如磁盤控制器、激光打印機)往往會采用專用的微處理器對有關設備進行控制,使用相應的設備控制程序。因此傳統(tǒng)的單純由硬件電路實現(xiàn)的I/O設備控制接口,逐漸演變?yōu)橛绍?、硬件相互配合的I/O設備控制接口。2/4/202389.1.3主機與外設間的連接方式與組織管理主機與外圍設備的連接方式大致可分為:總線方式通道方式I/O處理機方式(IOP方式)2/4/202391.總線型連接方式CPU通過系統(tǒng)總線與主存儲器,I/O控制器,I/O接口電路相連接,通過I/O接口電路進一步實現(xiàn)對外設的控制。系統(tǒng)總線包括地址總線,數(shù)據(jù)總線和控制總線,分別用于傳送地址信號,數(shù)據(jù)信號和控制信號(如讀/寫信號、中斷申請及應答信號等)。2/4/2023102/4/202311總線型連接方式的優(yōu)點:系統(tǒng)模塊化程度較高,I/O接口擴充方便??偩€型連接方式的缺點:系統(tǒng)中部件之間的信息交換,均依賴于總線,總線成為系統(tǒng)中的速度瓶頸,因而不適于系統(tǒng)需配備有大量外設的場合。實際設備中,一種I/O接口適配器也可以控制多臺I/O設備,如多用戶卡。一塊多用戶I/O適配器,可以控制多臺終端的工作,這種方式稱之為現(xiàn)代星型I/O設備的連接方式。2/4/202312多用戶接口適配器終端終端…總線2/4/2023132.通道控制連接方式通道控制方式由通道控制器執(zhí)行專門的通道程序,通過I/O總線控制接口與外設。通道控制連接方式主要用于連接外設數(shù)量多,外設類型多,外設速度差異大的大型主機系統(tǒng)。2/4/2023142/4/202315通道控制器是專門負責I/O操作的控制器,它執(zhí)行一種專門的通道程序,可與CPU并行工作。通道控制器通過執(zhí)行通道程序或采用DMA方式實現(xiàn)存儲器與外部設備之間的直接數(shù)據(jù)傳輸,減少CPU對I/O處理工作的控制。通道控制器2/4/202316從連接角度看,主機一般通過單獨的數(shù)據(jù)通路分別連接數(shù)目有限的通道,各通道再通過I/O總線連接I/O接口,再與外設連接。通道的四級連接方式:主機→通道→I/O接口(設備控制器)→外設2/4/202317通道的四級連接方式2/4/2023183.I/O處理機控制連接方式(IOP方式)I/O處理機(IOP)一種具有比I/O通道更強獨立性的專用CPU。IOP有自己的指令系統(tǒng),可編程控制,適應性強、通用性好。其程序的執(zhí)行可與CPU并行,可使CPU徹底擺脫對I/O的控制處理。IOP可大可小,大的如在巨型機系統(tǒng)中,IOP可為一臺通用的小型機或中型計算機,稱為前端處理機;小的則為一塊大規(guī)模集成電路芯片,如Intel公司為其微處理器(CPU)8086配套的IOP—8089。2/4/2023199.1.4I/O信息傳送的控制方式I/O數(shù)據(jù)傳送控制方式也稱I/O信息交換方式。I/O數(shù)據(jù)傳送控制方式與主機和外設之間的連接方式有很大的關系,各種方式有不同的適用對象和應用場合,需要相應的硬件來支持。

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

程序中斷方式:

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

2/4/202322(2)由專有硬件控制的數(shù)據(jù)傳送這種控制方式需要在系統(tǒng)中設置專門用于控制I/O數(shù)據(jù)傳輸?shù)挠布b置,處理機只要啟動這些裝置,就會在它們的控制下完成I/O數(shù)據(jù)傳輸,因此具體的I/O數(shù)據(jù)傳輸過程無需處理機的控制。由專有硬件控制的數(shù)據(jù)傳送可具體分為:直接存儲器存取(DMA)方式通道控制方式I/O處理機控制方式2/4/2023239.2I/O接口接口:通常指設備(硬件)之間的界面。I/O接口:主機(系統(tǒng)總線)與外部設備或其它外部系統(tǒng)之間的接口邏輯。2/4/2023249.2.1I/O接口的基本功能⑴實現(xiàn)數(shù)據(jù)的傳送、緩沖、隔離和鎖存。⑵實現(xiàn)信號形式和數(shù)據(jù)格式轉換。⑶控制主機與外設之間的通信聯(lián)絡,實現(xiàn)控制命令和狀態(tài)信息的交換,保證時序協(xié)調。⑷尋址,即識別設備地址,選擇指定的設備和I/O端口。2/4/202325CPU和外設之間傳送的信息⑴數(shù)據(jù)信息①數(shù)字量數(shù)字量是指用二進制碼形式提供的信息,如用二進制形式表示的數(shù)據(jù)、以ASCII碼形式表示的字符等。通常有8位、16位和32位數(shù)據(jù)。②模擬量

模擬量是指連續(xù)變化的物理量,如溫度、濕度、位移、壓力、流量等。計算機無法直接接收和處理模擬量,要經(jīng)過A/D變換將模擬量變成數(shù)字量,才能送入計算機;同樣,計算機輸出的數(shù)字量要經(jīng)過D/A變換將數(shù)字量變成模擬量,才能送入使用模擬量的外設。2/4/202326③

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

2/4/202328⑶控制信息在外設的工作過程中,CPU需要通過控制信息控制外設的工作,如對外設的啟動和停止等。不同外設所需的控制信息各不相同,因此CPU需要通過接口將控制信息傳送給外設。2/4/202329I/O信息的傳送數(shù)據(jù)信息、狀態(tài)信息和控制信息各不相同,應該分別傳送。為了便于處理,將狀態(tài)信息、控制信息也廣義地看成數(shù)據(jù)信息,通過數(shù)據(jù)總線來傳送。為了區(qū)別這三種信息,在接口線路中將它們分別送入不同的寄存器(I/O端口)。CPU同外設之間的信息傳送實質上是對相應的寄存器進行“讀”或“寫”操作。端口(Port或I/O端口):接口中可以由CPU進行讀或寫的寄存器。2/4/202330I/O端口的尋址方式對I/O設備的尋址實質上就是對I/O端口的尋址。⑴

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

輸入/輸出設備占用地址數(shù)地址(16進制)硬盤控制器16320~32F軟盤控制器83F0~3F7彩色圖形顯示適配器163D0~3DF異步通訊控制器83F8~3FF2/4/202335I/O端口獨立編址方式的優(yōu)點:①I/O端口具有獨立的地址空間,不占用內存空間。②I/O指令中的地址字段的長度較短,可以節(jié)省指令存儲空間和指令執(zhí)行時間。③由于訪問存儲器和訪問I/O端口使用不同的指令,因此編制的程序比較清晰易讀。I/O端口獨立編址方式的缺點:I/O操作指令的種類通常沒有存儲器操作指令豐富,設計程序時不夠方便。2/4/2023369.2.2接口的基本組成2/4/202337⑴設備選擇電路用于接收總線傳來的地址信息,經(jīng)譯碼后,決定選擇哪個設備或I/O接口內部的部件。⑵數(shù)據(jù)緩沖寄存器(數(shù)據(jù)端口)用于存放主機與外設之間要傳遞的數(shù)據(jù)信息。⑶命令寄存器(控制端口)用于存放主機向外設發(fā)送的控制命令。⑷狀態(tài)寄存器(狀態(tài)端口)用于存放外設或接口的工作狀態(tài)。⑸其它有關部件如中斷控制邏輯、DMA控制邏輯以及各類特殊部件。2/4/2023389.2.3I/O接口的分類1.按數(shù)據(jù)傳送格式分串行接口:接口與設備之間的信息傳送是逐位串行進行的。并行接口:接口與設備之間的信息傳送是將一個字或一個字節(jié)的所有位同時并行地進行傳送的。2/4/2023392/4/202340主機串行接口外設TxDRxDDn-1~0主機并行接口外設Dn-1~0I/On-1~02/4/2023412.按時序的控制方式分同步接口:一般與同步總線相連,接口與總線采用統(tǒng)一時鐘信號,無論CPU與I/O設備,還是存儲器與I/O設備交換信息,都與總線同步時鐘脈沖同步。異步接口:與異步總線相連,接口與系統(tǒng)總線之間采用異步應答方式。2/4/2023423.按信息傳送交換的控制方式分程序控制I/O接口:采用直接程序控制方式進行信息交換的接口。程序中斷I/O接口:主機與外設以程序中斷方式進行信息交換控制的接口。直接存儲器存取I/O接口:以直接存儲器存取(DMA)方式控制信息傳送的接口。2/4/202343程序控制方式的特點:數(shù)據(jù)傳輸操作通過在處理機上執(zhí)行的I/O指令來實現(xiàn)。程序控制方式下數(shù)據(jù)傳輸?shù)倪^程:⑴輸入數(shù)據(jù)①CPU執(zhí)行I/O輸入指令,啟動輸入操作總線周期,將I/O接口數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)取到CPU中的累加器中。②CPU執(zhí)行寫存儲器指令,啟動寫存儲器總線周期,將累加器中存放的輸入數(shù)據(jù)寫到內存某個單元中。9.3程序控制方式2/4/202344⑵輸出數(shù)據(jù)①CPU執(zhí)行讀存儲器指令,啟動讀存儲器總線周期,將內存某個單元中存放的待輸出數(shù)據(jù)取到CPU的累加器中。②CPU執(zhí)行I/O輸出指令,啟動輸出操作總線周期,將累加器中存放的待輸出數(shù)據(jù)寫到設備接口的數(shù)據(jù)緩沖寄存器中。在程序控制方式下,內存與外設交換一個數(shù)據(jù)需要使用兩次總線,即需要執(zhí)行一個訪問存儲單元的總線周期和一個訪問I/O的總線周期。

2/4/2023459.3.1直接程序控制方式

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

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

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

入相應的中斷服務程序入口地址。⑶按是否可屏蔽分

可屏蔽中斷:CPU可以禁止響應的外部中斷。不可屏蔽中斷:CPU必須響應的外部中斷。

2/4/2023646.中斷系統(tǒng)的設計要求⑴保證中斷請求信號的建立及保持的準確性,保證中斷在未被響應時,中斷請求信號不能隨便被丟失。⑵保證各類中斷都能及時得到響應,不應出現(xiàn)某些中斷由于某種原因長時間得不到響應的情況。⑶必須防止在處理某個中斷過程中,又去響應同樣的中斷。⑷保證中斷處理過程的正確性,在中斷處理過程結束后能夠正確返回被中斷的程序使之繼續(xù)執(zhí)行。2/4/202365⑸高級中斷應能中斷低級中斷的處理,即要允許中斷嵌套。⑹中斷優(yōu)先級的設置應具備方便性及靈活性,允許動態(tài)改變一個中斷的優(yōu)先級別。2/4/2023669.3.2.2中斷請求信號的建立與傳送1.中斷請求信號的建立與中斷屏蔽中斷請求信號的建立,基于中斷源有請求中斷的需要。例如,當外設已“準備就緒”或“完成一次操作”,可以用這類狀態(tài)信號作為中斷請求信號建立的原始信號,使中斷請求觸發(fā)器的狀態(tài)置“1”,表明已有中斷請求。設備中通常有三種狀態(tài):空閑、就緒、忙2/4/202367空閑忙就緒Busy=0Ready=0Busy=0Ready=1產(chǎn)生中斷請求Busy=1Ready=0啟動清除準備好再啟動清除2/4/202368外設發(fā)出請求中斷信號的條件①外設準備就緒(Ready=1)②外設的中斷請求沒有被屏蔽2/4/202369中斷請求信號是否能夠傳送給CPU,要看中斷源是否被屏蔽。中斷屏蔽2/4/202370中斷屏蔽:中斷源的中斷請求不能向CPU發(fā)出??梢愿鶕?jù)需要對中斷請求信號予以屏蔽。①先屏蔽方式:在中斷請求觸發(fā)器IRQ的D端進行屏蔽。②后屏蔽方式:在中斷請求觸發(fā)器IRQ的輸出端進行屏蔽。③集中屏蔽方式:即在公共接口邏輯中設置一個中斷控制器,內含一個屏蔽字寄存器,CPU將屏蔽字送入其中。在各中斷源的接口不另設屏蔽觸發(fā)器。將各個請求信號匯集到中斷控制器,并與屏蔽字比較,若未被屏蔽,則中斷控制器送出一個公共的中斷請求信號INT,送往CPU。2/4/202371TD:狀態(tài)信號,TD=1,需要請求中斷TM:中斷屏蔽信號,TM=1,屏蔽中斷請求QIRQCPDIRQ&TDTMQIRQCPD1TDTMIRQ2/4/2023728259A的內部結構和引腳2/4/2023732.中斷請求信號的傳送一臺計算機系統(tǒng)中有多個中斷源,可能產(chǎn)生多個中斷請求信號,因此需要解決多個中斷請求信號如何傳送給CPU的問題。⑴獨立請求線方式(多線單級結構)各中斷源單獨設置自己的中斷請求線,多根請求線直接送往CPU。當CPU接到中斷請求信號后,立即知道請求源是誰,并予以相應的處理。這種方法有利于實現(xiàn)向量中斷,因為可以通過編碼電路形成向量地址。但因為CPU所能連接的中斷請求線數(shù)目有限,所以中斷源數(shù)目難以擴充。2/4/202374獨立請求線方式CPUINTR0INTR1INTRn-1┇2/4/202375⑵公共請求線方式(單線多級結構)各中斷源的請求信號通過三態(tài)門匯集到一根公共請求線,CPU只需接收一根中斷請求線的請求信號。這種方法節(jié)省引腳,但CPU響應中斷后,還需要通過一定邏輯來識別是哪個中斷源發(fā)出的中斷請求,所以響應速度慢一些。CPUINTR0INTR1INTRn-1I/OI/OI/O…INT2/4/202376⑶兩維結構(多線多級結構)CPU設置數(shù)根中斷請求輸入線,它們體現(xiàn)不同的優(yōu)先級別,稱為主優(yōu)先級。再將主優(yōu)先級相同的中斷請求源匯集到同一公共請求線上。這種方法綜合了前兩種模式的優(yōu)點,既可以在主優(yōu)先級層次迅速判明中斷源,又能隨意擴充中斷源數(shù)目。2/4/202377兩維結構CPUINTR0INTR1I/O…INT0INTRk-1I/OI/OINTR0INTR1I/O…INTRn-1I/OI/OINTn-1INTR0INTR1I/O…INT1INTRl-1I/OI/O┇2/4/202378⑷獨立請求線與公共請求線兼有方式將要求快速響應的中斷請求,采取獨立請求線方式,以便快速識別。將其余響應速度允許相對低些的中斷請求,匯集為一根公共請求線。有些微處理器由于引腳數(shù)有限,就采取這種模式。CPUINTRINTRINTRI/OI/OI/O…I/OI/OINTR0INTR1INTRm-12/4/2023799.3.2.3中斷排隊與判優(yōu)1.有關概念中斷排隊:中斷系統(tǒng)設計人員對中斷請求的響應次序作出安排。中斷判優(yōu):系統(tǒng)運行過程中,當有多個中斷源同時請求中斷時,根據(jù)中斷排隊事先規(guī)定的次序判斷中斷請求的響應優(yōu)先次序。中斷優(yōu)先級(中斷優(yōu)先權):根據(jù)中斷源中斷任務的緊迫程度,給各中斷請求安排的響應次序。2/4/202380中斷排隊的原則①內部中斷優(yōu)先于外部中斷②故障中斷優(yōu)先于設備請求中斷③非屏蔽中斷優(yōu)先于可屏蔽中斷④輸入操作的中斷請求優(yōu)先于輸出操作的中斷請求⑤數(shù)據(jù)有效時間短的中斷優(yōu)先于數(shù)據(jù)有效時間長的中斷具體設計時,中斷優(yōu)先級可以是固定的,也可以是動態(tài)變化的??梢圆捎糜布蜍浖M行中斷排隊和判優(yōu)。2/4/2023812.CPU與中斷請求間的判優(yōu)CPU是否響應中斷請求,要看當時占有CPU的程序的優(yōu)先級。如程序的優(yōu)先級高于或等于當前中斷請求的優(yōu)先級,則CPU可以不響應這個中斷,或說CPU不允許被中斷、中斷被禁止。如占有CPU的程序優(yōu)先級低于請求中斷的優(yōu)先級,則不應禁止這個中斷,而使CPU能夠響應這個中斷,或說CPU允許中斷。中斷禁止:在一定條件下,CPU不允許響應中斷。中斷允許:在一定條件下,CPU允許響應中斷。2/4/202382CPU現(xiàn)行程序與中斷請求的判優(yōu)方法⑴通過設置CPU內部的“中斷允許”狀態(tài)進行判優(yōu)在CPU內部設置“允許中斷”觸發(fā)器IEN(或在PSR中設置相應位P231),指令系統(tǒng)提供開中斷與關中斷功能(特權指令)。開中斷操作使TIEN=1,關中斷使TIEN=0。如果CPU處于關中斷狀態(tài),則表示所有外部中斷請求要求的服務都沒有現(xiàn)行程序的任務重要,CPU不響應外部中斷請求。如果CPU處于開中斷狀態(tài),則可以響應外部中斷請求。2/4/2023832/4/202384⑵在現(xiàn)行程序的程序狀態(tài)字(PSW)中設置現(xiàn)行程序的優(yōu)先級若中斷請求的優(yōu)先級高于現(xiàn)行程序的優(yōu)先級,則予以響應。CPU內部有一個優(yōu)先級比較邏輯,對PSW中給定的優(yōu)先級與中斷請求的優(yōu)先級進行比較,決定是否需要暫?,F(xiàn)行程序去響應中斷請求。操作系統(tǒng)可以根據(jù)實際情況動態(tài)地對PSW中的優(yōu)先級進行調整。2/4/202385例:某計算機內部程序與外部中斷請求優(yōu)先級和PSW的規(guī)定為:處理機0級處理機1級處理機7級外部請求0級外部請求1級外部請求7級765PSW內部優(yōu)先級2/4/2023862.中斷請求之間的排隊與判優(yōu)(1)軟件查詢響應中斷請求后,先轉入中斷查詢程序,按優(yōu)先順序依次詢問各中斷源是否提出請求。如果是,則轉入相應的服務處理程序。如果沒有,則繼續(xù)往下查詢。查詢的順序體現(xiàn)了優(yōu)先級別的高低,改變查詢順序也就修改了優(yōu)先級。在硬件上,每一個中斷源都附帶一個標志,用于代表相應的中斷源是否請求中斷。CPU用測試指令按一定優(yōu)先次序檢查這些標志,即可確定中斷源是否發(fā)出中斷請求。2/4/2023872/4/202388軟件查詢方法適用于低速和中速設備,多用于公共請求線方式。優(yōu)點:中斷條件標志的優(yōu)先級可用程序任意改變,靈活性好。缺點:設備多時,響應速度太慢。2/4/202389(2)并行優(yōu)先排隊邏輯采用硬件并行優(yōu)先排隊邏輯對具有獨立中斷請求線的中斷請求進行判優(yōu)。并行排優(yōu)邏輯適于具有多請求線的系統(tǒng),速度較快,硬件代價較高。2/4/2023902/4/202391采用硬件優(yōu)先鏈電路判斷中斷優(yōu)先級,判優(yōu)結果可用不同的設備碼或用中斷源類型碼來表示。鏈式優(yōu)先排隊邏輯多用于采用公共請求線的系統(tǒng)。(3)鏈式優(yōu)先排隊邏輯2/4/202392INTI中斷排隊輸入INTR1INTR2INTR3INTR4INTO中斷排隊輸出INTA中斷回答INTR1INTR2INTR3INTR4453210送CPU0CH0FH12H0EH2/4/202393設CPU可以接受n+1根中斷請求線,每根請求線的優(yōu)先級稱作主優(yōu)先級,在CPU內部有一個相應的判優(yōu)電路,以首先響應優(yōu)先級最高的請求。如果程序狀態(tài)字中有CPU現(xiàn)行程序的優(yōu)先級編碼,這個判優(yōu)電路同時擔負CPU與請求之間的判優(yōu)問題。將有關外設分成n+1組,每組的請求匯集到同一根請求線上,占有同一個主優(yōu)先級。在一個小組內,各設備又作進一步的優(yōu)先級劃分,稱為次優(yōu)先級。通常在小組內采取菊花鏈式的優(yōu)先鏈結構。(4)二維結構的優(yōu)先排隊2/4/202394二維結構的優(yōu)先排隊2/4/202395(5)采用中斷控制器集成芯片的優(yōu)先邏輯在微型計算機中,廣泛使用中斷控制器集成芯片,如Intel8259A。中斷控制器將中斷請求信號的寄存、匯集、屏蔽、排優(yōu)、編碼等邏輯,集成在一塊芯片之中。2/4/202396可編程中斷控制器Intel8259A2/4/2023979.3.2.4中斷響應CPU接到中斷請求信號后,若滿足響應中斷的條件,即暫?,F(xiàn)行程序的執(zhí)行,而轉入中斷處理,將這一過程稱為中斷響應。1.CPU響應中斷應具備的條件:(1)有中斷源請求中斷。(2)CPU允許響應中斷,即處于開中斷狀態(tài)。(3)現(xiàn)行指令不是停機指令(4)一條指令執(zhí)行結束。2/4/202398一般情況下,CPU響應中斷的時間是在一條指令執(zhí)行結束。但某些特殊的中斷,例如指令執(zhí)行過程中,取數(shù)時所需數(shù)據(jù)不在主存,這時不及時處理,指令就無法執(zhí)行下去,這就要求在指令執(zhí)行過程中響應中斷。2/4/202399中斷響應流程取指令停機停機指令執(zhí)行指令電源故障YN中斷請求N中斷處理YYN2/4/20231002.中斷響應過程中應完成的操作(1)關中斷

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

INAL,STRATESTAL,08HJNZA入口INAL,STRBTESTAL,08HJNZB入口┇2/4/20231042.通過硬件排隊與編碼電路獲得優(yōu)先級最高的中斷源的設備碼,并轉入相應的中斷服務程序入口。例:響應中斷后,執(zhí)行程序:INTAAC;發(fā)中斷回答信號INTA,將設

備碼讀入累加器AC中JMPAC+100H;轉入(AC)+100H處執(zhí)行1、2兩種方法也稱為非向量中斷2/4/20231053.向量中斷中斷向量:每個中斷源對應的中斷服務程序的入口地址及其程序狀態(tài)字PSW。中斷向量存放在特定的存儲區(qū)中,有些計算機沒有完整的程序狀態(tài)字,則中斷向量僅指中斷服務程序入口地址。中斷向量表:存放中斷向量的表。所有的中斷服務程序入口地址(或包括服務程序的狀態(tài)字)組織成一個一維的表格,存放在一段連續(xù)的存儲區(qū)中。中斷向量地址:訪問中斷向量表的地址碼,即讀取中斷向量所需的地址,也稱為中斷指針。2/4/2023106中斷向量地址1入口地址1程序狀態(tài)字1中斷向量地址2入口地址2程序狀態(tài)字2︰︰中斷向量地址n入口地址n程序狀態(tài)字n中斷向量表中斷向量2/4/2023107向量中斷:將各個中斷服務程序的入口地址(或包括狀態(tài)字)組織成中斷向量表;響應中斷時,由硬件直接產(chǎn)生對應于中斷源的向量地址;據(jù)此訪問中斷向量表,從中讀取中斷服務程序入口地址,由此轉向中斷服務程序。向量中斷的響應工作一般在中斷周期中由硬件直接實現(xiàn)。向量中斷的特點:能夠根據(jù)中斷請求信號快速、直接地轉向對應的中斷服務程序?,F(xiàn)代計算機基本上都具有向量中斷功能。2/4/2023108IBMPC機的中斷向量表2/4/2023109向量中斷的工作過程⑴中斷源提出中斷請求。⑵若CPU允許中斷,則發(fā)出中斷回答信號。⑶優(yōu)先級編碼電路形成優(yōu)先級最高的中斷請求的中斷向量地址存入中斷向量地址寄存器VAR。⑷保護斷點和現(xiàn)場,PC、PSW入棧。⑸根據(jù)中斷向量地址,將對應的中斷服務程序入口地址和PSW送入PC和PSR。⑹轉入中斷服務程序,進行中斷服務。⑺中斷返回,將保存的PC和PSW彈回PC和PSR。2/4/2023110主存0級入口0級PSW1級入口1級PSW┇7級入口7級PSWVARINTR0INTR1INTR7堆棧PSWPC××優(yōu)先級編碼電路PCPSRCPUINTRINTA⑤③①②④⑦⑥中斷服務⑥中斷服務2/4/20231119.3.2.6多重中斷與中斷屏蔽1.多重中斷(中斷嵌套)CPU在處理某一級中斷過程中.又遇到了新的中斷請求,CPU暫停原中斷的處理,而轉入處理新的中斷,待處理完畢,再恢復原來中斷的處理,這種中斷稱為多重中斷,也稱中斷嵌套。2.多重中斷的處理原則⑴若新的中斷的優(yōu)先級高于原來中斷的優(yōu)先級,則響應新的中斷請求;⑵若新的中斷優(yōu)先級同于或低于原來中斷的優(yōu)先級,則不予響應,必須待原來中斷處理完,返回原程序后,再響應新的中斷。2/4/2023112中斷嵌套主程序K:K+1:服務程序1服務程序2N1:M1:L:L+1:中斷返回中斷返回響應1響應22/4/20231133.實現(xiàn)多重中斷處理的方法采用中斷屏蔽技術。中斷屏蔽:當產(chǎn)生中斷請求后,用程序有選擇地封鎖部分中斷,而允許其余部分中斷仍得到響應。4.中斷屏蔽的實現(xiàn)方法為每一個可屏蔽的中斷源設一個中斷屏蔽觸發(fā)器來屏蔽該中斷源的中斷請求。為了實現(xiàn)多重中斷的處理原則,當CPU響應某個中斷請求后,送出一個新的屏蔽字,屏蔽同級和低級中斷,只允許響應更高級中斷。2/4/2023114可編程中斷控制器Intel8259A2/4/2023115例某計算機的中斷系統(tǒng)有五級中斷,優(yōu)先次序為1>2>3>4>5若CPU在執(zhí)行正常程序時,有下列事件發(fā)生:(1)中斷1,2,4提出請求;(2)在處理中斷4過程中,又有中斷3提出請求;(3)在處理中斷3時,又出現(xiàn)1,5中斷請求。請畫出CPU對所有事件的處理過程圖。2/4/2023116中斷源用戶程序中斷服務程序12345

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

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

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

2/4/2023132解:該外設接口中有一個16位的數(shù)據(jù)緩沖器,若采用中斷方式進行I/O操作,可以每16位進行一次中斷請求,因此,中斷請求的時間間隔為:2B/20kBps×106=100μs中斷服務程序的執(zhí)行時間為:

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

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

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

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

將一個CPU周期分為兩個分周期,與DMA分別使用。其中一個專供DMA訪存,另一個專供CPU訪存。這種方式不需要總線使用權的申請建立和歸還過程,總線使用權是通過不同的周期分別控制的。在這種工作方式下,CPU既不停止主程序的運行也不進入等待狀態(tài),在CPU不知不覺中完成了DMA的數(shù)據(jù)傳送,故又有“透明的DMA”方式之稱,當然周期擴展方式會使CPU的處理速度減慢,其相應的硬件邏輯也變得更為復雜。2/4/20231512/4/20231529.4.3DMA系統(tǒng)的硬件組織

在目前的計算機系統(tǒng)中,通常專門設置了DMA控制器,并且較多采取DMA控制器與DMA接口相分離的方式。1.DMA控制器(DMAC)DMAC負責申請、接管總線的控制權、發(fā)送地址和操作命令以及控制DMA傳送過程的起始與終止。DMA控制器獨立于具體I/O設備,可以為多個設備通用。2/4/2023153

DMAC的功能①接收外設的DMA請求,向CPU發(fā)出總線請求信號。請求CPU讓出總線。②當CPU發(fā)出DMA響應信號之后,接管對總線的控制,進入DMA方式。③對存儲器尋址,輸出和修改地址信息。④向存儲器和外設發(fā)出相應的讀/寫控制信號。⑤控制傳送的字節(jié)數(shù),判斷DMA傳送是否結束。⑥在DMA傳送結束以后,向CPU發(fā)出結束DMA請求信號,釋放總線,使CPU恢復對總線的控制,繼續(xù)正常工作。2/4/20231542.DMA接口用于實現(xiàn)與設備的連接和數(shù)據(jù)緩沖,反映設備的特定要求。2/4/20231559.4.4DMA控制器的組成1.DMAC的基本組成為了實現(xiàn)DMAC的功能,DMAC內部除需要有接受和發(fā)送DMA請求和響應信號的能力外,還應具有地址寄存和計數(shù)功能,以便控制對存儲器的尋址;具有傳輸量計數(shù)器,能夠對傳送的數(shù)據(jù)個數(shù)進行計數(shù)。2/4/2023156DMAC的基本組成2/4/2023157(1)主存地址寄存器MAR用于存放主存中需要交換數(shù)據(jù)的地址。在DMA傳送前,CPU通過執(zhí)行程序將數(shù)據(jù)在主存中的首地址送到主存地址寄存器。在DMA傳送過程中,每交換一次數(shù)據(jù),將地址寄存器內容加/減1,指向下一單元,直到一批數(shù)據(jù)傳送完畢為止。(2)傳輸量計數(shù)器

WC用于記錄傳送數(shù)據(jù)的總字數(shù)。傳輸量計數(shù)器一般采用補碼(負數(shù))表示要傳送的數(shù)據(jù)量。在DMA傳送過程中,每傳送一個字(或字節(jié)),計數(shù)器自動加1,當WC內容為零時,表示數(shù)據(jù)已全部傳送完畢,DMAC發(fā)出DMA傳送結束信號。2/4/2023158(3)數(shù)據(jù)緩沖寄存器DBR用于暫存每次傳送的數(shù)據(jù)。通常DMA接口與主存之間采用字傳送,而DMA與設備之間可能是字節(jié)或位傳送。因此DMA接口中還可能包括有裝配或拆卸字信息的硬件邏輯,如數(shù)據(jù)移位緩沖寄存器、字節(jié)計數(shù)器等。有的系統(tǒng)采用外設控制器上的數(shù)據(jù)緩沖器與內存單元之間通過數(shù)據(jù)總線直傳的方法,這樣就可以不用數(shù)據(jù)緩沖寄存器。(4)設備地址寄存器DAR存放I/O設備的設備碼或表示設備信息存儲區(qū)的尋址信息。如磁盤數(shù)據(jù)所在的柱面號、盤面號和扇區(qū)號。具體內容取決于設備的數(shù)據(jù)格式和編址方式。2/4/2023159(5)控制/狀態(tài)寄存器

CSR存放有關控制和狀態(tài)信息,如傳送方式、讀/寫狀態(tài)、傳送完畢與否等。也可使用多個寄存器,分別存放控制字和狀態(tài)字。(6)DMA控制邏輯DMA控制邏輯負責完成DMA的預處理(初始化各類寄存器)、接收設備控制器送來的DMA請求信號、向設備控制器回答DMA允許(應答)信號、向系統(tǒng)申請總線以及控制總線實現(xiàn)DMA傳輸控制等工作。2/4/2023160(7)DMA中斷控制邏輯DMA中斷控制邏輯負責在DMA操作完成后向CPU發(fā)出中斷請求,申請CPU對DMA操作進行后處理或進行下一次DMA傳送的預處理。注意:DMA傳送過程中的中斷與I/O中斷的技術相同,但中斷的目的不同。I/O中斷是為了數(shù)據(jù)的輸入或輸出,DMA傳送過程中的中斷是為了報告一批數(shù)據(jù)傳送結束。它們是I/O系統(tǒng)中不同的中斷事件。2/4/2023161(8)數(shù)據(jù)線、地址線和控制信號線

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

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

DMAC獲得總線后,即可按規(guī)定的傳送方式,進行數(shù)據(jù)的輸入或輸出操作,直到將所有數(shù)據(jù)傳輸完畢,DMAC將總線交還給CPU。需要時還向CPU發(fā)出中斷請求。2/4/2023165CPU響應中斷后,為DMA傳送作結束處理工作。①校驗送入主存的數(shù)據(jù)是否正確②決定是否繼續(xù)用DMA方式傳送,還是結束傳送③測試在傳送過程中是否發(fā)生了錯誤④判斷傳送工作是否正常結束3.DMA后處理2/4/20231662/4/20231672/4/2023168例:DMA數(shù)據(jù)輸入過程(DMA寫)①從設備讀入一個字到DMA的數(shù)據(jù)緩沖寄存器DBR中,表示數(shù)據(jù)緩沖寄存器“滿”;②外設向DMAC發(fā)請求(DREQ);③DMAC向CPU申請總線控制權(HRQ);④CPU發(fā)回HLDA信號,表示允許將總線控制權交給DMAC;⑤將DMA主存地址寄存器中的主存地址送地址總線;⑥通知設備已被授予一個DMA周期(DACK),并為交換下一個字做準備;2/4/2023169⑦將DMA數(shù)據(jù)緩沖寄存器的內容送數(shù)據(jù)總線;⑧向存儲器發(fā)寫命令:⑨修改主存地址和字計數(shù)值;⑩判斷數(shù)據(jù)塊是否傳送結束,若未結束,則繼續(xù)傳送;若已結束,(字計數(shù)器計數(shù)為0),則向CPU申請程序中斷,標志數(shù)據(jù)塊傳送結束。2/4/2023170例:DMA數(shù)據(jù)輸出過程(DMA讀)①當DMA數(shù)據(jù)緩沖寄存器已將輸出數(shù)據(jù)送至I/O設備后,表示數(shù)據(jù)緩沖寄存器已“空”;②外設向DMAC發(fā)請求(DREQ);③DMAC向CPU申請總線控制權(HRQ);④CPU發(fā)回HLDA信號,表示允許將總線控制權交給DMAC使用;⑤將DMA主存地址寄存器中的主存地址送地址總線,并發(fā)存儲器讀命令;⑥通知設備已被授予一個DMA周期(DACK),并為交換下一個字做準備:2/4/2023171⑦主存將相應地址單元的內容通過數(shù)據(jù)總線讀入到DMA的數(shù)據(jù)緩沖寄存器中;⑧將DMA數(shù)據(jù)緩沖寄存器的內容送到輸出設備;⑨修改主存地址和字計數(shù)值:⑩判斷數(shù)據(jù)塊是否已傳送完畢,若未完,繼續(xù)傳送;若已送完,則向CPU申請程序中斷。2/4/2023172DMA方式與程序中斷的比較程序中斷DMA方式以CPU為中心,采用軟硬結合,以軟件為主的方式,控制設備與主機之間的數(shù)據(jù)傳送。以主存為中心,采用硬件手段,控制設備與主存間直接進行數(shù)據(jù)傳送。因為需要程序切換,所以需要保護與恢復現(xiàn)場。由DMA控制器直接控制數(shù)據(jù)傳送。在數(shù)據(jù)傳送期間,不需要CPU干預,不需保護與恢復現(xiàn)場。適合于慢速外設。適合于快速外設。必須在一條指令執(zhí)行結束后才能響應。在一個訪存周期結束后即可響應??蓪崿F(xiàn)多種處理功能僅用于數(shù)據(jù)傳送2/4/2023173總結直接程序控制(無條件傳送和查詢式傳送):外設與主機工作完全串行。程序中斷:外設與主機工作大部分并行。DMA方式:外設與主機工作幾乎完全并行,系統(tǒng)開銷很小。隨著I/O系統(tǒng)的日益復雜,僅靠中斷和DMA方式已不能滿足要求。因為程序中斷的系統(tǒng)開銷較大;DMAC可帶的設備少,功能簡單,且系統(tǒng)中多個DMAC容易造成訪存沖突,所以又出現(xiàn)了通道和I/O處理機方式,從而可以更好地控制I/O系統(tǒng)的工作。2/4/20231749.5I/O通道方式

9.5.1概述

在計算機系統(tǒng)中,通道作為一個獨立的I/O控制部件,能執(zhí)行有限的I/O通道指令,代替CPU管理和控制外設。通道使主機與I/O設備之間能夠達到更高的并行程度。通道能夠被多臺外圍設備共享。I/O通道的任務控制、管理輸入/輸出操作,為I/O設備提供傳送數(shù)據(jù)的通道。2/4/20231751.I/O通道的特點⑴I/O通道有自己的指令系統(tǒng),能夠獨立執(zhí)行用通道命令編寫的輸入輸出控制程序,控制設備工作。⑵I/O通道可根據(jù)需要控制多種不同的設備。⑶每個I/O通道可以連接多個外部設備,每個外設對應一個子通道。⑷I/O通道通過系統(tǒng)中的數(shù)據(jù)通路與設備的控制器進行通信。2/4/20231762.I/O通道與DMA方式的異同⑴相同點I/O通道與DMA方式都是在主存與I/O設備之間建立數(shù)據(jù)通路,用專用的控制器控制數(shù)據(jù)的直接傳送。⑵不同點DMA方式通過硬件控制主存與設備之間的信息傳送。I/O通道通過執(zhí)行通道程序控制主存與設備之間的信息傳送。DMA方式只能控制少量的同類設備,只能傳送數(shù)據(jù)。I/O通道可控制多種不同的設備,除傳送數(shù)據(jù)外,還可以完成接口的初始化、故障診斷與處理等工作。2/4/20231773.I/O通道與程序中斷方式的異同⑴相同點I/O通道與程序中斷方式都是通過執(zhí)行程序去管理I/O操作,因而靈活性較強,都可以通過擴展程序的功能來擴展處理能力。⑵不同點程序中斷方式在數(shù)據(jù)傳輸時需要CPU執(zhí)行程序控制數(shù)據(jù)的傳輸,要占用CPU的時間;I/O通道在被CPU啟動后,由通道執(zhí)行程序控制數(shù)據(jù)傳輸,使CPU可以從大部分I/O管理中解脫出來。2/4/20231784.帶有I/O通道的I/O系統(tǒng)結構主機—通道—設備控制器—設備四級連接方式。

2/4/2023179⑴CPU的任務執(zhí)行I/O指令。啟動/關閉通道與設備。處理來自通道的中斷,如數(shù)據(jù)傳輸中斷、故障中斷等。通道執(zhí)行的通道程序由操作系統(tǒng)提供。2/4/2023180⑵I/O通道的任務①接受CPU發(fā)來的I/O指令,與指定的設備連接,訪問指定的設備。②執(zhí)行CPU為通道組織的通道程序。從通道緩沖區(qū)中讀取通道指令,經(jīng)譯碼分析,向指定的設備控制器或設備發(fā)出各種操作控制命令。③組織和控制數(shù)據(jù)在內存與外設之間的信息傳送操作。根據(jù)需要提供數(shù)據(jù)緩存空間以及數(shù)據(jù)存入內存或從內存中讀取的地址;提供外設的有關地址;控制傳送的數(shù)據(jù)量;指定傳送工作結束時要進行的操作,根據(jù)對傳送數(shù)據(jù)的計數(shù)判斷數(shù)據(jù)傳送工作是否結束。2/4/2023181④在數(shù)據(jù)傳輸過程中完成必要的格式變換,例如,把字拆卸為字節(jié),或者把字節(jié)裝配成字等。⑤讀取和接收外設的狀態(tài)信息,檢查外圍設備的工作狀態(tài)是正常還是故障,形成通道狀態(tài)信息,并根據(jù)需要將設備的狀態(tài)信息送往主存指定單元保存。⑥向CPU發(fā)出I/O中斷請求。對來自外設及通道的中斷請求按優(yōu)先次序進行排隊后報告CPU。通道使用通道指令控制設備進行數(shù)據(jù)傳送操作,并以通道狀態(tài)字的形式接收設備控制器提供的外部設備的狀態(tài)。2/4/2023182⑶設備控制器的任務①從通道接受通道指令,控制外部設備完成指定的操作。如控制外設的啟/停,向設備發(fā)出各種設備專有的控制信號等。②向通道提供外部設備的狀態(tài)。如設備的忙、閑、出錯信息等。③將各種外部設備的不同信號轉換成通道能夠識別的標準信號。④控制輔助操作。如磁帶的進帶、倒帶等操作。2/4/20231839.5.2通道的類型根據(jù)多臺外設共享通道的不同情況,可將通道分為三種類型。1.字節(jié)多路通道字節(jié)多路通道是一種簡單的共享通道,可以依靠通道與CPU之間的高速數(shù)據(jù)通路分時地為多臺設備服務。在字節(jié)多路通道中,一個通道含有多個子通道,使用公共的控制部分。每個子通道連接一個設備控制器,一個設備控制器可連接多臺設備,設備可以采用字節(jié)交叉模式分時交替地使用通道進行數(shù)據(jù)傳送。2/4/2023184字節(jié)交叉模式:連接在通道上的各個設備輪流占用一個很短的時間片傳輸一個字節(jié)。字節(jié)多路通道要求每種設備分時占用通道一個很短的時間段,不同的設備在各自分得的時間段內與通道建立傳輸連接,實現(xiàn)數(shù)據(jù)的傳送。

2/4/2023185字節(jié)多路通道的結構2/4/2023186字節(jié)多路通道的信息傳送方式A1A2A3A4A5A6B1B2B3B4B5B6C1C2C3C4C5C6通道控制A1B1C1A2B2C2Ai、Bi、Ci分別為傳送的字節(jié)信息2/4/20231872.選擇通道選擇通道只有一套完整的硬件,以獨占的方式工作,逐個輪流地為物理上連接的幾臺高速外設服務。選擇通道在一段時間內單獨為一臺外設服務,但在不同的時間內可以選擇不同的設備。選擇通道一旦選中某一設備,通道就進入“忙”狀態(tài)直到該設備的數(shù)據(jù)傳輸工作全部結束為止。選擇通道傳送的數(shù)據(jù)寬度是可變的,它為一臺外設傳送完數(shù)據(jù)后才轉去處理其他外設。2/4/2023188選擇通道的結構2/4/2023189選擇通道的信息傳送方式A1A2A3…An通道A1…AnB1…BnC1…CnB1B2B3…BnC1C2C3…CnA1…An、B1…Bn、

C1…Cn分別為成組數(shù)據(jù)2/4/20231903.數(shù)組多路通道數(shù)組多路通道將字節(jié)多路通道和選擇通道的特性結合起來。一個通道可帶有多個子通道,各子通道以成組交叉模式輪流使用通道。成組交叉模式:利用通道

溫馨提示

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

評論

0/150

提交評論