第10章輸入、輸出接口與外部設備_第1頁
已閱讀1頁,還剩133頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,第10章 輸入、輸出(I/O)系統(tǒng),,10.1 輸入輸出(I/O)系統(tǒng)概述 輸入輸出系統(tǒng)包括外部設備及其與主機(CPU和存儲器)之間的控制部件。后者稱之為設備控制器,有時也稱為設備適配器或接口,其作用是控制并實現(xiàn)主機與外部設備之間的數(shù)據(jù)傳送。本章主要介紹設備控制器的工作原理及其與主機之間傳送數(shù)據(jù)的協(xié)議,即系統(tǒng)總線。,3,,10.1.1 功能 接口是計算機與I/O設備或其他系統(tǒng)之間所設置的邏輯控

2、制部件,也稱I/O控制器。接口的引入:,外設類型不同: 機械、電子、機電、電磁傳送信息類型: 數(shù)字量、模擬量傳送速度傳送方式:串行、并行編碼方式:,能實現(xiàn)數(shù)據(jù)緩沖和數(shù)據(jù)鎖存能完成信息格式和電平的轉換能進行地址譯碼和設備選擇能保證數(shù)據(jù)傳送的定時與協(xié)調,功能:,4,外圍設備接口的結構,接口地址,,,地址,譯碼,器,數(shù)據(jù)寄存器,命令寄存器,,RD,WE,,地址,有效,,總線,,數(shù)據(jù)線,,地址線,,外設接口,,外設控

3、制信號,,外設數(shù)據(jù),,外設狀態(tài),狀態(tài)寄存器,,,,,,I/O接口功能演示,5,1.輸入輸出接口的基本結構,CPU和外設之間通常傳遞的信息:數(shù)據(jù)、狀態(tài)、控制,組成:寄存器組、控制邏輯電路、主機與接口和接口與I/O設備之間的信號聯(lián)接線、數(shù)據(jù)地址線、控制狀態(tài)信號線,CPU,,控制電路,DR,SR,CR,I/O設備,,地址,,數(shù)據(jù),,,,IO/M,RD,WR,,,,,數(shù)據(jù),,,狀態(tài),控制,6,2. I/O接口分類,結構方式并行和串行收發(fā)

4、配合方式同步和異步數(shù)據(jù)傳送配合方式程序傳送、中斷傳送、DMA、通道、IO處理器電路規(guī)模簡單接口、可編程接口、外設接口適配器,7,3. 輸入輸出接口的編址方式,在接口電路中通常都具有多個可由CPU進行讀寫操作的寄存器,每個寄存器也叫做“端口”。為了CPU便于對I/O設備進行尋址和選擇,必須給眾多的I/O設備的端口進行編址,也就是給每一臺設備規(guī)定一些地址碼稱為設備號或設備代碼。 (1) 存儲器、I/O接口統(tǒng)一編址

5、優(yōu):訪存指令可訪問端口,這樣尋址類型多,編程較方便。 缺:占用存儲器空間;速度慢。 (2) I/O端口獨立編址優(yōu):專門的I/O指令,與訪存分開;指令執(zhí)行快;不占內存地址空間。缺:需專用指令、尋址方式少。,8,,IBM PC等系列機設置有專門的I/O指令(IN和OUT),設備的編址可達512個,部分設備的地址碼如表 10.1所示。 從表中可見,每一臺設備占用了若干個地址碼分別表示相應的設備控制器中的寄存器地址。,9,1

6、0.1.2 主機與外設間 數(shù)據(jù)傳送控制方式,(1) 程序直接控制(program direct control ) 傳遞方式(2) 程序中斷傳送(program interrupt transfer)方式(3) 直接存儲器存取(direct memory access) 方式——DMA(4) I/O通道控制(I/O channel control)方式(5) 外圍處理機(peripheral process

7、or unit)方式,10,,,,信號傳輸過程,,,,,,,,狀態(tài)寄存器,數(shù)據(jù)寄存器,2,控制,器,ALU,數(shù)據(jù)寄存器,1,地址寄存器,設備驅動電路,數(shù)據(jù)寄存器,地址譯碼器,,設備接口,,CPU,,,,,11,1、 程序直接控制傳送方式,該方法是主機與外設之間進行數(shù)據(jù)交換的最簡單、最基本的控制方法。無條件傳送只有在外設總處于準備好狀態(tài)程序查詢方式優(yōu)點:較好協(xié)調主機與外設之間的時間差異所用硬件少。缺點:主機與外設只能串

8、行工作主機一個時間段只能與一個外設進行通訊CPU效率低。,從I/O接口中讀 一個字到CPU,,從CPU向主存 寫入一個字,,CPU向I/O發(fā) 讀指令,,CPU讀I/O狀態(tài),,檢查狀態(tài),,完成否,,,,,,,,,,,未準備就緒,現(xiàn)行程序,是,,出錯,已準備就緒,否,12,2、程序中斷傳送方式,由于CPU與外設之間的速度至今仍是微秒和毫秒的數(shù)量級,速度差異懸殊,會使CPU的工作效率下降。優(yōu)點:避免頻繁查詢,適合隨機出

9、現(xiàn)的服務和中低速外設使用。缺點:成批數(shù)據(jù)交換時,中斷影響傳送效率,一次傳送一個字符,中斷處理時間大于傳送數(shù)據(jù)時間。需要一定的硬件電路。,中斷方式的引入,程序中斷方式的輸入接口工作過程演示,13,3、直接存儲器訪問方式,1. DMA方式的引入前兩種方式以CPU為中心,占用CPU時間。DMA方式以內存為中心。2. 基本工作原理在外設通過專門的接口電路和存儲器進行數(shù)據(jù)交換,而不用通過CPU的寄存器??刂七^程由DMA控制器這

