一种dma数据传输系统及方法和一种中央处理器的制作方法

文档序号:6471189阅读:189来源:国知局
专利名称:一种dma数据传输系统及方法和一种中央处理器的制作方法
技术领域
本发明涉及DMA数据传输技术领域,特别是涉及一种DMA数据传输系 统及方法和一种中央处理器。
背景技术
直接存储器存取(DMA, Direct Memory Access)是提高微机系统数据传 输效率的一项重要技术。DMA在存储器与I/O设备间直接传输数据,不需要CPU 的参与。
在支持DMA方式数据传输的微机系统中,DMA与CPU都挂接在系统总 线上,由总线提供数据传输的通道。当系统设备产生DMA需求时,该系统设 备向DMA发出请求;DMA收到请求后,向CPU发一个信号,申请占用系统 总线或者挪用一个或几个CPU周期;CPU获得该信号后,将系统总线的控制 权交给DMA,此时由DMA控制系统总线数据传输工作,实现在存储器与系 统设备之间直接传输数据。由于DMA设置在CPU外部,因而DMA与CPU 需要经过总线来完成访问控制权的交替,且CPU需经过总线对DMA进行信 息配置;而总线的带宽是有限的,当有多个传输任务时,传输速度会受到影响。
目前广泛应用的DMA —般都是进行一维数据的搬运,即DMA的源地址 空间或者目标地址空间是一段连续的存储器空间。而在实际操作中,经常会需 要搬运多段不连续的一维数据,即数据存储在多个不连续的存储器空间,每个 存储器空间内部地址是连续的。
现有的DMA传输多段不连续的一维数据的过程为DMA向CPU发送中 断请求,CPU对DMA进行传输一段一维数据的信息配置,DMA开始传输数 据,数据传输完毕后,重复前述操作。即在每一段一维数据传输后,都要由 DMA向CPU发送中断,并由CPU对DMA进行传输下一段一维数据的信息 配置。而CPU的多次中断会给整个系统运行增加负担,P争低CPU的工作效率, 同时降低了数据传输的速度。
由此可知,目前迫切需要本领域技术人员解决的一个技术问题就是如何提高DMA传输数据的速度,以及在传输多段不连续的一维数据时,如何提高 CPU的工作效率以及提高DMA的传输速度。

