CN115563040A - 一种固件信息获取方法及服务器 - Google Patents

一种固件信息获取方法及服务器 Download PDF

Info

Publication number
CN115563040A
CN115563040A CN202211213367.2A CN202211213367A CN115563040A CN 115563040 A CN115563040 A CN 115563040A CN 202211213367 A CN202211213367 A CN 202211213367A CN 115563040 A CN115563040 A CN 115563040A
Authority
CN
China
Prior art keywords
firmware information
network card
pld
communication cable
cable module
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
CN202211213367.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.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital Technologies 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 XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202211213367.2A priority Critical patent/CN115563040A/zh
Publication of CN115563040A publication Critical patent/CN115563040A/zh
Pending legal-status Critical Current

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种固件信息获取方法及服务器,其中,该服务器包括网卡和主板,主板包括PLD,PLD中包括预先构造的寄存器,寄存器用于存储与网卡的主控IC连接的通信线缆模块的固件信息。在该方法中,网卡向PLD发送固件信息读取信号,固件信息读取信号用于读取通信线缆模块的固件信息,固件信息包括支持通信线缆模块的协议参数;PLD获取固件信息读取信号,响应于固件信息读取信号,将固件信息发送给网卡。本申请实施例中,网卡可从PLD中获取到通信线缆模块的固件信息,有利于解决通信线缆模块中固件信息错烧、漏烧的问题。

Description