10、樣的硬件來完成,不需要保存斷點。 特點:適用于高速設備和大數(shù)據(jù)量的數(shù)據(jù)傳輸,需用更多的硬件電路支持。,直接存儲器存取方式軟盤控制接口工作演示,14,三種方式的 CPU 工作效率比較,,,,,,,,,,程序查詢方式,程序中斷方式,DMA 方式,15,,4、I/O通道控制方式 I/O通道具有少數(shù)專用的指令系統(tǒng),能實現(xiàn)指令所控制的操作,管轄其相應的設備控制器,所以I/O通道已具備簡單處理機的功能。但它僅僅是面向外圍設

11、備的控制和數(shù)據(jù)的傳送,其指令系統(tǒng)也僅僅是幾條簡單的與I/O操作有關的命令。它要在CPU的I/O指令指揮下啟動、停止或改變工作狀態(tài)。因此,l/O通道不是一個完全獨立的處理機,它只是從屬于CPU的一個專用I/O處理器。它的進一步發(fā)展是引入專用的輸入輸出處理機。 通道方式的出現(xiàn)進一步提高了CPU的效率。但需更多的硬件電路。,16,5、 輸入輸出處理機(IOP)方式,有單獨的存儲器和獨立的運算部件,可訪問系統(tǒng)的內部存儲器除數(shù)據(jù)傳輸外,還

12、應有以下功能:能處理傳送過程中出錯及異常情況,數(shù)據(jù)格式翻譯,數(shù)據(jù)塊校驗。IOP方式是通道方式的進一步的發(fā)展。它們大多應用在中、大型計算機中。,17,,10.2 程序中斷控制技術 中斷:計算機暫時中止當前程序運行,轉而處理意外出現(xiàn)的情況或有意安排的任務,在處理結束后能自動恢復原程序的執(zhí)行,這個過程叫作“中斷”。 中斷系統(tǒng)是計算機實現(xiàn)中斷功能的軟、硬件總稱。在CPU一側配置了中斷機構,在設備一側配置了中斷控制接口,在軟件上

13、設計了相應的中斷服務程序。 中斷過程由中斷請求、中斷響應、狀態(tài)保護、中斷屏蔽、中斷處理、恢復和返回組成。,18,I/O 中斷的產生,以打印機為例,CPU 與打印機并行工作,19,10.2.1 中斷的概念,在機器中引起中斷產生的事件或發(fā)生中斷請求的來源統(tǒng)稱為中斷源。 硬件中斷: 是指由某個硬件中斷請求信號引起的中斷 ,硬件中斷通過是中斷請求信號形成向量地址。向量地址是中斷服務程序入口地址的地址。 軟中斷:

14、 是指由軟中斷指令所引起的中斷,軟中斷由指令提供中斷號n,再轉換為向量地址。 強迫中斷: 是指由于故障、外部請求等所引起的強迫性中斷,非程序本身安排的,這種請求的提出和相應的服務處理都是隨機的。 自愿中斷即軟中斷 這是程序有意安排的,即以事先在程序某處設置斷點,以中斷方式引出服務程序,實現(xiàn)某種功能。如單步調試程序。,1. 中斷源,20,,內部中斷:指來自主機內部的中斷請求,如CPU內部硬件故障、軟

15、中斷、程序出錯、運算產生故障引起的中斷、控制器產生的中斷。即溢出、除數(shù)為零、校驗錯、非法格式、、虛擬存儲器頁面失效、 非法指令、調用失敗、故障中斷等。 外部中斷:由CPU外部產生的中斷鍵盤中斷、打印機中斷、磁盤存儲器申請中斷、電源故障、主機設備故障、定時時鐘中斷、顯示器中斷、打印機中斷等。 可屏蔽中斷INTR 一般將外圍設備中斷作為可屏蔽中斷,CPU通過屏蔽技術施加以控制。 不可屏蔽中斷NMI 這是一種必須

16、響應處理的中斷請求,作為非屏蔽中斷,不受CPU屏蔽。軟中斷發(fā)生于CPU內部,不屬于外中斷范疇,從概念上將它也是不可屏蔽的。,21,,向量中斷 CPU響應中斷后,由中斷機構自動將向量地址通知處理機,由向量地址指明中斷向量位置并實現(xiàn)向量切換,不必經過處理程序來查詢中斷源的中斷功能,稱為向量中斷。即直接依靠硬件來實現(xiàn)根據(jù)中斷源獲得服務程序入口地址,以實現(xiàn)程序切換。向量中斷的特點是根據(jù)中斷請求信號能快速地、直接轉向對應的服務程序。因此,

17、現(xiàn)代計算機基本上多具有向量中斷能力。 非向量中斷 CPU不能直接提供中斷服務程序入口地址,而是CPU在響應中斷時只產生一個固定的地址,由此讀取中斷查詢程序的入口地址,從而轉向查詢程序;通過執(zhí)行查詢程序,確定被優(yōu)先批準的中斷源,然后分支進入相應的中斷服務程序。非向量中斷也稱為單向量中斷。,22,2. CPU響應中斷必須滿足的條件,中斷源有中斷請求中斷寄存器CPU允許接受中斷請求開中斷中斷屏蔽寄存器(判優(yōu))

