一种集总式rdma链接管理的方法

文档序号:649761 发布日期:2021-05-14 浏览:12次 >En<

阅读说明:本技术 一种集总式rdma链接管理的方法 (Lumped RDMA link management method ) 是由 朱珂 王伟岐 王盼 林谦 王永胜 徐庆阳 王晓雪 姜海斌 夏云飞 袁婉甄 于 2021-03-02 设计创作,主要内容包括:本发明公开了一种集总式RDMA链接管理的方法,所述任务接受模块获取内核空间任务指示,发送请求信号至集总链接管理模块;所述任务完成模块根据自身工作状态发送请求信号至集总链接管理模块;所述集总链接管理模块将信息合理下发位域至各个子模块;所述发送组包模块空闲时发送请求信号至集总链接管理模块;所述接收解包模块根据接收包发送请求信号及对应链接序号至集总链接管理模块;所述片内缓存模块根据自身空闲及满、空状态发送请求信号收容不常用的Q序列。通过集总式链接管理模块的使用,实现了各子模块之间的信号隔离,降低了RDMA引擎耦合性,以及死锁等情况发生概率。(The invention discloses a method for managing lumped RDMA links, wherein a task receiving module acquires a kernel space task instruction and sends a request signal to a lumped link management module; the task completion module sends a request signal to the lumped link management module according to the working state of the task completion module; the lumped link management module reasonably sends information to each submodule through a transmission domain; the sending group package module sends a request signal to the lumped link management module when idle; the receiving and unpacking module sends a request signal and a corresponding link serial number to the lumped link management module according to a receiving packet; and the on-chip cache module sends a request signal to accommodate the unusual Q sequence according to the idle, full and empty states of the on-chip cache module. Through the use of the lumped link management module, signal isolation among the submodules is realized, and the RDMA engine coupling, deadlock and other conditions are reduced.)

一种集总式RDMA链接管理的方法

技术领域

本发明涉及通讯技术领域,尤其涉及一种集总式RDMA链接管理的方法。

背景技术

RDMA(Remote Direct Memory Access)意为远程直接地址访问,对应的引擎通过获取本地或对端设备指令,并将其解析校验通过后,直接将本地内存中的用户空间与对端内存用户空间进行数据搬移。此过程无需内核与用户空间的数据拷贝,提高了带宽通量并降低了时延,同时降低了CPU负荷,适用于对带宽与时延敏感的集群计算中。

RDMA数据搬移过程中,需要引擎进行链接初始化、切包限制、飞行时间、回复响应以及完成异常上报等状态进行有效管理,以期获得稳定高效的数据传输。协议自身的复杂性与外界环境的干扰性使引擎设计需要考虑较多情况,导致RDMA引擎内部的设计较为复杂。

目前RDMA引擎中通过划分功能各异的子模块来实现工作过程中不同状态的管理,各专用子模块通常存在直接信号交互。如引擎中同时存在发送模块与接收模块,当接收模块接收到异常报文需要通知对端RDMA引擎重新发送时,接收模块需要直接通知发送模块生成对应的请求报文;而任务接收模块从内存中获取新的任务描述符,然后下发至发送模块。此时发送模块将处理多个信号源,对模块自身的设计提出较高要求。

此种分布式的RDMA链接管理的方法在一定程度上能够提高系统的响应速率,但分布式的管理方法将会带来系统的耦合性较高,容易形成信号量依赖,存在死锁风险。且链接数量受限,并发程度较低;引擎内部的交互过多,扩展性受到较大限制。

发明内容

针对现有技术不足,本发明的目的在于提供一种集总式RDMA链接管理的方法,解决背景技术中的问题。

本发明提供如下技术方案:

一种集总式RDMA链接管理的方法,包括:任务接受模块、任务完成模块、集总链接管理模块、发送组包模块、接收解包模块和片内缓存模块;

所述任务接受模块获取内核空间任务指示,发送请求信号至集总链接管理模块;

所述任务完成模块根据自身工作状态发送请求信号至集总链接管理模块;

所述集总链接管理模块将信息合理下发位域至各个子模块;

所述发送组包模块空闲时发送请求信号至集总链接管理模块;

所述接收解包模块根据接收包发送请求信号及对应链接序号至集总链接管理模块;

