CN117997658A - 通信方法、装置及电子设备 - Google Patents

通信方法、装置及电子设备 Download PDF

Info

Publication number
CN117997658A
CN117997658A CN202410137641.5A CN202410137641A CN117997658A CN 117997658 A CN117997658 A CN 117997658A CN 202410137641 A CN202410137641 A CN 202410137641A CN 117997658 A CN117997658 A CN 117997658A
Authority
CN
China
Prior art keywords
pin
network card
potential state
intelligent network
control instruction
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
CN202410137641.5A
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202410137641.5A priority Critical patent/CN117997658A/zh
Publication of CN117997658A publication Critical patent/CN117997658A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Power Sources (AREA)

Abstract

本公开提供了一种通信方法,应用于智能网卡,智能网卡与主机设备通过PCIe接口连接,PCIe接口包括至少一个第一引脚和至少一个第二引脚,通信方法包括:获取至少一个第一引脚的电位状态,第一引脚的电位状态是根据主机设备的控制指令设置的;根据电位状态,执行控制指令对应的功能。

Description

通信方法、装置及电子设备
技术领域
本公开涉及通信领域,具体涉及一种通信方法、装置及电子设备。
背景技术
随着高性能计算(HPC)和现代云服务器的发展,越来越多服务器配备用于工作负载优化的智能网卡(SmartNIC),这样可以提供大量由软件定义且经加速,完全可编程的专用硬件加速引擎来快速处理关键基础架构任务,提供数据中心网络处理效率。
智能网卡的硬件启动项等控制命令通过RJ45接口从上层交换机获取,但伴随着越来越多的智能网卡加入数据中心单个服务器节点,由于服务器本身自带BMC管理网口,再加上智能网卡本身也存在MC管理网口,对整机柜的上层网络交换机的RJ45网口的需求量将会翻倍增长。同时,通过此种方法对智能网卡进行管理控制,需要在网卡中设置配套的芯片以及网卡BMC,生产成本高。
发明内容
本公开的一个方面提供了一种通信方法,应用于智能网卡,智能网卡与主机设备通过PCIe接口连接,PCIe接口包括至少一个第一引脚和至少一个第二引脚,通信方法包括:获取至少一个第一引脚的电位状态,第一引脚的电位状态是根据主机设备的控制指令设置的;根据电位状态,执行控制指令对应的功能。
可选地,上述应用于智能网卡的通信方法还包括:根据电位状态,更改智能网卡的启动项设置;在启动项设置更改完成后,通过至少一个第二引脚向主机设备发送控制指令的响应完成消息。
可选地,根据电位状态,执行控制指令对应的功能包括:根据电位状态,执行控制指令对应的重启操作;通过至少一个第二引脚,与主机设备重新建立通信连接。
可选地,上述应用于智能网卡的通信方法还包括:基于至少一个第二引脚接收到的读取指令,更改第一引脚的电位状态,以使得主机设备通过第一引脚的电位状态确定智能网卡的设置信息。
本公开的另一个方面提供了一种通信方法,应用于主机设备,主机设备与智能网卡通过PCIe接口连接,PCIe接口包括至少一个第一引脚和至少一个第二引脚,通信方法包括:根据控制指令设置至少一个第一引脚的电位状态;通过至少一个第二引脚接收智能网卡的响应于电位状态生成的数据。
可选地,上述应用于主机设备的通信方法还包括:通过至少一个第二引脚发送读取指令,以使得智能网卡根据读取指令更改至少一个第一引脚的电位状态;读取电位状态;根据电位状态确定智能网卡的设置信息。
可选地,根据控制指令设置至少一个第一引脚的电位状态包括:根据控制指令生成控制指令对应的电位数据;通过现场可编程门阵列,根据电位数据更改至少一个第一引脚的电位状态。
本公开的另一个方面提供了一种通信装置,应用于智能网卡,智能网卡与主机设备通过PCIe接口连接,PCIe接口包括至少一个第一引脚和至少一个第二引脚,其中,通信装置包括:获取模块,用于获取至少一个第一引脚的电位状态,第一引脚的电位状态根据主机设备的控制指令设置;执行响应模块,用于根据电位状态,执行控制指令对应的功能。
本公开的另一个方面提供了一种通信装置,应用于主机设备,主机设备与智能网卡通过PCIe接口连接,PCIe接口包括至少一个第一引脚和至少一个第二引脚,其中,通信装置包括:设置模块,用于根据控制指令设置至少一个第一引脚的电位状态;以及接收模块,用于通过至少一个第二引脚接收智能网卡的响应于电位状态生成的数据。
本公开的另一个方面提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如下操作:获取至少一个第一引脚的电位状态,第一引脚的电位状态是根据主机设备的控制指令设置的;根据电位状态,执行控制指令对应的功能。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,指令在被执行时用于实现如上的通信方法。
本公开的另一方面提供了一种计算机程序,计算机程序包括计算机可执行指令,指令在被执行时用于实现如上的通信方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1A示意性示出了一种智能网卡、主机设备及其连接框图;
图1B示意性示出了另一智能网卡、主机设备及其连接框图;
图2示意性示出了根据本公开实施例的智能网卡、主机设备及其连接框图;
图3示意性示出了根据本公开实施例的用于智能网卡的通信方法的流程图;
图4示意性示出了根据本公开实施例的PCIe接口部分引脚图;
图5示意性示出了根据本公开实施例的用于智能网卡的另一通信方法的流程图;
图6示意性示出了根据本公开实施例的用于智能网卡的通信方法中执行控制指令对应的功能的流程图;
图7示意性示出了根据本公开实施例的用于智能网卡的另一通信方法的流程图;
图8示意性示出了根据本公开实施例的应用于主机设备的通信方法的流程图;
图9示意性示出了根据本公开实施例的应用于主机设备的另一通信方法的流程图;
图10示意性示出了根据本公开实施例的应用于智能网卡的通信装置的框图;
图11示意性示出了根据本公开实施例的应用于主机设备的通信装置的框图;以及
图12示意性示出了可以用来实施本公开实施例的方法的示例电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体***、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
为方便本领域技术人员理解,以下对于一些名词做出解释。
基板管理控制器(BMC,Baseboard Management Controller),是一种嵌入式微控制器,通常安装在计算机主板上,用于监控和管理计算机硬件设备。BMC具有独立于主处理器的处理能力,可以通过网络或串口等接口与管理工具进行通信,从而实现对计算机***的远程管理和监控。
网卡***芯片(SoC,System-on-Chip),是一种集成了处理器、内存、输入输出接口和其他***设备的芯片,用于对输入输出进行控制,对网卡数据进行***管理。
PCIe是PCI Express是一种用于计算机总线的高速串行接口标准,PCIe接口为使用了该接口标准的实体接口,一般由引脚构成。
RJ45接口是一种用于计算机网络中的物理层接口,是一种8针接口,通常用于连接以太网设备,例如计算机、路由器、交换机等。
电源管理电路(PMIC,Power Management Integrated Circuit),是一种专门用于管理和控制电源供应的集成电路。PMIC通常安装在电子设备中,用于管理电源的转换、过滤、分配和监控等功能。
可编程逻辑器件(CPLD,Complex Programmable Logic Device),是一种可编程的数字逻辑器件,用于实现数字逻辑功能。CPLD通常由可编程逻辑单元(PLU)、输入输出单元(IOU)和时钟管理单元(Clock Management Unit)等组成,可以实现逻辑门、时序电路、状态机等数字电路的设计和实现。
可编程门阵列(FPGA,Field-Programmable Gate Array),一种可编程的数字逻辑器件,可以通过编程实现数字逻辑电路的设计和实现,具有很高的灵活性和可重用性。
图1A至图2示意性示出了根据本公开实施例的通信方法和电子设备的应用场景。需要注意的是,图1A至图2所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
图1A示意性示出了一种智能网卡、主机设备及其连接框图。
如图1A所示,该连接场景中包括智能网卡100、主机设备110、交换机120以及用户终端130。
智能网卡100可以包括RJ45接口101,交换芯片102,网卡主板控制器(BMC)103,网卡***芯片(SoC)104。RJ45接口101与交换机120连接,用于接收来自上层交换机的控制指令。交换芯片102与RJ45接口101、网卡主板控制器103以及网卡***芯片104连接,用于对来自RJ45接口的控制指令将控制数据路由至网卡主板控制器103或网卡***芯片104中。网卡BMC管理网口与网卡***芯片104连接,用于根据控制数据对智能网卡100的硬件进行控制、监控以及更改设置等操作。智能网卡100与主机设备110通过PCIe接口连接,智能网卡将接收到的网络流量经过处理后,通过PCIe接口发送至主机设备。
主机设备110可以包括RJ45接口111以及主机BMC管理网口112,主机设备的RJ45接口111与交换机120连接,用于接收来自交换机120的控制指令。主机BMC管理网口112与RJ45接口111相连,用于根据控制指令对主机设备的硬件进行控制、监控以及更改设置等操作。
用户终端130与交换机120连接户将控制指令通过用户终端向换机120发送,交换机120将控制指令发送至对应的智能网卡或主机设备。
根据图1A所示的实施例,每增加一个需要智能网卡的主机设备节点,就需要在交换机上增加一个RJ45管理网口,交换机对于RJ45管理网口的需求量过多。
图1B示意性示出了另一智能网卡、主机设备及其连接框图。
如图1B所示,该连接场景中包括智能网卡100、主机设备110、交换机120以及用户终端130。
与图1A中实施例不同的是,智能网卡100可以包括交换芯片102、网卡主板控制器103、网卡***芯片(SoC)104、第一RJ45接口105以及第二RJ45接口106。第一RJ45接口101与交换机120连接,用于接收来自交换机120的控制指令。第二RJ45接口与主机设备的RJ45接口111连接。交换芯片102与第一RJ45接口105、第二RJ45接口106以及网卡主板控制器103连接,交换芯片102通过第一RJ45接口接收控制指令,并根据控制指令,将对网卡的控制数据路由至网卡BMC管理网口,实现对网卡的硬件管理,或,将对主机设备的控制数据路由至第二RJ45网口,以发送至主机设备实现对主机设备的硬件管理。
根据图1B所示的实施例,智能网卡与主机设备的BMC相连,主机设备的BMC需要配适智能网卡才可以正常工作,给主机的BMC开发带来额外的负担。此外,图1A和图1B中的智能网卡都配有交换芯片以及网卡BMC,生产成本较高。
介于此,本公开提供了一种如图2所示的智能网卡、主机设备以及连接场景框图。
图2示意性示出了根据本公开实施例的智能网卡、主机设备及其连接框图。
如图2所示,该连接场景中包括智能网卡200、主机设备210、交换机220以及用户终端230。
智能网卡200可以包括网卡***芯片(SoC)201、可编程逻辑器件(CPLD)202、总线控制器(SMBC)203、电源管理电路(PMIC)204、基本输入输出***(BIOS)205以及PCIE接口206。PCIe接口206与主机设备210连接,智能网卡200通过PCIe接口与主机设备进行网络流量的传输,并接收来自主机的控制指令。可编程逻辑器件202与PCIe接口206连接,可以读取PCIe接口上的引脚电位状态,或改写PCIe接口上的引脚状态。可编程逻辑器件202还与网卡***芯片201连接,可编程逻辑器件202通过PCIe总线读取到控制指令后,将控制指令的数据传递到网卡***芯片201。网卡***芯片201与总线控制器203连接,总线控制器203与PCIe接口206连接,网卡***芯片201可以通过总线控制器203以及PCIe总线与主机设备进行消息交互。网卡***芯片201与电源管理电路204连接,网卡***芯片201接收到来自可编程逻辑器件202读取的控制指令后,根据控制指令控制电源管理电路204进行电源操作例如重启等。网卡***芯片201还可与基本输入输出***205连接,网卡***芯片201在接收到可编程逻辑器件202读取的控制指令后,根据控制指令通知基本输入输出***205执行响应的操作例如更改启动项等。
主机设备210可以包括PCIe接口211,主板管理控制器(BMC)212、可编程门阵列(FPGA)213以及RJ45接口214。PCIe接口211与智能网卡的PCIE接口206连接,用于进行主机设备210与智能网卡200之间的数据传输。主板管理控制器212与PCIe接口211连接,用于根据通过PCIe接口211与智能网卡200进行通信。主板管理控制器212还可以与可编程门阵列213连接,主板管理控制器212还可以根据控制指令,向可编程门阵列213中的寄存器写入控制命令对应的数据,或读取可编程门阵列213中的寄存器数据,并根据寄存器数据从PCIe线接口206获取相应的数据例如智能网卡的设置信息等。可编程门阵列213与PCIe接口211,可以根据寄存器中的数据设置PCIe接口211上引脚的电位状态,或读取PCIe接口211上引脚的电位状态存入寄存器中。
交换机220与主机设备210通过RJ45接口214连接,用户终端230与交换机220连接,用户通过用户终端230发送控制指令,交换机220接收到控制指令后路由至与控制指令相对应的主机设备。
需要说明的是,智能网卡200的PCIe接口206与主机设备210的PCIe接口211是以插槽的方式相连,例如,智能网卡200上的PCIe接口为向外凸出的PCIe引脚,主机设备210的PCIe接口211是向内凹陷的PCIe插槽,插槽与引脚一一对应。上述或下述中类似“PCIe接口上的引脚”描述,实质是指向外凸出的PCIe引脚,或向内凹陷的插槽,但插槽与引脚是一一对应且直接接触,其电位相同。因此,皆以类似“PCIe接口上的引脚”的方式叙述以方便技术方案的描述。
应该理解的,图1A、图1B以及图2中的智能网卡、主机设备、交换机以及用户终端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的智能网卡、主机设备、交换机以及用户终端。需要说明的是,智能网卡与主机设备一一对应,一个主机设备对应一个智能网卡。
基于图1A、图1B中出现的问题以及图2的智能网卡、主机设备和连接方式,本公开提供了一种通信方法,应用于智能网卡,智能网卡与主机设备通过PCIe接口连接,PCIe接口包括至少一个第一引脚和至少一个第二引脚,通信方法包括:获取至少一个第一引脚的电位状态,第一引脚的电位状态是根据主机设备的控制指令设置的;根据电位状态,执行控制指令对应的功能。
图3示意性示出了根据本公开实施例的用于智能网卡的通信方法的流程图。
如图3所示,该用于智能网卡的通信方法可以包括操作S310~S320。
在操作S310,获取至少一个第一引脚的电位状态,第一引脚的电位状态是根据主机设备的控制指令设置的。
具体的,第一引脚是PCIe接口上预留的引脚,其功能、功能和电位状态的对应关系可以被本领域技术人员进行改写和定义。
图4示意性示出了根据本公开实施例的PCIe接口部分引脚图。
如图4所示,PCIe接口的引脚分为A面和B面,每个面上都包括多个引脚,其中部分引脚的具体功能已经被PCIe通信协议设定好,例如用于数据传输、电源控制、时序控制或接地等。但其中有部分引脚是预留空置的,其功能未被定义,在传统基于PCIe的通信中,也未被使用。例如,A面的三个预留引脚Pin32、Pin33以及Pin50。
基于此,本公开可以利用预留空置的引脚,例如Pin32、Pin33以及Pin50,进行控制指令的通信。而对于其它已经被设定好功能的引脚,不做改变,不会影响到智能网卡与主机设备的正常通信。
表1引脚电位状态与控制指令的对应关系
功能/pin定义 Pin 32 Pin 33 Pin 50
传统SmartNIC PCIe设备 0 0 0
执行SmartNIC reboot 0 0 1
执行SmartNIC power cycle 0 1 0
启动项更改为SmartNIC Hdd 1 0 1
启动项更改为SmartNIC Pxe 1 1 0
保留 1 1 1
如表1所示,Pin32、Pin33以及Pin50不同电位状态的组合可以对应不同的控制指令。
例如,Pin32、Pin33以及Pin50的电位状态均为0电位的时候,表示当前智能网卡与主机设备之间的PCIe接口只负责传统通信任务,并不执行控制功能。
例如,Pin32、Pin33以及Pin50的电位状态依次为0、0、1的时候,表示智能网卡需要执行SmartNIC reboot,也即智能网卡需要进行软重启,关闭与智能网卡相关的所有应用程序和服务,然后对智能网卡进行重新启动。
例如,Pin32、Pin33以及Pin50的电位状态依次为0、1、0的时候,表示智能网卡需要执行SmartNIC power cycle,也即智能网卡需要进行硬重启,通过断电或重启服务器等硬件方式来重新启动智能网卡。在这种情况下,智能网卡将被完全重置,但其上的数据可能丢失。
例如,Pin32、Pin33以及Pin50的电位状态依次为1、0、1的时候,表示智能网卡需要将启动顺序调整为首先从网卡的硬盘启动。在智能网卡中,通常会安装一个独立的操作***,以便进行更高级别的网络处理。这个操作***可以被安装在网卡的硬盘上或网络上,将启动项更改为SmartNIC Hdd启动项,才能让智能网卡从硬盘启动。
例如,Pin32、Pin33以及Pin50的电位状态依次为1、1、0的时候,表示智能网卡需要将启动顺序调整为首先从网络启动。
需要说明的是,表1中给出的“保留”项,是指Pin32、Pin33以及Pin50的电位状态依次为1、1、1时的对应控制指令未指定,暂时空置,在有其它功能需求的时候,可以由技术人员自行设置。
基于此,在本公开实施例中,第一引脚可以包括Pin32、Pin33以及Pin50。操作S310,获取Pin32、Pin33以及Pin50的电位状态,Pin32、Pin33以及Pin50的电位状态是根据主机设备的控制指令以及表1中的对应关系设置的。
根据本公开实施例,本公开采用的是传统PCIe接口中所保留空置的引脚,针对这些保留空置的引脚进行功能定义,最大程度上兼容了传统PCIe设备,同时兼容市场上已有的智能网卡方案,具有更好的普适性。
继续参考图3,在操作S320,根据电位状态,执行控制指令对应的功能。
例如,Pin32、Pin33以及Pin50的电位状态依次为0、0、1时,执行SmartNIC reboot。具体的,智能网卡的CPLD监测到Pin32、Pin33以及Pin50的电位状态依次为0、0、1时,将信号传递给网卡SoC,网卡SoC获取到CPLD传输的信号后,判断此时需要执行智能网卡的电源操作中的SmartNIC reboot,网卡SoC将执行SmartNIC reboot的指令传递给网卡的PMIC,PMIC获取到指令后,执行智能网卡的软重启。
例如,Pin32、Pin33以及Pin50的电位状态依次为0、1、0时,执行SmartNIC powercycle。具体的,智能网卡的CPLD监测到Pin32、Pin33以及Pin50的电位状态依次为0、1、0时,将信号传递给网卡SoC,网卡SoC获取到CPLD传输的信号后,判断此时需要执行智能网卡的电源操作中的SmartNIC power cycle,网卡SoC将执行SmartNIC powercycle的指令传递给网卡的PMIC,PMIC获取到指令后,执行智能网卡的硬重启。
图5示意性示出了根据本公开实施例的用于智能网卡的另一通信方法的流程图。
如图5所示,该用于智能网卡的通信方法中,还可以包括操作S510~S520。
在操作S510,根据电位状态,更改智能网卡的启动项设置。
例如,Pin32、Pin33以及Pin50的电位状态依次为1、0、0时,将启动项更改为SmartNIC Hdd启动。具体的,智能网卡的CPLD监测到Pin32、Pin33以及Pin50的电位状态依次为1、0、0时,将信号传递给网卡SoC,网卡SoC获取到CPLD传输的信号后,判断此时需要更改智能网卡的启动项,网卡SoC将启动项更改为SmartNIC Hdd启动的指令传递给网卡的BIOS,BIOS获取到指令后,将网卡的启动项更改为SmartNIC Hdd启动。
例如,Pin32、Pin33以及Pin50的电位状态依次为1、1、0时,将启动项更改为SmartNIC Hdd启动。具体的,智能网卡的CPLD监测到Pin32、Pin33以及Pin50的电位状态依次为1、0、0时,将信号传递给网卡SoC,网卡SoC获取到CPLD传输的信号后,判断此时需要更改智能网卡的启动项,网卡SoC将启动项更改为SmartNIC Hdd启动的指令传递给网卡的BIOS,BIOS获取到指令后,将网卡的启动项更改为SmartNIC Hdd启动。
在操作S520,在启动项设置更改完成后,通过至少一个第二引脚向主机设备发送控制指令的响应完成消息。
第二引脚为PCIe的引脚中,第一引脚、电源引脚、时序引脚等被固定功能占用的引脚以外,用于数据传输的引脚。例如,第二引脚可以是PCIe引脚中用于网络流量数据传输的引脚。在需要项主机设备发送控制指令的响应完成消息时,可以暂停网络流量数据的传输,转而发送响应完成消息。例如,也可以是PCIe的引脚中,负责网卡***与主机***中应用层面或***层面控制指令传输的引脚,此时,需要在网卡的应用层面或***层面中做出响应的适配改动。例如,也可以是除去第一引脚之外的预留空置引脚。需要说明的是,本公开技术人员可以根据实际情况需要,选择合适引脚作为第二引脚,本公开对此不做限制。
例如,网卡的启动项更改为SmartNIC Hdd启动后,网卡SoC获取到BIOS成功更改设置的响应消息,网卡SoC将对应的响应消息封装成MCTP消息包,通过智能网卡的SMBC传递给PCIe接口上的第二引脚,以使得主机设备获取到响应完成消息。
图6示意性示出了根据本公开实施例的用于智能网卡的通信方法中执行控制指令对应的功能的流程图。
如图6所示,该用于智能网卡的通信方法中,操作S320还可以包括操作S610~S620。
在操作S610,根据电位状态,执行控制指令对应的重启操作。具体的,重启操作包括软重启以及硬重启,具体的的重启操作过程已在图3实施例的操作S320中具体描述,在此不做赘述。
在操作S620,通过至少一个第二引脚,与主机设备重新建立通信连接。在智能网卡重启后,需要与主机设备重新建立通信连接。具体的,在智能网卡重启后,网卡SoC生成连接请求,经由网卡上的SMBC传递给PCIe接口上的第二引脚,以使得主机设备接收到来自第二引脚上的连接请求,并响应该请求建立与智能网卡之间的通信连接。
在另一实施例中,操作S320还可以包括操作S630~S640。
在操作S630,根据电位状态,通过至少一个第二引脚获取主机设备的查询请求。
在操作S640,根据查询请求查找对应的网卡数据。例如可以是网卡的电源信息、功耗信息或FW版本信息等。
在操作S650,通过至少一个第二引脚向主机设备发送网卡数据。
例如,结合表1给出的对应关系,此时Pin32、Pin33以及Pin50的电位状态可以依次为0、0、0,也即,此时智能网卡与主机设备的通信是传统通信方式,查询请求通过传统通信方式传递。
例如,结合表1给出的对应关系,此时Pin32、Pin33以及Pin50的电位状态可以依次为1、1、1,也即,将原本电位状态1、1、1对应的空置的对应关系修改为通过网卡信息读取功能,此时,智能网卡与主机设备的通信,可以通过第二引脚进行。例如,经由智能网卡上的SMBC以及PCIe接口上的第二引脚,与主机设备进行信息交互。
图7示意性示出了根据本公开实施例的用于智能网卡的另一通信方法的流程图。
如图7所示,该用于智能网卡的通信方法中,还可以包括操作S710~S720。
在操作S710,根据至少一个第二引脚获取读取指令,读取指令是由主机设备根据用户的读取意图生成的。具体的,网卡SoC经由网卡上的SMBC以及PCIe接口读取到从第二引脚传入的读取指令。
在操作S720,更改第一引脚的电位状态,以使得主机设备通过第一引脚的电位状态确定智能网卡的设置信息。具体的,网卡SoC获取到读取命令后,将查询现有的设置信息,例如启动项的设置信息,并通过CPLD将第一引脚设置为对应的电位状态,以使得主机设备通过第一引脚的电位状态确定智能网卡的设置信息。
例如,智能网卡的启动项设置为Hdd启动,那么网卡SoC在查询到设置信息后,会通知CPLD将Pin32、Pin33以及Pin50的电位状态依次设置为1、0、1,以使得主机设备读取到Pin32、Pin33以及Pin50的电位状态为1、0、1,得知智能网卡的启动项设置的是Hdd启动。
根据本公开的实施例,智能网卡通过PCIe中的第一引脚与第二引脚实现电源重启、启动项设置等硬件管理与控制,无需使用传统技术中的RJ45接口、配套的switch芯片以及网卡BMC芯片,生成成本大幅度减少。
图8示意性示出了根据本公开实施例的应用于主机设备的通信方法的流程图。
如图8所示,该应用于主机设备的通信方法包括操作S810~S820。
在操作S810,根据控制指令设置至少一个第一引脚的电位状态。
具体的,主机BMC根据控制指令生成控制指令对应的电位数据。电位数据与控制指令的对应关系可以如前述表1所示。将电位数据保存至主机设备的FPGA的写寄存器中。FPGA根据写寄存器中的电位数据,更改至少一个第一引脚的电位状态。
例如,控制指令是需要将智能网卡启动项更改为SmartNIC Hdd,则主机的BMC根据该控制指令生成二进制数据00000100,并将00000100保存至FPGA的写寄存器中,在本公开实施例中,写寄存器的后三位分别对应Pin32、Pin33以及Pin50的电位状态,FPGA根据写寄存器中00000100,将Pin32、Pin33以及Pin50的电位状态更改为1、0、0。
在操作S820,通过至少一个第二引脚接收智能网卡的响应于电位状态生成的数据。具体的,主机BMC通过PCIe接口上的至少一个第二引脚,获取到智能网卡响应于电位状态生成的数据。
例如,Pin32、Pin33以及Pin50的电位状态在被设置为1、0、0的情况下,智能网卡会将启动项更改为SmartNIC Hdd,此时,网卡的SoC会对应生成一个更改成功的响应消息,该响应消息会通过PCIe的至少一个第二引脚传递至主机设备,主机设备的BMC通过PCIe的至少一个第二引脚获取到该响应消息,以此得知网卡成功将启动项设置为SmartNIC Hdd启动。
图9示意性示出了根据本公开实施例的应用于主机设备的另一通信方法的流程图。
如图9所示,应用于主机设备的另一通信方法还可以包括操作S910~S930。
在操作S910,通过至少一个第二引脚发送读取指令,以使得智能网卡根据读取指令更改至少一个第一引脚的电位状态。具体的,主机设备的BMC通过PCIe接口上的至少一个第二引脚,发送读取指令,以使得智能网卡的网卡SoC获取到读取指令后,通知网卡CPLD更改至少一个第一引脚的电位状态。
例如,主机设备的BMC通过PCIe接口上的至少一个第二引脚向智能网卡发送读取启动项设置的控制指令,智能网卡的网卡SoC通过SMBC从至少一个第二引脚上获取到主机想要读取启动项的控制指令,网卡SoC查询当前的启动项设置为Pxe,因此网卡SoC通知网卡上的CPLD将Pin32、Pin33以及Pin50的电位状态设置为1、1、0。
在操作S920,读取电位状态。具体的,通过主机设备上的FPGA读取至少一个第一引脚的电位状态,存入FPGA中的读寄存器中。
例如,通过主机设备上的FPGA读取到Pin32、Pin33以及Pin50的电位状态为1、1、0,则将数据00000110写入到FPGA的读寄存器中,读寄存器中的后三位依次对应Pin32、Pin33以及Pin50。
在操作S930,根据电位状态确定智能网卡的设置信息。具体的,主机设备的BMC读取FPGA中读寄存器保存的电位状态数据,根据电位状态数据确定当前网卡的启动项。例如,主机设备的BMC访问FPGA的读寄存器,获取到当前读寄存器中保存的数据为00000110,根据00000110的后三位得知,当前网卡的启动项被设置为SmartNIC Pxe。
基于上述通信方法,本公开还提供了一种通信装置,应用于智能网卡,以下将结合图10对该装置进行详细描述。
图10示意性示出了根据本公开实施例的应用于智能网卡的通信装置的框图。
如图1 0所示,应用于智能网卡的通信装置1000包括获取模块1010和执行模块1020。
获取模块1010可以执行例如操作S310,用于获取至少一个第一引脚的电位状态,第一引脚的电位状态根据主机设备的控制指令设置。
执行模块1020可以执行例如操作S320,用于根据电位状态,执行控制指令对应的功能。
在一些实施例中,通信装置1000还可以包括第一更改模块1030、发送模块1040以及第二更改模块1050。
第一更改模块1030可以执行例如操作S510,用于根据电位状态,更改智能网卡的启动项设置。
第一发送模块1040可以执行例如操作S520,用于在启动项设置更改完成后,通过至少一个第二引脚向主机设备发送控制指令的响应完成消息。
第二更改模块1050可以执行例如操作S720,用于基于至少一个第二引脚接收到的读取指令,更改第一引脚的电位状态,以使得主机设备通过第一引脚的电位状态确定智能网卡的设置信息。
例如,获取模块1010、执行模块1020、第一更改模块1030、第一发送模块1040以及第二更改模块1050中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块1010、执行模块1020、第一更改模块1030、第一发送模块1040以及第二更改模块1050中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块1 010、执行模块1020、第一更改模块1030、第一发送模块1040以及第二更改模块1050中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图11示意性示出了根据本公开实施例的应用于主机设备的通信装置的框图。
如图11所示应用于主机设备的通信装置1100可以包括设置模块1110和接收模块1120。
设置模块1110可以执行例如操作S810,用于根据控制指令设置至少一个第一引脚的电位状态。
接收模块1120可以执行例如操作S820,用于通过至少一个第二引脚接收智能网卡的响应于电位状态生成的数据。
在一些实施例中,通信装置1100还可以包括第二发送模块1130、读取模块1140以及确定模块1150。
第二发送模块1130可以执行例如操作S910,用于通过至少一个第二引脚发送读取指令,以使得智能网卡根据读取指令更改至少一个第一引脚的电位状态。
读取模块1140可以执行例如操作S920,用于读取电位状态。
确定模块1150可以执行例如操作S930,用于根据电位状态确定智能网卡的设置信息。
例如,设置模块1110、接收模块1120、第二发送模块1130、读取模块1140以及确定模块1150中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,设置模块1110、接收模块1120、第二发送模块1130、读取模块1140以及确定模块1150中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,设置模块1110、接收模块1120、第二发送模块1130、读取模块1140以及确定模块1150中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图12示意性示出了可以用来实施本公开实施例的方法的示例电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,设备1200包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM1202以及RAM1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
电子设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如应用程序运行方法。例如,在一些实施例中,应用程序运行方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM1203并由计算单元1201执行时,可以执行上文描述的应用程序运行方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用程序运行方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (10)

