【技术实现步骤摘要】
一种基于sgl链表的DMA传输方法
本专利技术属于数据处理
,具体涉及一种基于sgl链表的DMA传输方法。
技术介绍
DMA(DirectMemoryAccess,直接内存存取)传输是将数据从一个地址空间复制到另外一个地址空间的传输方式。CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA传输方式对于高效能嵌入式系统算法和网络是很重要的。在传统DMA方式传输数据的过程中,要求源物理地址和目标物理地址必须是连续的。但在有的体系中,连续的存储器地址不一定是连续的,则采用DMA方式传输数据要分成多次完成,CPU需要多次向DMA发起命令。例如,传输完一块物理地址连续的数据后,CPU向DMA发起一次中断命令,然后,CPU再向DMA发起针对进行下一块物理地址连续的数据的传输命令,直至完成所有的数据,发起CPU再向DMA发起中断命令。其中第一块物理地址连续的数据中的第一个地址为源物理地址,第二个地址为此一块物理地址连续的数据中的第一个地址的目标物理地址。例如,当我们要建立一个从内存到磁盘的DMA数据传输,数据存储在物理地址不连续的缓存区中。那么CPU通常会为这些不连续的缓存区中的每一个缓存区做一次传输,即每次传输时均重新发起一次DMA命令。或者把这些不连续的缓存区里的数据全都移动到另一个很大的物理地址连续的缓存区里边,然后再发起DMA命令,开始传输。当我们要建立一个从磁盘向内存的数DMA据传输,也是需要通过中间的块移动,将数据块分散到内存中不联续的物理地址中。可见,现有的D ...
【技术保护点】
1.一种基于sgl链表的DMA传输方法,应用于CPU中,其特征在于,包括以下步骤:确定当次DMA传输的数据的大小和所有存储地址;配置sgl entry链表,用第一寄存器SGL MEN来存储所述sgl entry链表,所述sgl entry链表包括至少一个sgl entry,每个sgl entry携带一块存储地址连续的被传输数据的数据大小信息、所述被传输数据的存储地址信息以及下一个sgl entry对应的被传输数据的存储地址信息,其中,每个sgl entry对应一个index,每个index指向一个第一寄存器中的寄存地址,所述寄存地址连续;确定当前DMA传输对应的sgl entry链表的起始sgl entry对应的index在第一寄存器SGL MEN中的寄存地址;发起DMA传输命令,将所述DMA传输命令发送至DMA控制器,使得所述DMA控制器根据所述起始sgl entry对应的index,从所述SGL MEN中找到相应的起始sgl entry后,开始按照所述sgl entry中的存储地址传输数据至第二寄存器DATA MEN中。
【技术特征摘要】
1.一种基于sgl链表的DMA传输方法,应用于CPU中,其特征在于,包括以下步骤:确定当次DMA传输的数据的大小和所有存储地址;配置sglentry链表,用第一寄存器SGLMEN来存储所述sglentry链表,所述sglentry链表包括至少一个sglentry,每个sglentry携带一块存储地址连续的被传输数据的数据大小信息、所述被传输数据的存储地址信息以及下一个sglentry对应的被传输数据的存储地址信息,其中,每个sglentry对应一个index,每个index指向一个第一寄存器中的寄存地址,所述寄存地址连续;确定当前DMA传输对应的sglentry链表的起始sglentry对应的index在第一寄存器SGLMEN中的寄存地址;发起DMA传输命令,将所述DMA传输命令发送至DMA控制器,使得所述DMA控制器根据所述起始sglentry对应的index,从所述SGLMEN中找到相应的起始sglentry后,开始按照所述sglentry中的存储地址传输数据至第二寄存器DATAMEN中。2.根据权利要求1所述的一种基于sgl链表的DMA传输方法,其特征在于,所述sglentry链表最大支持2048个sglentry。3.根据权利要求1所述的一种基于sgl链表的DMA传输方法,其特征在于,DMA控制器对sglentry中的被传输数据的最小传输单位为512Byte。4.根据权利要求1所述的一种基于sgl链表的DMA传输方法,其特征在于,所述发起DMA传输命令,将所述DMA传输命令发送至DMA控制器,使得所述DMA控制器根据所述起始sglentry对应的index,从所述SGLMEN中找到相应的起始sglentry后,开始按照sglentry中的存储地址传输数据至第二寄存器DATAMEN中,具体是指,DMA控制器根据起始sglentry对应的起始sglentryindex,从SGLMEN中找到起始sglentry中对应的第一块存储地址连续的被传输数据的起始存储地址,按照所述起始存储地址将所述起始sglentry中对应的被传输数据,按照所述数据大...
【专利技术属性】
技术研发人员:郑文霞,彭鹏,姜黎,
申请(专利权)人:湖南国科微电子股份有限公司,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。