第10章 輸入輸出系統(tǒng)_第1頁
第10章 輸入輸出系統(tǒng)_第2頁
第10章 輸入輸出系統(tǒng)_第3頁
第10章 輸入輸出系統(tǒng)_第4頁
第10章 輸入輸出系統(tǒng)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章輸入輸出系統(tǒng)

第10章輸入輸出系統(tǒng)計算機輸入輸出系統(tǒng)(I/O系統(tǒng))的功能是完成計算機系統(tǒng)與外部世界的聯(lián)系。它與計算機主機的速度、處理能力、實用性、兼容性等各項性能都有十分密切的關(guān)系。目前,輸入輸出設(shè)備種類日益增多,I/O系統(tǒng)就越來越顯得重要。為了提高主機的工作效率,組織合理的I/O系統(tǒng)、配備先進的I/O技術(shù)及接口部件是充分發(fā)揮計算機系統(tǒng)性能必不可少的條件。本章著重介紹I/O系統(tǒng)的組成,主機和外圍設(shè)備之間的五種數(shù)據(jù)傳送方式——程序查詢方式、中斷方式、DMA方式、通道方式和I/O處理機方式。目錄10.1I/O系統(tǒng)概述10.2程序查詢輸入輸出方式10.3程序中斷輸入輸出方式10.4DMA方式10.5通道方式10.1I/O系統(tǒng)概述10.1.1I/O系統(tǒng)的功能與組成10.1.2輸入輸出設(shè)備的尋址方式10.1.3輸入輸出數(shù)據(jù)傳送控制方式10.1.1I/O系統(tǒng)的功能與組成

⒈I/O系統(tǒng)的基本功能

①為信息的傳輸操作選擇設(shè)備;

②在選定的輸入輸出設(shè)備和計算機主機(CPU或存)之間交換信息。

⒉I/O系統(tǒng)的組成由I/O系統(tǒng)要實現(xiàn)的功能,I/O系統(tǒng)也包括了硬件及其相應(yīng)的軟件。各種外圍設(shè)備不能與計算機主機直接聯(lián)系,必須通過I/O系統(tǒng)聯(lián)接。

I/O系統(tǒng)的硬件組成,由圖可以看出,由4部分組成:外圍設(shè)備、設(shè)備控制器、I/O接口和CPU。⒉I/O系統(tǒng)的組成

①外圍設(shè)備:包括利用光、電、磁、機械等原理制成的各種設(shè)備,將信息轉(zhuǎn)換為二進制數(shù)碼的表示形式。

②設(shè)備控制器:其功能是將外圍設(shè)備生成的各種形式的二進制數(shù)碼轉(zhuǎn)換成電路的信號,并根據(jù)輸入信號的要求,對設(shè)備的運行進行控制。設(shè)備控制器屬于外圍設(shè)備的一個組成部分,是該外圍設(shè)備與計算機連接的界面。

⒉I/O系統(tǒng)的組成

③輸入/輸出接口:用來完成外圍設(shè)備與CPU交換信息時在速度、代碼形式上的相互匹配。在CPU中,數(shù)據(jù)的傳送速度是納秒級的,而外圍設(shè)備的速度則是毫秒級的,最快是微秒級的,兩者相差懸殊。CPU中的二進制數(shù)據(jù)是并行傳輸?shù)?,并且有標準的電位要求,而外圍設(shè)備因其種類的不同,其數(shù)據(jù)的傳輸方式有串行的,有并行的,還有串并行的。接口部件的功能就是進行外設(shè)與CPU之間的信息轉(zhuǎn)換,使其形式上能互相適應(yīng),速度上能互相匹配。同時能根據(jù)CPU的控制要求,對I/O系統(tǒng)的工作進行控制與檢測。⒉I/O系統(tǒng)的組成

接口部件是計算機系統(tǒng)的重要組成部分,不同的輸入輸出方式,不同的系統(tǒng)結(jié)構(gòu)形式,都影響接口部件的組成。而接口部件的質(zhì)量好壞,也將直接影響計算機系統(tǒng)的性能。

④CPU:計算機系統(tǒng)的CPU除了正常的工作外,在I/O系統(tǒng)中執(zhí)行輸入輸出指令,對整個I/O系統(tǒng)進行啟動、檢測和控制。⒉I/O系統(tǒng)的組成

CPU對輸入輸出設(shè)備的訪問,采用按地址訪問的形式,即先送地址碼,以確定訪問的具體是什么設(shè)備,然后進行信息交換。因此,對各種外圍設(shè)備需要進行編址,即給每一臺設(shè)備規(guī)定一些地址碼,這些地址碼也稱為設(shè)備號或設(shè)備代碼。目前有兩種編址方式:獨立編址和存儲器統(tǒng)一編址。10.1.2輸入輸出設(shè)備的尋址方式

⒈獨立編址對外圍設(shè)備統(tǒng)一編碼,從0開始。由于與存儲器分別編址,因此必須由單獨的I/O指令來訪問。CPU要設(shè)立I/O指令,例如,指令I(lǐng)N完成輸入,指令OUT完成輸出操作。指令的地址碼字段指出輸入輸出設(shè)備的設(shè)備代碼。IBMPC系列微型計算機就設(shè)置了專門的I/O指令。10.1.2輸入輸出設(shè)備的尋址方式

