一种DMA数据传输方法及系统技术方案

技术编号:21547730 阅读:26 留言:0更新日期:2019-07-06 21:21
本发明专利技术实施例提供了一种DMA数据传输方法及系统;所述方法应用于主板,所述主板包括主处理器、主内存、系统总线、桥片、桥片内存、DMA控制器、外设;主内存、桥片分别通过系统总线与主处理器连接;桥片内存、DMA控制器、外设分别与桥片连接;所述方法包括:当检测到针对该外设的数据传输请求时,将预设的该桥片内存的物理地址空间分配为针对该外设的DMA缓冲区;该桥片内存的物理地址空间与该主内存中存储的内核的虚拟地址空间已建立映射;获取该外设的存储地址空间,以及与该DMA缓冲区对应的内核的虚拟地址空间;调用该DMA控制器,通过该外设的存储地址空间、该内核的虚拟地址空间,控制该外设与该桥片内存之间的数据传输;提高了DMA数据传输的性能。

A Method and System of DMA Data Transmission

【技术实现步骤摘要】
一种DMA数据传输方法及系统
本专利技术涉及数据处理领域,具体地涉及一种DMA数据传输方法以及一种DMA数据传输系统。
技术介绍
DMA(DirectMemoryAccess,直接内存存取)数据传输可以以两种方式触发,一种是在驱动程序中请求,另外一种是硬件异步传输。第一种方式是主动的,一般情况是由驱动程序指示DMA控制器,从给定的DMA缓冲区中传输数据,传输是主动的,传输完成后,会产生中断,告诉操作系统,传输完毕。第二种是被动方式,为某个具体的外设分配一个DMA缓冲区,然后在数据缓冲区填满的时候,产生中断告诉操作系统,可以进行传输了。现有技术中,DMA数据传输都是DMA控制器通过系统总线,例如HT总线(HyperTransport,端对端总线技术)控制外设与CPU(CentralProcessingUnit,主处理器)的主内存进行数据传输的。但是,系统总线总是处于被CPU占用的状态,进行DMA传输时需要DMA控制器向CPU频繁地申请系统总线的使用周期;因此对于千兆网卡、EHCI(EnhancedHostControllerInterface,增强型主机控制器接口)等高速外设而言,上述系统总线会制约DMA数据传输的性能。
技术实现思路
鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种DMA数据传输方法及系统,以提高DMA数据传输的性能。相应的,本专利技术实施例还提供了一种DMA数据传输系统,用以保证上述方法的实现及应用。为了解决上述问题,本专利技术实施例公开了一种DMA数据传输方法,所述方法应用于主板,所述主板包括主处理器、主内存、系统总线、桥片、桥片内存、DMA控制器、外设;所述主内存、所述桥片分别通过所述系统总线与所述主处理器连接;所述桥片内存、所述DMA控制器、所述外设分别与所述桥片连接;所述方法包括:当检测到针对所述外设的数据传输请求时,将预设的所述桥片内存的物理地址空间分配为针对所述外设的DMA缓冲区;所述桥片内存的物理地址空间与所述主内存中存储的内核的虚拟地址空间已建立映射;获取所述外设的存储地址空间,以及与所述DMA缓冲区对应的内核的虚拟地址空间;调用所述DMA控制器,通过所述外设的存储地址空间、所述内核的虚拟地址空间,控制所述外设与所述桥片内存之间的数据传输。可选地,所述将预设的所述桥片内存的物理地址空间分配为针对所述外设的DMA缓冲区,包括:将预设的所述桥片内存的物理地址空间声明为针对所述外设的DMA缓冲区;所述桥片内存的物理地址空间与所述主内存中存储的内核的虚拟地址空间已建立映射;采用一致性DMA映射函数,为所述外设分配所述DMA缓冲区。可选地,在所述当检测到针对所述外设的数据传输请求时,将预设的所述桥片内存的物理地址空间分配为针对所述数据传输请求的DMA缓冲区的步骤之前,所述方法还包括:建立所述桥片内存的物理地址空间与所述内核的虚拟地址空间之间的映射。可选地,所述建立所述桥片内存的物理地址空间与所述内核的虚拟地址空间之间的映射的步骤,包括:建立所述桥片内存中显存对应的物理地址空间与所述内核的虚拟地址空间之间的映射。可选地,所述方法还包括:释放所述DMA缓冲区。本专利技术实施例还公开了一种DMA数据传输系统,所述系统应用于主板,所述主板包括主处理器、主内存、系统总线、桥片、桥片内存、DMA控制器、外设;所述主内存、所述桥片分别通过所述系统总线与所述主处理器连接;所述桥片内存、所述DMA控制器、所述外设分别与所述桥片连接;所述系统包括:分配模块,用于当检测到针对所述外设的数据传输请求时,将预设的所述桥片内存的物理地址空间分配为针对所述外设的DMA缓冲区;所述桥片内存的物理地址空间与所述主内存中存储的内核的虚拟地址空间已建立映射;获取模块,用于获取所述外设的存储地址空间,以及与所述DMA缓冲区对应的内核的虚拟地址空间;控制模块,用于调用所述DMA控制器,通过所述外设的存储地址空间、所述内核的虚拟地址空间,控制所述外设与所述桥片内存之间的数据传输。可选地,所述分配模块包括:声明单元,用于将预设的所述桥片内存的物理地址空间声明为针对所述外设的DMA缓冲区;所述桥片内存的物理地址空间与所述主内存中存储的内核的虚拟地址空间已建立映射;分配单元,用于采用一致性DMA映射函数,为所述外设分配所述DMA缓冲区。可选地,所述系统还包括:映射模块,用于建立所述桥片内存的物理地址空间与所述内核的虚拟地址空间之间的映射。可选地,所述映射模块包括:显存复用映射单元,用于建立所述桥片内存中显存对应的物理地址空间与所述内核的虚拟地址空间之间的映射。可选地,所述系统还包括:释放模块,用于释放所述DMA缓冲区。本专利技术实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一个或多个所述的DMA数据传输方法。本专利技术实施例包括以下优点:本专利技术实施例应用于上述主板中的外设与桥片内存之间的DMA数据传输,通过预先建立内核的虚拟地址空间与桥片内存的物理地址空间的映射;在进行数据传输前,将与上述物理地址空间对应的虚拟地址空间分配为DMA缓冲区;从而通过DMA控制器控制上述外设与上述桥片内存之间的DMA数据传输;整个DMA传输过程是通过桥片(具有总线功能,相当于片内总线)进行传输的,而不通过系统总线,因此避免了上述系统总线制约DMA数据传输的问题,提高了DMA数据传输的性能。附图说明图1是本专利技术的一种DMA数据传输方法适用的主板的示意图;图2是本专利技术的一种DMA数据传输方法适用的主板的桥片结构的示意图;图3是本专利技术的一种DMA数据传输方法实施例的步骤流程图;图4是本专利技术的另一种DMA数据传输方法实施例的步骤流程图;图5是本专利技术的一种DMA数据传输系统实施例的结构框图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。参照图1上述,示出了本专利技术实施例适用的主板的示意图;其中,上述主板至少包括主处理器101、主内存102、系统总线103、桥片104、桥片内存105、DMA控制器106、外设107;上述主内存102、上述桥片104分别通过上述系统总线103与上述主处理器101连接;上述桥片内存105、上述DMA控制器106、上述外设107分别与上述桥片104连接。外设是指连在计算机主机以外的硬件设备,对数据和信息起着传输、转送和存储的作用,是计算机系统中的重要组成部分;常见的外设有硬盘、网卡、USB闪存盘等。上述桥片具有总线功能;示例性地,参照图2所示的一种桥片结构,其中,桥片可以包括处理器节点202以及多级总线结构203(片内总线);上述处理器节点202可以通过HT总线201与主处理器连接;上述多级总线结构203分别连接处理器节点202、桥片内存204、DMA控制器205外设USB(UniversalSerialBus,通用串行总线)接口206等;当然,上述多级总线结构203还可以连接图像处理器、各类接口,以及网卡、硬盘等其它外设,这里不再赘述。本专利技术实施例的核心构思之一在于,针对上述的主板,通过预先建立内核的虚拟地址空间与桥片内存的物理地址空间的映射;在进行数据传输前,将与上述物理地址空间对应本文档来自技高网...

