异步拷贝方法和装置制造方法及图纸

技术编号:23470518 阅读:33 留言:0更新日期:2020-03-06 12:39
本发明专利技术公开了异步拷贝方法和装置,方法包括以下步骤:获取异步拷贝请求;根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合,其中通道集合包括至少一通道;根据通道集合和异步拷贝请求,进行异步拷贝。通过本发明专利技术的通道分配算法进行通道分配,能根据异步拷贝请求提供合适的通道,利用合适的通道进行异步拷贝的任务,能将多通道的优势最大化,提高异步拷贝的性能。本发明专利技术作为一种异步拷贝方法和装置,可广泛应用于数据传输技术领域。

Asynchronous copy methods and devices

【技术实现步骤摘要】
异步拷贝方法和装置
本专利技术涉及数据传输领域,尤其是一种异步拷贝方法和装置。
技术介绍
存储性能开发套件SPDK(StoragePerformanceDevelopmentKit),能实现基于I/OAT技术的DMA驱动,I/OAT为DMA控制器,通过SPDK和I/OAT能够借用专用的DMA硬件中的通道(DMA通道)进行异步拷贝工作。其中,异步拷贝指的是接收到请求后,CPU自身不进行拷贝,而将拷贝工作交给DMA控制器来进行拷贝工作。现今的SPDK,在接收到异步拷贝请求后,通过DMA控制器,利用DMA通道进行异步拷贝工作,然而由于DMA通道具有多个,无法在多个DMA通道中进行合理分配,使用过多通道会导致通道控制权的开销大幅增加,如果用户程序无法处理这些开销,会导致某些通道的阻塞,使得多通道的优势无法发挥,最终影响异步拷贝性能。
技术实现思路
有鉴于此,为了解决上述技术问题,本专利技术的目的是提供一种提高异步拷贝性能的异步拷贝方法和装置。本专利技术采用的技术方案是:异步拷贝方法,包括以下步骤:获取异步拷贝请求;根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合,其中通道集合包括至少一通道;根据通道集合和异步拷贝请求,进行异步拷贝。进一步,所述根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合的步骤中,包括以下步骤:获取权限;根据获取权限后的异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合。进一步,所述根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合的步骤中,包括以下步骤:根据异步拷贝请求和预设阈值确定待分配通道数量;获取通道的热度系数;根据待分配通道数量和热度系数,得到通道集合。进一步,还包括以下步骤:根据通道集合,更新通道的热度系数。进一步,所述根据待分配通道数量和热度系数,得到通道集合的步骤中,包括以下步骤:根据热度系数和预设比例,确定候选通道组合;确定候选通道组合中候选通道的数量是否大于或等于待分配通道数量;若是,从候选通道中选取与待分配通道数量相同的候选通道,作为所述通道集合;否则,增加补充通道,将补充通道与候选通道作为所述通道集合。进一步,所述增加补充通道,将补充通道与候选通道作为所述通道集合的步骤中,包括以下步骤:获取异步拷贝请求内存所对应的源地址和目的地址;获取通道与所述源地址和/或所述目的地址所在节点的物理距离;根据所述物理距离,从候选通道以外的通道中选择补充通道;将补充通道与候选通道组成所述通道集合。进一步,所述根据通道集合和异步拷贝请求,进行异步拷贝的步骤中,包括以下步骤:根据通道集合中通道的数量,将异步拷贝请求分成与所述通道的数量相同个数的任务;为所述通道集合中的每一通道对应分配一个所述任务,进行异步拷贝。进一步,所述为所述通道集合中的每一通道对应分配一个所述任务,进行异步拷贝的步骤中,包括以下步骤:将所述任务细化为细化任务;根据细化任务,确定需要的描述符数量,其中一个描述符对应一个细化任务;获取入队控制权;根据获取入队控制权结果,进行源页面和目的页面的偏移量计算,其中,异步拷贝请求对应的源地址内存具有至少一个源页面,异步拷贝请求对应的目的地址内存具有至少一个目的页面;根据描述符数量和偏移量计算结果,进行描述符队伍填充,其中描述符队伍具有至少一个所述描述符;根据描述符队伍填充结果,进行异步拷贝。本专利技术还提供异步拷贝装置,包括:获取模块,用于获取异步拷贝请求;分配模块,用于根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合,其中通道集合包括至少一通道;处理模块,用于根据通道集合和异步拷贝请求,进行异步拷贝。本专利技术还提供异步拷贝装置,包括:至少一处理器;至少一存储器,用于存储至少一程序;当所述至少一程序被所述至少一处理器执行,使得所述至少一处理器实现所述异步拷贝方法。本专利技术的有益效果是:根据接收的异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合,根据通道集合和异步拷贝请求,进行异步拷贝;本专利技术通过通道分配算法进行通道分配,能根据异步拷贝请求提供合适的通道,利用合适的通道进行异步拷贝的任务,能将多通道的优势最大化,提高异步拷贝的性能。附图说明图1为本专利技术方法的步骤流程示意图;图2为本专利技术具体实施例的框架层次图。具体实施方式下面结合说明书附图和具体实施例对本专利技术作进一步解释和说明。对于本专利技术实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。如图1所示,异步拷贝方法,包括以下步骤:获取异步拷贝请求;根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合,其中通道集合包括至少一通道;根据通道集合和异步拷贝请求,进行异步拷贝。在本实施例中,所述通道为物理DMA通道,在SPDK中被具体抽象成通道结构体(structspdk_ioat_chan),每个通道结构体代表唯一的DMA通道。针对现有的SPDK提供的异步拷贝接口:1)无法满足多线程并发地使用同一通道;2)用户程序发送异步拷贝请求必须感知DMA通道;3)多个用户线程同时调用该异步拷贝接口使用同一DMA通道时,DMA通道队伍数据会被不同线程随意删改;4)用户程序难以合理使用多个通道的缺点。在本实施例中,利用Linux内核kfifo无锁队列的入队出队算法(或DPDK无锁队伍入队出队算法),重新设计一个新接口ioat_copy,为NUMA架构用户程序提供异步的NUMA远端内存拷贝接口(NUMA结构-Non-UniformMemoryAccess,将内存和处理器逻辑地分为多个NUMA节点,每个节点包含一定数量的处理器和内存,节点之间通过内部传输链路IC(Inter-Connects)连接并通信),以实现多线程无锁和并发地入队出队同一通道的支持。新接口声明如下:structspdk_ioat_chan*ioat_copy(void*cb_arg,void(*cb_fn)(*void),void*dst,constvoid*src,uint64_tnbytes)其中,dst和src均可是本地内存或远端内存的虚拟地址(对于一个处理器CPU来说,本地内存--该处理器CPU位于同一个节点的内存,远端内存--与该处理器CPU位于不同节点的内存),它们分别表示目的地址和源地址。参数nbytes表示数据拷贝的长度(单位为字节),表示将虚拟地址为src至src+nbytes的源数据段拷贝到虚拟地址为dst至dst+nbytes这目的数据段上。cb为回调函数,参数fn和arg为回调本文档来自技高网...

