高性能存储器分配器制造技术

技术编号:37173979 阅读:13 留言:0更新日期:2023-04-20 22:43
本公开涉及高性能存储器分配器。本公开的各方面涉及用于在网络接口卡的片上存储器中为数据分组指派邻接存储器空间的存储器分配器。存储器分配器包括与条目结构相对应的多个子分配器,其中每个条目表示存储器分配的量额。子分配器在存储器分配器中基于子分配器可以分配的存储器量额的数量按大小降序被组织。以分配的存储器量额的数量按大小降序被组织。以分配的存储器量额的数量按大小降序被组织。

【技术实现步骤摘要】
高性能存储器分配器


[0001]本公开涉及高性能存储器分配器。

技术介绍

[0002]与网络上的数据分组传输相关的存储器空间可以以单元的粒度来分配,支持存储器中的一定数量的单元。例如,可以将单元大小配置为256B、512B或1KB,支持多达512K个单元。数据分组可以包括存储用于数据分组的元数据的单个控制单元,以及多个数据单元。取决于数据分组大小,存储器中的多个数据单元可能需要被分配给数据分组。然而,非连续地分配单元可以导致较大的读取延迟,因为在发出对数据单元的读取之前将必须提取控制单元,因为控制单元将包含数据单元的地址。

技术实现思路

