CN112698871A - 在多cpu设备中使用option-rom的网络适配器配置 - Google Patents

在多cpu设备中使用option-rom的网络适配器配置 Download PDF

Info

Publication number
CN112698871A
CN112698871A CN202011130239.2A CN202011130239A CN112698871A CN 112698871 A CN112698871 A CN 112698871A CN 202011130239 A CN202011130239 A CN 202011130239A CN 112698871 A CN112698871 A CN 112698871A
Authority
CN
China
Prior art keywords
network adapter
cpu device
option
network
rom
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
CN202011130239.2A
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.)
Mellanox Technologies Ltd
Original Assignee
Mellanox Technologies 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 Mellanox Technologies Ltd filed Critical Mellanox Technologies Ltd
Publication of CN112698871A publication Critical patent/CN112698871A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)

Abstract

网络适配器包括一个或多个网络端口、多个总线接口和处理器。网络端口被配置为与通信网络通信。总线接口被配置为与多CPU设备的多个相应CPU通信。该处理器包括在网络适配器中,并被配置为支持Option‑ROM功能,其中网络适配器保存Option‑ROM程序指令,这些指令可在引导过程中由多CPU设备加载并执行,以向多CPU设备公开仅在从多个总线接口中选择的单个总线接口上支持Option‑ROM功能,并且通过将Option‑ROM程序指令加载到多CPU设备来导致多CPU设备仅向用户呈现单个非冗余命令集,用于通过单个总线接口管理网络适配器的所有多个总线接口。

Description