【技术保护点】
1.异步拷贝方法,其特征在于,包括以下步骤:/n获取异步拷贝请求;/n根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合,其中通道集合包括至少一通道;/n根据通道集合和异步拷贝请求,进行异步拷贝。/n

【技术特征摘要】
1.异步拷贝方法,其特征在于,包括以下步骤:
获取异步拷贝请求;
根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合,其中通道集合包括至少一通道;
根据通道集合和异步拷贝请求,进行异步拷贝。


2.根据权利要求1所述异步拷贝方法,其特征在于:所述根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合的步骤中,包括以下步骤:
获取权限;
根据获取权限后的异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合。


3.根据权利要求1所述异步拷贝方法,其特征在于:所述根据异步拷贝请求,利用通道分配算法进行通道分配,得到通道集合的步骤中,包括以下步骤:
根据异步拷贝请求和预设阈值确定待分配通道数量;
获取通道的热度系数;
根据待分配通道数量和热度系数,得到通道集合。


4.根据权利要求3所述异步拷贝方法,其特征在于:还包括以下步骤:
根据通道集合,更新通道的热度系数。


5.根据权利要求3所述异步拷贝方法,其特征在于:所述根据待分配通道数量和热度系数,得到通道集合的步骤中,包括以下步骤:
根据热度系数和预设比例,确定候选通道组合;
确定候选通道组合中候选通道的数量是否大于或等于待分配通道数量;
若是,从候选通道中选取与待分配通道数量相同的候选通道,作为所述通道集合;
否则,增加补充通道,将补充通道与候选通道作为所述通道集合。


6.根据权利要求5所述异步拷贝方法,其特征在于:所述增加补充通道,将补充通道与候选通道作为所述通道集合的步骤中,包括以下步骤:
获取异步拷贝请求内存所对应的源地址和目的地址;
获取通道与所述源地址和/或所述...

【专利技术属性】
技术研发人员:李丁丁陈振科刘海汤庸
申请(专利权)人:华南师范大学
类型:发明
国别省市:广东;44

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

1