1.一种通信方法,应用于智能网卡,所述智能网卡与主机设备通过PCIe接口连接,所述PCIe接口包括至少一个第一引脚和至少一个第二引脚,所述通信方法包括:
获取所述至少一个第一引脚的电位状态,所述第一引脚的电位状态是根据所述主机设备的控制指令设置的;
根据所述电位状态,执行所述控制指令对应的功能。
2.根据权利要求1所述的方法,其中,还包括:
根据所述电位状态,更改所述智能网卡的启动项设置;
在所述启动项设置更改完成后,通过所述至少一个第二引脚向所述主机设备发送所述控制指令的响应完成消息。
3.根据权利要求1所述的方法,其中,所述根据所述电位状态,执行所述控制指令对应的功能包括:
根据所述电位状态,执行所述控制指令对应的重启操作;
通过所述至少一个第二引脚,与所述主机设备重新建立通信连接。
4.根据权利要求1所述的方法,其中,还包括:
基于所述至少一个第二引脚接收到的读取指令,更改所述第一引脚的电位状态,以使得所述主机设备通过所述第一引脚的电位状态获取确定智能网卡的设置信息。
5.一种通信方法,应用于主机设备,所述主机设备与智能网卡通过PCIe接口连接,所述PCIe接口包括至少一个第一引脚和至少一个第二引脚,所述通信方法包括:
根据控制指令设置所述至少一个第一引脚的电位状态;
通过至少一个所述第二引脚接收所述智能网卡的响应于所述电位状态生成的数据。
6.根据权利要求5所述的方法,其中,所述方法还包括:
通过至少一个所述第二引脚发送读取指令,以使得所述智能网卡根据所述读取指令更改至少一个所述第一引脚的电位状态;
读取所述电位状态;
根据所述电位状态确定所述智能网卡的设置信息。
7.根据权利要求5所述的方法,其中,所述根据控制指令设置所述至少一个第一引脚的电位状态包括:
根据控制指令生成所述控制指令对应的电位数据;
通过现场可编程门阵列,根据所述电位数据更改至少一个所述第一引脚的电位状态。
8.一种通信装置,应用于智能网卡,所述智能网卡与主机设备通过PCIe接口连接,所述PCIe接口包括至少一个第一引脚和至少一个第二引脚,其中,所述通信装置包括:
获取模块,用于获取所述至少一个第一引脚的电位状态,所述第一引脚的电位状态根据主机设备的控制指令设置;
执行响应模块,用于根据所述电位状态,执行所述控制指令对应的功能,或通过所述至少一个第二引脚响应所述控制指令。
9.一种通信装置,应用于主机设备,所述主机设备与智能网卡通过PCIe接口连接,所述PCIe接口包括至少一个第一引脚和至少一个第二引脚,其中,所述通信装置包括:
设置模块,用于根据控制指令设置所述至少一个第一引脚的电位状态;以及
接收模块,用于通过至少一个所述第二引脚接收所述智能网卡的响应于所述电位状态生成的数据。
10.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如下操作:
获取至少一个第一引脚的电位状态,所述第一引脚的电位状态是根据主机设备的控制指令设置的;
根据所述电位状态,执行所述控制指令对应的功能。
CN202410137641.5A 2024-01-31 2024-01-31 通信方法、装置及电子设备 Pending CN117997658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410137641.5A CN117997658A (zh) 2024-01-31 2024-01-31 通信方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410137641.5A CN117997658A (zh) 2024-01-31 2024-01-31 通信方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN117997658A true CN117997658A (zh) 2024-05-07