在多CPU设备中使用OPTION-ROM的网络适配器配置
技术领域
本发明总体上涉及网络适配器,尤其涉及用于多CPU设备中的网络适配器配置的方法和系统。
背景技术
服务器和计算机通常在加电时执行预定义的引导(“boot”)过程。在典型的引导过程中,计算机的内建操作系统(BIOS)启动计算机的各种外围设备,例如网络适配器、图形处理器和盘。一些计算机外围设备支持“Option-ROM”程序代码,其通常存储在板载非易失性存储器中,由BIOS调用并执行。Option-ROM有时也被称为“扩展ROM”。Option-ROM的一个示例用例是网络引导Option-ROM,其存储在网络适配器中,并使得BIOS能够通过网络从远程位置加载计算机的操作系统。
美国专利10,318,312(其公开内容通过引用并入本文)描述了用于在Socket-Direct网络适配器中支持Option-ROM的技术。网络适配器包括一个或多个网络端口、多个总线接口和处理器。网络端口被配置为与通信网络进行通信。总线接口被配置为与属于多CPU设备的多个相应中央处理单元(CPU)进行通信。处理器被配置为支持Option-ROM功能,其中网络适配器保存Option-ROM程序指令,该指令可在引导过程中由多CPU设备加载并执行,以及响应于来自多CPU设备报告Option-ROM功能的支持的请求,报告仅在从多个总线接口中选择的单个总线接口上支持Option-ROM功能,多个总线接口将网络适配器连接到多CPU设备。
发明内容
本文描述的本发明的实施方式提供了一种网络适配器,其包括一个或多个网络端口、多个总线接口和处理器。一个或多个网络端口被配置为与通信网络进行通信。多个总线接口被配置为与多CPU设备的多个相应中央处理单元(CPU)进行通信。处理器包括在网络适配器中,并被配置为支持Option-ROM功能,其中网络适配器保存Option-ROM程序指令,该指令可在引导过程中由多CPU设备加载并执行。处理器被配置为向多CPU设备公开仅在从多个总线接口中选择的单个总线接口上支持Option-ROM功能,并且通过将Option-ROM程序指令加载到多CPU设备,使多CPU设备仅向用户呈现单个非冗余命令集,用于经由单个总线接口管理网络适配器的所有多个总线接口。
通常,响应于来自所述多CPU设备报告所述Option-ROM功能的支持的请求,所述处理器被配置为即使所述网络适配器的所有多个总线接口都支持所述Option-ROM功能,也是公开仅在所述单个总线接口上支持所述Option-ROM功能。在一些实施方式中,所述单个非冗余命令集包括用于管理至少所述多个总线接口的一个或多个配置菜单的单个非冗余集。
在一些实施方式中,多个总线接口被配置为通过外围组件互连快速(PCIe)总线与多CPU设备通信。在一个实施方式中,所述单个非冗余命令集包括用于管理所选择的PCIe物理功能(PF)的本地参数的命令。在另一实施方式中,所述单个非冗余命令集包括用于管理与关联于一个或多个所述总线接口的两个或更多个PCIe物理功能(PF)有关的全局参数的命令。在公开的实施方式中,所述单个非冗余命令集包括用于管理所述网络适配器的全局资源的命令。
在一些实施方式中,所述多CPU设备包括多CPU服务器。
在一些实施方式中,所述处理器被配置为通过向所述用户呈现配置菜单的单个非冗余集来呈现所述单个非冗余命令集。在示例实施方式中,所述处理器被配置为与所述单个选择的总线接口相关联地呈现所述配置菜单集,包括在所述配置菜单集内呈现用于管理所述单个选择的总线接口之外的一个或多个总线接口的一个或多个子菜单。
在另一实施方式中,所述处理器被配置为向所述多CPU设备的操作系统公开所述网络适配器作为对应于所述多个总线接口的多个逻辑网络适配器。在又一实施方式中,所述处理器被配置为向所述多CPU设备的操作系统公开所述网络适配器作为由所述多个总线接口共享的单个逻辑网络适配器。在又一实施方式中,所述处理器被配置为响应于用户输入来选择是否向所述多CPU设备的操作系统公开所述网络适配器作为与所述多个总线相对应的多个逻辑网络适配器,或作为由所述多个总线接口共享的单个逻辑网络适配器。
根据本发明的实施方式,另外提供了一种方法,该方法包括:在网络适配器中,经由一个或多个端口与通信网络进行通信,并经由多个总线接口与多CPU设备的多个相应中央处理单元(CPU)进行通信。通过在所述网络适配器中保存Option-ROM程序指令来在所述网络适配器中支持Option-ROM功能,所述程序指令可在引导过程中由所述多CPU设备加载并执行。向所述多CPU设备公开仅在从所述多个总线接口中选择的单个总线接口上支持所述Option-ROM功能。通过将所述Option-ROM程序指令加载到所述多CPU设备,使所述多CPU设备仅向用户呈现单个非冗余命令集,用于经由所述单个总线接口管理所述网络适配器的所有多个总线接口。
根据本发明的实施方式,还提供了一种计算机软件产品,该产品包括存储有程序指令的有形的非暂时性计算机可读介质,所述程序指令在被网络适配器的处理器读取时使所述处理器执行以下操作,所述网络适配器被配置为经由一个或多个网络端口与通信网络进行通信,并通过多个总线接口与多CPU设备的多个相应中央处理单元(CPU)进行通信:使得所述处理器支持Option-ROM功能,其中所述网络适配器保存Option-ROM程序指令,所述程序指令可在引导过程中由多CPU设备加载并执行,向所述多CPU设备公开仅在从所述多个总线接口中选择的单个总线接口上支持所述Option-ROM功能,通过将所述Option-ROM程序指令加载到所述多CPU设备,使所述多CPU设备仅向用户呈现单个非冗余命令集,用于经由所述单个总线接口管理所述网络适配器的所有多个总线接口。
通过下面结合附图对实施方式的详细描述,可以更全面地理解本发明,其中:
附图说明
图1和图2是示意性地示出根据本发明的实施方式的多CPU服务器的框图;以及
图3是示意性地示出根据本发明的实施方式的在多CPU服务器的引导期间配置Socket-Direct网络适配器的方法的流程图。
具体实施方式
这里描述的本发明的实施方式提供了用于多CPU设备的改进的网络适配器和相关方法。所公开的技术增强了在这种网络适配器和多CPU设备中对Option-ROM功能的支持。
在一些实施方式中,网络适配器用于将多CPU设备(例如多CPU服务器)连接到通信网络。具体地,网络适配器被配置为例如通过直接相应的PCIe链路直接与多CPU设备的两个或更多个CPU进行通信。网络适配器支持Option-ROM功能,即保存可在引导过程中由多CPU设备的BIOS加载和执行的Option-ROM程序代码。
在通信性能方面,在网络适配器和多个单独的CPU之间直接通信的能力(有时被称为“套接字直连”的体系结构)是有利的。然而,用于管理支持Option-ROM和用于通常管理多CPU设备的能力可能会导致复杂化。
为了避免管理问题,网络适配器仅在单个选择的PCIe接口上故意公开了对Option-ROM的支持(即使将网络适配器连接到多CPU设备的所有PCIe接口都支持Option-ROM)。此外,Option-ROM程序代码被设计为使多CPU设备仅向用户呈现用于管理网络适配器的所有多个PCIe接口的单个非冗余命令集。通常,命令集经由单个选择的PCIe接口管理和配置多个PCIe接口。
在一些实施方式中,命令集包括用于管理网络适配器的(一个或多个)配置菜单的单个非冗余集,包括监视和配置多个PCIe接口。本文描述了此类命令和菜单的几个示例。
在一些实施方式中,网络适配器被公开给主机操作系统作为对应于多个PCIe接口的多个不同的网络设备。在其他实施方式中,网络适配器被公开给主机操作系统作为由多个PCIe接口共享的单个网络设备。在实施方式中,用户或操作系统可以例如在引导期间在两种操作模式之间进行选择。
通过使用公开的技术,将整个Socket-Direct网络适配器作为单个管理实体呈现给用户。同时,由Option-Rom代码呈现给用户的命令(例如,配置菜单)使能统一监视和配置网络适配器的多个PCIe接口。
系统描述
图1是示意性地示出根据本发明的实施方式的多CPU服务器20的框图。为了清楚起见,以下描述主要是指多CPU服务器。然而,所公开的技术可应用于任何其他适合的多CPU设备。
多CPU服务器20包括多个中央处理单元(CPU)24。为清楚起见,该图示出了两个CPU24,分别表示为“CPU-1”和“CPU-2”。然而,在替代实施方式中,多CPU服务器20可以包括任何合适数目的CPU24。通常,多CPU服务器20运行管理多个CPU 24的单个操作系统(OS)。
网络适配器28用于将多CPU服务器20连接到通信网络34。网络34可以包括,例如,以太网或无限带宽网络。在本示例中,多CPU服务器20和网络适配器28被实现为“套接字直连”设备。在这样的配置中,网络适配器28直接连接到两个或更多个单独的CPU 24,从而使CPU能够直接通过网络34进行通信。
多CPU服务器20中的CPU 24还被配置为使用合适的结构(例如,快速路径互连(QPI)或超路径互连(UPI)结构26)彼此通信。然而,为了与网络34通信,每个CPU 24通常不经由QPI/UPI结构,而是通过相应的直接链路与网络适配器28进行通信。
在本示例中,CPU 24和网络适配器28之间的直接链接包括外围组件高速互连(PCIe)总线接口48。PCIe例如由PCI特殊兴趣小组(PCI-SIG)在“高速PCI基础规范修订版3.1a(PCI Express Base Specification Revision 3.1a)”,2015年12月7日中指定,其以引用方式并入本文。每个PCIe接口48独立于任何其他PCIe接口48操作,并且可以服务一个或多个PCIe物理功能(PF)。可替代地,其他适合的总线接口可以用于该目的。
在所公开的实施方式中,网络适配器28包括多个PCIe接口48,在本示例中,是分叉的十六通道PCIe插槽的两个八通道PCIe接口(标记为“X8 PCIe”)。每个PCIe接口48被配置用于通过相应的直接链路与多CPU服务器20的相应的CPU 24进行通信。每个PCIe接口还从其相应的CPU 24接收参考时钟信号(标记为“REFCLK”)。通常,网络适配器28的每个PCIe接口48经由相应的PCIe结构连接到其相应的CPU 24。在图1的配置中,两个单独的PCIe结构将PCIe接口48连接到它们各自的CPU 24。
网络适配器28还包括一个或多个网络端口32,在本示例中为两个Quad小型可插拔(QSFP)端口,用于连接到网络34。可替代地,可以使用任何其他合适数量和类型的网络端口。
在一些实施方式中,处理器36被配置为执行网络适配器28的各种处理任务。处理器36通常使用硬件和软件的组合来实现。在处理器36上运行的软件在本文中称为“固件”(FW)44。
在实施方式中,网络适配器28包括存储器,通常是非易失性存储器,例如闪存设备40,其存储Option-ROM程序代码。在多CPU服务器28的引导过程中,CPU 24运行内置操作系统(BIOS),其加载并执行Option-ROM程序指令。在图1的示例中,为了清楚起见,看到加载的Option-ROM代码52正在CPU-1中运行。通常,Option-ROM代码可以在任何CPU 24中加载并运行。
Option-ROM代码的指令可以指示BIOS执行各种任务,例如,通过网络34加载多CPU服务器20的操作系统,配置网络适配器28的参数或任何其他合适的任务。
在图1的实施方式中,多CPU服务器20还包括基板管理控制器(BMC)56,用于通过网络34与远程服务器(未示出)通信。通过与BMC 56通信,远程服务器能够监视和配置多CPU服务器20。
在一些实施方式中,尽管不是必须的,但是BMC 56使用边带接口连接到网络适配器28。在本示例中,边带接口包括系统管理总线(SMBus)。因此,远程管理通信通过网络34、网络适配器28和边带接口在远程服务器和BMC 56之间交换。
在实施方式中,网络适配器28包括被称为“现场可替换单元”(FRU)38的存储设备,该存储设备也被连接到SMBus。FRU 38通常用于存储属性,例如供应商名称、产品名称、序列号、功耗要求等。FRU由例如英特尔公司、惠普公司、NEC公司和戴尔计算机公司在“IPMI-平台管理FRU信息,存储定义(IPMI-Platform Management FRU Information,StorageDefinition)”v1.0,文档修订版1.2,2013年2月28日中指定。
在本实施方式中,BMC 56还通过“RBT”接口连接到网络适配器28,该接口允许BMC56使用网络34上的直通流量,并且通过“WAKE#”接口在网络上进行多CPU服务器20的远程唤醒。BMC 56可选地通过单通道PCIe接口连接到CPU-1,并通过各自的控制接口连接到CPU-1和CPU-2。单通道PCIe接口使BMC 56可以在PCIe上使用“主机接口”,以允许操作系统控制和配置BMC操作。控制界面允许BMC 56重置CPU 24,以及监视CPU的温度和其他CPU参数,例如冷却风扇的速度。此外,单通道PCIe接口使BMC可以通过PCIe连接到网络适配器28,与RBT相比,它可以允许更快的连接。一种这样的用例是PCIe上的MCTP,例如在“管理组件传输协议(MCTP)PCIe VDM传输绑定规范(Management Component Transport Protocol(MCTP)PCIeVDM Transport Binding Specification)”,DMTF文档DSP0238,版本1.0.1,2009年12月11日中所指定的。
图2是示意性地示出根据本发明的替代实施方式的多CPU服务器60的框图。与图1的方案不同,在图1的方案中,网络适配器28使用被分成两个八通道PCIe接口的单个PCIe插槽连接到CPU-1和CPU-2,本实施方式使用两个单独的八通道PCIe插槽。在多CPU服务器60中,辅助卡58连接在网络适配器28和CPU-2之间的PCIe接口48上。存储器(表示为FRU)64耦合到辅助卡58,并且还连接到还服务BMC 56的SMBus。FRU64用于标识附加硬件,如上面关于FRU 38所述。
与单个分叉PCIe插槽(如图1所示)相比,使用两个单独的PCIe插槽(如图2所示)具有某些优势,例如,在使用套接字直连网络适配器的多CPU服务器中无需使用专用硬件。当使用单独的PCIe插槽时,每个CPU 24至少具有与其关联的一个PCIe插槽就足够了,因此,在插入两个卡时(带有网络适配器28的主卡插入一个插槽,辅助卡58插入另一插槽)多CPU服务器可以在套接字直连模式下操作网络适配器。辅助卡58和包括网络适配器28的主卡通常使用合适的背带电缆相互连接。
为了清楚起见,示出了图1和图2的多CPU服务器和网络适配器配置作为示例配置。在替代实施方式中,可以使用任何其他合适的多CPU设备和/或网络适配器配置。例如,给定的多CPU服务器20或60可以连接到两个或更多个网络适配器28。附加地或代替地,给定的网络适配器28可以服务两个或更多个多CPU服务器20或60。
通常,并非所有的CPU 24都不必直接连接到网络适配器28。公开的技术可应用于任何这样的配置。例如,取决于网络类型,网络适配器28也可以称为主机通道适配器(HCA)或网络接口控制器(NIC)。为了清楚起见,已经从图中省略了对于理解所公开的技术的原理不是必需的元件。
在图1所示的示例配置中,网络适配器28被实现为与服务器20的其他元件分离的板或集成电路(IC)。然而,在替代实施方式中,例如,网络适配器28可以与服务器20的硬件集成在一起。
网络适配器28的不同元件可以使用任何适当的硬件来实现,例如在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中。在一些实施方式中,网络适配器28的一些元件可以使用软件或者使用硬件和软件元件的组合来实现。
在一些实施方式中,CPU 24和/或处理器36的一些或全部功能可以使用一个或多个可编程处理器来实现,这些可编程处理器在软件中被编程为执行本文描述的功能。该软件可以例如通过网络以电子形式下载到处理器,或者可以替代地或附加地将其提供和/或存储在诸如磁性、光学或电子存储器的非暂时性有形介质上。
在多CPU设备中操作Socket-Direct网络适配器的其他方面在名称为“使用Socket-Direct网络接口控制器的远程主机管理(Remote host management usingSocket-Direct network interface controllers)”的美国专利10,303,635和名称为“Socket-Direct网络适配器中的Option-ROM的支持(Support of Option-ROM in Socket-Direct network adapters)”的美国专利10,318,312中解决,其公开内容通过引用合并于此。
使用OPTION-ROM增强SOCKET-DIRECT网络适配器的配置
如上所述,在一些实施方式中,即使(一个或多个)其他PCIe接口48也支持Option-ROM,网络适配器28的处理器36也仅在单个选择的PCIe接口48上公开对Option-ROM功能的支持。单个选择的PCIe接口48在本文中被称为主PCIe接口,并且(一个或多个)其他PCIe接口48在本文中被称为辅助PCIe接口。
在一些实施方式中,将使用处理器36中最低的PCIe通道(lane0)的PCIe接口选择为主PCIe接口。替代地,可以使用任何其他选择技术。
通过仅将主PCIe接口公开为支持Option-ROM,将整个网络适配器28作为单个受管实体呈现给用户。特别地,当在多CPU服务器的引导过程中在CPU 24上运行时,Option-ROM代码仅向用户呈现作为整体用于管理网络适配器28的单个非冗余命令集(例如,配置菜单)。(如果将主PCIe接口和辅助PCIe接口都公开为支持Option-ROM,则将向用户呈现多组配置菜单,这可能导致混乱、错误以及不同PCIe接口48的可能矛盾的配置。)
在当前上下文中,术语“呈现给用户”是指既呈现给直接操作多CPU服务器的本地用户,也呈现给使用BMC 56通过网络34或通过直接连接到BMC 56的带外网络(未示出)从远程服务器操作多CPU服务器的远程用户。
此外,在一些实施方式中,单个命令集(当在CPU 24上运行时由Option-ROM代码呈现给用户)包括用于管理网络适配器28的主PCIe接口和辅助PCIe接口的命令。术语“管理PCIe接口”是指PCIe接口的监视参数和PCIe接口的配置参数。通过使用这样统一的命令集,用户可以管理(监视和/或配置)具有多个PCIe接口的网络适配器,而没有混乱或错误的风险。
图3是示意性地示出了根据本发明的实施方式的在多CPU服务器20或60的引导期间用于配置Socket-Direct网络适配器28的方法的流程图。该方法开始于多CPU服务器的CPU 24的BIOS在引导启动步骤70处例如在加电或复位时开始引导(“boot”)过程。
在PCIe枚举步骤74,CPU 24上运行的BIOS枚举在多CPU服务器上找到的PCIe接口,包括网络适配器28的PCIe接口48。如上所述,网络适配器28的处理器36报告仅在主PCIe接口48上支持Option-ROM功能。
在加载步骤78,BIOS从网络适配器28加载Option-ROM代码。CPU24开始执行包括Option-ROM代码的引导代码52。
在通信步骤82,CPU 24上运行的Option-ROM代码仅通过主PCIe接口48与网络适配器28的FW 44进行通信。在呈现步骤86,CPU 24上运行的Option-ROM代码向用户呈现(本地或通过BMC 56)用于管理网络适配器28的单个非冗余命令集,包括管理主PCIe接口和辅助PCIe接口48。用户使用所呈现的命令管理(例如,监视和/或配置)网络适配器28。
本质上,呈现给用户的命令集(例如,配置菜单)形成网络适配器28的CPU 24和FW44之间的接口。除其他任务之外,该接口还用于管理网络适配器。
示例监视和配置命令
在各个实施方式中,在引导期间在CPU 24上运行的Option-ROM代码可以向用户呈现用于管理网络适配器28的各种命令。一些命令可以共同管理所有PCIe接口(主PCIe接口和辅助PCIe接口)的所有物理功能(PF),而其他命令可以管理特定的PF(在主PCIe接口或辅助PCIe接口上)。还有其他命令可以管理PF的选择子集,例如,与给定PCIe接口相关联的PF。
用于管理选择的PF的命令示例可以包括一个或多个命令,这些命令使用户能够将值设置为每个PF特定的本地参数,例如配置空间设置、服务质量(QoS)资源、媒体访问控制(MAC)地址等。
用于管理所选择的PF的命令的其他示例可以包括一个或多个命令,这些命令使用户能够查询每个PF特定的本地参数的值,例如,上面列出的本地参数。
通常,属于特定PCIe接口48的命令(包括属于特定PCIe接口48上的特定PF的命令)包括指定该PCIe接口的索引的字段(例如4位字段)。
用于共同管理所有PF的命令的示例可以包括一个或多个命令,这些命令使用户能够设置与网络适配器28中的所有PF有关的全局参数,例如,设置物理端口号以及与物理端口(例如,图1和图2中的端口32中的任何一个)有关的其他参数和状态。
用于共同管理所有PF的命令的其他示例可以包括一个或多个命令,这些命令使用户能够查询全局参数的值,例如,NIC部件号和/或制造日期。
其他命令可以使用户能够通过FW 44管理网络适配器28的全局资源,例如,以启用或禁用物理端口(端口上/下)。网络适配器的此类全局资源通常在权限的基础上进行管理,该权限本身可以通过集合中的命令进行配置。例如,FW 44决定禁用物理端口通常需要该端口的所有已连接客户端的许可,以防止驱动程序断开另一驱动程序的连接。
在一些实施方式中,运行在CPU 24上的Option-ROM代码可以将命令集呈现为人机界面基础设施(HII)配置菜单集合。通常,Option-ROM代码会在主PCIe接口上公开菜单集。可以使用菜单集中的子菜单来执行辅助PCIe接口的管理。例如,Option-ROM代码可以呈现用于设置或查询与辅助PCIe接口有关的本地参数的子菜单,例如,与辅助PCIe接口相关联的PF的MAC地址。子菜单的使用消除了在不同的HII菜单之间同步设置的需要。在实施方式中,每个子菜单与给定的PCIe总线ID相关联(如下文所定义)。
在一些实施方式中,在CPU 24上运行的Option-ROM代码使用某些命令来设置和/或从网络适配器28的处理器36中的FW 44获得参数。这些命令通常指定要为其发出命令的PCIe总线标识符(ID)。此外,FW 44通常向Option-ROM代码公开FW在Socket-Direct模式下运行的事实,以及在网络适配器28中配置的PCIe接口的总数。
如上所述,通常选择占用PCIe通道0的PCIe接口作为主PCIe接口。辅助PCIe接口根据它们所占用的PCIe通道依次枚举PCIe总线ID。例如,在此实施方式中,将枚举划分为四个总线的十六通道(x16)PCIe总线:
PCIe通道 PCIe总线ID 描述
3:0 0
7:4 1 辅助[1]
11:8 2 辅助[2]
15:12 3 辅助[3]
在一些实施方式中,响应于来自在CPU 24上运行的Option-ROM代码的请求,网络适配器28的处理器36中的FW 44在每个PCIe接口48上发送供应商提供的数据(VPD)。VPD包括有关PCIe的描述。设备。在一些实施方式中,FW 44在VPD中指示PCIe接口是主PCIe接口还是辅助PCIe接口。例如,当通过主PCIe接口进行响应时,FW 44可以将“-Prime”后缀添加到在VPD中的给定字段,而当通过辅助PCIe接口进行响应时,可以将“-Aux[n]”后缀添加到在VPD中的给定字段,其中n表示与所讨论的辅助PCIe接口相关联的PCIe总线ID。对于通用参数(例如,FW44的FW版本、适配器28的部件号和序列号),FW44通常在主PCIe接口和辅助PCIe接口上公开相同的值。
在典型的操作流程中(尽管不一定),当Option-ROM代码开始在CPU 24上运行时,Option-ROM代码向FW 44查询FW操作模式。如果FW 44报告其在Socket-Direct模式下运行,则Option-ROM代码向FW查询PCIe接口的数量。然后,Option-ROM代码为每个PCIe接口分配各自的HII形式。对于这种形式,FW和Option-ROM代码公开了所有可用的PF及其属性,例如,包括分配给每个PF的MAC/GUID。
在一些实施方式中,FW 44被设计为与各种主机系统一起操作,这些主机系统不一定都支持Socket-Direct操作。因此,为了保持互操作性,使用FW命令中的保留字段来实现辅助PCIe接口的选择。默认值零可确保向后兼容不支持Socket-Direct的主机系统。
附加地或替代地,在引导期间在CPU 24上运行的Option-ROM代码可能向用户呈现一个或多个以下命令:
·LAN唤醒(WOL)和/或重启LAN(ROL)命令-允许分配特定的PF以将WAKE#信号用于WOL和/或ROL功能的命令。例如,QUERY_WOL_ROL–用于查询特定PF的WOL和ROL设置的命令;和SET_WOL_ROL–用于为特定PF配置WOL和ROL的命令。
·QUERY_VIRTUAL_MAC–当MAC地址不是生产期间设置的地址时,用于查询分配给PF的MAC地址的命令。
·SET_VIRTUAL_MAC–用于使用与生产时分配的地址不同的MAC地址配置PF的命令。
·QUERY_VIRTUAL_PARAMETERS–用于查询无限宽带虚拟链接设置的命令。
·SET_VIRTUAL_PARAMETERS–用于设置无限宽带虚拟链接设置的命令。
·MPEIN-用于访问PCIe信息寄存器的命令,该寄存器提供信息,例如PCIe总线上的PF数量、PCIe总线索引、PCIe通道量、枚举信息、PCIe总线速度、PCIe插槽的电源要求等。
·NVDA-用于访问非易失性配置参数的命令。(请注意,配置每个PF或每个PCIe总线的设置的某些非易失性参数可以使用上述所有技术使用HII菜单进行配置和/或查询。)
上面描述的命令、菜单和其他特征是非限制性示例,其纯粹是为了概念清楚起见而选择的。在替代实施方式中,可以使用任何其他合适的命令、菜单和/或其他特征。
每个PCIE接口的网络设备模式和共享网络设备模式
在一些实施方式中,Option-ROM代码将网络适配器28作为对应于多个PCIe接口48的多个不同网络设备而向多CPU服务器(服务器20或60)的操作系统(OS)公开。也就是说,每个PCIe设备(对应于PCIe接口48)作为具有独立属性的独立逻辑网络适配器呈现给OS。这种操作模式在本文中称为“每个PCIe接口的网络设备(network device per PCIeinterface)”。
在其他实施方式中,Option-ROM代码将网络适配器28作为由多个PCIe接口48共享的单个网络设备公开给OS。这种操作模式在本文中称为“共享网络设备(shared networkdevice)”。例如,参见上面引用的美国专利10,318,312。
通常,网络适配器28的相同硬件支持两种操作模式,并且所需的操作模式在FW 44和CPU 24上运行的Option-ROM代码中进行设置。向用户呈现的命令集的某些方面可能在“每个PCIe接口的网络设备”模式和“共享网络设备”模式之间不同。
例如,在“共享网络设备”模式下,无需对使用网络设备的软件层的参数进行单独的管理(设置/查询)(例如,无需为辅助PCIe接口上的PF配置单独的MAC地址)。尽管如此,在两种模式下仍单独管理例如PF使能的与PCIe相关参数。
在一些实施方式中,用户或OS可以例如在引导期间或在正常操作期间在“每个PCIe接口的网络设备”模式和“共享网络设备”模式之间进行选择。在一个实施方式中,多CPU服务器的预引导环境(例如,BIOS)使用HII菜单在主PCIe接口上公开菜单项,该菜单项提示用户在“每个PCIe接口的网络设备”模式和“共享网络设备”模式之间进行选择。在另一实施方式中,OS使管理员能够选择“每个PCIe接口的网络设备”模式和“共享网络设备”模式中的哪个模式进行配置。此信息永久保存在OS文件系统和/或网络适配器28的非易失性配置参数中。
在实施方式中,如果选择共享设备,则禁用共享菜单中提供的HII属性和每个设备子菜单。
尽管本文描述的实施方式主要针对多CPU服务器,但是本文描述的方法和系统也可以在其他应用中使用,例如在各种其他多CPU设备中,例如存储平台、高性能路由器等。
因此,将理解的是,上述实施方式仅作为示例被引用,并且本发明不限于上文已经具体示出和描述的内容。而是,本发明的范围包括上述各种特征的组合和子组合,以及本领域技术人员在阅读前述说明后将想到的并且在现有技术中未公开的其变型和修改。通过引用并入本专利申请的文件应被认为是本申请的组成部分,除了在这些并入文件中以与本说明书中明确或隐含的定义相抵触的方式定义任何术语的程度外,应该考虑本说明书中的定义。