所述片内缓存模块根据自身空闲及满、空状态发送请求信号收容不常用的Q序列。

优选的,在所述任务接受模块获取内核空间任务指示,发送请求信号至集总链接管理模块时,若集总链管理模块存在空闲位域且L,W位域段并未锁定,则回复任务接受模块指定位域段,同时将L位上锁,禁止其他子模块利用此位域;而任务接受模块则根据自内核空间获得任务特性填充此位域包括序列号Q,链接寄存器Registers,包处理上下文Context;集总链接管理模块接收位域后,则将L位解锁,其他子模块得以访问。

优选的,在任务完成模块根据自身工作状态发送请求信号至集总链接管理模块时,集总链接管理模块根据L,C位域回复任务完成模块相关信息,包括任务完成状态,异常信息;任务完成模块根据相关位域信息将其整合上报至内核空间,如果有中断使能则触发中断;集总链接管理模块接收到完成回复后则清空对应链接序列的位域,释放位域资源。

优选的,所述集总式链接管理模块需要根据各个子模块的请求信号并根据L,Q,W,C,T,R以及Registers等信息合理下发位域至各个子模块,以此实现对RDMA链接的有序管理。

优选的,在所述发送组包模块空闲时发送请求信号至集总链接管理模块时,若集总式链接管理模块存在空闲位域且L,T位域段并未锁定,则回复任务接受模块指定位域段,同时将L位上锁,禁止其他子模块利用此位域;发送组包模块根据Q,Register,Context提取有效信息,校验通过后,自用户空间取出待发送数据然后组包发送;集总式链接管理模块接收返回写入位域后,则将L位解锁,其他子模块得以访问。

优选的,所述接收解包模块根据接收包发送请求信号及对应链接序号至集总链接管理模块;若集总链接管理模块中存在Q被分配与链接序号相同的位域,则发送对应位域信息至接收解包模块;解包接收模块根据对应信息经过验证后再将对应传输数据传送至用户空间,同时写入集总链接管理模块;链接管理模块接收返回写入位域后,则将L位解锁,同时更新上下文Context其他子模块得以访问,若确定为最后一包数据,则将C位域段置位。

优选的,所述片内缓存模块根据自身空闲及满、空状态发送请求信号收容不常用的Q序列;链接管理模块根据每个位域忙闲及锁定位域L决定是否将此位域暂存至SRAM;若此位域不经常用到,则将其收容至缓存中,替换新的位域,以此实现大量链接的公平、高效调度。

优选的,RDMA引擎中增加发送接收子模块组提高系统带宽,或增加子模块且使用同样的握手方式改变任务处理环节。

优选的,集总链接管理模块中增加额外位域,记录链接资源缓存情况

优选的,所述片内缓存模块使用多组相连方式提高查找效率。

优选的,所述片内缓存模块还连接有片外大容量缓冲模块,增加RDMA引擎的缓存量。

与现有技术相比,本发明具有以下有益效果:

(1)本发明在于一种集总式RDMA链接管理的方法,通过集总式链接管理模块的使用,实现了各子模块之间的信号隔离,降低了RDMA引擎耦合性,以及死锁情况发生的概率。

(2)本发明在于一种集总式RDMA链接管理的方法,集总式链接管理模块在位域较少的情况下模块可在相对较高时钟下运行,子模块发出请求后可在较短时间内取得有效位域信息,一定程度上弥补了非分布式管理办法的所带来的响应速率较低的劣势。

(3)本发明在于一种集总式RDMA链接管理的方法,多级存储体系的构建,使得链接对被周期性的暂存至SRAM及SDRAM中,充分利用了数据包的飞行时间,使得高并发设计更加简单高效。

(4)本发明在于一种集总式RDMA链接管理的方法,通过配置状态寄存器地址信号映射为链接序号,且随机分配的位域,提高了存储资源的利用率,同时降低寄存器使用,提高了运行速率。

附图说明

为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明的整体框图。

具体实施方式

为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述。显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

实施例一