⒉存儲器統(tǒng)一編址在存儲器總的地址空間中分出一個區(qū)域,作為I/O系統(tǒng)中的設(shè)備代碼,當訪問這些地址時,表示被訪問的不是存儲器,而是I/O設(shè)備的設(shè)備寄存器。例如,PDP-11系列機就是采用存儲器統(tǒng)一編址方式對外圍設(shè)備進行尋址的。如PDP-11/23計算機主存的地址空間為64KB,最高空間FE00H~FFFFH這1024個地址就是輸入輸出的端口地址。在這種情況下,CPU不設(shè)專門的I/O指令,一般訪問內(nèi)存的指令都可以訪問外圍設(shè)備。各種尋址方式及數(shù)據(jù)處理指令也都可以被I/O端口使用。使得輸入輸出過程的處理更加靈活方便。10.1.2輸入輸出設(shè)備的尋址方式10.1.3輸入輸出數(shù)據(jù)傳送控制方式研究主機與外圍設(shè)備的數(shù)據(jù)傳送方式主要圍繞著兩個問題,一是主機速度與外圍設(shè)備速度的匹配問題,二是如何提高整機系統(tǒng)的性能問題。早期的輸入輸出系統(tǒng)是由程序控制的,即外圍設(shè)備的啟動、停止等工作全部由CPU執(zhí)行程序來實現(xiàn)控制。通常而言,外圍設(shè)備的工作速度比主機的工作速度要低得多,因此,在外圍設(shè)備工作的時候,主機處于等待狀態(tài)。在這種工作方式下,主機與外圍設(shè)備不能同時工作,整個計算機系統(tǒng)的工作效率較低。顯然,若主機和外圍設(shè)備能同時工作,整個計算機系統(tǒng)的工作效率就會明顯提高。這就引入了中斷的概念,即當外圍設(shè)備需要CPU為其服務(wù)時,才向CPU請求服務(wù),CPU暫停當前的工作,轉(zhuǎn)而為外圍設(shè)備服務(wù)。當CPU為外圍設(shè)備的服務(wù)結(jié)束后,繼續(xù)原來的工作。但是,中斷的輔助操作很多,特別是外圍設(shè)備較多時,中斷過于頻繁,將使CPU應(yīng)接不暇,整機的性能會受到很大的影響。一般情況下,主機要處理外圍設(shè)備的信息,首先要將外圍設(shè)備中信息傳送到主存中。若外圍設(shè)備和主存之間的信息傳送不必通過CPU而直接進行,就成了直接存儲器傳送(DMA)方式。在DMA方式中,CPU把部分輸入輸出的控制權(quán)交給了設(shè)備控制器,在外圍設(shè)備與主存之間傳送信息期間,CPU不必訪問主存,因此,信息傳送率較高。10.1.3輸入輸出數(shù)據(jù)傳送控制方式若設(shè)備控制器能執(zhí)行自己的指令、程序來完成輸入輸出的功能,就形成了通道或I/O處理機工作方式。一個通道在執(zhí)行輸入輸出過程的開始,由CPU進入管理程序,啟動通道工作。以后的過程全部由通道按照通道程序自行處理,CPU可同時繼續(xù)進行原來的工作,直至整個輸入輸出過程結(jié)束才中斷CPU作結(jié)束處理。不論一個輸入輸出過程交換多少信息,只需中斷CPU兩次,外圍設(shè)備、通道和CPU可以同時工作。僅在硬件上的這些措施還不一定能充分發(fā)揮作用,必須要求操作系統(tǒng)具有管理多道程序運行的功能?,F(xiàn)有的操作系統(tǒng)占有大量的CPU時間,把操作系統(tǒng)中有關(guān)外圍設(shè)備管理部分的功能分散到輸入輸出通道中,就形成了I/O處理機。10.1.3輸入輸出數(shù)據(jù)傳送控制方式

程序傳送方式和中斷方式適用于數(shù)據(jù)傳送量少、傳送率較低的外圍設(shè)備,DMA方式、通道方式和I/O方式適用于數(shù)據(jù)傳送率較高的外圍設(shè)備。計算機主機與外圍設(shè)備的數(shù)據(jù)傳輸方式10.1.3輸入輸出數(shù)據(jù)傳送控制方式10.2程序查詢輸入輸出方式10.2.1程序查詢方式的接口10.2.2程序查詢輸入/輸出方式10.2.1程序查詢方式的接口接口是計算機系統(tǒng)總線與外圍設(shè)備之間的一個邏輯部件,它的基本功能有兩點:一是為信息傳輸操作選擇外圍設(shè)備,二是在選定的外圍設(shè)備和主機之間交換信息,保證外圍設(shè)備用計算機系統(tǒng)特性所要求的形式發(fā)送或接收信息。在程序查詢輸入輸出方式(以下簡稱程序查詢方式)中,信息在主機和外圍設(shè)備之間的傳輸完全靠計算機程序控制,是在CPU控制下進行的。因此,相對其它數(shù)據(jù)傳輸方式的接口而言,程序查詢方式的接口較為簡單。程序查詢方式的接口主要包括設(shè)備選擇電路、數(shù)據(jù)緩沖寄存器和狀態(tài)寄存器三個部件,其示意圖如下頁圖所示。程序查詢方式接口示意圖

