計算機(jī)系統(tǒng)組成電子教案(第9章)_第1頁
計算機(jī)系統(tǒng)組成電子教案(第9章)_第2頁
計算機(jī)系統(tǒng)組成電子教案(第9章)_第3頁
計算機(jī)系統(tǒng)組成電子教案(第9章)_第4頁
計算機(jī)系統(tǒng)組成電子教案(第9章)_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、東南大學(xué)計算機(jī)學(xué)院東南大學(xué)計算機(jī)學(xué)院主講教師:主講教師: 徐造林徐造林計算機(jī)系統(tǒng)組成計算機(jī)系統(tǒng)組成第第9章章 輸入輸出系統(tǒng)輸入輸出系統(tǒng) 輸入輸出組織輸入輸出組織:控制外設(shè)與內(nèi)存或:控制外設(shè)與內(nèi)存或CPU之間進(jìn)行數(shù)之間進(jìn)行數(shù)據(jù)交換的機(jī)構(gòu);據(jù)交換的機(jī)構(gòu); 把把I/O設(shè)備及其接口線路、控制部件、通道或設(shè)備及其接口線路、控制部件、通道或I/O處處理器以及理器以及I/O軟件統(tǒng)稱為軟件統(tǒng)稱為輸入輸出系統(tǒng)輸入輸出系統(tǒng)。 本章主要介紹本章主要介紹I/O接口的功能和結(jié)構(gòu)接口的功能和結(jié)構(gòu)、I/O設(shè)備的編設(shè)備的編址和尋址址和尋址、主機(jī)和外設(shè)間進(jìn)行數(shù)據(jù)傳送的各種、主機(jī)和外設(shè)間進(jìn)行數(shù)據(jù)傳送的各種輸入輸入輸出控制方式輸出

2、控制方式。9.1 I/O接口接口 完成各個外設(shè)和主機(jī)之間的同步與協(xié)調(diào)、工作速度完成各個外設(shè)和主機(jī)之間的同步與協(xié)調(diào)、工作速度的匹配和數(shù)據(jù)格式轉(zhuǎn)換的的匹配和數(shù)據(jù)格式轉(zhuǎn)換的邏輯部件邏輯部件稱為稱為I/O接口接口。 計算機(jī)中各種計算機(jī)中各種I/O控制器控制器(I/O處理器)或處理器)或設(shè)備控制設(shè)備控制器器都是都是I/O接口。接口。 接口定義接口定義 定義:定義:是是CPU與與“外部世界外部世界”的的連接電路連接電路,負(fù)責(zé),負(fù)責(zé)“中轉(zhuǎn)中轉(zhuǎn)”各種信息。各種信息。 分類:分類:存儲器接口和存儲器接口和I/O接口接口。 位置:位置:介于系統(tǒng)介于系統(tǒng)總線與外部設(shè)備總線與外部設(shè)備之間。之間。地址總線地址總線數(shù)據(jù)總

3、線數(shù)據(jù)總線 控制總線控制總線總線總線地址譯碼器地址譯碼器控制線路控制線路數(shù)據(jù)和狀態(tài)緩沖器數(shù)據(jù)和狀態(tài)緩沖器輸入設(shè)備輸入設(shè)備I/O接口接口圖圖9.1 用于輸入設(shè)備的用于輸入設(shè)備的I/O接口接口圖圖9.2 計算機(jī)計算機(jī)I/O接口類型接口類型 I/O接口接口與與I/O設(shè)備設(shè)備 不同不同I/O設(shè)備對應(yīng)設(shè)備對應(yīng)I/O接口不同;接口不同; I/O接口受接口受CPU控制,控制,I/O設(shè)備受設(shè)備受I/O接口控制;接口控制; 為增加通用性,為增加通用性,I/O接口的接口電路一般均具有接口的接口電路一般均具有可編程功能可編程功能; 微機(jī)的應(yīng)用離不開與外部設(shè)備接口的設(shè)計、選微機(jī)的應(yīng)用離不開與外部設(shè)備接口的設(shè)計、選用和

4、連接。用和連接。9.1.1 I/O接口的功能接口的功能(2)錯誤或狀態(tài)檢測錯誤或狀態(tài)檢測:提供狀態(tài)寄存器供:提供狀態(tài)寄存器供CPU查用;查用; (3)控制和定時控制和定時:接收系統(tǒng)總線來的控制和定時信號;:接收系統(tǒng)總線來的控制和定時信號;協(xié)調(diào)內(nèi)部資源與外設(shè)間動作的先后關(guān)系,控制數(shù)協(xié)調(diào)內(nèi)部資源與外設(shè)間動作的先后關(guān)系,控制數(shù)據(jù)通信過程;據(jù)通信過程;(4)數(shù)據(jù)格式轉(zhuǎn)換數(shù)據(jù)格式轉(zhuǎn)換;(1)數(shù)據(jù)緩沖數(shù)據(jù)緩沖:解決主機(jī)和外設(shè)工作速度的匹配問題;:解決主機(jī)和外設(shè)工作速度的匹配問題;(5)與主機(jī)和設(shè)備通信與主機(jī)和設(shè)備通信:必須通過:必須通過I/O接口完接口完成主機(jī)與設(shè)備之間的通信。成主機(jī)與設(shè)備之間的通信。a)

5、I/O接口與主機(jī)側(cè)進(jìn)行通信:接口與主機(jī)側(cè)進(jìn)行通信: 進(jìn)行地址譯碼,以確定是否選中本設(shè)備;進(jìn)行地址譯碼,以確定是否選中本設(shè)備; 接收控制信息,確定數(shù)據(jù)傳送的方向等;接收控制信息,確定數(shù)據(jù)傳送的方向等; 接、接、送數(shù)據(jù)或狀態(tài)信息。送數(shù)據(jù)或狀態(tài)信息。b)I/O接口與設(shè)備進(jìn)行通信:接口與設(shè)備進(jìn)行通信: 將控制寄存器中的將控制寄存器中的命令譯碼命令譯碼,輸出到外部接口,輸出到外部接口的控制線上;的控制線上; 發(fā)送數(shù)據(jù)緩沖寄存器的發(fā)送數(shù)據(jù)緩沖寄存器的數(shù)據(jù)到外部接口數(shù)據(jù)到外部接口的數(shù)據(jù)的數(shù)據(jù)線上;線上; 接收外設(shè)的狀態(tài)或數(shù)據(jù)信息接收外設(shè)的狀態(tài)或數(shù)據(jù)信息,送到接口中的狀態(tài),送到接口中的狀態(tài)寄存器或數(shù)據(jù)緩沖寄存

