一种直接内存访问驱动系统实现流水化操作的方法技术方案

技术编号:39059602 阅读:16 留言:0更新日期:2023-10-12 19:52
本发明专利技术提供一种直接内存访问驱动系统实现流水化操作的方法,包括:于需要传送的每一段数据末尾指定预定长度的数据作为末尾标志;通过每个DMA任务描述符获取主机数据缓存区的信息;根据每个主机数据缓存区信息的信息长度,分别初始化本地对应的目标数据缓存区末尾对应所述标志的长度;批量地处理DMA任务;根据每个DMA任务的顺序,检查对应的目标数据缓存区的末尾标志,如与末尾标志一致则判断,当前目标数据缓存区对应的DMA任务已经完成,如不一致则反复读取末尾标志,直至一致则判断当前目标数据缓存区对应的DMA任务已经完成。本发明专利技术提供了实现流水线化的操作方法。明提供了实现流水线化的操作方法。明提供了实现流水线化的操作方法。

【技术实现步骤摘要】
一种直接内存访问驱动系统实现流水化操作的方法


[0001]本专利技术属于电子
,尤其涉及一种直接内存访问驱动系统实现流水化操作的方法。

技术介绍

[0002]DMA(直接内存访问)是一种数据传输方式,它允许计算机的内存直接与硬件设备进行数据交换,而不需要CPU的干预。在这个过程中,DMA驱动系统与DMA engine(DMA引擎)互相交互,完成数据传输操作。
[0003]操作流水线化,是指可以将任务分成多个阶段进行并行处理,以节省大量时间。在执行流水线时,需要将任务分为多个阶段,每个阶段对应一个特定的任务,并且每个任务都按照相同的顺序执行。
[0004]DMA(直接内存访问)驱动系统在批量完成数据传输操作时,会遇到完成确认不及时或不能保序的困难,而难以实现流水化操作。因此,本领域目前缺乏一种实现流水线化的操作方法及其系统。
[0005]基于以上,本申请提供了解决以上技术问题的技术方案。

技术实现思路

