掌桥专利:专业的专利平台
掌桥专利
首页

一种基于RAM标记的唯一识别码产生方法

文献发布时间:2024-04-18 20:02:18


一种基于RAM标记的唯一识别码产生方法

技术领域

本发明涉及数据中心的DPU处理领域,特别涉及一种基于RAM标记的唯一识别码产生方法。

背景技术

在数据处理系统中,RDMA系统由于其系统性能高和延迟低,一直是数据中心和高性能计算中心布局的首选项,在RDMA系统设计的时候,需要系统全局唯一的识别码来管理各种处理资源,比如QP资源、CQ资源和MR资源,RDMA系统中协议规定使用24比特的数据作为这个资源的识别码,但是,实际上硬件并不能管理这么多的资源,只有其中一部分识别码被使用,CPU管理的时候分别的操作是创建和销毁这些资源,已经销毁的识别码硬件是可以重用的,但是同一个识别码在时间间隔上应该尽量分开,以避免高层资源还没销毁干净硬件又使用同一个识别码造成系统管理混乱,因此,为了达到系统使用上时间间隔的尽量分开,识别码需要使用24比特来处理,且现通常采用比特标记法进行销毁的识别码复用,然而现有的比特标记法在全部使用完24比特时,需要2兆字节的存储单元,但是,对FPGA而言,2兆字节的内部BRAM是很大的,同时,这种方法在复用的时候搜索延迟高,同时没有相应的识别码安全保护措施,不利于硬件管理。

发明内容

本发明的目的在于提供一种基于RAM标记的唯一识别码产生方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种基于RAM标记的唯一识别码产生方法,所述产生方法包括以下几个步骤;

第一步,通过命令处理模块接收高层软件下发的命令;

第二步,利用命令处理模块识别命令类型,并进行处理;

第三步,通过初始化模块与控制逻辑模块接收命令处理模块解析识别后发出的命令并进行处理操作,所述处理操作包括创建唯一识别码、销毁唯一识别码和初始化BRAM;

第四步,返回处理结果。

优选的,所述第四步中返回处理结果标记BRAM对应的比特位,并返回成功状态,且当创建唯一识别码操作创建成功,所述第四步中清除该标记位并返回成功状态,且当销毁唯一识别码操作通过控制逻辑模块在BRAM中找到标记。

优选的,所述通过命令处理模块识别命令类型操作,具体包括以下几个步骤;

A1,定义支持的命令类型,所述命令类型包括创建命令与销毁命令和初始化命令;

A2,设计命令类型识别策略,所述识别策略包括通过命令的固定格式、关键字匹配和正则表达式识别;

A3,解析接收到的命令,所述解析命令包括将通过串口和网络通信接收的命令传递给命令处理模块进行解析;

A4,根据识别策略进行命令类型识别,所述识别操作包括字符串处理和匹配算法;

A5,执行相应的处理逻辑,所述处理逻辑包括将命令发送至初始化模块或控制逻辑模块;

A6,设计错误处理和容错机制,所述错误包括无法识别命令类型和命令格式不正确。

优选的,所述第三步中创建唯一识别码操作具体包括以下几个步骤;

B1,通过控制逻辑模块创建新唯一识别码;

B2,通过创建的新识别码作为地址查找BRAM,所述查找BRAM操作包括检验BRAM对应位使用情况;

B3,根据校验结果,进行对应结果输出操作。

优选的,所述B2中查找BRAM操作包括将唯一识别码分为低L位和高H位查找BRAM,所述低L/H作为BRAM的地址读取BRAM内容,所述高H/L位作为输出数据的索引。

优选的,所述B3中结果输出操作包括将当前唯一识别码加扰后使用该唯一识别码,且当查找BRAM内容对应位没有被使用,所述A3中结果输出操作包括在BRAM的输出结果下一位再查找直到找到可用的,且当查找BRAM内容对应位已被使用,所述A3中结果输出操作包括返回创建失败,且当查找BRAM内容无可用对应位。

优选的,所述第三步中销毁唯一识别码操作具体包括以下几个步骤;

C1,控制逻辑模块首先对当前的唯一识别码进行解扰;