[0003]本公开的各方面针对用于在网络接口卡的片上存储器中为数据分组指派邻接存储器空间的存储器分配器。存储器分配器包括与条目结构相对应的多个子分配器,其中每个条目表示存储器分配的量额(quanta)。子分配器在存储器分配器中是基于子分配器可以分配的存储器量额的数量按大小降序来组织的。
[0004]本公开的一个方面提供了一种用于为数据分组指派邻接存储器空间的方法。该方法包括:利用一个或多个处理器,接收将多个连续指针指派给多个子分配器存储器中的子分配器存储器的分配请求;利用所述一个或多个处理器,搜索与子分配器存储器中的可用行相对应的摘要向量中的可用条目;利用所述一个或多个处理器,基于摘要向量中的第一可用条目来选择子分配器存储器中的行;利用所述一个或多个处理器,选择所选择的行中的第一可用条目,以为所述多个连续指针提供地址;以及利用所述一个或多个处理器,将所选择的条目标记为不可用。
[0005]在示例中,该方法进一步包括:利用所述一个或多个处理器,在其他子分配器存储器中确定对应于所选择的条目的对应条目;以及利用所述一个或多个处理器,将该对应条目标记为不可用。在另一个示例中,该方法进一步包括:利用所述一个或多个处理器,基于所选择的条目被标记为不可用并且该对应条目被标记为不可用来重置摘要向量中的条目。
[0006]在又一个示例中,正被搜索的摘要向量与连续指针数目相匹配。在又一个示例中,连续指针数目与数据分组中的单元数目相对应。在又一个示例中,该方法进一步包括:利用所述一个或多个处理器基于传入分配请求大小和单元大小来确定要指派的连续指针数目。
[0007]在又一个示例中,该方法进一步包括:利用所述一个或多个处理器,接收从子分配器存储器中的条目中移除指针的解除分配请求;以及利用所述一个或多个处理器,标记指针正在从其中被移除的条目为可用。在又一个示例中,该方法进一步包括:利用所述一个或多个处理器,在其他子分配器存储器中确定对应于指针正在从其中被移除的条目的对应条目;以及利用所述一个或多个处理器,标记对应于指针正在从其中被移除的条目的该对应条目为可用。在又一个示例中,以轮转方式接收分配请求和解除分配请求。
[0008]在又一个示例中,所述多个子分配器存储器是基于每个子分配器存储器能够支持的连续单元数目按大小降序来布置的。
[0009]本公开的另一个方面提供了一种系统,包括:一个或多个处理器;以及耦合到所述一个或多个处理器并且存储指令的一个或多个存储设备,所述指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行用于为数据分组指派邻接存储器空间的操作。所述操作包括:接收将多个连续指针指派给多个子分配器存储器中的子分配器存储器的分配请求;搜索与子分配器存储器中的可用行相对应的摘要向量中的可用条目;基于摘要向量中的第一可用条目来选择子分配器存储器中的行;选择所选择的行中的第一可用条目,以为所述多个连续指针提供地址;以及将所选择的条目标记为不可用。
[0010]在示例中,操作进一步包括:在其他子分配器存储器中确定对应于所选择的条目的对应条目;将该对应条目标记为不可用;以及基于所选择的条目被标记为不可用并且该对应条目被标记为不可用来重置摘要向量中的条目。
[0011]在另一个示例中,正被搜索的摘要向量与连续指针数目相匹配。在又一个示例中,连续指针数目与数据分组中的单元数目相对应。在又一个示例中,操作进一步包括基于传入分配请求大小和单元大小来确定要指派的连续指针数目。
[0012]在又一个示例中,操作进一步包括:接收从子分配器存储器中的条目中移除指针的解除分配请求;标记指针正在从其中被移除的条目为可用;在其他子分配器存储器中确定对应于指针正在从其中被移除的条目的对应条目;以及标记对应于指针正在从其中被移除的条目的该对应条目为可用。在又一个示例中,分配请求和解除分配请求是以轮转方式接收的。
[0013]在又一个示例中,所述多个子分配器存储器是基于每个子分配器存储器能够支持的连续单元数目按大小降序来布置的。
[0014]本公开的又一个方面提供一种用于存储指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行用于为数据分组指派邻接存储器空间的操作。所述操作包括:接收将多个连续指针指派给多个子分配器存储器中的子分配器存储器的分配请求;搜索与子分配器存储器中的可用行相对应的摘要向量中的可用条目;基于摘要向量中的第一可用条目来选择子分配器存储器中的行;选择所选择的行中的第一可用条目,以为所述多个连续指针提供地址;以及将所选择的条目标记为不可用。
[0015]在示例中,操作进一步包括:在其他子分配器存储器中确定到所选择的条目的对应条目;将该对应条目标记为不可用;以及基于所选择的条目被标记为不可用并且该对应条目被标记为不可用来重置摘要向量中的条目。
附图说明
[0016]图1描绘根据本公开的各方面的具有网络设备的示例网络环境的框图。
[0017]图2描绘根据本公开的各方面的用于为数据分组指派或移除邻接存储器空间的示例存储器分配器的框图。
[0018]图3描绘根据本公开的各方面的示例硬件分配管线的框图。
[0019]图4描绘根据本公开的各方面的用于为传入数据分组分配存储器的示例过程的流
程图。
[0020]图5描绘根据本公开的各方面的示例硬件解除分配管线的框图。
[0021]图6描绘根据本公开的各方面的用于为要被传送的数据分组解除分配存储器的示例过程的流程图。
[0022]图7描绘根据本公开的各方面的示例运算系统。
具体实施方式
[0023]本文一般公开了用于存储器分配器的实施方式,该存储器分配器可以在网络接口卡的片上存储器中为数据分组指派邻接存储器空间。存储器分配器包括多个基于片上存储器的空闲池子分配器。子分配器可以与条目的2维结构相对应,诸如位的行和列,其中每个条目——例如,位——表示存储器分配的量额。子分配器在存储器分配器中是基于子分配器可以分配的存储器量额的数量按大小降序来组织的。
[0024]存储器分配器试图为连续地址范围内的数据分组分配所有单元。在连续地址范围内分配单元消除了在数据分组的控制单元中存储用于单元的地址的需要,从而减少了提取延迟。虽然本文将存储器分配器描述为为数据分组分配单元,但是应当注意本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于为数据分组指派邻接存储器空间的方法,包括:利用一个或多个处理器,接收将多个连续指针指派给多个子分配器存储器中的子分配器存储器的分配请求;利用所述一个或多个处理器,搜索与子分配器存储器中的可用行相对应的摘要向量中的可用条目;利用所述一个或多个处理器,基于所述摘要向量中的第一可用条目来选择子分配器存储器中的行;利用所述一个或多个处理器,选择所选择的行中的第一可用条目,以为所述多个连续指针提供地址;以及利用所述一个或多个处理器,将所选择的条目标记为不可用。2.根据权利要求1所述的方法,进一步包括:利用所述一个或多个处理器,在其他子分配器存储器中确定对应于所选择的条目的对应条目;以及利用所述一个或多个处理器,将所述对应条目标记为不可用。3.根据权利要求2所述的方法,进一步包括:利用所述一个或多个处理器,基于所选择的条目被标记为不可用并且所述对应条目被标记为不可用来重置所述摘要向量中的条目。4.根据权利要求1所述的方法,其中,正在被搜索的所述摘要向量与所述多个连续指针的数目相匹配。5.根据权利要求1所述的方法,其中,所述多个连续指针的数目与数据分组中的单元数目相对应。6.根据权利要求1所述的方法,进一步包括:利用所述一个或多个处理器,基于传入分配请求大小和单元大小来确定要指派的连续指针数目。7.根据权利要求1所述的方法,进一步包括:利用所述一个或多个处理器,接收从子分配器存储器中的条目中移除指针的解除分配请求;以及利用所述一个或多个处理器,标记所述指针正在从其中被移除的所述条目为可用。8.根据权利要求7所述的方法,进一步包括:利用所述一个或多个处理器,在其他子分配器存储器中确定对应于所述指针正在从其中被移除的所述条目的对应条目;以及利用所述一个或多个处理器,标记所述对应条目为可用。9.根据权利要求7所述的方法,其中,分配请求和解除分配请求是以轮转方式接收的。10.根据权利要求1所述的方法,其中,所述多个子分配器存储器是基于每个子分配器存储器能够支持的连续单元数目按大小降序来布置的。11.一种系统,包括:一个或多个处理器;以及耦合到所述一个或多个处理器并且存储指令的一个或多个存储设备,所述指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行用于为数据分组指派邻接存储器空间的操作,所述操作包括:接收将多个连续指针指派给多个子分配器存储器中的子...

【专利技术属性】
技术研发人员:阿比西舍克
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1