CN116866167A - 一种网卡混合亲核的硬件绑定方法、装置及存储介质 - Google Patents

一种网卡混合亲核的硬件绑定方法、装置及存储介质 Download PDF

Info

Publication number
CN116866167A
CN116866167A CN202310807718.0A CN202310807718A CN116866167A CN 116866167 A CN116866167 A CN 116866167A CN 202310807718 A CN202310807718 A CN 202310807718A CN 116866167 A CN116866167 A CN 116866167A
Authority
CN
China
Prior art keywords
binding
numa
register
network card
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310807718.0A
Other languages
English (en)
Inventor
朱敏
李桧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Muchuang Integrated Circuit Design Co ltd
Original Assignee
Wuxi Muchuang Integrated Circuit Design Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Muchuang Integrated Circuit Design Co ltd filed Critical Wuxi Muchuang Integrated Circuit Design Co ltd
Priority to CN202310807718.0A priority Critical patent/CN116866167A/zh
Publication of CN116866167A publication Critical patent/CN116866167A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及计算机网卡领域,公开了一种网卡混合亲核的硬件绑定方法、装置及存储介质。所述方法包括:根据绑定需求确定所述配置寄存器的配置信息;根据所述配置信息通过预设配置指令对所述配置寄存器执行配置操作;根据所述配置寄存器执行网卡与CPU核或网卡与NUMA之间的绑定操作。在减少CPU使用的情况下,增加网卡报文转发性能,减少了内存跨NUMA访问,同时简化了配置流程,配置更方便快捷;可以将不同网卡进行隔离,提高了网卡转发性能;配置更加灵活、方便,可以实现跨NUMA访问以及网卡的核间隔离。

Description