Claims (27)

1.一种网络适配器,包括:
一个或多个网络端口,所述一个或多个网络端口被配置为与通信网络进行通信;
多个总线接口,所述多个总线接口被配置为与多CPU设备的多个相应中央处理单元(CPU)进行通信;以及
处理器,所述处理器包括在所述网络适配器中,并被配置为:
支持Option-ROM功能,其中所述网络适配器保存Option-ROM程序指令,所述Option-ROM程序指令可在引导过程中由所述多CPU设备加载并执行;
向所述多CPU设备公开仅在从所述多个总线接口中选择的单个总线接口上支持所述Option-ROM功能;以及
通过将所述Option-ROM程序指令加载到所述多CPU设备,使所述多CPU设备仅向用户呈现单个非冗余命令集,用于通过所述单个总线接口管理所述网络适配器的所有多个总线接口。
2.根据权利要求1所述的网络适配器,其中响应于来自所述多CPU设备报告所述Option-ROM功能的支持的请求,所述处理器被配置为即使所述网络适配器的所有多个总线接口都支持所述Option-ROM功能,也是公开仅在所述单个总线接口上支持所述Option-ROM功能。
3.根据权利要求1所述的网络适配器,其中所述单个非冗余命令集包括用于管理至少所述多个总线接口的一个或多个配置菜单的单个非冗余集。
4.根据权利要求1所述的网络适配器,其中所述多个总线接口被配置为通过外围组件互连快速(PCIe)总线与所述多CPU设备进行通信。
5.根据权利要求4所述的网络适配器,其中所述单个非冗余命令集包括用于管理所选择的PCIe物理功能(PF)的本地参数的命令。
6.根据权利要求4所述的网络适配器,其中所述单个非冗余命令集包括用于管理与关联于一个或多个所述总线接口的两个或更多个PCIe物理功能(PF)有关的全局参数的命令。
7.根据权利要求1所述的网络适配器,其中所述单个非冗余命令集包括用于管理所述网络适配器的全局资源的命令。
8.根据权利要求1所述的网络适配器,其中所述多CPU设备包括多CPU服务器。
9.根据权利要求1所述的网络适配器,其中所述处理器被配置为通过向所述用户呈现配置菜单的单个非冗余集来呈现所述单个非冗余命令集。
10.根据权利要求9所述的网络适配器,其中所述处理器被配置为与所述单个选择的总线接口相关联地呈现所述配置菜单集,包括在所述配置菜单集内呈现用于管理所述单个选择的总线接口之外的一个或多个总线接口的一个或多个子菜单。
11.根据权利要求1所述的网络适配器,其中所述处理器被配置为向所述多CPU设备的操作系统公开所述网络适配器作为对应于所述多个总线接口的多个逻辑网络适配器。
12.根据权利要求1所述的网络适配器,其中所述处理器被配置为向所述多CPU设备的操作系统公开所述网络适配器作为由所述多个总线接口共享的单个逻辑网络适配器。
13.根据权利要求1所述的网络适配器,其中所述处理器被配置为响应于用户输入来选择是否向所述多CPU设备的操作系统公开所述网络适配器作为与所述多个总线相对应的多个逻辑网络适配器,或作为由所述多个总线接口共享的单个逻辑网络适配器。
14.一种方法,包括:
在网络适配器中,经由一个或多个端口与通信网络进行通信,并经由多个总线接口与多CPU设备的多个相应中央处理单元(CPU)进行通信;
通过在所述网络适配器中保存Option-ROM程序指令来在所述网络适配器中支持Option-ROM功能,所述程序指令可在引导过程中由所述多CPU设备加载并执行;
向所述多CPU设备公开仅在从所述多个总线接口中选择的单个总线接口上支持所述Option-ROM功能;以及
通过将所述Option-ROM程序指令加载到所述多CPU设备,使所述多CPU设备仅向用户呈现单个非冗余命令集,用于通过所述单个总线接口管理所述网络适配器的所有多个总线接口。
15.根据权利要求14所述的方法,其中响应于来自所述多CPU设备报告所述Option-ROM功能的支持的请求,执行即使所述网络适配器的所有多个总线接口都支持所述Option-ROM功能,也是公开仅在所述单个总线接口上支持所述Option-ROM功能。
16.根据权利要求14所述的方法,其中使所述多CPU设备呈现单个非冗余命令集包括:使所述多CPU设备呈现用于管理至少所述多个总线接口的一个或多个配置菜单的单个非冗余集。
17.根据权利要求14所述的方法,其中通过所述多个总线接口进行通信包括:通过外围组件互连快速(PCIe)总线与所述多CPU设备进行通信。
18.根据权利要求17所述的方法,其中使所述多CPU设备呈现所述单个非冗余命令集包括:使所述多CPU设备呈现用于用于管理所选择的PCIe物理功能(PF)的本地参数的命令。
19.根据权利要求17所述的方法,其中使所述多CPU设备呈现所述单个非冗余命令集包括:使所述多CPU设备呈现用于管理与与一个或多个所述总线接口相关联的两个或更多个PCIe物理功能(PF)有关的全局参数的命令。
20.根据权利要求14所述的方法,其中使所述多CPU设备呈现所述单个非冗余命令集包括:使所述多CPU设备呈现用于管理所述网络适配器的全局资源的命令。
21.根据权利要求14所述的方法,其中所述多CPU设备包括多CPU服务器。
22.根据权利要求14所述的方法,其中使所述多CPU设备呈现所述单个非冗余命令集包括:使所述多CPU设备向所述用户呈现配置菜单的单个非冗余集。
23.根据权利要求22所述的方法,其中呈现所述配置菜单包括:与所述单个选择的总线接口相关联地呈现所述配置菜单集,包括在所述配置菜单集内呈现用于管理所述单个选择的总线接口之外的一个或多个总线接口的一个或多个子菜单。
24.根据权利要求14所述的方法,包括:向所述多CPU设备的操作系统公开所述网络适配器作为对应于所述多个总线接口的多个逻辑网络适配器。
25.根据权利要求14所述的方法,包括:向所述多CPU设备的操作系统公开所述网络适配器作为由所述多个总线接口共享的单个逻辑网络适配器。
26.根据权利要求14所述的方法,包括:响应于用户输入来选择是否向所述多CPU设备的操作系统公开所述网络适配器作为与所述多个总线相对应的多个逻辑网络适配器,或作为由所述多个总线接口共享的单个逻辑网络适配器。
27.一种计算机软件产品,所述产品包括存储有程序指令的有形的非暂时性计算机可读介质,所述程序指令在被网络适配器的处理器读取时使所述处理器执行以下操作,所述网络适配器被配置为经由一个或多个网络端口与通信网络进行通信,并经由多个总线接口与多CPU设备的多个相应中央处理单元(CPU)进行通信:
支持Option-ROM功能,其中所述网络适配器保存Option-ROM程序指令,所述程序指令可在引导过程中由多CPU设备加载并执行;
向所述多CPU设备公开仅在从所述多个总线接口中选择的单个总线接口上支持所述Option-ROM功能;以及
通过将所述Option-ROM程序指令加载到所述多CPU设备,使所述多CPU设备仅向用户呈现单个非冗余命令集,用于通过所述单个总线接口管理所述网络适配器的所有多个总线接口。
CN202011130239.2A 2019-10-23 2020-10-21 在多cpu设备中使用option-rom的网络适配器配置 Pending CN112698871A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/660,838 2019-10-23
US16/660,838 US11055104B2 (en) 2019-10-23 2019-10-23 Network-adapter configuration using option-ROM in multi-CPU devices