请参阅图1所示,为突出本方法实质,中断与寄存器配置子模块在图1中未予画出。一种集总式RDMA链接管理的方法,包括:任务接受模块、任务完成模块、集总链接管理模块、发送组包模块、接收解包模块和片内缓存模块;所述任务接受模块获取内核空间任务指示,发送请求信号至集总链接管理模块;所述任务完成模块根据自身工作状态发送请求信号至集总链接管理模块;所述集总链接管理模块将信息合理下发位域至各个子模块;所述发送组包模块空闲时发送请求信号至集总链接管理模块;所述接收解包模块根据接收包发送请求信号及对应链接序号至集总链接管理模块;所述片内缓存模块根据自身空闲及满、空状态发送请求信号收容不常用的Q序列。

在所述任务接受模块获取内核空间任务指示,发送请求信号至集总链接管理模块时,若集总链管理模块存在空闲位域且L,W位域段并未锁定,则回复任务接受模块指定位域段,同时将L位上锁,禁止其他子模块利用此位域;而任务接受模块则根据自内核空间获得任务特性填充此位域包括序列号Q,链接寄存器Registers,包处理上下文Context;集总链接管理模块接收位域后,则将L位解锁,其他子模块得以访问。

在任务完成模块根据自身工作状态发送请求信号至集总链接管理模块时,集总链接管理模块根据L,C位域回复任务完成模块相关信息,包括任务完成状态,异常信息;任务完成模块根据相关位域信息将其整合上报至内核空间,如果有中断使能则触发中断;集总链接管理模块接收到完成回复后则清空对应链接序列的位域,释放位域资源。

所述集总式链接管理模块需要根据各个子模块的请求信号并根据L,Q,W,C,T,R以及Registers等信息合理下发位域至各个子模块,以此实现对RDMA链接的有序管理。通过将链接资源集中管理,构建分级存储体系,将寄存器资源转化为SRAM资源及SDRAM资源增大连接管理数目,平衡不同端点间通信的公平性与时效性。

在所述发送组包模块空闲时发送请求信号至集总链接管理模块时,若集总式链接管理模块存在空闲位域且L,T位域段并未锁定,则回复任务接受模块指定位域段,同时将L位上锁,禁止其他子模块利用此位域;发送组包模块根据Q,Register,Context提取有效信息,校验通过后,自用户空间取出待发送数据然后组包发送;集总式链接管理模块接收返回写入位域后,则将L位解锁,其他子模块得以访问。

所述接收解包模块根据接收包发送请求信号及对应链接序号至集总链接管理模块;若集总链接管理模块中存在Q被分配与链接序号相同的位域,则发送对应位域信息至接收解包模块;解包接收模块根据对应信息经过验证后再将对应传输数据传送至用户空间,同时写入集总链接管理模块;链接管理模块接收返回写入位域后,则将L位解锁,同时更新上下文Context其他子模块得以访问,若确定为最后一包数据,则将C位域段置位。所述片内缓存模块根据自身空闲及满、空状态发送请求信号收容不常用的Q序列;链接管理模块根据每个位域忙闲及锁定位域L决定是否将此位域暂存至SRAM;若此位域不经常用到,则将其收容至缓存中,替换新的位域,以此实现大量链接的公平、高效调度。

本发明通过将端点间链接通信状态定义为特定域段,建立通信的上下文机制,增减通信的并发程度以及扩展性;通过在域段中设定锁机制,实现对资源的唯一性管理,避免收发处理过程中的冲突,降低死锁风险;通过集总式链接管理模块与RDMA协议中不同子模块间的握手机制,规避不同模块间的直接信号交互,各子模块可运行于不同速率,将状态(数据)与行为(算法)相分离,解耦系统,提高稳定性;通过将配置/状态寄存器资源转存为SRAM及SDRAM资源,并将索引地址按特定规则映射为链接序列号,存储资源随机分配,降低寄存器资源开销。

实施例二

一种集总式RDMA链接管理的方法,包括:任务接受模块、任务完成模块、集总链接管理模块、发送组包模块、接收解包模块和片内缓存模块;所述任务接受模块获取内核空间任务指示,发送请求信号至集总链接管理模块;所述任务完成模块根据自身工作状态发送请求信号至集总链接管理模块;所述集总链接管理模块将信息合理下发位域至各个子模块;所述发送组包模块空闲时发送请求信号至集总链接管理模块;所述接收解包模块根据接收包发送请求信号及对应链接序号至集总链接管理模块;所述片内缓存模块根据自身空闲及满、空状态发送请求信号收容不常用的Q序列。