一种网卡混合亲核的硬件绑定方法、装置及存储介质
技术领域
本申请涉及计算机网卡技术领域,特别地涉及一种网卡混合亲核的硬件绑定方法、装置、存储介质以及电子设备。
背景技术
此处提供的背景技术描述的目的是总体地给出本申请的背景,本部分的陈述仅仅是提供了与本申请相关的背景,并不必然构成现有技术。
当前随着CPU的发展,多NUMA架构已在CPU中使用的越来越多。以飞腾64C(FT64C)这一型号的CPU为例,该CPU包含64个核和8个NUMA,其中,每个NUMA包含8个核(可参考图1,其中,NUMA编号不是简单的按照顺序排列的,这是跟飞腾处理器的设计架构有关)。
在CPU初始化时,一般会将网卡绑定在CPU所有核上,即在网卡队列个数充足的情况下,会为每个CPU核均绑定一个网卡队列,可参考图2。
在多NUMA模型下(以FT64C处理器为例),当网卡将64个队列绑定到64个核上时,会存在跨NUMA访问内存的问题。由于跨NUMA访问内存效率很低,因此会引起报文转发延时增长、报文转发性能低等缺陷。请参考图1,举例说明:
当NUMA-0上的核,访问自己的内存中的报文,假设只需要1ms;
当NUMA-0上的核,需要访问NUMA-1上的报文时,需要的时间就会更长一些,可能需要1.2ms;
当NUMA-0上的核,需要访问NUMA-3上的报文时,需要的时间就会更长一些,可能需要1.6ms;
当NUMA-0上的核,需要访问NUMA-7上的报文时,需要的时间就会更长一些,可能需要1.8ms;
当NUMA-0上的核,需要访问NUMA-6上的报文时,需要的时间就会更长一些,可能需要3ms。此种情况,报文转发耗费时间最长。
总之,跨NUMA的报文转发需要较长的时间,尤其是当需要跨越的NUMA个数越多时,报文访问时间就越长且报文转发效率就越低。
虽然,现有技术下也有采取‘限制一个网卡的所有队列绑定的NUMA的总个数,从而减少跨NUMA的内存访问次数’的这一方案。但是,这一方案在实际使用中,也存在有以下这些缺陷:
(1)实现操作复杂,需要配置多个文件和数据;
(2)实现比较粗糙,不容易实现精准配置,方案无法只能按照NUMA绑定队列,不能按核进行绑定;
(3)在实际使用中不够灵活;
(4)针对不同客户的不同要求,必须通过修改代码、重新编译、部署软硬件环境才能实现。
发明内容
针对上述问题,本申请提出一种网卡混合亲核的硬件绑定方法、装置、存储介质及电子设备,解决了如上所述的报文转发效率低及绑定的实现不够灵活等缺陷。
本申请的第一个方面,提供了一种网卡混合亲核的硬件绑定方法,在网卡中设置有配置寄存器,所述方法包括:
根据绑定需求确定所述配置寄存器的配置信息;
根据所述配置信息通过预设配置指令对所述配置寄存器执行配置操作;
根据所述配置寄存器执行网卡与CPU核或网卡与NUMA之间的绑定操作。
进一步地,所述配置寄存器,包括:
网卡状态寄存器、CPU核绑定状态寄存器或NUMA绑定预定义模板寄存器。
进一步地,在所述配置寄存器为网卡状态寄存器的情况下,
通过所述网卡状态寄存器的各二进制位的值,标识与该二进制位对应的PORT的当前状态。
进一步地,在所述配置寄存器为CPU核绑定状态寄存器的情况下,
通过所述CPU核绑定状态寄存器的各二进制位的值,标识与该二进制位对应的CPU核的绑定状态。
进一步地,在所述配置寄存器为NUMA绑定预定义模板寄存器的情况下,
通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态。
进一步地,所述通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态,包括:
在所述NUMA绑定预定义模板寄存器的值不大于第一预设阈值的情况下,网卡的PORT口不与NUMA绑定。
进一步地,所述通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态,包括:
在所述NUMA绑定预定义模板寄存器的值位于预设取值区间之内的情况下,网卡所有的PORT口均分别绑定到一个或多个NUMA上;其中,NUMA的数量值等于所述NUMA绑定预定义模板寄存器的值。
进一步地,在所述配置寄存器为NUMA绑定预定义模板寄存器且所述NUMA绑定预定义模板寄存器的值大于第二预设阈值的情况下,
根据所述NUMA绑定预定义模板寄存器的值确定NUMA预绑定策略;
根据所述NUMA预绑定策略执行网卡与NUMA之间的绑定操作。
本申请的第二个方面,提供了一种网卡混合亲核的硬件绑定装置,所述装置包括:
确定模块,用于根据绑定需求确定所述配置寄存器的配置信息;
配置模块,用于根据所述配置信息通过预设配置指令对所述配置寄存器执行配置操作;
绑定模块,用于根据所述配置寄存器执行网卡与CPU核或网卡与NUMA之间的绑定操作。
本申请的第三个方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储的计算机程序,可被一个或多个处理器执行,用以实现如上所述方法的步骤。
本申请的第四个方面,提供了一种电子设备,包括存储器和一个或多个处理器,所述存储器上存储有计算机程序,所述存储器和所述一个或多个处理器之间互相通信连接,该计算机程序被所述一个或多个处理器执行时,实现如上所述方法的步骤。
与现有技术相比,本申请的技术方案具有以下优点或有益效果:
公开了一种网卡混合亲核的硬件实现方案,在减少CPU使用的情况下,增加网卡报文转发性能,减少了内存跨NUMA访问,同时简化了配置流程,配置更方便快捷;可以将不同网卡进行隔离,提高了网卡转发性能;配置更加灵活、方便,可以实现跨NUMA访问以及网卡的核间隔离。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于所属领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关本公开相关的部分。构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请中的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定,在附图中:
图1为一种FT64C处理器的结构示意图;
图2为本申请实施例提供的一种交换机、网卡和上位机网络间的结构示意图;
图3为本申请实施例提供的一种网卡混合亲核的硬件绑定方法的流程图;
图4为本申请实施例提供的一种按NUMA绑定的示意图;
图5为本申请实施例提供的一种按核绑定的示意图;
图6为本申请实施例提供的一种网卡混合亲核的硬件绑定装置的结构示意图;
图7为本申请实施例提供的一种电子设备的连接框图。
具体实施方式
以下将结合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突的前提下可以相互结合,所形成的技术方案均在本申请的保护范围之内。
应当明确的是,以下所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,所属领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围内。
以下,先对本申请实施例和/或现有技术中的部分技术用语进行解释说明,以便于所属领域技术人员理解本申请的技术方案:
NUMA:非一致性内存访问Non Uniform Memory Access,简称NUMA。非统一内存访问描述了当代多处理系统中使用的共享内存架构,NUMA是一个由多个节点组成的计算系统,所有节点共享聚合的内存,每个NUMA都有自己的本地内存,本地NUMA访问本地的内存速率较快,同时NUMA也能访问其他NUMA的内存,但是速率相对较低。
亲核:是在CPU多核的基础上,将网卡的队列绑定到CPU的核上,这种关系就称之为亲核。跟多核有密切的关系,由此衍生出来的关于网卡队列绑定CPU核的专业术语。
MAC:媒体访问控制子层协议(Media Access Control,简称MAC)。在计算机网络的OSI7层模型中,PHY模块工作在物理层,MAC模块工作在数据链路层。本申请中的MAC指单独的网卡硬件,包括通常意义上的PHY和MAC处理模块。
混合亲核:不同的MAC网口,可以亲核到同样的CPU核的集合上,也可以单独亲核到不同的CPU核的集合上,这种关系就称之为“混合亲核”。
N10:由本申请的申请人独立自主研发的一种智能网卡芯片的型号,其可以支持多个MAC网口。
实施例一
本实施例提供一种硬件实现绑NUMA和绑核的解决方法,在应用本公开方法的网卡中设置有配置寄存器,该配置寄存器用于根据所配置的信息执行相应的绑定操作。
图3为本申请实施例提供的一种网卡混合亲核的硬件绑定方法的流程图,如图3所示,所述方法包括以下步骤:
步骤310、根据绑定需求确定所述配置寄存器的配置信息;
步骤320、根据所述配置信息通过预设配置指令对所述配置寄存器执行配置操作;
步骤330、根据所述配置寄存器执行网卡与CPU核或网卡与NUMA之间的绑定操作。
在一些实施例中,所述配置寄存器,包括:
网卡状态寄存器、CPU核绑定状态寄存器或NUMA绑定预定义模板寄存器。
在一些实施例中,在所述配置寄存器为网卡状态寄存器的情况下,
通过所述网卡状态寄存器的各二进制位的值,标识与该二进制位对应的PORT的当前状态;其中,所述当前状态包括:打开且可用状态和关闭且不可用的状态。
作为一个示例,针对网卡状态寄存器(PORT_STATE_REG):这是一个支持64个二进制位(bits)的寄存器。其中,每一个二进制位表示一个网卡的PORT的打开或关闭的状态。比如:
若当前PORT_STATE_REG的bit-x(第x个二进制位)的值为1,则表示PORT-x当前处于打开、可用的状态;
若当前PORT_STATE_REG的bit-x的值为0,则表示PORT-x当前处于关闭、不可用的状态;
其中,x的取值范围为0~63,表示系统中最多支持保存64个网卡的状态。
在一些实施例中,在所述配置寄存器为CPU核绑定状态寄存器的情况下,
通过所述CPU核绑定状态寄存器的各二进制位的值,标识与该二进制位对应的CPU核的绑定状态;其中,所述绑定状态包括:未绑定和已绑定。
作为一个示例,针对CPU核绑定状态寄存器(PORT_00_BINDING_CORE_REG~PORT_63_BINDING_CORE_REG):这是一组寄存器,共有64个,同时每个寄存器均有64个二进制位。
其中,第x个寄存器表示第x个PORT需要绑定的核。具体核绑定状态,由0-63个bit表示。比如:bit-y(第y个二进制位)的值为1,表示第x个PORT绑定第y个CPU核;bit-y的值为0,表示第x个PORT未绑定第y个CPU核。
举例说明:
若PORT_x_BINDING_CORE_REG的bit-y的当前值为0,则表示:PORT-x当前未绑定第y个CPU核(CPU CORE);
若PORT_x_BINDING_CORE_REG的bit-y的当前值为1,则表示:PORT-x当前已绑定第y个CPU核;
其中,x和y的取值范围均为0~63。表示系统中最多支持64个网卡和64个CPU CORE的绑定状态。
在一些实施例中,在所述配置寄存器为NUMA绑定预定义模板寄存器的情况下,
通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态。
作为一个示例,针对NUMA绑定预定义模板寄存器(NUMA_BINDING_MODE_REG):其通过单独设置每个寄存器来完成一套完整的NUMA绑定方案。可以预先定义一些完整的PORT和NUMA的绑定方案的模板并存储起来;然后再通过指定本寄存器的值的方式来确认选择其中的哪一个绑定方案。这是一种更加高效的配置方案。
所属领域技术人员可以理解的是,在本实施例中,NUMA的粒度较粗、CORE的粒度较细。比如:绑定NUMA是将NUMA上所有的CORE全部绑定;而绑定CORE是只绑定NUMA上的某些核(CORE)。
举例说明,下面是一种配置示例:
NUMA_BINDING_MODE_REG寄存器的值为0,PORT口不绑定NUMA。
在一些实施例中,所述通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态,包括:
在所述NUMA绑定预定义模板寄存器的值位于预设取值区间之内的情况下,网卡所有的PORT口均分别绑定到一个或多个NUMA上;其中,NUMA的数量值等于所述NUMA绑定预定义模板寄存器的值。
举例说明,下面是另一种配置示例:
NUMA_BINDING_MODE_REG寄存器的值为1,将所有的PORT口均绑定到1个NUMA上,即NUMA-0;
NUMA_BINDING_MODE_REG寄存器的值为2,将所有的PORT口绑定到2个NUMA上,即分别绑定到NUMA-0、NUMA-1上;
NUMA_BINDING_MODE_REG寄存器的值为3,将所有的PORT口绑定到3个NUMA上,即分别绑定到NUMA-0、NUMA-1、NUMA-3上;
NUMA_BINDING_MODE_REG寄存器的值为4,将所有的PORT口绑定到4个NUMA上,即分别绑定到NUMA-0、NUMA-1、NUMA-3、NUMA-4上。
在一些实施例中,在所述配置寄存器为NUMA绑定预定义模板寄存器且所述NUMA绑定预定义模板寄存器的值大于第二预设阈值的情况下,
根据所述NUMA绑定预定义模板寄存器的值确定NUMA预绑定策略;
根据所述NUMA预绑定策略执行网卡与NUMA之间的绑定操作。
其中,NUMA预绑定策略可根据实际需求进行设定。
举例说明,下面是再一种配置示例:
NUMA_BINDING_MODE_REG寄存器的值为0~4以外的其他值,检查并验证是否定义了与NUMA_BINDING_MODE_REG寄存器的当前值对应的NUMA预绑定方案(NUMA预绑定策略),如果NUMA预绑定方案索引有效,则使用该预绑定方案作为新的绑定方案。
示意性的,可使用宏定义,来定义3种寄存器的地址/编号值,以便在对应的指令中使用:
#define PORT_STATE_REG(0)
//连续定义64个寄存器:
//PORT_00_BINDING_CORE_REG~PORT_63_BINDING_CORE_REG
#define PORT_00_BINDING_CORE_REG(1)
#define PORT_01_BINDING_CORE_REG(2)
//.....
#define PORT_63_BINDING_CORE_REG(64)
#define NUMA_BINDING_MODE_REG(65)。
所属领域技术人员可以理解的是,第一预设阈值可设为0,第二预设阈值可设为4,预设取值区间可设为[1~4];第一预设阈值和第二预设阈值的具体值以及预设取值区间均可根据实际需求进行设定。
作为一个示例,由于本实施例所公开的硬件实现方案主要依赖于寄存器的值,所以,简单的面向寄存器的值,提供如下所示的两个相关配置指令:
读寄存器指令:reg_read reg_id,reg_val。
所述领域技术人员可以理解的是,读指令的第一个参数为寄存器的地址/编号值,第二个参数为从第一个参数给定的寄存器中读出来的实际数值。
写寄存器指令:reg_write reg_id,new_val。
所述领域技术人员可以理解的是,写指令的第一个参数为寄存器的地址/编号值,第二个参数为要写入寄存器的实际数值。
可以理解的是,预设配置指令可根据实际需求进行设定,此处不做特殊限定。
上述指令中reg_id的取值可以是0~65,即在硬件实现方案中用到的所有寄存器。针对具体寄存器的reg_id编号,可以根据实际需求自行定义,具体不再赘述。
本实施例所公开的硬件实现方案具备的特点主要是:在网卡芯片中提供了专用的寄存器,针对不同网卡可以实现以下功能:
(1)通过相关配置可以将每个网卡的队列绑定到对应的NUMA和核上;
(2)可以实现只绑定某些NUMA上的某些核,不必要求绑定所有的NUMA以及所有NUMA上的所有核,绑定方案比较灵活;
(3)在相应配置后,只需要重新加载驱动就可以使相应配置生效;
(4)对于一块板卡上出多个MAC接口(即网络PORT接口)的情况,可以实现绑定到不同的NUMA或核上;
(5)可以根据CPU硬件的不同进行灵活配置,找出最优绑核的配置,使网卡性能最大化。
下面,以集成使用N10网卡芯片、具有两个网口的网卡为例,并结合飞腾的64核CPU来说明网卡和核、NUMA之间的绑定关系:
作为一个示例,按NUMA绑定的结构关系可参考图4,网卡0(MAC-0)绑定了NUMA-0和NUMA-1两个NUMA,而这两个NUMA每个又具备8个CPU核,所以,相当于网卡MAC-0绑定了两个NUMA,也即具备了16个核。在按NUMA绑定的情况下,可进行如下的配置:
reg_write PORT_STATE_REG,0x0000_0000_0000_0003#前两个网卡有效;
reg_write NUMA_BINDING_MODE_REG,2#每个网卡绑定2个NUMA。
作为另一个示例,按CPU核绑定,具体绑定结构关系可参考图5,图5中的虚线部分也是用来表示MAC-0网卡和CPU核的绑定关系的。只是为了和MAC-1网卡的绑定对象相区分,和实线表示的绑定关系并无不同含义。在图5中,具体的绑定关系为:MAC-0绑定NUMA-0(0~3核),NUMA-1(12~15核);MAC-1绑定NUMA-0(4~7核),NUMA-1(8~11核)。在按CPU核绑定的情况下,可进行如下的配置:
针对网卡状态寄存器(PORT_STATE_REG):
由于只有网卡0和网卡1有效且进行了绑定,因此,PORT_STATE_REG寄存器只有bit-0和bit-1的值为1,即整个寄存器的值为0x0000_0000_0000_0003。
针对CPU核绑定状态寄存器(PORT_00_BINDING_CORE_REG~PORT_63_BINDING_CORE_REG):
由于只有两个网卡被使用,所以,在64个CPU核绑定状态寄存器中,只有
PORT_00_BINDING_CORE_REG和PORT_01_BINDING_CORE_REG这两个寄存器有意义,其余的62个寄存器的值均默认为0;
由于MAC-0口绑定了0~3核和12~15核,所以与其对应的寄存器PORT_00_BINDING_CORE_REG的bit-0、bit-1、bit-2、bit-3以及bit-12、bit-13、bit-14、bit-15这8个二进制位的值为1。所以,其最终的值应该为0x0000_0000_0000_F00F;
由于MAC-1口绑定了4~7核和8~11核,所以与其对应的寄存器PORT_01_BINDING_CORE_REG的bit-4、bit-5、bit-6、bit-7以及bit-8、bit-9、bit-10、bit-11这8个二进制位的值为1。所以,其最终的值应该为0x0000_0000_0000_0FF0。
在确定了上述寄存器值以后,通过reg_write写入上述所有的寄存器的值,即可完成硬件实现方案的配置。举例说明(使用三条指令分别更新写入了三个寄存器值的值。写指令的第一个参数为寄存器的地址/编号值,第二个参数为要写入寄存器的实际数值):
reg_write PORT_STATE_REG,0x0000_0000_0000_0003
reg_write PORT_00_BINDING_CORE_REG,0x0000_0000_0000_F00F
reg_write PORT_01_BINDING_CORE_REG,0x0000_0000_FFFF_0FF0。
需要说明的是,针对性能要求比较高的场景,可以绑定3个NUMA;如果是需要预留CPU去处理其他业务(比如,审计等业务),可以绑定1个或2个NUMA。
本实施例提供的网卡混合亲核的硬件实现方案,在减少CPU使用的情况下,增加网卡报文转发性能,减少了内存跨NUMA访问,同时简化了配置流程,配置更方便快捷;可以将不同网卡进行隔离,提高了网卡转发性能;配置更加灵活、方便,可以实现跨NUMA访PORT问以及网卡的核间隔离。
实施例二
本实施例提供一种网卡混合亲核的硬件绑定装置。本装置实施例可以用于执行本申请方法实施例,对于本装置实施例中未披露的细节,请参照本申请方法实施例。图6为本申请实施例提供的一种网卡混合亲核的硬件绑定装置的结构示意图,如图6所示,本实施例所公开的装置600包括:
确定模块601,用于根据绑定需求确定所述配置寄存器的配置信息;
配置模块602,用于根据所述配置信息通过预设配置指令对所述配置寄存器执行配置操作;
绑定模块603,用于根据所述配置寄存器执行网卡与CPU核或网卡与NUMA之间的绑定操作。
在一些实施例中,所述配置寄存器,包括:
网卡状态寄存器、CPU核绑定状态寄存器或NUMA绑定预定义模板寄存器。
在一些实施例中,在所述配置寄存器为网卡状态寄存器的情况下,
通过所述网卡状态寄存器的各二进制位的值,标识与该二进制位对应的PORT的当前状态。
在一些实施例中,在所述配置寄存器为CPU核绑定状态寄存器的情况下,
通过所述CPU核绑定状态寄存器的各二进制位的值,标识与该二进制位对应的CPU核的绑定状态。
在一些实施例中,在所述配置寄存器为NUMA绑定预定义模板寄存器的情况下,
通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态。
在一些实施例中,所述通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态,包括:
在所述NUMA绑定预定义模板寄存器的值不大于第一预设阈值的情况下,网卡的PORT口不与NUMA绑定。
在一些实施例中,所述通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态,包括:
在所述NUMA绑定预定义模板寄存器的值位于预设取值区间之内的情况下,网卡所有的PORT口均分别绑定到一个或多个NUMA上;其中,NUMA的数量值等于所述NUMA绑定预定义模板寄存器的值。
在一些实施例中,在所述配置寄存器为NUMA绑定预定义模板寄存器且所述NUMA绑定预定义模板寄存器的值大于第二预设阈值的情况下,
根据所述NUMA绑定预定义模板寄存器的值确定NUMA预绑定策略;
根据所述NUMA预绑定策略执行网卡与NUMA之间的绑定操作。
所属领域技术人员可以理解的是,图6中示出的结构并不构成对本申请实施例装置的限定,可以包括比图示更多或更少的模块/单元,或者组合某些模块/单元,或者不同的模块/单元布置。
所属领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上。可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,各模块的具体工作过程,可以参考前述方法实施例中的对应过程,本实施例在此不再进行重复赘述。
实施例三
本实施例提供一种计算机可读存储介质。该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时可以实现如前述方法实施例中的方法步骤,本实施例在此不再重复赘述。
其中,计算机可读存储介质还可单独包括计算机程序、数据文件、数据结构等,或者包括其组合。计算机可读存储介质或计算机程序可被计算机软件领域的技术人员具体设计和理解,或计算机可读存储介质对计算机软件领域的技术人员而言可以是公知和可用的。计算机可读存储介质的示例包括:磁性介质,例如硬盘、软盘和磁带;光学介质,例如,CDROM盘和DVD;磁光介质,例如,光盘;和硬件装置,具体被配置以存储和执行计算机程序,例如,只读存储器(ROM)、随机存取存储器(RAM)、闪存;或服务器、app应用商城等。计算机程序的示例包括机器代码(例如,由编译器产生的代码)和包含高级代码的文件,可由计算机通过使用解释器来执行高级代码。所描述的硬件装置可被配置为用作一个或多个软件模块,以执行以上描述的操作和方法,反之亦然。另外,计算机可读存储介质可分布在联网的计算机系统中,可以分散的方式存储和执行程序代码或计算机程序。
实施例四
本实施例提供一种计算机程序产品。该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如前述方法实施例中方法的全部或部分步骤,本实施例在此不再重复赘述。
进一步地,该计算机程序产品可以包括在运行程序时被配置为执行实施例的一个或多个计算机可执行组件;该计算机程序产品还可包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行本公开实施方式中任一方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
实施例五
本实施例提供一种电子设备。图7为本申请实施例提供的一种电子设备的连接框图,如图7所示,该电子设备700可以包括:一个或多个处理器701,存储器702,多媒体组件703,输入/输出(I/O)接口704,以及通信组件705。
其中,一个或多个处理器701用于执行如前述方法实施例中的全部或部分步骤。存储器702用于存储各种类型的数据,这些数据例如可以包括电子设备中的任何应用程序或方法的指令,以及应用程序相关的数据。
一个或多个处理器701可以是专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(ProgrammableLogic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如前述方法实施例中的方法。
存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
多媒体组件703可以包括屏幕和音频组件,该屏幕可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或通过通信组件发送。音频组件还包括至少一个扬声器,用于输出音频信号。
I/O接口704为一个或多个处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。
通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。有线通信包括通过网口、串口等进行通信;无线通信包括:Wi-Fi、蓝牙、近场通信(Near FieldCommunication,简称NFC)、2G、3G、4G、5G,或它们中的一种或几种的组合。
综上,本申请提供了一种网卡混合亲核的硬件绑定方法、装置、存储介质以及电子设备。本申请公开的一种网卡混合亲核的硬件实现方案,在减少CPU使用的情况下,增加网卡报文转发性能,减少了内存跨NUMA访问,同时简化了配置流程,配置更方便快捷;可以将不同网卡进行隔离,提高了网卡转发性能;配置更加灵活、方便,可以实现跨NUMA访问以及网卡的核间隔离。
另外应该理解到,在本申请所提供的实施例中所揭露的方法或装置,也可以通过其它的方式实现。以上所描述的方法或装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法和装置的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、计算机程序段或计算机程序的一部分,模块、计算机程序段或计算机程序的一部分包含一个或多个用于实现规定的逻辑功能的计算机程序。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生,实际上也可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机程序的组合来实现。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、装置或者设备中还存在另外的相同要素;如果有描述到“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系;在本申请的描述中,除非另有说明,术语“多个”、“多”的含义是指至少两个;如果有描述到服务器,需要说明的是,服务器可以是独立的物理服务器或终端,也可以是多个物理服务器构成的服务器集群,可以是能够提供云服务器、云数据库、云存储和CDN等基础云计算服务的云服务器;在本申请中如果有描述到智能终端或移动设备,需要说明的是,智能终端或移动设备可以是手机、平板电脑、智能手表、上网本、可穿戴电子设备、个人数字助理(Personal Digital Assistant,简称PDA)、增强现实技术设备(Augmented Reality,简称AR)、虚拟现实设备(Virtual Reality,简称VR)、智能电视、智能音响、个人计算机(Personal Computer,简称PC)等,但并不局限于此,本申请对智能终端或移动设备的具体形式不做特殊限定。
最后需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“一个示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式进行结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例都是示例性的,所述的内容只是为了便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属技术领域内的技术人员,在不脱离本申请所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (11)

1.一种网卡混合亲核的硬件绑定方法,其特征在于,在网卡中设置有配置寄存器,所述方法包括:
根据绑定需求确定所述配置寄存器的配置信息;
根据所述配置信息通过预设配置指令对所述配置寄存器执行配置操作;
根据所述配置寄存器执行网卡与CPU核或网卡与NUMA之间的绑定操作。
2.根据权利要求1所述的网卡混合亲核的硬件绑定方法,其特征在于,所述配置寄存器,包括:
网卡状态寄存器、CPU核绑定状态寄存器或NUMA绑定预定义模板寄存器。
3.根据权利要求1所述的网卡混合亲核的硬件绑定方法,其特征在于,在所述配置寄存器为网卡状态寄存器的情况下,
通过所述网卡状态寄存器的各二进制位的值,标识与该二进制位对应的PORT的当前状态。
4.根据权利要求1所述的网卡混合亲核的硬件绑定方法,其特征在于,在所述配置寄存器为CPU核绑定状态寄存器的情况下,
通过所述CPU核绑定状态寄存器的各二进制位的值,标识与该二进制位对应的CPU核的绑定状态。
5.根据权利要求1所述的网卡混合亲核的硬件绑定方法,其特征在于,在所述配置寄存器为NUMA绑定预定义模板寄存器的情况下,
通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态。
6.根据权利要求5所述的网卡混合亲核的硬件绑定方法,其特征在于,所述通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态,包括:
在所述NUMA绑定预定义模板寄存器的值不大于第一预设阈值的情况下,网卡的PORT口不与NUMA绑定。
7.根据权利要求5所述的网卡混合亲核的硬件绑定方法,其特征在于,所述通过所述NUMA绑定预定义模板寄存器的值,标识NUMA的绑定状态,包括:
在所述NUMA绑定预定义模板寄存器的值位于预设取值区间之内的情况下,网卡所有的PORT口均分别绑定到一个或多个NUMA上;其中,NUMA的数量值等于所述NUMA绑定预定义模板寄存器的值。
8.根据权利要求1~7中任一项所述的网卡混合亲核的硬件绑定方法,其特征在于,在所述配置寄存器为NUMA绑定预定义模板寄存器且所述NUMA绑定预定义模板寄存器的值大于第二预设阈值的情况下,
根据所述NUMA绑定预定义模板寄存器的值确定NUMA预绑定策略;
根据所述NUMA预绑定策略执行网卡与NUMA之间的绑定操作。
9.一种网卡混合亲核的硬件绑定装置,其特征在于,包括:
确定模块,用于根据绑定需求确定所述配置寄存器的配置信息;
配置模块,用于根据所述配置信息通过预设配置指令对所述配置寄存器执行配置操作;
绑定模块,用于根据所述配置寄存器执行网卡与CPU核或网卡与NUMA之间的绑定操作。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储的计算机程序,当被一个或多个处理器执行时,实现如权利要求1至8中任一项所述的网卡混合亲核的硬件绑定方法。
11.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一项所述的网卡混合亲核的硬件绑定方法。
CN202310807718.0A 2023-07-03 2023-07-03 一种网卡混合亲核的硬件绑定方法、装置及存储介质 Pending CN116866167A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310807718.0A CN116866167A (zh) 2023-07-03 2023-07-03 一种网卡混合亲核的硬件绑定方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310807718.0A CN116866167A (zh) 2023-07-03 2023-07-03 一种网卡混合亲核的硬件绑定方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN116866167A true CN116866167A (zh) 2023-10-10

Family

ID=88226228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310807718.0A Pending CN116866167A (zh) 2023-07-03 2023-07-03 一种网卡混合亲核的硬件绑定方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN116866167A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117591450A (zh) * 2024-01-17 2024-02-23 苏州元脑智能科技有限公司 一种数据处理系统、方法、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117591450A (zh) * 2024-01-17 2024-02-23 苏州元脑智能科技有限公司 一种数据处理系统、方法、设备及介质
CN117591450B (zh) * 2024-01-17 2024-03-22 苏州元脑智能科技有限公司 一种数据处理系统、方法、设备及介质

Similar Documents

Publication Publication Date Title
CN107690622B (zh) 实现硬件加速处理的方法、设备和系统
CN105549904B (zh) 一种应用于存储系统中的数据迁移方法及存储设备
CN106104485A (zh) 针对多进程应用的动态资源管理
US20120089797A1 (en) Computer system, storage management computer, and storage management method
KR102594657B1 (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
CN116866167A (zh) 一种网卡混合亲核的硬件绑定方法、装置及存储介质
JP7050957B2 (ja) タスクスケジューリング
TW201820131A (zh) 進程管理方法及裝置
GB2510005A (en) Allocation of processing cores among a set of software programs
US20230110628A1 (en) QUANTUM COMPUTING SERVICE WITH QUALITY OF SERVICE (QoS) ENFORCEMENT VIA OUT-OF-BAND PRIORITIZATION OF QUANTUM TASKS
Long et al. A toolkit for modeling and simulating cloud data storage: An extension to cloudsim
CN108694076A (zh) 多节点存储操作
CN107832151B (zh) 一种cpu资源分配方法、装置及设备
JP2023524665A (ja) ネットワーク・スタック・フレームワークにおいてコヒーレントにアタッチされたインターフェースを利用すること
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
US20180307603A1 (en) Memory hierarchy-aware processing
TW202134870A (zh) 任務調度方法和裝置
CN113467964A (zh) 接入用户态协议栈的实现方法、系统、装置及存储介质
CN107102889B (zh) 一种虚拟机资源调整方法及装置
CN112306669A (zh) 一种基于多核系统的任务处理方法及装置
CN114827048A (zh) 一种动态可配高性能队列调度方法、系统、处理器及协议
CN116400982B (zh) 配置中继寄存器模块的方法和装置、计算设备和可读介质
CN109408226A (zh) 数据处理方法、装置及终端设备
CN116841952A (zh) 核间通信系统、方法、装置、设备、芯片及可读存储介质
WO2024011860A1 (zh) 一种云操作系统部署方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination