CN110515869B - 多Host CPU级联方法及*** - Google Patents

多Host CPU级联方法及*** Download PDF

Info

Publication number
CN110515869B
CN110515869B CN201810497465.0A CN201810497465A CN110515869B CN 110515869 B CN110515869 B CN 110515869B CN 201810497465 A CN201810497465 A CN 201810497465A CN 110515869 B CN110515869 B CN 110515869B
Authority
CN
China
Prior art keywords
network card
pcie
host cpu
host
cpu
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.)
Active
Application number
CN201810497465.0A
Other languages
English (en)
Other versions
CN110515869A (zh
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201810497465.0A priority Critical patent/CN110515869B/zh
Publication of CN110515869A publication Critical patent/CN110515869A/zh
Application granted granted Critical
Publication of CN110515869B publication Critical patent/CN110515869B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

本申请提供一种多Host CPU级联方法及***,该***包括:控制芯片、CPU、PCIE交换芯片以及PCIE网卡;其中:所述控制芯片,用于向所述PCIE网卡下发第一配置指令;所述PCIE网卡,用于根据所述第一配置指令将物理端口虚拟化为多个VF网卡;所述控制芯片,还用于向所述PCIE交换芯片下发第二配置指令;所述PCIE交换芯片,用于根据所述第二配置指令为各Host Port分配VF网卡;所述控制芯片,还用于控制所述CPU上电启动;所述CPU,用于上电启动后,进行PCI扫描,建立自身的虚拟PCI总线域;所述CPU,还用于识别从属于自身的虚拟PCI总线域的VF网卡,并加载VF网卡驱动,通过该VF网卡实现对内/对外的通信。该方法可以满足多个CPU作为Host CPU的需求。

Description

多Host CPU级联方法及***
技术领域
本申请涉及通信技术,尤其涉及一种多Host CPU级联方法及***。
背景技术
在传统的PCIE(Peripheral Component Interconnect Express,外设组件高速互联)透明桥(transparent bridging)级联方案中,严格区分主从,充当主地位的CPU(CenterProcess Unit,中央处理单元)被称为HOST(主)CPU,充当从地位的CPU或者PCIE设备被称为EP(Endpoint,端点),且该种模式下,仅支持1个CPU作为HOST CPU,其他CPU或者PCIE设备只能充当从设备。
然而,目前一些主流的带GPU(Graphics Processing Unit,图形处理单元)的智能芯片由于芯片设计的限制,或者一些CPU由于应用场景的限制只支持主模式,即只能作为Host CPU,从而无法使用传统的PCIE透明桥级联方案进行多CPU/GPU集群式设计。
发明内容
有鉴于此,本申请提供一种多Host CPU级联方法及***。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种多Host CPU级联***,包括控制芯片、CPU、PCIE交换芯片以及PCIE网卡,所述PCIE交换芯片支持MR-IOV功能,所述PCIE网卡支持SR-IOV功能,所述交换芯片上设置有多个Host端口Port,所述CPU通过所述Host Port与所述交换芯片连接,其中:
所述控制芯片,用于向所述PCIE网卡下发第一配置指令;
所述PCIE网卡,用于根据所述第一配置指令将物理端口虚拟化为多个VF网卡;
所述控制芯片,还用于向所述PCIE交换芯片下发第二配置指令;
所述PCIE交换芯片,用于根据所述第二配置指令为各Host Port分配VF网卡;
所述控制芯片,还用于控制所述CPU上电启动;
所述CPU,用于上电启动后,进行PCI扫描,建立自身的虚拟PCI总线域;
所述CPU,还用于识别从属于自身的虚拟PCI总线域的VF网卡,并加载VF网卡驱动,通过该VF网卡实现对内/对外的通信。
可选的,所述控制芯片,具体用于识别所述PCIE网卡的物理功能PF,加载PF驱动,并向所述PCIE网卡下发第一配置指令。
可选的,所述PCIE网卡包括第一物理端口和第二物理端口;
所述PCIE网卡,具体用于将所述第一物理端口虚拟化为多个第一类型VF网卡,并将第二物理端口虚拟化为多个第二类型VF网卡;
所述PCIE交换芯片,具体用于分别为各Host Port分配第一类型VF网卡和第二类型VF网卡;
所述CPU,具体用于通过从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内的通信,并通过从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外的通信。
可选的,所述PCIE交换芯片还设置有NTB模块或/和DMA模块;
所述CPU,还用于通过NTB方式或/和DMA方式实现对内的通信。
可选的,所述CPU集成有GPU。
根据本申请实施例的第二方面,提供一种多Host CPU级联方法,应用于包括控制芯片、CPU、PCIE交换芯片以及PCIE网卡的多Host CPU级联***,所述PCIE交换芯片支持MR-IOV功能,所述PCIE网卡支持SR-IOV功能,所述交换芯片上设置有多个Host端口Port,所述CPU通过所述Host Port与所述交换芯片连接,所述方法还包括:
所述控制芯片向所述PCIE网卡下发第一配置指令;
所述PCIE网卡根据所述第一配置指令将物理端口虚拟化为多个虚拟功能VF网卡;
所述控制芯片向所述PCIE交换芯片下发第二配置指令;
所述PCIE交换芯片根据所述第二配置指令为各Host Port分配VF网卡;
所述控制芯片控制所述CPU上电启动;
所述CPU上电启动后,进行外设组件互联PCI扫描,建立自身的虚拟PCI总线域;
所述CPU识别从属于自身的虚拟PCI总线域的VF网卡,加载VF网卡驱动,通过该VF网卡实现对内/对外的通信。
可选的,所述控制芯片向所述PCIE网卡下发第一配置指令,包括:
所述控制芯片识别所述PCIE网卡的物理功能PF,加载PF驱动,并向所述PCIE网卡下发第一配置指令。
可选的,所述PCIE网卡包括第一物理端口和第二物理端口;
所述PCIE网卡根据所述第一配置指令将物理端口虚拟化为多个VF网卡,包括:
所述PCIE网卡将所述第一物理端口虚拟化为多个第一类型VF网卡,并将第二物理端口虚拟化为多个第二类型VF网卡;
所述PCIE交换芯片根据所述第二配置指令为各Host Port分配VF网卡,包括:
所述PCIE交换芯片分别为各Host Port分配第一类型VF网卡和第二类型VF网卡;
所述CPU通过该VF网卡实现对内/对外的通信,包括:
所述CPU通过从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内的通信,并通过从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外的通信。
可选的,所述PCIE交换芯片还设置有NTB模块或/和DMA模块;
所述方法还包括:
所述CPU通过NTB方式或/和DMA方式实现对内的通信。
可选的,所述CPU集成有GPU。
本申请实施例的多Host CPU级联***,通过利用支持MR-IOV功能的PCIE交换芯片和支持SR-IOV功能的PCIE网卡构建了一套基于PCIE的多HOST CPU级联***,控制芯片控制PCIE网卡虚拟化为多个VF网卡,并由PCIE交换芯片分别给各Host Port,以使通过PCIE交换芯片上设置的Host Port接入的CPU能够建立自身的虚拟PCI总线域,并利用所分配的VF网卡实现对内/对外的通信,既满足了多个CPU作为Host CPU的需求,又能很好的满足多个Host CPU共享一个物理网卡实现对内/对外的数据通信的需求,且直接支持标准的网络接口,上层代码兼容性强,扩展方便。
附图说明
图1是本申请一示例性实施例示出的一种多Host CPU级联***的架构示意图;
图2是本申请一示例性实施例示出的一种多Host CPU级联方法的流程示意图;
图3是本申请一示例性实施例示出一种的具体应用场景的架构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参见图1,为本申请实施例提供的一种多Host CPU级联***的架构示意图,如图1所示,该多Host CPU级联***可以包括控制芯片110、CPU120、PCIE交换芯片130以及PCIE网卡140,所述CPU120通过所述PCIE交换芯片130上设置的Host Port(端口)与PCIE交换芯片130连接。其中:
所述控制芯片110,用于向所述PCIE网卡140下发第一配置指令;
所述PCIE网卡140,用于根据所述第一配置指令将物理端口虚拟化为多个VF(Virutal Function,虚拟功能)网卡;
所述控制芯片110,还用于向所述PCIE交换芯片130下发第二配置指令;
所述PCIE交换芯片130,用于根据所述第二配置指令为各Host Port分配VF网卡;
所述控制芯片110,还用于控制所述CPU120上电启动;
所述CPU120,用于上电启动后,进行外设组件互联PCI扫描,建立自身的虚拟PCI总线域;
所述CPU120,还用于识别从属于自身的虚拟PCI总线域的VF网卡,加载VF网卡驱动,通过该VF网卡实现对内/对外的通信。
需要说明的是,在本申请实施例中,若未特殊说明,所提及的CPU均指通过PCIE交换芯片的Host Port接入的CPU,即Host CPU,本申请实施例后续不再复述。
本申请实施例中,为了实现多Host CPU级联,PCIE交换芯片130需要支持MR-IOV(Multi-Root I/O(Input/Output,输入/输出)Virtualization,多根输入/输出虚拟化)功能,以便PCIE交换芯片可以一个PCI总线域虚拟化为多个PCI总线域;PCIE网卡140需要支持SR-IOV(Single-Root I/O Virtualization,单根输入/输出虚拟化)功能,以便PCIE网卡可以将一个PF网卡虚拟化为多个VF网卡。
PCIE交换芯片130上可以设置有多个Host Port,从而,可以有多个CPU120通过该多个Host Port与PCIE交换芯片130,其中,该多个通过Host Port与PCIE交换芯片130连接的CPU120均作为Host CPU,实现多Host CPU级联。
本申请实施例中,控制芯片110可以向PCIE网卡140下发配置指令(本文中称为第一配置指令),以指示PCIE网卡140进行VF网卡虚拟化操作。
例如,控制芯片110可以识别PCIE网卡140的PF(Physical Function,物理功能),加载PF驱动,并向PCIE网卡140下发第一配置指令。
PCIE网卡140接收到控制芯片110发送的第一配置指令时,PCIE网卡140可以使能SR-IOV功能,并将物理端口虚拟化为多个VF网卡。
其中,PCIE网卡140将物理端口虚拟化为VF网卡的数量可以由控制芯片110通过第一配置指令指示或预先配置在PCIE网卡140中。
本申请实施例中,PCIE网卡140完成VF网卡虚拟化操作之后,控制芯片110可以向PCIE交换芯片130下发配置指令(本文中称为第二配置指令),以指示PCIE交换芯片130为各Host Port分配VF网卡。
PCIE交换芯片130接收到控制芯片110发送的第二配置指令时,PCIE交换芯片130可以分别为各Host Port分配VF网卡。
例如,PCIE交换芯片130可以分别为各Host Port分配一个VF网卡;或者,PCIE交换芯片130可以分别为多个Host Port中的部分或全部Host Port分配多个VF网卡。
本申请实施例中,PCIE交换芯片130完成VF网卡分配之后,控制芯片110可以控制通过Host Port接入PCIE交换芯片的CPU120上电启动。
CPU120上电启动后,可以进行PCI扫描,建立自身的虚拟PCI总线域,进而,CPU120可以识别从属于自身的虚拟PCI总线域的VF网卡(PCIE交换芯片130分配给CPU120所连接的Host Port的VF网卡),并加载VF网卡驱动,通过从属于自身的虚拟PCI总线域的VF网卡实现对内(即Host CPU与Host CPU之间)/对外(即Host CPU与外网之间)的通信。
需要说明的是,在本申请实施例中,CPU120建立了自身的虚拟PCI总线域,并识别了从属于自身的虚拟PCI总线域的VF网卡,加载了VF网卡驱动之后,在通过该VF网卡实现对内/对外的通信之前,还需要对VF网卡进行IP地址配置,其具体实现在此不做赘述。
可见,在本申请实施例中,通过利用支持MR-IOV功能的PCIE交换芯片和支持SR-IOV功能的PCIE网卡构建了一套基于PCIE的多HOST CPU级联***,既满足了多个CPU作为Host CPU的需求,又能很好的满足多个Host CPU共享一个物理网卡实现对内/对外的数据通信的需求,且直接支持标准的网络接口,上层代码兼容性强,扩展方便。
进一步地,在本申请其中一个实施例中,所述PCIE网卡140可以包括第一物理端口和第二物理端口;
相应地,所述PCIE网卡140,可以具体用于将第一物理端口虚拟化为多个第一类型VF网卡,并将第二物理端口虚拟化为多个第二类型VF网卡;
所述PCIE交换芯片130,可以具体用于分别为各Host Port分配第一类型VF网卡和第二类型VF网卡;
所述CPU120,可以具体用于通过从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内的通信,并通过从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外的通信。
在该实施例中,为了提高数据通信的可控性和处理效率,当PCIE网卡140存在多个物理端口时,可以将其中部分物理端口(本文中称为第一物理端口)用于Host CPU之间的数据通信,部分物理端口(本文中称为第二物理端口)用于Host CPU与外网之间的数据通信。
相应地,在该实施例中,控制芯片110对PCIE网卡140进行VF网卡虚拟化配置时,可以指示PCIE网卡140将第一物理端口虚拟化为用于对内的通信的VF网卡(本文中称为第一类型VF网卡),并将第二物理端口虚拟化为用于对外的通信的VF网卡(本文中称为第二类型VF网卡)。
同理,控制芯片110对PCIE交换芯片130进行VF网卡分配配置时,可以指示PCIE交换芯片130分别为各Host Port分配第一类型VF网卡和第二类型VF网卡。
例如,PCIE交换芯片130可以分别为各Host Port分配一个第一类型VF网卡和一个第二类型VF网卡,或者,PCIE交换芯片130可以分别为各Host Port分配多个第一类型VF网卡和多个第二类型VF网卡。
其中,PCIE交换芯片130为同一Host Port分配的第一类型VF网卡的数量和第二类型VF网卡的数量可以相同,也可以不同;PCIE交换芯片130为不同Host Port分配的第一类型VF网卡的数量和第二类型VF网卡的数量均可以相同,也可以不同。
在该实施例中,CPU120按照上述方式进行PCI扫描,建立自身的虚拟PCI总线域,识别从属于自身的虚拟PCI总线域的VF网卡,并加载VF网卡驱动之后,可以通过从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内的通信,并通过从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外的通信。
进一步地,在本申请其中一个实施例中,PCIE交换芯片130中还可以设置有NTB(Non-transparent bridging,非透明桥)模块或/和DMA(Direct Memory Access,直接内存存取)模块;
相应地,所述CPU120,还可以用于通过NTB方式或/和DMA方式实现对内的通信。
在该实施例中,当PCIE交换芯片130中有NTB模块或/和DMA模块时,CPU120除了可以按照上述方式实现对内通信之外,还可以通过NTB方式或/和DMA方式实现对内的通信。
其中,CPU120通过NTB方式或/和DMA方式实现对内的通信的具体实现可以参见现有相关技术中的相关描述,本申请实施例在此不做赘述。
进一步地,在本申请其中一个实施例中,上述CPU可以集成有GPU。
在该实施例中,对于集成有GPU的CPU,也可以通过上述方式实现多Host GPU级联,其具体实现可以参见上述方法实施例中的相关描述,本申请实施例在此不再赘述。
请参见图2,为本申请实施例提供的一种多Host CPU级联方法的流程示意图,其中,该多Host CPU级联方法可以应用于包括控制芯片、CPU、PCIE交换芯片以及PCIE网卡的多Host CPU级联***,例如,该多Host CPU级联方法可以应用于图1所示的多Host CPU级联***,如图2所示,该多Host CPU级联方法可以包括以下步骤:
步骤S200、控制芯片向PCIE网卡下发第一配置指令。
本申请实施例中,控制芯片可以向PCIE网卡下发第一配置指令,以指示PCIE网卡140进行VF网卡虚拟化操作。
例如,控制芯片110可以识别PCIE网卡的PF,加载PF驱动,并向PCIE网卡下发第一配置指令。
步骤S210、PCIE网卡根据第一配置指令将物理端口虚拟化为多个VF网卡。
本申请实施例中,PCIE网卡接收到控制芯片发送的第一配置指令时,可以使能SR-IOV功能,并将物理端口虚拟化为多个VF网卡。
其中,PCIE网卡将物理端口虚拟化为VF网卡的数量可以由控制芯片通过第一配置指令指示或预先配置在PCIE网卡140中。
步骤S220、控制芯片向PCIE交换芯片下发第二配置指令。
本申请实施例中,PCIE网卡完成VF网卡虚拟化操作之后,可以向PCIE交换芯片下发第二配置指令,以指示PCIE交换芯片为各Host Port分配VF网卡。
步骤S230、PCIE交换芯片根据第二配置指令为各Host Port分配VF网卡。
本申请实施例中,PCIE交换芯片接收到控制芯片发送的第二配置指令时,PCIE交换芯片可以分别为各Host Port分配VF网卡。
例如,PCIE交换芯片可以分别为各Host Port分配一个VF网卡;或者,PCIE交换芯片可以分别为多个Host Port中的部分或全部Host Port分配多个VF网卡。
步骤S240、控制芯片控制CPU上电启动。
步骤S250、CPU上电启动后,进行PCI扫描,建立自身的虚拟PCI总线域。
步骤S260、CPU识别从属于自身的虚拟PCI总线域的VF网卡,加载VF网卡驱动,通过该VF网卡实现对内/对外的通信。
本申请实施例中,PCIE交换芯片完成VF网卡分配之后,可以控制通过Host Port接入PCIE交换芯片的CPU上电启动。
CPU上电启动后,可以进行PCI扫描,建立自身的虚拟PCI总线域,进而,CPU可以识别从属于自身的虚拟PCI总线域的VF网卡,并加载VF网卡驱动,通过该VF网卡实现对内/对外的通信。
在本申请其中一个实施例中,上述PCIE网卡可以包括第一物理端口和第二物理端口;
相应地,上述PCIE网卡根据第一配置指令将物理端口虚拟化为多个VF网卡,可以包括:
PCIE网卡将第一物理端口虚拟化为多个第一类型VF网卡,并将第二物理端口虚拟化为多个第二类型VF网卡;
PCIE交换芯片根据第二配置指令为各Host Port分配VF网卡,可以包括:
PCIE交换芯片分别为各Host Port分配第一类型VF网卡和第二类型VF网卡;
上述CPU通过该VF网卡实现对内/对外的通信,可以包括:
CPU通过从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内的通信,并通过从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外的通信。
在该实施例中,为了提高数据通信的可控性和处理效率,当PCIE网卡140存在多个物理端口时,可以将第一物理端口用于Host CPU之间的数据通信,第二物理端口用于HostCPU与外网之间的数据通信。
相应地,控制芯片对PCIE网卡进行VF网卡虚拟化配置时,可以指示PCIE网卡将第一物理端口虚拟化为用于对内的通信的第一类型VF网卡,并将第二物理端口虚拟化为用于对外的通信的第二类型VF网卡。
同理,控制芯片对PCIE交换芯片进行VF网卡分配配置时,可以指示PCIE交换芯片分别为各Host Port分配第一类型VF网卡和第二类型VF网卡。
在该实施例中,CPU可以通过从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内的通信,并通过从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外的通信。
在本申请其中一个实施例中,PCIE交换芯片中还可以设置有NTB模块或/和DMA模块;
相应地,CPU还可以通过NTB方式或/和DMA方式实现对内的通信。
在本申请其中一个实施例中,上述CPU可以集成有GPU。
在该实施例中,对于集成有GPU的CPU,也可以通过上述方式实现多Host GPU级联,其具体实现可以参见上述方法实施例中的相关描述,本申请实施例在此不再赘述。
需要说明的是,在本申请实施例中,当需要扩展多Host CPU级联***中各HostCPU对内/对外的通信带宽时,可以再在***中接入新的支持SR-IOV功能的PCIE网卡,并按照上述方式进行VF网卡虚拟化操作以及VF网卡分配操作即可,其具体实现在此不再赘述。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体应用场景对本申请实施例提供的技术方案进行说明。
请参见图3,为本申请实施例提供的一种具体应用场景的示意图,如图3所示,在该实施例中,以控制芯片为MCPU(Management CPU,管理CPU),PCIE交换芯片设置为16个HostPort(假设分别为Host Port1~Host Port16),且设置有NTB模块和DMA模块,PCIE网卡包括两个物理端口(假设分别为端口1和端口2)为例;其中,PCIE交换芯片可以通过ManagementPort(管理口)与MCPU连接,并通过Downstream Port(下游口)与PCIE网卡连接。
需要说明的是,在实际应用场景中,可以通过多个PCIE交换芯片级联的方式扩展Host Port的数量。
在该实施例中,MCPU识别到PCIE网卡的PF之后,可以加载PF驱动,并向PCIE网卡下发第一配置指令。
PCIE网卡接收到该第一配置指令时,可以将端口1划分为16个第一类型VF网卡(假设分别为VF a1~VF a16),并将端口2划分为16个第二类型VF网卡(假设分别为VF b1~VFb16)。
PCIE网卡完成VF网卡虚拟化操作后,MCPU可以向PCIE交换芯片下发第二配置指令。
PCIE交换芯片接收到第二配置指令时,可以分别为各Host Port分配一个第一类型VF网卡和一个第二类型VF网卡。
假设,PCIE交换芯片为Host Port1分配VF a1和VF b1,为Host Port2分配VF a2和VF b2,…,为Host Port16分配VF a16和VF b16。
PCIE交换芯片完成VF网卡分配后,MCPU可以控制通过Host Port接入PCIE交换芯片的CPU上电启动。
下文中以通过Host Port1接入PCIE交换芯片的CPU(下文中称为Host CPU1)为例进行说明。
Host CPU1上电启动后,可以进行PCI扫描,建立从属于自身的虚拟PCI总线域。
其中,MCPU扫描到的PCI总线域是物理PCI总线域,而每个HOST CPU所属的PCI域是基于MR-IOV技术建立的从属自己的虚拟PCI总线域。
Host CPU1识别到从属于自身的虚拟PCI总线域的VF网卡(即VF a1和VF b1),加载VF网卡驱动,并分别对VF a1和VF b1配置IP地址,进而,Host CPU1可以通过VF a1与其它Host CPU进行数据通信,并通过VF b1与外网进行数据通信。
此外,Host CPU1还可以通过NTB方式或DMA方式与其它Host CPU进行数据通信。
其中,Host CPU1可以通过PCI-PCI桥(简称P-P)与NTB模块、DMA模块以及VF网卡连接。
本申请实施例中,通过利用支持MR-IOV功能的PCIE交换芯片和支持SR-IOV功能的PCIE网卡构建了一套基于PCIE的多HOST CPU级联***,控制芯片控制PCIE网卡虚拟化为多个VF网卡,并由PCIE交换芯片分别给各Host Port,以使通过PCIE交换芯片上设置的HostPort接入的CPU能够建立自身的虚拟PCI总线域,并利用所分配的VF网卡实现对内/对外的通信,既满足了多个CPU作为Host CPU的需求,又能很好的满足多个Host CPU共享一个物理网卡实现对内/对外的数据通信的需求,且直接支持标准的网络接口,上层代码兼容性强,扩展方便。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (8)

1.一种多主中央处理单元Host CPU级联***,其特征在于,包括控制芯片、Host CPU、外设组件高速互联PCIE交换芯片以及PCIE网卡,所述PCIE交换芯片支持多根输入/输出虚拟化MR-IOV功能,所述PCIE网卡支持单根输入/输出虚拟化SR-IOV功能,所述交换芯片上设置有多个Host端口Port,所述Host CPU通过所述Host Port与所述交换芯片连接,其中:
所述控制芯片,用于向所述PCIE网卡下发第一配置指令;
所述PCIE网卡,包括用于Host CPU之间数据通信的第一物理端口和用于Host CPU与外网之间数据通信的第二物理端口,用于根据第一配置指令将所述第一物理端口虚拟化为多个第一类型VF网卡,并将第二物理端口虚拟化为多个第二类型VF网卡;
所述控制芯片,还用于向所述PCIE交换芯片下发第二配置指令;
所述PCIE交换芯片,用于根据所述第二配置指令分别为各Host Port分配第一类型VF网卡和第二类型VF网卡;
所述控制芯片,还用于控制所述Host CPU上电启动;
所述Host CPU,用于上电启动后,进行外设组件互联PCI扫描,建立自身的虚拟PCI总线域;
所述Host CPU,还用于识别从属于自身的虚拟PCI总线域的VF网卡,并加载VF网卡驱动,以通过识别从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内通信,通过识别从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外通信。
2.根据权利要求1所述的多Host CPU级联***,其特征在于,
所述控制芯片,具体用于识别所述PCIE网卡的物理功能PF,加载PF驱动,并向所述PCIE网卡下发第一配置指令。
3.根据权利要求1所述的多Host CPU级联***,其特征在于,所述PCIE交换芯片还设置有非透明桥NTB模块或/和直接内存存取DMA模块;
所述Host CPU,还用于通过NTB方式或/和DMA方式实现对内的通信。
4.根据权利要求1所述的多Host CPU级联***,其特征在于,所述Host CPU集成有图形处理单元GPU。
5.一种多主中央处理单元Host CPU级联方法,其特征在于,应用于包括控制芯片、HostCPU、外设组件高速互联PCIE交换芯片以及PCIE网卡的多Host CPU级联***,所述PCIE交换芯片支持多根输入/输出虚拟化MR-IOV功能,所述PCIE网卡包括第一物理端口和第二物理端口,且用于支持单根输入/输出虚拟化SR-IOV功能,所述交换芯片上设置有多个Host端口Port,所述Host CPU通过所述Host Port与所述交换芯片连接,所述方法还包括:
所述控制芯片向所述PCIE网卡下发第一配置指令;
所述PCIE网卡根据第一配置命令将所述第一物理端口虚拟化为多个第一类型VF网卡,并将第二物理端口虚拟化为多个第二类型VF网卡;
所述控制芯片向所述PCIE交换芯片下发第二配置指令;
所述PCIE交换芯片根据所述第二配置指令分别为各Host Port分配第一类型VF网卡和第二类型VF网卡;
所述控制芯片控制所述Host CPU上电启动;
所述Host CPU上电启动后,进行外设组件互联PCI扫描,建立自身的虚拟PCI总线域;
所述Host CPU识别从属于自身的虚拟PCI总线域的VF网卡,加载VF网卡驱动,以通过识别从属于自身的虚拟PCI总线域的第一类型VF网卡实现对内通信,通过识别从属于自身的虚拟PCI总线域的第二类型VF网卡实现对外通信。
6.根据权利要求5所述的方法,其特征在于,所述控制芯片向所述PCIE网卡下发第一配置指令,包括:
所述控制芯片识别所述PCIE网卡的物理功能PF,加载PF驱动,并向所述PCIE网卡下发第一配置指令。
7.根据权利要求5所述的方法,其特征在于,所述PCIE交换芯片还设置有非透明桥NTB模块或/和直接内存存取DMA模块;
所述方法还包括:
所述Host CPU通过NTB方式或/和DMA方式实现对内的通信。
8.根据权利要求5所述的方法,其特征在于,所述Host CPU集成有图形处理单元GPU。
CN201810497465.0A 2018-05-22 2018-05-22 多Host CPU级联方法及*** Active CN110515869B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810497465.0A CN110515869B (zh) 2018-05-22 2018-05-22 多Host CPU级联方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810497465.0A CN110515869B (zh) 2018-05-22 2018-05-22 多Host CPU级联方法及***

Publications (2)

Publication Number Publication Date
CN110515869A CN110515869A (zh) 2019-11-29
CN110515869B true CN110515869B (zh) 2021-09-21

Family

ID=68622093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810497465.0A Active CN110515869B (zh) 2018-05-22 2018-05-22 多Host CPU级联方法及***

Country Status (1)

Country Link
CN (1) CN110515869B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113630184A (zh) * 2021-08-19 2021-11-09 北京华智信科技发展有限公司 一种光纤通信网络***
CN115208843B (zh) * 2022-07-13 2023-06-30 天津津航计算技术研究所 一种板级国产交换机级联实现***及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707991A (zh) * 2012-05-17 2012-10-03 中国科学院计算技术研究所 多根i/o 虚拟化共享方法和***
CN102946366A (zh) * 2012-11-12 2013-02-27 杭州华为数字技术有限公司 带内管理方法及***
US9135101B2 (en) * 2013-03-01 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Virtual function timeout for single root input/output virtualization controllers

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601684A (zh) * 2014-12-31 2015-05-06 曙光云计算技术有限公司 云服务器***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707991A (zh) * 2012-05-17 2012-10-03 中国科学院计算技术研究所 多根i/o 虚拟化共享方法和***
CN102946366A (zh) * 2012-11-12 2013-02-27 杭州华为数字技术有限公司 带内管理方法及***
US9135101B2 (en) * 2013-03-01 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Virtual function timeout for single root input/output virtualization controllers

Also Published As

Publication number Publication date
CN110515869A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN106796529B (zh) 通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法
EP3264280B1 (en) Method and apparatus for extending pcie domain
US20210294759A1 (en) Mechanism to dynamically allocate physical storage device resources in virtualized environments
US7516252B2 (en) Port binding scheme to create virtual host bus adapter in a virtualized multi-operating system platform environment
CN104767838B (zh) 微服务器、分配mac地址的方法、以及计算机可读记录介质
CN102650976B (zh) 一种支持单根io虚拟化用户级接口控制装置及其方法
CN105320628B (zh) 使能单根i/o设备多根共享的适配装置、***及方法
US8972611B2 (en) Multi-server consolidated input/output (IO) device
CN102722414A (zh) 用于多根i/o 虚拟化共享***的i/o 资源管理方法
US6260081B1 (en) Direct memory access engine for supporting multiple virtual direct memory access channels
US20120284437A1 (en) Pci express sr-iov/mr-iov virtual function clusters
EP4053706A1 (en) Cross address-space bridging
EP3716084A1 (en) Apparatus and method for sharing a flash device among multiple masters of a computing platform
CN112306624A (zh) 一种信息处理方法、物理机和pcie设备
CN110515869B (zh) 多Host CPU级联方法及***
TWI616759B (zh) 設備分配控制器以及設備分配方法
US10853284B1 (en) Supporting PCI-e message-signaled interrupts in computer system with shared peripheral interrupts
CN117271105A (zh) 芯片、芯片控制方法及相关装置
WO2015043175A1 (zh) 服务器***及其操作***启动方法和启动管理节点
CN111158849A (zh) 支持虚拟机共享io设备的多机计算装置及其io设备共享方法
WO2012143947A2 (en) Multi-host peripheral controller
WO2023221525A1 (zh) 电路板的资源分配方法、装置、电路板以及存储介质
US10025736B1 (en) Exchange message protocol message transmission between two devices
CN116893988A (zh) 接口设备及其操作方法
CN116048658A (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
GR01 Patent grant
GR01 Patent grant