18、禁止中斷一般一條指令執(zhí)行完畢后CPU才能響應中斷,并且當前執(zhí)行的不是停機指令,又沒有優(yōu)先權更高的請求,則CPU進入中斷周期狀態(tài),進入中斷響應。,取指令,,執(zhí)行指令,,中斷,響應中斷,,,執(zhí)行中斷服務程序,,,,,,,返回斷點,,關中斷、保存斷點、現(xiàn)場、開中斷,關中斷、恢復現(xiàn)場、斷點、開中斷,NO,Y,23,,相關知識說明 1)中斷響應 一旦CPU中斷響應條件得到滿足,則CPU進入中斷周期狀態(tài),并開始響應中斷。CP

19、U響應中斷意味著處理機從一個程序切換到另一個程序。 2)中斷服務程序 為處理意外情況或有意安排的任務而編寫的程序稱為“中斷服務程序” 3)中斷請求的檢測與屏蔽在一個指令周期的最后一個機器周期檢測當外部中斷源申請中斷時,CPU是否響應還要取決于其內部的中斷允許寄存器IR。 IR=1 是允許中斷申請(開中斷);IR=0 時禁止中斷申請(關中斷)。由指令STI和CLI軟件設置。,24,,4)中斷請求觸發(fā)器:

20、 當中斷源發(fā)生引起中斷的事件時先將它保存在設備控制器的‘中斷請求觸發(fā)器’中,即將“中斷觸發(fā)器’置1”。 5)禁止中斷: 產生中斷源后,由于某種條件的存在,CPU不能中止現(xiàn)行程序的執(zhí)行,稱為禁止中斷。一般在CPU內部設有一個“中斷允許’觸發(fā)器。只有該觸發(fā)器為‘1’狀態(tài)時。才允許處理機響應中斷;如果該觸發(fā)器被清除,則不響應外部中斷源申請的中斷、前者叫做允許中斷,后者叫做禁止中斷。 6)堆棧與斷點的保護程序被中斷的地址稱為

21、斷點,需保存,以備恢復執(zhí)行時使用,保存斷點的地方稱為棧區(qū)。棧區(qū):內存中開辟的專用數(shù)據(jù)存取區(qū),25,,7)“中斷允許’觸發(fā)器通過‘開中斷ST I’或‘關中斷CLI’指令來置位、復位。進入中斷服務程序后自動“關中斷’。 8)中斷屏蔽: 當產生中斷請求后,用程序方式有選擇地封鎖部分中斷而允許其余部分中斷仍得到響應,稱為中斷屏蔽。 實現(xiàn)方法是為每個中斷源設置一個中斷屏蔽觸發(fā)器來屏蔽該設備的中斷請求。具體說

22、,用程序方法將該觸發(fā)器置“l(fā)’則對應的設備中斷被封鎖,若將其置“0”,才允許該設備的中斷請求得到響應,由各設備的中斷屏蔽觸發(fā)器組成中斷屏蔽寄存器。,26,,9)向量(矢量)中斷和中斷向量(矢量)矢量中斷:是根據(jù)發(fā)生中斷時,CPU能夠直接獲得到一個中斷服務程序的起始地址的方式而得名。中斷矢量:實際上就是一個指針,其內容是中斷服務程序起始地址。即中斷服務程序起始地址的地址。 10)中斷矢量表:微機中把全部中斷矢量存放在內存的某一

23、區(qū)域中,形成一個中斷矢量表。當發(fā)生中斷時,根據(jù)中斷源不同,從中斷矢量表中取出對應的中斷矢量送給CPU的IP寄存器,CPU開始執(zhí)行中斷處理子程序。 11)多重中斷和中斷優(yōu)先:多重中斷就是CPU在執(zhí)行某一中斷服務程序后,如果令IR=1,那么 CPU還可以接受更高級的中斷申請執(zhí)行其中斷服務程序.形成多重中斷(也稱為中斷嵌套)。 響應多重中斷的原則是按實現(xiàn)設定好的各中斷源的中斷優(yōu)先級別進行先后處理。級別高的優(yōu)先處理,級

24、別低的后處理。具體判斷方法可用硬件判斷或軟件判斷。,27,,3.中斷屏蔽技術的應用 通過輸出指令送出一個屏蔽字,有選擇地允許某些中斷請求、屏蔽某些中斷請求。常用于如下兩種場合。 1)在多重中斷方式中(即允許中斷嵌套),當CPU響應某個中斷請求后,送出一個新的屏蔽字,以禁止與該請求統(tǒng)一優(yōu)先級或更低級優(yōu)先級的其它請求。只允許比該請求優(yōu)先級高的其它中斷請求可以提出。 2)利用屏蔽技術動態(tài)地修改優(yōu)先級 硬

25、件排優(yōu)邏輯所分配的優(yōu)先級是固定的,但有時根據(jù)程序的需要臨時動態(tài)的修改優(yōu)先順序,就可利用屏蔽字將原來優(yōu)先級高的設備請求暫時屏蔽。原來級別低的請求由于未被屏蔽,優(yōu)先級相對提高,稱為中斷升級。過一段時間再恢復或再調整屏蔽字。,28,,4. 中斷的作用和功能(1)CPU可與 I/O設備并行工作,提高CPU的工作效率(2)利用中斷來處理故障,提高了機器的可靠性。 計算機運行時,如硬件出現(xiàn)某些故障,機器中斷系統(tǒng)發(fā)出中斷請求,

26、CPU響應中斷后自動進行處理。(3)實現(xiàn)人機聯(lián)系 在計算機工作過程中,如果用戶要干預機器,如抽查計算中間結果,了解機器的工作狀態(tài),給機器下達臨時性的命令等。利用中斷系統(tǒng)實現(xiàn)人機通信是很方便、很有效的。(4)實現(xiàn)多道程序和分時操作 計算機實現(xiàn)多道程序運行是提高機器效率的有效手段,多道程序的切換運行需借助于中斷系統(tǒng)。在一道程序的運行中,由I/O中斷系統(tǒng)切換到另外一道程序運行,也可以通過分配每道程序一個固定時間片,

