微型計(jì)算機(jī)基本原理與應(yīng)用(第二版)第8章 IO接口與DMA技術(shù)_第1頁
微型計(jì)算機(jī)基本原理與應(yīng)用(第二版)第8章 IO接口與DMA技術(shù)_第2頁
微型計(jì)算機(jī)基本原理與應(yīng)用(第二版)第8章 IO接口與DMA技術(shù)_第3頁
微型計(jì)算機(jī)基本原理與應(yīng)用(第二版)第8章 IO接口與DMA技術(shù)_第4頁
微型計(jì)算機(jī)基本原理與應(yīng)用(第二版)第8章 IO接口與DMA技術(shù)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8章

I/O接口與DMA技術(shù)本章主要內(nèi)容(1)I/O接口的基本概念(2)I/O控制方式(3)DMA接口技術(shù)8.1I/O接口概述8.1.1I/O接口的基本功能

(1)數(shù)據(jù)緩沖

(2)提供聯(lián)絡(luò)信息

(3)信號(hào)與信息格式的轉(zhuǎn)換

(4)設(shè)備選擇

(5)中斷管理

(6)可編程功能8.1.2I/O接口的基本結(jié)構(gòu)I/O接口的基本結(jié)構(gòu)如圖8.1所示。cpu外圍設(shè)備數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器狀態(tài)寄存器控制寄存器中斷控制邏輯數(shù)據(jù)總線地址總線控制總線圖8.1I/O接口的基本結(jié)構(gòu)I/O接口8.1.3I/O端口的編址方式輸入輸出接口包含一組稱為I/O端口的寄存器。為了讓CPU能夠訪問這些I/O端口,每個(gè)I/O端口都需有自己的端口地址(或端口號(hào))。在一個(gè)微型計(jì)算機(jī)系統(tǒng)中,如何編排這些I/O接口的端口地址,稱為I/O端口的編址方式。常見的I/O端口編址方式有兩種:一種是I/O端口和存儲(chǔ)器統(tǒng)一編址,也稱存儲(chǔ)器映像的I/O(MemoryMappedI/O)方式;另一種是I/O端口和存儲(chǔ)器分開編址,也稱I/O映像的I/O(I/OMappedI/O)方式。1.I/O端口和存儲(chǔ)器統(tǒng)一編址

(Memory-MappedI/O)I/O端口和存儲(chǔ)器統(tǒng)一編址的地址空間分布情況如圖8.2所示。I/O端口存儲(chǔ)單元I/O地址空間存儲(chǔ)器地址空間整個(gè)地址空間圖8.2I/O端口和存儲(chǔ)器統(tǒng)一編址這種編址方式的優(yōu)點(diǎn)是,可以用訪向存儲(chǔ)器的指令來訪問I/O端口,而訪問存儲(chǔ)器的指令功能比較強(qiáng),不僅有一般的傳送指令,還有算術(shù)、邏輯運(yùn)算指令,以及各種移位、比較指令等,并且可以實(shí)現(xiàn)直接對(duì)I/O端口內(nèi)的數(shù)據(jù)進(jìn)行處理。例如,若一個(gè)存儲(chǔ)器映像的I/O端口地址為3000H,則可以直接用指令“ADDAL,DS:[3000H]”對(duì)端口的內(nèi)容進(jìn)行算術(shù)運(yùn)算。缺點(diǎn)是:由于I/O端口占用了一部分存儲(chǔ)器地址空間,因而使用戶的存儲(chǔ)地址空間相對(duì)減?。涣硗?,由于利用訪問存儲(chǔ)器的指令來進(jìn)行I/O操作,指令的長度通常比單獨(dú)I/O指令要長,因而指令的執(zhí)行時(shí)間也較長。微處理器MC6800系列、6502系列以及MC680x0系列采用這種編址方式。2.I/O端口和存儲(chǔ)器單獨(dú)編址

