




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
DMATrainning 2007 8 15 一 基本概念1 DirectMemoryAccess 直接存儲器存取 這是指一種高速的數(shù)據(jù)傳輸操作 允許在外部設(shè)備和存儲器之間直接讀寫數(shù)據(jù) 既不通過CPU 也不需要CPU干預(yù) 整個數(shù)據(jù)傳輸操作在一個稱為 DMA控制器 的控制下進(jìn)行的 CPU除了在數(shù)據(jù)傳輸開始和結(jié)束時(shí)做一點(diǎn)處理外 在傳輸過程中CPU可以進(jìn)行其他的工作 這樣 在大部分時(shí)間里 CPU和輸入輸出都處于并行操作 因此 使整個計(jì)算機(jī)系統(tǒng)的效率大大提高 DMA技術(shù)中 數(shù)據(jù)的傳送是在DMA控制器 DMAC 的控制下進(jìn)行的 2 DMAC傳送數(shù)據(jù)的三個階段 a 傳送前的預(yù)處理b 數(shù)據(jù)傳送c 傳送結(jié)束處理3 DMAC有兩種工作狀態(tài) 主動工作狀態(tài) 有效周期 和被動工作狀態(tài) 空閑周期 4 DMA控制器對總線的占用方式有a 獨(dú)占方式b 周期挪用方式 三 基本的DMA控制器1 DMA控制器的基本組成一個DMA控制器 實(shí)際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路 這個接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成 習(xí)慣上將DMA方式的接口電路稱為DMA控制器 下頁圖示出了一個最簡單的DMA控制器組成示意圖 一個最簡單的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í) 每傳送一個字 字計(jì)數(shù)器就加 1 當(dāng)計(jì)數(shù)器溢出即最高位產(chǎn)生進(jìn)位時(shí) 表示這批數(shù)據(jù)傳送完畢 于是引起DMA控制器向CPU發(fā)中斷信號 3 數(shù)據(jù)緩沖寄存器用于暫存每次傳送的數(shù)據(jù) 一個字 當(dāng)輸入時(shí) 由設(shè)備 如磁盤 送往數(shù)據(jù)緩沖寄存器 再由緩沖寄存器通過數(shù)據(jù)總線送到內(nèi)存 反之 輸出時(shí) 由內(nèi)存通過數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器 然后再送到設(shè)備 4 DMA請求 標(biāo)志每當(dāng)設(shè)備準(zhǔn)備好一個數(shù)據(jù)字后給出一個控制信號 使 DMA請求 標(biāo)志置 1 該標(biāo)志置位后向 控制 狀態(tài) 邏輯發(fā)出DMA請求 后者又向CPU發(fā)出總線使用權(quán)的請求 HOLD CPU響應(yīng)此請求后發(fā)回響應(yīng)信號HLDA 控制 狀態(tài) 邏輯接收此信號后發(fā)出DMA響應(yīng)信號 使 DMA請求 標(biāo)志復(fù)位 為交換下一個字做好準(zhǔn)備 5 控制 狀態(tài) 邏輯由控制和時(shí)序電路以及狀態(tài)標(biāo)志等組成 用于修改內(nèi)存地址計(jì)數(shù)器和字計(jì)數(shù)器 指定傳送類型 輸入或輸出 并對 DMA請求 信號和CPU響應(yīng)信號進(jìn)行協(xié)調(diào)和同步 6 中斷機(jī)構(gòu)當(dāng)字計(jì)數(shù)器溢出時(shí) 為0時(shí) 意味著一組數(shù)據(jù)交換完畢 由溢出信號觸發(fā)中斷機(jī)構(gòu) 向CPU提出中斷報(bào)告 這里的中斷與上一節(jié)介紹的I O中斷所采用的技術(shù)相同 但中斷的目的不同 前面是為了數(shù)據(jù)的輸入或輸出 而這里是為了報(bào)告一組數(shù)據(jù)傳送結(jié)束 因此它們是I O系統(tǒng)中不同的中斷事件 2 DMA數(shù)據(jù)傳送過程 DMA的數(shù)據(jù)塊傳送過程可分為三個階段 傳送前預(yù)處理 正式傳送 傳送后處理 預(yù)處理由CPU執(zhí)行幾條輸入輸出指令 測試設(shè)備狀態(tài) 向DMA控制器的設(shè)備地址寄存器中送入設(shè)備號并啟動設(shè)備 向內(nèi)存地址計(jì)數(shù)器中送入起始地址 向字計(jì)數(shù)器中送入交換的數(shù)據(jù)字個數(shù) 在這些工作完成后 CPU繼續(xù)執(zhí)行原來的主程序 正式傳送當(dāng)外設(shè)準(zhǔn)備好發(fā)送數(shù)據(jù) 輸入 或接受數(shù)據(jù) 輸出 時(shí) 它發(fā)出DMA請求 由DMA控制器向CPU發(fā)出總線使用權(quán)的請求 HOLD 下頁圖示出了停止CPU訪內(nèi)方式的DMA傳送數(shù)據(jù)的流程圖 當(dāng)外圍設(shè)備發(fā)出DMA請求時(shí) CPU在本機(jī)器周期執(zhí)行結(jié)束后響應(yīng)該請求 并使CPU的總線驅(qū)動器處于第二態(tài) 高阻狀態(tài) 之后 CPU與系統(tǒng)總線相脫離 而DMA控制器接管數(shù)據(jù)總線與地址總線的控制 并向內(nèi)存提供地址 于是 在內(nèi)存和外圍設(shè)備之間進(jìn)行數(shù)據(jù)交換 每交換一個字 則地址計(jì)數(shù)器和字計(jì)數(shù)器加 l 當(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ù) 一次一個字或一個字節(jié) 傳向內(nèi)存 當(dāng)進(jìn)行輸出操作時(shí) 內(nèi)存的數(shù)據(jù)傳向外圍設(shè)備 后處理一旦DMA的中斷請求得到響應(yīng) CPU停止主程序的執(zhí)行 轉(zhuǎn)去執(zhí)行中斷服務(wù)程序做一些DMA的結(jié)束處理工作 這些工作包括校驗(yàn)送入內(nèi)存的數(shù)據(jù)是否正確 決定繼續(xù)用DMA方式傳送下去 還是結(jié)束傳送 測試在傳送過程中是否發(fā)生了錯誤等等 基本DMA控制器與系統(tǒng)的連接方式 1 公用的DMA請求方式 2 獨(dú)立的DMA請求方式 這與中斷方式類似 四 選擇型和多路型DMA控制器前面介紹的是最簡單的DMA控制器 一個控制器只控制一個I O設(shè)備 實(shí)際中經(jīng)常采用的是選擇型DMA控制器和多路型DMA控制器 它們已經(jīng)被做成集成電路片子 1 選擇型DMA控制器下頁圖是選擇型DMA控制器的邏輯框圖 它在物理上可以連接多個設(shè)備 而在邏輯上只允許接 個設(shè)備 換句話說 在某一段時(shí)間內(nèi)只能為一個設(shè)備服務(wù) 選擇型DMA控制器工作原理與前面的簡單DMA控制器基本相同 除了前面講到的基本邏輯部件外 還有一個設(shè)備號寄存器 數(shù)據(jù)傳送是以數(shù)據(jù)塊為單位進(jìn)行的 在每個數(shù)據(jù)塊傳送之前的預(yù)置階段 除了用程序中I O指令給出數(shù)據(jù)塊的傳送個數(shù) 起始地址 操作命令外 還要給出所選擇的設(shè)備號 從預(yù)置開始 一直到這個數(shù)據(jù)塊傳送結(jié)束 DMA控制器只為所選設(shè)備服務(wù) 下 次預(yù)置再根據(jù)I O指令指出的設(shè)備號 為另 選擇的設(shè)備服務(wù) 顯然 選擇型DMA控制器相當(dāng)于一個邏輯開關(guān) 根據(jù)I O指令來控制此開關(guān)與某個設(shè)備連接 選擇型DMA控制器只增加少量硬件達(dá)到了為多個外圍設(shè)備服務(wù)的目的 它特別適合數(shù)據(jù)傳輸串很高以至接近內(nèi)存存取速度的設(shè)備 在很快地傳送完一個數(shù)據(jù)塊后 控制器又可為其他設(shè)備服務(wù) 2 多路型DMA控制器選擇型DMA控制器不適用于慢速設(shè)備 但是多路型DMA控制器卻適合于同時(shí)為多個慢速外圍設(shè)備服務(wù) 下頁圖 a 是鏈?zhǔn)蕉嗦沸虳MA控制器 而 b 是獨(dú)立請求方式多路型DMA控制器 多路型DMA不僅在物理上可以連接多個外圍設(shè)備 而且在邏輯上也允許這些外圍設(shè)備同時(shí)一工作 各設(shè)備以字節(jié)交叉方式通過DMA控制器進(jìn)行數(shù)據(jù)傳送 當(dāng)某個外圍設(shè)備請求DMA服務(wù)時(shí) 操作過程如下 1 DMA控制器接到設(shè)備發(fā)出的DMA請求時(shí) 將請求轉(zhuǎn)送到CPU 2 CPU在適當(dāng)?shù)臅r(shí)刻響應(yīng)DMA請求 若CPU不需要占用總線則繼續(xù)執(zhí)行指令 若CPU需要占用總線 則CPU進(jìn)入等待狀態(tài) 3 DMA控制器接到CPU的響應(yīng)信號后 進(jìn)行以下工作 對現(xiàn)有DMA請求中優(yōu)先權(quán)最高的請求給予DMA響應(yīng) 選擇相應(yīng)的地址寄存器的內(nèi)容驅(qū)動地址總線 根據(jù)所選設(shè)備操作寄存器的內(nèi)容 向總線發(fā)讀 寫信號 外圍設(shè)備向數(shù)據(jù)總線傳送數(shù)據(jù) 或從數(shù)據(jù)總線接收數(shù)據(jù) 每個字節(jié)傳送完畢后 DMA控制器使相應(yīng)的地址寄存器和長度寄存器加 1 或減 1 以上是一個DMA請求的過程 在一批數(shù)據(jù)傳送過程中 要多次重復(fù)上述過程 直到外圍設(shè)備表示一個數(shù)據(jù)塊已傳送完畢 或該設(shè)備的長度控制器判定傳送長度已滿 例 如圖所示為8237DMA的組成示意圖根據(jù)圖中所示 請簡單分析其與外設(shè) 如軟盤 工作過程原理 解 CPU和外設(shè) 如軟盤 控制器之間的接口電路包括DMA控制和總線控制兩部分 DMA地址寄存器存放被尋址的主存首地址 字節(jié)計(jì)數(shù)寄存器存放本次DMA傳送的字節(jié)數(shù) 操作方式寄存器中包含工作方式 讀 寫 校驗(yàn) 等信息 狀態(tài)寄存器 DMA傳輸前 CPU對8237進(jìn)行初始化 將數(shù)據(jù)在主存中的起始地址 數(shù)據(jù)字節(jié)個數(shù) 工作方式等參數(shù)送入8237相應(yīng)的寄存器中 然后才允許外設(shè)控制器向8237發(fā)出DMA傳輸請求信號DRQ 8237接收到 DRQ信號后 立即發(fā)HRQ信號給總數(shù)控制線路 請求總線控制權(quán) CPU在識別到HRQ信號 完成當(dāng)前總線周期后 發(fā)出HLDA響應(yīng)信號 并放棄總線控制權(quán) 此時(shí)8237向軟盤控制器發(fā)出DACK回答信號 通知軟盤控制器開始DMA傳輸 并發(fā)出讀 寫控制信號 MEMR MEMW IOR IOW 以便軟盤控制器從主存被尋址的單元讀取一個字節(jié)或
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于能量尺度方法的軟土蠕變特性研究
- 大單元教學(xué)在農(nóng)村初中英語閱讀課中的應(yīng)用研究
- 印度學(xué)前教育體系解析
- 體檢健康教育核心要點(diǎn)
- 呼吸內(nèi)科疑難病例討論
- 腸內(nèi)營養(yǎng)護(hù)理外科
- 健康本領(lǐng)的多維解析
- 《社會財(cái)務(wù)共享服務(wù)實(shí)務(wù)》課件-增值稅的計(jì)算與申報(bào)
- 預(yù)防心理健康教育課件
- 中心校校園安全管理培訓(xùn)
- 2025區(qū)域型變電站智能巡視系統(tǒng)技術(shù)規(guī)范
- 汛期公交安全課件
- 環(huán)境影響管理方案(3篇)
- 財(cái)務(wù)報(bào)表編制與審核合同模板
- 上海閔行區(qū)教育系統(tǒng)招聘實(shí)驗(yàn)員考試真題2024
- 建設(shè)部建設(shè)工程重大質(zhì)量安全事故應(yīng)急預(yù)案
- 2025年中航油招聘筆試參考題庫附帶答案詳解
- 2024年中國中高端電子鋁箔行業(yè)市場調(diào)查報(bào)告
- 2022版體育與健康課程標(biāo)準(zhǔn)
- 《陸上風(fēng)電場工程概算定額》NBT 31010-2019
- 紅星水庫除險(xiǎn)加固工程初步設(shè)計(jì)報(bào)告
評論
0/150
提交評論