27、利用時鐘定時發(fā)中斷進行程序切換。,29,,(5)實現(xiàn)實時處理 所謂實時處理,是指在某個事件或現(xiàn)象出現(xiàn)時及時地進行處理,而不是集中起來再進行批處理。這些事件出現(xiàn)的時刻是隨機的,而不是程序本身所能預見的,因此,要求計算機中止正在執(zhí)行的程序,轉而去執(zhí)行中斷服務程序。在實際工程中,利用中斷技術進行實時控制已廣泛應用于各個生產領域中。 (6)實現(xiàn)應用程序和操作系統(tǒng)的聯(lián)系 可以在用戶程序中

28、安排一條Trap指令進入操作系統(tǒng),稱之為軟中斷。其中斷處理過程與其他中斷類似。 (7)多處理機系統(tǒng)各處理機間的聯(lián)系 在多處理機系統(tǒng)中,處理機和處理機之間的信息交流和任務切換可以通過中斷來實現(xiàn)。,10.2.2 中斷處理,1.中斷處理過程,,31,,I/O 中斷處理過程,,,DBR,,,,,,,設備選擇電路,,,,,以輸入為例,32,,(1)關中斷:由硬件自動實現(xiàn)、因為接下去要保存斷點,保存現(xiàn)場。在保

29、存現(xiàn)場過程中,即使有更高級的中斷源申請中斷,CPU也不應該響應。否則,如果現(xiàn)場保存不完整,在中斷服務程序結束之后,也就不能正確地恢復現(xiàn)場并繼續(xù)執(zhí)行現(xiàn)行程序。(2)保存斷點和現(xiàn)場 為了在中斷處理結束后能正確地返回到中斷點,在響應中斷時,必須把當前的程序計數(shù)器PC中的內容(即斷點)保存起來。 現(xiàn)場信息一般指的是程序狀態(tài)字中斷屏蔽寄存器和CPU中某些寄存器的內容。對現(xiàn)場信息的處理有兩種方式。一種是

30、由硬件對現(xiàn)場信息進行保存和恢復;另一種是由軟件即中斷服務程序對現(xiàn)場信息保存和恢復。 對于由硬件保存現(xiàn)場信息的方式,各種不同的機器有不同的方案。有的機器把斷點等保存在主存固定的單元。,33,,有的機器則不然,它在每次響應中斷后把處理機狀態(tài)字和程序計數(shù)器內容相繼壓入堆棧,再從指定的兩個主存單元分別取出新的程序計數(shù)器內容和處理機狀態(tài)字來代替,稱為交換新、舊狀態(tài)字方式。 (3)判別中斷源,轉向中斷服務程序。在多

31、個中斷源同時請求中斷的情況下。本次實際響應的只能是優(yōu)先權最高的那個中斷源、所以,需進一步判別中斷源,并轉入相應的中斷服務程序入口。 (4)開中斷。因為接下去就要執(zhí)行中斷服務程序,開中斷將允許更高級中斷請求得到響應。實現(xiàn)中斷嵌套。 (5)執(zhí)行中斷服務程序。不同中斷源的中斷服務程序是不同的,實際有效的中斷處理工作是在此程序段中實現(xiàn)的。 (6)退出中斷。在退出時,又應進入不可中斷狀態(tài),即關中斷,恢復現(xiàn)場、恢

32、復斷點,然后開中斷,返回原程序執(zhí)行。 進入中斷時執(zhí)行的關中斷、保存斷點等操作一般是由硬件實現(xiàn)的,它類似于一條指令, 但它與一般的指令不同,不能被編寫在程序中。因此,常常稱為‘中斷隱指令’。,34,,2. 判別中斷源 查詢法 :由測試程序按一定優(yōu)先排隊次序檢查各個設備的“中斷觸發(fā)器”(或稱為中斷標志)。當遇到第一個‘1’標志時,即找到了優(yōu)先進行處理的中斷源,通常取出其設備碼,根據(jù)設備碼轉入相應的中斷服務

33、程序。 串行排隊鏈法 :由硬件確定中斷源。圖10.4為中斷請求邏輯圖和串行排隊判優(yōu)先線路圖。專用硬件——獨立請求。 中斷服務程序入口地址有兩種方法。其一是在中斷程序中設一條專門接受中斷設備號的指令INTA,收到設備號后,在通過主存的跳轉表產生其中斷服務程序入口地址。另一種是目前廣泛應用的向量中斷方法。3. 多重中斷處理——中斷嵌套:在處理某一個中斷的過程中又發(fā)生了新的更高級中斷源的中斷申請,且CUP又處

34、于開中斷狀態(tài)下,CPU就要中斷該服務程序的執(zhí)行,轉去進行新的中斷處理服務程序。一般情況下與它同級的或比它低級的新中斷請求不能CPU不能相應其請求,35,,中斷優(yōu)先級的響應次序由硬件排隊線路決定。一旦設計完成,系統(tǒng)的優(yōu)先級別就決定了,但缺乏改變優(yōu)先權級別的靈活性。在有優(yōu)先級中斷屏蔽碼控制的條件下,可以不改變系統(tǒng)排隊線路,使其中斷響應次序不同。因為中斷屏蔽碼是由軟件賦值,改變屏蔽碼可以改變個設備之間中斷處理次序,所以屏蔽碼可看成中斷處理過程

