【正文】
文 16 在片內(nèi)存儲(chǔ)器、片內(nèi)外設(shè)或外部器件之間進(jìn)行數(shù)據(jù)傳輸。國內(nèi)有人研究利用 DMA 芯片或 DMA 接口電路進(jìn)行高速數(shù)據(jù)采集。由于通道程序可以設(shè)置多個(gè)有序任務(wù),DMA 通道可以很方便地實(shí)現(xiàn)對(duì)多個(gè)設(shè)備的控制 [20]。 DMA通道接收到 I/O設(shè)備提出的請(qǐng)求或管理程序提供的內(nèi)部請(qǐng)求后,開始讀取通道程序。由通道技術(shù)發(fā)展起來的通道處理機(jī)可以看作是一臺(tái)能夠執(zhí)行有限輸入輸出指令,并且能被多臺(tái)外圍設(shè)備共享的小型 DMA 專用處理機(jī)。 DMA 通 道化技術(shù)就是讓 DMA 為某個(gè)或某些特定的設(shè)備服務(wù),提高這些設(shè)備 (往往是高速串行設(shè)備、存儲(chǔ)器 )的智能化,減少 CPU 的干涉。DMA 也可以操作鏈表,實(shí)現(xiàn)和鏈表生成者的交互。目前國外的 DMA 技術(shù)己經(jīng)逐漸實(shí)現(xiàn)數(shù)據(jù) 交換的智能化和通道化。多路型 DMA 控制器分為鏈?zhǔn)蕉嗦沸?DMA 控制器及獨(dú)立請(qǐng)求方式多路型 DMA 控制器。 (2)CPU 在適當(dāng)?shù)臅r(shí)刻響應(yīng) DMA 請(qǐng)求。 圖 選擇型 DMA 控制器的邏輯框圖 多路型 DMA 控制器 與選擇型 DMA 方式相比,多路型 DMA 不僅在物理上可以連接多個(gè)外圍設(shè)備,而且在邏輯上也允許這些外圍設(shè)備同時(shí) 工作,各個(gè)設(shè)備以字節(jié)交叉方式通過 DMA 控制器進(jìn)行數(shù)據(jù)傳送。從預(yù)置開始,一直到這個(gè)數(shù)據(jù)塊傳送結(jié)束, DMA 控制器只為所選的設(shè)備提供服務(wù)。換句話說,在某一個(gè)時(shí)間段內(nèi)只能為一個(gè)設(shè)備提供服務(wù)。這種傳送方式又稱為 “通行的 DMA”方式,其來由是這種 DMA 傳送對(duì) CPU來說,如同透明的玻璃一般,沒有任何感覺或者影響。 CPU和 DMA 控制器各自有自己的訪內(nèi)地址寄存器、數(shù)據(jù)寄存器和讀 /寫信號(hào)等控制寄存器。因此,周期挪用的方法適用于 I/O 設(shè)備讀寫周期大于內(nèi)存存儲(chǔ)周期的情況 [16]。這是因?yàn)椋鈬O(shè)備傳送兩個(gè)數(shù)據(jù)之間的間隔一般總是大于內(nèi)存存儲(chǔ)周期,即使高速 I/O 設(shè)備也是如此 [16]。在一批數(shù)據(jù)傳送完畢后, DMA理工大學(xué)學(xué)士學(xué)位論文 11 控制器通知 CPU可以使用內(nèi)存,并把總線控制權(quán)交還給 CPU。此時(shí) DMAC 接管總線控制權(quán),然后由它向 I/O 設(shè)備發(fā)出 DMA 應(yīng)答信號(hào)。由 CPU 對(duì) DMAC 編程,確定通道選擇、DMA 操作類型及方式、內(nèi)存首址、地址傳送方向、傳送字節(jié)數(shù);傳送完畢讀 DMAC的狀態(tài) [18][21]。此時(shí),它通過總線向存儲(chǔ)或外設(shè)發(fā)出地址和讀寫信號(hào),以控制兩存儲(chǔ)實(shí)體 (存儲(chǔ)器與外設(shè) )間的數(shù)據(jù)傳送。但在它取得總線控制權(quán)之前,又與其他 I/O 接口芯片一樣受 CPU 的控制。 CPU收到此信號(hào),一方面使 HLDA 無效,另一方面又重新開始控制總線,實(shí)現(xiàn)正常取指令、分析指令、執(zhí)行指令的操作。 CPU的響應(yīng)包括兩個(gè)方面:一方面, CPU將控制總線、數(shù)據(jù)總線和地址總線浮空,即放棄對(duì)這些總線的控制權(quán);另一方面, CPU將有效的 HLDA 信號(hào)加到 DMAC 上,用此來通知 DMAC, CPU已經(jīng)放棄了總線的控制權(quán)。其原理如圖 所示 [13][15]。其原理如圖 所示。其原理如圖 所示。 DMA 控制器的傳送方式 (1)連續(xù)傳送 (塊傳送 ): DMAC 申請(qǐng)到總線后,將一塊數(shù)據(jù)傳送完后才釋放總線,而不管中間 DREQ 是否有效。 (4)“DMA請(qǐng)求 ”標(biāo)志:每當(dāng)設(shè)備準(zhǔn)備好一個(gè)數(shù)據(jù)字后給出一個(gè)控制信號(hào),使 “DMA 理工大學(xué)學(xué)士學(xué)位論文 6 請(qǐng)求 ”標(biāo)志置 “1”。當(dāng)計(jì)數(shù)器溢出即最高位產(chǎn)生進(jìn)位時(shí),表示這批數(shù)據(jù)傳送完畢,于是引起 DMA 控制器向 CPU發(fā)出中斷信號(hào)。而當(dāng) DMA 傳送時(shí),每交換一次數(shù)據(jù),將地址計(jì)數(shù)器加 “1”,從而以增量方式給出內(nèi)存中要交換的一批數(shù)據(jù)的地址。習(xí)慣上將 DMA 方式的接口電路稱為 DMA 控制器。 DMAC 內(nèi)部必須有時(shí)序和讀寫控制邏輯 [7][8]。同時(shí),根據(jù)技術(shù)要求確定 DMA 控制器的設(shè)計(jì)方案 (頂層設(shè)計(jì) ),借助于硬件描述語言 Verilog HDL 建立 DMA 控制器的行為模型。 篇章結(jié)構(gòu) 本文共分為 四 個(gè)部分,內(nèi)容如下: 第一章主要分析了 DMA 的研究的背景以及課題的重要意義,并簡要介紹了 DMA控制器的發(fā)展歷程和趨勢(shì),同時(shí)闡明了 DMA 的原理,最后介紹了本文所做的工作和理工大學(xué)學(xué)士學(xué)位論文 3 主要內(nèi)容。 本文所做的工作及主要內(nèi)容 本文根據(jù)當(dāng)前電子系統(tǒng)要求數(shù)據(jù)傳輸量大,性能要求高等特點(diǎn),以 Verilog 為硬件描述語言和可編程邏輯器件 (FPGA)為技術(shù)支撐,設(shè)計(jì)了一個(gè)基于 Verilog 語言的 DMA控制器,并對(duì)其相應(yīng)程序進(jìn)行仿真。一個(gè) DMA 通道的建立是由寫入一組內(nèi)存緩沖區(qū)參數(shù) 寄存器 來完成的。 TI 公司 TMSC6000 系列 DSP 中 DMA 控制器有 4 個(gè)通道和一個(gè)支持 HPI 訪問的輔助通道,每個(gè)通道都有 5 個(gè)通道寄存器還有一個(gè)全局輔助控制寄存器。根據(jù)體系結(jié)構(gòu)的變化以及系統(tǒng)應(yīng)用的需求, DMA控制器設(shè)計(jì)時(shí)在必備的目標(biāo)起始地址、單元計(jì)數(shù)和變址模式基礎(chǔ)上可添加額外 的參數(shù)設(shè)置,使得數(shù)據(jù)傳輸更加靈活。 DMA 控制器國內(nèi)外發(fā)展?fàn)顩r 自 DMA 技術(shù)出現(xiàn)以來, DMA 控制器在計(jì)算機(jī)系統(tǒng)中獲得了極大的應(yīng)用。這種傳送方式是不經(jīng)過 CPU 干預(yù),直接在外設(shè)與內(nèi)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳送的方式。在中斷方式下,每次實(shí)現(xiàn)一次數(shù)據(jù)傳送, CPU都要進(jìn)行轉(zhuǎn)入中斷服務(wù)子程序、保護(hù)斷點(diǎn)、現(xiàn)場保護(hù)、恢復(fù)現(xiàn)場、返回主程序等操作。這兩種方式都是在 CPU 的控制下,通過 CPU 執(zhí)行指令來完成的。 49 結(jié) 論 37 AGU模塊的 Sti 及仿真 26 理工大學(xué)學(xué)士學(xué)位論文 IV 全電路的行為級(jí)描述 23 狀態(tài)控制器模塊的行為級(jí)設(shè)計(jì)描述 20 地址產(chǎn)生器模塊的行為級(jí)設(shè)計(jì)描述 20 數(shù)據(jù)寄存器的行為級(jí)描述 19 功能模塊的行為級(jí)設(shè)計(jì)及 VERILOG HDL 描述 10 選擇型和多路型 DMA 控制器 10 DMA 操作的基本方法 4 基本的 DMA 控制器 2 篇章結(jié)構(gòu) 關(guān)鍵詞: DMA 控制器 ; Verilog; Modelsim;仿真 理工大學(xué)學(xué)士學(xué)位論文 II Abstract DMA is a direct memory access mode, namely (Direct Memory Access) the abbreviation, between the memory and I/O devices transmit data over the DMA controller (DMAC) under management directly, without passing through the CPU. DMA is suitable for high speed to transmit data. The DMA controller to the memory address and control signals, modify address, counting on the transfer of the word, and in order to interrupt the report to CPU transfer operation. The main advantages of the DMA method is fast transmission speed. Because CPU does not participate in the transfer operation, thus eliminating the CPC instruction fetch, access, send a few operation. At present, due to the large scale integrated circuit technology development, the direct production of DMA controller LSI many manufacturers, although the DMA controller plexity almost close to CPU, but it is very easy to use. In this paper, the design of DMA controller based on Verilog HDL, using the TopDown the design method. The DMA controller circuit system is posed of data register, address generator, state a controller posed of three modules, and the piler, simulation of the entire DMA controller circuit system and are piled, based on the simulation and synthesis of three submodules. Keywords: DMA controller ; Verilog; Modelsim; simulation 理工大學(xué)學(xué)士學(xué)位論文 III 目 錄 1 緒論 由于 CPU根本不參加傳送操作,因此就省去了CPC 取指令、取數(shù)、送數(shù)等操作。理工大學(xué)學(xué)士學(xué)位論文 I 摘 要 DMA 是直接存儲(chǔ)器存取方式,即 (Direct Memory Access)方式的縮寫,存儲(chǔ)器與I/O 設(shè)備之間的數(shù)據(jù)傳送在 DMA 控制器 (又稱 DMAC)的管理下直接進(jìn)行,而不經(jīng)過CPU。DMA 方式的主要優(yōu)點(diǎn)是傳輸速度快。DMA 控制器電路系統(tǒng)是由數(shù)據(jù)寄存器、地址產(chǎn)生器、狀態(tài)控制器三個(gè)子模塊組成,并且整個(gè) DMA 控制器電路系統(tǒng)的編譯、仿真是在對(duì)三個(gè)子模塊分別進(jìn)行編譯、仿真的基礎(chǔ)上完成的。 1 DMA 控制器的研究意義及背景 4 DMA 控制器的基本功能 5 DMA 控制器的傳送方式 8 DMA 控制器的傳送狀態(tài) 12 選擇型 DMA 控制器 13 DMA 控制器在現(xiàn)實(shí)中的應(yīng)用 14 3 DMA 控制器的行為級(jí)設(shè)計(jì) 34 DMAC 設(shè)計(jì)的 VERILOG HDL 程序編譯 34 DMAC 各模塊設(shè)計(jì)的功能仿真 40 SCU模塊的 Sti 及仿真 52 附錄 A 英文原文 60 理工大學(xué)學(xué)士學(xué)位論文 1 1 緒論 DMA 控制器的研究意義及背景 外設(shè)與計(jì)算機(jī)內(nèi)存之間的信息交換,可通過程序查詢方式和中斷方式進(jìn)行。在程序查詢方式時(shí),CPU要反復(fù)測試外設(shè)狀態(tài),在外設(shè)未準(zhǔn)備好時(shí), CPU就處于等待狀態(tài),直到外設(shè)準(zhǔn)備好,才進(jìn)行數(shù)據(jù)傳送。 為此,提出了 DMA(直接存儲(chǔ)器存取 )傳輸方式。這種傳送方式適用于圖像顯示、磁盤存取、磁盤間數(shù)據(jù)傳送和高速的數(shù)據(jù)采集等系統(tǒng)??膳渲檬沟?DMA 不僅可以按照總線協(xié)議進(jìn)行數(shù)據(jù)交換,而且可以編程設(shè)置多種功能。 CPU 通過寄存器子理工大學(xué)學(xué)士學(xué)位論文 2 尋址方式配置這些寄存器,通過這些寄存器的配置,可以實(shí)現(xiàn)多幀傳輸、自動(dòng)緩沖傳輸、可編程的優(yōu)先級(jí)、可編程的地址、時(shí)間同步以及中斷生成等功能 [25]。該 DMA 控制器也支持多通道傳輸,一個(gè)通道對(duì)應(yīng)一個(gè) I/O 口或外設(shè)口緩沖區(qū)。 DSP56362 的內(nèi)部 DMA控制器包含六個(gè)獨(dú)立的 DMA通道,支持片內(nèi)與片外的存取, 3 維的數(shù)據(jù)傳輸,塊傳輸結(jié)束時(shí)中斷, DMA 觸發(fā)來自于中斷線和所有外圍器件 [27]。全文的主要工作及內(nèi)容是對(duì) DMA 控制器的的基本概念進(jìn)行了闡述,介紹了DMA 控制器的基本功能、組成,傳送的方式、過程、狀態(tài)等,同時(shí)確立 DMA 控制器的設(shè)計(jì)方案,對(duì)其源代碼進(jìn)行編寫,最后對(duì)其模型進(jìn)行仿真并得出結(jié)論。 第三章是本文的核心部分,在這一章中概述了 DMA 控制器的運(yùn)行環(huán)境,及 DMA