6、器中。寄存器或數(shù)據(jù)緩沖寄存器中。 分析和設(shè)計分析和設(shè)計I/O接口的方法接口的方法(1)分析接口兩側(cè)的情況)分析接口兩側(cè)的情況 內(nèi)部接口內(nèi)部接口通過系統(tǒng)總線與內(nèi)存、通過系統(tǒng)總線與內(nèi)存、CPU相連;相連; 外部接口外部接口通過各種接口電纜將其連到外設(shè)上。通過各種接口電纜將其連到外設(shè)上。 (2)進(jìn)行信號轉(zhuǎn)換)進(jìn)行信號轉(zhuǎn)換 數(shù)據(jù)信號轉(zhuǎn)換和控制信號轉(zhuǎn)換。數(shù)據(jù)信號轉(zhuǎn)換和控制信號轉(zhuǎn)換。(3)合理選用接口芯片)合理選用接口芯片(4)接口驅(qū)動程序的分析和設(shè)計)接口驅(qū)動程序的分析和設(shè)計9.1.2 I/O接口的結(jié)構(gòu)接口的結(jié)構(gòu)圖圖9.3 I/O接口的通用結(jié)構(gòu)接口的通用結(jié)構(gòu)數(shù)據(jù)緩沖寄存器狀態(tài)/控制寄存器外設(shè)界面控制邏輯

7、外設(shè)界面控制邏輯地址譯碼和I/O 控制邏輯控制狀態(tài)數(shù)據(jù)控制狀態(tài)數(shù)據(jù)控制線地址線數(shù)據(jù)線主機(jī)側(cè)(系統(tǒng)總線)設(shè)備側(cè)(接口電纜) 接口硬件組成接口硬件組成 接口軟件(設(shè)備驅(qū)動程序)接口軟件(設(shè)備驅(qū)動程序) 初始化程序段:初始化程序段:設(shè)置接口工作方式及初始條件。設(shè)置接口工作方式及初始條件。 傳送方式處理程序段:傳送方式處理程序段:CPU針對不同的針對不同的I/O設(shè)備設(shè)備有不同的處理方式。有不同的處理方式。 主控程序段:主控程序段:完成接口任務(wù)的程序。完成接口任務(wù)的程序。 程序終止與退出程序段:程序終止與退出程序段:接口電路硬件保護(hù)及操作接口電路硬件保護(hù)及操作系統(tǒng)中數(shù)據(jù)恢復(fù)。系統(tǒng)中數(shù)據(jù)恢復(fù)。 輔助程序段

8、:輔助程序段:提供人提供人-機(jī)對話手段。機(jī)對話手段。9.1.3 I/O接口的分類接口的分類(1) 按數(shù)據(jù)傳送方式分,有按數(shù)據(jù)傳送方式分,有并行接口和串行接口并行接口和串行接口 主機(jī)側(cè)的內(nèi)部接口,主機(jī)側(cè)的內(nèi)部接口,進(jìn)行并行傳輸進(jìn)行并行傳輸; 外設(shè)側(cè)的外部接口,有外設(shè)側(cè)的外部接口,有串行和并行串行和并行兩種傳送方式。兩種傳送方式。(2) 可編程可編程接口和不可編程接口接口和不可編程接口 (3) 按通用性來分,有按通用性來分,有通用接口和專用接口通用接口和專用接口 通用接口可供多種外設(shè)使用,如通用接口可供多種外設(shè)使用,如Intel 8255、Intel 8212; 專用接口是為某類外設(shè)或某種用途專門

9、設(shè)計的,如專用接口是為某類外設(shè)或某種用途專門設(shè)計的,如Intel 8279可可編程鍵盤編程鍵盤/顯示器接口、顯示器接口、Intel 8275可編程可編程CRT控制器接口??刂破鹘涌?。(4) 按數(shù)據(jù)按數(shù)據(jù)傳送的控制傳送的控制方式來分,有程序控制方式接口、方式來分,有程序控制方式接口、程序中斷方式接口和直接內(nèi)存訪問方式接口。程序中斷方式接口和直接內(nèi)存訪問方式接口。(5) 按設(shè)備的按設(shè)備的連接方式連接方式來分,有來分,有點(diǎn)對點(diǎn)點(diǎn)對點(diǎn)接口和接口和多點(diǎn)接口多點(diǎn)接口。點(diǎn)對點(diǎn)接口:如打印機(jī)、鍵盤、調(diào)制解調(diào)器等設(shè)備;點(diǎn)對點(diǎn)接口:如打印機(jī)、鍵盤、調(diào)制解調(diào)器等設(shè)備;多點(diǎn)接口:多點(diǎn)接口:SCSI接口和接口和P139

10、4接口等。接口等。 9.1.4 I/O端口的尋址方式端口的尋址方式 I/O端口尋址端口尋址:讓:讓CPU能方便地找到要進(jìn)行信息能方便地找到要進(jìn)行信息交換的設(shè)備;交換的設(shè)備; I/O端口:端口:CPU與與I/O設(shè)備直接通信的地址。設(shè)備直接通信的地址。 操作系統(tǒng)在操作系統(tǒng)在I/O中的作用中的作用 使使用戶程序通過一些簡單的用戶程序通過一些簡單的命令或系統(tǒng)調(diào)用命令或系統(tǒng)調(diào)用就能就能使用各種使用各種I/O設(shè)備。設(shè)備。 I/O軟件的四個層次軟件的四個層次 用戶層用戶層I/O軟件;軟件; 與設(shè)備無關(guān)的操作系統(tǒng)與設(shè)備無關(guān)的操作系統(tǒng)I/O軟件;軟件; 設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序; I/O中斷處理程序。中斷處理程

11、序。 (1) 獨(dú)立編址方式獨(dú)立編址方式:對所有的:對所有的I/O端口單獨(dú)進(jìn)行編號端口單獨(dú)進(jìn)行編號,成為一個獨(dú)立的成為一個獨(dú)立的I/O地址空間。地址空間。 需要用需要用專門的輸入輸出指令專門的輸入輸出指令來訪問來訪問I/O端口。端口。 (2) 統(tǒng)一編址方式統(tǒng)一編址方式:將:將主存地址空間主存地址空間分出一部分地址給分出一部分地址給I/O端口進(jìn)行編號。端口進(jìn)行編號。 訪存指令和輸入輸出訪存指令和輸入輸出指令相同指令相同。 I/O端口的編址方式端口的編址方式圖圖9.4 統(tǒng)一編址方式統(tǒng)一編址方式 有關(guān)主存的尋址方式都可用于有關(guān)主存的尋址方式都可用于I/O端口的尋址。端口的尋址。外設(shè)外設(shè)或或I/O寄存器

12、數(shù)目幾乎不受限制。寄存器數(shù)目幾乎不受限制。 主存空間減少;址線都需參與地址譯碼,使譯碼電路主存空間減少;址線都需參與地址譯碼,使譯碼電路變復(fù)雜。變復(fù)雜。系統(tǒng)總線系統(tǒng)總線主存單元主存單元0000H7FFFHI/O端口端口CPUMEMWMEMRIORIOWA158000HFFFFH圖圖9.5 獨(dú)立編址方案獨(dú)立編址方案 尋址速度快;專用尋址速度快;專用I/O指令,使得程序清晰。指令,使得程序清晰。 程序設(shè)計靈活性差些;控制邏輯較復(fù)雜程序設(shè)計靈活性差些;控制邏輯較復(fù)雜。系統(tǒng)總線系統(tǒng)總線主存單元主存單元0000HFFFFH00HFFHCPUMEMRMEMW88IORIOW16AB8DBI/O端口端口 獨(dú)