設(shè)備選擇電路:與系統(tǒng)總線的地址總線連接在一起,它實際上是設(shè)備地址的譯碼器。CPU執(zhí)行輸入輸出指令時需要把指令中的設(shè)備地址送到地址總線上,用來指示CPU要選擇的設(shè)備。每個接口的設(shè)備選擇電路對地址信號進行譯碼,用以判斷地址總線上呼叫的設(shè)備是不是本設(shè)備。如果是,本設(shè)備就進入工作狀態(tài),否則不予理睬。數(shù)據(jù)緩沖寄存器:用來暫存外圍設(shè)備與主機之間傳送的數(shù)據(jù),使慢速的外圍設(shè)備與快速的CPU之間的數(shù)據(jù)傳輸實現(xiàn)同步。狀態(tài)寄存器:用來存放外圍設(shè)備的狀態(tài),以便接口對外設(shè)進行檢測,如“忙”、“準備就緒”、“錯誤”等。一旦CPU用程序詢問外圍設(shè)備狀態(tài)時,將狀態(tài)信息送至CPU分析。10.2.1程序查詢方式的接口

程序查詢方式一般采用狀態(tài)驅(qū)動方式。傳送時,CPU首先通過接口將命令字發(fā)給外圍設(shè)備,啟動外圍設(shè)備工作。接著CPU等待外圍設(shè)備完成接收或發(fā)送數(shù)據(jù)的準備工作。在等待時間內(nèi),CPU不斷地用一條測試指令測試外圍設(shè)備的狀態(tài)。一旦CPU檢測到外圍設(shè)備處于“就緒”狀態(tài),就可以進行數(shù)據(jù)傳送。程序查詢方式的工作流程如右圖所示。10.2.2程序查詢輸入輸出方式

從程序查詢方式的工作流程圖可以看出,CPU和外圍設(shè)備之間的同步控制由程序中的指令來實現(xiàn),因此硬件接口電路簡單。但由于外圍設(shè)備的工作速度往往比CPU慢得多,CPU要化很多時間在等待外圍設(shè)備準備數(shù)據(jù),而不能執(zhí)行其它的操作,所以整機的工作效率較低。在實際的一個計算機系統(tǒng)中,往往有多臺外圍設(shè)備。在這種情況下,CPU在執(zhí)行主程序的過程中可周期性地調(diào)用各外圍設(shè)備的“詢問”子程序,依次“詢問”各個外圍設(shè)備的“狀態(tài)”。如果某個外圍設(shè)備準備就緒,則轉(zhuǎn)去執(zhí)行這個外圍設(shè)備的服務(wù)子程序;如果某個外圍設(shè)備未準備就緒,則依次測試下一個外圍設(shè)備。10.2.2程序查詢輸入輸出方式

詢問程序流程圖設(shè)備服務(wù)子程序的主要功能是:①實現(xiàn)數(shù)據(jù)傳送。②修改內(nèi)存地址,為下一個數(shù)據(jù)傳送作好準備。③修改傳送字節(jié)數(shù),以便確定數(shù)據(jù)塊傳送是否完成。

10.3程序中斷輸入輸出方式10.3.1中斷的基本概念10.3.2中斷方式的接口10.3.3中斷的響應(yīng)和處理10.3.4多級中斷10.3.1中斷的基本概念在程序查詢方式下,CPU根據(jù)事先編制好的程序的先后次序定時查詢外圍設(shè)備的狀態(tài),外圍設(shè)備處于“被動”的地位。顯然,在這種方式下,無論外圍設(shè)備是否需要CPU服務(wù),CPU都要通過執(zhí)行詢問程序才知曉。因此,程序查詢方式效率較低?!爸袛唷笔怯赏鈬O(shè)備或其它非預(yù)期的急需處理的事件引起的,外圍設(shè)備處于“主動”的地位?!爸袛唷笔笴PU暫時中斷正在執(zhí)行的程序,轉(zhuǎn)至另一服務(wù)程序去處理這一事件,待事件處理完畢后返回原程序繼續(xù)執(zhí)行。例如,現(xiàn)有1號、2號、3號外圍設(shè)備處于中斷工作方式,它們分別在時刻t1、t2和t3向CPU請求服務(wù),其示意圖如下頁圖所示。

中斷響應(yīng)和處理示意圖

主程序按預(yù)先編制的程序順序執(zhí)行。在t1時刻,1號外圍設(shè)備準備就緒,需要CPU為其服務(wù),向CPU請求中斷。這時,CPU要暫停主程序的執(zhí)行,轉(zhuǎn)去為1號外圍設(shè)備服務(wù)。因此,在t1時刻,主程序產(chǎn)生一個“斷點”(斷點A)。CPU為1號外圍設(shè)備服務(wù)的方式是執(zhí)行預(yù)先編制的1號外圍設(shè)備中斷服務(wù)程序。待1號中斷服務(wù)結(jié)束,即1號中斷服務(wù)程序執(zhí)行完畢后,CPU返回“斷點”處繼續(xù)主程序的執(zhí)行。在t2時刻,2號外圍設(shè)備請求中斷,產(chǎn)生斷點B,CPU轉(zhuǎn)去為2號外圍設(shè)備服務(wù),執(zhí)行2號外圍設(shè)備中斷服務(wù)程序。2號外圍設(shè)備中斷服務(wù)程序執(zhí)行完畢后,返回斷點B繼續(xù)執(zhí)行主程序。在t3時刻,3號外圍設(shè)備請求中斷,這時產(chǎn)生斷點C,CPU轉(zhuǎn)去執(zhí)行3號外圍設(shè)備的中斷服務(wù)程序。為3號外圍設(shè)備服務(wù)結(jié)束后,返回斷點C執(zhí)行主程序。對上圖所示的中斷響應(yīng)和處理過程的簡單說明