35、中的軟排隊器。從中斷服務程序結構看,中段服務程序可以在具體處理前被中斷,所以中斷處理次序可以不同于中斷響應次序。這就反映了中斷系統(tǒng)軟硬件結合所帶來的靈活性。,36,中斷判優(yōu)邏輯,① 分散 在各個中斷源的 接口電路中 鏈式排隊器,② 集中 在 CPU 內,(1) 硬件實現(xiàn)(排隊器),INTR1,INTR2,INTR3,INTR4,INTR1 、 INTR2 、 INTR3 、 INTR4 優(yōu)先級 按 降序 排列,,37,A、B、C

36、 優(yōu)先級按 降序 排列,(2) 軟件實現(xiàn)(程序查詢),……,,,轉 A 的服務程序入口地址,轉 B 的服務程序入口地址,轉 C 的服務程序入口地址,38,中斷服務程序入口地址的尋找,1. 硬件向量法,向量地址 12H、13H、14H入口地址 200、 300、 400,39,2. 軟件查詢法,M,……,,40,3. 中斷隱指令,(1) 保護程序斷點,(2) 尋找服務程序入口地址,(3) 硬件 關中斷,PC,,,,,,,

37、斷點存于 特定地址( 0 號地址) 內,斷點 進棧,INT 中斷標記,EINT 允許中斷,R – S 觸發(fā)器,41,保護現(xiàn)場和恢復現(xiàn)場,1. 保護現(xiàn)場,2. 恢復現(xiàn)場,,保護現(xiàn)場,其他服務程序,恢復現(xiàn)場,中斷返回,PUSH,視不同請求源而定,POP,中斷服務程序 完成,中斷服務程序,,中斷隱指令 完成,中斷服務程序 完成,IRET,42,1. 多重中斷的概念,,,,,,,,,,,,,,k,l,m,k +1,l +1,m

38、+1,程序斷點 k+1 , l+1 , m+1,中斷屏蔽技術,43,2. 實現(xiàn)多重中斷的條件,,,,,中斷請求,主程序,(2) 優(yōu)先級別高 的中斷源 有權中斷優(yōu)先級別低 的中斷源,(1) 提前 設置 開中斷 指令,,,,,,,44,3. 屏蔽技術,(1) 屏蔽觸發(fā)器的作用,MASK = 0(未屏蔽),INTR 能被置 “1”,,,,,MASKi = 1 (屏蔽),INTPi = 0 (不能被排隊選中),45,(

39、2) 屏蔽字,16個中斷源 1、2、3 …… 16 按 降序 排列,46,(3) 屏蔽技術可改變優(yōu)先等級,(4) 屏蔽技術的其他作用,0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1,0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1,6# 比 5# 優(yōu)先級高,便于程序控制,可以 人為地屏蔽 某個中斷源的請求,47,,例1 假設某機有設備一、二、三和四共4個設備中斷源,每個中斷原具有不同的優(yōu)先權,共1、2

40、、3、4級響應優(yōu)先權。設其中斷源的優(yōu)先級別從高到低分別為1→2→3→4的順序。每級對應1個屏蔽碼。表1列出中斷響應優(yōu)先級與屏蔽級一致情況下的屏蔽碼。 表1,48,,假設當CPU執(zhí)行主程序過程中同時出現(xiàn)設備2和3兩個中斷請求。按排隊線路,因設備2的優(yōu)先級高于3,故應先響應設備2中斷請求。執(zhí)行設備2的中斷服務程序并保護現(xiàn)場和原屏蔽字后,將2級程序的屏蔽碼置入各接口屏蔽寄存器,它將屏蔽3級的中斷請求。執(zhí)行

41、完2級服務程序后恢復原屏蔽碼,返回主程序后再響應3級的中斷請求。 此時若4級又提出中斷請求,CPU暫不予理睬。3級中斷程序執(zhí)行完后再響應4級的中斷。由圖10.5可知,縱向表示各中斷源申請中斷的先后時間,橫向表示中斷優(yōu)先級別。 假若CPU再次執(zhí)行2級中斷服務程序時,出現(xiàn)了1級中斷請求,由于在執(zhí)行3級服務程序時已經把其程序屏蔽字置入屏蔽寄存器了,這樣對1級中斷是開放的。因其1級優(yōu)先級高于2級,則CPU暫停對第2級中斷服務程

42、序的執(zhí)行,轉去執(zhí)行第1級中斷服務程序。等第1級中斷服務程序執(zhí)行完后,再去執(zhí)行第2級中斷服務程序。在本例中,中斷請求次序為2、3→4→2→l;而中斷完成次序為2→3→4→l→2,兩者不相同。,49,,圖10.5 多重中斷處理示意圖中斷請求 主程序 中斷處理程序 1 2

43、3 4,,3,2 4,,,,,,,,,,,,,,,,,,,,,,,,21,,50,(1) 斷點進棧,(2) 斷點存入“ 0 ” 地址,中斷隱指令 完成,中斷周期,命令存儲器寫,三次中斷,三個斷點都存入 “ 0 ” 地址,多重中斷的斷點保護,中斷隱指令 完成,51,(3) 程序斷點存入 “ 0 ” 地址的斷點保護,SERVE,LDA SAVE,JMP @ RETURN,存程序斷點,5 為向量地址,…,保護現(xiàn)場

44、,恢復現(xiàn)場,間址返回,存放 ACC 內容,轉存 0 地址內容,開中斷,ENI,52,,例2 在不改變硬件排隊響應次序下,欲臨時改變上題中斷處理次序為1→4→3→2時,則可以采用改變中斷屏蔽碼來實現(xiàn)。如表2所示。 在CPU執(zhí)行主程序過程中的某一時刻,1、2和4三個設備同時出現(xiàn)中斷請求信號,首先響應1級請求;當返回主程序后,有硬件排隊線路決定先響應2級請求,但2級屏蔽碼置入屏蔽寄存器后,由于2級對4級是開放的且屏蔽它本身,2

