DMA-控制器介紹課件_第1頁
DMA-控制器介紹課件_第2頁
DMA-控制器介紹課件_第3頁
DMA-控制器介紹課件_第4頁
DMA-控制器介紹課件_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

DMATrainning

2007.8.15

1.DMATrainning1.一.基本概念

1.DirectMemoryAccess(直接存儲(chǔ)器存?。?。這是指一種高速的數(shù)據(jù)傳輸操作,允許在外部設(shè)備和存儲(chǔ)器之間直接讀寫數(shù)據(jù),既不通過CPU,也不需要CPU干預(yù)。整個(gè)數(shù)據(jù)傳輸操作在一個(gè)稱為“DMA控制器”的控制下進(jìn)行的。CPU除了在數(shù)據(jù)傳輸開始和結(jié)束時(shí)做一點(diǎn)處理外,在傳輸過程中CPU可以進(jìn)行其他的工作。這樣,在大部分時(shí)間里,CPU和輸入輸出都處于并行操作。因此,使整個(gè)計(jì)算機(jī)系統(tǒng)的效率大大提高。

DMA技術(shù)中,數(shù)據(jù)的傳送是在DMA控制器(DMAC)的控制下進(jìn)行的。

2.DMAC傳送數(shù)據(jù)的三個(gè)階段:a.傳送前的預(yù)處理

b.數(shù)據(jù)傳送

c.傳送結(jié)束處理3.DMAC有兩種工作狀態(tài):主動(dòng)工作狀態(tài)(有效周期)和被動(dòng)工作狀態(tài)(空閑周期)。

4.DMA控制器對(duì)總線的占用方式有a.獨(dú)占方式b.周期挪用方式。2.一.基本概念2.三、基本的DMA控制器1.DMA控制器的基本組成一個(gè)DMA控制器,實(shí)際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成.習(xí)慣上將DMA方式的接口電路稱為DMA控制器。下頁圖示出了一個(gè)最簡單的DMA控制器組成示意圖。一個(gè)最簡單的DMA控制器由以下邏輯部件組成:

(1)內(nèi)存地址計(jì)數(shù)器用于存放內(nèi)存中要交換的數(shù)據(jù)的地址。在DMA傳送前,須通過程序?qū)?shù)據(jù)在內(nèi)存中的起始位置(首地址)送到內(nèi)存地址計(jì)數(shù)器。而當(dāng)DMA傳送時(shí),每交換一次數(shù)據(jù),將地址計(jì)數(shù)器加“1”,從而以增量方式給出內(nèi)存中要交換的一批數(shù)據(jù)的地址。(2)字計(jì)數(shù)器用于記錄傳送數(shù)據(jù)塊的長度(多少字?jǐn)?shù))。其內(nèi)容也是在數(shù)據(jù)傳送之前由程序預(yù)置,交換的字?jǐn)?shù)通常以補(bǔ)碼形式表示。在DMA傳送時(shí),每傳送一個(gè)字,字計(jì)數(shù)器就加“1”,當(dāng)計(jì)數(shù)器溢出即最高位產(chǎn)生進(jìn)位時(shí),表示這批數(shù)據(jù)傳送完畢,于是引起DMA控制器向CPU發(fā)中斷信號(hào)。3.三、基本的DMA控制器3.4.4.(3)數(shù)據(jù)緩沖寄存器