Publications (1)

Publication Number Publication Date
CN112698871A true CN112698871A (zh) 2021-04-23

Family

ID=72521436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011130239.2A Pending CN112698871A (zh) 2019-10-23 2020-10-21 在多cpu设备中使用option-rom的网络适配器配置

Country Status (3)

Country Link
US (1) US11055104B2 (zh)
EP (1) EP3812895A1 (zh)
CN (1) CN112698871A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11502433B2 (en) * 2021-02-10 2022-11-15 Super Micro Computer, Inc. Circuit card with onboard non-volatile memory for providing cable assembly data to network interface controller chips
US11620245B2 (en) 2021-05-09 2023-04-04 Mellanox Technologies, Ltd. Multi-socket network interface controller with consistent transaction ordering
CN114817105B (zh) * 2022-04-22 2023-06-27 深圳星云智联科技有限公司 设备枚举的方法、装置、计算机设备以及存储介质
US20240040734A1 (en) * 2022-07-29 2024-02-01 Dell Products, L.P. High-Density Chassis Supporting Replaceable Hardware Accelerators

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033763A (zh) * 2010-11-26 2011-04-27 武汉噢易科技有限公司 一种利用undi实现网络通信的方法
CN104714846A (zh) * 2013-12-17 2015-06-17 华为技术有限公司 资源处理方法、操作系统及设备
US20150215343A1 (en) * 2014-01-28 2015-07-30 Mellanox Technologies Ltd. Multi-host network interface controller with host management
CN108139916A (zh) * 2015-10-06 2018-06-08 赛灵思公司 可编程逻辑设备的多阶段引导映像加载和配置
CN108694021A (zh) * 2017-04-03 2018-10-23 三星电子株式会社 使用基板管理控制器配置存储设备的系统和方法
US20190079887A1 (en) * 2017-09-12 2019-03-14 Mellanox Technologies, Ltd. Remote Host Management Using Socket-Direct Network Interface Controllers
US20190095222A1 (en) * 2017-09-28 2019-03-28 Mellanox Technologies, Ltd. Support of Option-ROM in Socket-Direct network adapters

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725178B2 (en) * 2002-01-15 2004-04-20 International Business Machines Corporation Use of hidden partitions in a storage device for storing BIOS extension files
US7171467B2 (en) 2002-06-13 2007-01-30 Engedi Technologies, Inc. Out-of-band remote management station
US7080244B2 (en) * 2003-03-24 2006-07-18 Intel Corporation System and method for configuring hardware devices using a menu for platforms with EFI and legacy option-ROMs
US20050216715A1 (en) 2004-03-29 2005-09-29 Matheny David L System and method for flexible option ROM booting
US7533190B2 (en) * 2004-04-08 2009-05-12 Intel Corporation Network storage target boot and network connectivity through a common network device
US7797696B1 (en) * 2006-06-30 2010-09-14 American Megatrends, Inc. Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure
US20130080754A1 (en) 2011-09-22 2013-03-28 Cisco Technology, Inc. Service Profile Based Peripheral Component Interconnect Device Enumeration And Option ROM Loading
US20130086371A1 (en) 2011-09-30 2013-04-04 Pradeep Bisht Method for device-less option-rom bios load and execution
US9998359B2 (en) 2013-12-18 2018-06-12 Mellanox Technologies, Ltd. Simultaneous operation of remote management and link aggregation
US10587475B2 (en) 2014-11-05 2020-03-10 Extreme Networks, Inc. Network discovery optimization using supplemental information published by devices
US9729440B2 (en) 2015-02-22 2017-08-08 Mellanox Technologies, Ltd. Differentiating among multiple management control instances using IP addresses
US9985820B2 (en) 2015-02-22 2018-05-29 Mellanox Technologies, Ltd. Differentiating among multiple management control instances using addresses
US10073805B2 (en) 2015-09-03 2018-09-11 Avago Technologies General Ip (Singapore) Pte. Ltd. Virtual expansion ROM in a PCIe environment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033763A (zh) * 2010-11-26 2011-04-27 武汉噢易科技有限公司 一种利用undi实现网络通信的方法
CN104714846A (zh) * 2013-12-17 2015-06-17 华为技术有限公司 资源处理方法、操作系统及设备
US20150215343A1 (en) * 2014-01-28 2015-07-30 Mellanox Technologies Ltd. Multi-host network interface controller with host management
CN108139916A (zh) * 2015-10-06 2018-06-08 赛灵思公司 可编程逻辑设备的多阶段引导映像加载和配置
CN108694021A (zh) * 2017-04-03 2018-10-23 三星电子株式会社 使用基板管理控制器配置存储设备的系统和方法
US20190079887A1 (en) * 2017-09-12 2019-03-14 Mellanox Technologies, Ltd. Remote Host Management Using Socket-Direct Network Interface Controllers
US20190095222A1 (en) * 2017-09-28 2019-03-28 Mellanox Technologies, Ltd. Support of Option-ROM in Socket-Direct network adapters

