版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2020/12/7,1,計(jì)算機(jī)組成原理,第10章 輸入、輸出(I/O)系統(tǒng),2020/12/7,計(jì)算機(jī)組成原理,2,10.1 輸入輸出(IO)系統(tǒng)概述 輸入輸出系統(tǒng)包括外部設(shè)備(輸入輸出設(shè)備和輔助存儲(chǔ)器)及其與主機(jī)(CPU和存儲(chǔ)器)之間的控制部件。后者稱之為設(shè)備控制器,諸如磁盤控制器、打印機(jī)控制器等,有時(shí)也稱為設(shè)備適配器或接口,其作用是控制并實(shí)現(xiàn)主機(jī)與外部設(shè)備之間的數(shù)據(jù)傳送。本章主要介紹設(shè)備控制器的工作原理及其與主機(jī)之間傳送數(shù)據(jù)的協(xié)議,即系統(tǒng)總線。,2020/12/7,計(jì)算機(jī)組成原理,3,10.1.1 功能 接口是計(jì)算機(jī)與I/O設(shè)備或其他系統(tǒng)之間所設(shè)置的邏輯控制部件,也稱I/O控制器。 接口的
2、引入:,外設(shè)類型不同: 機(jī)械、電子、機(jī)電、電磁 傳送信息類型: 數(shù)字量、模擬量 傳送速度 傳送方式: 串行、并行 編碼方式:,能實(shí)現(xiàn)數(shù)據(jù)緩沖和數(shù)據(jù)鎖存 能完成信息格式和電平的轉(zhuǎn)換 能進(jìn)行地址譯碼和設(shè)備選擇 能保證數(shù)據(jù)傳送的定時(shí)與協(xié)調(diào),功能:,2020/12/7,計(jì)算機(jī)組成原理,4,外圍設(shè)備接口的結(jié)構(gòu),接口地址,地址,譯碼,器,數(shù)據(jù)寄存器,命令寄存器,RD,WE,地址,有效,總線,數(shù)據(jù)線,地址線,外設(shè)接口,外設(shè)控制信號(hào),外設(shè)數(shù)據(jù),外設(shè)狀態(tài),狀態(tài)寄存器,I/O接口 功能演示,2020/12/7,計(jì)算機(jī)組成原理,5,1.輸入輸出接口的基本結(jié)構(gòu),CPU和外設(shè)之間通常傳遞的信息:數(shù)據(jù)、狀態(tài)、控制,組成:
3、寄存器組、控制邏輯電路、主機(jī)與接口和接口與I/O設(shè)備之間的信號(hào)聯(lián)接線、數(shù)據(jù)地址線、控制狀態(tài)信號(hào)線,CPU,控制電路,DR,SR,CR,I/O 設(shè)備,地址,數(shù)據(jù),IO/M,RD,WR,數(shù)據(jù),狀態(tài),控制,2020/12/7,計(jì)算機(jī)組成原理,6,2. I/O接口分類,結(jié)構(gòu)方式 并行和串行 收發(fā)配合方式 同步和異步 數(shù)據(jù)傳送配合方式 程序傳送、中斷傳送、DMA、通道、IO處理器 電路規(guī)模 簡(jiǎn)單接口、可編程接口、外設(shè)接口適配器,2020/12/7,計(jì)算機(jī)組成原理,7,3. 輸入輸出接口的編址方式,在接口電路中通常都具有多個(gè)可由CPU進(jìn)行讀寫操作的寄存器,每個(gè)寄存器也叫做“端口”。為了CPU便于對(duì)IO設(shè)備
4、進(jìn)行尋址和選擇,必須給眾多的IO設(shè)備的端口進(jìn)行編址,也就是給每一臺(tái)設(shè)備規(guī)定一些地址碼稱為設(shè)備號(hào)或設(shè)備代碼。 隨著CPU對(duì)IO設(shè)備下達(dá)命令方式的不同而有以下兩種尋址方法。 (1) 存儲(chǔ)器、I/O接口統(tǒng)一編址 將接口電路中的端口地址與存儲(chǔ)單元統(tǒng)一編址 優(yōu):訪存指令可訪問端口,這樣尋址類型多,編程較方便。 缺:占用存儲(chǔ)器空間;速度慢。 (2) I/O端口獨(dú)立編址 給I/O接口中的各端口提供與存儲(chǔ)器空間完全分開、完全獨(dú)立的I/O地址空間。 優(yōu):專門的I/O指令,與訪存分開;指令執(zhí)行快;不占內(nèi)存地址空間。缺:需專用指令、尋址方式少。,2020/12/7,計(jì)算機(jī)組成原理,8,IBM PC等系列機(jī)設(shè)置有專門
5、的IO指令(IN和OUT),設(shè)備的編址可達(dá)512個(gè),部分設(shè)備的地址碼如表 10.1所示。 從表中可見,每一臺(tái)設(shè)備占用了若干個(gè)地址碼分別表示相應(yīng)的設(shè)備控制器中的寄存器地址。,2020/12/7,計(jì)算機(jī)組成原理,9,10.1.2 主機(jī)與外設(shè)間 數(shù)據(jù)傳送控制方式,一、程序直接控制(program direct control ) 傳遞方式 二、程序中斷傳送(program interrupt transfer)方式 三、直接存儲(chǔ)器存取(direct memory access) 方式DMA 四、I/O通道控制(I/O channel control)方式 五、外圍處理機(jī)(peripheral pro
6、cessor unit)方式,2020/12/7,計(jì)算機(jī)組成原理,10,信號(hào)傳輸過程,狀態(tài)寄存器,數(shù)據(jù)寄存器,2,控制,器,ALU,數(shù)據(jù)寄存器,1,地址寄存器,設(shè)備驅(qū)動(dòng)電路,數(shù)據(jù)寄存器,地址譯碼器,設(shè)備接口,CPU,2020/12/7,計(jì)算機(jī)組成原理,11,1、 程序直接控制傳送方式,該方法是主機(jī)與外設(shè)之間進(jìn)行數(shù) 據(jù)交換的最簡(jiǎn)單、最基本的控制方法。 無條件傳送 只有在外設(shè)總處于準(zhǔn)備好狀態(tài) 程序查詢方式 優(yōu)點(diǎn): 較好協(xié)調(diào)主機(jī)與外設(shè)之間的時(shí) 間差異 所用硬件少。 缺點(diǎn): 主機(jī)與外設(shè)只能串行工作 主機(jī)一個(gè)時(shí)間段只能與一個(gè)外 設(shè)進(jìn)行通訊 CPU效率低。,從I/O接口中讀 一個(gè)字到CPU,從CPU向主存
7、 寫入一個(gè)字,CPU向I/O發(fā) 讀指令,CPU讀I/O狀態(tài),檢查狀態(tài),完成否,未準(zhǔn)備就緒,現(xiàn)行程序,是,出錯(cuò),已準(zhǔn)備就緒,否,程序直接控制方式的輸入接口工作過程演示,2020/12/7,計(jì)算機(jī)組成原理,12,2、程序中斷傳送方式,由于CPU與外設(shè)之間的速度至今仍是微秒和毫秒的數(shù)量級(jí),速度差異懸殊,會(huì)使CPU的工作效率下降。 優(yōu)點(diǎn):避免頻繁查詢,適合隨機(jī)出現(xiàn)的服務(wù)和中低速外設(shè)使用。 缺點(diǎn):成批數(shù)據(jù)交換時(shí),中斷影響傳送效率,一次傳送一個(gè)字符,中斷處理時(shí)間大于傳送數(shù)據(jù)時(shí)間。需要一定的硬件電路。,中斷方式的引入,程序中斷方式的輸入接口工作過程演示,2020/12/7,計(jì)算機(jī)組成原理,13,3、直接存儲(chǔ)
8、器訪問方式,1. DMA方式的引入 前兩種方式以CPU為中心,占用CPU時(shí)間。DMA方式以內(nèi)存為中心。 2. 基本工作原理 在外設(shè)通過專門的接口電路和存儲(chǔ)器進(jìn)行數(shù)據(jù)交換,而不用通過CPU的寄存器。控制過程由DMA控制器這樣的硬件來完成,不需要保存斷點(diǎn)。 特點(diǎn):適用于高速設(shè)備和大數(shù)據(jù)量的數(shù)據(jù)傳輸,需用更多的硬件電路支持。,直接存儲(chǔ)器存取方式軟盤控制接口工作演示,2020/12/7,計(jì)算機(jī)組成原理,14,三種方式的 CPU 工作效率比較,程序 查詢 方式,程序 中斷 方式,DMA 方式,2020/12/7,計(jì)算機(jī)組成原理,15,4、I/O通道控制方式 IO通道具有少數(shù)專用的指令系統(tǒng),能實(shí)現(xiàn)指令所控
9、制的操作,管轄其相應(yīng)的設(shè)備控制器,所以IO通道已具備簡(jiǎn)單處理機(jī)的功能。但它僅僅是面向外圍設(shè)備的控制和數(shù)據(jù)的傳送,其指令系統(tǒng)也僅僅是幾條簡(jiǎn)單的與IO操作有關(guān)的命令。它要在CPU的IO指令指揮下啟動(dòng)、停止或改變工作狀態(tài)。因此,lO通道不是一個(gè)完全獨(dú)立的處理機(jī),它只是從屬于CPU的一個(gè)專用IO處理器。它的進(jìn)一步發(fā)展是引入專用的輸入輸出處理機(jī)。 通道方式的出現(xiàn)進(jìn)一步提高了CPU的效率。但需更多的硬件電路。,2020/12/7,計(jì)算機(jī)組成原理,16,5、 輸入輸出處理機(jī)(IOP)方式,有單獨(dú)的存儲(chǔ)器和獨(dú)立的運(yùn)算部件,可訪問系統(tǒng)的內(nèi)部存儲(chǔ)器 除數(shù)據(jù)傳輸外,還應(yīng)有以下功能:能處理傳送過程中出錯(cuò)及異常情況,數(shù)
10、據(jù)格式翻譯,數(shù)據(jù)塊校驗(yàn)。 IOP方式是通道方式的進(jìn)一步的發(fā)展。它們大多應(yīng)用在中、大型計(jì)算機(jī)中。,2020/12/7,計(jì)算機(jī)組成原理,17,10.2 程序中斷控制技術(shù) 中斷:計(jì)算機(jī)暫時(shí)中止當(dāng)前程序運(yùn)行,轉(zhuǎn)而處理意外出現(xiàn)的情況或有意安排的任務(wù),在處理結(jié)束后能自動(dòng)恢復(fù)原程序的執(zhí)行,這個(gè)過程叫作“中斷”。 中斷系統(tǒng)是計(jì)算機(jī)實(shí)現(xiàn)中斷功能的軟、硬件總稱。在CPU一側(cè)配置了中斷機(jī)構(gòu),在設(shè)備一側(cè)配置了中斷控制接口,在軟件上設(shè)計(jì)了相應(yīng)的中斷服務(wù)程序。 中斷過程由中斷請(qǐng)求、中斷響應(yīng)、狀態(tài)保護(hù)、中斷屏蔽、中斷處理、恢復(fù)和返回組成。,2020/12/7,計(jì)算機(jī)組成原理,18,I/O 中斷的產(chǎn)生,以打印機(jī)為例,CPU
11、與打印機(jī)并行工作,2020/12/7,計(jì)算機(jī)組成原理,19,10.2.1 中斷的概念,在機(jī)器中引起中斷產(chǎn)生的事件或發(fā)生中斷請(qǐng)求的來源統(tǒng)稱為中斷源。 硬件中斷 是指由某個(gè)硬件中斷請(qǐng)求信號(hào)引起的中斷 ,硬件中斷通過是中斷請(qǐng)求信號(hào)形成向量地址。向量地址是中斷服務(wù)程序入口地址的地址。 軟中斷 是指由軟中斷指令所引起的中斷,軟中斷由指令提供中斷號(hào)n,再轉(zhuǎn)換為向量地址。 強(qiáng)迫中斷 是指由于故障、外部請(qǐng)求等所引起的強(qiáng)迫性中斷,非程序本身安排的,這種請(qǐng)求的提出和相應(yīng)的服務(wù)處理都是隨機(jī)的。 自愿中斷即軟中斷 這是程序有意安排的,即以事先在程序某處設(shè)置斷點(diǎn),以中斷方式引出服務(wù)程序,實(shí)現(xiàn)某種功能。如單步調(diào)試程序。,
12、1. 中斷源,2020/12/7,計(jì)算機(jī)組成原理,20,內(nèi)部中斷:指來自主機(jī)內(nèi)部的中斷請(qǐng)求,如CPU內(nèi)部硬件故障、軟中斷、程序出錯(cuò)、運(yùn)算產(chǎn)生故障引起的中斷、控制器產(chǎn)生的中斷。即溢出、除數(shù)為零、校驗(yàn)錯(cuò)、非法格式、虛擬存儲(chǔ)器頁面失效、 非法指令、調(diào)用失敗、故障中斷等。 外部中斷:由CPU外部產(chǎn)生的中斷 鍵盤中斷、打印機(jī)中斷、磁盤存儲(chǔ)器申請(qǐng)中斷、電源故障、主機(jī)設(shè)備故障、定時(shí)時(shí)鐘中斷、顯示器中斷、打印機(jī)中斷等。 可屏蔽中斷INTR 一般將外圍設(shè)備中斷作為可屏蔽中斷,CPU通過屏蔽技術(shù)施加以控制。 不可屏蔽中斷NMI 這是一種必須響應(yīng)處理的中斷請(qǐng)求,作為非屏蔽中斷,不受CPU屏蔽。軟中斷發(fā)生于CPU內(nèi)部
13、,不屬于外中斷范疇,從概念上將它也是不可屏蔽的。,2020/12/7,計(jì)算機(jī)組成原理,21,向量中斷 CPU響應(yīng)中斷后,由中斷機(jī)構(gòu)自動(dòng)將向量地址通知處理機(jī),由向量地址指明中斷向量位置并實(shí)現(xiàn)向量切換,不必經(jīng)過處理程序來查詢中斷源的中斷功能,稱為向量中斷。即直接依靠硬件來實(shí)現(xiàn)根據(jù)中斷源獲得服務(wù)程序入口地址,以實(shí)現(xiàn)程序切換。向量中斷的特點(diǎn)是根據(jù)中斷請(qǐng)求信號(hào)能快速地、直接轉(zhuǎn)向?qū)?yīng)的服務(wù)程序。因此,現(xiàn)代計(jì)算機(jī)基本上多具有向量中斷能力。 非向量中斷 CPU不能直接提供中斷服務(wù)程序入口地址,而是CPU在響應(yīng)中斷時(shí)只產(chǎn)生一個(gè)固定的地址,由此讀取中斷查詢程序的入口地址,從而轉(zhuǎn)向查詢程序;通過執(zhí)行查詢程序,確定被
14、優(yōu)先批準(zhǔn)的中斷源,然后分支進(jìn)入相應(yīng)的中斷服務(wù)程序。非向量中斷也稱為單向量中斷。,2020/12/7,計(jì)算機(jī)組成原理,22,2. CPU響應(yīng)中斷必須滿足的條件,中斷源有中斷請(qǐng)求 中斷寄存器 CPU允許接受中斷請(qǐng)求 開中斷 中斷屏蔽寄存器(判優(yōu)) 禁止中斷 一般一條指令執(zhí)行完畢后CPU才能響應(yīng)中斷,并且當(dāng)前執(zhí)行的不是停機(jī)指令,又沒有優(yōu)先權(quán)更高的請(qǐng)求,則CPU進(jìn)入中斷周期狀態(tài),進(jìn)入中斷響應(yīng)。,取指令,執(zhí)行指令,中斷,響應(yīng)中斷,執(zhí)行中斷 服務(wù)程序,返回?cái)帱c(diǎn),關(guān)中斷、保存斷點(diǎn)、 現(xiàn)場(chǎng)、開中斷,關(guān)中斷、恢復(fù)現(xiàn)場(chǎng)、 斷點(diǎn)、開中斷,NO,Y,2020/12/7,計(jì)算機(jī)組成原理,23,相關(guān)知識(shí)說明 1)中斷響應(yīng)
15、 一旦CPU中斷響應(yīng)條件得到滿足,則CPU進(jìn)入中斷周期狀態(tài),并開始響應(yīng)中斷。CPU響應(yīng)中斷意味著處理機(jī)從一個(gè)程序切換到另一個(gè)程序。 2)中斷服務(wù)程序 為處理意外情況或有意安排的任務(wù)而編寫的程序稱為“中斷服務(wù)程序” 3)中斷請(qǐng)求的檢測(cè)與屏蔽 在一個(gè)指令周期的最后一個(gè)機(jī)器周期檢測(cè) 當(dāng)外部中斷源申請(qǐng)中斷時(shí),CPU是否響應(yīng)還要取決于其內(nèi)部的中斷允許寄存器IR。 IR=1 是允許中斷申請(qǐng)(開中斷);IR=0 時(shí)禁止中斷申請(qǐng)(關(guān)中斷)。由指令STI和CLI軟件設(shè)置。,2020/12/7,計(jì)算機(jī)組成原理,24,4)中斷請(qǐng)求觸發(fā)器: 當(dāng)中斷源發(fā)生引起中斷的事件時(shí)先將它保存在設(shè)備控制器的中斷請(qǐng)求觸發(fā)器中,即將“
16、中斷觸發(fā)器置1”。 5)禁止中斷: 產(chǎn)生中斷源后,由于某種條件的存在,CPU不能中止現(xiàn)行程序的執(zhí)行,稱為禁止中斷。一般在CPU內(nèi)部設(shè)有一個(gè)“中斷允許觸發(fā)器。只有該觸發(fā)器為1狀態(tài)時(shí)。才允許處理機(jī)響應(yīng)中斷;如果該觸發(fā)器被清除,則不響應(yīng)外部中斷源申請(qǐng)的中斷、前者叫做允許中斷,后者叫做禁止中斷。 6)堆棧與斷點(diǎn)的保護(hù) 程序被中斷的地址稱為斷點(diǎn),需保存,以備恢復(fù)執(zhí)行時(shí)使用,保存斷點(diǎn)的地方稱為棧區(qū)。 棧區(qū):內(nèi)存中開辟的專用數(shù)據(jù)存取區(qū),2020/12/7,計(jì)算機(jī)組成原理,25,7)“中斷允許觸發(fā)器通過開中斷ST I或關(guān)中斷CLI指令來置位、復(fù)位。進(jìn)入中斷服務(wù)程序后自動(dòng)“關(guān)中斷。 8)中斷屏蔽: 當(dāng)產(chǎn)生中斷請(qǐng)
17、求后,用程序方式有選擇地封鎖部分中斷而允許其余部分中斷仍得到響應(yīng),稱為中斷屏蔽。 實(shí)現(xiàn)方法是為每個(gè)中斷源設(shè)置一個(gè)中斷屏蔽觸發(fā)器來屏蔽該設(shè)備的中斷請(qǐng)求。具體說,用程序方法將該觸發(fā)器置“l(fā)則對(duì)應(yīng)的設(shè)備中斷被封鎖,若將其置“0”,才允許該設(shè)備的中斷請(qǐng)求得到響應(yīng),由各設(shè)備的中斷屏蔽觸發(fā)器組成中斷屏蔽寄存器。,2020/12/7,計(jì)算機(jī)組成原理,26,9)向量(矢量)中斷和中斷向量(矢量)矢量中斷:是根據(jù)發(fā)生中斷時(shí),CPU能夠直接獲得到一個(gè)中斷服務(wù)程序的起始地址的方式而得名。中斷矢量:實(shí)際上就是一個(gè)指針,其內(nèi)容是中斷服務(wù)程序起始地址。即中斷服務(wù)程序起始地址的地址。 10)中斷矢量表:微機(jī)中把全部中斷矢量
18、存放在內(nèi)存的某一區(qū)域中,形成一個(gè)中斷矢量表。當(dāng)發(fā)生中斷時(shí),根據(jù)中斷源不同,從中斷矢量表中取出對(duì)應(yīng)的中斷矢量送給CPU的IP寄存器,CPU開始執(zhí)行中斷處理子程序。 11)多重中斷和中斷優(yōu)先:多重中斷就是CPU在執(zhí)行某一中斷服務(wù)程序后,如果令I(lǐng)R=1,那么 CPU還可以接受更高級(jí)的中斷申請(qǐng)執(zhí)行其中斷服務(wù)程序.形成多重中斷(也稱為中斷嵌套)。 響應(yīng)多重中斷的原則是按實(shí)現(xiàn)設(shè)定好的各中斷源的中斷優(yōu)先級(jí)別進(jìn)行先后處理。級(jí)別高的優(yōu)先處理,級(jí)別低的后處理。具體判斷方法可用硬件判斷或軟件判斷。,2020/12/7,計(jì)算機(jī)組成原理,27,3.中斷屏蔽技術(shù)的應(yīng)用 屏蔽技術(shù)是通過輸出指令送出一個(gè)屏蔽字,有選擇地允許某
19、些中斷請(qǐng)求、屏蔽某些中斷請(qǐng)求。這一手段常用于如下兩種場(chǎng)合。 1)在多重中斷方式中(即允許中斷嵌套),當(dāng)CPU響應(yīng)某個(gè)中斷請(qǐng)求后,送出一個(gè)新的屏蔽字,以禁止與該請(qǐng)求統(tǒng)一優(yōu)先級(jí)或更低級(jí)優(yōu)先級(jí)的其它請(qǐng)求。只允許比該請(qǐng)求優(yōu)先級(jí)高的其它中斷請(qǐng)求可以提出。 2)利用屏蔽技術(shù)動(dòng)態(tài)地修改優(yōu)先級(jí) 利用硬件排優(yōu)邏輯所分配的優(yōu)先級(jí)是固定的,但有時(shí)根據(jù)程序的需要臨時(shí)動(dòng)態(tài)的修改優(yōu)先順序。例如,要臨時(shí)調(diào)整個(gè)別中斷源的級(jí)別,就可利用屏蔽字將原來優(yōu)先級(jí)高的設(shè)備請(qǐng)求暫時(shí)屏蔽。原來級(jí)別低的請(qǐng)求由于未被屏蔽,優(yōu)先級(jí)相對(duì)提高,稱為中斷升級(jí)。過一段時(shí)間再恢復(fù)或再調(diào)整屏蔽字。,2020/12/7,計(jì)算機(jī)組成原理,28,4. 中斷的作用和
20、功能 (1)CPU可與 IO設(shè)備并行工作,提高CPU的工作效率。例如打印機(jī)。 (2)利用中斷來處理故障,提高了機(jī)器的可靠性。 計(jì)算機(jī)運(yùn)行時(shí),如硬件出現(xiàn)某些故障,機(jī)器中斷系統(tǒng)發(fā)出中斷請(qǐng)求,CPU響應(yīng)中斷后自動(dòng)進(jìn)行處理。 (3)實(shí)現(xiàn)人機(jī)聯(lián)系 在計(jì)算機(jī)工作過程中,如果用戶要干預(yù)機(jī)器,如抽查計(jì)算中間結(jié)果,了解機(jī)器的工作狀態(tài),給機(jī)器下達(dá)臨時(shí)性的命令等。利用中斷系統(tǒng)實(shí)現(xiàn)人機(jī)通信是很方便、很有效的。 (4)實(shí)現(xiàn)多道程序和分時(shí)操作 計(jì)算機(jī)實(shí)現(xiàn)多道程序運(yùn)行是提高機(jī)器效率的有效手段,多道程序的切換運(yùn)行需借助于中斷系統(tǒng)。在一道程序的運(yùn)行中,由IO中斷系統(tǒng)切換到另外一道程序運(yùn)行,也可以通過分配每道程序一個(gè)固定時(shí)間片,
21、利用時(shí)鐘定時(shí)發(fā)中斷進(jìn)行程序切換。,2020/12/7,計(jì)算機(jī)組成原理,29,(5)實(shí)現(xiàn)實(shí)時(shí)處理 所謂實(shí)時(shí)處理,是指在某個(gè)事件或現(xiàn)象出現(xiàn)時(shí)及時(shí)地進(jìn)行處理,而不是集中起來再進(jìn)行批處理。例如,在某個(gè)計(jì)算機(jī)過程控制系統(tǒng)中,當(dāng)出現(xiàn)壓力過大、溫度過高等情況時(shí)必須及時(shí)輸入到計(jì)算機(jī)進(jìn)行處理。這些事件出現(xiàn)的時(shí)刻是隨機(jī)的,而不是程序本身所能預(yù)見的,因此,要求計(jì)算機(jī)中止正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行中斷服務(wù)程序。在實(shí)際工程中,利用中斷技術(shù)進(jìn)行實(shí)時(shí)控制已廣泛應(yīng)用于各個(gè)生產(chǎn)領(lǐng)域中。 (6)實(shí)現(xiàn)應(yīng)用程序和操作系統(tǒng)的聯(lián)系 可以在用戶程序中安排一條Trap指令進(jìn)入操作系統(tǒng),稱之為軟中斷。其中斷處理過程與其他中斷類似。 (7)多處
22、理機(jī)系統(tǒng)各處理機(jī)間的聯(lián)系 在多處理機(jī)系統(tǒng)中,處理機(jī)和處理機(jī)之間的信息交流和任務(wù)切換可以通過中斷來實(shí)現(xiàn)。,10.2.2 中斷處理,1.中斷處理過程,2020/12/7,計(jì)算機(jī)組成原理,31,I/O 中斷處理過程,DBR,設(shè)備選擇電路,以輸入為例,2020/12/7,計(jì)算機(jī)組成原理,32,(1)關(guān)中斷:由硬件自動(dòng)實(shí)現(xiàn)、因?yàn)榻酉氯ヒ4鏀帱c(diǎn),保存現(xiàn)場(chǎng)。在保存現(xiàn)場(chǎng)過程中,即使有更高級(jí)的中斷源申請(qǐng)中斷,CPU也不應(yīng)該響應(yīng)。否則,如果現(xiàn)場(chǎng)保存不完整,在中斷服務(wù)程序結(jié)束之后,也就不能正確地恢復(fù)現(xiàn)場(chǎng)并繼續(xù)執(zhí)行現(xiàn)行程序。 (2)保存斷點(diǎn)和現(xiàn)場(chǎng) 為了在中斷處理結(jié)束后能正確地返回到中斷點(diǎn),在響應(yīng)中斷時(shí),必須把當(dāng)前的
23、程序計(jì)數(shù)器PC中的內(nèi)容(即斷點(diǎn))保存起來。 現(xiàn)場(chǎng)信息一般指的是程序狀態(tài)字中斷屏蔽寄存器和CPU中某些寄存器的內(nèi)容。對(duì)現(xiàn)場(chǎng)信息的處理有兩種方式。一種是由硬件對(duì)現(xiàn)場(chǎng)信息進(jìn)行保存和恢復(fù);另一種是由軟件即中斷服務(wù)程序?qū)ΜF(xiàn)場(chǎng)信息保存和恢復(fù)。 對(duì)于由硬件保存現(xiàn)場(chǎng)信息的方式,各種不同的機(jī)器有不同的方案。有的機(jī)器把斷點(diǎn)等保存在主存固定的單元。,2020/12/7,計(jì)算機(jī)組成原理,33,有的機(jī)器則不然,它在每次響應(yīng)中斷后把處理機(jī)狀態(tài)字和程序計(jì)數(shù)器內(nèi)容相繼壓入堆棧,再?gòu)闹付ǖ膬蓚€(gè)主存單元分別取出新的程序計(jì)數(shù)器內(nèi)容和處理機(jī)狀態(tài)字來代替,稱為交換新、舊狀態(tài)字方式。 (3)判別中斷源,轉(zhuǎn)向中斷服務(wù)程序。在多個(gè)中斷源同時(shí)
24、請(qǐng)求中斷的情況下。本次實(shí)際響應(yīng)的只能是優(yōu)先權(quán)最高的那個(gè)中斷源、所以,需進(jìn)一步判別中斷源,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。 (4)開中斷。因?yàn)榻酉氯ゾ鸵獔?zhí)行中斷服務(wù)程序,開中斷將允許更高級(jí)中斷請(qǐng)求得到響應(yīng)。實(shí)現(xiàn)中斷嵌套。 (5)執(zhí)行中斷服務(wù)程序。不同中斷源的中斷服務(wù)程序是不同的,實(shí)際有效的中斷處理工作是在此程序段中實(shí)現(xiàn)的。 (6)退出中斷。在退出時(shí),又應(yīng)進(jìn)入不可中斷狀態(tài),即關(guān)中斷,恢復(fù)現(xiàn)場(chǎng)、恢復(fù)斷點(diǎn),然后開中斷,返回原程序執(zhí)行。 進(jìn)入中斷時(shí)執(zhí)行的關(guān)中斷、保存斷點(diǎn)等操作一般是由硬件實(shí)現(xiàn)的,它類似于一條指令, 但它與一般的指令不同,不能被編寫在程序中。因此,常常稱為中斷隱指令。,2020/12/7,計(jì)
25、算機(jī)組成原理,34,2. 判別中斷源 查詢法 :由測(cè)試程序按一定優(yōu)先排隊(duì)次序檢查各個(gè)設(shè)備的“中斷觸發(fā)器”(或稱為中斷標(biāo)志)。當(dāng)遇到第一個(gè)1標(biāo)志時(shí),即找到了優(yōu)先進(jìn)行處理的中斷源,通常取出其設(shè)備碼,根據(jù)設(shè)備碼轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。 串行排隊(duì)鏈法 :由硬件確定中斷源。圖10.4為中斷請(qǐng)求邏輯圖和串行排隊(duì)判優(yōu)先線路圖。專用硬件獨(dú)立請(qǐng)求。 中斷服務(wù)程序入口地址有兩種方法。其一是在中斷程序中設(shè)一條專門接受中斷設(shè)備號(hào)的指令I(lǐng)NTA,收到設(shè)備號(hào)后,在通過主存的跳轉(zhuǎn)表產(chǎn)生其中斷服務(wù)程序入口地址。另一種是目前廣泛應(yīng)用的向量中斷方法。 3. 多重中斷處理中斷嵌套:在處理某一個(gè)中斷的過程中又發(fā)生了新的更高級(jí)中斷源的
26、中斷申請(qǐng),且CUP又處于開中斷狀態(tài)下,CPU就要中斷該服務(wù)程序的執(zhí)行,轉(zhuǎn)去進(jìn)行新的中斷處理服務(wù)程序。一般情況下與它同級(jí)的或比它低級(jí)的新中斷請(qǐng)求不能CPU不能相應(yīng)其請(qǐng)求,2020/12/7,計(jì)算機(jī)組成原理,35,中斷優(yōu)先級(jí)的響應(yīng)次序有硬件排隊(duì)線路決定。一旦設(shè)計(jì)完成,系統(tǒng)的優(yōu)先級(jí)別就決定了,但缺乏改變優(yōu)先權(quán)級(jí)別的靈活性。在有優(yōu)先級(jí)中斷屏蔽碼控制的條件下,可以不改變系統(tǒng)排隊(duì)線路,使其中斷響應(yīng)次序不同。因?yàn)橹袛嗥帘未a是由軟件賦值,改變屏蔽碼可以改變個(gè)設(shè)備之間中斷處理次序,所以屏蔽碼可看成中斷處理過程中的軟排隊(duì)器。從中斷服務(wù)程序結(jié)構(gòu)看,中段服務(wù)程序可以在具體處理前被中斷,所以中斷處理次序可以不同于中斷響
27、應(yīng)次序。這就反映了中斷系統(tǒng)軟硬件結(jié)合所帶來的靈活性。,2020/12/7,計(jì)算機(jī)組成原理,36,中斷判優(yōu)邏輯, 分散 在各個(gè)中斷源的 接口電路中 鏈?zhǔn)脚抨?duì)器, 集中 在 CPU 內(nèi),(1) 硬件實(shí)現(xiàn)(排隊(duì)器),INTR1,INTR2,INTR3,INTR4,INTR1 、 INTR2 、 INTR3 、 INTR4 優(yōu)先級(jí) 按 降序 排列,2020/12/7,計(jì)算機(jī)組成原理,37,A、B、C 優(yōu)先級(jí)按 降序 排列,(2) 軟件實(shí)現(xiàn)(程序查詢),轉(zhuǎn) A 的服務(wù)程序 入口地址,轉(zhuǎn) B 的服務(wù)程序 入口地址,轉(zhuǎn) C 的服務(wù)程序 入口地址,2020/12/7,計(jì)算機(jī)組成原理,38,中斷服務(wù)程序入口地址
28、的尋找,1. 硬件向量法,向量地址 12H、13H、14H 入口地址 200、 300、 400,2020/12/7,計(jì)算機(jī)組成原理,39,2. 軟件查詢法,M,2020/12/7,計(jì)算機(jī)組成原理,40,中斷響應(yīng),1. 響應(yīng)中斷的 條件,允許中斷觸發(fā)器 EINT = 1,2. 響應(yīng)中斷的 時(shí)間,指令執(zhí)行周期結(jié)束時(shí)刻由CPU 發(fā)查詢信號(hào),CPU 中斷查詢,至排隊(duì)器,2020/12/7,計(jì)算機(jī)組成原理,41,3. 中斷隱指令,(1) 保護(hù)程序斷點(diǎn),(2) 尋找服務(wù)程序入口地址,(3) 硬件 關(guān)中斷,PC,斷點(diǎn)存于 特定地址( 0 號(hào)地址) 內(nèi),斷點(diǎn) 進(jìn)棧,INT 中斷標(biāo)記,EINT 允許中斷,R
29、S 觸發(fā)器,2020/12/7,計(jì)算機(jī)組成原理,42,保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng),1. 保護(hù)現(xiàn)場(chǎng),2. 恢復(fù)現(xiàn)場(chǎng),保護(hù)現(xiàn)場(chǎng),其他服務(wù)程序,恢復(fù)現(xiàn)場(chǎng),中斷返回,PUSH,視不同請(qǐng)求源而定,POP,中斷服務(wù)程序 完成,中 斷 服 務(wù) 程 序,中斷隱指令 完成,中斷服務(wù)程序 完成,IRET,2020/12/7,計(jì)算機(jī)組成原理,43,1. 多重中斷的概念,k,l,m,k +1,l +1,m +1,程序斷點(diǎn) k+1 , l+1 , m+1,中斷屏蔽技術(shù),2020/12/7,計(jì)算機(jī)組成原理,44,2. 實(shí)現(xiàn)多重中斷的條件,中斷 請(qǐng)求,主程序,(2) 優(yōu)先級(jí)別高 的中斷源 有權(quán)中斷優(yōu)先級(jí)別低 的中斷源,(1) 提前
30、 設(shè)置 開中斷 指令,2020/12/7,計(jì)算機(jī)組成原理,45,3. 屏蔽技術(shù),(1) 屏蔽觸發(fā)器的作用,MASK = 0(未屏蔽),INTR 能被置 “1”,MASKi = 1 (屏蔽),INTPi = 0 (不能被排隊(duì)選中),2020/12/7,計(jì)算機(jī)組成原理,46,(2) 屏蔽字,16個(gè)中斷源 1、2、3 16 按 降序 排列,2020/12/7,計(jì)算機(jī)組成原理,47,(3) 屏蔽技術(shù)可改變優(yōu)先等級(jí),(4) 屏蔽技術(shù)的其他作用,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)先級(jí)高,便于程序
31、控制,可以 人為地屏蔽 某個(gè)中斷源的請(qǐng)求,2020/12/7,計(jì)算機(jī)組成原理,48,例1 假設(shè)某機(jī)有設(shè)備一、二、三和四共4個(gè)設(shè)備中斷源,每個(gè)中斷原具有不同的優(yōu)先權(quán),共1、2、3、4級(jí)響應(yīng)優(yōu)先權(quán)。設(shè)其中斷源的優(yōu)先級(jí)別從高到低分別為1234的順序。每級(jí)對(duì)應(yīng)1個(gè)屏蔽碼。表1列出中斷響應(yīng)優(yōu)先級(jí)與屏蔽級(jí)一致情況下的屏蔽碼。 表1,2020/12/7,計(jì)算機(jī)組成原理,49,假設(shè)當(dāng)CPU執(zhí)行主程序過程中同時(shí)出現(xiàn)設(shè)備2和3兩個(gè)中斷請(qǐng)求。按排隊(duì)線路,因設(shè)備2的優(yōu)先級(jí)高于3,故應(yīng)先響應(yīng)設(shè)備2中斷請(qǐng)求。執(zhí)行設(shè)備2的中斷服務(wù)程序并保護(hù)現(xiàn)場(chǎng)和原屏蔽字后,將2級(jí)程序的屏蔽碼置入各接口屏蔽寄存器,它將屏蔽3級(jí)的中斷請(qǐng)求。執(zhí)
32、行完2級(jí)服務(wù)程序后恢復(fù)原屏蔽碼,返回主程序后再響應(yīng)3級(jí)的中斷請(qǐng)求。 此時(shí)若4級(jí)又提出中斷請(qǐng)求,CPU暫不予理睬。3級(jí)中斷程序執(zhí)行完后再響應(yīng)4級(jí)的中斷。由圖10.5可知,縱向表示各中斷源申請(qǐng)中斷的先后時(shí)間,橫向表示中斷優(yōu)先級(jí)別。 假若CPU再次執(zhí)行2級(jí)中斷服務(wù)程序時(shí),出現(xiàn)了1級(jí)中斷請(qǐng)求,由于在執(zhí)行3級(jí)服務(wù)程序時(shí)已經(jīng)把其程序屏蔽字置入屏蔽寄存器了,這樣對(duì)1級(jí)中斷是開放的。因其1級(jí)優(yōu)先級(jí)高于2級(jí),則CPU暫停對(duì)第2級(jí)中斷服務(wù)程序的執(zhí)行,轉(zhuǎn)去執(zhí)行第1級(jí)中斷服務(wù)程序。等第1級(jí)中斷服務(wù)程序執(zhí)行完后,再去執(zhí)行第2級(jí)中斷服務(wù)程序。在本例中,中斷請(qǐng)求次序?yàn)?、342l;而中斷完成次序?yàn)?34l2,兩者不相同。,
33、2020/12/7,計(jì)算機(jī)組成原理,50,圖10.5 多重中斷處理示意圖 中斷請(qǐng)求 主程序 中斷處理程序 1 2 3 4,3,2 4,2 1,2020/12/7,計(jì)算機(jī)組成原理,51,單重中斷和多重中斷的服務(wù)程序流程,中斷隱指令,中斷隱指令,單重,多重,2020/12/7,計(jì)算機(jī)組成原理,52,(1) 斷點(diǎn)進(jìn)棧,(2) 斷點(diǎn)存入“ 0 ” 地址,中斷隱指令 完成,中斷周期,命令存儲(chǔ)器寫,三次中斷,三個(gè)斷點(diǎn)都存入 “ 0 ” 地址,多重中斷的斷點(diǎn)保護(hù),中斷隱指令 完成,2020/12/7,計(jì)算機(jī)組成原理,53,(3) 程序斷點(diǎn)存入 “ 0 ” 地址的斷點(diǎn)保護(hù),SERVE,LDA SAVE,JMP
34、 RETURN,存程序斷點(diǎn),5 為向量地址,保護(hù)現(xiàn)場(chǎng),恢復(fù)現(xiàn)場(chǎng),間址返回,存放 ACC 內(nèi)容,轉(zhuǎn)存 0 地址內(nèi)容,開中斷,ENI,2020/12/7,計(jì)算機(jī)組成原理,54,例2 在不改變硬件排隊(duì)響應(yīng)次序下,欲臨時(shí)改變上題中斷處理次序?yàn)?432時(shí),則可以采用改變中斷屏蔽碼來實(shí)現(xiàn)。如表2所示。 在CPU執(zhí)行主程序過程中的某一時(shí)刻,1、2和4三個(gè)設(shè)備同時(shí)出現(xiàn)中斷請(qǐng)求信號(hào),首先響應(yīng)1級(jí)請(qǐng)求;當(dāng)返回主程序后,有硬件排隊(duì)線路決定先響應(yīng)2級(jí)請(qǐng)求,但2級(jí)屏蔽碼置入屏蔽寄存器后,由于2級(jí)對(duì)4級(jí)是開放的且屏蔽它本身,2級(jí)服務(wù)程序執(zhí)行到開中斷指令后就被4級(jí)中斷;當(dāng)4級(jí)中斷服務(wù)程序執(zhí)行完后返回到2級(jí)程序,并執(zhí)行完2級(jí)
35、服務(wù)程序后返回主程序。由此可知,它改變了硬件排隊(duì)所決定的響應(yīng)次序。當(dāng)?shù)诙M中斷請(qǐng)求出現(xiàn)時(shí),3級(jí)申請(qǐng)先出現(xiàn),故先響應(yīng)3級(jí)中斷,并執(zhí)行中斷服務(wù)程序。因3級(jí)對(duì)1級(jí)開放,所以當(dāng)1級(jí)請(qǐng)求出現(xiàn)時(shí),1級(jí)中斷了3級(jí)。當(dāng)1級(jí)服務(wù)程序執(zhí)行完后返回3級(jí)后,又由2級(jí)出現(xiàn)申請(qǐng)時(shí),由于3級(jí)對(duì)2級(jí)屏蔽,故當(dāng)3級(jí)執(zhí)行完返回主程序后才響應(yīng)2級(jí)請(qǐng)求并執(zhí)行執(zhí)行完后返回主程序。,2020/12/7,計(jì)算機(jī)組成原理,55,CPU執(zhí)行中斷的時(shí)序 如圖10.6。 表2 中斷處理次序 為1432的屏蔽碼 圖10.6響應(yīng)次序與 處理次序不一致時(shí)CPU 的執(zhí)行時(shí)序,2020/12/7,計(jì)算機(jī)組成原理,56,10.2.3 80X86的中斷功能,允
36、許256個(gè)中斷源、0255 1.按中斷原因分: 軟件中斷:執(zhí)行特定指令時(shí)產(chǎn)生的中斷 硬件中斷:外部事件觸發(fā)產(chǎn)生的中斷 2.中斷矢量:中斷服務(wù)程序入口地址的地址。 3.中斷服務(wù)程序入口地址:放在 CS和IP中。,2020/12/7,計(jì)算機(jī)組成原理,57,4. 8086中斷響應(yīng)過程,將類型碼乘4作為指向中斷矢量(向量)表內(nèi)的地址; 標(biāo)志寄存器FR入棧,保護(hù)各個(gè)標(biāo)志位; 將陷阱標(biāo)志寄存器TF的內(nèi)容送入暫存寄存器,清除中斷允許寄存器IR和TF的內(nèi)容,屏蔽新的外部中斷申請(qǐng)INTR和單步中斷。 根據(jù)中斷矢量,從中斷矢量表中取中斷服務(wù)程序入口地址分別送入指令指針寄存器IP和程序段寄存器CS 在中斷服務(wù)程序中
37、通常要保護(hù)CPU內(nèi)部有關(guān)通用寄存器的內(nèi)容(保存現(xiàn)場(chǎng)),開中斷; 中斷服務(wù)程序運(yùn)行結(jié)束后要恢復(fù)現(xiàn)場(chǎng),返回被中斷的程序繼續(xù)執(zhí)行下條指令。,2020/12/7,計(jì)算機(jī)組成原理,58,10.2.4 可編程中斷控制器8259A簡(jiǎn)介,1、功能: 允許8個(gè)外部中斷源.可二級(jí)級(jí)聯(lián),最多可控制64個(gè)中斷源(9片) 片內(nèi)可編程, 自動(dòng)選擇不同的優(yōu)先級(jí)判定方式(固定優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí)) 選擇控制中斷方式 對(duì)某個(gè)中斷可進(jìn)行屏蔽設(shè)置 2、邏輯結(jié)構(gòu)圖:,2020/12/7,計(jì)算機(jī)組成原理,59,圖10.7 可編程中斷控制器8259A邏輯結(jié)構(gòu)圖,D7D0,INTA,INTR,中斷請(qǐng)求鎖存器,中斷屏蔽寄存器,數(shù)據(jù) 總線 緩沖
38、器,IR0,IR7,讀/寫 控制 邏輯,級(jí)聯(lián) 緩沖器 比較器,CAS0,CSA1,CAS2,SP/EN,優(yōu)先權(quán)判別電路,正在服務(wù)寄存器,控制邏輯,2020/12/7,計(jì)算機(jī)組成原理,60,Intel 8259A中斷控制器件的內(nèi)部結(jié)構(gòu) 如圖 I0.7所示。它由八個(gè)部分組成;中斷請(qǐng)求寄存器、中斷狀態(tài)寄存器、優(yōu)先級(jí)判斷器、中斷屏蔽寄存器、中斷控制邏輯、數(shù)據(jù)緩沖器、級(jí)聯(lián)緩沖器比較器和讀寫邏輯。 八位中斷請(qǐng)求寄存器接受外設(shè)來的中斷請(qǐng)求(IR0IR7),每一位表示一個(gè)外部設(shè)備的中斷請(qǐng)求。 中斷寄存器的各位送入優(yōu)先級(jí)判斷器,根據(jù)中斷屏蔽寄存器和中斷狀態(tài)寄存器的狀態(tài)決定最高優(yōu)先級(jí)的中斷請(qǐng)求并將判優(yōu)結(jié)果送入中斷
39、狀態(tài)寄存器。如果中斷請(qǐng)求被接受,則由控制邏輯向CPU發(fā)中斷請(qǐng)求INT。 D0D7為雙向數(shù)據(jù)線、數(shù)據(jù)緩沖器暫時(shí)保存在內(nèi)部總線和系統(tǒng)數(shù)據(jù)總線間進(jìn)行傳送的數(shù)據(jù)。 讀寫邏輯將決定數(shù)據(jù)的傳送方向。RD為讀命令,而WR為寫命令。,2020/12/7,計(jì)算機(jī)組成原理,61,/CS為8259A芯片的選擇信號(hào),A0與8259A中被選的寄存器地址有關(guān)。 在8259A中,為每一個(gè)外設(shè)的中斷請(qǐng)求(IR0IR7)設(shè)置一個(gè)中斷類型碼(8位),當(dāng)其中一個(gè)外設(shè)的中斷請(qǐng)求被CPU響應(yīng)后,8259A送出與該中斷所對(duì)應(yīng)的中斷類型碼作為尋找中斷服務(wù)程序入口的依據(jù)。中斷類型碼(8位)由兩部分組成,其高5位是由計(jì)算機(jī)初始化程序設(shè)置的,保
40、存在8259A中以后不再改變;低3位由被響應(yīng)的中斷請(qǐng)求序號(hào)提供。例如,IR3的中斷請(qǐng)求被響應(yīng),中斷類型碼的低3位即為011。在同一個(gè)8259A中,高5位為8個(gè)中斷請(qǐng)求共用(類型地址高位編號(hào))。假設(shè)與IR0對(duì)應(yīng)的中斷類型碼為40H,那么與IR1IR7對(duì)應(yīng)的中斷類型碼為4lH47H。 每個(gè)8259A最多能控制8個(gè)外部中斷信號(hào),但可將多個(gè)8259A級(jí)聯(lián)以處理多達(dá)64個(gè)中斷請(qǐng)求、它允許有一個(gè)主單元和多個(gè)(不超過8個(gè))從單元,稱為主從系統(tǒng)。 如下圖所示。,2020/12/7,計(jì)算機(jī)組成原理,62,8259級(jí)聯(lián) 工作示意 圖,2020/12/7,計(jì)算機(jī)組成原理,63,8259A允許采用多種中斷優(yōu)先級(jí)選擇方
41、式和屏蔽方式。 8259A的中斷優(yōu)先級(jí)選擇方式有完全嵌套方式、輪換優(yōu)先級(jí)A,輪換優(yōu)先級(jí)B和查詢方式。完全嵌套方式是一種固定優(yōu)先級(jí)方式,連至IR0的外圍設(shè)備優(yōu)先權(quán)最高而連至IR7的優(yōu)先權(quán)最低。只要優(yōu)先權(quán)高的中斷請(qǐng)求線上有中斷請(qǐng)求或正在處理優(yōu)先權(quán)高的中斷服務(wù)請(qǐng)求時(shí),優(yōu)先權(quán)低的中斷請(qǐng)求不會(huì)被響應(yīng)。 這種固定優(yōu)先級(jí)方式對(duì)級(jí)別低的中斷不利,在某些情況下,最低級(jí)別的中斷請(qǐng)求可能一直不能被處理。根據(jù)輪換優(yōu)先級(jí)方式A,每個(gè)級(jí)別的中斷保證有機(jī)會(huì)被處理。它把給定的中斷級(jí)別處理完后,立即把它放到最低級(jí)別的位置上去。輪換優(yōu)先級(jí)方式B要求CPU可在任何時(shí)間規(guī)定最低優(yōu)先級(jí),然后順序地規(guī)定其他IR線上的優(yōu)先級(jí)。查詢方式由8
42、259給出一個(gè)狀態(tài)字表示出正在請(qǐng)求中斷的最高憂先級(jí)IR線,并能表示出中斷請(qǐng)求是否有效。,2020/12/7,計(jì)算機(jī)組成原理,64,設(shè)備1,接口,菊花鏈 邏輯電路,設(shè)備2,接口,菊花鏈 邏輯電路,設(shè)備3,接口,菊花鏈 邏輯電路,CPU以及 總線 控制邏輯 INTA INTR,中斷回答,中斷請(qǐng)求,菊花鏈?zhǔn)脚袃?yōu)法,+5v,2020/12/7,計(jì)算機(jī)組成原理,65,8259A單元提供了兩種屏蔽方式,簡(jiǎn)單屏蔽方式和特殊屏蔽方式、簡(jiǎn)單屏蔽方式提供了8位的屏蔽字,每位對(duì)應(yīng)著各自的IR線被置位的任何一位就禁止了相應(yīng)IR線上的中斷。 特殊屏蔽方式允許CPU讓來自低優(yōu)先級(jí)外設(shè)的中斷去中斷高優(yōu)先級(jí)的服務(wù)程序。當(dāng)8位
43、屏蔽位的某一位被置0時(shí),則對(duì)應(yīng)此位的IR線上的外設(shè)中斷可中斷比它高優(yōu)先級(jí)別的服務(wù)程序。例如,若屏蔽字為1110 1111,說明IR4線上的中斷可中斷任何高級(jí)別的中斷服務(wù)程序。 8259A單元的不同工作方式是通過編程來進(jìn)行選擇的,CPU送出一系列的初始化控制字和操作控制字來執(zhí)行選定的操作。CPU將8259當(dāng)作兩個(gè)IO端口或兩個(gè)存儲(chǔ)單元來尋址,由A0端確定這些控制字存入讀寫邏輯中哪個(gè)控制字寄存器。,2020/12/7,計(jì)算機(jī)組成原理,66,現(xiàn)代的計(jì)算機(jī)無一不設(shè)置中斷系統(tǒng)。為了提高工作的可靠性,并方便用戶,一般設(shè)備的處理程序包括在操作系統(tǒng)中,成為IO驅(qū)動(dòng)程序的一部分。在操作系統(tǒng)中,管理IO設(shè)備并實(shí)現(xiàn)
44、輸入輸出功能的程序稱為IO驅(qū)動(dòng)程序或基本輸入輸出系統(tǒng)(BIOS)。 10.3 DMA(Direct Memory Access) 輸入輸出方式 高速大容量存儲(chǔ)器和主存之間交換時(shí),若采用程序直接傳送或程序中斷傳送的方式,則會(huì)有如下問題發(fā)生。,2020/12/7,計(jì)算機(jī)組成原理,67,1)采用程序直接傳送,每傳送一個(gè)字節(jié)要執(zhí)行若干條指令,占用多個(gè)存儲(chǔ)周期。在傳送完一個(gè)字節(jié)后,還要經(jīng)常判斷一批數(shù)據(jù)是否傳送完成。此外若外設(shè)工作速度低于主機(jī)周期時(shí),主機(jī)工作效率受到限制。 2)采用中斷控制數(shù)據(jù)傳送可以提高主機(jī)效率,但用于高速外設(shè)和主機(jī)交換信息,會(huì)使主機(jī)處于頻繁的中斷與返回過程中,從而加重了與中斷有關(guān)的額外
45、負(fù)擔(dān)(即保護(hù)舊現(xiàn)場(chǎng),恢復(fù)新現(xiàn)場(chǎng)),這樣降低了CPU的性能,還有丟失數(shù)據(jù)的可能。所以對(duì)高速I/O設(shè)備,用中斷傳送控制方式也是不合適的。應(yīng)采用直接存儲(chǔ)器訪問方式傳送,即DMA方式較為合適。,2020/12/7,計(jì)算機(jī)組成原理,68,DMA是l/O設(shè)備與主存儲(chǔ)器之間由硬件組成的直接數(shù)據(jù)通路,主要用于高速IO設(shè)備與主存之間的成組數(shù)據(jù)傳送。在傳送器件需要CPU的程序干預(yù)。數(shù)據(jù)傳送時(shí)它是在DMA控制器控制下進(jìn)行的,由DMA控制器給出當(dāng)前正在傳送的數(shù)據(jù)字的主存地址,并統(tǒng)計(jì)傳送數(shù)據(jù)的個(gè)數(shù)以確定一組數(shù)據(jù)的傳送是否已結(jié)束。在主存中要開辟連續(xù)地址的專用緩沖器,用來提供或接收傳送的數(shù)據(jù)。在數(shù)據(jù)傳送之前和結(jié)束后要通過程
46、序或中斷方式對(duì)緩沖器和DMA控制器進(jìn)行預(yù)處理和后處理。 對(duì)磁盤的讀寫是以數(shù)據(jù)塊為單位進(jìn)行的,一旦找到數(shù)據(jù)塊的起始位置就將連續(xù)地讀寫。而計(jì)算機(jī)通過通信設(shè)備與外部通信時(shí),常以數(shù)據(jù)幀為單位進(jìn)行批量傳送。在大批量數(shù)據(jù)采集系統(tǒng)中,也可以采用DMA方式,2020/12/7,計(jì)算機(jī)組成原理,69,1.CPU暫停方式 主機(jī)響應(yīng)DMA請(qǐng)求后讓出存儲(chǔ)總線,直到一組數(shù)據(jù)傳送完畢后,DMA控制器才把總線控制權(quán)交還給CPU。采用這種工作方式的IO設(shè)備,在其接口中一般設(shè)置有存取速度較快的小容量存儲(chǔ)器。IO設(shè)備與小容量存儲(chǔ)器先交換數(shù)據(jù),然后小容量存儲(chǔ)器再與主機(jī)交換數(shù)據(jù),這樣可減少DMA傳送占用存儲(chǔ)總線的時(shí)間,也即減少CPU
47、暫停工作時(shí)間。這種方式也稱為成組連續(xù)傳送方式,它可減少系統(tǒng)總線控制權(quán)的交換次數(shù),有利于提高輸入輸出速度。適用于高速外設(shè)或單用戶狀態(tài)下的個(gè)人計(jì)算機(jī)。 2. CPU周期竊取方式 DMA控制器與主存儲(chǔ)器之間傳送一個(gè)數(shù)據(jù)占用(竊?。┮粋€(gè)CPU周期即CPU暫停工作一個(gè)周期,然后繼續(xù)執(zhí)行程序。這種方式也稱為單字傳送方式。,10.3.1 DMA三種工作方式,2020/12/7,計(jì)算機(jī)組成原理,70,3.直接訪問存儲(chǔ)器工作方式 這是標(biāo)準(zhǔn)的 DMA工作方式。如傳送數(shù)據(jù)時(shí)CPU正好不占用存儲(chǔ)總線,則對(duì) CPU不產(chǎn)生任何影響。如同時(shí)需要訪問存儲(chǔ)總線,則DMA的優(yōu)先級(jí)高于CPU。 10.3.2 DMA控制器組成 DM
48、A控制器基本組成如圖10.8所示。它包括多個(gè)設(shè)備寄存器、中斷控制和DMA控制邏輯等。DMA控制器中包含多個(gè)寄存器,主要的寄存器有: (1)主存地址寄存器(MAR):該寄存器初始值為主在緩沖區(qū)的首地址,在傳送前要由程序送入。主存緩沖區(qū)地址是連續(xù)的。在DMA傳迭期間,每交換一個(gè)字由硬件邏輯將其自動(dòng)加1而成為下一次數(shù)據(jù)傳送的主存地址。 (2)外圍設(shè)備地址寄存器(ADR):該寄存器存放IO設(shè)備的設(shè)備碼或者表示設(shè)備信息存儲(chǔ)區(qū)的尋址信息,如磁盤數(shù)據(jù)所在的區(qū)號(hào)、盤面號(hào)和柱面號(hào)等。具體內(nèi)容取決于I/O設(shè)備的數(shù)據(jù)格式和地址字編址方式。,2020/12/7,計(jì)算機(jī)組成原理,71,(3)字?jǐn)?shù)計(jì)數(shù)器(WC):該計(jì)數(shù)器
49、對(duì)傳送數(shù)據(jù)的總字?jǐn)?shù)進(jìn)行統(tǒng)計(jì),在傳送開始前,由程序?qū)⒁獋魉偷囊唤M數(shù)據(jù)的字?jǐn)?shù)送入 WC,以后每傳送一個(gè)字(或字節(jié))計(jì)數(shù)器自動(dòng)減 1,當(dāng)WC內(nèi)容為零時(shí)表示數(shù)據(jù)已全部傳送完畢。 (4)控制與狀態(tài)寄存器(CSR):該寄存器用來存放控制率和狀態(tài)字,有的接口中使用兩個(gè)寄存器分別存放控制字和狀態(tài)字。 (5)數(shù)據(jù)緩沖寄存器(DBR):該寄存器用來暫存IO設(shè)備與主存?zhèn)魉偷臄?shù)據(jù)。通常DMA與主存之間是按字傳送的,而DMA與設(shè)備之間時(shí)能是按字節(jié)或塊傳送的。因此,DMA還可能要包括裝配和拆卸字信息的硬件。如數(shù)據(jù)移位緩沖寄存器、字節(jié)計(jì)數(shù)器等。 各寄存器均有自己的總線地址,它們是主存的指定單元或IO設(shè)備號(hào),CPU可對(duì)這些寄
50、存器進(jìn)行讀寫。,2020/12/7,計(jì)算機(jī)組成原理,72,DMA控制器結(jié)構(gòu),2020/12/7,計(jì)算機(jī)組成原理,73,此外還有中斷控制邏輯 DMA中斷控制邏輯負(fù)責(zé)申請(qǐng)CPU對(duì)DMA進(jìn)行預(yù)處理和后處理。 DMA控制邏輯 一般包括設(shè)備碼選擇電路;DMA優(yōu)先排隊(duì)電路,產(chǎn)生DMA請(qǐng)求的線路等;在DMA取得總線控制權(quán)后控制主存和設(shè)備之間的數(shù)據(jù)傳送; DMA接口與主機(jī)和IO設(shè)備兩個(gè)方向的數(shù)據(jù)線、地址線和控制信號(hào)線以及有關(guān)收發(fā)與驅(qū)動(dòng)線路。 DMA傳送是直接依靠硬件實(shí)現(xiàn)的,這是它不同于程序查詢方式、中斷傳送訪時(shí)之處。 原理方框圖如下:,2020/12/7,計(jì)算機(jī)組成原理,74,數(shù)據(jù)總線,控制總線,地址 譯碼器
51、,地址總線,總線請(qǐng)求,總線允許,控制寄存器,狀態(tài)寄存器,地址寄存器,字節(jié)計(jì)數(shù)器,DMA請(qǐng)求,DMA回答,計(jì)數(shù)結(jié)束信號(hào),DMA控制器框圖,2020/12/7,計(jì)算機(jī)組成原理,75,10.3.3 DMA的數(shù)據(jù)傳送過程 DMA的數(shù)據(jù)傳送過程可分為三個(gè)階段。DMA傳送前預(yù)處理、數(shù)據(jù)傳送及傳送后處理。 1. DMA預(yù)處理 在進(jìn)行DMA數(shù)據(jù)傳送之前要用程序做一些必要的準(zhǔn)備工作。先由CPU執(zhí)行幾條輸入輸出指令測(cè)試設(shè)備狀態(tài);向DMA控制器的設(shè)備地址寄存器中送入設(shè)備地址并啟動(dòng)設(shè)備;在主存地址寄存器中送入交換數(shù)據(jù)的主存起始地址;在數(shù)據(jù)字?jǐn)?shù)寄存器中送入交換的數(shù)據(jù)個(gè)數(shù)。 在這些工作完成之后,CPU繼續(xù)執(zhí)行原來的程序等
52、待設(shè)備發(fā)出DMA申請(qǐng)。,N,CPU預(yù)處理,數(shù)據(jù)傳送,后處理,DMA請(qǐng)求,圖10.9 DMA數(shù)據(jù)傳送過程,N,Y,Y,2020/12/7,計(jì)算機(jī)組成原理,77,2. DMA控制I0設(shè)備與主存之間的數(shù)據(jù)交換 IO設(shè)備啟動(dòng)后,若為輸入數(shù)據(jù),則要進(jìn)行以下操作 (1)從輸入介質(zhì)讀入一個(gè)字到數(shù)據(jù)緩沖寄存器 DBR中,如 I0設(shè)備是面向字符的,也就是一次讀入的數(shù)據(jù)為一個(gè)字節(jié),則組成一個(gè)字需經(jīng)裝配。 (2)向CPU發(fā)DMA請(qǐng)求,在取得總線控制權(quán)后將DBR中的數(shù)據(jù)送入主存的數(shù)據(jù)寄存器。 (3)將DMA中的MAR內(nèi)容送主存的地址寄存器,啟動(dòng)寫操作將數(shù)據(jù)寫入主存。 (4)將WC內(nèi)容減1;將MAR的內(nèi)容加1,給出下一
53、個(gè)字的地址。 (5) 判斷WC是否為“0”,若不是,說明還有數(shù)據(jù)需要傳送,檢查無錯(cuò)后準(zhǔn)備下一字的輸入。若WC為“0”,表明一組數(shù)據(jù)已傳送完畢,此時(shí)應(yīng)置結(jié)束標(biāo)志向CPU發(fā)中斷請(qǐng)求。,2020/12/7,計(jì)算機(jī)組成原理,78,若為輸出數(shù)據(jù)應(yīng)進(jìn)行以下操作 (1)將MAR的內(nèi)容送主存的地址寄存器。 (2)啟動(dòng)主存讀操作,將對(duì)應(yīng)單元的內(nèi)容讀入主存的數(shù)據(jù)寄存器 (3)將主存數(shù)據(jù)寄存器的內(nèi)容送到DMA的DBR中。 (4)將DBR的內(nèi)容送到輸出設(shè)備,若為字符設(shè)備則需將DBR內(nèi)容拆成字符輸出。 (5)將 WC內(nèi)容減 1,MAR內(nèi)容加 1,為下一個(gè)字的輸出做好準(zhǔn)備。 (6)判斷WC的內(nèi)容是否為0。如不為0,說明還
54、需繼續(xù)傳送。輸出設(shè)備處理完數(shù)據(jù)后,發(fā)DMA請(qǐng)求。如 WC為0或檢驗(yàn)有錯(cuò)則停止傳送,向 CPU發(fā)結(jié)束中斷請(qǐng)求或出錯(cuò)中斷請(qǐng)求。 3.CPU中斷原程序進(jìn)行后處理 若需繼續(xù)交換數(shù)據(jù),則又要對(duì)DMA控制器進(jìn)行初始化。若不需交換數(shù)據(jù),則停止外設(shè);若為出錯(cuò),則轉(zhuǎn)錯(cuò)誤診斷及處理程序。,2020/12/7,計(jì)算機(jī)組成原理,79,數(shù)據(jù)傳送過程(輸入),2020/12/7,計(jì)算機(jī)組成原理,80,數(shù)據(jù)傳送過程(輸出),2020/12/7,計(jì)算機(jī)組成原理,81,10.3.4 磁盤存儲(chǔ)器接口舉例 為方便設(shè)計(jì),并減少設(shè)備控制器所需器件數(shù)目。半導(dǎo)體廠家設(shè)計(jì)了DMA控制器如Intel 8237、 8257、 82285。在磁盤
55、調(diào)用過程中,既有DMA方式也有程序中斷方式的具體應(yīng)用。微機(jī)中的磁盤適配器,即是外圍接口,又是磁盤設(shè)備控制器。該適配器的組成是一種典型的智能控制器性結(jié)構(gòu),即采用微處理器與局部存儲(chǔ)器的接口。 整個(gè)PC機(jī)系統(tǒng)中有兩級(jí)DMA控制器。其中一級(jí)DMA控制器8237安裝在系統(tǒng)板上,作為全機(jī)的公共DMA 控制邏輯。管理軟盤、硬盤、DRAM刷新、同步通信四個(gè)通道。在磁盤適配器上還有一級(jí)DMA控制器,這塊8237芯片的任務(wù)是管理磁盤驅(qū)動(dòng)器與適配器之間的傳送。 1. 磁盤適配器的組成 它的組成可分為三個(gè)部分:一側(cè)面向系統(tǒng)總線的接口,2020/12/7,計(jì)算機(jī)組成原理,82,邏輯,稱為處理機(jī)接口;另一側(cè)面象磁盤驅(qū)動(dòng)器
56、的接口邏輯,稱為驅(qū)動(dòng)器接口;其中心是由微處理器、局部存儲(chǔ)器和一塊8237DMA控制器組成的智能主控器。 智能主控器的功能包括: 對(duì)CPU送來的命令進(jìn)行譯碼,通過驅(qū)動(dòng)器接口驅(qū)動(dòng)設(shè)備完成指定的操作; 通過狀態(tài)緩沖器檢測(cè)磁盤驅(qū)動(dòng)器的有關(guān)狀態(tài); 通過處理器接口中的狀態(tài)緩沖器,向主機(jī)報(bào)告命令的執(zhí)行情況; 將寫入數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換,按MMF制編碼送磁盤驅(qū)動(dòng)器; 有磁盤驅(qū)動(dòng)器讀出數(shù)據(jù),通過數(shù)據(jù)、式中分離電路,在經(jīng)串并轉(zhuǎn)換形成并行的數(shù)據(jù)字節(jié); 進(jìn)行錯(cuò)誤檢驗(yàn)與糾錯(cuò); 對(duì)磁道進(jìn)行格式化。,2020/12/7,計(jì)算機(jī)組成原理,83,例如在寫盤時(shí),從適配器扇區(qū)緩沖器RAM中取得寫入數(shù)據(jù),作并串轉(zhuǎn)換,經(jīng)編碼器形成FFM制
57、代碼,送往磁盤驅(qū)動(dòng)器。當(dāng)有一個(gè)扇區(qū)緩沖區(qū)為空時(shí),適配器向主機(jī)提出DMA請(qǐng)求,請(qǐng)求主機(jī)送來寫入數(shù)據(jù)。在讀盤時(shí),驅(qū)動(dòng)器送來串行讀出序列,分離電路時(shí)數(shù)據(jù)與時(shí)鐘信號(hào)分離。獲得的數(shù)據(jù)信號(hào)經(jīng)串并轉(zhuǎn)換,送入扇區(qū)緩沖器。當(dāng)有一個(gè)扇區(qū)緩沖區(qū)裝滿時(shí),適配器向主機(jī)提出DMA請(qǐng)求,請(qǐng)求主機(jī)取走數(shù)據(jù)。 磁盤調(diào)用過程涉及到許多細(xì)節(jié),如CPU應(yīng)對(duì)DMA控制器及適配器發(fā)出哪些命令、命令格式、發(fā)命令的時(shí)間、在調(diào)用過程中需做哪些狀態(tài)檢測(cè)、發(fā)現(xiàn)錯(cuò)誤如何處理、主機(jī)為磁盤控制器設(shè)置哪些操作命令和磁盤驅(qū)動(dòng)程序中包括哪些功能模塊等等。,2020/12/7,計(jì)算機(jī)組成原理,84,2. 硬磁盤調(diào)用舉例 PC-DOS的溫盤驅(qū)動(dòng)程序以軟中斷INT
58、13H調(diào)用,它包含一個(gè)主程序框架和21個(gè)功能子程序模塊,可向磁盤控制器發(fā)出22種操作命令。 主程序的功能包括測(cè)試驅(qū)動(dòng)器參數(shù),判斷可否調(diào)用;設(shè)置命令塊,給出圓柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào)、傳送扇區(qū)個(gè)數(shù)、尋道的步進(jìn)速率、功能子程序模塊號(hào);轉(zhuǎn)入某個(gè)功能子程序;在傳送完畢后判調(diào)用是否成功等。 21個(gè)功能子程序模塊可供選用,如磁盤復(fù)位,讀磁盤狀態(tài),讀、寫盤,檢驗(yàn)指定的扇區(qū),格式化指定磁道,設(shè)置故障扇區(qū)的標(biāo)志,初始化驅(qū)動(dòng)器性能參數(shù),磁道尋找,測(cè)試驅(qū)動(dòng)器準(zhǔn)備狀態(tài)等。,2020/12/7,計(jì)算機(jī)組成原理,85,下面說明磁盤調(diào)用的大致過程,其間略去了一些細(xì)節(jié)。 1)以軟中斷INT13調(diào)用溫盤驅(qū)動(dòng)程序,并在寄存器AH中寫入所需功能子程序號(hào):讀盤,AH=02H;寫盤,AH=03H。 2)在溫盤驅(qū)動(dòng)程序的主程序段中,設(shè)置命令控制塊,其中給出磁頭號(hào)、圓柱面號(hào)、起始扇區(qū)號(hào)、扇區(qū)個(gè)數(shù)、尋道步進(jìn)速率。 3)根據(jù)AH值,轉(zhuǎn)入響應(yīng)功能子程序。 4)在讀寫盤子程序中,進(jìn)行DMA初始化。向DMA控制器8237送出方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校集成吊頂采購(gòu)合同范例
- 店面五人合作協(xié)議合同范例
- 保險(xiǎn)理財(cái)電子合同范例
- 電控材料采購(gòu)合同范例
- 佰仟手機(jī)分期合同范例
- 石材進(jìn)貨采購(gòu)合同范例
- 融資租賃協(xié)議合同范例
- 小學(xué)書購(gòu)銷合同范例
- 立車維修合同范例
- 車輛委托質(zhì)押合同范例
- 延長(zhǎng)勞動(dòng)合同協(xié)議三篇
- 中鹽集團(tuán)筆試
- 項(xiàng)目驗(yàn)收通知書模板
- 山東大學(xué)《大學(xué)英語》2022-2023學(xué)年期末試卷
- 新人教小學(xué)五年級(jí)數(shù)學(xué)上冊(cè)總復(fù)習(xí)《圖形與幾何》示范教學(xué)課件
- 對(duì)外漢語教學(xué)法智慧樹知到期末考試答案章節(jié)答案2024年西北師范大學(xué)
- 紡織品檢測(cè)與評(píng)價(jià)智慧樹知到期末考試答案章節(jié)答案2024年蘇州大學(xué)
- 2024年高中物理必修一重難點(diǎn)知識(shí)歸納總結(jié)典型題目及解析
- 工行人工智能風(fēng)控
- 衛(wèi)生行政處罰申辯書范文
- 護(hù)士長(zhǎng)如何做好時(shí)間管理
評(píng)論
0/150
提交評(píng)論