用于暫存每次傳送的數(shù)據(jù)(一個(gè)字)。當(dāng)輸入時(shí),由設(shè)備(如磁盤)送往數(shù)據(jù)緩沖寄存器,再由緩沖寄存器通過數(shù)據(jù)總線送到內(nèi)存。反之,輸出時(shí),由內(nèi)存通過數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到設(shè)備。(4)“DMA請(qǐng)求”標(biāo)志每當(dāng)設(shè)備準(zhǔn)備好一個(gè)數(shù)據(jù)字后給出一個(gè)控制信號(hào),使“DMA請(qǐng)求”標(biāo)志置“1”。該標(biāo)志置位后向“控制/狀態(tài)”邏輯發(fā)出DMA請(qǐng)求,后者又向CPU發(fā)出總線使用權(quán)的請(qǐng)求(HOLD),CPU響應(yīng)此請(qǐng)求后發(fā)回響應(yīng)信號(hào)HLDA,“控制/狀態(tài)”邏輯接收此信號(hào)后發(fā)出DMA響應(yīng)信號(hào),使“DMA請(qǐng)求”標(biāo)志復(fù)位,為交換下一個(gè)字做好準(zhǔn)備。(5)“控制/狀態(tài)”邏輯由控制和時(shí)序電路以及狀態(tài)標(biāo)志等組成,用于修改內(nèi)存地址計(jì)數(shù)器和字計(jì)數(shù)器,指定傳送類型(輸入或輸出),并對(duì)“DMA請(qǐng)求”信號(hào)和CPU響應(yīng)信號(hào)進(jìn)行協(xié)調(diào)和同步。(6)中斷機(jī)構(gòu)當(dāng)字計(jì)數(shù)器溢出時(shí)(為0時(shí)),意味著一組數(shù)據(jù)交換完畢,由溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷報(bào)告。這里的中斷與上一節(jié)介紹的I/O中斷所采用的技術(shù)相同,但中斷的目的不同,前面是為了數(shù)據(jù)的輸入或輸出,而這里是為了報(bào)告一組數(shù)據(jù)傳送結(jié)束。因此它們是I/O系統(tǒng)中不同的中斷事件。5.(3)數(shù)據(jù)緩沖寄存器用于暫存每次傳送的數(shù)據(jù)(一個(gè)字)。當(dāng)輸2.DMA數(shù)據(jù)傳送過程

DMA的數(shù)據(jù)塊傳送過程可分為三個(gè)階段:傳送前預(yù)處理;正式傳送;傳送后處理。預(yù)處理由CPU執(zhí)行幾條輸入輸出指令,測試設(shè)備狀態(tài),向DMA控制器的設(shè)備地址寄存器中送入設(shè)備號(hào)并啟動(dòng)設(shè)備,向內(nèi)存地址計(jì)數(shù)器中送入起始地址,向字計(jì)數(shù)器中送入交換的數(shù)據(jù)字個(gè)數(shù)。在這些工作完成后,CPU繼續(xù)執(zhí)行原來的主程序。正式傳送當(dāng)外設(shè)準(zhǔn)備好發(fā)送數(shù)據(jù)(輸入)或接受數(shù)據(jù)(輸出)時(shí),它發(fā)出DMA請(qǐng)求,由DMA控制器向CPU發(fā)出總線使用權(quán)的請(qǐng)求(HOLD)。下頁圖示出了停止CPU訪內(nèi)方式的DMA傳送數(shù)據(jù)的流程圖。當(dāng)外圍設(shè)備發(fā)出DMA請(qǐng)求時(shí),CPU在本機(jī)器周期執(zhí)行結(jié)束后響應(yīng)該請(qǐng)求,并使CPU的總線驅(qū)動(dòng)器處于第二態(tài)(高阻狀態(tài)).之后,CPU與系統(tǒng)總線相脫離,而DMA控制器接管數(shù)據(jù)總線與地址總線的控制,并向內(nèi)存提供地址.6.2.DMA數(shù)據(jù)傳送過程6.7.7.