⑴實現(xiàn)CPU和外圍設(shè)備并行工作

⑵實現(xiàn)分時操作

⑶監(jiān)督現(xiàn)行程序,提高系統(tǒng)處理故障的能力,增強系統(tǒng)的可靠性。

⑷實現(xiàn)實時處理

⑸實現(xiàn)人機交換總之,中斷系統(tǒng)在計算機中具有很重要的作用。中斷系統(tǒng)和操作系統(tǒng)是密切相關(guān)的。在很多方面,操作系統(tǒng)是借助中斷系統(tǒng)來控制和管理計算機系統(tǒng)的。中斷系統(tǒng)在計算機系統(tǒng)中的作用

中斷方式接口的示意圖如下圖所示。10.3.2中斷方式的接口圖中,輸入輸出接口中的設(shè)備選擇、數(shù)據(jù)緩沖寄存器的作用與程序查詢方式相同,“RDY”觸發(fā)器和“BUSY”觸發(fā)器相當于程序查詢方式接口中狀態(tài)寄存器的兩位狀態(tài)。與程序查詢方式不同的是,中斷方式的接口電路多了中斷控制邏輯,其中EI為中斷允許觸發(fā)器,可

以通過指令設(shè)置,若設(shè)置為“1”,則允許中斷,若設(shè)置為“0”,則禁止中斷。下面以整個中斷工作過程為線索來敘述中斷方式接口的工作原理。當外圍設(shè)備準備就緒時,向接口發(fā)一個聯(lián)絡(luò)信號,這個聯(lián)絡(luò)信號將RDY觸發(fā)器置“1”。若中斷允許觸發(fā)器EI為“1”,則通過一個與門產(chǎn)生中斷請求信號INT。CPU在完成當前的基本操作后,響應(yīng)此中斷,并通過INTA中斷響應(yīng)信號打開輸入輸出接口中的中斷向量邏輯部件,將此外圍設(shè)備的中斷號或中斷向量通過數(shù)據(jù)總線轉(zhuǎn)送給CPU,以便CPU獲取對應(yīng)的中斷服務(wù)子程序的入口地址。CPU響應(yīng)中斷后,進入中斷服務(wù)程序,把要傳送的數(shù)據(jù)通過接口傳輸給外圍設(shè)備,并將RDY觸發(fā)器清“0”,撤消中斷請求信號,同時將BUSY觸發(fā)器置“1”,以通知外圍設(shè)備開始動作。若外圍設(shè)備此項動作完成,產(chǎn)生動作結(jié)束信號,則又通過RDY觸發(fā)器產(chǎn)生新一輪的中斷請求。

CPU從接受中斷請求信號到中斷服務(wù)結(jié)束,可分為兩個階段:第一個階段是中斷響應(yīng),第二個階段是中斷處理。中斷響應(yīng)階段主要解決三個問題:①正確地找到對應(yīng)的中斷服務(wù)程序的入口地址;

②為中斷返回作好準備;

③保證中斷響應(yīng)的完整性。整個中斷響應(yīng)過程如右圖所示。10.3.3中斷的響應(yīng)和處理

在一個計算機系統(tǒng)中,存在著多個中斷源,每個中斷源有其對應(yīng)的中斷服務(wù)程序的入口地址。在中斷響應(yīng)過程中,必須能識別當前請求中斷的中斷源,即CPU必須知道對應(yīng)中斷的中斷號或中斷向量。CPU可以根據(jù)中斷號或中斷向量找到中斷服務(wù)程序的入口地址,將此地址賦予程序計數(shù)器PC,即可跳轉(zhuǎn)到中斷服務(wù)程序的入口處,從而開始執(zhí)行中斷服務(wù)程序。中斷號或中斷向量一般存放在對應(yīng)中斷源的接口電路中,CPU獲取中斷號中斷向量的方法是:在中斷響應(yīng)期間,CPU往接口發(fā)送中斷響應(yīng)信號INTA。接口接收到INTA信號后,將中斷號或中斷向量通過數(shù)據(jù)總線傳送給CPU。

中斷服務(wù)程序結(jié)束后,必須能正確地返回到被中斷的斷點處繼續(xù)原來程序的執(zhí)行。實現(xiàn)正確返回的基礎(chǔ)有兩點:第一,當外圍設(shè)備請求中斷后,CPU待當前基本操作結(jié)束后,才響應(yīng)中斷;第二,CPU必須將當前程序計數(shù)器PC的值(斷點地址)及CPU的狀態(tài)(包括各種標志的程序狀態(tài)字)壓入堆棧保護起來,這些操作叫做現(xiàn)場保護。由于中斷請求是隨機的,在一個中斷響應(yīng)過程中,可能有新的中斷請求。為了不造成混亂,CPU對新的中斷請求應(yīng)不予以響應(yīng)。解決辦法是:在中斷響應(yīng)期間,置CPU內(nèi)的中斷允許標志為無效狀態(tài)。

中斷服務(wù)程序結(jié)構(gòu)流程圖

中斷服務(wù)程序是為外圍設(shè)備編制的一個程序段。不同的外圍設(shè)備,其功能要求也不同,因此,中斷處理的具體內(nèi)容是不同的。但中斷服務(wù)程序有共同的結(jié)構(gòu)模式。