13、立編址方式的端口訪問獨(dú)立編址方式的端口訪問 8088/8086采用采用I/O端口與累加器之間的傳送端口與累加器之間的傳送IN AX,PORT ;直接尋址;直接尋址IN AL,PORTOUT PORT,AXOUT PORT,ALMOV DX,PORT ;寄存器間接尋址;寄存器間接尋址IN AX,DXIN AL,DXOUT DX,AXOUT DX,AL I/O接口芯片片選譯碼(接口芯片片選譯碼(集中譯碼集中譯碼)Y0Y7ABCG2BG2AG11514131211109712345674LS138A5A6A7A8A9AENDMACS(8237)INTRCS(8259)T/C CS(8253)PPIC

14、S(8255)WRTDMAPG11WRTNMIREGIOW 74LS138在在PC/XT機(jī)系統(tǒng)板中芯片的譯碼機(jī)系統(tǒng)板中芯片的譯碼001FH203FH405FH607FH809FHA0BFH表表9.1 部分外設(shè)控制器的部分外設(shè)控制器的I/O地址分配表地址分配表輸入輸入/出設(shè)備出設(shè)備 I/O地址地址 占用地址數(shù)占用地址數(shù)DMA控制器控制器1 000-01FH 32中斷控制器中斷控制器1 020-03FH 32定時器定時器/計數(shù)器計數(shù)器 040-05FH 32鍵盤控制器鍵盤控制器 060-06FH32實(shí)時時鐘,實(shí)時時鐘,NMI屏蔽寄存器屏蔽寄存器 070-07FH16DMA頁面寄存器頁面寄存器 08

15、0-09FH32中斷控制器中斷控制器2 0A0-0BFH32DMA控制器控制器2 0C0-0DFH32硬盤控制器硬盤控制器2 170-177H 8硬盤控制器硬盤控制器1 1F0-1F8H8輸入輸入/出設(shè)備出設(shè)備 I/O地址地址 占用地址數(shù)占用地址數(shù)游戲游戲I/O口口 200-207H 8并行打印機(jī)口并行打印機(jī)口2 278-27FH8串行口串行口4 2E8-2EFH8串行口串行口2 2F8-2FFH8軟盤控制器軟盤控制器2 370-377H 8并行打印機(jī)口并行打印機(jī)口1 378-37FH8單色顯示器單色顯示器/打印適配器打印適配器 3B0-3BFH16彩色彩色/圖形監(jiān)視器適配器圖形監(jiān)視器適配器

16、3D0-3DFH16串行口串行口3 3E8-3EFH8軟盤控制器軟盤控制器1 3F0-3F7H8串行口串行口1 3F8-3FFH8表表9.1續(xù)續(xù)9.2 I/O數(shù)據(jù)傳送控制方式數(shù)據(jù)傳送控制方式 9.2.1 I/O控制方式類型控制方式類型1. 程序直接控制方式(查詢方式)程序直接控制方式(查詢方式) 從從I/O接口取得外設(shè)和接口的狀態(tài),根據(jù)狀態(tài)來控制接口取得外設(shè)和接口的狀態(tài),根據(jù)狀態(tài)來控制外設(shè)和主機(jī)的信息交換。外設(shè)和主機(jī)的信息交換。2. 程序中斷控制方式程序中斷控制方式 執(zhí)行相應(yīng)的執(zhí)行相應(yīng)的I/O指令,將啟動命令發(fā)送給相應(yīng)的指令,將啟動命令發(fā)送給相應(yīng)的I/O接口和外設(shè),然后接口和外設(shè),然后CPU繼

17、續(xù)執(zhí)行其他程序。繼續(xù)執(zhí)行其他程序。 3. 直接存儲器存取方式直接存儲器存取方式 簡稱為簡稱為DMA方式,用于高速設(shè)備和主機(jī)的數(shù)據(jù)傳送,采用方式,用于高速設(shè)備和主機(jī)的數(shù)據(jù)傳送,采用成批數(shù)據(jù)交換方式。成批數(shù)據(jù)交換方式。 用專門的硬件(用專門的硬件(DMA控制器)來控制總線進(jìn)行數(shù)據(jù)交換??刂破鳎﹣砜刂瓶偩€進(jìn)行數(shù)據(jù)交換。4. 通道和通道和I/O處理器方式處理器方式 獲得獲得CPU和外設(shè)之間和外設(shè)之間更高的并行性更高的并行性,讓種類繁多、物理特性,讓種類繁多、物理特性各異的外設(shè)能以標(biāo)準(zhǔn)的接口連接到系統(tǒng)中。各異的外設(shè)能以標(biāo)準(zhǔn)的接口連接到系統(tǒng)中。 主要由程序?qū)崿F(xiàn)主要由程序?qū)崿F(xiàn)I/O控制方式控制方式主要由附加

18、硬件實(shí)現(xiàn)主要由附加硬件實(shí)現(xiàn)圖圖9.6 外部設(shè)備的外部設(shè)備的I/O控制方式控制方式DMA方式方式通道方式通道方式IOP方式方式程序直接程序直接控制方式控制方式程序中斷程序中斷控制方式控制方式9.2.2 程序直接控制方式程序直接控制方式1. 無條件傳送方式(同步傳送方式)無條件傳送方式(同步傳送方式) RD鎖存器CE8至輸出設(shè)備8WR端 口地 址譯 碼器系統(tǒng)總線 DB來自系統(tǒng)總線 AB來自系統(tǒng)總線 CBM/IO三態(tài)緩沖器8CE來自輸入設(shè)備 用于簡單外用于簡單外設(shè)(開關(guān)、設(shè)(開關(guān)、繼電器、繼電器、7段段顯示器等)顯示器等)進(jìn)行的數(shù)據(jù)進(jìn)行的數(shù)據(jù)傳送。傳送。 在在規(guī)定的時間規(guī)定的時間用用I/O指令對指令

19、對接口中的寄存接口中的寄存器進(jìn)行信息的器進(jìn)行信息的輸入或輸出輸入或輸出。2. 條件傳送方式(異步傳送方式)條件傳送方式(異步傳送方式) 通過程序查詢?nèi)〉猛ㄟ^程序查詢?nèi)〉猛庠O(shè)和接口的狀態(tài)外設(shè)和接口的狀態(tài)(就緒、忙、完(就緒、忙、完成),根據(jù)這些狀態(tài)來控制外設(shè)和主機(jī)的信息交換。成),根據(jù)這些狀態(tài)來控制外設(shè)和主機(jī)的信息交換。 程序查詢方式的特點(diǎn)程序查詢方式的特點(diǎn) 程序查詢方式程序查詢方式簡單、易控制、外圍接口控制邏輯少;簡單、易控制、外圍接口控制邏輯少; CPU與外設(shè)完全串行工作,效率低、速度慢;與外設(shè)完全串行工作,效率低、速度慢; CPU會浪費(fèi)許多處理器時間。會浪費(fèi)許多處理器時間。設(shè)置計數(shù)值讀接口