在所述任务接受模块获取内核空间任务指示,发送请求信号至集总链接管理模块时,若集总链管理模块存在空闲位域且L,W位域段并未锁定,则回复任务接受模块指定位域段,同时将L位上锁,禁止其他子模块利用此位域;而任务接受模块则根据自内核空间获得任务特性填充此位域包括序列号Q,链接寄存器Registers,包处理上下文Context;集总链接管理模块接收位域后,则将L位解锁,其他子模块得以访问。

在任务完成模块根据自身工作状态发送请求信号至集总链接管理模块时,集总链接管理模块根据L,C位域回复任务完成模块相关信息,包括任务完成状态,异常信息;任务完成模块根据相关位域信息将其整合上报至内核空间,如果有中断使能则触发中断;集总链接管理模块接收到完成回复后则清空对应链接序列的位域,释放位域资源。

所述集总式链接管理模块需要根据各个子模块的请求信号并根据L,Q,W,C,T,R以及Registers等信息合理下发位域至各个子模块,以此实现对RDMA链接的有序管理。通过将链接资源集中管理,构建分级存储体系,将寄存器资源转化为SRAM资源及SDRAM资源增大连接管理数目,平衡不同端点间通信的公平性与时效性。

在所述发送组包模块空闲时发送请求信号至集总链接管理模块时,若集总式链接管理模块存在空闲位域且L,T位域段并未锁定,则回复任务接受模块指定位域段,同时将L位上锁,禁止其他子模块利用此位域;发送组包模块根据Q,Register,Context提取有效信息,校验通过后,自用户空间取出待发送数据然后组包发送;集总式链接管理模块接收返回写入位域后,则将L位解锁,其他子模块得以访问。

所述接收解包模块根据接收包发送请求信号及对应链接序号至集总链接管理模块;若集总链接管理模块中存在Q被分配与链接序号相同的位域,则发送对应位域信息至接收解包模块;解包接收模块根据对应信息经过验证后再将对应传输数据传送至用户空间,同时写入集总链接管理模块;链接管理模块接收返回写入位域后,则将L位解锁,同时更新上下文Context其他子模块得以访问,若确定为最后一包数据,则将C位域段置位。所述片内缓存模块根据自身空闲及满、空状态发送请求信号收容不常用的Q序列;链接管理模块根据每个位域忙闲及锁定位域L决定是否将此位域暂存至SRAM;若此位域不经常用到,则将其收容至缓存中,替换新的位域,以此实现大量链接的公平、高效调度。

本发明通过将端点间链接通信状态定义为特定域段,建立通信的上下文机制,增减通信的并发程度以及扩展性;通过在域段中设定锁机制,实现对资源的唯一性管理,避免收发处理过程中的冲突,降低死锁风险;通过集总式链接管理模块与RDMA协议中不同子模块间的握手机制,规避不同模块间的直接信号交互,各子模块可运行于不同速率,将状态(数据)与行为(算法)相分离,解耦系统,提高稳定性;通过将配置/状态寄存器资源转存为SRAM及SDRAM资源,并将索引地址按特定规则映射为链接序列号,存储资源随机分配,降低寄存器资源开销。

RDMA引擎中增加发送接收子模块组提高系统带宽,或增加子模块且使用同样的握手方式改变任务处理环节。集总链接管理模块中增加额外位域,记录链接资源缓存情况。所述片内缓存模块使用多组相连方式提高查找效率。所述片内缓存模块还连接有片外大容量缓冲模块,增加RDMA引擎的缓存量。

集总式RDMA链接资源管理降低子模块间耦合性;多级存储设计提高链接通信的并发度;带锁的位域段及握手信号的使用提高了RDMA引擎稳定性;通过配置状态寄存器地址信号映射为链接序列号且随机分配,降低存储资源占用。

本发明一种集总式RDMA链接管理的方法,通过此方法能够在不显著增加时延的情况下,将引擎内的模块充分解耦,提高引擎的稳定性,易行性。

以上所述仅为本发明的优选实施方式而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于FPGA的字节对齐方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!