進入中斷服務(wù)程序后,首先要進一步保護現(xiàn)場。因為中斷的發(fā)生是隨機的,雖然在中斷響應(yīng)期間,CPU已經(jīng)將程序計數(shù)器及程序狀態(tài)字壓入堆棧保護,但要使中斷返回后,程序能正確地執(zhí)行下去,必須將中斷服務(wù)程序用到的一些寄存器的內(nèi)容壓入堆棧保護,以免中斷服務(wù)程序修改這些現(xiàn)場數(shù)據(jù)。

CPU在響應(yīng)中斷期間,已經(jīng)將中斷允許標志清“0”,即CPU處于禁止中斷狀態(tài)。為了使更高的中斷進入,進入中斷服務(wù)程序后,需將中斷允許標志置“1”,開放中斷。中斷服務(wù)程序的具體內(nèi)容執(zhí)行完成后,恢復(fù)現(xiàn)場,即將“進一步保護現(xiàn)場”時壓入堆棧的內(nèi)容從堆棧中彈出,傳送給原來的那些寄存器,為中斷返回作準備。

由于中斷的請求是隨機的,在一個有多個中斷源的計算機中,存在下列兩種可能:一是兩個中斷源同時請求中斷;二是當CPU正在處理一個中斷時,又有新的中斷請求。這兩個問題的解決方案實質(zhì)上是中斷優(yōu)先級的處理問題。中斷優(yōu)先級根據(jù)各個中斷事件的輕重緩急程度不同而分成的若干級別,每一個中斷源分配給一個優(yōu)先權(quán)。為了使各種中斷處理情況都“合乎情理”地進行,中斷的響應(yīng)處理必須符合優(yōu)先級原則。優(yōu)先級原則有以下4條:10.3.4多級中斷①當只有一個中斷源請求中斷時,CPU響應(yīng)此中斷。②當有兩個中斷源同時請求中斷時,CPU先響應(yīng)優(yōu)先級別高的中斷源。待優(yōu)先級別高的中斷處理結(jié)束后,再響應(yīng)和處理優(yōu)先級別低的中斷源。③當CPU正在處理一個中斷時,有一新的中斷請求,且新的中斷源的優(yōu)先級比正在處理的中斷源的優(yōu)先級高,則CPU暫停當前中斷的處理,轉(zhuǎn)而響應(yīng)和處理優(yōu)先級高的中斷。待優(yōu)先級別高的中斷處理完畢后,才再繼續(xù)原中斷的處理。④當CPU正在處理一個中斷時,有一新的中斷請求,且新的中斷源的優(yōu)先級比正在處理的中斷源的優(yōu)先級低,則待CPU處理完當前中斷后,才去響應(yīng)和處理新的中斷。中斷優(yōu)先級的解決方法

⒈軟件查詢法軟件查詢法的程序流程圖如右圖所示。CPU在接到中斷請求信號后,必須判斷中斷請求信號是哪個外圍設(shè)備發(fā)來的,它可以用程序來查詢中斷源,以查詢到中斷源的先后次序來確定優(yōu)先級,若改變查詢次序就可以修改優(yōu)先級。在確認了有請求的中斷源后,轉(zhuǎn)入到相應(yīng)的中斷服務(wù)程序:用軟件查詢法實現(xiàn)中斷優(yōu)先級的處理電路簡單,但效率較低。

⒉硬件電路法硬件電路法又可以分為菊花鏈電路和專用判優(yōu)邏輯兩種。

⑴菊花鏈電路:用于單線請求的計算機系統(tǒng)。菊花鏈電路實現(xiàn)中斷優(yōu)先級的處理速度快,但功能固定,不夠靈活。

⑵專用判優(yōu)邏輯:用于多線中斷請求的計算機系統(tǒng),它用可編程芯片實現(xiàn),用戶可靈活設(shè)置中斷優(yōu)先級、中斷號、屏蔽和開放中斷等內(nèi)容,目前計算機中都采用這種方式。每個外圍設(shè)備都可以通過各自的中斷請求信號線,將中斷信號傳遞給判優(yōu)邏輯電路,判優(yōu)邏輯根據(jù)預(yù)先設(shè)定的中斷優(yōu)先級,選出優(yōu)先級最高的中斷源,并將相應(yīng)的中斷號送給CPU,CPU立即為優(yōu)先級最高的中斷源服務(wù)。10.4DMA方式10.4.1DMA方式的基本概念10.4.2DMA傳送方式10.4.3基本的DMA控制器10.4.4DMA工作過程10.4.1DMA方式的基本概念直接存儲器存?。―MA)方式,是一種完全由硬件控制的輸入輸出工作方式,這種硬件就是DMA控制器。在正常工作時,CPU是計算機系統(tǒng)的主控部件,所有工作周期均用于執(zhí)行CPU的程序。在DMA方式下,CPU釋放總線的控制權(quán),DMA控制器接管總線,數(shù)據(jù)交換不經(jīng)過CPU,而直接在內(nèi)存和外圍設(shè)備之間進行。DMA方式一般用于高速地傳送成組數(shù)據(jù)。DMA工作原理如下圖所示。

在DMA工作過程中,DMA控制器將向內(nèi)存發(fā)出地址和控制信號、修改內(nèi)存地址、對轉(zhuǎn)送的數(shù)據(jù)字進行記數(shù),并且以中斷的方式向CPU報告?zhèn)魉筒僮鞯慕Y(jié)束。