20、狀態(tài)傳送一個數(shù)據(jù)就緒否?修改內(nèi)存地址啟動外設(shè)修改計數(shù)值完成否?結(jié)束NYYN設(shè)置內(nèi)存緩沖區(qū)首址 程序查詢方式程序查詢方式數(shù)據(jù)傳送數(shù)據(jù)傳送流程流程 從鍵盤讀取一行字符,存儲在內(nèi)存緩沖區(qū),并在顯從鍵盤讀取一行字符,存儲在內(nèi)存緩沖區(qū),并在顯示器上回顯的程序示器上回顯的程序 DIRQKIRQSOUTSINDENKENDATAINDATAOUTSTATUSCONTROL 7 6 5 4 3 2 1 0圖圖9.7 鍵盤和顯示器接口中的寄存器鍵盤和顯示器接口中的寄存器 Move#LINE,R0 初始化存儲緩沖區(qū)指針初始化存儲緩沖區(qū)指針WAITK TestBit#0,STATUS 測試測試SIN Branch=

21、0 WAITK 等待鍵盤輸入等待鍵盤輸入 MoveDATAIN,R1 讀字符讀字符WAITD TestBit#1,STATUS 測試測試SOUT Branch=0WAITD 等待顯示器準(zhǔn)備好等待顯示器準(zhǔn)備好 MoveR1,DATAOUT 將字符送顯示將字符送顯示 MoveR1,(,(R0)+ 存儲字符并將指針加存儲字符并將指針加1 Compare #0DH,R1 檢查是否回車符?檢查是否回車符? Branch0 WAITK 不是,則取下一字符不是,則取下一字符 Move#0AH,DATAOUT 否則,輸出換行否則,輸出換行 CallPROCESS 調(diào)用一個子程序處理輸入的字符行調(diào)用一個子程序處

22、理輸入的字符行9.3 程序中斷方式程序中斷方式 9.3.1 中斷的概念中斷的概念 中斷:中斷: 由于內(nèi)部由于內(nèi)部/外部事件或由程序的預(yù)先安排引起外部事件或由程序的預(yù)先安排引起CPU中中斷正在執(zhí)行的程序斷正在執(zhí)行的程序,轉(zhuǎn)到相應(yīng)的服務(wù)程序中去。,轉(zhuǎn)到相應(yīng)的服務(wù)程序中去。 中斷源中斷源:能夠引發(fā):能夠引發(fā)CPU中斷的來源。中斷的來源。CPU 向 I/O 發(fā) 啟動 讀 /寫 的 指 令外 設(shè) 被 啟 動CPU做 其 它 事 情外 設(shè) 工 作外 設(shè) 完 成 任 務(wù)中 斷 請 求CPU讀 I/O狀 態(tài)出 錯出 錯 處 理Y完 成NN從 I/O讀 一 個 字 到 CPU或 寫 一 個 字 到 I/O接 口

23、Y返 回CPU向 I/O發(fā) 啟動 讀 /寫 的 指 令圖圖9.8 中斷驅(qū)動中斷驅(qū)動I/O方式方式CPU和外設(shè)和外設(shè)可并行工作可并行工作中斷服務(wù)程序中斷服務(wù)程序 中斷中斷I/O方式特點(diǎn):方式特點(diǎn): 充分發(fā)揮充分發(fā)揮CPU的高速處理能力。的高速處理能力。 實(shí)現(xiàn)外設(shè)與實(shí)現(xiàn)外設(shè)與CPU 的并行的并行圖圖9.9 CPU與外設(shè)并行工作與外設(shè)并行工作外設(shè)CPU啟動完成啟動完成工作工作工作請求響應(yīng)啟動請求響應(yīng)返回中斷服務(wù)中斷服務(wù)中斷服務(wù)中斷服務(wù) 現(xiàn)代計算機(jī)系統(tǒng)都配有完善的中斷系統(tǒng)現(xiàn)代計算機(jī)系統(tǒng)都配有完善的中斷系統(tǒng) 中斷系統(tǒng)中斷系統(tǒng)是計算機(jī)實(shí)現(xiàn)中斷功能的軟、硬件的總稱。是計算機(jī)實(shí)現(xiàn)中斷功能的軟、硬件的總稱。 C

24、PU:中斷響應(yīng)和處理,:中斷響應(yīng)和處理, 外設(shè)接口外設(shè)接口:中斷請求和控制邏輯,:中斷請求和控制邏輯, 操作系統(tǒng)操作系統(tǒng):中斷服務(wù)程序。:中斷服務(wù)程序。 中斷中斷硬連線路硬連線路和和中斷服務(wù)程序中斷服務(wù)程序有機(jī)結(jié)合,共同完成有機(jī)結(jié)合,共同完成和控制中斷過程。和控制中斷過程。 中斷的相關(guān)術(shù)語:中斷的相關(guān)術(shù)語: 中斷請求中斷請求表示有急待處理的突發(fā)事件的表示有急待處理的突發(fā)事件的信號信號; 中斷源中斷源能夠產(chǎn)生中斷請求的能夠產(chǎn)生中斷請求的部件部件( (或接口或設(shè)備或接口或設(shè)備) ); 中斷服務(wù)程序中斷服務(wù)程序中斷請求中斷請求( (突發(fā)事件突發(fā)事件) )對應(yīng)的對應(yīng)的處理程序處理程序; 中斷響應(yīng)中斷響

25、應(yīng)從當(dāng)前程序從當(dāng)前程序轉(zhuǎn)入轉(zhuǎn)入中斷服務(wù)程序的中斷服務(wù)程序的過程過程; 中斷服務(wù)中斷服務(wù)執(zhí)行執(zhí)行中斷請求對應(yīng)中斷服務(wù)程序的中斷請求對應(yīng)中斷服務(wù)程序的過程過程; 中斷返回中斷返回從中斷服務(wù)程序從中斷服務(wù)程序返回返回當(dāng)前程序的當(dāng)前程序的過程過程; 中斷處理中斷處理中斷服務(wù)及中斷返回中斷服務(wù)及中斷返回的總和。的總和。時間時間t t中斷服務(wù)程序中斷服務(wù)程序當(dāng)前程序當(dāng)前程序指令指令a a指令指令b b中斷服中斷服務(wù)程序務(wù)程序i ii+1i+1k kk+nk+n主存主存當(dāng)前當(dāng)前程序程序指令指令地址地址 i i+1 k k+ni i+1 k k+n中斷服務(wù)程序中斷服務(wù)程序當(dāng)前程序當(dāng)前程序1. 內(nèi)中斷內(nèi)中斷 由

26、處理器內(nèi)部的由處理器內(nèi)部的異常事件異常事件引起的中斷引起的中斷 硬故障中斷硬故障中斷:電源掉電、存儲器線路錯等;:電源掉電、存儲器線路錯等; 程序性中斷程序性中斷:CPU執(zhí)行某個指令而引起的發(fā)生在執(zhí)行某個指令而引起的發(fā)生在處理器內(nèi)部的處理器內(nèi)部的異常事件異常事件; 如除數(shù)為如除數(shù)為0,溢出、斷點(diǎn)、單步跟蹤、訪問超時、,溢出、斷點(diǎn)、單步跟蹤、訪問超時、堆棧溢出、缺頁、地址越界、數(shù)據(jù)格式錯等。堆棧溢出、缺頁、地址越界、數(shù)據(jù)格式錯等。 中斷的分類中斷的分類 程序性中斷可分為失效、自陷和終止三類。程序性中斷可分為失效、自陷和終止三類。 失效失效:在引起失效的指令:在引起失效的指令啟動后啟動后、執(zhí)行前執(zhí)