45、級服務程序執(zhí)行到開中斷指令后就被4級中斷;當4級中斷服務程序執(zhí)行完后返回到2級程序,并執(zhí)行完2級服務程序后返回主程序。由此可知,它改變了硬件排隊所決定的響應次序。當?shù)诙M中斷請求出現(xiàn)時,3級申請先出現(xiàn),故先響應3級中斷,并執(zhí)行中斷服務程序。因3級對1級開放,所以當1級請求出現(xiàn)時,1級中斷了3級。當1級服務程序執(zhí)行完后返回3級后,又由2級出現(xiàn)申請時,由于3級對2級屏蔽,故當3級執(zhí)行完返回主程序后才響應2級請求并執(zhí)行執(zhí)行完后返回主程序。,5

46、3,,CPU執(zhí)行中斷的時序如圖10.6。 表2 中斷處理次序為1→4→3→2的屏蔽碼 圖10.6響應次序與處理次序不一致時CPU的執(zhí)行時序,54,10.2.3 80X86的中斷功能,允許256個中斷源、0~2551.按中斷原因分:軟件中斷:執(zhí)行特定指令時產生的中斷硬件中斷:外部事件觸發(fā)產生的中斷2.中斷矢量:中斷服務程序入口地址的地址。3.中斷服務程序入口地址:放在 CS和IP中。,,55,4. 808

47、6中斷響應過程,將類型碼乘4作為指向中斷矢量(向量)表內的地址;標志寄存器FR入棧,保護各個標志位;將陷阱標志寄存器TF的內容送入暫存寄存器,清除中斷允許寄存器IR和TF的內容,屏蔽新的外部中斷申請INTR和單步中斷。根據(jù)中斷矢量,從中斷矢量表中取中斷服務程序入口地址分別送入指令指針寄存器IP和程序段寄存器CS在中斷服務程序中通常要保護CPU內部有關通用寄存器的內容(保存現(xiàn)場),開中斷;中斷服務程序運行結束后要恢復現(xiàn)場,返回被

48、中斷的程序繼續(xù)執(zhí)行下條指令。,56,10.2.4 可編程中斷控制器8259A簡介,1、功能:允許8個外部中斷源.可二級級聯(lián),最多可控制64個中斷源(9片)片內可編程,自動選擇不同的優(yōu)先級判定方式(固定優(yōu)先級和循環(huán)優(yōu)先級)選擇控制中斷方式對某個中斷可進行屏蔽設置2、邏輯結構圖:,57,圖10.7 可編程中斷控制器8259A邏輯結構圖,,D7~D0,,INTA,,INTR,,中斷請求鎖存器,中斷屏蔽寄存器,數(shù)據(jù)總線緩沖器,,

49、,,IR0,IR7,讀/寫控制邏輯,級聯(lián)緩沖器比較器,,,,,CAS0,CSA1,CAS2,SP/EN,,,優(yōu)先權判別電路,正在服務寄存器,,,,,,,,,控制邏輯,,,,,,,,,,,,,,,58,,Intel 8259A中斷控制器件的內部結構 如圖 I0.7所示。它由八個部分組成;中斷請求寄存器、中斷狀態(tài)寄存器、優(yōu)先級判斷器、中斷屏蔽寄存器、中斷控制邏輯、數(shù)據(jù)緩沖器、級聯(lián)緩沖器/比較器和讀/寫邏輯。

50、 八位中斷請求寄存器接受外設來的中斷請求(IR0~IR7),每一位表示一個外部設備的中斷請求。 中斷寄存器的各位送入優(yōu)先級判斷器,根據(jù)中斷屏蔽寄存器和中斷狀態(tài)寄存器的狀態(tài)決定最高優(yōu)先級的中斷請求并將判優(yōu)結果送入中斷狀態(tài)寄存器。如果中斷請求被接受,則由控制邏輯向CPU發(fā)中斷請求INT。 D0~D7為雙向數(shù)據(jù)線、數(shù)據(jù)緩沖器暫時保存在內部總線和系統(tǒng)數(shù)據(jù)總線間進行傳送的數(shù)據(jù)。 讀/寫邏輯將決定

51、數(shù)據(jù)的傳送方向。RD為讀命令,而WR為寫命令。,59,,/CS為8259A芯片的選擇信號,A0與8259A中被選的寄存器地址有關。 在8259A中,為每一個外設的中斷請求(IR0~IR7)設置一個中斷類型碼(8位),當其中一個外設的中斷請求被CPU響應后,8259A送出與該中斷所對應的中斷類型碼作為尋找中斷服務程序入口的依據(jù)。中斷類型碼(8位)由兩部分組成,其高5位是由計算機初始化程序設置的,保存在8259A中以后不再改變;

52、低3位由被響應的中斷請求序號提供。例如,IR3的中斷請求被響應,中斷類型碼的低3位即為011。在同一個8259A中,高5位為8個中斷請求共用(類型地址高位編號)。假設與IR0對應的中斷類型碼為40H,那么與IR1~IR7對應的中斷類型碼為4lH~47H。 每個8259A最多能控制8個外部中斷信號,但可將多個8259A級聯(lián)以處理多達64個中斷請求、它允許有一個主單元和多個(不超過8個)從單元,稱為主從系統(tǒng)。如下圖所示。,60