DMA操作的主要優(yōu)點是速度快。由于CPU根本不參加數(shù)據(jù)傳送操作,因而就省去取指、譯碼、取操作數(shù)、送操作數(shù)等操作。在數(shù)據(jù)傳送過程中,也不像中斷方式那樣,進行保護現(xiàn)場、恢復(fù)現(xiàn)場之類的操作。內(nèi)存地址修改、數(shù)據(jù)傳送字的計數(shù),也不是由軟件實現(xiàn),而是用硬件電路直接實現(xiàn)的。所以DMA方式能滿足高速外圍設(shè)備的要求,也有利于提高計算機的整機效率。正因為如此,DMA方式被各種型號的計算機廣泛采用。

CPU和DMA控制器都可以作為主控設(shè)備,它們可以分時控制總線,實現(xiàn)內(nèi)存和外圍設(shè)備之間的數(shù)據(jù)傳送。DMA控制器和CPU分時使用總線的方式有以下三種:

①停止CPU訪問;

②周期挪用;

③DMA控制器和CPU交替訪問內(nèi)存。10.4.2DMA傳送方式

停止CPU訪問方式,是指在DMA傳送過程中,CPU釋放總線的控制權(quán),處于不工作狀態(tài)(保持狀態(tài))。當外圍設(shè)備要求傳送一批數(shù)據(jù)時,由DMA控制器發(fā)一個停止信號給CPU,要求CPU放棄對總線的使用權(quán)。DMA控制器獲得總線的控制權(quán)后,開始數(shù)據(jù)傳送。在一批數(shù)據(jù)傳送完畢后,DMA控制器向CPU發(fā)一個DMA結(jié)束信號,釋放總線的控制權(quán),把總線控制權(quán)交還給CPU。

這種傳送方式的優(yōu)點是控制簡單,它適用于高速的外圍設(shè)備與內(nèi)存之間實現(xiàn)成組的數(shù)據(jù)傳送。由于外圍設(shè)備和內(nèi)存?zhèn)魉蛢蓚€數(shù)據(jù)之間的間隔一般總是大于內(nèi)存存儲周期,因此,在DMA期間,一部分內(nèi)存的工作周期處于空閑狀態(tài),內(nèi)存的效能未得到充分發(fā)揮。⒈停止CPU訪問

在周期挪用方式中,當外圍設(shè)備沒有DMA請求時,CPU按程序要求訪問內(nèi)存;當外圍設(shè)備有DMA請求時,則由外圍設(shè)備挪用一個或幾個內(nèi)存周期,實現(xiàn)外圍設(shè)備和內(nèi)存之間的數(shù)據(jù)傳送。周期挪用方式在進行DMA傳送時存在兩種情況:一種是此時CPU不需要訪問內(nèi)存,如CPU正在執(zhí)行乘法指令。由于乘法指令執(zhí)行時間較長,此時外圍設(shè)備訪問內(nèi)存和CPU訪問內(nèi)存沒有沖突,即外圍設(shè)備挪用一、二個內(nèi)存周期對CPU執(zhí)行程序沒有任何影響。另一種情況是,在外圍設(shè)備要求訪問內(nèi)存時,CPU也要訪問內(nèi)存,這就產(chǎn)生了沖突。在這種情況下,外圍設(shè)備訪問內(nèi)存的優(yōu)先級比CPU要高,因為外圍設(shè)備訪問內(nèi)存有時間要求,前一個數(shù)據(jù)必需在下一個訪問內(nèi)存請求之前存取完畢。⒉周期挪用

顯然,在這種情況下外圍設(shè)備挪用一、二個內(nèi)存周期,意味著CPU延緩了對指令的執(zhí)行,或者更明確地說,在CPU執(zhí)行訪問內(nèi)存指令的過程中插入DMA請求,挪用了一、二個內(nèi)存周期。與停止CPU訪問內(nèi)存的方式比較,周期挪用的方式既實現(xiàn)了外圍設(shè)備與內(nèi)存之間的數(shù)據(jù)傳送,又較好地發(fā)揮了內(nèi)存和CPU的效率,是一種廣泛使用的方法。但是,外圍設(shè)備每次周期挪用都要申請總線的控制權(quán)、建立總線控制權(quán)和歸還總線控制權(quán)等操作。所以,傳送一個字對內(nèi)存來說要占用一個周期,但對DMA控制器來說一般要占用2—5個內(nèi)存周期。因此,周期挪用的方式適用于外圍設(shè)備讀寫周期大于內(nèi)存存取周期的情況。

如果CPU的工作周期比內(nèi)存存取周期長得多,此時采用交替訪問內(nèi)存的方式可以使DMA傳送和CPU同時發(fā)揮最高的效率。這種方式不需要總線使用權(quán)的申請、建立和歸還過程,總線控制權(quán)分兩個周期分時由DMA控制器和CPU控制,DMA控制器和CPU有各自的訪問內(nèi)存地址寄存器、數(shù)據(jù)寄存器和讀寫控制邏輯。交替訪問內(nèi)存的方式又稱“透明的DMA”方式,該名稱的來由是這種DMA傳送對CPU來說是透明的,沒有任何感覺和影響。在透明的DMA方式下工作,CPU既可不停止程序的運行,也不進入等待狀態(tài),是一種高效率的工作方式。當然,相應(yīng)的硬件控制邏輯要更加復(fù)雜。⒊DMA控制器和CPU交替訪問內(nèi)存