发明内容
本发明所要解决的技术问题是提供一种DMA数据传输系统及方法和一种
CPU,能够提高DMA传输数据的速度,以及在传输多段不连续的一维数据时,
大大提高CPU的工作效率和DMA的传输速度。
为了解决上述问题,本发明公开了一种DMA数据传输系统,所述DMA
数据传输系统设置于CPU内部,并通过系统总线和CPU外部通信,所述数据
传输系统包括
数据存储器,用于存储多个DMA数据配置信息;
列表寄存器,用于存储所述DMA数据配置信息的存储位置信息;
所述数据存储器和列表寄存器中的信息是由CPU配置的;
DMA管理器,用于从所述列表寄存器中获取所述配置信息的存储位置信
息,并从所述数据存储器的相应位置获取所述配置信息,配置给DMA; DMA,用于依据所述配置信息执行数据传输。
具体的,所述配置信息包括源地址信息、目标地址信息、数据长度信息 和控制信息。
进一步,所述控制信息包括一个判断位,用于判断DMA是否继续执行数 据传输。
进一步,所述数据存储器和列表寄存器中的信息是由CPU—次配置完成 的;DMA管理器在每次数据传输完成后,将下一次数据传输的信息配置给 DMA。
优选的,所述数据传输系统还包括加法器,在每次数据传输完成后,进行 下一次数据传输时,DMA管理器设置所述加法器对所述列表寄存器中的存储 位置信息进行加法运算,得到下一次DMA数据配置信息的存储位置信息。
优选的,系统总线设有专用于DMA的数据接口。
为了解决上述问题,本发明还公开了一种DMA数据传输方法,所述方法 包括CPU通过内部数据线执行以下操作将多次DMA数据配置信息存储到数 据存储器;并将所述DMA数据配置信息的存储位置信息存储到列表寄存器;
DMA管理器从所述列表寄存器中依次获取DMA配置信息的存储位置信 息,并从所述数据存储器的相应位置依次获取所述配置信息,配置给设置于 CPU内部的DMA;
所述DMA依次根据所述配置信息传输数据,通过系统总线和CPU外部 进行通信。
进一步,所述配置信息包括一个判断位;所述DMA管理器从所述数据存 储器中依次获取所述配置信息时,读取所述判断位,用于判断DMA是否继续 传输数据。
具体的,所述数据存储器和列表寄存器中的信息是由CPU—次配置完成 的;每次数据传输完成后,DMA管理器配置下一次数据传输的信息给DMA。
具体的,在每次数据传输完成后,进行下一次数据传输时,DMA管理器 设置所述加法器对所述列表寄存器中的存储位置信息进行加法运算,得到下一 次DMA数据配置信息的存储位置信息。
优选的,DMA通过设于系统总线上的专用数据接口与CPU外部进行通信。
本发明还公开了一种中央处理器,该中央处理器包括总控制器、存储控制 器和运算器,进一步还包括DMA数据传输系统,所述DMA数据传输系统包 括:
数据存储器,用于存储多个DMA数据配置信息;
列表寄存器,用于存储所述DMA数据配置信息的存储位置信息;
所述数据存储器和列表寄存器中的信息是由总控制器配置的;
DMA管理器,用于从所述列表寄存器中获取所述配置信息的存储位置信
息,并从所述数据存储器的相应位置获取所述配置信息,配置给DMA;
DMA,用于依据所述配置信息执行数据传输。 与现有技术相比,本发明具有以下优点
在本发明的解决方案中,DMA位于CPU内部,由此在进行CPU内部和CPU外部之间的数据传输时,DMA与CPU之间通过CPU内部的连线就完成 了访问控制权的交替,并且CPU通过CPU内部的连线对DMA进行信息配置, 从而节约了总线资源,减少了总线带宽的占用。
此外,本发明中增加了 DMA管理器和列表寄存器,当需要传输多段不连 续的一维数据时,CPU可以一次把多个数据传输的配置信息发送给DMA, DMA可以不间断的执行完多段数据传输,从而大大减少了 CPU中断的次数, 提高了 CPU和DMA的工作效率。


