CN117376110B - 交互数据的传输方法、系统及装置、存储介质及电子设备 - Google Patents
交互数据的传输方法、系统及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117376110B CN117376110B CN202311655918.5A CN202311655918A CN117376110B CN 117376110 B CN117376110 B CN 117376110B CN 202311655918 A CN202311655918 A CN 202311655918A CN 117376110 B CN117376110 B CN 117376110B
- Authority
- CN
- China
- Prior art keywords
- command
- data
- designated
- specified
- logic device
- 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
Links
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000005540 biological transmission Effects 0.000 title claims abstract description 47
- 230000003993 interaction Effects 0.000 claims abstract description 297
- 230000001133 acceleration Effects 0.000 claims abstract description 209
- 238000004891 communication Methods 0.000 claims abstract description 127
- 230000004044 response Effects 0.000 claims description 97
- 238000013507 mapping Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 24
- 238000012795 verification Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000013473 artificial intelligence Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 114
- 230000006978 adaptation Effects 0.000 description 30
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000000605 extraction Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0889—Techniques to speed-up the configuration process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种交互数据的传输方法、系统及装置、存储介质及电子设备,其中,上述方法包括:通过目标设备的指定逻辑器件接收目标设备的基板管理控制器通过第一通信接口发送的第一交互命令,其中,第一交互命令用于指示向目标设备的一组加速卡中的指定加速卡发送指定交互类型的交互命令;响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,命令数据集合包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据是与指定加速卡对应的指定交互类型的命令数据;通过指定逻辑器件将目标命令数据转换为第二交互命令,并通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡。
Description
技术领域
本申请实施例涉及固件领域,具体而言,涉及一种交互数据的传输方法、系统及装置、存储介质及电子设备。
背景技术
目前,加速卡可以应用到任何需要提升速度和性能的设备上,例如,服务器、网络设备等等,且一个设备上可以设置多个加速卡,以适配不同的应用需求。由于加速卡的生产厂商众多,为使设备系统兼容不同厂商的加速卡,相关技术中所采用的方式为:通过设备上的BMC(Baseboard Management Controller,基板管理控制器)针对各种加速卡进行单独适配,然而,当管理接口单独适配时,需要编写额外的代码来处理适配逻辑,导致代码复杂性增加,且单独适配会导致重复劳动,增加开发时间和成本,即,单独适配的管理接口存在适配周期长、适配效率低的问题。
发明内容
本申请实施例提供了一种交互数据的传输方法、系统及装置、存储介质及电子设备,以至少解决相关技术中交互数据的传输方法存在由于需要通过BMC针对各种加速卡进行单独适配导致的适配效率低的问题。
根据本申请的一个实施例,提供了一种交互数据的传输方法,应用于目标设备,所述目标设备包括基板管理控制器、指定逻辑器件和一组加速卡,所述基板管理控制器向所述指定逻辑器件发送与所述一组加速卡对应的交互命令所使用的通信接口为第一通信接口,所述指定逻辑器件向所述一组加速卡发送交互命令所使用的通信接口为第二通信接口,其中,所述方法包括:通过所述指定逻辑器件接收所述基板管理控制器通过所述第一通信接口发送的第一交互命令,其中,所述第一交互命令用于指示向所述一组加速卡中的指定加速卡发送指定交互类型的交互命令;响应于所述第一交互命令,通过所述指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,所述命令数据集合包含与所述一组加速卡中的每个加速卡对应的一组命令数据,所述目标命令数据是与所述指定加速卡对应的所述指定交互类型的命令数据;通过所述指定逻辑器件将所述目标命令数据转换为第二交互命令,并通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡。
根据本申请的另一个实施例,提供了一种交互数据的传输系统,包括基板管理控制器、指定逻辑器件和一组加速卡,所述基板管理控制器向所述指定逻辑器件发送与所述一组加速卡对应的交互命令所使用的通信接口为第一通信接口,所述指定逻辑器件向所述一组加速卡发送交互命令所使用的通信接口为第二通信接口,其中,所述基板管理控制器,用于通过所述第一通信接口向所述指定逻辑器件发送第一交互命令,其中,所述第一交互命令用于指示向所述一组加速卡中的指定加速卡发送指定交互类型的交互命令;所述指定逻辑器件,用于接收所述第一交互命令,响应于所述第一交互命令,查询预存的命令数据集合,得到目标命令数据,将所述目标命令数据转换为第二交互命令,并将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡,其中,所述命令数据集合包含与所述一组加速卡中的每个加速卡对应的一组命令数据,所述目标命令数据是与所述指定加速卡对应的所述指定交互类型的命令数据。
根据本申请的又一个实施例,提供了一种交互数据的传输装置,应用于目标设备,所述目标设备包括基板管理控制器、指定逻辑器件和一组加速卡,所述基板管理控制器向所述指定逻辑器件发送与所述一组加速卡对应的交互命令所使用的通信接口为第一通信接口,所述指定逻辑器件向所述一组加速卡发送交互命令所使用的通信接口为第二通信接口,所述装置包括:第一接收单元,用于通过所述指定逻辑器件接收所述基板管理控制器通过所述第一通信接口发送的第一交互命令,其中,所述第一交互命令用于指示向所述一组加速卡中的指定加速卡发送指定交互类型的交互命令;查询单元,用于响应于所述第一交互命令,通过所述指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,所述命令数据集合包含与所述一组加速卡中的每个加速卡对应的一组命令数据,所述目标命令数据是与所述指定加速卡对应的所述指定交互类型的命令数据;第一执行单元,用于通过所述指定逻辑器件将所述目标命令数据转换为第二交互命令,并通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡。
根据本申请实施例的又一个方面,提供了一种计算机可读的存储介质,计算机可读的存储介质包括存储的程序,其中,程序运行时执行上述任一项方法实施例中的步骤。
根据本申请实施例的又一个方面,提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
通过本申请实施例,采用将基板管理控制器与加速卡间进行管理数据交互的、单独适配的管理接口,转换为基板管理控制器与指定逻辑器件之间、指定逻辑器件与一组加速卡之间统一的交互命令接口的方式,基板管理控制器与一组加速卡中的任一加速卡进行交互均可以通过基板管理控制器与指定逻辑器件之间、指定逻辑器件与一组加速卡之间统一的通信接口实现,而不需要将基板管理控制器与一组加速卡中的每一个加速卡进行单独的接口适配。通过指定逻辑器件查询与指定加速卡对应的命令数据,将查询到的命令数据转换后通过指定逻辑器件与加速卡之间的通信接口发送给指定加速卡,可以实现基板管理控制器与指定加速卡之间实现管理数据的交互,基于此,能够缩短基板管理控制器的适配周期,达到快速适配各种形态的加速卡的目的,进而解决相关技术中交互数据的传输方法存在由于需要通过BMC针对各种加速卡进行单独适配导致的适配效率低问题。
附图说明
图1是本申请实施例的一种交互数据的传输方法的服务器设备的硬件结构框图;
图2是根据本申请实施例的一种交互数据的传输方法的流程示意图;
图3是根据本申请实施例的一种交互数据的传输方法的加速卡命令存储格式的示意图;
图4是根据本申请实施例的一种交互数据的传输方法的系统架构的示意图;
图5是根据本申请实施例的另一种交互数据的传输方法的流程示意图;
图6是根据本申请实施例的一种交互数据的传输方法的交互命令的示意图;
图7是根据本申请实施例的一种交互数据的传输装置的结构框图;
图8是本申请实施例提供的一种可选的电子设备的计算机系统的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种交互数据的传输方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的交互数据的传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个NIC(Network Interface Controller,网络适配器),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为RF(Radio Frequency,射频)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种交互数据的传输方法,图2是根据本申请实施例的一种交互数据的传输方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S202,通过指定逻辑器件接收基板管理控制器通过第一通信接口发送的第一交互命令,其中,第一交互命令用于指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令。
本实施例中的交互数据的传输方法可以应用到目标设备中,通过目标设备的基板管理控制器(即,BMC)管理加速卡的场景。BMC是目标设备(例如,服务器)上的一个独立的管理控制器,负责监控和管理目标设备的硬件和运行状态,而加速卡是一种用于提高设备性能的硬件设备,通常用于加速计算、网络处理或存储操作。在一些设备架构(例如,服务器架构)中,BMC可以对加速卡进行监控和管理,以确保其正常运行并提供必要的支持。另一方面,加速卡也可以与BMC进行通信,向其发送状态信息或接收管理命令,这样可以使BMC能够更好地控制目标设备的整体性能和稳定性。
然而,由于不同厂商进行加速卡设计时并未采用统一的管理接口规范,导致各厂商生产的加速卡管理方式差别较大,具体表现为不同厂商所支持获取的信息内容不一致,且获取同一信息的具体协议和命令格式也不相同。这种管理接口的多样性给加速卡在设备系统中的适配应用带来相当大的困难和挑战。
这里,统一的管理接口规范是指在一个系统或平台中,所有的管理接口(包括用户管理、权限管理、数据管理等)都遵循统一的规范和标准。这样做可以确保不同的管理接口之间具有一致的结构和行为,提高系统的稳定性、可维护性和可扩展性。统一的管理接口规范可以规定接口的命名规则、参数格式、返回结果格式、错误处理方式等,以及一些通用的功能,如身份认证、授权验证等。通过统一的管理接口规范,可以简化接口的开发和调用,降低系统的耦合度,提高开发效率和系统的整体质量。
管理接口是指用于管理系统或设备的接口,通过管理接口可以对系统或设备进行配置、监控、维护和管理等操作。管理接口通常提供一组命令、协议或应用程序编程接口,使管理员或管理软件可以与系统或设备进行交互,进行各种管理操作。管理接口可以是物理接口(如串口、网口)或软件接口,具体取决于系统或设备的特点和需求。
为了兼容不同厂商的加速卡,设备厂商的传统做法是通过BMC针对各种加速卡进行单独适配。然而,面对众多的管理接口,该方法适配难度和适配周期很大,且涉及大量的重复性工作,存在由于需要通过BMC针对各种加速卡进行单独适配导致的适配传输效率低的问题。
为了至少部分解决上述问题,在本实施例中,通过在BMC与加速卡单元间引入指定逻辑器件单元,将BMC与加速卡间的管理数据交互转换为BMC与指定逻辑器件单元间统一的交互命令接口,由于BMC与指定逻辑器件间采用的接口为统一接口,因此只需要BMC实现该接口协议,即可间接实现对不同加速卡的管理功能,能够提升BMC侧的固件适配效率。
对于目标设备,目标设备可以包括基板管理控制器、指定逻辑器件和一组加速卡,其中,基板管理控制器向指定逻辑器件发送与一组加速卡对应的交互命令所使用的通信接口为第一通信接口,指定逻辑器件向一组加速卡发送交互命令所使用的通信接口为第二通信接口。在BMC需要与一组加速卡的指定加速卡进行交互时,BMC可以通过第一通信接口向指定逻辑器件发送第一交互命令,指定逻辑器件可以接收BMC通过第一通信接口发送的第一交互命令。这里,第一交互命令可以用于指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令,指定交互类型可以包括但不限于固件版本获取命令、温度获取命令、功耗获取命令、厂商信息获取命令等,用于获取加速卡的固件版本、温度、功耗和厂商信息等等。
可选地,第一交互命令中可以携带指定逻辑器件的地址,为了与一组加速卡中的指定加速卡进行指定交互类型的数据交互,还可以在第一交互命令中携带指定加速卡的标识信息,以及指定交互类型的指示信息等等,用于指示指定加速卡以及指定交互类型。
步骤S204,响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,命令数据集合包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据是与指定加速卡对应的指定交互类型的命令数据。
接收到第一交互命令之后,指定逻辑器件可以响应于第一交互命令,查询预存的命令数据集合,得到目标命令数据,这里,命令数据集合可以是存储在目标设备的存储器上的,例如,ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)等等。命令数据集合可以包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据可以是与指定加速卡对应的指定交互类型的命令数据,目标命令数据中可以包括但不限于各个厂商定义的不同加速卡对应的不同交互类型的命令数据,每个加速卡可以对应多种交互类型,不同加速卡针对同一交互类型的命令数据可以是相同的,也可以是不同的,本实施例中对此不做限定。
可选地,查询目标命令数据可以是基于第一交互命令中携带的指定加速卡以及指定交互类型的指示信息实现的。
步骤S206,通过指定逻辑器件将目标命令数据转换为第二交互命令,并通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡。
在通过指定逻辑器件查询到目标命令数据的情况下,可以通过指定逻辑器件将目标命令数据转换为第二交互命令,并通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡,第二交互命令可以是符合第二通信接口的通信协议格式的命令。
可选地,为了让指定加速卡“知道”第二交互命令是发送给“自己”的,第二交互命令中可以携带用于标识指定加速卡的标识信息,例如,指定加速卡的地址信息等。
通过本申请提供的实施例的上述步骤,通过指定逻辑器件接收基板管理控制器通过第一通信接口发送的第一交互命令,其中,第一交互命令用于指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令;响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,命令数据集合包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据是与指定加速卡对应的指定交互类型的命令数据;通过指定逻辑器件将目标命令数据转换为第二交互命令,并通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡,解决了相关技术中交互数据的传输方法存在由于需要通过BMC针对各种加速卡进行单独适配导致的适配效率低的问题,提高了加速卡适配的效率。
在一个示例性实施例中,响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,包括:
S11,响应于第一交互命令,通过指定逻辑器件从第一交互命令中提取出指定加速卡的加速卡标识和指定命令码,其中,指定命令码用于标识指定交互类型;
S12,通过指定逻辑器件基于指定加速卡的加速卡标识和指定命令码查询预存的命令数据集合,得到目标命令数据。
为了标识交互类型,可以引入命令码,在本实施例中,可以在第一交互命令中携带指定加速卡的加速卡标识和指定命令码,指定命令码可以用于标识指定交互类型。在指定逻辑器件接收到第一交互命令之后,可以通过指定逻辑器件从第一交互命令中提取出指定加速卡的加速卡标识和指定命令码,通过指定逻辑器件基于指定加速卡的加速卡标识和指定命令码查询预存的命令数据集合,得到目标命令数据。
这里,与前述实施例类似的,命令数据集合中可以包括与不同加速卡的不同交互类型对应的、厂商设计的命令数据。加速卡标识可以包括但不限于以下至少之一:加速卡的卡编号、加速卡的地址信息。指定命令码可以是BMC与指定逻辑器件之间用于标识指定交互类型的命令码,其可以是与指定交互类型对应的,不同加速卡的指定交互类型的指定命令码相同,也可以是与指定加速卡的指定交互类型对应的,不同加速卡的同一指定交互类型的命令码可以是不同的,本实施例中对此不做限定。
例如,在本实施例中,不同加速卡的指定交互类型的指定命令码可以是相同的,命令码与交互类型对应的。其中,一种可行的命令码定义方式可以如表1所示。
表1
其中,以指定加速卡为加速卡2,指定交互类型为获取固件版本为例,第一交互命令中可以携带指定加速卡的加速卡标识和指定命令码,通过指定逻辑器件从第一交互命令中提取出加速卡2的加速卡标识和指定命令码“0x01”,通过指定逻辑器件基于加速卡2的加速卡标识和指定命令码“0x01”查询预存的命令数据集合,可以得到厂商设置的、与加速卡2对应的固件版本获取的命令数据。
需要说明的是,在本实施例中,BMC与指定逻辑器件之间的交互命令只需要定义固定的命令码,即可采用标准的I2C(Inter-Integrated Circuit,内部集成电路,是一种简单、双向二线制同步串行总线)读写命令进行传输。
通过本实施例,通过命令码标识交互类型,通过统一接口格式定义BMC单元与指定逻辑器件进行交互的统一命令格式,可以提高与指定加速卡对应的指定交互类型的、厂商定义的命令数据的获取效率。
在一个示例性实施例中,通过指定逻辑器件基于指定加速卡的加速卡标识和指定命令码查询预存的命令数据集合,得到目标命令数据,包括:
S21,通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码查询地址映射表,得到第一存储位置信息,其中,第一存储位置信息用于指示与指定加速卡对应的指定交互类型的命令数据的存储位置,地址映射表用于存储加速卡标识和命令码的组合与对应的命令数据的存储位置之间的映射关系;
S22,通过指定逻辑器件从第一存储位置信息所指示的存储位置中提取出目标命令数据。
与前述实施例类似的,命令数据集合包括与一组加速卡的至少部分加速卡对应的不同交互类型的、厂商设计的命令数据,为了基于指定加速卡的加速卡标识和指定命令码查找到目标命令数据,可以引入地址映射表,这里,在指定命令码是仅与指定交互类型对应的情况下,地址映射表可以用于存储加速卡标识和命令码的组合与对应的命令数据的存储位置之间的映射关系,在指定命令码是与指定加速卡的指定交互类型对应的情况下,地址映射表可以用于存储命令码与对应的命令数据的存储位置之间的映射关系,即,地址映射表可以用于指示不同加速卡的不同交互类型的命令数据与命令数据的存储位置之间的映射关系。
在本实施例中,第一存储位置信息可以用于指示与指定加速卡对应的指定交互类型的命令数据的存储位置,通过指定逻辑器件可以从第一存储位置信息所指示的存储位置中提取出目标命令数据。
这里,目标命令数据的存储位置信息可以是包括目标命令数据的起始位置和结束位置的指示信息,也可以是包括目标命令数据的起始位置和数据长度的指示信息,还可以是其他用于指示目标命令数据存储位置的指示信息,本实施例中对此不做限定。
例如,在一个示例性实施例中,以目标命令数据的存储位置信息包括目标命令数据的起始位置和数据长度的指示信息为例,通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码查询地址映射表,得到第一存储位置信息,包括:
S31,通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码查询地址映射表,得到第一起始位置信息和第一数据长度信息,其中,第一起始位置信息用于指示与指定加速卡对应的指定交互类型的命令数据的起始存储位置,第一数据长度信息用于指示与指定加速卡对应的指定交互类型的命令数据的数据长度,第一存储位置信息包括第一起始位置信息和第一数据长度信息。
通过本实施例,通过地址映射表存储与不同加速卡的不同交互类型对应的、厂商设计的命令数据与命令数据的位置信息对应的映射关系,可以提高命令数据的获取效率。
在一个示例性实施例中,命令数据集合中的每个命令数据分别通过指定数据结构集合中的一个指定数据结构存储,指定数据结构集合中的每个指定数据结构均包括数据头和数据体,数据头包含用于存储对应的命令数据的存储位置的存储位置字段、用于存储对应的加速卡的加速卡标识的加速卡标识字段以及用于存储对应的命令码的命令码字段,数据体用于存储对应的命令数据。
对应地,通过指定逻辑器件基于指定加速卡的加速卡标识和指定命令码查询预存的命令数据集合,得到目标命令数据,包括:
S41,通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码依次查询每个指定数据结构的数据头的加速卡标识字段和命令码字段;
S42,在查找到目标数据结构的情况下,通过指定逻辑器件从目标数据结构的数据头的存储位置字段中提取出第二存储位置信息,其中,目标数据结构的数据头的加速卡标识字段中存储的加速度卡标识与指定加速卡的加速卡标识相同,目标数据结构的数据头的命令码字段中存储的命令码与指定命令码相同,第二存储位置信息用于指示与目标数据结构所存储的命令数据的存储位置;
S43,通过指定逻辑器件从第二存储位置信息所指示的存储位置中提取出目标数据结构的数据体内提取出目标命令数据。
在本实施例中,可以以特定格式将不同厂商的加速卡的管理接口命令存储于命令数据集合中,可选地,命令数据集合中的每个命令数据可以分别通过指定数据结构集合中的一个指定数据结构存储,指定数据结构集合中的每个指定数据结构均包括数据头和数据体。
例如,以一组加速卡的数量为N为例,N个加速卡的命令在命令数据集合中按顺序依次存储,其中的一种存储方案为加速卡1的命令存储于存储器的0地址,其余加速卡的命令按照命令占据的空间依次存储于后续地址中。每个加速卡的命令包含两部分,分别为数据头Header和数据体Payload。
下面分别介绍这两部分的数据格式:
Header部分为命令头部,用于描述命令的具体属性,它是每个加速卡命令存储的通用部分,包括用于存储对应的命令数据的存储位置的存储位置字段、用于存储对应的加速卡的加速卡标识的加速卡标识字段以及用于存储对应的命令码的命令码字段,这里,命令数据的存储位置、加速卡标识、命令码可以与前述实施例类似,在此不做赘述。
Payload部分为命令的具体存储格式,依赖于加速卡厂商定义的命令格式,与厂商保持一致即可。
在上述命令数据集合的存储格式下,为了查询到目标命令数据,可以通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码依次查询每个指定数据结构的数据头的加速卡标识字段和命令码字段。在匹配到与指定加速卡的加速卡标识相同的、指定数据结构的数据头的加速卡标识字段中存储的加速度卡标识,与指定命令码相同的、指定数据结构的数据头的命令码字段中存储的命令码的情况下,可以确定该指定数据结构为目标数据结构。
可选地,指定数据结构中可以是以命令编号的形式对应不同的交互类型的指定命令码,例如,通过命令映射表表示指定命令码与指定加速卡对应的命令编号的对应关系,通过查询命令映射表可以确定指定加速卡及其对应的命令编号,通过匹配指定数据结构的数据头的加速卡标识字段中存储的加速度卡标识以及命令编号,也可以确定目标数据结构,这里,不同加速卡针对同一交互类型的命令编号可以是相同的。在指定命令码是与一组加速卡的不同加速卡的不同交互类型对应的情况下,即,不同加速卡针对同一交互类型的指定命令码不同的情况下,指定数据结构的数据头部分可以仅包含命令码或者与命令码对应的命令编号,这里,不同加速卡针对同一交互类型的命令编号是不同的。
需要说明的是,上述方法仅作为示例,在本实施例中,也可以采用其他可以唯一定位目标加速卡的目标交互类型的、厂商设计的命令数据的方式。
在查找到目标数据结构的情况下,可以通过指定逻辑器件从目标数据结构的数据头的存储位置字段中提取出第二存储位置信息,这里,第二存储位置信息可以用于指示与目标数据结构所存储的命令数据的存储位置,通过指定逻辑器件从第二存储位置信息所指示的存储位置中提取出目标数据结构的数据体内提取出目标命令数据。与第一存储位置信息类似的,第二存储位置信息可以是包括目标命令数据的起始位置和结束位置的指示信息,也可以是包括目标命令数据的起始位置和数据长度的指示信息,还可以是其他用于指示目标命令数据存储位置的指示信息,本实施例中对此不做限定。
可选地,在一个示例性实施例中,第二存储位置信息包括目标命令数据的起始位置和数据长度的指示信息为例,存储位置字段可以包含用于存储对应的命令数据的起始存储位置的起始位置字段以及用于存储对应的命令数据的数据长度的数据长度字段。
对应地,在查找到目标数据结构的情况下,通过指定逻辑器件从目标数据结构的数据头的存储位置字段中提取出第二存储位置信息,包括:
S51,在查找到目标数据结构的情况下,通过指定逻辑器件从目标数据结构的数据头的起始位置字段中提取出第二起始位置信息以及从数据长度字段中提取出第二数据长度信息,其中,第二起始位置信息用于指示与目标数据结构对应的命令数据的起始存储位置,第二数据长度信息用于指示与目标数据结构对应的命令数据的数据长度,第二存储位置信息包括第二起始位置信息和第二数据长度信息。
例如,在本实施例中,数据头Header部分可以包括起始位置字段Signature、卡编号字段Card Index、命令编号字段Cmd Index和数据长度字段Payload Length四个字段。其中Signature为固定的2个字节(0x55 0xAA),用于标识命令的起始位置;Card Index为系统中加速卡的编号,占用1个字节,可描述256个加速卡;Cmd Index为加速卡的命令编号,占用1个字节,可定义256个命令;最后的字段为Payload Length,用于描述数据体Payload部分的字节长度,占用1个字节。
通过本实施例,通过统一的数据结构以特定格式存储不同厂商的加速卡的管理接口命令,可以提高数据处理的效率,方便数据的查询,降低数据处理的复杂度和时间成本。
在一个示例性实施例中,每个指定数据结构还包括校验数据部分,校验数据部分用于存储对应的命令数据的校验数据;上述方法还包括:
S61,在查找到目标数据结构的情况下,通过指定逻辑器件从目标数据结构的校验数据部分中提取出第一校验数据;
S62,通过指定逻辑器件使用第一校验数据对目标命令数据进行校验。
为了提高数据的安全性和可靠性,可以在指定数据结构中加入校验数据部分,用于存储对应的命令数据的校验数据。例如,如图3所示,为一种可选的命令数据集合中的加速卡命令的存储格式。CRC部分为命令的校验部分,参与校验的数据可以起始于Header部分的Card Index,结束于Payload的最后一个字节。
在查找到目标数据结构的情况下,可以通过指定逻辑器件从目标数据结构的校验数据部分中提取出第一校验数据,通过指定逻辑器件使用第一校验数据对目标命令数据进行校验,在校验通过的情况下,将目标命令数据转换为第二交互命令,否则,将数据丢弃、进行报错,或者重新校验。
通过本实施例,通过校验数据部分验证数据结构中的目标命令数据是否有效、完整和正确,可以保障数据的质量和安全,提高数据的可靠性和可用性。
在一个示例性实施例中,响应于第一交互命令,通过指定逻辑器件从第一交互命令中提取出指定加速卡的加速卡标识和指定命令码,包括:
S71,响应于第一交互命令,通过指定逻辑器件从第一交互命令中提取出指定加速卡的加速卡编号和指定命令码,其中,指定加速卡的加速卡标识包括指定加速卡的加速卡编号,指定命令码属于一组预设命令码,指定交互类型属于一组预设交互类型,一组预设命令码中的预设命令码与一组预设交互类型中的预设交互类型一一对应,与一组加速卡中不同的加速卡对应的相同交互类型的命令数据的预设命令码是相同的。
在本实施例中,以第一交互命令中携带的加速卡标识为加速卡编号、不同加速卡对应的相同交互类型的命令数据的命令码是相同的为例,通过指定逻辑器件可以从第一交互命令中提取出指定加速卡的加速卡编号和指定命令码,指定命令码属于一组预设命令码,指定交互类型属于一组预设交互类型,一组预设命令码中的预设命令码与一组预设交互类型中的预设交互类型一一对应。可选地,预设交互类型可以但不限于是固件版本获取、温度获取、功耗获取和厂商信息获取等。
通过本实施例,以统一的命令码标识不同加速卡的同一交互类型,可以简化命令码集合的体量,提高数据传输的效率。
在一个示例性实施例中,在通过指定逻辑器件基于指定加速卡的加速卡标识和指定命令码查询预存的命令数据集合之前,上述方法还包括:
S81,通过指定逻辑器件使用指定命令码查找与指定加速卡的加速卡编号对应的命令码映射表,并将指定命令码更新为查找到的命令码,得到更新后的指定命令码,其中,命令码映射表用于存储一组预设命令码中的每个预设命令码和为指定加速卡配置的命令码之间的映射关系。
在第一交互命令中携带的指定命令码为与交互类型对应的情况下,即,不同加速卡针对同一交互类型的指定命令码相同的情况下,可以基于命令码映射表查找指定加速卡的加速卡编号对应的命令码,得到更新后的指定命令码,更新后的命令码是与指定加速卡对应的指定交互类型的命令码,即,不同加速卡针对同一交互类型的、更新后的命令码可以是不同的,命令码映射表用于存储一组预设命令码中的每个预设命令码和为指定加速卡配置的命令码之间的映射关系。
在一个示例性实施例中,在通过指定逻辑器件将目标命令数据转换为第二交互命令之前,上述方法还包括:
S91,通过指定逻辑器件从预存的与命令数据集合中的每个命令数据的校验数据中获取目标命令数据的第二校验数据;
S92,通过指定逻辑器件使用第二校验数据对目标命令数据进行校验。
在本实施例中,预存的命令数据集合中可以包括目标命令数据的校验数据部分,在基于地址映射表查找到目标命令数据的情况下,可以基于地址映射表指示与目标命令数据对应的校验数据部分的存储位置信息,也可以预设目标命令数据与对应的校验数据部分对应的位置关系,可选地,可以预先设置校验数据部分的起始位置和结束位置,或者起始位置和数据长度,例如,设置校验数据部分位于命令数据之后,命令数据最后一位的下一位即为校验数据部分的起始位置等等。通过指定逻辑器件从预存的与命令数据集合中的每个命令数据的校验数据中获取目标命令数据的第二校验数据。
或者,在命令数据集合中以包含数据头、数据体、校验数据三部分的指定数据结构存储数据的情况下,通过指定逻辑器件从预存的与命令数据集合中的每个命令数据的校验数据中获取目标命令数据的第二校验数据。
通过指定逻辑器件使用第二校验数据对目标命令数据进行校验,在目标命令数据校验通过的情况下将目标命令数据转换为第二交互命令。
通过本实施例,通过校验数据部分验证命令数据集合中的目标命令数据是否有效、完整和正确,可以保障数据的质量和安全,提高数据的可靠性和可用性。
在一个示例性实施例中,响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,包括:
S101,响应于第一交互命令,通过指定逻辑器件查询目标设备的带电可擦写编程只读存储器中预存的命令数据集合,得到目标命令数据。
在本实施例中,命令数据集合可以存储在目标设备的EEPROM(ElectricallyErasable Programmable read only memory,带电可擦写编程只读存储器)中,例如,利用服务器主板上的片外EEPROM,以特定格式将不同厂商的加速卡的管理接口命令存储于EEPROM中,指定逻辑器件收到来自BMC的第一交互命令后查询上述EEPROM中的发向加速卡的命令,得到目标命令数据。
这里,片外EEPROM是一种外部存储器,用于存储非易失性数据,可以通过电子擦除和编程操作来修改存储的数据。与片内EEPROM相比,片外EEPROM通常具有更大的存储容量,可以存储更多的数据。它通常与微控制器或其他电子设备配合使用,用于存储配置信息、校准数据、用户设置等不易丢失的数据。片外EEPROM通常通过I2C或SPI等串行接口与主控设备进行通信。它可以被读取和写入,允许数据的修改和更新。
通过本实施例,通过EEPROM存储命令数据集合,由于其非易失性特性,存储在EEPROM中的数据可以在断电或重启后仍然保持,可以确保数据的安全性和持久性。
在一个示例性实施例中,通过指定逻辑器件接收基板管理控制器通过第一通信接口发送的第一交互命令,包括:
S111,通过指定逻辑器件接收基板管理控制器通过第一通信接口经由第一通信总线发送的第一交互命令,其中,第一通信接口为内部集成电路I2C接口,第一通信总线为I2C总线。
在本实施例中,当BMC需要与某个加速卡进行交互从而实现对其管理时,BMC首先通过I2C发命令给指定逻辑器件。例如,BMC单元内部具有控制核心(Core),通常是Arm处理器,其上运行BMC的管理系统,如Linux系统,BMC对加速卡的管理业务需要由系统中的应用程序负责,并最终通过BMC I2C实现数据收发。BMC I2C(主控制器)经I2C总线连接至指定逻辑器件 I2C1(从控制器),实现与指定逻辑器件进行数据交互。
通过本实施例,通过指定逻辑器件与基板管理控制器之间统一的I2C通信接口实现指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令的传输,可以避免基板管理控制器与一组加速卡中的每个加速卡进行单独的接口适配,提升BMC侧的固件适配效率,有效节省加速卡适配的人力投入成本,提升加速卡的应用落地速度,进一步降低设备成本。
在一个示例性实施例中,通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡,包括:
S121,通过指定逻辑器件将第二交互命令通过第二通信接口经由第二通信总线发送给指定加速卡,其中,第二通信接口为内部集成电路I2C接口,第二通信总线为I2C总线。
例如,在本实施例中,指定逻辑器件收到来自BMC的命令后查询预存的命令数据集合中,得到目标命令数据,将目标命令数据转换为发向指定加速卡的命令后,将该命令经由I2C总线发给对应的加速卡。即,将目标命令数据转换为与指定加速卡兼容的、符合I2C通信协议格式的命令,并通过I2C接口将转换后的命令发送给一组加速卡。
在一个示例性实施例中,响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,包括:
S131,响应于第一交互命令,通过指定逻辑器件将数据查询命令通过第二通信总线发送给指定存储器,并通过第二通信总线接收指定存储器返回的目标命令数据,其中,指定存储器中预存有命令数据集合,数据查询命令用于查询与指定加速卡对应的指定交互类型的命令数据。
在本实施例中,指定逻辑器件与指定存储器之间和指定逻辑器件与一组加速卡之间可以通过同一通信总线进行数据传输的。例如,指定逻辑器件可以通过I2C接口连接到I2C总线,实现指定逻辑器件与一组加速卡及指定存储器的数据传输。响应于第一交互命令,通过指定逻辑器件可以将数据查询命令通过第二通信总线发送给指定存储器,并通过第二通信总线接收指定存储器返回的目标命令数据,其中,指定存储器中预存有命令数据集合,数据查询命令用于查询与指定加速卡对应的指定交互类型的命令数据。
在一个示例性实施例中,第二交互命令中携带有指定加速卡的加速卡地址。对应地,在通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡之后,该方法还包括:
S141,通过指定加速卡经由指定加速卡的I2C接口从第二通信总线接收第二交互命令,并提取出第二交互命令中携带的加速卡地址;
S142,在确定第二交互命令中携带的加速卡地址与指定加速卡的加速卡地址相同的情况下,通过指定加速卡从第二交互命令中提取出目标命令数据;
S143,响应于目标命令数据,通过指定加速卡将目标命令数据的第一响应数据转换为第一响应命令,并通过指定加速卡的I2C接口将第一响应命令经由第二通信总线发送给指定逻辑器件,以由指定逻辑器件将第一响应命令中携带的第一响应数据发送给基板管理控制器。
为了帮助交互双方确认彼此的身份和位置,确保信息和指令发送到正确的设备上,增加交互的准确性和安全性,可以在第二交互命令中携带有指定加速卡的加速卡地址,这里,指定加速卡的加速卡地址可以是BMC发送给指定逻辑器件的第一交互命令中携带的,进而携带在第二交互命令中的,也可以是指定存储器上存储的一组加速卡的加速卡标识与加速卡的地址信息的对应关系获得的,进而携带在第二交互命令中的,还可以是其他的获取方式,本实施例中对此不做限定。
例如,在本实施例中,一组加速卡中的各加速卡通过自己的通信接口(例如,I2C接口)接收来自指定逻辑器件的命令,通过地址对比决定是否是发给自己的命令,如果地址信息与自己匹配,则响应该命令,否则不响应。与第二交互命令中携带的地址信息匹配的指定加速卡从第二交互命令中提取出目标命令数据,响应于目标命令数据,通过指定加速卡将目标命令数据的第一响应数据转换为第一响应命令,并通过指定加速卡的I2C接口将第一响应命令经由第二通信总线发送给指定逻辑器件,以由指定逻辑器件将第一响应命令中携带的第一响应数据发送给基板管理控制器。
通过本实施例,通过在指定逻辑器件与一组加速卡的交互命令中携带一组加速卡中的指定加速卡的地址信息,可以提高交互的效率和可靠性。
在一个示例性实施例中,在通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡之后,上述方法还包括:
S151,通过指定逻辑器件接收指定加速卡响应于第二交互命令所返回的第二响应命令;
S152,响应于第二响应命令,通过指定逻辑器件对第二响应命令进行命令解析,得到第二响应数据;
S153,通过指定逻辑器件将第二响应数据传输给基板管理控制器。
指定逻辑器件内部需要一些逻辑实现命令的处理,包括命令接收解析模块等等,例如,在本实施例中,指定逻辑器件接收来自指定加速卡的响应命令,可以通过命令接收与解析模块对响应命令进行解析,获取指定加速卡的指定交互类型对应的响应数据,再通过指定逻辑器件将响应数据传输给基板管理控制器。
在一个示例性实施例中,通过指定逻辑器件将第二响应数据传输给基板管理控制器,包括:
S161,通过指定逻辑器件设置指定逻辑器件与基板管理控制器之间的通用输入输出接口的状态,以通过通用输入输出接口的状态变化通知基板管理控制器存在待获取的响应数据;
S162,通过指定逻辑器件接收基板管理控制器发送的响应数据获取命令,其中,响应数据获取命令用于获取发送给基板管理控制器的响应数据;
S163,响应于响应数据获取命令,通过指定逻辑器件将第二响应数据发送给基板管理控制器。
例如,指定逻辑器件通过设置指定逻辑器件与基板管理控制器之间的通用输入输出接口GPIO(General Purpose Input/Output,通用输入输出接口)状态变化通知BMC响应命令已完成解析。BMC通过BMC I2C发送获取响应数据命令至指定逻辑器件,指定逻辑器件接收来自BMC的命令,将解析后的数据通过命令响应模块转换后发送至BMC。
通过本实施例,通过指定逻辑器件设置GPIO状态变化通知BMC单元响应命令已完成解析,不需要复杂的通信协议和硬件支持,简单易实现,且GPIO状态变化可以实时响应,可以实现实时通信和控制。
在一个示例性实施例中,在通过指定逻辑器件设置指定逻辑器件与基板管理控制器之间的通用输入输出接口的状态之后,上述方法还包括:
S171,通过基板管理控制器检测通用输入输出接口的状态,基于检测到的通用输入输出接口的状态触发通用输入输出接口中断,并向指定逻辑器件发送响应数据获取命令。
在本实施例中,BMC单元可以检测通用输入输出接口的状态,在检测到状态变化的情况下,BMC单元可以触发BMC单元内部的GPIO中断,通过BMC I2C发送获取响应数据命令至指定逻辑器件。
这里,获取响应数据命令的控制命令的命令码可以是0xFF,控制命令指获取响应数据命令,主要用于控制BMC单元与指定逻辑器件间的数据传输,该命令的具体用法为:BMC单元触发GPIO中断后,发送该命令告知指定逻辑器件发送响应数据给BMC。
通过本实施例,触发的GPIO中断可以用于在特定条件发生时立即通知处理器,以便执行相应的处理程序。这种机制可以让处理器在执行其他任务的同时等待特定事件的发生,从而提高系统的响应速度和效率。
在一个示例性实施例中,指定逻辑器件为复杂可编程逻辑器件,一组加速卡均为人工智能加速卡;指定交互类型的交互命令为以下之一的命令:固件版本获取命令,温度获取命令,功耗获取命令,厂商信息获取命令。
在本实施例中,指定逻辑器件可以为CPLD(Complex Programmable LogicDevice,复杂可编辑逻辑器件),一组加速卡可以均为人工智能AI加速卡为例,结合图4,单CPU多个AI加速卡的系统架构可分为五部分,即:BMC单元、CPLD单元、配置单元、AI加速单元和CPU单元。下面对各部分的连接关系进行详细说明。
首先,BMC通过BMC I2C实现数据收发。BMC I2C(主控制器)经I2C总线连接至CPLDI2C1(从控制器),实现与CPLD进行数据交互。另外,BMC单元与CPLD单元间通过GPIO实现中断信号传递。
CPLD单元一方面通过CPLD I2C1及GPIO与BMC单元进行数据交互,另一方面通过CPLD I2C2(主控制器)连接到I2C Bus(I2C总线),实现CPLD与AI加速单元及配置单元的数据传输。另外,为了实现对不同AI加速卡的兼容,CPLD内部需要一些逻辑实现命令的处理,包括命令查询模块、命令发送模块、命令接收解析模块和命令响应模块等。
配置单元为EEPROM芯片,通过I2C总线连接至CPLD单元,负责不同AI加速卡的命令存储。
AI加速单元包含多个AI加速卡,如图4中的AI加速卡1至AI加速卡N,这些加速卡可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)、SOC(System-on-a-Chip,片上系统)或ASIC(Application-Specific Integrated Circuit,专用集成电路)架构中的任一种。由图4可知,每个AI加速卡一方面通过PCIe(Peripheral ComponentInterconnect Express,外围组件互连快速通道)通道连接至CPU,另一方面通过I2C(从控制器)连接至I2C Bus,进而实现与CPLD间进行加速卡管理信息的交互。
CPU单元为计算单元,负责系统的管理和逻辑运算等操作,通过PCIe通道与AI加速单元连接。它通过与AI加速单元协作达到显著提升系统计算速度的目标。
设备系统为了兼容不同厂商的加速卡,通常采用的方式为:通过BMC单元针对各种加速卡进行单独适配。而在本实施例中,通过如图4所示的系统架构,BMC与各个加速卡单独适配的多个管理接口可以转换为BMC与CPLD之间、CPLD与一组AI加速卡之间统一的交互命令接口,即,BMC单元与CPLD单元之间通过I2C接口基于统一的交互命令格式进行数据交互,以将BMC单元需要进行管理数据交互的指定加速卡的标识信息以及交互类型以统一的交互命令格式发送给CPLD单元,CPLD单元通过I2C总线查询对应的、在EEPROM芯片中预存的厂商定义的命令数据,并将查询到的命令数据转换为符合I2C通信协议的命令格式,以通过I2C总线将符合I2C通信协议的命令格式的交互命令发送给一组AI加速卡,由于BMC与CPLD之间、CPLD与一组AI加速卡之间均采用统一的交互命令接口,不需要BMC与各个加速卡进行单独适配,可以解决相关技术中的交互数据的传输方法存在由于需要通过BMC针对各种加速卡进行单独适配导致的适配效率低的问题。
在一个示例性实施例中,以BMC获取AI加速卡2的固件版本信息、指定逻辑器件为CPLD、指定存储器为片外EEPROM为例,对本实施例所提服务器的AI加速卡的管理方法进行解释说明。
由于不同厂商进行AI加速卡设计时并未采用统一的管理接口规范,导致各厂商生产的加速卡管理方式差别较大,具体表现为不同厂商所支持获取的信息内容不一致,且获取同一信息的具体协议和命令格式也不相同。这种管理接口的多样性给人工智能加速卡在服务器系统中的适配应用带来相当的困难和挑战。系统为了兼容不同厂商的加速卡,服务器厂商的传统做法是通过BMC管理单元针对各种加速卡进行单独适配。显然,面对众多的管理接口该方法适配难度和适配周期很大,且涉及大量的重复性工作;另外,通常BMC管理单元涉及的功能庞大,代码逻辑复杂,增加大量加速卡的管理适配无疑会导致代码调试难度的急剧上升,严重时会影响整个服务器产品的落地效率。基于此,亟需寻找一种加速卡的高效管理方法,提升AI加速卡的应用落地速度,为各种AI技术的快速应用提供坚实保障。
为了解决上述提及的问题,本实施例中提供了一种服务器中AI加速卡的高效管理方法。该方法的实现原理为:利用服务器主板上的片外EEPROM,以特定格式将不同厂商的AI加速卡的管理接口命令存储于EEPROM中,当BMC需要与某个AI加速卡进行交互从而实现对其管理时,BMC首先通过I2C发命令给CPLD,CPLD收到来自BMC的命令后查询上述EEPROM中的发向AI加速卡的命令,并将该命令通过I2C总线发给对应的加速卡。当AI加速卡响应时,对应的响应数据首先通过I2C发给CPLD,CPLD通过查询EEPROM中对应的响应数据格式对数据进行解析,然后通过GPIO接口以中断的形式通知BMC,BMC收到中断信号后,通过I2C总线读取对应的数据,最终实现BMC对AI加速卡的管理。其中,上述CPLD与BMC间采取统一的接口协议。
在本实施例中,利用CPLD配合外部EEPROM完成对不同AI加速卡管理接口的兼容,基于EEPROM通过设计统一的存储格式实现不同加速卡的命令存储,再配合少量的CPLD逻辑即可实现对不同加速卡管理命令的查询与解析,该方法具有高效和拓展性强的特点。此外,所提方法BMC与CPLD间采用的接口为统一接口,因此只需要BMC实现该接口协议,即可间接实现对不同AI加速卡的管理功能,能够大大提升BMC侧的固件适配效率,显著提升AI加速卡的应用落地速度。
图5为本申请实施例的交互数据的传输方法的工作流程,具体可分为以下步骤:
步骤1,BMC单元通过BMC I2C发送获取AI加速卡2的固件版本信息命令,该命令由BMC单元发向CPLD单元,本申请实施例将BMC单元与CPLD单元交互的命令设计为统一的命令格式,以减小BMC应对不同AI加速卡时的代码适配难度。
统一接口格式定义了BMC单元与CPLD单元进行交互的统一命令格式。BMC单元与CPLD单元交互的命令如图6所示,包括通用命令与控制命令。其中通用命令主要用于BMC单元对AI加速卡进行管理,具体包括:固件版本获取命令、温度获取命令、功耗获取命令和厂商信息获取命令等;控制命令指获取响应数据命令,主要用于控制BMC单元与CPLD单元间的数据传输,该命令的具体用法为:BMC单元触发GPIO中断后,发送该命令告知CPLD单元发送响应数据给BMC。上述定义的交互命令只需要定义固定的命令码,即可采用标准的I2C读写命令进行传输。
需要说明的是,BMC单元与CPLD单元间的交互命令不止包含上述提到的几种,具体应用时可根据需要灵活扩展,只需通过命令码进行区分即可。
步骤2,CPLD单元通过CPLD I2C1接收来自BMC单元的命令,并通过命令查询模块由CPLD I2C2读取存储于配置单元的EEPROM中的对应命令数据。这里,BMC、CPLD和EEPROM三者间维护同一个映射表,BMC发送某个命令给CPLD时,通过CPLD映射最终转换为EEPROM中的AI加速卡的编号(Card Index)与命令编号(Cmd Index)信息,EEPROM中具体的命令存储格式可以如图3所示,N个加速卡的命令在EEPROM中按顺序依次存储,其中的一种存储方案为AI加速卡1的命令存储于EEPROM的0地址,其余加速卡的命令按照命令占据的空间依次存储于后续地址中。
步骤3,配置单元的EEPROM返回命令数据给CPLD单元。
步骤4,CPLD单元基于接收到的返回命令数据,通过命令发送模块将其转换为与AI加速卡2兼容的命令,并通过CPLD I2C2将转换后的命令发送至AI加速单元。
步骤5,AI加速单元的各AI加速卡通过自己的I2C接口接收来到CPLD单元的命令,通过地址对比决定是否是发给自己的命令,如果地址信息与自己匹配,则响应该命令,否则不响应。
步骤6,AI加速卡2响应CPLD单元的命令,并发送响应数据包至CPLD单元。
步骤7,CPLD单元通过CPLD I2C2接收来自AI加速卡2的响应数据,通过命令接收与解析模块对响应数据进行解析,获取AI加速卡2的固件版本信息。
步骤8,CPLD单元通过设置GPIO状态变化通知BMC单元响应命令已完成解析。
步骤9,BMC单元触发BMC单元内部的GPIO中断,通过BMC I2C发送获取响应数据命令至CPLD单元。
步骤10,CPLD单元通过CPLD I2C1接收来自BMC的命令,将步骤8中解析后的数据通过命令响应模块转换为满足“统一接口格式”的命令,通过CPLD I2C1发至BMC单元。
步骤11,BMC单元通过BMC I2C接收来自CPLD单元的数据,解析后获取最终的命令返回结果,即AI加速卡2的固件版本信息。
本实施例中提供了一种服务器的AI加速卡的高效管理方案,通过在BMC单元与AI加速单元间引入CPLD单元,将BMC与AI加速卡间的管理数据交互转换为BMC单元与CPLD单元间统一的交互命令接口。CPLD单元与AI加速单元间的交互命令由EEPROM中的统一存储格式定义,当AI加速卡的管理接口有变更时,只需更改EEPROM中的存储命令,配合CPLD单元中的命令查询与解析逻辑即能实现CPLD单元与AI加速单元间的命令交互过程,对BMC管理单元的代码适配友好,大大减小了BMC单元对不同AI加速卡的适配难度,同时具有灵活、高效和扩展性强的特点。采用所提方法能够显著缩短BMC单元适配周期,提升服务器产品落地和交付效率,有效保障了BMC单元应对不同AI加速卡时的代码适配效率。
虽然本申请描述的实施方式如上,但上述描述内容和定义只是为了便于理解本申请的实施方式,并非用以限定本申请,任何在不脱离本申请精神和范围前提下所做的修改与变化,特别是加速卡的高效管理系统架构、管理方法和命令存储与命令码的定义等均在本发明的保护范围之内。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
根据本申请实施例的另一方面,还提供了一种交互数据的传输系统,该系统用于实现上述实施例中所提供的交互数据的传输方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在本实施例中,上述交互数据的传输系统包括基板管理控制器、指定逻辑器件和一组加速卡,基板管理控制器向指定逻辑器件发送与一组加速卡对应的交互命令所使用的通信接口为第一通信接口,指定逻辑器件向一组加速卡发送交互命令所使用的通信接口为第二通信接口,其中,
基板管理控制器,用于通过第一通信接口向指定逻辑器件发送第一交互命令,其中,第一交互命令用于指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令;
指定逻辑器件,用于接收第一交互命令,响应于第一交互命令,查询预存的命令数据集合,得到目标命令数据,将目标命令数据转换为第二交互命令,并将第二交互命令通过第二通信接口发送给指定加速卡,其中,命令数据集合包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据是与指定加速卡对应的指定交互类型的命令数据。
可选地,上述实施例中的各个方法步骤可以是由交互数据的传输系统中对应的部件执行的,已经进行过说明的,在此不做赘述。
通过本申请提供的实施例的上述系统,通过指定逻辑器件接收基板管理控制器通过第一通信接口发送的第一交互命令,其中,第一交互命令用于指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令;响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,命令数据集合包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据是与指定加速卡对应的指定交互类型的命令数据;通过指定逻辑器件将目标命令数据转换为第二交互命令,并通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡,解决了相关技术中交互数据的传输方法存在由于需要通过BMC针对各种加速卡进行单独适配导致的适配效率低的问题,提高了加速卡适配的效率。
根据本申请实施例的又一方面,还提供了一种交互数据的传输装置,该装置用于实现上述实施例中所提供的交互数据的传输方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
该交互数据的传输装置可以应用于目标设备,目标设备包括基板管理控制器、指定逻辑器件和一组加速卡,基板管理控制器向指定逻辑器件发送与一组加速卡对应的交互命令所使用的通信接口为第一通信接口,指定逻辑器件向一组加速卡发送交互命令所使用的通信接口为第二通信接口。图7是根据本申请实施例的一种交互数据的传输装置的结构框图,如图7所示,该装置包括:
第一接收单元702,用于通过指定逻辑器件接收基板管理控制器通过第一通信接口发送的第一交互命令,其中,第一交互命令用于指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令;
查询单元704,用于响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,命令数据集合包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据是与指定加速卡对应的指定交互类型的命令数据;
第一执行单元706,用于通过指定逻辑器件将目标命令数据转换为第二交互命令,并通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡。
需要说明的是,该实施例中的第一接收单元702可以用于执行上述步骤S202,该实施例中的查询单元704可以用于执行上述步骤S204,该实施例中的第一执行单元706可以用于执行上述步骤S206。
通过本申请实施例,通过指定逻辑器件接收基板管理控制器通过第一通信接口发送的第一交互命令,其中,第一交互命令用于指示向一组加速卡中的指定加速卡发送指定交互类型的交互命令;响应于第一交互命令,通过指定逻辑器件查询预存的命令数据集合,得到目标命令数据,其中,命令数据集合包含与一组加速卡中的每个加速卡对应的一组命令数据,目标命令数据是与指定加速卡对应的指定交互类型的命令数据;通过指定逻辑器件将目标命令数据转换为第二交互命令,并通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡,解决了相关技术中交互数据的传输方法存在由于需要通过BMC针对各种加速卡进行单独适配导致的适配效率低的问题,提高了加速卡适配的效率。
在一个示例性实施例中,查询单元包括:
提取模块,用于响应于第一交互命令,通过指定逻辑器件从第一交互命令中提取出指定加速卡的加速卡标识和指定命令码,其中,指定命令码用于标识指定交互类型;
第一查询模块,用于通过指定逻辑器件基于指定加速卡的加速卡标识和指定命令码查询预存的命令数据集合,得到目标命令数据。
在一个示例性实施例中,第一查询模块包括:
第一查询子模块,用于通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码查询地址映射表,得到第一存储位置信息,其中,第一存储位置信息用于指示与指定加速卡对应的指定交互类型的命令数据的存储位置,地址映射表用于存储加速卡标识和命令码的组合与对应的命令数据的存储位置之间的映射关系;
第一提取子模块,用于通过指定逻辑器件从第一存储位置信息所指示的存储位置中提取出目标命令数据。
在一个示例性实施例中,第一查询子模块包括:
查询子单元,用于通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码查询地址映射表,得到第一起始位置信息和第一数据长度信息,其中,第一起始位置信息用于指示与指定加速卡对应的指定交互类型的命令数据的起始存储位置,第一数据长度信息用于指示与指定加速卡对应的指定交互类型的命令数据的数据长度,第一存储位置信息包括第一起始位置信息和第一数据长度信息。
在一个示例性实施例中,命令数据集合中的每个命令数据分别通过指定数据结构集合中的一个指定数据结构存储,指定数据结构集合中的每个指定数据结构均包括数据头和数据体,数据头包含用于存储对应的命令数据的存储位置的存储位置字段、用于存储对应的加速卡的加速卡标识的加速卡标识字段以及用于存储对应的命令码的命令码字段,数据体用于存储对应的命令数据;
第一查询模块包括:
第二查询子模块,用于通过指定逻辑器件使用指定加速卡的加速卡标识和指定命令码依次查询每个指定数据结构的数据头的加速卡标识字段和命令码字段;
第二提取子模块,用于在查找到目标数据结构的情况下,通过指定逻辑器件从目标数据结构的数据头的存储位置字段中提取出第二存储位置信息,其中,目标数据结构的数据头的加速卡标识字段中存储的加速度卡标识与指定加速卡的加速卡标识相同,目标数据结构的数据头的命令码字段中存储的命令码与指定命令码相同,第二存储位置信息用于指示与目标数据结构所存储的命令数据的存储位置;
第三提取子模块,用于通过指定逻辑器件从第二存储位置信息所指示的存储位置中提取出目标数据结构的数据体内提取出目标命令数据。
在一个示例性实施例中,存储位置字段包含用于存储对应的命令数据的起始存储位置的起始位置字段以及用于存储对应的命令数据的数据长度的数据长度字段;
第二提取子模块包括:
提取子单元,用于在查找到目标数据结构的情况下,通过指定逻辑器件从目标数据结构的数据头的起始位置字段中提取出第二起始位置信息以及从数据长度字段中提取出第二数据长度信息,其中,第二起始位置信息用于指示与目标数据结构对应的命令数据的起始存储位置,第二数据长度信息用于指示与目标数据结构对应的命令数据的数据长度,第二存储位置信息包括第二起始位置信息和第二数据长度信息。
在一个示例性实施例中,每个指定数据结构还包括校验数据部分,校验数据部分用于存储对应的命令数据的校验数据;上述装置还包括:
第一提取单元,用于在查找到目标数据结构的情况下,通过指定逻辑器件从目标数据结构的校验数据部分中提取出第一校验数据;
第一校验单元,用于通过指定逻辑器件使用第一校验数据对目标命令数据进行校验;
其中,将目标命令数据转换为第二交互命令是在目标命令数据校验通过的情况下执行的。
在一个示例性实施例中,提取模块包括:
第四提取子模块,用于响应于第一交互命令,通过指定逻辑器件从第一交互命令中提取出指定加速卡的加速卡编号和指定命令码,其中,指定加速卡的加速卡标识包括指定加速卡的加速卡编号,指定命令码属于一组预设命令码,指定交互类型属于一组预设交互类型,一组预设命令码中的预设命令码与一组预设交互类型中的预设交互类型一一对应,与一组加速卡中不同的加速卡对应的相同交互类型的命令数据的预设命令码是相同的。
在一个示例性实施例中,上述装置还包括:
第二执行单元,用于在通过指定逻辑器件基于指定加速卡的加速卡标识和指定命令码查询预存的命令数据集合之前,通过指定逻辑器件使用指定命令码查找与指定加速卡的加速卡编号对应的命令码映射表,并将指定命令码更新为查找到的命令码,得到更新后的指定命令码,其中,命令码映射表用于存储一组预设命令码中的每个预设命令码和为指定加速卡配置的命令码之间的映射关系。
在一个示例性实施例中,上述装置还包括:
获取单元,用于在通过指定逻辑器件将目标命令数据转换为第二交互命令之前,通过指定逻辑器件从预存的与命令数据集合中的每个命令数据的校验数据中获取目标命令数据的第二校验数据;
第二校验单元,用于通过指定逻辑器件使用第二校验数据对目标命令数据进行校验;
其中,将目标命令数据转换为第二交互命令是在目标命令数据校验通过的情况下执行的。
在一个示例性实施例中,查询单元包括:
第二查询模块,用于响应于第一交互命令,通过指定逻辑器件查询目标设备的带电可擦写编程只读存储器中预存的命令数据集合,得到目标命令数据。
在一个示例性实施例中,第一接收单元包括:
第一接收模块,用于通过指定逻辑器件接收基板管理控制器通过第一通信接口经由第一通信总线发送的第一交互命令,其中,第一通信接口为内部集成电路I2C接口,第一通信总线为I2C总线。
在一个示例性实施例中,第一执行单元包括:
第一发送模块,用于通过指定逻辑器件将第二交互命令通过第二通信接口经由第二通信总线发送给指定加速卡,其中,第二通信接口为内部集成电路I2C接口,第二通信总线为I2C总线。
在一个示例性实施例中,查询单元包括:
执行模块,用于响应于第一交互命令,通过指定逻辑器件将数据查询命令通过第二通信总线发送给指定存储器,并通过第二通信总线接收指定存储器返回的目标命令数据,其中,指定存储器中预存有命令数据集合,数据查询命令用于查询与指定加速卡对应的指定交互类型的命令数据。
在一个示例性实施例中,第二交互命令中携带有指定加速卡的加速卡地址;上述装置还包括:
第三执行单元,用于在通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡之后,通过指定加速卡经由指定加速卡的I2C接口从第二通信总线接收第二交互命令,并提取出第二交互命令中携带的加速卡地址;
第二提取单元,用于在确定第二交互命令中携带的加速卡地址与指定加速卡的加速卡地址相同的情况下,通过指定加速卡从第二交互命令中提取出目标命令数据;
第四执行单元,用于响应于目标命令数据,通过指定加速卡将目标命令数据的第一响应数据转换为第一响应命令,并通过指定加速卡的I2C接口将第一响应命令经由第二通信总线发送给指定逻辑器件,以由指定逻辑器件将第一响应命令中携带的第一响应数据发送给基板管理控制器。
在一个示例性实施例中,上述装置还包括:
第二接收单元,用于在通过指定逻辑器件将第二交互命令通过第二通信接口发送给指定加速卡之后,通过指定逻辑器件接收指定加速卡响应于第二交互命令所返回的第二响应命令;
解析单元,用于响应于第二响应命令,通过指定逻辑器件对第二响应命令进行命令解析,得到第二响应数据;
传输单元,用于通过指定逻辑器件将第二响应数据传输给基板管理控制器。
在一个示例性实施例中,传输单元包括:
设置模块,用于通过指定逻辑器件设置指定逻辑器件与基板管理控制器之间的通用输入输出接口的状态,以通过通用输入输出接口的状态变化通知基板管理控制器存在待获取的响应数据;
第二接收模块,用于通过指定逻辑器件接收基板管理控制器发送的响应数据获取命令,其中,响应数据获取命令用于获取发送给基板管理控制器的响应数据;
第二发送模块,用于响应于响应数据获取命令,通过指定逻辑器件将第二响应数据发送给基板管理控制器。
在一个示例性实施例中,上述装置还包括:
第五执行单元,用于在通过指定逻辑器件设置指定逻辑器件与基板管理控制器之间的通用输入输出接口的状态之后,通过基板管理控制器检测通用输入输出接口的状态,基于检测到的通用输入输出接口的状态触发通用输入输出接口中断,并向指定逻辑器件发送响应数据获取命令。
在一个示例性实施例中,指定逻辑器件为复杂可编程逻辑器件,一组加速卡均为人工智能加速卡;指定交互类型的交互命令为以下之一的命令:固件版本获取命令,温度获取命令,功耗获取命令,厂商信息获取命令。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器、随机存取存储器、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,参考图8,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理器801执行时,执行本申请实施例提供的各种功能。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
参考图8,图8是本申请实施例提供的一种可选的电子设备的计算机系统的结构框图。
图8示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。如图8所示,计算机系统800包括中央处理器801(Central Processing Unit,CPU),其可以根据存储在只读存储器802(Read-Only Memory,ROM)中的程序或者从存储部分808加载到随机访问存储器803(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器803中,还存储有系统操作所需的各种程序和数据。中央处理器801、在只读存储器802以及随机访问存储器803通过总线804彼此相连。输入/输出接口805(Input /Output接口,简称为I/O接口)也连接至总线804。
以下部件连接至输入/输出接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理器801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,图8示出的电子设备的计算机系统800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例而已,并不用于限制本申请实施例,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请实施例的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (23)
1.一种交互数据的传输方法,其特征在于,
应用于目标设备,所述目标设备包括基板管理控制器、指定逻辑器件和一组加速卡,所述基板管理控制器向所述指定逻辑器件发送与所述一组加速卡对应的交互命令,所使用的通信接口为第一通信接口;所述指定逻辑器件向所述一组加速卡发送交互命令,所使用的通信接口为第二通信接口,所述方法包括:
通过所述指定逻辑器件接收所述基板管理控制器通过所述第一通信接口发送的第一交互命令,其中,所述第一交互命令用于指示向所述一组加速卡中的指定加速卡发送指定交互类型的交互命令;
响应于所述第一交互命令,通过所述指定逻辑器件基于从所述第一交互命令中提取出的所述指定加速卡以及所述指定交互类型的指示信息查询预存的命令数据集合,得到目标命令数据,其中,所述命令数据集合包含与所述一组加速卡中的每个加速卡对应的一组命令数据,所述目标命令数据是与所述指定加速卡对应的所述指定交互类型的命令数据;
通过所述指定逻辑器件将所述目标命令数据转换为第二交互命令,并通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡。
2.根据权利要求1所述的方法,其特征在于,所述响应于所述第一交互命令,通过所述指定逻辑器件基于从所述第一交互命令中提取出的所述指定加速卡以及所述指定交互类型的指示信息查询预存的命令数据集合,得到目标命令数据,包括:
响应于所述第一交互命令,通过所述指定逻辑器件从所述第一交互命令中提取出所述指定加速卡的加速卡标识和指定命令码,其中,所述指定命令码用于标识所述指定交互类型;
通过所述指定逻辑器件基于所述指定加速卡的加速卡标识和所述指定命令码查询预存的所述命令数据集合,得到所述目标命令数据。
3.根据权利要求2所述的方法,其特征在于,所述通过所述指定逻辑器件基于所述指定加速卡的加速卡标识和所述指定命令码查询预存的所述命令数据集合,得到所述目标命令数据,包括:
通过所述指定逻辑器件使用所述指定加速卡的加速卡标识和所述指定命令码查询地址映射表,得到第一存储位置信息,其中,所述第一存储位置信息用于指示与所述指定加速卡对应的所述指定交互类型的命令数据的存储位置,所述地址映射表用于存储加速卡标识和命令码的组合与对应的命令数据的存储位置之间的映射关系;
通过所述指定逻辑器件从所述第一存储位置信息所指示的存储位置中提取出所述目标命令数据。
4.根据权利要求3所述的方法,其特征在于,所述通过所述指定逻辑器件使用所述指定加速卡的加速卡标识和所述指定命令码查询地址映射表,得到第一存储位置信息,包括:
通过所述指定逻辑器件使用所述指定加速卡的加速卡标识和所述指定命令码查询所述地址映射表,得到第一起始位置信息和第一数据长度信息,其中,所述第一起始位置信息用于指示与所述指定加速卡对应的所述指定交互类型的命令数据的起始存储位置,所述第一数据长度信息用于指示与所述指定加速卡对应的所述指定交互类型的命令数据的数据长度,所述第一存储位置信息包括所述第一起始位置信息和所述第一数据长度信息。
5.根据权利要求2所述的方法,其特征在于,所述命令数据集合中的每个命令数据分别通过指定数据结构集合中的一个指定数据结构存储,所述指定数据结构集合中的每个指定数据结构均包括数据头和数据体,所述数据头包含用于存储对应的命令数据的存储位置的存储位置字段、用于存储对应的加速卡的加速卡标识的加速卡标识字段以及用于存储对应的命令码的命令码字段,所述数据体用于存储对应的命令数据;
所述通过所述指定逻辑器件基于所述指定加速卡的加速卡标识和所述指定命令码查询预存的所述命令数据集合,得到所述目标命令数据,包括:
通过所述指定逻辑器件使用所述指定加速卡的加速卡标识和所述指定命令码依次查询所述每个指定数据结构的所述数据头的所述加速卡标识字段和所述命令码字段;
在查找到目标数据结构的情况下,通过所述指定逻辑器件从所述目标数据结构的所述数据头的所述存储位置字段中提取出第二存储位置信息,其中,所述目标数据结构的所述数据头的所述加速卡标识字段中存储的加速度卡标识与所述指定加速卡的加速卡标识相同,所述目标数据结构的所述数据头的所述命令码字段中存储的命令码与所述指定命令码相同,所述第二存储位置信息用于指示与所述目标数据结构所存储的命令数据的存储位置;
通过所述指定逻辑器件从所述第二存储位置信息所指示的存储位置中提取出所述目标数据结构的所述数据体内提取出所述目标命令数据。
6.根据权利要求5所述的方法,其特征在于,所述存储位置字段包含用于存储对应的命令数据的起始存储位置的起始位置字段以及用于存储对应的命令数据的数据长度的数据长度字段;
所述在查找到目标数据结构的情况下,通过所述指定逻辑器件从所述目标数据结构的所述数据头的所述存储位置字段中提取出第二存储位置信息,包括:
在查找到所述目标数据结构的情况下,通过所述指定逻辑器件从所述目标数据结构的所述数据头的所述起始位置字段中提取出第二起始位置信息以及从所述数据长度字段中提取出第二数据长度信息,其中,所述第二起始位置信息用于指示与所述目标数据结构对应的命令数据的起始存储位置,所述第二数据长度信息用于指示与所述目标数据结构对应的命令数据的数据长度,所述第二存储位置信息包括所述第二起始位置信息和所述第二数据长度信息。
7.根据权利要求5所述的方法,其特征在于,所述每个指定数据结构还包括校验数据部分,所述校验数据部分用于存储对应的命令数据的校验数据;所述方法还包括:
在查找到所述目标数据结构的情况下,通过所述指定逻辑器件从所述目标数据结构的所述校验数据部分中提取出第一校验数据;
通过所述指定逻辑器件使用所述第一校验数据对所述目标命令数据进行校验;
其中,将所述目标命令数据转换为所述第二交互命令是在所述目标命令数据校验通过的情况下执行的。
8.根据权利要求2所述的方法,其特征在于,所述响应于所述第一交互命令,通过所述指定逻辑器件从所述第一交互命令中提取出所述指定加速卡的加速卡标识和指定命令码,包括:
响应于所述第一交互命令,通过所述指定逻辑器件从所述第一交互命令中提取出所述指定加速卡的加速卡编号和所述指定命令码,其中,所述指定加速卡的加速卡标识包括所述指定加速卡的加速卡编号,所述指定命令码属于一组预设命令码,所述指定交互类型属于一组预设交互类型,所述一组预设命令码中的预设命令码与一组预设交互类型中的预设交互类型一一对应,与所述一组加速卡中不同的加速卡对应的相同交互类型的命令数据的预设命令码是相同的。
9.根据权利要求8所述的方法,其特征在于,在所述通过所述指定逻辑器件基于所述指定加速卡的加速卡标识和所述指定命令码查询预存的所述命令数据集合之前,所述方法还包括:
通过所述指定逻辑器件使用所述指定命令码查找与所述指定加速卡的加速卡编号对应的命令码映射表,并将所述指定命令码更新为查找到的命令码,得到更新后的所述指定命令码,其中,所述命令码映射表用于存储所述一组预设命令码中的每个预设命令码和为所述指定加速卡配置的命令码之间的映射关系。
10.根据权利要求1所述的方法,其特征在于,在所述通过所述指定逻辑器件将所述目标命令数据转换为第二交互命令之前,所述方法还包括:
通过所述指定逻辑器件从预存的与所述命令数据集合中的每个命令数据的校验数据中获取所述目标命令数据的第二校验数据;
通过所述指定逻辑器件使用所述第二校验数据对所述目标命令数据进行校验;
其中,将所述目标命令数据转换为所述第二交互命令是在所述目标命令数据校验通过的情况下执行的。
11.根据权利要求1所述的方法,其特征在于,所述响应于所述第一交互命令,通过所述指定逻辑器件基于从所述第一交互命令中提取出的所述指定加速卡以及所述指定交互类型的指示信息查询预存的命令数据集合,得到目标命令数据,包括:
响应于所述第一交互命令,通过所述指定逻辑器件查询所述目标设备的带电可擦写编程只读存储器中预存的所述命令数据集合,得到所述目标命令数据。
12.根据权利要求1所述的方法,其特征在于,所述通过所述指定逻辑器件接收所述基板管理控制器通过所述第一通信接口发送的第一交互命令,包括:
通过所述指定逻辑器件接收所述基板管理控制器通过所述第一通信接口经由第一通信总线发送的所述第一交互命令,其中,所述第一通信接口为内部集成电路I2C接口,所述第一通信总线为I2C总线。
13.根据权利要求1所述的方法,其特征在于,所述通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡,包括:
通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口经由第二通信总线发送给所述指定加速卡,其中,所述第二通信接口为内部集成电路I2C接口,所述第二通信总线为I2C总线。
14.根据权利要求13所述的方法,其特征在于,所述响应于所述第一交互命令,通过所述指定逻辑器件基于从所述第一交互命令中提取出的所述指定加速卡以及所述指定交互类型的指示信息查询预存的命令数据集合,得到目标命令数据,包括:
响应于所述第一交互命令,通过所述指定逻辑器件将数据查询命令通过所述第二通信总线发送给指定存储器,并通过所述第二通信总线接收所述指定存储器返回的所述目标命令数据,其中,所述指定存储器中预存有所述命令数据集合,所述数据查询命令用于查询与所述指定加速卡对应的所述指定交互类型的命令数据。
15.根据权利要求13所述的方法,其特征在于,所述第二交互命令中携带有所述指定加速卡的加速卡地址;在所述通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡之后,所述方法还包括:
通过所述指定加速卡经由所述指定加速卡的I2C接口从所述第二通信总线接收所述第二交互命令,并提取出所述第二交互命令中携带的加速卡地址;
在确定所述第二交互命令中携带的加速卡地址与所述指定加速卡的加速卡地址相同的情况下,通过所述指定加速卡从所述第二交互命令中提取出所述目标命令数据;
响应于所述目标命令数据,通过所述指定加速卡将所述目标命令数据的第一响应数据转换为第一响应命令,并通过所述指定加速卡的I2C接口将所述第一响应命令经由所述第二通信总线发送给所述指定逻辑器件,以由所述指定逻辑器件将所述第一响应命令中携带的所述第一响应数据发送给所述基板管理控制器。
16.根据权利要求1所述的方法,其特征在于,在所述通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡之后,所述方法还包括:
通过所述指定逻辑器件接收所述指定加速卡响应于所述第二交互命令所返回的第二响应命令;
响应于所述第二响应命令,通过所述指定逻辑器件对所述第二响应命令进行命令解析,得到第二响应数据;
通过所述指定逻辑器件将所述第二响应数据传输给所述基板管理控制器。
17.根据权利要求16所述的方法,其特征在于,所述通过所述指定逻辑器件将所述第二响应数据传输给所述基板管理控制器,包括:
通过所述指定逻辑器件设置所述指定逻辑器件与所述基板管理控制器之间的通用输入输出接口的状态,以通过所述通用输入输出接口的状态变化通知所述基板管理控制器存在待获取的响应数据;
通过所述指定逻辑器件接收所述基板管理控制器发送的响应数据获取命令,其中,所述响应数据获取命令用于获取发送给所述基板管理控制器的响应数据;
响应于所述响应数据获取命令,通过所述指定逻辑器件将所述第二响应数据发送给所述基板管理控制器。
18.根据权利要求17所述的方法,其特征在于,在所述通过所述指定逻辑器件设置所述指定逻辑器件与所述基板管理控制器之间的通用输入输出接口的状态之后,所述方法还包括:
通过所述基板管理控制器检测所述通用输入输出接口的状态,基于检测到的所述通用输入输出接口的状态触发通用输入输出接口中断,并向所述指定逻辑器件发送所述响应数据获取命令。
19.根据权利要求1至18中任一项所述的方法,其特征在于,所述指定逻辑器件为复杂可编程逻辑器件,所述一组加速卡均为人工智能加速卡;所述指定交互类型的交互命令为以下之一的命令:固件版本获取命令,温度获取命令,功耗获取命令,厂商信息获取命令。
20.一种交互数据的传输系统,包括基板管理控制器、指定逻辑器件和一组加速卡,所述基板管理控制器向所述指定逻辑器件发送与所述一组加速卡对应的交互命令,所使用的通信接口为第一通信接口;所述指定逻辑器件向所述一组加速卡发送交互命令,所使用的通信接口为第二通信接口,其中,
所述基板管理控制器,用于通过所述第一通信接口向所述指定逻辑器件发送第一交互命令,其中,所述第一交互命令用于指示向所述一组加速卡中的指定加速卡发送指定交互类型的交互命令;
所述指定逻辑器件,用于接收所述第一交互命令,响应于所述第一交互命令,基于从所述第一交互命令中提取出的所述指定加速卡以及所述指定交互类型的指示信息查询预存的命令数据集合,得到目标命令数据,将所述目标命令数据转换为第二交互命令,并将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡,其中,所述命令数据集合包含与所述一组加速卡中的每个加速卡对应的一组命令数据,所述目标命令数据是与所述指定加速卡对应的所述指定交互类型的命令数据。
21.一种交互数据的传输装置,其特征在于,
应用于目标设备,所述目标设备包括基板管理控制器、指定逻辑器件和一组加速卡,所述基板管理控制器向所述指定逻辑器件发送与所述一组加速卡对应的交互命令,所使用的通信接口为第一通信接口;所述指定逻辑器件向所述一组加速卡发送交互命令,所使用的通信接口为第二通信接口,所述装置包括:
第一接收单元,用于通过所述指定逻辑器件接收所述基板管理控制器通过所述第一通信接口发送的第一交互命令,其中,所述第一交互命令用于指示向所述一组加速卡中的指定加速卡发送指定交互类型的交互命令;
查询单元,用于响应于所述第一交互命令,通过所述指定逻辑器件基于从所述第一交互命令中提取出的所述指定加速卡以及所述指定交互类型的指示信息查询预存的命令数据集合,得到目标命令数据,其中,所述命令数据集合包含与所述一组加速卡中的每个加速卡对应的一组命令数据,所述目标命令数据是与所述指定加速卡对应的所述指定交互类型的命令数据;
第一执行单元,用于通过所述指定逻辑器件将所述目标命令数据转换为第二交互命令,并通过所述指定逻辑器件将所述第二交互命令通过所述第二通信接口发送给所述指定加速卡。
22.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至19中任一项所述的方法。
23.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至19中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311655918.5A CN117376110B (zh) | 2023-12-05 | 2023-12-05 | 交互数据的传输方法、系统及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311655918.5A CN117376110B (zh) | 2023-12-05 | 2023-12-05 | 交互数据的传输方法、系统及装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117376110A CN117376110A (zh) | 2024-01-09 |
CN117376110B true CN117376110B (zh) | 2024-02-27 |
Family
ID=89398836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311655918.5A Active CN117376110B (zh) | 2023-12-05 | 2023-12-05 | 交互数据的传输方法、系统及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117376110B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131084A (zh) * | 2020-09-17 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种带内外定位ai加速卡的方法、系统、设备及介质 |
CN116126353A (zh) * | 2022-12-26 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 一种加速卡软件栈部署方法、装置、设备和存储介质 |
-
2023
- 2023-12-05 CN CN202311655918.5A patent/CN117376110B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131084A (zh) * | 2020-09-17 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种带内外定位ai加速卡的方法、系统、设备及介质 |
CN116126353A (zh) * | 2022-12-26 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 一种加速卡软件栈部署方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117376110A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10812620B2 (en) | Home gateway and control method thereof | |
US9330042B2 (en) | Determining extended capability of a channel path | |
US20190258554A1 (en) | Monitor peripheral device based on imported data | |
US10467015B2 (en) | Method for out of band device configuration deployment and system therefor | |
US20110241844A1 (en) | Appliance including a radio frequency identification (rfid) device and method for two-way communication of dynamic data by the appliance via the rfid device | |
CN101236595A (zh) | 射频标识读取器及其测试方法 | |
CN114003538B (zh) | 一种智能网卡的识别方法及智能网卡 | |
CN108366131B (zh) | 数据传输方法、装置、终端以及存储介质 | |
CN116719700B (zh) | 服务器主机系统的硬件分区的监测方法及装置 | |
CN117376110B (zh) | 交互数据的传输方法、系统及装置、存储介质及电子设备 | |
CN112235325B (zh) | 一种对与智能终端相连接的功能模组进行访问控制的方法及系统 | |
CN113177015A (zh) | 基于帧头的串口通讯方法和串口芯片 | |
KR20180054157A (ko) | 신규 사물인터넷(IOT, Internet Of Things) 단말 관리 방법 및 장치 | |
US20070198753A1 (en) | Method and protocol for transmitting extended commands to USB devices | |
CN115766682A (zh) | 一种数据传输方法及其装置 | |
US9779012B1 (en) | Dynamic and global in-system debugger | |
US20190050221A1 (en) | Systems and methods for usage driven determination of update criticality | |
CN117008844B (zh) | 存储设备的设备控制方法及装置、存储介质及电子设备 | |
CN117834750B (zh) | 获取协议数据的装置、方法、系统、设备、介质及服务器 | |
CN113630294B (zh) | 一种交换机模块化检测方法和装置 | |
CN112988202B (zh) | 一种fc模块升级的系统及方法 | |
CN114900243B (zh) | 光模块兼容码的修改方法及装置 | |
CN117130625A (zh) | 芯片升级方法和装置、存储介质及电子装置 | |
WO2024108940A1 (zh) | 一种性能监管方法、装置、系统、设备和介质 | |
CN116662242A (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 |