DMA控制器可以作為主控部件控制總線實現(xiàn)內(nèi)存與外圍設(shè)備之間的數(shù)據(jù)傳送,因此,它具有總線請求和響應(yīng)、總線控制、傳送地址,對傳送的字數(shù)據(jù)計數(shù)等功能。DMA控制器的邏輯結(jié)構(gòu)如下圖所示。10.4.3基本的DMA控制器

⑴地址寄存器。用來存放DMA過程中的內(nèi)存地址。初始時地址寄存器的內(nèi)容為內(nèi)存塊的首地址,每傳送一個字數(shù)據(jù),地址寄存器的內(nèi)容自動加1,以增量方式給出內(nèi)存的下一個地址。

⑵字計數(shù)器。用來記錄被傳送數(shù)據(jù)塊的長度。初始內(nèi)容在數(shù)據(jù)塊傳送前預(yù)置為要傳送字數(shù)據(jù)的總長度的補碼。在DMA過程中,每傳送一個字,計數(shù)器加1。當計數(shù)器溢出時,表示這批數(shù)據(jù)已經(jīng)傳送完畢,于是DMA控制器向CPU發(fā)DMA結(jié)束信號。

⑶數(shù)據(jù)緩沖寄存器。用來暫存每次傳送的數(shù)據(jù)。當DMA以內(nèi)存——內(nèi)存方式傳送數(shù)據(jù)時,由DMA控制器先將內(nèi)存中源單元的數(shù)據(jù)讀取至數(shù)據(jù)緩沖器,再將數(shù)據(jù)緩沖器中的數(shù)據(jù)寫入到目標內(nèi)存單元。DMA控制器邏輯結(jié)構(gòu)圖解釋

⑷DMA請求標志。每當外圍設(shè)備準備好一個數(shù)據(jù)字后,給出一個控制信號,使DMA請求標志置“1”。該標志置位后向控制/狀態(tài)邏輯發(fā)出DMA請求,后者又向CPU發(fā)出總線請求,CPU響應(yīng)此信號后發(fā)回總線請求響應(yīng)信號,“控制/狀態(tài)”邏輯接收到此信號后發(fā)DMA響應(yīng)信號,使DMA請求標志復(fù)位,為交換下一個數(shù)據(jù)作好準備。

⑸控制/狀態(tài)邏輯。它由控制和時序電路、狀態(tài)標志等組成,用以對地址寄存器、字計數(shù)器等內(nèi)容的修改進行控制,設(shè)置數(shù)據(jù)傳送類型,并對DMA請求信號和CPU響應(yīng)信號進行協(xié)調(diào)和同步。

⑹中斷機構(gòu)。當字計數(shù)器溢出時,意味著一組數(shù)據(jù)傳送完畢,由溢出信號觸發(fā)中斷機構(gòu),向CPU提出中斷報告。這里的中斷與上一節(jié)介紹的中斷概念相同,但目的不同,前者是為了數(shù)據(jù)的輸入或輸出,后者是為了告知CPU一組數(shù)據(jù)傳送的結(jié)束。DMA控制器邏輯結(jié)構(gòu)圖解釋

DMA的數(shù)據(jù)傳送過程可分為兩個階段:DMA傳送前的預(yù)處理及數(shù)據(jù)傳送。

⒈DMA傳送預(yù)處理

DMA傳送預(yù)處理是對DMA控制器的初始化操作。在初始化操作時,CPU作為主控部件,DMA控制器作為從控設(shè)備,根據(jù)DMA傳送要求,CPU測試外圍設(shè)備的狀態(tài)、設(shè)置DMA初始化命令字。初始化命令字主要包括下列6個方面:

⑴設(shè)置DMA傳送方式的數(shù)據(jù)傳送方向。DMA數(shù)據(jù)傳送方向由三種選擇:①外圍設(shè)備到內(nèi)存的數(shù)據(jù)傳送。②內(nèi)存到外圍設(shè)備的數(shù)據(jù)傳送。③內(nèi)存到內(nèi)存的數(shù)據(jù)傳送。

10.4.4DMA工作過程

⑵設(shè)置DMA的數(shù)據(jù)傳送方式。決定當前要傳送的DMA方式是停止CPU訪問方式、周期挪用方式,還是DMA控制器和CPU交替訪問內(nèi)存方式。

⑶設(shè)置DMA各通道的優(yōu)先級。對于多個通道的DMA控制器來說,通過此命令決定各個通道的優(yōu)先級。當兩個以上的通道同時請求DMA傳送時,DMA控制器先響應(yīng)優(yōu)先級高的通道。

⑷開放或屏蔽DMA通道。與中斷方式類似,CPU也可以通過設(shè)置命令字開放或屏蔽某個DMA通道。當某個通道被屏蔽后,即使該通道由DMA請求,DMA控制器不予響應(yīng)。

⑸設(shè)置DMA傳送的字數(shù)據(jù)數(shù)。字數(shù)據(jù)數(shù)通常以補碼形式設(shè)置。設(shè)置字數(shù)據(jù)數(shù)時,CPU將實際要傳送的字數(shù)據(jù)數(shù)以字計數(shù)器的長度為模取補,并將取補后的數(shù)據(jù)傳送給字計數(shù)器。例:當前要傳送的字數(shù)據(jù)塊的長度為8192(2000H),字計數(shù)器的長度為16位,則其補碼為57344(E000H),CPU將57344傳送給字計數(shù)器。

⑹設(shè)置DMA傳送的內(nèi)存初始地址。若是內(nèi)存到內(nèi)存的DMA傳送,則需兩個DMA通道,一個DMA控制器通道的地址寄存器用來設(shè)置源數(shù)據(jù)區(qū)的初始地址,另一個用來設(shè)置目的數(shù)據(jù)區(qū)的初始地址。