27、行前被檢測到被檢測到的一類例外事件。在中斷處理程序完成后,應(yīng)的一類例外事件。在中斷處理程序完成后,應(yīng)回到回到該條指令該條指令,重新啟動并執(zhí)行。,重新啟動并執(zhí)行。 自陷自陷:在產(chǎn)生自陷的:在產(chǎn)生自陷的指令執(zhí)行完后指令執(zhí)行完后才被報告的一類才被報告的一類例外事件,中斷處理程序完成后,回到主程序中該例外事件,中斷處理程序完成后,回到主程序中該條指令的條指令的下一條繼續(xù)執(zhí)行下一條繼續(xù)執(zhí)行(如,(如,INT n指令)。指令)。 終止終止:對引起異常的指令的確切:對引起異常的指令的確切位置無法確定位置無法確定的一的一類例外事件,出現(xiàn)這類嚴(yán)重錯誤時,原程序無法繼類例外事件,出現(xiàn)這類嚴(yán)重錯誤時,原程序無法繼續(xù)

28、執(zhí)行,只好終止,而續(xù)執(zhí)行,只好終止,而由中斷服務(wù)程序重新啟動操由中斷服務(wù)程序重新啟動操作系統(tǒng)作系統(tǒng)。2. 外中斷外中斷 由外設(shè)完成任務(wù)或出現(xiàn)特殊情況引起(任務(wù)完成、由外設(shè)完成任務(wù)或出現(xiàn)特殊情況引起(任務(wù)完成、打印機(jī)缺紙、磁盤檢驗(yàn)錯、鍵盤輸入等)。打印機(jī)缺紙、磁盤檢驗(yàn)錯、鍵盤輸入等)。3. 80X86處理器的中斷系統(tǒng)分類處理器的中斷系統(tǒng)分類 外部中斷外部中斷(硬中斷):通過處理器的中斷請求線(硬中斷):通過處理器的中斷請求線INTR(可屏可屏蔽中斷蔽中斷)和和NMI(不可屏蔽中斷不可屏蔽中斷)來實(shí)現(xiàn)請求的中斷。來實(shí)現(xiàn)請求的中斷。 內(nèi)部中斷內(nèi)部中斷(軟中斷):由處理器內(nèi)部產(chǎn)生而不通過中斷請求(軟中

29、斷):由處理器內(nèi)部產(chǎn)生而不通過中斷請求線請求,為不可屏蔽中斷。線請求,為不可屏蔽中斷。 中斷調(diào)用中斷調(diào)用 中斷識別中斷識別:找到哪一個中斷源發(fā)出的中斷請求;:找到哪一個中斷源發(fā)出的中斷請求; 目的目的:獲得中斷處理程序入口地址;:獲得中斷處理程序入口地址; 方法方法:向量中斷和程序查詢。:向量中斷和程序查詢。 中斷優(yōu)先級中斷優(yōu)先級:給每個中斷源指定:給每個中斷源指定CPU響應(yīng)的響應(yīng)的優(yōu)先級優(yōu)先級。 表表9.2 X86 CPU組成的微機(jī)系統(tǒng)中斷組成的微機(jī)系統(tǒng)中斷 表表9.3 表表9.49.3.2 中斷系統(tǒng)的基本職能和結(jié)構(gòu)中斷系統(tǒng)的基本職能和結(jié)構(gòu) 中斷系統(tǒng)的基本功能中斷系統(tǒng)的基本功能 (1) 及時

30、記錄各種中斷請求信號;及時記錄各種中斷請求信號; (2) 自動響應(yīng)中斷請求;自動響應(yīng)中斷請求; (3) 自動判優(yōu);自動判優(yōu); (4) 保護(hù)被中斷程序的斷點(diǎn)和現(xiàn)場;保護(hù)被中斷程序的斷點(diǎn)和現(xiàn)場; (5) 中斷屏蔽;現(xiàn)代計算機(jī)大多采用中斷嵌套技術(shù)。中斷屏蔽;現(xiàn)代計算機(jī)大多采用中斷嵌套技術(shù)。中斷屏蔽寄存器中斷請求寄存器判 優(yōu) 線 路向量地址形成線路向量地址中斷請求信號中斷查詢 中斷系統(tǒng)的基本結(jié)構(gòu)中斷系統(tǒng)的基本結(jié)構(gòu) 中斷嵌套中斷嵌套 當(dāng)有新的優(yōu)先級更高的中斷請求發(fā)生,當(dāng)有新的優(yōu)先級更高的中斷請求發(fā)生,CPU立即中止正在執(zhí)立即中止正在執(zhí)行的中斷服務(wù)程序,轉(zhuǎn)去處理新的中斷。行的中斷服務(wù)程序,轉(zhuǎn)去處理新的中斷

31、。K1K1+1K2K2+1K3K3+1原主程序1#中斷服務(wù)程序2#中斷服務(wù)程序3#中斷服務(wù)程序返回返回返回響應(yīng)1#請求2#請求響應(yīng)3#請求響應(yīng)K1+1PSW1K2+1PSW2K3+1PSW3堆棧圖圖9.10 中斷嵌套過程中斷嵌套過程9.3.3 中斷過程中斷過程 中斷過程中斷過程= =中斷響應(yīng)中斷響應(yīng)+ +中斷服務(wù)中斷服務(wù)+ +中斷返回中斷返回 = =中斷響應(yīng)中斷響應(yīng) + + 中斷處理中斷處理時間時間t t中斷程序中斷程序當(dāng)前程序當(dāng)前程序中斷中斷 中斷中斷 中斷中斷響應(yīng)響應(yīng) 服務(wù)服務(wù) 返回返回指令指令i i中斷請求中斷請求指令指令i+1i+1所選請求的所選請求的處理程序處理程序各中各中斷源斷源C

32、PUCPU中斷過程中斷過程檢測檢測CPUCPU工作周期工作周期: :啟動啟動指令指令周期周期中斷中斷周期周期DMADMA周期周期Y Y有有DMADMA請求?請求?N NY Y有中斷請求?有中斷請求?N N指令指令周期周期中斷中斷周期周期指令指令周期周期指令指令周期周期指令指令周期周期 中斷響應(yīng)階段和中斷處理階段中斷響應(yīng)階段和中斷處理階段 (1)保存好程序的關(guān)鍵性信息)保存好程序的關(guān)鍵性信息 斷點(diǎn)信息保護(hù)斷點(diǎn)信息保護(hù),硬件自動壓棧。,硬件自動壓棧。 1. 中斷響應(yīng)中斷響應(yīng) 指主機(jī)發(fā)現(xiàn)中斷請求,中止現(xiàn)行程序的執(zhí)行,到調(diào)指主機(jī)發(fā)現(xiàn)中斷請求,中止現(xiàn)行程序的執(zhí)行,到調(diào)出出中斷服務(wù)程序中斷服務(wù)程序這一過程