图l是本发明DMA数据传输系统实施例的结构示意图; 图2是本发明DMA数据传输方法实施例1的步骤流程图; 图3是本发明DMA数据传输方法实施例2的步骤流程图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
参照图1,示出了本发明一种DMA数据传输系统实施例,所述DMA数 据传输系统设置于CPU内部,并通过系统总线和CPU外部通信,所述数据传 输系统具体可以包括
数据存储器IOI,用于存储多个DMA数据配置信息。其中,所述配置信 息为数据传输的源地址信息、目标地址信息、数据长度信息和控制信息。优选 的,所述控制信息中包括一个判断位,用于判断DMA是否继续执行数据传输。 当判断DMA停止执行数据传输时,可以向CPU发送中断,通知CPU;也可 以不向CPU发送中断,只是停止执行数据传输,此时CPU可以通过查看的方 式获得DMA的状态。
列表寄存器102,用于存储所述DMA数据配置信息的存储位置信息。其 中,所述数据存储器和列表寄存器中的信息都是由CPU配置的。
DMA管理器103,用于从所述列表寄存器中获取所述配置信息的存储位 置信息,并从所述数据存储器的相应位置获取所述配置信息,配置给DMA104,
7即把所述数据传输的源地址信息、目标地址信息、数据长度信息和控制信息,
存储到DMA104的寄存器中。
DMA104,用于依据所述配置信息执行数据传输,即把指定的数据从源地 址传输到目标地址。
进一步,所述数据存储器和列表寄存器中的信息是由CPU—次配置完成 的,由此可以大大的减少CPU中断的次数,提高CPU到工作效率,也提高 DMA到传输效率。
而DMA管理器则是依次配置DMA,即在每次数据传输完成后,将下一 次数据传输的信息配置给DMA。
具体的,所述数据传输系统还包括一个加法器,在每次数据传输完成后, 进行下一次数据传输时,DMA管理器设置所述加法器对所述列表寄存器中的 存储位置信息进行加法运算,得到下一个DMA数据配置信息的存储位置信息。 由于每一个配置信息的长度是一个定值,可以在上一个配置信息的存储位置信
息上,加上所述定值,即为下一个配置信息的存储位置信息。所述加法的过程, 由DMA管理器控制加法器来完成。即CPU只需将第一个DMA数据配置信息 的存储位置信息配置给列表寄存器,接下来的配置信息的存储位置信息都由加 法器进行加法计算得到。
本发明的数据传输系统是在CPU内部的,即DMA在CPU内部,当DMA 与外设进行数据传输时,DMA通过CPU的总线数据接口与总线相连。而优选 的一个方案是在总线上设置专用于DMA的数据接口,这就避免了 DMA与原 有CPU总线接口的竟争,且设置专用的数据接口比较容易实现,成本低。
参照图2,示出了一种基于本发明DMA数据传输系统的方法实施例1, 所述方法具体可以包括以下步骤
步骤201,当有多段不连续的一维数据需要传输时,CPU就将需要多次 DMA传输数据的配置信息存储到数据存储器中。
优选的,所述配置信息中包括源地址信息、目标地址信息、数据长度信息 和控制信息。其中控制信息中包括一个判断位,即在控制信息的最后,用一个字节作为判断位。例如判断位可以是0或者1, O表示接下来还有DMA传 输,DMA管理器就接着从所述列表寄存器中获取下一个DMA配置信息的存 储位置信息;1表示所有的DMA传输结束,在DMA执行完该次数据传输后, 就停止数据传输。另一种方案是,可以设置一个DMA传输次数寄存器,通过 记录DMA传输的次数,来判断DMA是否继续传输数据。
步骤202, CPU将所述DMA数据配置信息的存储位置信息存储到列表寄 存器中。
优选的,在进行上述步骤201和步骤202时,CPU可以只中断一次,就 将所有需要的配置信息都存储到数据存储器中,以及将所有需要的存储位置信
息存储到列表寄存器中。由此,在传输多段不连续的一维数据时,减少了 CPU 中断的次数,提高了传输效率和CPU的工作效率。
步骤203, CPU配置DMA通过DMA管理器开始工作。 需要说明的是,在步骤201到步骤203中,CPU都是通过内部数据线来 执行相应的操作的,这是由于本发明的DMA数据传输系统位于CPU内部。 由此,与DMA传输系统位于CPU外部的相比,本发明的CPU在进行上述步 骤201到步骤203的操作时就避免了与外部总线的竟争,且大多数情况下CPU 内部数据线的传输速度为外部总线传输速度的两倍,进而增加了 CPU的工作 效率。
进一步的,本发明的DMA数据传输系统位于CPU内部,对系统的另一 个有益效果是当进行JTAG调试时,可以对DMA传输系统进行调试。这是 因为JTAG只知道CPU内部组件的信息,而不知道CPU外部组件的信息,所 以当DMA系统位于CPU外部时,就无法对其进行调试。其中,JTAG( Joint Test Action Group,联合测试行为组织) 一种国际标准测试协议。
步骤204, DMA管理器从所述列表寄存器中依次获取DMA配置信息的 存储位置信息。
步骤205,依据所述获取的存储位置信息,DMA管理器从所述数据存储 器的相应位置依次获取所述配置信息,配置给DMA。所述DMA在本发明中 位于CPU内部,其结构和工作原理与现有技术相同,在此不再赘述。
9步骤206,所述DMA依次根据所述配置信息传输数据。即依据所述配置 信息,把源地址指定长度的数据传输到目的地址。其中,DMA通过CPU和外 部总线的接口与外部总线进行通信。本发明优选的是,增加DMA专用数据接 口,用于DMA与总线连接,进行与CPU外部的通信。
为了本领域技术人员更好的理解本发明,以下通过方法实施例2进一步说 明本发明DMA数据传输的方法。
例如现有两段不连续的一维数据需要从CPU外部传输到CPU内部。具 体传输方法参见图3。
步骤301, CPU将两次DMA传输数据的配置信息存储在数据存储器中; 其中第一次DMA传输配置信息存储在0xFF000000处,具体配置信息为source address 0x10000000 destination address 0x00000000, 数据长度寄存器 0x00000100,控制寄存器0x00000000,即从CPU外部地址0x10000000向内 部地址0x00000000传送一段数据,数据长度为0x100,即256字节;第二次 传输配置信息存储在OxFFOOOOlO处,具体配置信息为source address OxFOOOOOOO destination address 0x00001000,数据长度寄存器0x00000110,控 制器寄存器0x00000001,即从CPU外部地址OxFOOOOOOO向内部地址 0x00001000传送一,殳数据,数据长度为0x110,即272字节。
步骤302, CPU配置列表寄存器为OxFFOOOOOO,即指向第一次DMA配 置信息存储的位置。
步骤303, CPU配置DMA通过DMA管理器开始工作。
步骤304, DMA管理器从所述列表寄存器中获取第一次DMA配置信息 的存储位置信息0xFF000000。
步骤305, DMA管理器从OxFFOOOOOO处获取第一次传输的配置信息,并 将所述配置信息配置DMA的地址寄存器、数据长度寄存器和控制寄存器。
步骤306, DMA依据所述配置信息开始传输数据,即从CPU外部地址 0x10000000向内部地址0x00000000传送长度为256字节的数据。
步骤307, DMA管理器根据控制寄存器中的控制信息的最后一位,判断
10是否进行下一次数据传输。由于第一次配置信息中的控制信息的最后一位为
0, 表示接下来还有DMA数据传输,由此接下来进行下一步骤。
步骤308, DMA管理器通过设置所述加法器,对列表寄存器中的信息进 行加法运算,得到第二次传输的存储位置信息。
即由加法器把当前的存储位置信息与配置信息固定长度值相加,也就是 0xFF000000+0x00000010=0xFF000010,得到第二次传输的存储位置信息 0xFF000010。此处设置配置信息固定长度值为0x00000010,只是为了举例说 明,并不能看作是对本发明的限制,所述固定长度值还可以是其他的与配置信 息相应的值。
步骤309, DMA管理器从地址OxFFOOOOlO处获得第二次传输的配置信息, 并将所述配置信息配置DMA的地址寄存器、数据长度寄存器和控制寄存器。
步骤310, DMA依据所述配置信息开始传输数据,即从CPU外部地址 0xF0000000向内部地址0x00001000传送长度为272字节的数据。
步骤311, DMA管理器根据所述第二次传输中的控制信息的最后一位为
1, 判断在第二次DMA传输完成后,结束数据传输,向CPU发送中断。
当然上述方法只是一个具体的例子,当有多段不连续的一维数据需要传输 时,具体过程与上述类似。当然,本发明对于数据的传输,可以实现从CPU 外部到CPU内部的传输,也可以实现CPU内部到CPU外部的传输,具体过 程不再赘述。
本发明还示出了 一种CPU实施例,所述CPU除了包括总控制器、存储控 制器和运算器以外,还包括DMA数据传输系统。对于所述总控制器、存储控 制器和运算器,属于现有技术,在此不再赘述。下面具体介绍所述DMA数据 传输系统,该系统包括
数据存储器,用于存储多个DMA数据配置信息;
列表寄存器,用于存储所述DMA数据配置信息的存储位置信息;
其中,所述数据存储器和列表寄存器中的信息是由总控制器配置的;
DMA管理器,用于从所述列表寄存器中获取所述配置信息的存储位置信息,并从所述数据存储器的相应位置获取所述配置信息,配置给DMA; 所述DMA,用于依据所述配置信息执行数据传输。
本说明书中的各个实施例均釆用递进的方式描述,每个实施例重点说明的 都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种DMA数据传输系统及方法和一种中央处理 器,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行 了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同 时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用 范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种DMA数据传输系统,其特征在于,所述DMA数据传输系统设置于CPU内部,并通过系统总线和CPU外部通信,所述数据传输系统包括数据存储器,用于存储多个DMA数据配置信息;列表寄存器,用于存储所述DMA数据配置信息的存储位置信息;所述数据存储器和列表寄存器中的信息是由CPU配置的;DMA管理器,用于从所述列表寄存器中获取所述配置信息的存储位置信息,并从所述数据存储器的相应位置获取所述配置信息,配置给DMA;DMA,用于依据所述配置信息执行数据传输。
2、 4艮据权利要求1所述的数据传输系统,其特征在于,所述配置信息包括源地址信息、目标地址信息、数据长度信息和控制信息。
3、 根据权利要求2所述的数据传输系统,其特征在于,所述控制信息包 括一个判断位,用于判断DMA是否继续执行数据传输。
4、 根据权利要求l所述的数据传输系统,其特征在于, 所述数据存储器和列表寄存器中的信息是由CPU—次配置完成的;DMA管理器在每次数据传输完成后,将下一次数据传输的信息配置给DMA。
5、 根据权利要求4所述的数据传输系统,其特征在于,还包括加法器, 在每次数据传输完成后,进行下一次数据传输时,DMA管理器设置所述加法 器对所述列表寄存器中的存储位置信息进行加法运算,得到下一次DMA数据 配置信息的存储位置信息。
6、 根据权利要求1所述的数据传输系统,其特征在于,系统总线设有专 用于DMA的数据接口。
7、 一种DMA数据传输方法,其特征在于,所述方法包括CPU通过内部数据线执行以下操作将多次DMA数据配置信息存储到数 据存储器;并将所述DMA数据配置信息的存储位置信息存储到列表寄存器;DMA管理器从所述列表寄存器中依次获取DMA配置信息的存储位置信 息,并从所述数据存储器的相应位置依次获取所述配置信息,配置给设置于CPU内部的DMA;所述DMA依次根据所述配置信息传输数据,通过系统总线和CPU外部 进行通信。
8、 根据权利要求7所述的数据传输方法,其特征在于, 所述配置信息包括一个判断位;所述DMA管理器从所述数据存储器中依次获取所述配置信息时,读取所 述判断位,用于判断DMA是否继续传输数据。
9、 根据权利要求7所述的数据传输方法,其特征在于, 所述数据存储器和列表寄存器中的信息是由CPU—次配置完成的; 每次数据传输完成后,DMA管理器配置下一次数据传输的信息给DMA。
10、 根据权利要求7所述的数据传输方法,其特征在于, 在每次数据传输完成后,进行下一次数据传输时,DMA管理器设置所述加法器对所述列表寄存器中的存储位置信息进行加法运算,得到下一次DMA 数据配置信息的存储位置信息。
11、 根据权利要求7所述的数据传输方法,其特征在于,DMA通过设于 系统总线上的专用数据接口与CPU外部进行通信。
12、 一种中央处理器,包括总控制器、存储控制器和运算器,其特征在于, 还包括DMA数据传输系统,所述DMA数据传输系统包括数据存储器,用于存储多个DMA数据配置信息; 列表寄存器,用于存储所述DMA数据配置信息的存储位置信息; 所述数据存储器和列表寄存器中的信息是由总控制器配置的; DMA管理器,用于从所述列表寄存器中获取所述配置信息的存储位置信 息,并从所述数据存储器的相应位置获取所述配置信息,配置给DMA; DMA,用于依据所述配置信息执行数据传输。
全文摘要
本发明提供了一种DMA数据传输系统及方法和一种中央处理器,该DMA数据传输系统设置于CPU内部,该传输系统包括数据存储器,用于存储多个DMA数据配置信息;列表寄存器,用于存储配置信息的存储位置信息;数据存储器和列表寄存器中的信息是由CPU配置的;DMA管理器,用于从列表寄存器中获取存储位置信息,并从数据存储器的相应位置获取配置信息,配置给DMA;DMA,用于执行数据传输。在本发明中,CPU通过其内部连线对DMA进行信息配置,节约了总线资源;且由于增加了DMA管理器和列表寄存器,CPU可以一次把多段数据传输的配置信息发送给DMA,DMA不间断的执行完多段数据传输,从而提高了CPU和DMA的工作效率。
文档编号G06F13/20GK101452427SQ20081022666
公开日2009年6月10日 申请日期2008年11月19日 优先权日2008年11月19日
发明者艳 石 申请人:北京红旗胜利科技发展有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1