⒉數(shù)據(jù)傳送過程。在DMA傳送過程中,DMA控制器作為主控部件,控制總線實現(xiàn)數(shù)據(jù)傳送。下面以外圍設(shè)備向內(nèi)存?zhèn)魉蛿?shù)據(jù)為例說明DMA的數(shù)據(jù)傳送過程:

⑴外圍設(shè)備向DMA控制器請求DMA傳送。

⑵若該通道未被屏蔽,則DMA控制器進行優(yōu)先級裁決。如果無更高優(yōu)先級的DMA通道正在進行數(shù)據(jù)傳送或同時請求DMA傳送,則DMA控制器向CPU發(fā)總線請求信號。

⑶CPU結(jié)束當前正在進行的基本操作后,釋放總線的控制權(quán),并向DMA控制器發(fā)一個總線響應(yīng)信號。

⑷DMA控制器接收總線響應(yīng)信號后,獲得總線的控制權(quán),并將DMA響應(yīng)信號傳遞給外圍設(shè)備。

⑸DMA控制器將地址寄存器的內(nèi)容發(fā)往地址總線,同時發(fā)I/O讀和存儲器寫等控制信號,以傳送一個字數(shù)據(jù)。

⑹地址寄存器的內(nèi)容加1,字計數(shù)器的內(nèi)容加1。

⑺若為單字傳送,則DMA過程結(jié)束。若為數(shù)據(jù)塊傳送,則判斷字計數(shù)器是否溢出,如果未溢出,則繼續(xù)第⑸步;若溢出,則DMA傳送結(jié)束。

⑻若DMA結(jié)束,則DMA控制器將總線控制權(quán)交還給CPU,CPU繼續(xù)原來的處理。內(nèi)存到外圍設(shè)備的DMA傳送過程與上述類似,在此不作重復(fù)。10.5通道方式10.5.1通道的作用和功能10.5.2通道的種類10.5.3通道的工作過程10.5.1通道的作用和功能在大型計算機系統(tǒng)中,如果僅僅采用前面介紹的程序查詢、中斷和DMA這三種輸入輸出方式來管理外圍設(shè)備,還存在以下兩個問題:

⑴所有輸入輸出操作都要由CPU控制,CPU的負擔(dān)較重,整個計算機的性能勢必降低。對于低速外圍設(shè)備,每傳送一個字數(shù)據(jù)都要由CPU執(zhí)行程序來完成,而高速的外圍設(shè)備雖然采用DMA方式降低了CPU的負擔(dān),但初始化等操作仍需要CPU通過執(zhí)行程序來完成。在大型計算機系統(tǒng)中,這種輸入輸出操作對CPU的時間占用實際上是一種浪費。避免這種浪費的方法之一就是設(shè)置專用的輸入輸出處理機來分擔(dān)全部或大部分的輸入輸出操作。

⑵大型計算機系統(tǒng)中外圍設(shè)備雖然很多,但是一般并不同時工作。如果為每一臺外圍設(shè)備都配置一個接口,顯然是一種浪費。采用DMA方式傳送數(shù)據(jù),雖然提高了輸入輸出的速度,但它是以每一臺外圍設(shè)備都配置一個專用的DMA控制器為代價的。在微型或小型計算機系統(tǒng)中,由于快速外圍設(shè)備的臺數(shù)很少,因而采用DMA控制器的數(shù)量是有限的。而在大型計算機系統(tǒng)中,快速外圍設(shè)備的數(shù)量較多,就存在著如何讓DMA控制器能被多臺外圍設(shè)備共享的問題。為了使CPU擺脫繁重的輸入輸出操作,提高系統(tǒng)附加硬件的利用率,在大型計算機系統(tǒng)中采用通道方式傳送數(shù)據(jù)是一種比較好的選擇。通道處理機能夠負擔(dān)外圍設(shè)備的大部分輸入輸出工作,包括所有按字節(jié)傳送方式工作的低速和中速外圍設(shè)備,按數(shù)據(jù)塊傳送方式工作的高速外圍設(shè)備。

在一臺大型計算機系統(tǒng)中可以有多個通道,一個通道可以連接多個外圍設(shè)備控制器,而一個設(shè)備控制器又可以管理一臺或多臺外圍設(shè)備,這樣就形成了非常典型的輸入輸出系統(tǒng)的四級層次結(jié)構(gòu)。通道的基本功能是執(zhí)行通道指令、組織外圍設(shè)備和內(nèi)存之間的數(shù)據(jù)傳送,按I/O指令要求啟動外圍設(shè)備,向CPU報告中斷等,具體有以下5項功能。

⑴接收CPU的I/O指令,按指令要求與指定的外圍設(shè)備進行通訊。

⑵從內(nèi)存取出屬于該通道程序的通道指令,經(jīng)譯碼后向設(shè)備控制器或外圍設(shè)備發(fā)出各種命令。

⑶組織外圍設(shè)備與內(nèi)存之間進行數(shù)據(jù)傳送,并根據(jù)需要提供數(shù)據(jù)傳送的緩存空間,提供數(shù)據(jù)存入內(nèi)存的地址和傳送的數(shù)據(jù)量。

⑷從外圍設(shè)備得到狀態(tài)信息,形成并保存通道本身的狀態(tài)信息,根據(jù)要求將

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論