一种固件信息获取方法及服务器
技术领域
本发明涉及服务器通信技术领域,尤其涉及一种固件信息获取方法及服务器。
背景技术
随着网络通信技术的快速发展,传统的单节点服务器已经满足不了高密度计算的发展需求,整柜级服务器因为其高密度、易规模化部署的特点,成为业界服务器的热门产品。
目前,整柜级服务器在柜内通信介质方面,多采用背板加电缆的方式,因此柜内节点多使用网卡进行网络交换,网卡在与交换机成功连接前,需要读取高速线缆(DirectAttach Cable,DAC)电模块内部的电可擦编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)中存储的相关数据。EEPROM中的数据通常需要由线缆厂家烧录好后,这样才能保证DAC线缆电模块的正常使用。但是线缆厂家交付的DAC线缆可能出现固件漏烧、错烧等问题,导致服务器通信的可靠性较低。
发明内容
本申请实施例提供了一种固件信息获取方法及服务器,可以通过在主板的PLD中构造寄存器存储通信线缆模块的固件信息来提升服务器通信的可靠性。
第一方面,本申请实施例提供了一种固件信息获取方法,应用于网卡,网卡与PLD通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接,该方法包括:
向PLD发送固件信息读取信号,固件信息读取信号用于读取通信线缆模块的固件信息,固件信息包括支持通信线缆模块的协议参数;
获取PLD响应于固件信息读取信号发送的固件信息。
可以看出,本申请实施例中可以在PLD中构造出存储格式与EEPROM芯片的存储格式相同的寄存器,并将通信线缆模块的固件信息存储于这些寄存器中,则线缆厂家可将通信线缆模块中的EEPROM芯片去除,以PLD中的寄存器替代EEPROM芯片的功能。网卡通过向PLD发送固件信息读取信号,PLD将对应的固件信息发送给网卡,从而即使在通信线缆模块中固件信息出现错烧、漏烧的情况下,网卡也能够有效地获取到通信线缆模块的固件信息,以保证网卡能够与其他设备进行通信,进而有利于提升服务器通信的可靠性。
在一些可能的实施方式中,网卡的第二端口包括在位管脚,在位管脚与PLD连接,在位管脚用于在通信线缆模块插入第二端口时向PLD发送通信线缆模块的在位信号。
可以看出,该实现方式中当通信线缆模块插入第二端口时,第二端口的在位管脚向PLD发送通信线缆模块的在位信号,则PLD可以通过该在位信号确定通信线缆模块的类型,然后基于通信线缆模块的类型和固件信息读取信号确定出需要读取的寄存器,以将寄存器中的固件信息发送给网卡。
在一些可能的实施方式中,固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
可以看出,该实现方式中由于PLD中构造出了存储格式与EEPROM芯片的存储格式相同的寄存器,则网卡与PLD之间可以通过I2C总线、UART异步通信线、SPI串口通信线传输中的任意一种进行通信。
在一些可能的实施方式中,通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
可以看出,该实现方式适用于DAC线缆的电模块和光纤的光模块等多种通信线缆模块。
第二方面,本申请实施例提供了一种固件信息获取方法,应用于PLD,PLD与网卡通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接,该方法包括:
获取网卡发送的固件信息读取信号,固件信息读取信号用于读取通信线缆模块的固件信息,固件信息包括支持通信线缆模块的协议参数;
响应于固件信息读取信号,将固件信息发送给网卡。
可以看出,本申请实施例中可以在PLD中构造出存储格式与EEPROM芯片的存储格式相同的寄存器,并将通信线缆模块的固件信息存储于这些寄存器中,则线缆厂家可将通信线缆模块中的EEPROM芯片去除,以PLD中的寄存器替代EEPROM芯片的功能。网卡通过向PLD发送固件信息读取信号,PLD将对应的固件信息发送给网卡,从而即使在通信线缆模块中固件信息出现错烧、漏烧的情况下,网卡也能够有效地获取到通信线缆模块的固件信息,以保证网卡能够与其他设备进行通信,进而有利于提升服务器通信的可靠性。另外,由于线缆厂家可以去除通信线缆模块中的EEPROM芯片,则相对能够节省通信线缆模块中EEPROM芯片的软硬件成本,也解决了线缆厂家带来的通信线缆固件质量交付问题。
在一些可能的实施方式中,PLD包括寄存器,在获取网卡发送的固件信息读取信号之前,该方法还包括:
将固件信息存储在寄存器中;
响应于固件信息读取信号,将固件信息发送给网卡,包括:
响应于固件信息读取信号,将寄存器中的固件信息发送给网卡。
可以看出,该实施方式中PLD可以将固件信息存储在预先构建的寄存器中,当接收到网卡发送的固件信息读取信号时,PLD可以从对应的寄存器中读取固件信息,并将该固件信息发送给网卡。
在一些可能的实施方式中,网卡的第二端口包括在位管脚,在位管脚与PLD连接,在响应于固件信息读取信号,将寄存器中的固件信息发送给网卡之前,该方法还包括:
根据在位管脚发送的在位信号确定通信线缆模块的类型;
根据通信线缆模块的类型和固件信息读取信号确定出寄存器。
可以看出,该实现方式中可以在PLD中构造出多套寄存器,不同的寄存器对应不同类型的通信线缆模块,从而实现不同通信线缆模块的固件信息存储在不同类型的寄存器中。当通信线缆模块插入网卡的第二端口时,第二端口的在位管脚向PLD发送通信线缆模块的在位信号,PLD可以通过通信线缆模块的在位信号确定通信线缆模块的类型,然后基于通信线缆模块的类型和网卡发送的固件信息读取信号确定出需要读取的寄存器,以实现针对不同类型的通信线缆模块到不同的寄存器中读取固件信息。
在一些可能的实施方式中,固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
可以看出,该实现方式中由于PLD中构造出了存储格式与EEPROM芯片的存储格式相同的寄存器,则网卡与PLD之间可以通过I2C总线、UART异步通信线、SPI串口通信线传输中的任意一种进行通信。
在一些可能的实施方式中,通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
可以看出,该实现方式适用于DAC线缆的电模块和光纤的光模块等多种通信线缆模块。
第三方面,本申请实施例提供了一种服务器,包括网卡和主板,主板包括PLD,PLD与网卡通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接;
网卡,用于向PLD发送固件信息读取信号,固件信息读取信号用于读取通信线缆模块的固件信息,固件信息包括支持通信线缆模块的协议参数;
PLD,用于获取固件信息读取信号,响应于固件信息读取信号,将固件信息发送给网卡。
在一些可能的实施方式中,PLD包括寄存器,PLD还用于:
将固件信息存储在寄存器中;
在响应于固件信息读取信号,将固件信息发送给网卡方面,PLD具体用于:
响应于固件信息读取信号,将寄存器中的固件信息发送给网卡。
在一些可能的实施方式中,网卡的第二端口包括在位管脚,在位管脚与PLD连接,PLD还用于:
根据在位管脚发送的在位信号确定通信线缆模块的类型;
根据通信线缆模块的类型和固件信息读取信号确定出寄存器。
在一些可能的实施方式中,固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
在一些可能的实施方式中,通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
需要说明的是,第三方面是上述第一方面和第二方面对应的装置,用于实现第一方面和第二方面提供的方法中的各个实施例,且能达到相同或相似的有益效果。
第四方面,本申请实施例提供了一种通信方法,该通信方法包括:
服务器的网卡向服务器的主板的PLD发送固件信息读取信号,固件信息读取信号用于读取与网卡的主控IC连接的通信线缆模块的固件信息;
PLD接收固件信息读取信号;响应于固件信息读取信号,将固件信息发送给网卡;
网卡接收固件信息,根据固件信息获取支持通信线缆模块的协议参数;基于通信线缆模块的协议参数,通过通信线缆模块向交换节点发送数据。
在一些可能的实施方式中,PLD包括寄存器,在网卡向服务器的主板的PLD发送固件信息读取信号之前,该方法还包括:
PLD将固件信息存储在寄存器中;
PLD响应于固件信息读取信号,将固件信息发送给网卡,包括:
PLD响应于固件信息读取信号,将寄存器中的固件信息发送给网卡。
在一些可能的实施方式中,PLD与网卡通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接,网卡的第二端口包括在位管脚,在位管脚与PLD连接,在PLD向网卡发送固件信息之前,该方法还包括:
PLD根据在位管脚发送的在位信号确定通信线缆模块的类型;
PLD根据通信线缆模块的类型和固件信息读取信号确定出寄存器。
口通信线传输。
在一些可能的实施方式中,通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
需要说明的是,第四方面中各个步骤的实现具体可参见第一方面和第二方面所示的方法实施例的相应描述,且能达到相同或相似的有益效果。
第五方面,本申请实施例还提供了一种服务器,包括计算节点、交换节点和背板,计算节点包括网卡和主板,主板包括PLD,网卡通过通信线缆模块与交换节点连接;或者,网卡通过通信线缆模块与背板连接,再通过背板与交换节点连接;
网卡,用于向PLD发送固件信息读取信号,固件信息读取信号用于读取通信线缆模块的固件信息;
PLD,用于接收固件信息读取信号,响应于固件信息读取信号,将固件信息发送给网卡;
网卡,还用于接收固件信息,根据固件信息获取支持通信线缆模块的协议参数;基于通信线缆模块的协议参数,通过通信线缆模块向交换节点发送数据。
在一些可能的实施方式中,PLD包括寄存器,PLD还用于:将固件信息存储在寄存器中。
在一些可能的实施方式中,在向网卡发送固件信息方面,PLD具体用于:响应于固件信息读取信号,将寄存器中的固件信息发送给网卡。
在一些可能的实施方式中,PLD与网卡通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接,网卡的第二端口包括在位管脚,在位管脚与PLD连接,PLD还用于:
根据在位管脚发送的在位信号确定通信线缆模块的类型;
根据通信线缆模块的类型和固件信息读取信号确定出寄存器。
在一些可能的实施方式中,固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
在一些可能的实施方式中,通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
需要说明的是,各个操作的实现还可以对应参见第四方面所示的方法实施例的相应描述,且能达到相同或相似的有益效果。
第六方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有用于设备执行的计算机程序,计算机程序被执行时实现上述第一方面或第二方面或第四方面中的方法。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品被设备运行,使得设备执行上述第一方面或第二方面或第四方面中的方法。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1为一种相关技术提出的获取DAC线缆的电模块中EEPROM芯片中的固件信息的示意图;
图2为本申请实施例提供的一种通信系统的示意图;
图3为本申请实施例提供的一种服务器中的固件信息获取方法的流程示意图;
图4为本申请实施例提供的一种通信线缆模块的在位管脚与PLD连接的示意图;
图5为本申请实施例提供的另一种服务器中的固件信息获取方法的流程示意图;
图6为本申请实施例提供的一种服务器的结构示意图;
图7为本申请实施例提供的一种通信方法的流程示意图;
图8为本申请实施例提供的另一种服务器的结构示意图。
具体实施方式
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在终端设备上运行的应用和终端设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
为了便于理解本申请实施例,进一步分析并提出本申请所具体要解决的技术问题,下面对本申请的相关技术方案进行简要介绍。
请参见图1,图1为一种相关技术提出的获取DAC线缆的电模块中EEPROM芯片中的固件信息的示意图,如图1所示,相关技术中服务器的网卡通过端口与DAC线缆的电模块连接,每个电模块搭配一个EEPROM芯片,EEPROM芯片中的固件信息(二进制形式)通常需要由线缆厂家烧录好,电模块才能正常使用。网卡与其他设备进行通信时,需要通过I2C通信协议读取EEPROM芯片中的固件信息,以确定DAC线缆支持的协议及协议参数,从而可基于该协议及协议参数进行数据传输。然而,DAC线缆中可能出现固件信息漏烧、错烧的问题,网卡的主控IC无法从EEPROM芯片中获取到有效的固件信息,这就使得网卡难以与其他设备进行网络交换,从而导致服务器通信的可靠性较低。
综合相关技术的缺陷和不足,本申请实施例所要解决的技术问题主要如下:如何准确读取到通信线缆模块中的固件信息以提升服务器通信的可靠性。
基于上述技术问题,请参见图2,图2为本申请实施例提供的一种通信系统的示意图,如图2所示,该系统中包括服务器的主板和网卡,其中该主板包括可编程逻辑器件(Programmable Logic Device,PLD),PLD包括复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)、现成可编程门阵列(Field Programmable GateArray,FPGA),该网卡包括主控芯片(Integrated Circuit,IC),主控IC通过第一端口与PLD连接,通过第二端口与通信线缆模块连接,网卡通过通信线缆模块与交换机等设备连接,通信线缆模块包括DAC线缆的电模块、光纤(比如:有源光缆等)的光模块中的至少一种。PLD中按照通信线缆模块中原有EEPROM芯片的存储格式构造了一套寄存器,用于存储通信线缆模块的固件信息,则相当于在PLD中存储了一套支持与网卡进行通信的协议逻辑。网卡(具体可以是主控IC)从PLD的寄存器中获取通信线缆模块的固件信息,而无需再从通信线缆模块的EEPROM芯片中读取,能够有效避免EEPROM芯片中固件信息错烧、漏烧的问题,从而提升网卡与其他设备通信的可靠性。
以下结合附图对本申请实施例提供的服务器中的固件信息获取方法及相关设备进行详细描述。
请参见图3,图3为本申请实施例提供的一种固件信息获取方法的流程示意图,该方法可基于图2所示的通信系统实施,具体可由网卡执行,如图3所示,该方法可以包括步骤301-302:
301:网卡向PLD发送固件信息读取信号,固件信息读取信号用于读取通信线缆模块的固件信息,固件信息包括支持通信线缆模块的协议参数。
本申请实施例中,网卡与PLD通过第一端口连接,与通信线缆模块通过第二端口连接。在步骤301执行之前,可以采用Verilog(一种硬件描述语言)编码在PLD中构造出一套存储格式与EEPROM芯片的存储格式相同的寄存器,示例性的,该寄存器列表可如表1所示。
表1
Figure BDA0003875764780000061
表1中连接器、收发器可以是光模块的连接器、收发器,十六进制的值(比如:00、04等)即表示其对应的支持协议等固件信息所在的寄存器,取值含义说明即示出了对应器件(或模块)的支持协议参数等。PLD中00寄存器、01寄存器等每个寄存器均可以存储8bit数据。基于构造出的寄存器,可以将原来烧录至EEPROM芯片中的固件信息,以相同的格式存储于PLD的寄存器中。对于线缆厂家来说,其可以将通信线缆模块中的EEPROM芯片去除,相对能够节省通信线缆模块中EEPROM芯片的软硬件成本,也解决了线缆厂家带来的通信线缆固件质量交付问题。示例性的,通信线缆可以是DAC线缆,也可以是光纤等。则基于通信线缆的不同,通信线缆模块也可以不同,比如:电模块、光模块等。
基于PLD中构造的寄存器,网卡可采用I2C总线、通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter,UART)、串行外围设备接口(Serial PerripheralInterface,SPI)等协议逻辑与PLD进行通信,也就是说固件信息读取信号是主控IC基于上述通信协议发送的通信信号。以I2C总线为例,固件信息读取信号可以是I2C信号,通常为8位的地址,该地址中包括PLD中预先构造的寄存器的地址位,比如:00寄存器的地址位。
302:网卡获取PLD响应于固件信息读取信号发送的固件信息。
本申请实施例中,PLD接收到固件信息读取信号后,在地址位与自己的寄存器的地址位相匹配的情况下,对网卡进行应答,并将相应地址位寄存器中存储的固件信息通过I2C总线、UART异步通信线或SPI串口通信线传输给网卡,比如:按照00寄存器、01寄存器的顺序依次发送,网卡通过通信线路获取该固件信息。网卡在确认了该支持协议及协议参数后,便可通过通信线缆模块与其他设备进行通信,比如:整柜级服务器中网卡在确认了通信线缆模块的支持协议及协议参数后,便可与交换机建立连接。其中,步骤301和302具体可由网卡的主控IC执行。
在一些可能的实施方式中,网卡的第二端口的在位管脚与PLD连接,如图4所示,具体可以是与PLD的在位管脚连接,当通信线缆模块插入网卡的第二端口,该端口的在位管脚被拉低,并通过信号线发送在位信号,PLD基于在位信号检测到通信线缆模块的在位管脚被拉低,即可确定通信线缆模块的类型。比如:DAC线缆的电模块,第二端口的在位管脚为1脚;光纤的光模块,第二端口的在管脚为2脚,当PLD检测到1脚被拉低,即可确定通信线缆模块的类型为电模块,当PLD检测到2脚被拉低,即可确定通信线缆模块的类型为光模块。
示例性的,可以预先在PLD中构造出多套存储格式与EEPROM芯片的存储格式相同的寄存器,该多套寄存器可以包括DAC线缆的电模块对应的寄存器和光纤的光模块对应的寄存器,该多套寄存器中寄存器的地址相同,比如:DAC线缆的电模块对应的一套寄存器中包括00寄存器、01寄存器,光纤的光模块对应的一套寄存器中同样可以包括00寄存器、01寄存器,等等。在确定出与网卡连接的通信线缆模块的类型后,PLD便可确定出对应的待读取寄存器的类型,然后基于网卡发送的地址位确定出该类型中的寄存器,并读取寄存器中存储的固件信息,并将固件信息发送给网卡。该实现方式中,可以在PLD中构造出多套寄存器,不同的寄存器对应不同类型的通信线缆模块。当通信线缆模块插入第二端口时,第二端口的在位管脚向PLD发送通信线缆模块的在位信号,则PLD可以通过该在位管脚发送的在位信号确定通信线缆模块的类型,然后基于通信线缆模块的类型和网卡发送的固件信息读取信号中的地址位确定出需要读取的寄存器,以将寄存器中的固件信息发送给网卡。
可以看出,本申请实施例中可以在PLD中构造出存储格式与EEPROM芯片的存储格式相同的寄存器,并将通信线缆模块的固件信息存储于这些寄存器中,则线缆厂家可将通信线缆模块中的EEPROM芯片去除,以PLD中的寄存器替代EEPROM芯片的功能。网卡通过向PLD发送固件信息读取信号,PLD将对应的固件信息发送给网卡,从而即使在通信线缆模块中固件信息出现错烧、漏烧的情况下,网卡也能够有效地获取到通信线缆模块的固件信息,以保证网卡能够与其他设备进行通信,进而有利于提升服务器通信的可靠性。
请参见图5,图5为本申请实施例提供的另一种固件信息获取方法的流程示意图,该方法可基于图2所示的通信系统实施,具体可由主板的PLD执行,如图5所示,该方法可以包括步骤501-502:
501:PLD获取网卡发送的固件信息读取信号,固件信息读取信号用于读取通信线缆模块的固件信息,固件信息包括支持通信线缆模块的协议参数。
本申请实施例中,PLD与网卡通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接。在步骤501执行之前,可以采用Verilog编码在PLD中构造出一套存储格式与EEPROM芯片的存储格式相同的寄存器,因此,可以将原来烧录至EEPROM芯片中的固件信息,以相同的格式存储于PLD的寄存器中,基于该逻辑,PLD可采用I2C总线、UART、SPI等协议逻辑与网卡(具体可以是与网卡的主控IC)进行通信。比如:在采用I2C总线逻辑的情况下,网卡发送的固件信息读取信号可以是I2C信号,其通常为8位的地址,该地址中包括PLD中预先构造的寄存器的地址位,比如:00寄存器的地址位。示例性的,通信线缆可以是DAC线缆,也可以是光纤等,则通信线缆模块也可以是电模块、光模块等。
502:PLD响应于固件信息读取信号,将固件信息发送给网卡。
本申请实施例中,PLD接收到固件信息读取信号后,在固件信息读取信号中的地址位与自己的寄存器(比如:00寄存器)的地址位相匹配的情况下,对网卡进行应答,并基于该地址位将对应寄存器中存储的固件信息通过通信线路发送给网卡。则网卡可以通过通信线路获取道该固件信息,以确认通信线缆模块支持的协议及协议参数,然后便可与其他设备进行通信。其中,通信线路可以是I2C总线、UART异步通信线、SPI串口通信线,等等。示例性的,PLD可以是只发送对应地址位中的固件信息(包括协议参数),也可以是在接收到起始地址位的情况下,将所有寄存器中的固件信息发送给网卡。
在一些可能的实施方式中,网卡的第二端口包括在位管脚,在位管脚与PLD连接,在响应于固件信息读取信号,将寄存器中的固件信息发送给网卡之前,该方法还包括:
根据在位管脚发送的在位信号确定通信线缆模块的类型;
根据通信线缆模块的类型和固件信息读取信号确定出寄存器。
示例性的,网卡的第二端口的在位管脚具体可以是与PLD的在位管脚连接,当通信线缆模块插入网卡的第二端口,该端口的在位管脚被拉低,并通过信号线发送在位信号,PLD基于在位信号检测到通信线缆模块对应的在位管脚被拉低,即可确定通信线缆模块的类型。比如:DAC线缆的电模块,第二端口的在位管脚为1脚;光纤的光模块,第二端口的在管脚为2脚,当PLD检测到1脚被拉低,即可确定通信线缆模块的类型为电模块,当PLD检测到2脚被拉低,即可确定通信线缆模块的类型为光模块。
示例性的,可以预先在PLD中构造出多套存储格式与EEPROM芯片的存储格式相同的寄存器,该多套寄存器可以包括DAC线缆的电模块对应的寄存器和光纤的光模块对应的寄存器,该多套寄存器中寄存器的地址相同,比如:DAC线缆的电模块对应的一套寄存器中包括00寄存器、01寄存器,光纤的光模块对应的一套寄存器中同样包括00寄存器、01寄存器,等等。在确定出与网卡连接的通信线缆模块的类型后,PLD便可确定出对应的待读取寄存器的类型,然后基于网卡发送的固件信息读取信号中的地址位确定出该类型中的寄存器,并读取寄存器中存储的固件信息,并将固件信息发送给网卡。该实现方式中,可以在PLD中构造出多套寄存器,不同的寄存器对应不同类型的通信线缆模块,从而实现不同通信线缆模块的固件信息存储在不同类型的寄存器中。当通信线缆模块插入网卡的第二端口时,第二端口的在位管脚向PLD发送通信线缆模块的在位信号,PLD可以通过通信线缆模块的在位信号确定通信线缆模块的类型,然后基于通信线缆模块的类型和网卡发送的固件信息读取信号确定出需要读取的寄存器,以实现针对不同类型的通信线缆模块到不同的寄存器中读取固件信息。
可以看出,本申请实施例中可以在PLD中构造出存储格式与EEPROM芯片的存储格式相同的寄存器,并将通信线缆模块的固件信息存储于这些寄存器中,则线缆厂家可将通信线缆模块中的EEPROM芯片去除,以PLD中的寄存器替代EEPROM芯片的功能。网卡通过向PLD发送固件信息读取信号,PLD将对应的固件信息发送给网卡,从而即使在通信线缆模块中固件信息出现错烧、漏烧的情况下,网卡也能够有效地获取到通信线缆模块的固件信息,以保证网卡能够与其他设备进行通信,进而有利于提升服务器通信的可靠性。另外,由于线缆厂家可以去除通信线缆模块中的EEPROM芯片,则相对能够节省通信线缆模块中EEPROM芯片的软硬件成本,也解决了线缆厂家带来的通信线缆固件质量交付问题。
基于上述方法实施例的描述,本申请实施例还提供一种服务器600。请参见图6,图6为本申请实施例提供的一种服务器600的结构示意图,该服务器600至少包括网卡610和主板620,网卡610包括主控IC6101、第一端口6102、第二端口6103,主板620包括PLD6201,PLD6201中包括预先构造的寄存器62011,寄存器62011用于存储与主控IC6101连接的通信线缆模块630的固件信息,PLD6201与网卡610通过网卡610的第一端口6102连接,网卡610与通信线缆模块630通过网卡610的第二端口6103连接。
其中,网卡610,用于向PLD6201发送固件信息读取信号,固件信息读取信号用于读取通信线缆模块630的固件信息,固件信息包括支持通信线缆模块630的协议参数;
PLD6201,用于获取固件信息读取信号,响应于固件信息读取信号,将固件信息发送给网卡610。
在一些可能的实施方式中,PLD6201还用于:将固件信息存储在寄存器62011中;
在响应于固件信息读取信号,将固件信息发送给网卡610方面,PLD6201具体用于:
响应于固件信息读取信号,将寄存器62011中的固件信息发送给网卡610。
在一些可能的实施方式中,网卡610的第二端口6103包括在位管脚,在位管脚与PLD6201连接,PLD6201还用于:
根据在位管脚发送的在位信号确定通信线缆模块630的类型;
根据通信线缆模块630的类型和固件信息读取信号确定出寄存器62011。
在一些可能的实施方式中,固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
在一些可能的实施方式中,通信线缆模块630包括DAC线缆的电模块和光纤的光模块中的至少一个。
其中,网卡610执行的各个操作具体可由主控IC6101执行。
需要说明的是,各个操作的实现还可以对应参照图3和图5所示的方法实施例的相应描述,且能达到相同或相似的有益效果。
示例性的,服务器600还可以包括存储器,该存储器包括但不限于随机存取存储介质(Random Access Memory,RAM)、只读存储介质(Read-Only Memory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器用于存储相关计算机程序及数据。
该服务器600中的主控IC6101和PLD6201用于读取上述存储器中存储的一个或多个程序执行上述服务器中的固件信息获取方法中的操作。
应注意,尽管图6所示的服务器600仅仅示出了网卡610的主控IC6101、主板620的PLD6201、PLD6201中的寄存器62011,网卡610中的主控IC6101、第一端口6102、第二端口6103和通信线缆模块630,但是在具体实现过程中,本领域的技术人员应当理解,服务器600还包括实现正常运行所必须的其他器件,比如:处理器、输入输出设备、风扇等。同时,根据具体需要,本领域的技术人员应当理解,服务器600还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,服务器600也可仅仅包括实现本申请实施例所必须的器件,而不必包括上述的全部器件。
请参见图7,图7为本申请实施例提供的一种通信方法的流程示意图,如图7所示,该方法可以包括步骤701-706:
701:网卡向服务器的主板的PLD发送固件信息读取信号,固件信息读取信号用于读取与网卡连接的通信线缆模块的固件信息;
702:PLD接收固件信息读取信号;
703:PLD响应于固件信息读取信号,将固件信息发送给网卡;
704:网卡接收固件信息;
705:网卡根据固件信息获取支持通信线缆模块的协议及协议参数;
706:基于协议及协议参数,网卡通过通信线缆模块向交换节点发送数据。
在一些可能的实施方式中,PLD包括寄存器,在网卡向服务器的主板的PLD发送固件信息读取信号之前,该方法还包括:
PLD将固件信息存储在寄存器中。
在一些可能的实施方式中,PLD响应于固件信息读取信号,将固件信息发送给网卡,包括:
PLD响应于固件信息读取信号,将寄存器中的固件信息发送给网卡。
在一些可能的实施方式中,PLD与网卡通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接,网卡的第二端口包括在位管脚,在位管脚与PLD连接,在PLD向网卡发送固件信息之前,该方法还包括:
PLD根据在位管脚发送的在位信号确定通信线缆模块的类型;
PLD根据通信线缆模块的类型和固件信息读取信号确定出寄存器。
在一些可能的实施方式中,固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
在一些可能的实施方式中,通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
需要说明的是,图7所示的通信方法中各个步骤的实现具体可参见图3和图5所示的方法实施例的相应描述,且能达到相同或相似的有益效果。
请参见图8,图8为本申请实施例提供的另一种服务器800的结构示意图,该服务器800至少包括计算节点810、交换节点820和背板830,其中,计算节点810可以是上述的服务器600,交换节点820可以是交换机。计算节点810包括网卡和主板,主板包括PLD,网卡可以通过通信线缆模块和交换节点820直接相连,也可以通过通信线缆模块和背板830相连,再通过背板830跟交换节点820连接。
其中,网卡,用于向PLD发送固件信息读取信号,固件信息读取信号用于读取与网卡的主控IC连接的通信线缆模块的固件信息;
PLD,用于接收固件信息读取信号,响应于固件信息读取信号,将固件信息发送给网卡;
网卡,还用于接收固件信息,根据固件信息获取通信线缆模块支持的协议及协议参数;基于协议及协议参数,通过通信线缆模块向交换节点820发送数据。
在一些可能的实施方式中,PLD包括寄存器,PLD还用于:将固件信息存储在寄存器中。
在一些可能的实施方式中,在向网卡发送固件信息方面,PLD具体用于:响应于固件信息读取信号,将寄存器中的固件信息发送给网卡。
在一些可能的实施方式中,PLD与网卡通过网卡的第一端口连接,网卡与通信线缆模块通过网卡的第二端口连接,网卡的第二端口包括在位管脚,在位管脚与PLD连接,PLD还用于:
根据在位管脚发送的在位信号确定通信线缆模块的类型;
根据通信线缆模块的类型和固件信息读取信号确定出寄存器。
在一些可能的实施方式中,固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
在一些可能的实施方式中,通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
需要说明的是,各个操作的实现还可以对应参见图7所示的方法实施例的相应描述,且能达到相同或相似的有益效果。
本申请实施例还提供一种计算机可读存储介质(Memory),计算机可读存储介质是服务器600或服务器800中的记忆设备,用于存储用于设备执行的计算机程序,当其在服务器600上运行时,图3和图5所示的方法流程得以实现(或者当其在服务器800上运行时,图7所示的方法流程得以实现)。可以理解的是,此处的计算机可读存储介质既可以包括服务器600中的内置存储介质,当然也可以包括服务器600或服务器800所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了服务器600或服务器800的操作系统。并且,在该存储空间中还存放了适于被网卡和PLD加载并执行的一个或多个计算机程序。需要说明的是,此处的计算机可读存储介质可以是高速RAM,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选地,还可以是至少一个位于远离前述网卡和PLD的计算机可读存储介质。
本申请实施例还提供一种计算机程序产品,当计算机程序产品被设备运行时,图3和图5所示的方法流程得以实现(或者当计算机程序产品被设备运行时,图7所示的方法流程得以实现)。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
应理解,本申请实施例中提及的处理器可以是中央处理器(central processingunit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(Programmable ROM,PROM)、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示例性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种固件信息获取方法,其特征在于,应用于可编程逻辑器件PLD,所述可编程逻辑器件PLD与网卡通过所述网卡的第一端口连接,所述网卡与通信线缆模块通过所述网卡的第二端口连接,所述方法包括:
获取所述网卡发送的固件信息读取信号,所述固件信息读取信号用于读取所述通信线缆模块的固件信息,所述固件信息包括支持所述通信线缆模块的协议参数;
响应于所述固件信息读取信号,将所述固件信息发送给所述网卡。
2.根据权利要求1所述的方法,其特征在于,所述PLD包括寄存器,在获取所述网卡发送的固件信息读取信号之前,所述方法还包括:
将所述固件信息存储在所述寄存器中;
所述响应于所述固件信息读取信号,将所述固件信息发送给所述网卡,包括:
响应于所述固件信息读取信号,将所述寄存器中的所述固件信息发送给所述网卡。
3.根据权利要求2所述的方法,其特征在于,所述网卡的第二端口包括在位管脚,所述在位管脚与所述PLD连接,在响应于所述固件信息读取信号,将所述寄存器中的所述固件信息发送给所述网卡之前,所述方法还包括:
根据所述在位管脚发送的在位信号确定所述通信线缆模块的类型;
根据所述通信线缆模块的类型和所述固件信息读取信号确定出所述寄存器。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
6.一种服务器,其特征在于,包括计算节点、交换节点和背板,所述计算节点包括网卡和主板,所述主板包括PLD,所述网卡通过通信线缆模块与交换节点连接;或者,所述网卡通过所述通信线缆模块与所述背板连接,再通过所述背板与所述交换节点连接;
所述网卡,用于向PLD发送固件信息读取信号,固件信息读取信号用于读取所述通信线缆模块的固件信息;
所述PLD,用于接收所述固件信息读取信号,响应于所述固件信息读取信号,将所述固件信息发送给所述网卡;
所述网卡,还用于接收所述固件信息,根据所述固件信息获取支持所述通信线缆模块的协议参数;基于所述通信线缆模块的协议参数,通过所述通信线缆模块向所述交换节点发送数据。
7.根据权利要求6所述的服务器,其特征在于,所述PLD包括寄存器,所述PLD还用于:
将所述固件信息存储在所述寄存器中;
在响应于所述固件信息读取信号,将所述固件信息发送给所述网卡方面,所述PLD具体用于:
响应于所述固件信息读取信号,将所述寄存器中的所述固件信息发送给所述网卡。
8.根据权利要求7所述的服务器,其特征在于,所述PLD与所述网卡通过所述网卡的第一端口连接,所述网卡与所述通信线缆模块通过所述网卡的第二端口连接,所述网卡的第二端口包括在位管脚,所述在位管脚与所述PLD连接,所述PLD还用于:
根据所述在位管脚发送的在位信号确定所述通信线缆模块的类型;
根据所述通信线缆模块的类型和所述固件信息读取信号确定出所述寄存器。
9.根据权利要求6-8任一项所述的服务器,其特征在于,所述固件信息读取信号通过I2C总线、UART异步通信线或SPI串口通信线传输。
10.根据权利要求6-8任一项所述的服务器,其特征在于,所述通信线缆模块包括DAC线缆的电模块和光纤的光模块中的至少一个。
CN202211213367.2A 2022-09-30 2022-09-30 一种固件信息获取方法及服务器 Pending CN115563040A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211213367.2A CN115563040A (zh) 2022-09-30 2022-09-30 一种固件信息获取方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211213367.2A CN115563040A (zh) 2022-09-30 2022-09-30 一种固件信息获取方法及服务器

Publications (1)

Publication Number Publication Date
CN115563040A true CN115563040A (zh) 2023-01-03

Family

ID=84745150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211213367.2A Pending CN115563040A (zh) 2022-09-30 2022-09-30 一种固件信息获取方法及服务器

Country Status (1)

Country Link
CN (1) CN115563040A (zh)

Similar Documents

Publication Publication Date Title
JP6083672B2 (ja) メモリカードコントローラとそれを備えたホスト機器
US20080034122A1 (en) Apparatus and Method to Detect Miscabling in a Storage Area Network
CN112328440B (zh) 一种硬盘物理位置确定方法和装置
CN112463702B (zh) 一种级联背板的cpld i2c通道地址分配方法及系统
CN106126465A (zh) 一种数据传输方法及装置
US20100036990A1 (en) Network device
CN115563040A (zh) 一种固件信息获取方法及服务器
CN107908418B (zh) 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备
CN116126613A (zh) 一种PCIe设备的位置检测方法、装置、电子设备及存储介质
CN114826542B (zh) 基于异步串行通信的数据传输方法、装置、设备及介质
CN112527715B (zh) 一种服务器多io拓展的自动配置方法及相关设备
CN115827543A (zh) 一种基于FPGA实现eSPI通信方法、系统、设备及介质
CN113138951B (zh) 一种通过sgpio共接多种设备的方法、系统及介质
CN113806273B (zh) 快速周边组件互连数据传输控制系统
CN115129249A (zh) Sas链路拓扑识别管理方法、系统、终端及存储介质
JP4431768B2 (ja) 携帯型電子装置、読み出し方法及び書き込み方法
US20160291987A1 (en) Programmable cable and programming method thereof
JP4291368B2 (ja) メモリバスチェック手順
CN113127395B (zh) 一种服务器主板i2c总线传输装置及方法
CN111159078B (zh) 一种电子设备
CN216014148U (zh) 一种服务器和服务器背板
CN220305791U (zh) 一种转接结构及验证系统
CN114968860B (zh) 高速外围组件互连接口装置以及包括该接口装置的系统
US11657014B2 (en) Signal bridging using an unpopulated processor interconnect
CN111131088B (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