C2,通过该识别码作为地址查找BRAM,所述查找BRAM操作包括检验BRAM对应位使用情况;

C3,根据查找结果,进行对应结果输出操作。

优选的,所述C3中结果输出操作包括清除该唯一识别码对应位并返回成功状态,且当查找BRAM内容输出值为1,所述B3中结果输出操作返回为失败状态,且当查找BRAM内容输出值为0。

优选的,所述第三步中初始化模块操作包括通过初始化模块接收命令处理模块发出的初始化模块命令,并运行内部逻辑擦除BRAM的内容,所述擦除BRAM的内容操作包括清除BRAM中所有的标志位。

优选的,所述第三步中创建唯一识别码、销毁唯一识别码和初始化BRAM操作均是通过BRAM模块为基础进行操作,所述BRAM模块是FPGA的块存储单元,所述BRAM模块包括所有唯一识别码的标记位。

本发明的技术效果和优点:

本发明通过利用BRAM的特征,同时实现串行和并行搜索,一次处理多位标记,缩短产生唯一标识码的时延,同时在处理时临时24位计数器分成两部分,一部分索引BRAM得到多位的标记输出,一部分并行索引这个标记输出,实现一次性多位标记输出可用位置检查,并通过累加器和扰码的处理,随机化产生,避免重用刚销毁的识别码。

附图说明

图1为本发明整体方法流程示意图。

图2为本发明唯一识别码产生结构示意图。

图3为本发明唯一识别码产生流程示意图。

图4为本发明FPGA应用结构示意图。

具体实施方式

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

本发明提供了如图1-4所示的一种基于RAM标记的唯一识别码产生方法,产生方法包括以下几个步骤;

第一步,通过命令处理模块接收高层软件下发的命令;

第二步,利用命令处理模块识别命令类型,并进行处理;

第三步,通过初始化模块与控制逻辑模块接收命令处理模块解析识别后发出的命令并进行处理操作,处理操作包括创建唯一识别码、销毁唯一识别码和初始化BRAM;

第四步,返回处理结果。

需要说明的是,本发明取FPGA卸载RDMA传输层以下的数据处理,其中FPGA指的是现场可编程门阵列,是一种通过可编程手段更改、配置器件内部连接结构和逻辑单元,完成既定功能的集成数字电路,RDMA指的是远程直接内存访问,是一种新的技术,允许在本地计算机内存直接与远端内存直接访问,数据搬运不需要CPU的参与。

进一步的,唯一识别码用于标识不同的主机、网络接口卡和RDMA资源,包括全球唯一的标识符GUID,识别InfiniBand网络中物理端口的本地标识符LID、用于唯一标识RDMA传输中的队列对的QP号码、用于唯一标识内存区域的MR号码和用于唯一标识完成队列的CQ号码。

第四步中返回处理结果标记BRAM对应的比特位,并返回成功状态,且当创建唯一识别码操作创建成功,第四步中清除该标记位并返回成功状态,且当销毁唯一识别码操作通过控制逻辑模块在BRAM中找到标记。

通过命令处理模块识别命令类型操作,具体包括以下几个步骤;

A1,定义支持的命令类型,命令类型包括创建命令与销毁命令和初始化命令;

A2,设计命令类型识别策略,识别策略包括通过命令的固定格式、关键字匹配和正则表达式识别;

进一步的,固定格式是指特定的字段顺序和分隔符,通过预定义的格式解析输入的命令或语句,可以识别命令类型和提取相关参数,关键字匹配是指通过寻找命令或语句中是否包含特定的关键字或标识符来识别命令类型,正则表达式指的是用于描述和匹配字符串模式的工具,是由一系列字符和特殊符号组成的表达式,用于定义某种模式,并可以用于文本搜索、替换、验证和提取等操作。

A3,解析接收到的命令,解析命令包括将通过串口和网络通信接收的命令传递给命令处理模块进行解析;

A4,根据识别策略进行命令类型识别,识别操作包括字符串处理和匹配算法;

A5,执行相应的处理逻辑,处理逻辑包括将命令发送至初始化模块或控制逻辑模块;