【技术保护点】
1.一种DMA数据传输方法,其特征在于,所述方法应用于主板,所述主板包括主处理器、主内存、系统总线、桥片、桥片内存、DMA控制器、外设;所述主内存、所述桥片分别通过所述系统总线与所述主处理器连接;所述桥片内存、所述DMA控制器、所述外设分别与所述桥片连接;所述方法包括:当检测到针对所述外设的数据传输请求时,将预设的所述桥片内存的物理地址空间分配为针对所述外设的DMA缓冲区;所述桥片内存的物理地址空间与所述主内存中存储的内核的虚拟地址空间已建立映射;获取所述外设的存储地址空间,以及与所述DMA缓冲区对应的内核的虚拟地址空间;调用所述DMA控制器,通过所述外设的存储地址空间、所述内核的虚拟地址空间,控制所述外设与所述桥片内存之间的数据传输。

【技术特征摘要】
1.一种DMA数据传输方法,其特征在于,所述方法应用于主板,所述主板包括主处理器、主内存、系统总线、桥片、桥片内存、DMA控制器、外设;所述主内存、所述桥片分别通过所述系统总线与所述主处理器连接;所述桥片内存、所述DMA控制器、所述外设分别与所述桥片连接;所述方法包括:当检测到针对所述外设的数据传输请求时,将预设的所述桥片内存的物理地址空间分配为针对所述外设的DMA缓冲区;所述桥片内存的物理地址空间与所述主内存中存储的内核的虚拟地址空间已建立映射;获取所述外设的存储地址空间,以及与所述DMA缓冲区对应的内核的虚拟地址空间;调用所述DMA控制器,通过所述外设的存储地址空间、所述内核的虚拟地址空间,控制所述外设与所述桥片内存之间的数据传输。2.根据权利要求1所述的方法,其特征在于,所述将预设的所述桥片内存的物理地址空间分配为针对所述外设的DMA缓冲区,包括:将预设的所述桥片内存的物理地址空间声明为针对所述外设的DMA缓冲区;所述桥片内存的物理地址空间与所述主内存中存储的内核的虚拟地址空间已建立映射;采用一致性DMA映射函数,为所述外设分配所述DMA缓冲区。3.根据权利要求1所述的方法,其特征在于,在所述当检测到针对所述外设的数据传输请求时,将预设的所述桥片内存的物理地址空间分配为针对所述数据传输请求的DMA缓冲区的步骤之前,所述方法还包括:建立所述桥片内存的物理地址空间与所述内核的虚拟地址空间之间的映射。4.根据权利要求1所述的方法,其特征在于,所述建立所述桥片内存的物理地址空间与所述内核的虚拟地址空间之间的映射的步骤,包括:建立所述桥片内存中显存对应的物理地址空间与所述内核的虚拟地址空间之间的映射。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:释放所述DMA缓冲区。6.一种DMA...

【专利技术属性】
技术研发人员:马帅
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1