于是,在內(nèi)存和外圍設(shè)備之間進(jìn)行數(shù)據(jù)交換.每交換一個(gè)字,則地址計(jì)數(shù)器和字計(jì)數(shù)器加“l(fā)”,當(dāng)計(jì)數(shù)值到達(dá)零時(shí),DMA操作結(jié)束,DMA控制器向CPU提出中斷報(bào)告。DMA的數(shù)據(jù)傳送是以數(shù)據(jù)塊為基本單位進(jìn)行的,因此,每次DMA控制器占用總線后,無論是數(shù)據(jù)輸入操作,還是輸出操作,都是通過循環(huán)來實(shí)現(xiàn)的。當(dāng)進(jìn)行輸入操作時(shí),外圍設(shè)備的數(shù)據(jù)(一次一個(gè)字或一個(gè)字節(jié))傳向內(nèi)存;當(dāng)進(jìn)行輸出操作時(shí),內(nèi)存的數(shù)據(jù)傳向外圍設(shè)備。后處理一旦DMA的中斷請(qǐng)求得到響應(yīng),CPU停止主程序的執(zhí)行,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序做一些DMA的結(jié)束處理工作。這些工作包括校驗(yàn)送入內(nèi)存的數(shù)據(jù)是否正確;決定繼續(xù)用DMA方式傳送下去,還是結(jié)束傳送;測試在傳送過程中是否發(fā)生了錯(cuò)誤等等?;綝MA控制器與系統(tǒng)的連接方式:(1)公用的DMA請(qǐng)求方式;(2)獨(dú)立的DMA請(qǐng)求方式,這與中斷方式類似。8.于是,在內(nèi)存和外圍設(shè)備之間進(jìn)行數(shù)據(jù)交換.每交換一個(gè)字,四、選擇型和多路型DMA控制器前面介紹的是最簡單的DMA控制器,一個(gè)控制器只控制一個(gè)I/O設(shè)備.實(shí)際中經(jīng)常采用的是選擇型DMA控制器和多路型DMA控制器,它們已經(jīng)被做成集成電路片子.1.選擇型DMA控制器下頁圖是選擇型DMA控制器的邏輯框圖,它在物理上可以連接多個(gè)設(shè)備,而在邏輯上只允許接—個(gè)設(shè)備.換句話說,在某一段時(shí)間內(nèi)只能為一個(gè)設(shè)備服務(wù).選擇型DMA控制器工作原理與前面的簡單DMA控制器基本相同.除了前面講到的基本邏輯部件外,還有一個(gè)設(shè)備號(hào)寄存器.?dāng)?shù)據(jù)傳送是以數(shù)據(jù)塊為單位進(jìn)行的,在每個(gè)數(shù)據(jù)塊傳送之前的預(yù)置階段,除了用程序中I/O指令給出數(shù)據(jù)塊的傳送個(gè)數(shù)、起始地址、操作命令外,還要給出所選擇的設(shè)備號(hào).從預(yù)置開始,一直到這個(gè)數(shù)據(jù)塊傳送結(jié)束,DMA控制器只為所選設(shè)備服務(wù).下—次預(yù)置再根據(jù)I/O指令指出的設(shè)備號(hào),為另—選擇的設(shè)備服務(wù).9.四、選擇型和多路型DMA控制器9.10.10.顯然,選擇型DMA控制器相當(dāng)于一個(gè)邏輯開關(guān),根據(jù)I/O指令來控制此開關(guān)與某個(gè)設(shè)備連接.選擇型DMA控制器只增加少量硬件達(dá)到了為多個(gè)外圍設(shè)備服務(wù)的目的,它特別適合數(shù)據(jù)傳輸串很高以至接近內(nèi)存存取速度的設(shè)備.在很快地傳送完一個(gè)數(shù)據(jù)塊后,控制器又可為其他設(shè)備服務(wù).2.多路型DMA控制器選擇型DMA控制器不適用于慢速設(shè)備.但是多路型DMA控制器卻適合于同時(shí)為多個(gè)慢速外圍設(shè)備服務(wù).下頁圖(a)是鏈?zhǔn)蕉嗦沸虳MA控制器,而(b)是獨(dú)立請(qǐng)求方式多路型DMA控制器.多路型DMA不僅在物理上可以連接多個(gè)外圍設(shè)備,而且在邏輯上也允許這些外圍設(shè)備同時(shí)一工作,各設(shè)備以字節(jié)交叉方式通過DMA控制器進(jìn)行數(shù)據(jù)傳送.11.顯然,選擇型DMA控制器相當(dāng)于一個(gè)邏輯開關(guān),根據(jù)I/O

