一种片上dma结构及其实现方法

文档序号:6613598阅读:290来源:国知局

专利名称::一种片上dma结构及其实现方法
技术领域
:本发明涉及高性能处理器领域,特别涉及到一种片上DMA结构及其实现方法。技术背景数据吞吐能力是高性能处理器设计中的关键问题。为了提高高性能处理器数据的吞吐能力通常的办法是增加处处理器的数据通路位宽或提高数据的吞吐频率。这两种方法都存在着不足第一种方法,通过增加数据位宽提高吞吐能力,处理器的引脚数会激增,影响处理器的可靠性;第二种办法,提高数据的吞吐频率,会直接导致处理器的处理功耗过高。因此在设计高性能处理器中,可以采用增加片上DMA(DirectMemoryAccess)的方法,来提高高性能处理器的数据吞吐能力。DMA(DriectMemoryAccess)技术本身是一种代替微处理器完成存储器与外部设备或存储器之间大量数据传送的方法,也称直接存储器存取方法。在微机系统内,外设与内存间的数据传送通常是通过CPU执行一段程序来实现的,但利用DMA技术则可不用CPU介入就能实现外设与内存之间数据的直接传送。DMA的主要优点是当需要把一个外设的大量数据送到指定内存时,它可以自动完成传送任务,也就是说外设发出一个DMA请求,则DMA电路暂停CPU的操作,并控制外设与内存之间进行一次传数,然后再让CPU继续执行程序,这样就使CPU节省了大量对外设的查询时间,从而提高了系统的整体性能。DMA的产品主要有美国英特尔公司(Intel)生产的8237芯片和82258系统。由于没有中断处理功能和系统总线接口功能,8237和82258在系统中使用时,需要中断控制器(8259)和设计系统接口辅助逻辑,这使得系统应用很繁瑣,而且这种DMA的工作结构和实现方式也降低了应用系统的可靠性。随着微电子技术的发展,单芯片的集成度不断提高,在这样的实现条件下,出现了在高性能微处理器中嵌入DMA来提高数据吞吐能力的产品。主要是美国德州仪器公司(TexasInstrument,Tl)设计的MSP430微控器系列以及TMS320X240系列产品。这些产品应用资料中对于DMA的描述都是/人应用方法上介绍居多,至于其结构和具体实现方式等都未见有详细描述。国内对于高性能处理器的研究近些年也才展开,关于在自主设计的高性能处理器中使用片上DMA的介绍,未见报道。国内关于DMA的资料也大多是针对8237和82258以及L82C37A等产品如何使用的心得和介绍。这些DMA产品应用范围窄、应用复杂,难以集成到自主设计的片上处理器系统中。本发明是以自主设计的32位高性能数字信号处理器SMDSP为背景,在SMDSP上设计了一种片上DMA的结构及其实现方法。由于它结构简单、实现方便,因此易于应用到其它高性能处理器的设计中。
发明内容本发明的目的在于提供一种广泛适用的片上DMA的结构及其实现方法。而且结构简单,实现方便。本发明所采取的技术方案是一种片上DMA结构,其特征在于包括寄存器组,在DMA工作前由CPU通过外设数据总线对寄存器组进行初始化配置,确定DMA的工作状态、数据的地址值和即将要传输数据的个数;优先级仲裁单元,当CPU和DMA之间发生读写冲突时,DMA/CPU优先级仲裁才艮据当前的传输状态和CPU的中断控制器传来的信号进行判断,是否把控制权交给DMA,当DMA取得优先权进行数据传输时,根据DMA内部通道的数量决定是否需要仲裁,当DMA内部通道为两个或两个以上时,优先.级仲裁单元进行仲裁,决定哪个通道进行数据传输工作;DMA数据緩冲寄存器,用于緩沖存储低速的数据I/O设备向DMA发送的数据,使得DMA的数据传输速率和CPU的处理速率相匹配;中断设置和接收单元,一是当DMA传输完成时利用该单元在系统中断寄存器中设置相应中断标志位表示一次数据传输完成,CPU可根据该中断标志位进行相应处理;二是当数据I/O设备就绪时会对系统发送请求传输数据的中断请求信号,该中断请求信号由中断设置和接收单元接收并对系统中断寄存器的相应中断标志位进行设置,CPU根据该中断标志位进行DMA工作方式的配置并启动DMA进行数据传输工作;加/减1控制逻辑,通过CPU对寄存器组中的全局状态控制寄存器的配置,力口/减1控制逻辑实现对寄存器组中数据寄存器的修改,即实现加1或减1或保持不变的操作;DMA总线,包括DMA地址总线和DMA数据总线,DMA地址总线上传送的是要读出或写入数据在存储器中的起始地址;DMA数据总线上传送的是要读出或写入的数据,它传输的数据经过DMA数据緩冲寄存器中转后传送到内部或外部存储器。当DMA内部通道为两通道DMAO和DMA1时,所述的中断设置和接收单元的电路结构为测试信号TEST1和外部中断信号EINT经过控制信号C1和控制信号C2控制的二选一选择器M21—1后接反向器inv—1的输入,inv一1的输出接二输入与门and2—1的输入,二^r入与门and2—1的输出才妄到二输入或非门nor2_1的一个输入端,二输入或非门nor2—1的输出作为三与非门nand3_1的一个输入端,电路复位信号RESET接到二输入或非门nor2一1的另一个输入端,全局控制寄存器的最低两位信号START[1]和START[O]接二输入或非门nor2—2后接反向器inv—2,反向器inv—2的输出接到三与非门nand3—1的第二个输入端;用于选择进行数据传输的DMA通道的输入信号DMAE经过反向器inv—3输出到三与非门nand3—1的第三个输入端;三与非门nand3一1的输出接控制信号C3和控制信号C4控制的二选一选择器M21—2的一个输入端,测试信号TEST2接选择器M21—2的另一个输入端,选择器M21—2的输出接由inv一4和inv—5组成的锁存器,锁存器的一个输出端为中断标志信号INT一SIG,锁存器的另一个输出端接系统时钟CLK控制的传输门TG后经过反向器inv—6连接到二输入与门and2—1的输入端。当DMA内部通道为两通道DMA0和DMA1时,所述的DMA/CPU优先级仲裁的电路结构为DMA内部通道DMA1的全局控制寄存器的控制位信号DMA1—PRI[1]和使能信号DMA1—EN接二输入与门and2—2的两个输入端,DMA内部通道DMA0的全局控制寄存器的控制位信号DMA0—PRI[1]和使能信号DMAO—EN接二输入与门and2—3的两个输入端;二输入与门and2_2和二输入与门and2—3的输出端分别接到二输入或非门nor2—3的两个输入端,二输入或非门nor2—3的输出经反向器inv—8后接或门or2—2的输入;状态标识信号DMA1—ST和DMA0—ST接或门or2—1的两个输入,或门or2_1的输出连到三与非门nand3—2的一个输入端,使能信号DMA—EN接三与非门nand3—2)的另一个输入,环形仲裁信号CIR经过反向器inv—7取反后接三与非门nand3一2的第三个输入端;三与非门nand3_2的输出接反向器inv一9的输入,反向器inv—9的输出接或门or2—2的第二个输入端;DMA内部通道DMA1的全局控制寄存器的控制位信号DMA1—PRI和使能信号DMA1—EN接与门and2—4的两个输入,DMA内部通道DMA0的全局控制寄存器的控制位信号DMAO—PRI[O]和使能信号DMAO—EN接与门and2—5的两个输入;与门and2_4和与门and2—5的两个输出接到二输入或非门nor2—4的输入,或非门nor2_4的输出接反向器inv—10;反向器inv—10的输出和或门or2—2的输出接二输入与非门nand2一1的输入,二输入与非门nand2—1的输出接反向器inv—11,反向器inv—11的输出为优先级仲裁信号DMA/CPU—PRI。当DMA内部通道为两通道DMAO和DMA1时,所述的加/减1控制逻辑的电路结构为全局控制寄存器中的控制位INCSRC和DECSRC接二输入同或门xnor2—1的输入,二输入同或门xnor2—1的输出经反向器inv—12接三输入与非门nand3_3的第一个输入端,用于切换DMA传输的读写操作的信号WRE经反向器inv—13后接三输入与非门nand3_3的第二个输入端,用于选择进行数据传输的DMA通道的输入信号DMAE接三输入与非门nand3一3的第三个输入端;全局控制寄存器中的控制位INCDST和DECDST接二输入同或门xnor2—2的输入,二输入同或门xnor2—2的输出经反向器invJ4接三输入与非门nand3—4的第一个输入端,用于切换DMA传输的读写操作的信号WRE接三输入与非门nand3_4的第二个输入端,用于选择进行数据传输的DMA通道的输入信号DMAE接三输入与非门nand3—4的第三个输入端;三输入与非门nand3—3的输出接反向器inv_15,反向器inv—15的输出为允许或不允许对源地址寄存器进行加减运算的信号SRCAE;三输入与非门门3^3_4的输出接反向器inv一16,反向器inv—16的输出为允许或不允许对目的地址寄存器进行加减运算的信号DSTAE;INCSRC与三输入与非门nand3—3的输出接二输入或门or2—3的输入;全局控制寄存器中的控制位INCSRC与三输入与非门nand3—4的输出接二输入或门or2—4的输入;二输入或门or2—3的输出和二输入或门or2一4的输出接二输入与非门nand2_2的两个输入端,二输入与非门nand2_2的输出与系统时钟CLK分别接二输入与非门nand2一3的两个输入端,二输入与非门nand2_3的输出接反向器inv—17,反向器inv—17的输出为加1操作的控制信号INC;力。1操作的控制信号INC接反向器inv_18的输入,反向器inv—18的输出为减1操作的控制信号DEC。一种片上DMA实现方法,其特;f正在于DMA内部通道至少为一个,当DMA内部通道为两个或两个以上时,每个通道的实现方法相同,所述DMA内部通道的实现方法如下(1)在DMA进行数据传输开始前,CPU先通过外设数据总线对DMA通道内部的寄存器组进行初始化配置。配置过程即外设地址总线上的值经地址译码器的译码产生写使能信号,用于对DMA寄存器组中的一个寄存器进行写操作,外设数据总线上的配置数据在写使能信号有效时写入到相应的寄存器中,一个寄存器的配置完成。CPU要DMA寄存器组中的每个寄存器进行配置后,即完成整个DMA的初始化配置。(2)根据CPU对通道内部的寄存器组中的全局状态控制寄存器的初始化配置,力口/减1控制逻辑对通道内的力口/减1模块进行控制,实现对寄存器组中的数据寄存器进4于加1或减1或保持不变的操作;(3)根据优先级仲裁单元、中断接收和设置单元判断结果控制选通器将哪路数据传输到DMA地址总线上,进行数据读取,当数据地址已经上了DMA地址总线后,数据会紧随其后从存储器搬运到相应通道内部的数据緩冲寄存器中,到DMA数据总线上;(4)通过比较器的输出来判断传输个数寄存器的值是否为0,即是否传输完毕,当传输完毕时,比较器会触发中断接收和设置模块产生中断信号给CPU,告知数据传输结束,交还总线使用权,至此,一次DMA数据传送过程完成。当所DMA内部通道为两个通道DMAO和DMA1时,其中所述通道DMAO的实现方法如下(1)在DMA进行数据传输开始前,CPU通过外设数据总线对通道DMAO内部的寄存器组进行初始化配置;CPU通过外设地址总线经地址译码器的译码产生控制配置通道DMAO寄存器组的信号,CPU控制并选择通过第一选通器的寄存器输入到DMAO力口/减1模块的信号;(2)根据CPU对通道DMAO内部的寄存器组中的全局状态控制寄存器的初始化配置,DMAO力口/减1控制逻辑对通道内的DMAO力口/减1模块进行控制,对传输计数寄存器、目的地址寄存器和源地址寄存器进行加1或减1或保持不变的操作;(3)根据优先级仲裁单元、DMAO中断设置模块和DMAO状态位读写模块的判断结果控制第三选通器将哪路数据传输到DMA地址总线上,进行数据读取,当数据地址已经上了DMA地址总线后,数据会紧随其后从存储器搬运到DMAO内部的数据緩冲寄存器中,再根据优先级仲裁单元的仲裁结果来选择将DMO通道或者DMA1通道的数据经过第四选通器传送到DMA凄t据总线上;(4)通过DMA0比较器的输出来判断传输个数寄存器的值是否为0,即是否传输完毕,当传输完毕时,DMA0比较器会触发DMA0中断设置模块产生DMA0中断信号DINT0给CPU,告知数据传输结束,交还总线使用权,至此,一次DMA数据传送过程完成。所述的DMA通过两个通道DMA0和DMA1之间的优先级仲裁决定由哪个通道进行数据传输,优先级仲裁的实现方法有两种固定优先级和轮转优先级。固定优先级是默认DMAO或DMA1具有更高优先级,而轮转优先级是4艮据最近服务的通道优先级降到最低的原则进行仲裁,这是^f艮据全局状态控制寄存器中的相应位进行i殳定的。本发明与现有技术相比的有益效果(1)本发明的片上DMA结构及其实现方法简单,与其它功能部件的时序配合容易,提高了DMA工作的可靠性。(2)本发明的片上DMA具有自己的优先级仲裁和中断设置与接收单元,尽可能的减轻了CPU的负担,使两者传输数据速率相匹配。(3)本发明的片上DMA有自己独立的数据和地址总线,可以传输32位数据。图1是本发明片上DMA结构示意图;图2是本发明的片上DMA实现方法流程图;图3是本发明的一种中断设置和接收单元结构示意图;图4是本发明的一种DMA/CPU优先级仲裁结构示意图;图5是本发明的一种加/减1控制逻辑结构示意图。具体实施方式一种片上DMA的实现方法,DMA的结构如图1所示。其中,DMA寄存器组是由DMA全局状态控制寄存器、源地址寄存器、目的地址寄存器和传输个数寄存器组成,在DMA开始工作前首先由CPU通过外设总线对寄存器组中的全局状态控制寄存器、源地址和目的地址寄存器和传输个数寄存器进行初始化配置,即确定DMA的工作状态(如优先级仲裁模式和读写同步方式)、数据的起始地址值(即待读出的数据在存储器中的首地址)、数据的目的地址值(即待写入的数据在目的存储器中的首地址)和待传输数据的个数。优先级仲裁单元包括CPU/DMA之间的优先级仲裁和DMA内部两通道DMA0和DMA1之间的优先级仲裁,当CPU和DMA之间发生读写冲突时,用该模块进行仲裁即确定CPU总线控制权,当DMA取得优先权进行数据传输时,DMA1和DMAO两通道需要进行仲裁即决定哪个通道进行数据传输工作。DMA数据缓沖寄存器,用于緩冲存储低速的数据I/O设备向DMA发送的数据,通过DMA数据緩沖寄存器的作用,使得DMA的数据传输速率和CPU的处理速率相匹配。中断设置和接收单元,一是当DMA传输完成时利用该单元在系统中断寄存器中设置相应中断标志位表示一次数据传输完成,CPU可根据该中断标志位进行相应处理;二是当数据I/O设备就绪时会对系统发送请求传输数据的中断请求信号,该中断请求信号由DMA的中断设置和接收单元接收并对系统中断寄存器的相应中断标志位进行设置,CPU根据该中断标志位进行DMA工作方式的配置并启动DMA进行数据传输工作。加/减1控制逻辑通过对全局状态控制寄存器的配置,对源地址寄存器、目的地址寄存器和传输个数寄存器进行修改,即进行相应的加1或者/减1的操作。DMA总线,包括DMA地址总线和DMA数据总线。DMA地址总线(24位)上传送的是要读出或写入数据在存储器中的起始地址,它传输的地址内容由源地址和目的地址寄存器提供;DMA数据总线(32位)上传送的是要读出或写入的数据,它传输的数据经过DMA数据緩冲寄存器中转后传送到目的存储器。DMA全局控制寄存器的位宽为16位,结构如下表1所示。表1全局控制寄存器的位宽<table>tableseeoriginaldocumentpage15</column></row><table>DMA全局控制器的功能位定义如下表2所示。表2DMA全局控制器的状态位定义縮写复位值名称描述START00DMA启动控制控制DMA开始和停止状态,在没有丟失数据的情况下停止DMA传输下表为START位的组合和DMA的操作BitlbitO功能00DMA的读或写已经完成;忽略任何数据的读,取消任何待定的读或写。DMA被复位准备下一次传输的开始(复位值)01在DMA停止以前完成已开始的一个字读或写。如果读或写没有开始,那么不再有读和写发生10在DMA停止以前完成已开始的数据块的传输(包括读和写)如果没有数据块传输,那么不再有读和写发生I1DMA从复位状态或前一个状态重新启动。当DMA—次传输完成,START位保持在ll在以下任一个条件时,设置START位为ll重新开始传i5。当传送计数器的设置的值不为OXOTC位为OSTAT00DMA状态STAT指定DMA的状态并且每个周期都更新,下表为STAT位和DMA状态bit3bit2功能00DMA在写和读之间被保持,这是复位时的值01DMA在读和写的中间被保持10保留11DMA忙,包括DMA执行读或写,等待源同步中断、等待目的同歩中断INCSRC0DMA源地址递增当INCSRC=1,源地址在每次读后递增DECSRC0DMA源地址递减当DECSRC-l,源地址在每次读后递减当INCSRC=DECSRC,每次读后不修改源地址INCDST0DMA目的地址递增当INCDST=1,目的地址在每次被写后递增DECDST0DMA目的地址递减当DECDST-l,目的地址在每次被写后递减当INCDST=DECDST,每次写后不修改目的地址。SYNC0DMA同步模式源地址和目的地址的同步方式下表概述SYNC位和DMA同步Bit9Bit8功能00不同步,忽略中断(复位值)01源地址同步。当中断发生时,执行读10目的地址同步。当中断发生时,执行写11源地址同步和目的地址同步。当中断发生时,执行读;下一个中断发生时,执行写TC0DMA传输模式影响传送计数器的操作。当TC-0,传送计数变为0时,不终止传输当TC=1,t传送计数变为0时,终止传输TCINT0DMA传送计数器中断当TCINT-l,传送计数器为0时,设置DMA中断。当TCINT-O,传送计数器为0时,不设置DMA中断。PRI00CPU/DMA优先模式PRI位定义CPU/DMA优先级Bitl3Bitl2功能00CPU优先级高于DMA(这也是复位值)01保留10优先级轮流1'lDMA优先级高于CPUPRIORITYMODE0DMA通道优先级模式当PRIORITYMODE=0,两个DMA通道优先级固定,即通道0—直优先于通道l当prioritymode=1,两个DMA通道优先权轮流。复位后DMA通道o优先,复位后,最近使用的通道(不论是读还是写)具有更低的优先级图2为DMA的实现方法流程图,DMA为左右对称的双通道,下面以DMAO通道为例进行说明第一步,在DMA进行数据传输开始前,CPU通过外设数据总线(32bit)对DMAO内部的寄存器组(包括全局状态控制寄存器、源地址和目的地址寄存器、传输计数寄存器等)进行初始化配置,即确定DMA的工作方式(如优先级仲裁模式和读写同步方式)、数据的起始地址值(即待读出的数据在存储器中的首地址)、数据的目的地址值(即待写入的数据在目的存储器中的首地址)和待传输数据的个数。另外通过外设地址总线(24bit)经DMAO地址译码器的译码产生控制配置DMAO寄存器组的信号以及控制选择哪组寄存器通过第一选通器输入到DMAO力口/减1模块的信号。第二步,根据DMAO全局状态控制寄存器的初始配置,DMA0力口/减1控制逻辑会对DMAO力。/减1模块进行控制,对操作数(数据源地址寄存器、数据目的地址寄存器和数据传输个数寄存器)进行加1、减1或保持不变的操作。第三步,根据DMAO优先级仲裁模块、处理外部中断信号EINTO的同步控制模块和状态位读写模块的判断结果控制第三选通器将哪路数据传输到DMA地址总线上,进行数据读取。当数据地址已经上了DMA地址总线后,数据会紧随其后从存储器搬运到DMA内部的数据緩沖寄存器,在根据状态位的判断和优先级控制模块的仲裁结果来选择将哪条通道(DMA0/DMA1)传送的数据经过第四选通器放到DMA数据总线上。第四步,通过DMAO比较器的输出来判断DMAO传输个数寄存器的值是否为0(即是否传输完毕),当传输完毕时,它会触发DMAO中断设置模块产生DMAO中断信号DINTO给CPU告知数据传输结束,交还总线使用权。这样,一次DMA数据传送过程完成。需要进一步说明的是DMA通过DMAO和DMA1两个通道进行数据传输,具体的实现方式有两种固定优先级和轮转优先级,前者是默认DMAO或DMA1有更高优先级,而后者是根据最近服务的通道优先级降到最低的原则进行仲裁,这是根据全局状态控制寄存器中的相应位进行设定的;此外,当DMA和CPU之间产生了凝:据传输沖突时,其DMA/CPU优先级仲裁单元会冲艮据当前的传输状态和CPU的中断控制器传来的信号进行判断,是否把控制权交给DMA。中断接收电^各结构,如图3所示信号TEST1和EINT经过在C1和C2控制的二选一选4奪器M21—1后接反向器invj的输入,inv—1的输出接入二输入与门and2—1的输入,二输入与门and2_1的输出接到二输入或非门后输出到三与非nand3—1的一个输入端。RESET接到二输入或非门nor2_1的另一个输入。START[1]、START[O]接二输入或非门nor2_2后接反向器inv—2,其输出接到三与非nand3—1的第二个输入端。DMAE接反向器inv—3输出到三与非nand3—1的第三个输入端。三与非nand3—1的输出接C3和C4控制的二选一选择器M21—2的其中一个输入,另一个输入为TEST2。二选一选择器M21—2的输入接入由inv—4和inv—5组成的锁存器,该锁存器输出为INT_SIG,并接由CLK控制的传输门TG后经过反向器inv—6连接到二输入与门and2—1的输入。其中TEST1和EINT分别是测试和外部中断信号,经过由C1、C2控制的二选一的多路选择器输出到反馈环。当电路复位时,RESET-1,将与或非门的一个输入信号置1,数据结果由反馈保持复位值。输入信号START[1:0]是全局控制寄存器的最低两位,控制DMA传输的启动与停止。当START[1:0]-00时,中止所有正在进行的传输,准备重新进行新一次的DMA传输。输入信号DMAE用于选择进行数据传输的DMA通道,当DMA完成某一次读写操作时,该DMA通道空闲,DMAE=0,等待下一次同步中断的出现。如果DMA控制器被设置为无同步的工作模式下,则只要某通道被选中,则相应的DMAE保持为高电平。电路的输出信号INT—SIG表示DMA传输启动后,DMA控制器所等待的同步信号是否出现,该信号为高电平表示有同步中断信号出现。DMA/CPU优先级仲裁结构,如图4所示DMA1—PRI[1]和DMA1—EN接二输入与门and2—2的两个输入端,DMA0—PRI[1]和DMA0—EN接二输入与门and2—3的两个输入端;二输入与门and2—2和二输入与门and2—3的两个输出接到二输入或非门nor2一3的两个输入,二输入或非门nor2_3的输出经反向器inv_8后接或门or2—2的输入;DMA1_ST和DMA0—ST接或门or2—1的两个输入,或门or2—1的输出连到三与非nand3—2的一个输入端,DMA_EN接三与非nand3—2的另一个输入,CIR经过反向器inv一7取反后接三与非nand3一2的第三个输入。三与非nand3一2的输出接反向器jnv一9的输入,反向器inv—9的输出接或门or2—2的第二个输入端。DMA1—PRI和DMA1—EN接与门and2—4的两个输入,DMA0—PRI和DMA0—EN接与门and2_5的两个输入;与门and2—4和与门and2—5的两个输出接到二输入或非门nor2_4的输入,或非门nor2—4的输出接反向器inv—10。反向器inv一10的输出和或门or2_2的输出接二输入与非门nand2—1的输入,二输入与非门nand2_1的输出接反向器inv—11,反向器inv—11的输出为DMA/CPU—PRI。其中,DMA控制器利用其内部DMA总线传输数据,当与CPU的存取发生冲突时,仲裁是必不可少的。当它们之间不存在访问冲突时,CPU和DMA控制器的存取是并行完成的。仲裁规则由DMA通道中的DMAPRI位(即全局状态控制寄存器的第12位和第13位)界定,详见表1。系统复位时,全局控制寄存器将被清零,系统默认CPU优先。DMAPRI[1:0]是全局控制寄存器中的第13位与第12位,该值由用户设置,在重新编程之前不发生变化。信号CIR为环形仲裁的结果,所谓环形仲裁,是指设置CPU和DMA通道的优先级使它们轮流存取,当它们在连续的指令周期中发生访问冲突时,CPU具有较高的优先级;若在下一个指令周期中,两者再次发生对同样资源的访问冲突时,DMA具有更高优先级。CIR=1时,表示该模块CPU有存取请求。若此时,DMA两个通道中至少有一个对同一资源也提出了存取请求,则二者存在沖突。CPU或DMA的优先级哪个较高是由全局状态控制位DMAPRI决定。DMA/CPU_PRI=0代表CPU优先级较高,DMA/CPU—PRI=1代表DMA优先级较高)。力口/减1控制逻辑结构,如图5所示INCSRC和DECSRC接二输入同或门xnor2—1的输入,二输入同或门xnor2—1的输出经反向器invJ2接三输入与非门nand3—3的第一个输入,WRE经反向器inv_13后接三输入与非门nand3—3的第二个输入,DMAE接三输入与非门nand3—3的第三个输入。INCDST和DECDST接二输入同或门xnor2—2的输入,二输入同或门xnor2—2的输出经反向器inv—14接三输入与非门nand3_4的第一个输入,WRE接三输入与非门nand3_4的第二个输入,DMAE接三输入与非门nand3—4的第三个输入。三输入与非门nand3—3的输出接反向器inv—15,反向器invJ5的输出为SRCAE。三输入与非门nand3—4的输出接反向器inv—16,反向器inv—16的输出为DSTAE。INCSRC与三输入与非门nand3—3的输出接二输入或门or2—3的输入;INCDST与三输入与非门nand3—4的输出接二输入或门or2—4的输入。二输入或门or2—3的输出和二输入或门or2—4的输出接二输入与非门nand2_2的两个输入端,二输入与非门nand2—2的输出与CLK分别接二输入与非门nand2—3的两个输入端,二输入与非门nand2—3的输出接反向器inv—17,反向器inv—17的输出为INC。INC接反向器inv—18的输入,反向器inv—18的输出为DEC。其中,INCSRC、DECSRC、INCDST、DECDST都是全局控制寄存器中的控制位,DMAE信号用于选择进行数据传输的DMA通道,WRE信号用于切换DMA传输的读写操作。当WRE-0时,执行读才喿作,对源地址执行加1、减1或不变操作;当WRE=1时,执行写操作,此时将对目的地址执行加1、减1或不变操作。CNTE是与选通将传输个数值传送到加/减1模块的信号相反的信号,即当传输个数寄存器的值传送到加/减1模块中时,该CNTE=0,导致DEC=0,进行减1操作。在输出信号中,SRCAE表示允许(1)或不允许(0)对源地址进行加减运算;DSTAE则表示允许(1)或不允许(0)对目的地址进行加减运算。信号DEC和INC是减1或加1的控制信号,用于控制加1/减1运算模块,当输出DEC=0时,执行减1操作;当输出INC=0时,执行加1操作。上述是以两个通道为例阐述了本发明的详细实施情况,当DMA通道为一个时,实现将更容易,当DMA通道为多个时,根据两个通道的详细实施情况,根据用户的实际需求可以对相应的具体结构等作适应性的变化,只要不脱离本发明权利要求书的描述范围,都在本发明的保护范围内,因此,本发明是广泛的。权利要求1、一种片上DMA结构,其特征在于包括寄存器组,在DMA工作前由CPU通过外设数据总线对寄存器组进行初始化配置,确定DMA的工作状态、数据的地址值和即将要传输数据的个数;优先级仲裁单元,当CPU和DMA之间发生读写冲突时,DMA/CPU优先级仲裁根据当前的传输状态和CPU的中断控制器传来的信号进行判断,是否把控制权交给DMA,当DMA取得优先权进行数据传输时,根据DMA内部通道的数量决定是否需要仲裁,当DMA内部通道为两个或两个以上时,优先级仲裁单元进行仲裁,决定哪个通道进行数据传输工作;DMA数据缓冲寄存器,用于缓冲存储低速的数据I/O设备向DMA发送的数据,使得DMA的数据传输速率和CPU的处理速率相匹配;中断设置和接收单元,一是当DMA传输完成时利用该单元在系统中断寄存器中设置相应中断标志位表示一次数据传输完成,CPU可根据该中断标志位进行相应处理;二是当数据I/O设备就绪时会对系统发送请求传输数据的中断请求信号,该中断请求信号由中断设置和接收单元接收并对系统中断寄存器的相应中断标志位进行设置,CPU根据该中断标志位进行DMA工作方式的配置并启动DMA进行数据传输工作;加/减1控制逻辑,通过CPU对寄存器组中的全局状态控制寄存器的配置,加/减1控制逻辑实现对寄存器组中数据寄存器的修改,即实现加1或减1或保持不变的操作;DMA总线,包括DMA地址总线和DMA数据总线,DMA地址总线上传送的是要读出或写入数据在存储器中的起始地址;DMA数据总线上传送的是要读出或写入的数据,它传输的数据经过DMA数据缓冲寄存器中转后传送到内部存储器或外部存储器。2、根据权利要求1所述的一种片上DMA结构,其特征在于-.当DMA内部通道为两通道DMAO和DMA1时,所述的中断设置和接收单元的电路结构为测试信号TEST1和外部中断信号EINT经过控制信号C1和控制信号C2控制的二选一选择器M21—1后接反向器irw_1的输入,inv—1的输出接二输入与门and2一1的输入,二输入与门and2—1的输出接到二输入或非门nor2—1的一个输入端,二输入或非门nor2—1的输出作为三与非门nand3—1的一个lt入端,电路复位信号RESET接到二输入或非门nor2—1的另一个输入端,全局控制寄存器的最低两位信号START[1]和START[O]接二输入或非门nor2一2后接反向器inv—2,反向器inv—2的输出接到三与非门nand3—1的第二个输入端;用于选择进行数据传输的DMA通道的输入信号DMAE经过反向器inv—3输出到三与非门nand3—1的第三个输入端;三与非门nand3—1的输出接控制信号C3和控制信号C4控制的二选一选择器M21—2的一个输入端,测试信号TEST2接选择器M21—2的另一个输入端,选择器M21—2的输出接由inv—4和inv—5组成的锁存器,锁存器的一个输出端为中断标志信号INT—SIG,锁存器的另一个输出端接系统时钟CLK控制的传输门TG后经过反向器inv—6连接到二输入与门and2一1的输入端。3、根据权利要求1所述的一种片上DMA结构,其特征在于当DMA内部通道为两通道DMA0和DMA1时,所述的DMA/CPU优先级仲裁的电路结构为DMA内部通道DMA1的全局控制寄存器的控制位信号DMA1—PRI[1]和使能信号DMA1—EN接二输入与门and2—2的两个输入端,DMA内部通道DMA0的全局控制寄存器的控制位信号DMA0—PRI[1]和使能信号DMA0—EN接二專俞入与门and2—3的两个输入端;二输入与门and2—2和二$#入与门and2_3的输出端分别接到二输入或非门nor2—3的两个输入端,二输入或非门nor2—3的输出经反向器inv—8后接或门or2—2的输入;状态标识信号DMA1一ST和DMA0—ST接或门or2—1的两个输入,或门or2_1的输出连到三与非门nand3—2的一个输入端,使能信号DMA—EN接三与非门nand3_2)的另一个输入,环形仲裁信号CIR经过反向器im^7取反后接三与非门nand3—2的第三个输入端;三与非门nand3—2的输出接反向器inv—9的输入,反向器inv—9的输出接或门or2—2的第二个输入端;DMA内部通道DMA1的全局控制寄存器的控制位信号DMA1—PRI[O]和使能信号DMA1—EN接与门and2—4的两个输入,DMA内部通道DMAO的全局控制寄存器的控制位信号DMA0—PRI和使能信号DMAO—EN接与门and2—5的两个输入;与门and2—4和与门and2—5的两个输出接到二输入或非门门0「2_4的输入,或非门nor2—4的输出接反向器inv—10;反向器inv—10的输出和或门or2—2的输出接二输入与非门nand2—1的输入,二输入与非门nand2—1的输出接反向器inv—11,反向器inv_11的输出为优先级仲裁信号DMA/CPU—PRI。4、根据权利要求1所述的一种片上DMA结构,其特征在于当DMA内部通道为两通道DMAO和DMA1时,所述的加/减1控制逻辑的电路结构为全局控制寄存器中的控制位INCSRC和DECSRC接二输入同或门xnor2—1的输入,二输入同或门xnor2一1的输出经反向器inv—12接三输入与非门nand3—3的第一个输入端,用于切换DMA传输的读写操作的信号WRE经反向器inv一13后接三输入与非门nand3—3的第二个输入端,用于选择进行数据传输的DMA通道的输入信号DMAE接三输入与非门nand3一3的第三个输入端;全局控制寄存器中的控制位INCDST和DECDST接二输入同或门xnor2—2的输入,二输入同或门xnor2—2的输出经反向器inv—14接三输入与非门nand3—4的第一个输入端,用于切换DMA传输的读写操作的信号WRE接三输入与非门nand3—4的第二个输入端,用于选择进行数据传输的DMA通道的输入信号DMAE接三输入与非门nand3—4的第三个输入端;三输入与非门nand3—3的输出接反向器inv—15,反向器inv—15的输出为允许或不允许对源地址寄存器进行加减运算的信号SRCAE;三输入与非门nand3—4的输出接反向器inv—16,反向器inv_16的输出为允许或不允许对目的地址寄存器进行加减运算的信号DSTAE;INCSRC与三输入与非门nand3—3的输出接二输入或门or2—3的输入;全局控制寄存器中的控制位INCSRC与三输入与非门nand3_4的输出接二输入或门or2—4的输入;二输入或门or23的输出和二输入或门or24的输出接二输入与非门nand2—2的两个输入端,二输入与非门nand2—2的输出与系统时钟CLK分别接二输入与非门nand2—3的两个输入端,二输入与非门nand2—3的输出接反向器inv—17,反向器inv—17的输出为加1操作的控制信号INC;力口1操作的控制信号INC接反向器inv—18的输入,反向器inv—18的输出为减1操作的控制信号DEC。5、权利要求1所述的一种片上DMA结构的实现方法,其特征在于DMA内部通道至少为一个,当DMA内部通道为两个或两个以上时,每个通道的实现方法相同,所述DMA内部通道的实现方法如下(1)在DMA进行数据传输开始前,CPU先通过外设数据总线对DMA通道内部的寄存器组进行初始化配置,即外设地址总线上的值经地址译码器的译码产生写使能信号,用于对DMA寄存器组中的一个寄存器进行写操作,外设数据总线上的配置凄t据在写使能信号有效时写入到相应的寄存器中,一个寄存器的配置完成,CPU要DMA寄存器组中的每个寄存器进行配置后,即完成整个DMA的初始化配置;(2)根据CPU对通道内部的寄存器组中的全局状态控制寄存器的初始化配置,力口/减1控制逻辑对通道内的力口/减1模块进行控制,实现对寄存器组中的数据寄存器进行加1或减1或保持不变的操作;(3)根据优先级仲裁单元、中断接收和设置单元的判断结果控制选通器将哪路数据传输到DMA地址总线上,进行数据读取,当数据地址已经上了DMA地址总线后,数据会紧随其后从存储器搬运到相应通道内部的数据緩冲寄存器中,再根据优先级仲裁单元的仲裁结果来选择将哪条通道传送的数据经过选通器放到DMA数据总线上;(4)通过比较器的输出来判断传输个数寄存器的值是否为0,即是否传输完毕,当传输完毕时,比较器会触发中断接收和设置单元产生中断信号给CPU,告知数据传输结束,交还总线使用权,至此,一次DMA数据传送过程完成。6、根据权利要求5所述的一种片上DMA实现方法,其特征在于当所DMA内部通道为两个通道DMA0和DMA1时,其中所述通道DMAO的实现方法如下:(1)在DMA进行数据传输开始前,CPU通过外设数据总线对通道DMAO内部的寄存器组进行初始化配置;CPU通过外设地址总线经地址译码器的译码产生控制配置通道DMAO寄存器组的信号,CPU控制并选择通过第一选通器的寄存器输入到DMAO力口/减1模块的信号;初始化配置,DMAO力口/减1控制逻辑对通道内的DMAO力口/减1模块进行控制,对传输计数寄存器、目的地址寄存器和源地址寄存器进行加1或减1或保持不变的4喿作;(3)根据优先级仲裁单元、DMAO中断设置模块和DMAO状态位读写模块的判断结果控制第三选通器将哪路数据传输到DMA地址总线上,进行数据读取,当数据地址已经上了DMA地址总线后,数据会紧随其后从存储器搬运到DMAO内部的数据緩冲寄存器中,再根据优先级仲裁单元的仲裁结果来选择将通道传送的凄史据经过第四选通器传送到DMA数据总线上;(4)通过DMAO比较器的输出来判断传输个数寄存器的值是否为0,即是否传输完毕,当传输完毕时,DMAO比较器会触发DMAO中断设置模块产生DMAO中断信号DINTO给CPU,告知数据传输结束,交还总线使用权,至此,一次DMA数据传送过程完成。7、根据权利要求6所述的一种片上DMA实现方法,其特征在于包括所述的DMA通过两个通道DMA0和DMA1之间的优先级仲裁决定由哪个通道进行数据传输,优先级仲裁的实现方法有两种固定优先级和轮转优先级。固定优先级是默认DMAO或DMA1具有更高优先级,而轮转优先级是根据最近服务的通道优先级降到最低的原则进行仲裁,这是根据全局状态控制寄存器中的相应位进行设定的。全文摘要本发明公开了一种片上DMA结构及其实现方法,片上DMA结构包括DMA寄存器组,优先级仲裁单元,DMA数据缓冲寄存器,中断设置和接收单元,加/减1控制逻辑,片上DMA用于存储器与存储器之间数据传输的通道数据传输的宽度为32位,由于有其独立的内部地址和数据总线支持,所以可以实现CPU与DMA控制器的操作并发进行,且DMA传输速率与CPU相匹配;独立的地址加/减1模块控制源与目的地址寄存器和传输个数的自动增减;DMA内部有两种优先级判断模式,该DMA实现方法可广泛地应用于高性能处理器的设计中,结构简单、可靠。文档编号G06F13/30GK101127018SQ20071017549公开日2008年2月20日申请日期2007年9月29日优先权日2007年9月29日发明者宁赵,车德亮申请人:北京时代民芯科技有限公司;中国航天时代电子公司第七七二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1