33、。這一過程。(2) 正確識別中斷源正確識別中斷源 (3) 提高中斷響應(yīng)的速度提高中斷響應(yīng)的速度 反映了整個計算機(jī)系統(tǒng)的靈敏度。反映了整個計算機(jī)系統(tǒng)的靈敏度。 中斷響應(yīng)的條件中斷響應(yīng)的條件 CPU處于開中斷狀態(tài)(處于開中斷狀態(tài)(IF=1);); 至少要有一個未被屏蔽的至少要有一個未被屏蔽的中斷請求中斷請求; 在在一條指令執(zhí)行完一條指令執(zhí)行完。 中斷響應(yīng)過程中斷響應(yīng)過程取指令執(zhí)行指令有中斷請求?NY關(guān)中斷保護(hù)斷點(diǎn)識別中斷源中斷響應(yīng)周期 中斷源的識別中斷源的識別方法方法 軟件輪詢方法軟件輪詢方法 查詢查詢順序決定順序決定中斷優(yōu)先級中斷優(yōu)先級。圖圖9.11 中斷查詢程序的結(jié)構(gòu)中斷查詢程序的結(jié)構(gòu) 硬件結(jié)

34、構(gòu)簡單,中斷響應(yīng)慢;硬件結(jié)構(gòu)簡單,中斷響應(yīng)慢;CPU的利用率低。的利用率低。CPU#1 I/O#2 I/O#n I/OIRQ數(shù)據(jù)控制中斷請求鎖存器地址中斷接口圖圖9.12 程序查詢中斷的結(jié)構(gòu)程序查詢中斷的結(jié)構(gòu) 硬件判優(yōu)方法(向量中斷)硬件判優(yōu)方法(向量中斷) 把中斷服務(wù)程序的首址把中斷服務(wù)程序的首址PC和初始和初始PSW稱為稱為中斷向量中斷向量,所有中,所有中斷向量存放在一個中斷向量表中;斷向量存放在一個中斷向量表中; 把中斷向量表中與相應(yīng)中斷對應(yīng)的表項號稱為把中斷向量表中與相應(yīng)中斷對應(yīng)的表項號稱為中斷類型號中斷類型號。 指向中斷向量的指針指向中斷向量的指針(地址地址)稱為稱為向量地址向量地址

35、(Vector Address)。圖圖9.13 中斷向量表中斷向量表PC0PSW0PC1PSW1PCnPSWn圖圖9.14 8086/8088中斷向量表中斷向量表VA0VA1VAnIV0IV1IVnCS:IP(除法錯)(除法錯)CS:IP(單步)(單步)CS:IP(NMI)CS:IP()CS:IP()0003H0407H080BH3F83FBH3FC3FFH 硬件判優(yōu)法硬件判優(yōu)法 CPU #1 I/O #2 I/O #n I/O IRQ 數(shù)據(jù) 中斷向量發(fā)生器 1 中斷向量發(fā)生器 2 中斷向量發(fā)生器 n IACK 鏈?zhǔn)街袛嗖樵兘Y(jié)構(gòu)鏈?zhǔn)街袛嗖樵兘Y(jié)構(gòu) 多線獨(dú)立請求中斷的結(jié)構(gòu)多線獨(dú)立請求中斷的結(jié)構(gòu) C

36、PU #1 I/O #2 I/O #n I/O IRQ 數(shù)據(jù) 中斷向量發(fā)生器 IACK 判優(yōu)邏輯(并行判優(yōu)) 優(yōu)先權(quán)編碼器 送中斷向量送中斷向量2中斷處理中斷處理 執(zhí)行相應(yīng)的中斷執(zhí)行相應(yīng)的中斷服務(wù)程序的過程服務(wù)程序的過程關(guān) 中 斷 、 保 存 斷 點(diǎn) 、調(diào) 出 某 個 中 斷 服 務(wù) 程序中 斷 響 應(yīng)中 斷 處 理保 護(hù) 現(xiàn) 場 及 舊 屏 蔽 字設(shè) 置 新 屏 蔽 字開 中 斷先 行 段具 體 的 中 斷 服 務(wù)關(guān) 中 斷開 中 斷恢 復(fù) 現(xiàn) 場 和 舊 屏 蔽 字清 除 中 斷 請 求返 回恢 復(fù) 段本 體 段 用中斷方式控制硬盤和主存儲器之間的數(shù)據(jù)交換用中斷方式控制硬盤和主存儲器之間的

37、數(shù)據(jù)交換 例例2:假定處理器按假定處理器按500MHz的速度執(zhí)行,硬盤以的速度執(zhí)行,硬盤以字塊字塊進(jìn)行進(jìn)行傳輸,速率為傳輸,速率為4MB/Sec,假定沒有任何數(shù)據(jù)傳輸被錯過。使,假定沒有任何數(shù)據(jù)傳輸被錯過。使用中斷驅(qū)動用中斷驅(qū)動I/O,每次傳送的開銷(包括用于中斷響應(yīng)和處理,每次傳送的開銷(包括用于中斷響應(yīng)和處理的時間)是的時間)是500個時鐘周期個時鐘周期。如硬盤僅用占處理器。如硬盤僅用占處理器5%的時間的時間進(jìn)行傳送,處理器用在數(shù)據(jù)傳送上所花的時間百分比為多少?進(jìn)行傳送,處理器用在數(shù)據(jù)傳送上所花的時間百分比為多少? 硬盤每次中斷以字塊(硬盤每次中斷以字塊(=16字節(jié))進(jìn)行傳送,傳送的速率應(yīng)

38、字節(jié))進(jìn)行傳送,傳送的速率應(yīng)達(dá)到每秒達(dá)到每秒4MB/16B=250K次中斷次中斷; 每秒鐘用于每秒鐘用于中斷的周期數(shù)中斷的周期數(shù)為為250K500=125106,在一次傳,在一次傳輸中所消耗的處理器時間的百分比為:輸中所消耗的處理器時間的百分比為:125106/(500 106)=25% 硬盤僅用其中硬盤僅用其中5%的時間來傳送數(shù)據(jù),則處理器消耗的平均占的時間來傳送數(shù)據(jù),則處理器消耗的平均占用率為用率為25% 5%=1.25% 。9.3.4 Pentium中斷機(jī)制中斷機(jī)制 Pentium中斷源:中斷源: 1. 中斷類型中斷類型 外部中斷外部中斷(硬中斷):通過(硬中斷):通過CPU的中斷的中斷

39、請求線請求線INTR和和NMI來實(shí)現(xiàn)請求的中斷。來實(shí)現(xiàn)請求的中斷。(1)可屏蔽中斷可屏蔽中斷:由外設(shè)中斷源引起的中斷通過:由外設(shè)中斷源引起的中斷通過INTR線進(jìn)行請求,由線進(jìn)行請求,由IF的值的值決定是否禁止;決定是否禁止;(2)非屏蔽中斷非屏蔽中斷:若發(fā)生重要或緊急的硬件故障,:若發(fā)生重要或緊急的硬件故障,如電源掉電、存儲器線路錯等;如電源掉電、存儲器線路錯等;不能被不能被禁止禁止。 內(nèi)部異常內(nèi)部異常:通常稱為異常中斷或稱例外,它是由:通常稱為異常中斷或稱例外,它是由指令執(zhí)行引發(fā)指令執(zhí)行引發(fā)的。的。 Pentium共有共有256種中斷和異常;種中斷和異常;中斷類型號中斷類型號(0255);)