(I/O-MappedI/O)I/O端口和存儲(chǔ)器單獨(dú)編址的地址空間分布如圖8.3所示。存儲(chǔ)單元存儲(chǔ)器地址空間I/O端口I/O地址空間圖8.3I/O端口和存儲(chǔ)器單獨(dú)編址這種編址方式的優(yōu)點(diǎn)是:第一,I/O端口不占用存儲(chǔ)器地址,故不會(huì)減少用戶的存儲(chǔ)器地址空間;第二,單獨(dú)I/O指令的地址碼較短,地址譯碼方便,I/O指令短,執(zhí)行速度快;第三,采用單獨(dú)的I/O指令,使程序中I/O操作和其他操作層次清晰,便于理解。這種編址方式的缺點(diǎn)是:第一,單獨(dú)I/O指令的功能有限,只能對(duì)端口數(shù)據(jù)進(jìn)行輸入/輸出操作,不能直接進(jìn)行移位、比較等其他操作;第二,由于采用了專用的I/O操作時(shí)序及I/O控制信號(hào)線,因而增加了微處理器本身控制邏輯的復(fù)雜性。微處理器Z80系列、Intel80x86系列采用了這種編址方式。8.1.4I/O接口的地址分配本部分內(nèi)容詳見教材,此處從略。8.1.5I/O接口的地址譯碼及片選信號(hào)的產(chǎn)生在一個(gè)微機(jī)系統(tǒng)中通常具有多臺(tái)外設(shè),當(dāng)CPU與外設(shè)進(jìn)行通信時(shí),需要對(duì)各個(gè)設(shè)備所對(duì)應(yīng)的接口芯片進(jìn)行邏輯選擇,從而實(shí)現(xiàn)與相應(yīng)的設(shè)備進(jìn)行數(shù)據(jù)交換。這種邏輯選擇功能是由I/O接口電路中的地址譯碼器實(shí)現(xiàn)的。目前常見的一種做法是:先通過對(duì)I/O端口地址的某幾位高位地址進(jìn)行譯碼,產(chǎn)生有效的片選信號(hào),從而選中對(duì)應(yīng)的接口芯片,再利用I/O端口地址的低位地址作為對(duì)接口芯片內(nèi)部有關(guān)寄存器的選擇。例如,在IBMPC/XT微機(jī)中,其系統(tǒng)板上有數(shù)片I/O接口芯片,其中包括DMA控制器8237、中斷控制器8259A、并行接口8255A、計(jì)數(shù)器/定時(shí)器8253等。這些接口芯片必須是在相應(yīng)的片選信號(hào)有效時(shí)才能工作。圖8.4所示的就是在該微機(jī)系統(tǒng)中片選信號(hào)的產(chǎn)生電路。AY0

BY1

CY2Y3Y4G2B

Y5

G2AY6

G1Y7A5A6A874LS138A7A9AENPPICST/CCSINTRCSDMACSIOWWRTDMAPG(寫DMA頁面寄存器)WRTNMIREG(寫NMI屏蔽寄存器) 圖8.4片選信號(hào)的產(chǎn)生8.2I/O控制方式主機(jī)與外圍設(shè)備之間的數(shù)據(jù)傳送控制方式(即I/O控制方式)主要有三種:程序控制方式、中斷控制方式和直接存儲(chǔ)器存取(DMA)方式。8.2.1程序控制方式程序控制方式是指在程序控制下進(jìn)行的數(shù)據(jù)傳送方式。它又分為無條件傳送和程序查詢傳送兩種。1.無條件傳送方式優(yōu)點(diǎn):控制程序簡單。缺點(diǎn):必須是在外設(shè)已準(zhǔn)備好的情況下才能使用,否則,傳送就會(huì)出錯(cuò)。

2.程序查詢傳送方式優(yōu)點(diǎn):比無條件傳送要準(zhǔn)確和可靠。

缺點(diǎn):

(1)CPU的利用率低;(2)不能滿足實(shí)時(shí)控制系統(tǒng)對(duì)I/O處理的要求。