Also Published As

Publication number Publication date
US20210124590A1 (en) 2021-04-29
EP3812895A1 (en) 2021-04-28
US11055104B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
EP3812895A1 (en) Network-adapter configuration using option-rom in multi-cpu devices
US10333865B2 (en) Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
EP1636696B1 (en) Os agnostic resource sharing across multiple computing platforms
US10241868B2 (en) Server control method and server control device
US8719483B2 (en) Multi-root PCI express switch, boot method thereof, and multi-root PCI manager program
US9792240B2 (en) Method for dynamic configuration of a PCIE slot device for single or multi root ability
US9864614B2 (en) Mapping virtual devices to computing nodes
JP5266590B2 (ja) 計算機システムの管理方法、計算機システム及びプログラム
US8141092B2 (en) Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition
WO2009120187A2 (en) System and method for transforming pcie sr-iov functions to appear as legacy functions
US20100125679A1 (en) Computer and method for directly accessing computer hardware by virtual system
US9940275B2 (en) System and method to avoid SMBus address conflicts via a baseboard management controller
US10318312B2 (en) Support of Option-ROM in socket-direct network adapters
US9280493B2 (en) Method and device for enumerating input/output devices
US10838861B1 (en) Distribution of memory address resources to bus devices in a multi-processor computing system
US20140149658A1 (en) Systems and methods for multipath input/output configuration
US10684976B1 (en) Automatic bus resource adjustment in a multiple root bridge computing system
US12001373B2 (en) Dynamic allocation of peripheral component interconnect express bus numbers
US11755334B2 (en) Systems and methods for augmented notifications in remote management of an IHS (information handling system)
TWI840849B (zh) 計算系統、電腦實施方法及電腦程式產品
US20240103849A1 (en) Systems and methods for supporting rebootless firmware updates
CN116701094A (zh) 一种单板管理系统、方法、装置及设备
JP2001034571A (ja) 情報処理装置

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