12.12.

當(dāng)某個(gè)外圍設(shè)備請(qǐng)求DMA服務(wù)時(shí),操作過程如下:

(1)DMA控制器接到設(shè)備發(fā)出的DMA請(qǐng)求時(shí),將請(qǐng)求轉(zhuǎn)送到CPU。(2)CPU在適當(dāng)?shù)臅r(shí)刻響應(yīng)DMA請(qǐng)求。若CPU不需要占用總線則繼續(xù)執(zhí)行指令;若CPU需要占用總線,則CPU進(jìn)入等待狀態(tài)。(3)DMA控制器接到CPU的響應(yīng)信號(hào)后,進(jìn)行以下工作:①對(duì)現(xiàn)有DMA請(qǐng)求中優(yōu)先權(quán)最高的請(qǐng)求給予DMA響應(yīng);②選擇相應(yīng)的地址寄存器的內(nèi)容驅(qū)動(dòng)地址總線;③根據(jù)所選設(shè)備操作寄存器的內(nèi)容,向總線發(fā)讀、寫信號(hào);④外圍設(shè)備向數(shù)據(jù)總線傳送數(shù)據(jù),或從數(shù)據(jù)總線接收數(shù)據(jù);

⑤每個(gè)字節(jié)傳送完畢后,DMA控制器使相應(yīng)的地址寄存器和長度寄存器加“1”或減“1”。13.13.

以上是一個(gè)DMA請(qǐng)求的過程,在一批數(shù)據(jù)傳送過程中,要多次重復(fù)上述過程,直到外圍設(shè)備表示一個(gè)數(shù)據(jù)塊已傳送完畢,或該設(shè)備的長度控制器判定傳送長度已滿?!纠咳鐖D所示為8237DMA的組成示意圖根據(jù)圖中所示,請(qǐng)簡單分析其與外設(shè)(如軟盤)工作過程原理。【解】

CPU和外設(shè)(如軟盤)控制器之間的接口電路包括DMA控制和總線控制兩部分。DMA地址寄存器存放被尋址的主存首地址,字節(jié)計(jì)數(shù)寄存器存放本次DMA傳送的字節(jié)數(shù)。操作方式寄存器中包含工作方式(讀、寫、校驗(yàn))等信息(狀態(tài)寄存器)。14.以上是一個(gè)DMA請(qǐng)求的過程,在一批數(shù)據(jù)傳送過程中,

DMA傳輸前,CPU對(duì)8237進(jìn)行初始化,將數(shù)據(jù)在主存中的起始地址、數(shù)據(jù)字節(jié)個(gè)數(shù)、工作方式等參數(shù)送入8237相應(yīng)的寄存器中。然后才允許外設(shè)控制器向8237發(fā)出DMA傳輸請(qǐng)求信號(hào)DRQ。8237接收到DRQ信號(hào)后,立即發(fā)HRQ信號(hào)給總數(shù)控制線路,請(qǐng)求總線控制權(quán)。CPU在識(shí)別到HRQ信號(hào),完成當(dāng)前總線周期后,發(fā)出HLDA響應(yīng)信號(hào),并放棄總線控制權(quán)。此時(shí)8237向軟盤控制器發(fā)出DACK回答信號(hào),通知軟盤控制器開始DMA傳輸,并發(fā)出讀/寫控制信號(hào)(MEMR/MEMW、IOR/IOW),以便軟盤控制器從主存被尋址的單元讀取一個(gè)字節(jié)或?qū)懭胍粋€(gè)字節(jié)。只要外設(shè)(如軟盤)控制器保持對(duì)DMA的請(qǐng)求,8257將保持對(duì)總線的控制,并順序地重復(fù)傳送,直到被指定的數(shù)據(jù)塊傳送完畢,通知外設(shè)(如軟盤)控制器,取消DMA請(qǐng)求,并使HRQ為無效

溫馨提示

  • 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)論