準(zhǔn)備好?讀取狀態(tài)信息輸入數(shù)據(jù)是否圖8.5查詢式輸入程序流程圖忙?讀取狀態(tài)信息輸出數(shù)據(jù)否是圖8.6查詢式輸出程序流程圖8.2.2中斷控制方式與程序查詢方式相比,中斷控制方式的數(shù)據(jù)交換具有如下特點(diǎn):(1)提高了CPU的工作效率;(2)外圍設(shè)備具有申請(qǐng)服務(wù)的主動(dòng)權(quán);(3)CPU可以和外設(shè)并行工作;(4)可適合實(shí)時(shí)系統(tǒng)對(duì)I/O處理的要求。8.2.3DMA方式1.DMA的基本概念采用程序控制方式以及中斷方式進(jìn)行數(shù)據(jù)傳送時(shí),都是靠CPU執(zhí)行程序指令來實(shí)現(xiàn)數(shù)據(jù)的輸入/輸出的。采用程序控制方式及中斷方式時(shí),數(shù)據(jù)的傳輸率不會(huì)很高。對(duì)于高速外設(shè),如高速磁盤裝置或高速數(shù)據(jù)采集系統(tǒng)等,采用這樣的傳送方式,往往滿足不了其數(shù)據(jù)傳輸率的要求。例如,對(duì)于磁盤裝置,其數(shù)據(jù)傳輸率通常在20萬字節(jié)/秒以上,即傳輸一個(gè)字節(jié)的時(shí)間要小于5μs。對(duì)于通常的PC機(jī)來說,執(zhí)行一條程序指令平均需要幾μs時(shí)間。顯然,采用程序控制或中斷方式不能滿足這種高速外設(shè)的要求。由此產(chǎn)生不需要CPU干預(yù)(不需CPU執(zhí)行程序指令),而在專門硬件控制電路控制之下進(jìn)行的外設(shè)與存儲(chǔ)器間直接數(shù)據(jù)傳送的方式,稱為直接存儲(chǔ)器存取(DirectMemoryAccess),簡稱DMA方式。這一專門的硬件控制電路稱為DMA控制器,簡稱DMAC。CPU外設(shè)存儲(chǔ)器總線:執(zhí)行程序指令的數(shù)據(jù)傳送路徑;:DMA方式的數(shù)據(jù)傳送路徑圖8.7兩種不同的數(shù)據(jù)傳送路徑2.幾種不同形式的DMA傳送內(nèi)存外設(shè)DMAC輸出輸入外設(shè)外設(shè)DMAC內(nèi)存內(nèi)存DMAC圖8.8DMA傳送的幾種形式8.3DMA技術(shù)8.3.1DMA控制器的基本功能

(1)能接收I/O接口的DMA請(qǐng)求,并向CPU發(fā)出總線請(qǐng)求信號(hào);

(2)當(dāng)CPU發(fā)出總線回答信號(hào)后,接管對(duì)總線的控制,進(jìn)入DMA傳送過程;

(3)能實(shí)現(xiàn)有效的尋址,即能輸出地址信息并在數(shù)據(jù)傳送過程中自動(dòng)修改地址;

(4)能向存儲(chǔ)器和I/O接口發(fā)出相應(yīng)的讀/寫控制信號(hào);

(5)能控制數(shù)據(jù)傳送的字節(jié)數(shù),控制DMA傳送是否結(jié)束;

(6)在DMA傳送結(jié)束后,能釋放總線給CPU,恢復(fù)CPU對(duì)總線的控制。8.3.2DMA控制器的一般結(jié)構(gòu)一個(gè)單通道DMA控制器的一般結(jié)構(gòu)及其與I/O接口的連接如圖8.9所示。圖8.9的上半部分是I/O接口,下半部分是DMA控制器。計(jì)數(shù)結(jié)束信號(hào)(可作為中斷請(qǐng)求信號(hào))控制寄存器

狀態(tài)寄存器數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器控制寄存器

狀態(tài)寄存器地址寄存器字節(jié)計(jì)數(shù)寄存器數(shù)據(jù)總線控制總線數(shù)據(jù)總線控制總線地址總線地址總線地址譯碼器