53、,8259級聯(lián)工作示意圖,61,,8259允許采用多種中斷優(yōu)先級選擇方式和屏蔽方式。 8259A的中斷優(yōu)先級選擇方式具有完全嵌套方式、輪換優(yōu)先級A,輪換優(yōu)先級B和查詢方式。完全嵌套方式是一種固定優(yōu)先級方式,連至IR0的外圍設備優(yōu)先權最高,而連至IR7的優(yōu)先權最低。這種固定優(yōu)先級方式對級別低的中斷不利,在某些情況下,最低級別的中斷請求可能一直不能被處理。 輪換優(yōu)先級方式A,每個級別的中斷保證有機會被處理。它把給定的中

54、斷級別處理完后,立即把它放到最低級別的位置上去。輪換優(yōu)先級方式B要求CPU可在任何時間規(guī)定最低優(yōu)先級,然后按順序規(guī)定其他IR線上的優(yōu)先級。查詢方式由8259給出一個狀態(tài)字表示出正在請求中斷的最高憂先級IR線,并能表示出中斷請求是否有效。,62,設備1,接口,菊花鏈邏輯電路,,,,,,,,,設備2,接口,菊花鏈邏輯電路,,,,,,,,設備3,接口,菊花鏈邏輯電路,,,,,,,,,,,,,,,,,,,CPU以及總線控制邏輯

55、 INTA INTR,,,,,,,,,,,,,,,中斷回答,中斷請求,,菊花鏈式判優(yōu)法,+5v,63,,8259A單元提供了兩種屏蔽方式,簡單屏蔽方式和特殊屏蔽方式。簡單屏蔽方式提供了8位的屏蔽字,每位對應著各自的IR線被置位的任何一位就禁止了相應IR線上的中斷。 特殊屏蔽方式允許CPU讓來自低優(yōu)先級外設的中斷去中斷高優(yōu)先級的服務程序。當8位屏蔽位的某一位被置‘0’時,則對應此位的IR

56、線上的外設中斷可中斷比它高優(yōu)先級別的服務程序。例如,若屏蔽字為1110 1111,說明IR4線上的中斷可中斷任何高級別的中斷服務程序。 8259A單元的不同工作方式是通過編程來進行選擇的,CPU送出一系列的初始化控制字和操作控制字來執(zhí)行選定的操作。CPU將8259當作兩個I/O端口或兩個存儲單元來尋址,由A0端確定這些控制字存入讀/寫邏輯中哪個控制字寄存器。,64,,10.3 DMA(Direct Memory Access)

57、 輸入輸出方式 高速大容量存儲器和主存之間交換時,若采用程序直接傳送或程序中斷傳送的方式,則會有如下問題發(fā)生。 1)采用程序直接傳送,主機工作效率受到限制。 2)采用中斷控制數(shù)據(jù)傳送可以提高主機效率,但用于高速外設和主機交換信息,會使主機處于頻繁的中斷與返回過程中,從而加重了與中斷有關的額外負擔(即保護舊現(xiàn)場,恢復新現(xiàn)場),這樣降低了CPU的性能,還有丟失數(shù)據(jù)的可能。所以對高速I/O設備,用中斷傳送控

58、制方式也是不合適的。應采用直接存儲器訪問方式傳送,即DMA方式較為合適。,65,,,,66,,DMA是l/O設備與主存儲器之間由硬件組成的直接數(shù)據(jù)通路,主要用于高速I/O設備與主存之間的成組數(shù)據(jù)傳送。數(shù)據(jù)傳送時是在DMA控制器控制下進行的,由DMA控制器給出當前正在傳送的數(shù)據(jù)字的主存地址,并統(tǒng)計傳送數(shù)據(jù)的個數(shù)以確定一組數(shù)據(jù)的傳送是否已結束。在主存中要開辟連續(xù)地址的專用緩沖器,用來提供或接收傳送的數(shù)據(jù)。在數(shù)據(jù)傳送之前和結束后要通過程序或中

59、斷方式對緩沖器和DMA控制器進行預處理和后處理。 對磁盤的讀寫是以數(shù)據(jù)塊為單位進行的,一旦找到數(shù)據(jù)塊的起始位置就將連續(xù)地讀寫。 而計算機通過通信設備與外部通信時,常以數(shù)據(jù)幀為單位進行批量傳送。但在大批量數(shù)據(jù)采集系統(tǒng)中,也可以采用DMA方式。,67,,1.CPU暫停方式 主機響應DMA請求后讓出存儲總線,直到一組數(shù)據(jù)傳送完畢后,DMA控制器才把總線控制權交還給CPU。采用這種工作方式的I/O設備,在其接口中一般設

60、置有存取速度較快的小容量存儲器。I/O設備與小容量存儲器先交換數(shù)據(jù),然后小容量存儲器再與主機交換數(shù)據(jù),這樣可減少DMA傳送占用存儲總線的時間,也即減少CPU暫停工作時間。這種方式也稱為成組連續(xù)傳送方式,它可減少系統(tǒng)總線控制權的交換次數(shù),有利于提高輸入輸出速度。適用于高速外設或單用戶狀態(tài)下的個人計算機。2. CPU周期竊取方式 DMA控制器與主存儲器之間傳送一個數(shù)據(jù)占用(竊取)一個CPU周期即CPU暫停工作一個周期,然后繼續(xù)

61、執(zhí)行程序。這種方式也稱為單字傳送方式。,10.3.1 DMA三種工作方式,68,,3.直接訪問存儲器工作方式 這是標準的 DMA工作方式。如傳送數(shù)據(jù)時CPU正好不占用存儲總線,則對 CPU不產生任何影響。如同時需要訪問存儲總線,則DMA的優(yōu)先級高于CPU。 10.3.2 DMA控制器組成 DMA控制器基本組成如圖10.8所示。它包括多個設備寄存器、中斷控制和DMA控制邏輯等。DMA控制器中包含多個寄存器,主