40、; 中斷優(yōu)先級中斷優(yōu)先級分為分為5級;異常中斷的優(yōu)先級高于級;異常中斷的優(yōu)先級高于外部中斷的優(yōu)先級。外部中斷的優(yōu)先級。(1)執(zhí)行異常執(zhí)行異常:CPU執(zhí)行一條指令執(zhí)行一條指令過程中出現(xiàn)錯過程中出現(xiàn)錯誤、故障等不正常條件引發(fā)的中斷;如被誤、故障等不正常條件引發(fā)的中斷;如被0除,除,產(chǎn)生溢出中斷(類型號為產(chǎn)生溢出中斷(類型號為0););(2)執(zhí)行軟件中斷指令執(zhí)行軟件中斷指令:如:如執(zhí)行執(zhí)行INT n指令指令,將會,將會產(chǎn)生異常中斷。產(chǎn)生異常中斷。2. 中斷服務(wù)程序進(jìn)入過程中斷服務(wù)程序進(jìn)入過程 (1)指令給出指令給出,如執(zhí)行軟件中斷指令,如執(zhí)行軟件中斷指令I(lǐng)NT n,n為中斷類型號為中斷類型號; 獲取

41、中斷類型號的途徑:獲取中斷類型號的途徑: (2)外部提供外部提供,可屏蔽中斷是在,可屏蔽中斷是在CPU接收到接收到INTR信號時產(chǎn)生一個信號時產(chǎn)生一個中斷識別周期中斷識別周期; 非屏蔽中斷是在非屏蔽中斷是在CPU接收到接收到NMI信號時產(chǎn)生,信號時產(chǎn)生,中斷類型號固定為中斷類型號固定為2;(3)CPU識別錯誤、故障現(xiàn)象,根據(jù)異常和中斷識別錯誤、故障現(xiàn)象,根據(jù)異常和中斷產(chǎn)生的條件產(chǎn)生的條件自動指定類型號自動指定類型號。圖圖9.18 實(shí)模式下使用中斷向量表實(shí)模式下使用中斷向量表 實(shí)模式下使用中斷向量表實(shí)模式下使用中斷向量表 保護(hù)模式下使用中斷描述符表保護(hù)模式下使用中斷描述符表 圖圖9.19 保護(hù)模

42、式下使用中斷描述符表保護(hù)模式下使用中斷描述符表 3. 中斷處理過程中斷處理過程 1)當(dāng)進(jìn)行中斷處理的)當(dāng)進(jìn)行中斷處理的CPU控制權(quán)轉(zhuǎn)移涉及到控制權(quán)轉(zhuǎn)移涉及到特權(quán)級特權(quán)級改變時改變時,必須把當(dāng)前的,必須把當(dāng)前的SS和和ESP兩個寄存器的內(nèi)容壓兩個寄存器的內(nèi)容壓入系統(tǒng)堆棧予以保存;入系統(tǒng)堆棧予以保存;2)標(biāo)志寄存器)標(biāo)志寄存器EFLAGS的內(nèi)容也需壓入堆棧;的內(nèi)容也需壓入堆棧;3)清除標(biāo)志觸發(fā)器)清除標(biāo)志觸發(fā)器TF和和IF;4)當(dāng)前的)當(dāng)前的代碼段寄存器代碼段寄存器CS和指令指針和指令指針EIP也壓入也壓入此堆棧。此堆棧。5)如果中斷發(fā)生伴隨有錯誤碼,則錯誤碼也壓入)如果中斷發(fā)生伴隨有錯誤碼,則錯

43、誤碼也壓入堆棧;堆棧;6)完成上述中斷現(xiàn)場保護(hù)后,從中斷類型號)完成上述中斷現(xiàn)場保護(hù)后,從中斷類型號獲取獲取的中斷服務(wù)程序入口地址的中斷服務(wù)程序入口地址(段地址,偏移量)分別(段地址,偏移量)分別裝入裝入CS和和EIP,開始執(zhí)行中斷服務(wù)程序;,開始執(zhí)行中斷服務(wù)程序;7)中斷報務(wù)程序最后的)中斷報務(wù)程序最后的IRET指令使中斷返回指令使中斷返回;保;保存在堆棧中的中斷現(xiàn)場信息被恢復(fù),并由中斷點(diǎn)繼存在堆棧中的中斷現(xiàn)場信息被恢復(fù),并由中斷點(diǎn)繼續(xù)執(zhí)行原程序。續(xù)執(zhí)行原程序。9.4 直接存儲器存取直接存儲器存取(DMA)方式方式 DMA的引入的引入 程序直接控制方式程序直接控制方式受受“踏步踏步”現(xiàn)象的限

44、制現(xiàn)象的限制,效率低,效率低下,不適合高速設(shè)備和主機(jī)間的數(shù)據(jù)傳送。下,不適合高速設(shè)備和主機(jī)間的數(shù)據(jù)傳送。 中斷控制方式在中斷控制方式在高速設(shè)備高速設(shè)備、成批數(shù)據(jù)成批數(shù)據(jù)傳送中顯出不足傳送中顯出不足 (1) 對對I/O請求響應(yīng)慢;請求響應(yīng)慢; (2) 數(shù)據(jù)傳送速度慢。數(shù)據(jù)傳送速度慢。 DMA方式:方式: 用專門的用專門的DMA接口硬件接口硬件來控制外設(shè)與主存間的直接來控制外設(shè)與主存間的直接數(shù)據(jù)交換,數(shù)據(jù)交換,而不通過而不通過CPU。 控制總線進(jìn)行控制總線進(jìn)行DMA傳送的硬件接口為傳送的硬件接口為DMA控制器控制器。DMA傳送示意圖傳送示意圖 DMA方式必須以程序查詢方式和中斷方式為基礎(chǔ)。方式必須

45、以程序查詢方式和中斷方式為基礎(chǔ)。 圖圖9.20 采用采用DMA方式進(jìn)行磁盤參數(shù)傳送方式進(jìn)行磁盤參數(shù)傳送查詢方式查詢方式中斷方式中斷方式中斷方式中斷方式DMA方式方式中斷方式中斷方式尋道尋道找扇區(qū)找扇區(qū)連續(xù)讀寫連續(xù)讀寫結(jié)束、校驗(yàn)結(jié)束、校驗(yàn)傳送參數(shù)設(shè)置傳送參數(shù)設(shè)置(初始化)(初始化) DMA傳送方式通常用來傳送方式通常用來高速傳送大批量的高速傳送大批量的數(shù)據(jù)塊數(shù)據(jù)塊。如:。如: 硬盤和軟盤硬盤和軟盤I/O; 快速通信通道快速通信通道I/O; 多處理機(jī)和多程序數(shù)據(jù)塊傳送;多處理機(jī)和多程序數(shù)據(jù)塊傳送; 在圖像處理中,對在圖像處理中,對CRT屏幕送數(shù)據(jù);屏幕送數(shù)據(jù); 快速數(shù)據(jù)采集;快速數(shù)據(jù)采集; DRA