DMA控制器DMA請(qǐng)求DMA響應(yīng)中斷請(qǐng)求外設(shè)I/O接口總線回答總線請(qǐng)求圖8.9DMA控制器的一般結(jié)構(gòu)及其與I/O接口的連接8.3.3DMA控制器的工作方式DMA控制器的工作方式通常有“單字節(jié)傳輸方式”、“塊傳輸方式”以及“請(qǐng)求傳輸方式”等。1.單字節(jié)傳輸方式在單字節(jié)傳輸方式下,DMA控制器每次請(qǐng)求總線只傳送一個(gè)字節(jié)數(shù)據(jù),傳送完后即釋放總線控制權(quán)。在此方式下,總線控制權(quán)處于CPU與DMA控制器交替控制之中,其間,總線控制權(quán)經(jīng)過多次交換。2.塊傳輸方式(也稱成組傳輸方式)塊傳輸方式是指DMA控制器每次請(qǐng)求總線即連續(xù)傳送一個(gè)數(shù)據(jù)塊,待整個(gè)數(shù)據(jù)塊全部傳送完成后再釋放總線控制權(quán)。3.請(qǐng)求傳輸方式每傳輸完一個(gè)字節(jié),DMA控制器都要檢測(cè)由I/O接口發(fā)來的“DMA請(qǐng)求”信號(hào)是否仍然有效,如果該信號(hào)仍有效,則繼續(xù)進(jìn)行DMA傳輸;否則,就暫停傳輸,交還總線控制權(quán)給CPU,直至“DMA請(qǐng)求”信號(hào)再次變?yōu)橛行?,?shù)據(jù)塊傳輸則從剛才暫停的那一點(diǎn)繼續(xù)進(jìn)行下去。8.3.4DMA工作過程在DMA方式下,往往傳送的是一個(gè)數(shù)據(jù)塊,但傳送這個(gè)數(shù)據(jù)塊的具體操作方式,可以采用上面介紹的單字節(jié)傳輸方式,也可采用塊傳輸或請(qǐng)求傳輸方式。下面先以從內(nèi)存輸出一個(gè)字節(jié)數(shù)據(jù)到外設(shè)的DMA傳送過程為例,具體說明DMA的操作過程。然后再給出以DMA方式輸入一個(gè)數(shù)據(jù)塊的工作過程。以DMA方式從內(nèi)存輸出一個(gè)字節(jié)數(shù)據(jù)到外設(shè)的具體工作過程如圖8.10中第①~⑨步所示。(6)

內(nèi)存把數(shù)據(jù)送數(shù)據(jù)總線(7)

接口鎖存數(shù)據(jù)內(nèi)存接口DMA控制器I/O設(shè)備CPU和總線控制邏輯HOLDHLDA

(1)

接口準(zhǔn)備就緒,發(fā)DMA請(qǐng)求(2)

發(fā)總線請(qǐng)求(3)

總線允許

(5)DMA響應(yīng)(9)CPU收回總線控制權(quán)(8)DMA

控制器撤銷總線請(qǐng)求(4)DMA控制器把地址送地址總線數(shù)據(jù)總線控制總線地址總線圖8.10以DMA方式輸出一個(gè)字節(jié)數(shù)據(jù)的工作過程若從外設(shè)往內(nèi)存輸入一個(gè)數(shù)據(jù)塊(輸入過程),在單字節(jié)傳輸方式下,其主要工作過程為:(1)I/O接口準(zhǔn)備就緒,向DMA控制器發(fā)“DMA請(qǐng)求”信號(hào);(2)DMA控制器向CPU發(fā)“總線請(qǐng)求”信號(hào);(3)CPU向DMA控制器發(fā)“總線回答”信號(hào);(4)DMA控制器把地址送到地址總線上;(5)DMA控制器向I/O接口發(fā)“DMA響應(yīng)”信號(hào);(6)DMA控制器發(fā)讀I/O接口信號(hào),令I(lǐng)/O接口把數(shù)據(jù)送到數(shù)據(jù)總線上;(7)DMA控制器發(fā)寫存儲(chǔ)器信號(hào),將數(shù)據(jù)寫入由地址總線上的地址所指向的內(nèi)存單元;(8)DMA控制器撤銷總線請(qǐng)求;(9)CPU收回總線控制權(quán);(10)地址寄存器加1;(11)字節(jié)計(jì)數(shù)寄存器減1;(12)如果字節(jié)計(jì)數(shù)寄存器的值不為零,則返回第(1)步,否則結(jié)束。8.4可編程DMA控制器8237Intel8237是一種功能很強(qiáng)的可編程DMA控制器,目前仍在微機(jī)系統(tǒng)中廣泛應(yīng)用。采用5MHz時(shí)鐘時(shí),其傳輸速率可達(dá)1.6MB/s;一

溫馨提示

  • 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論