Family

ID=90893731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410137641.5A Pending CN117997658A (zh) 2024-01-31 2024-01-31 通信方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN117997658A (zh)

Similar Documents

Publication Publication Date Title
US9092334B2 (en) Method for shortening enumeration of tightly coupled USB device
WO2023147748A1 (zh) 一种服务器初始化智能网卡的方法、装置、设备及介质
CN105701038B (zh) 一种级联芯片启动方法及相关装置
WO2024103829A1 (zh) 一种端口配置方法、组件及硬盘扩展装置
US9116881B2 (en) Routing switch apparatus, network switch system, and routing switching method
CN111736867A (zh) 一种fpga更新设备、方法以及存储介质
CN110399328B (zh) 一种板载图形处理器控制方法与装置
CN111948971A (zh) 一种智能卡管理装置及其数据转接方法
CN109901664B (zh) 提供时钟信号的方法、装置、***、设备及可读存储介质
WO2024113767A1 (zh) 智能网卡的上电方法及上电装置
CN116644011B (zh) 一种i2c设备的快速识别方法、装置、设备及存储介质
CN117997658A (zh) 通信方法、装置及电子设备
CN112564924B (zh) 计算机扩展卡及区块链终端设备
CN116010307A (zh) 服务器资源分配***、方法和装置
CN115129643A (zh) Bmc与cmc间传输频宽提升方法、装置、设备及存储介质
CN110096366B (zh) 一种异构内存***的配置方法、装置及服务器
CN114185720A (zh) 服务器动态热备份的方法、装置、设备及存储介质
CN113961497A (zh) 通信电路***、方法、芯片以及存储介质
CN112131157A (zh) 一种使用usb接口实现ipmi功能的方法、usb接口和服务器
WO2024066857A1 (zh) 一种电子设备、处理器、数据传输方法及装置
CN212411050U (zh) 一种智能卡管理装置和智能卡***
TWI612424B (zh) 交換器系統
US10803008B2 (en) Flexible coupling of processor modules
TW201821999A (zh) 交換器系統
CN116880327A (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