[0006]针对现有技术中直接内存访问操作完成确认不及时以及不能保序的问题,现提供一种直接内存访问驱动系统流水线化的方法,应用于一PCIe设备通过DMA读操作将主机数据缓存区中的数据读取至所述PCIe设备的本地缓存,具体技术方案包括:于需要传送的每一段数据末尾均指定一预定长度的标志;通过每个DMA任务描述符获取主机数据缓存区的信息;根据每个所述主机数据缓存区的信息的长度,分别初始化本地对应的目标数据缓存区末尾对应所述标志的长度;批量地处理所述DMA任务;根据每个所述DMA任务的顺序,检查对应的所述目标数据缓存区末尾的所述标志的储存位置,如当前的所述标志的储存位置中的内容与所述标志一致,则判断当前所述目标数据缓存区对应的DMA任务已经完成;如不一致则反复读取所述标志的储存位置,直至所述标志的储存位置中的内容与所述标志一致,则判断当前所述目标数据缓存区对应的DMA任务已经完成。
[0007]在本专利技术的一个具体实施方式中,所述预定长度为1字节、2字节、4字节、6字节、8字节、10字节、12字节或16字节。
[0008]在本专利技术的一个具体实施方式中,还包括,使每个包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序排列。
[0009]在本专利技术的一个具体实施方式中,所述主机数据缓存区的信息包括:主机数据缓存区的物理地址,需要读取的数据长度以及所述标志的内容。
[0010]在本专利技术的一个具体实施方式中,使每个包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序排列包括:将包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序首尾相连的形成队列排列在本地数据缓存中,并于所述队列末尾增加表示队列尾部的标识。
[0011]在本专利技术的一个具体实施方式中,使每个包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序排列包括:将包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序以链表的形式排列在本地数据缓存中,并使所述链表头尾相连。
[0012]在本专利技术的一个具体实施方式中,使每个包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序排列包括:将包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序映射至一地址列表中。
[0013]在本专利技术的一个具体实施方式中,根据每个所述DMA任务的顺序,检查对应的所述目标数据缓存区末尾的所述标志的储存位置,包括:步骤S1,提供一指针指向对应DMA任务队列中的第一个任务的所述目标数据缓存区作为当前目标数据缓存区,通过所述指针读取所述当前目标数据缓存区的末尾的所述标志的储存区;步骤S2,判断所述当前目标数据缓存区的末尾的所述标志的储存区储存的内容与所述标志是否一致;步骤S3,如不一致则返回所述步骤S2;步骤S4,判断所述当前目标数据缓存区对应的DMA任务已经完成;步骤S5,判断所述当前目标数据缓存区是否对应所述DMA任务队列中的最后一个任务,如是,则判断DMA任务队列中的所有任务均已完成,并退出;步骤S6,使指针指向顺序下一个目标数据缓存区作为所述当前目标数据缓存区,并返回步骤S2。
[0014]在本专利技术的一个具体实施方式中,所述步骤S5中判断所述当前目标数据缓存区是否对应所述DMA任务队列中的最后一个任务,包括:判断所述当前目标数据缓存区是否为最后一个所述目标数据缓存区,如是,则判断所述当前目标数据缓存区对应所述DMA任务队列中的最后一个任务。
[0015]在本专利技术的一个具体实施方式中,批量处理所述DMA任务与根据每个所述DMA任务的顺序,检查对应的所述目标数据缓存区末尾的所述标志的储存位置同步进行。
[0016]本专利技术能够带来以下至少一种有益效果:1、读操作完成确认及时。特别是,在具体实施方式中通过轮询数据校验,可以第一时间确认目标缓存对应的读操作是否完成,能及时处理数据,提升性能。
[0017]2、读操作完成确认能保序。特别是,在具体实施方式中,轮询数据校验都是从环形队列head指向的目标缓存区开始,可以保证后面能顺序进行数据处理。
附图说明
[0018]下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、
优点及其实现方式予以进一步说明。
[0019]图1为现有的DMA读数据流程示意图;图2为本专利技术的一种直接内存访问驱动系统流水线化的方法的一个具体实施方式;图3为本专利技术的一种直接内存访问驱动系统流水线化的方法的一个具体实施方式;图4为本专利技术的一种直接内存访问驱动系统流水线化的方法的一个示例性的具体实施例。
具体实施方式
[0020]以下对本专利技术的各个方面进行进一步详述。
[0021]除非另有定义或说明,本文中所使用的所有专业与科学用语与本领域技术熟练人员所熟悉的意义相同。此外任何与所记载内容相似或均等的方法及材料皆可应用于本专利技术方法中。
[0022]除非另有明确的规定和限定,本专利技术中所述的“或”,包含了“和”的关系。所述“和”相当于布尔逻辑运算符“AND”,所述“或”相当于布尔逻辑运算符“OR”,而“AND”是“OR”的子集。
[0023]可以理解到,尽管术语“第一”、“第二”等等可以在此用来说明不同的元件,但是这些元件不应被这些术语限制。这些术语仅仅用来将一个元件与另一个元件区分开。因此,第一元件可以被称为第二元件,而不背离专利技术构思的教导。
[0024]本专利技术中,术语“含有”、“包含”或“包括”表示各种成分可一起应用于本专利技术的混合物或组合物中。因此,术语“主要由 ...组成”包含在术语“含有”、“包含”或“包括”中。
[0025]除非另有明确的规定和限定,本专利技术的术语“相连”、“连通”、“连接”应作广义理解,例如,可以是固定连接,也可以是通过中介媒介间相连,可以是两个元件内部的连通或者两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
[0026]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种直接内存访问驱动系统实现流水化操作的方法,其特征在于,应用于一PCIe设备通过DMA读操作将主机数据缓存区中的数据读取至所述PCIe设备的本地缓存,包括:于需要传送的每一段数据末尾均指定一预定长度的标志;通过每个DMA任务描述符获取主机数据缓存区的信息;根据每个所述主机数据缓存区的信息的长度,分别初始化本地对应的目标数据缓存区末尾对应所述标志的长度;批量地处理所述DMA任务;根据每个所述DMA任务的顺序,检查对应的所述目标数据缓存区末尾的所述标志的储存位置,如当前的所述标志的储存位置中的内容与所述标志一致,则判断当前所述目标数据缓存区对应的DMA任务已经完成;如不一致则反复读取所述标志的储存位置,直至所述标志的储存位置中的内容与所述标志一致,则判断当前所述目标数据缓存区对应的DMA任务已经完成。2.如权利要求1所述的直接内存访问驱动系统实现流水化操作的方法,其特征在于,所述预定长度为1字节、2字节、4字节、6字节、8字节、10字节、12字节或16字节。3.如权利要求1所述的直接内存访问驱动系统实现流水化操作的方法,其特征在于,还包括,使每个包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序排列。4.如权利要求1所述的直接内存访问驱动系统实现流水化操作的方法,其特征在于,所述主机数据缓存区的信息包括:主机数据缓存区的物理地址,需要读取的数据长度,以及所述标志的内容。5.如权利要求3所述的直接内存访问驱动系统实现流水化操作的方法,其特征在于,使每个包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序排列包括:将包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任务的顺序首尾相连的形成队列排列在本地数据缓存中,并于所述队列末尾增加表示队列尾部的标识。6.如权利要求3所述的直接内存访问驱动系统实现流水化操作的方法,其特征在于,使每个包含所述标志的储存位置的所述目标数据缓存区按照所述DMA任...

【专利技术属性】
技术研发人员:杨远远王伟何柏彦
申请(专利权)人:北京大禹智芯科技有限公司
类型:发明
国别省市:

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

1