62、要的寄存器有: (1)主存地址寄存器(MAR):該寄存器初始值為主在緩沖區(qū)的首地址,在傳送前要由程序送入。主存緩沖區(qū)地址是連續(xù)的。在DMA傳迭期間,每交換一個字由硬件邏輯將其自動加1而成為下一次數(shù)據(jù)傳送的主存地址。 (2)外圍設備地址寄存器(ADR):該寄存器存放I/O設備的設備碼或者表示設備信息存儲區(qū)的尋址信息,如磁盤數(shù)據(jù)所在的區(qū)號、盤面號和柱面號等。具體內容取決于I/O設備的數(shù)據(jù)格式和地址字編址方式。,69,,(3)字

63、數(shù)計數(shù)器(WC):該計數(shù)器對傳送數(shù)據(jù)的總字數(shù)進行統(tǒng)計,在傳送開始前,由程序將要傳送的一組數(shù)據(jù)的字數(shù)送入 WC,以后每傳送一個字(或字節(jié))計數(shù)器自動減 1,當WC內容為零時表示數(shù)據(jù)已全部傳送完畢。 (4)控制與狀態(tài)寄存器(CSR):該寄存器用來存放控制率和狀態(tài)字,有的接口中使用兩個寄存器分別存放控制字和狀態(tài)字。 (5)數(shù)據(jù)緩沖寄存器(DBR):該寄存器用來暫存I/O設備與主存?zhèn)魉偷臄?shù)據(jù)。通常DMA與主存之間是按字傳送的,而DM

64、A與設備之間時能是按字節(jié)或塊傳送的。因此,DMA還可能要包括裝配和拆卸字信息的硬件。如數(shù)據(jù)移位緩沖寄存器、字節(jié)計數(shù)器等。 各寄存器均有自己的總線地址,它們是主存的指定單元或I/O設備號,CPU可對這些寄存器進行讀/寫。,70,DMA控制器結構,71,,此外還有中斷控制邏輯 DMA中斷控制邏輯負責申請CPU對DMA進行預處理和后處理。 DMA控制邏輯 一般包括設備碼選擇電路;DMA優(yōu)先排隊電路,產生DMA請求的線路

65、等;在DMA取得總線控制權后控制主存和設備之間的數(shù)據(jù)傳送; DMA接口與主機和I/O設備兩個方向的數(shù)據(jù)線、地址線和控制信號線以及有關收發(fā)與驅動線路。 DMA傳送是直接依靠硬件實現(xiàn)的,這是它不同于程序查詢方式、中斷傳送訪時之處。原理方框圖如下:,72,,數(shù)據(jù)總線,控制總線,地址譯碼器,,地址總線,,,,,總線請求,總線允許,控制寄存器,狀態(tài)寄存器,地址寄存器,字節(jié)計數(shù)器,,,,DMA請求,DMA回答,計數(shù)結束信號,DMA

66、控制器框圖,73,,10.3.3 DMA的數(shù)據(jù)傳送過程 DMA的數(shù)據(jù)傳送過程可分為三個階段。DMA傳送前預處理、數(shù)據(jù)傳送及傳送后處理。1. DMA預處理 在進行DMA數(shù)據(jù)傳送之前要用程序做一些必要的準備工作。先由CPU執(zhí)行幾條輸入輸出指令測試設備狀態(tài);向DMA控制器的設備地址寄存器中送入設備地址并啟動設備;在主存地址寄存器中送入交換數(shù)據(jù)的主存起始地址;在數(shù)據(jù)字數(shù)寄存器中送入交換的數(shù)據(jù)個數(shù)。 在這些工作完成之后,

67、CPU繼續(xù)執(zhí)行原來的程序等待設備發(fā)出DMA申請。,,,N,,,CPU預處理,,,數(shù)據(jù)傳送,,,后處理,,,DMA請求,,,,,,圖10.9 DMA數(shù)據(jù)傳送過程,,N,Y,Y,75,,2. DMA控制I/0設備與主存之間的數(shù)據(jù)交換 I/O設備啟動后,若為輸入數(shù)據(jù),則要進行以下操作 (1)從輸入介質讀入一個字到數(shù)據(jù)緩沖寄存器 DBR中,如 I/0設備是面向字符的,也就是一次讀入的數(shù)據(jù)為一個字節(jié),則組成一個字需經裝配。

68、 (2)向CPU發(fā)DMA請求,在取得總線控制權后將DBR中的數(shù)據(jù)送入主存的數(shù)據(jù)寄存器。 (3)將DMA中的MAR內容送主存的地址寄存器,啟動寫操作將數(shù)據(jù)寫入主存。 (4)將WC內容減1;將MAR的內容加1,給出下一個字的地址。 (5) 判斷WC是否為“0”,若不是,說明還有數(shù)據(jù)需要傳送,檢查無錯后準備下一字的輸入。若WC為“0”,表明一組數(shù)據(jù)已傳送完畢,此時應置結束標志向CPU發(fā)中斷請求。,76,,若為輸出數(shù)據(jù)應

69、進行以下操作(1)將MAR的內容送主存的地址寄存器。(2)啟動主存讀操作,將對應單元的內容讀入主存的數(shù)據(jù)寄存器(3)將主存數(shù)據(jù)寄存器的內容送到DMA的DBR中。(4)將DBR的內容送到輸出設備,若為字符設備則需將DBR內容拆成字符輸出。(5)將 WC內容減 1,MAR內容加 1,為下一個字的輸出做好準備。(6)判斷WC的內容是否為0。如不為0,說明還需繼續(xù)傳送。輸出設備處理完數(shù)據(jù)后,發(fā)DMA請求。如 WC為0或檢驗有錯則停止

溫馨提示

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

評論

0/150

提交評論