A6,设计错误处理和容错机制,错误包括无法识别命令类型和命令格式不正确。

进一步的,在命令处理模块完成后,需要进行测试和验证,确保它能正确地识别和处理各种命令类型,并与其他系统组件协调工作。

第三步中创建唯一识别码操作具体包括以下几个步骤;

B1,通过控制逻辑模块创建新唯一识别码;

B2,通过创建的新识别码作为地址查找BRAM,查找BRAM操作包括检验BRAM对应位使用情况;

B3,根据校验结果,进行对应结果输出操作。

B2中查找BRAM操作包括将唯一识别码分为低L位和高H位查找BRAM,低L/H作为BRAM的地址读取BRAM内容,高H/L位作为输出数据的索引。

B3中结果输出操作包括将当前唯一识别码加扰后使用该唯一识别码,且当查找BRAM内容对应位没有被使用,A3中结果输出操作包括在BRAM的输出结果下一位再查找直到找到可用的,且当查找BRAM内容对应位已被使用,A3中结果输出操作包括返回创建失败,且当查找BRAM内容无可用对应位。

实施例1:

一个18K比特的BRAM,FPGA输出位宽为36或者32比特,同时其地址宽度为9,数据索引等于6或者5,然而在实际使用中,H不是2的整数次幂,因此有一部分识别码可能没有被使用到,在此情况下,可以通过将没被使用的唯一识别码直接丢弃不用进行处理,或直接使用BRAM输出位宽为32位,这样数据位宽可以是2的整数次幂,同时在RDMA系统中系统的唯一识别码为24位,一个BRAM并不能标记所有的识别码,故为了充分利用24比特位宽,通过24比特的累加器输出结果作为中间结果,采取中间结果的低10+5=15位作为查找BRAM的索引,且为了唯一识别码的保密性,把中间结果加扰后作为系统的唯一识别码,保证了唯一识别码的保密性,需要说明的是,当唯一识别码为QP号码时,唯一识别码必须大于1,因此产生QPn的时候还要增加一级判断,不满足大于1的识别码需要重新计算。

实施例2:

根据上述实施例1,在控制逻辑模块得到创建唯一识别码命令后具体操作步骤如下;

D1,控制逻辑模块首先生成一个24位的索引;

D2,取出低15位用于索引查找BRAM;

D3,将15位索引所以分别分成10位索引和5位索引,其中10位索引作为地址读取BRAM内容,另外5位索引作为BRAM输出内容的索引;

D4,使用低15索引查找BRAM;

D5,根据查找结果,进行结果处理。

进一步的是,上述D5中重新生成一个24位的索引进行查找,且当查找BRAM标记为1、表示生成成功,把当前24位索引加扰后作为系统唯一识别码返回且当查找BRAM标记为0和返回失败且当所有的BRAM中都已标记。

第三步中销毁唯一识别码操作具体包括以下几个步骤;

C1,控制逻辑模块首先对当前的唯一识别码进行解扰;

C2,通过该识别码作为地址查找BRAM,查找BRAM操作包括检验BRAM对应位使用情况;

C3,根据查找结果,进行对应结果输出操作。

C3中结果输出操作包括清除该唯一识别码对应位并返回成功状态,且当查找BRAM内容输出值为1,B3中结果输出操作返回为失败状态,且当查找BRAM内容输出值为0。

进一步的,销毁唯一识别码操作的查找步骤与创建唯一识别码查找步骤相同。

第三步中初始化模块操作包括通过初始化模块接收命令处理模块发出的初始化模块命令,并运行内部逻辑擦除BRAM的内容,擦除BRAM的内容操作包括清除BRAM中所有的标志位。

进一步的,由于FPGA逻辑在热启动的时候不能擦除BRAM内容,所以需要在热启动的时候初始化BRAM,否则,BRAM会保留之前所有的标记,故初始化模块操作常用于系统热启动时。

第三步中创建唯一识别码、销毁唯一识别码和初始化BRAM操作均是通过BRAM模块为基础进行操作,BRAM模块是FPGA的块存储单元,BRAM模块包括所有唯一识别码的标记位。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116581568