46、M的刷新操作。的刷新操作。9.4.1 DMA工作方式工作方式 1. CPU停止法停止法 (成組傳送成組傳送) DMA傳輸時,傳輸時,CPU脫離總線,脫離總線,停止訪問主存停止訪問主存,直到,直到DMA傳傳送一塊數(shù)據(jù)結(jié)束(該方法送一塊數(shù)據(jù)結(jié)束(該方法CPU工作受影響)。工作受影響)。 彌補(bǔ)措施彌補(bǔ)措施:減少減少DMA占用總線的時間占用總線的時間;I/O設(shè)備準(zhǔn)備下一數(shù)據(jù)時,設(shè)備準(zhǔn)備下一數(shù)據(jù)時,CPU插空訪存插空訪存。2. 周期挪用周期挪用(竊取竊取)法法 (單字傳送單字傳送) DMA傳輸時,傳輸時,CPU讓出一個總線事務(wù)周期,由讓出一個總線事務(wù)周期,由DMA控制器控制器挪用一個主存周期來訪問主存挪

47、用一個主存周期來訪問主存,傳數(shù)據(jù)后立即釋放總線。,傳數(shù)據(jù)后立即釋放總線。 DMA不需要總線使用權(quán)的申請和釋放。不需要總線使用權(quán)的申請和釋放。3. 交替分時訪問法交替分時訪問法 每個存儲周期分成兩個時間片每個存儲周期分成兩個時間片,一個給,一個給CPU,一個給,一個給DMA,在每個存儲周期內(nèi),在每個存儲周期內(nèi),CPU和和DMA都可訪問存儲器。都可訪問存儲器。 I/O設(shè)備要求進(jìn)行設(shè)備要求進(jìn)行DMA傳送會遇到三種情況傳送會遇到三種情況 1) CPU不需訪問主存不需訪問主存 CPU和和DMA不發(fā)生沖突不發(fā)生沖突,兩者并行。,兩者并行。 2) CPU正在訪問主存正在訪問主存 須須等到存儲周期結(jié)束后等到存

48、儲周期結(jié)束后,CPU讓出總線,讓出總線,DMA才能訪存。才能訪存。 3) CPU也同時要訪問主存也同時要訪問主存 先讓先讓DMA占用總線,占用總線,竊取一個主存周期竊取一個主存周期,完成數(shù)據(jù)交換。,完成數(shù)據(jù)交換。9.4.2 DMA接口的結(jié)構(gòu)和功能接口的結(jié)構(gòu)和功能 DMA控制器(控制器( DMAC) CPU把要傳送的把要傳送的數(shù)據(jù)個數(shù)數(shù)據(jù)個數(shù)、數(shù)據(jù)塊在、數(shù)據(jù)塊在內(nèi)存的首址內(nèi)存的首址、數(shù)據(jù)、數(shù)據(jù)傳送傳送的方向的方向、設(shè)備的地址設(shè)備的地址等參數(shù)送給等參數(shù)送給DMA控制器(控制器( DMAC初始初始化時,化時,DMAC處于被動狀態(tài)處于被動狀態(tài));); 啟動外設(shè)進(jìn)行數(shù)據(jù)準(zhǔn)備工作,而啟動外設(shè)進(jìn)行數(shù)據(jù)準(zhǔn)備工

49、作,而I/O設(shè)備和主存交換數(shù)據(jù)的事設(shè)備和主存交換數(shù)據(jù)的事情就交給了情就交給了DMA控制器(控制器(DMAC處于主動狀態(tài)處于主動狀態(tài)) 。 DMA接口的典型結(jié)構(gòu)接口的典型結(jié)構(gòu) DMA接口功能接口功能(1) 接收外設(shè)的接收外設(shè)的“DMA請求請求”信號,向信號,向CPU發(fā)發(fā)“總線請求總線請求”信信號。號。(2) 當(dāng)當(dāng)CPU發(fā)出發(fā)出“總線響應(yīng)總線響應(yīng)”信號后,接管對總線的控制信號后,接管對總線的控制。(3) 在地址線上給出在地址線上給出主存地址主存地址,并自動修改主存地址。,并自動修改主存地址。(4) 識別傳送方向以在控制線上識別傳送方向以在控制線上給出正確的讀寫控制信息給出正確的讀寫控制信息。(5)

50、 確定傳送數(shù)據(jù)的確定傳送數(shù)據(jù)的字節(jié)個數(shù)字節(jié)個數(shù)。(6) 發(fā)出發(fā)出DMA結(jié)束信號結(jié)束信號。引起一次。引起一次DMA中斷,進(jìn)行數(shù)據(jù)校驗(yàn)中斷,進(jìn)行數(shù)據(jù)校驗(yàn)等一些后處理。等一些后處理。9.4.3 DMA數(shù)據(jù)傳送數(shù)據(jù)傳送過程過程圖圖9.21 例例1:假設(shè)處理器按假設(shè)處理器按500MHz的速度執(zhí)行。硬盤以字塊進(jìn)行的速度執(zhí)行。硬盤以字塊進(jìn)行傳輸,速率為傳輸,速率為4MB/Sec,假定沒有任何數(shù)據(jù)傳輸被錯過。對,假定沒有任何數(shù)據(jù)傳輸被錯過。對于于DMA傳送的初始化設(shè)置,假定處理器花了傳送的初始化設(shè)置,假定處理器花了1000個時鐘個時鐘周周期,并且在期,并且在DMA完成后中斷的處理需要完成后中斷的處理需要500

51、個時鐘個時鐘。如果從。如果從硬盤發(fā)出的平均傳輸量為硬盤發(fā)出的平均傳輸量為8KB(即每次(即每次DMA傳送傳送8KB的數(shù)據(jù)的數(shù)據(jù)塊塊)。如果硬盤進(jìn)行傳送的時間占)。如果硬盤進(jìn)行傳送的時間占100%,那么具有,那么具有500MHz的處理器在硬盤的處理器在硬盤I/O操作上的花銷是多少?操作上的花銷是多少? 解:解: 處理器一秒鐘內(nèi)有處理器一秒鐘內(nèi)有4MB / 8KB =0.5103個個 DMA傳送,傳送, 一秒鐘內(nèi)一秒鐘內(nèi)CPU花在花在DMA傳送上的開銷為:傳送上的開銷為: 0.5103(1000+500)=750103個時鐘周期。個時鐘周期。 在硬盤在硬盤I/O操作上處理器花費(fèi)的時間占操作上處理器花費(fèi)的時間占750103/500106 =1.510-3=0.15%。 中斷傳送中斷傳送處理器消耗的平均占用率為處理器消耗的平均占用率為1.25% 。 當(dāng)當(dāng)DMA方式被用于硬盤接口時方式被用于硬盤接口時 在數(shù)據(jù)傳送期間在數(shù)

溫馨提示

  • 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

提交評論