Interaction data transmission method, system and apparatus, storage medium and electronic device

By introducing specified logic devices between BMC and acceleration card, the interactive interface between BMC and acceleration card is unified, and the problem of BMC in the prior art needs to be adapted separately for each acceleration card is solved, achieving rapid adaptation and efficient development.

WO2025118547A1PCT designated stage expired Publication Date: 2025-06-12INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Application Number
PCT/CN2024/100456
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-05
Filing Date
2024-06-20
Publication Date
2025-06-12

AI Technical Summary

Technical Problem

In the prior art, the substrate management controller (BMC) needs to be adapted separately for various accelerator cards, resulting in low adaptation efficiency and long adaptation cycle, which increases development time and cost.

Method used

By introducing specified logic devices, the management data interaction between the BMC and the accelerator card is converted into a unified interactive command interface between the BMC and the specified logic device and the specified logic device and the accelerator card, avoiding the separate interface adaptation of each accelerator card.

Benefits of technology

It realizes rapid adaptation between the substrate management controller and the accelerator card, shortens the adaptation cycle, improves the adaptation efficiency, and reduces development costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024100456_12062025_PF_FP_ABST
    Figure CN2024100456_12062025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide an interaction data transmission method, system and apparatus, a nonvolatile readable storage medium and an electronic device. The method comprises: by means of a specified logic device of a target device, receiving a first interaction command sent by a baseboard management controller of the target device by means of a first communication interface, wherein the first interaction command is used for instructing to send an interaction command of a specified interaction type to a specified acceleration card in a group of acceleration cards of the target device; in response to the first interaction command, querying a pre-stored command data set by means of the specified logic device to obtain target command data, wherein the command data set comprises a group of command data corresponding to each acceleration card in the group of acceleration cards, and the target command data is command data of the specified interaction type corresponding to the specified acceleration card; and by means of the specified logic device, converting the target command data into a second interaction command, and by means of the specified logic device, sending the second interaction command to the specified acceleration card by means of a second communication interface.
Need to check novelty before this filing date? Find Prior Art

Description

Interactive data transmission method, system and device, storage medium and electronic device

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to the Chinese patent application filed with the China Patent Office on December 5, 2023, with application number 202311655918.5, and application name “Method, system and device for transmitting interactive data, storage medium and electronic device”, all contents of which are incorporated by reference into this application. Technical Field

[0003] The embodiments of the present application relate to the field of firmware, and specifically, to a method, system, and device for transmitting interactive data, a non-volatile readable storage medium, and an electronic device. Background Art

[0004] Currently, accelerator cards can be applied to any device that needs to improve speed and performance, such as servers, network equipment, etc., and multiple accelerator cards can be set on a device to adapt to different application requirements. Due to the large number of accelerator card manufacturers, in order to make the device system compatible with accelerator cards from different manufacturers, the method adopted in the relevant technology is: to use the BMC (Baseboard Management Controller) on the device to separately adapt to various accelerator cards. However, when the management interface is separately adapted, additional code needs to be written to handle the adaptation logic, resulting in increased code complexity. Separate adaptation will lead to duplication of work, increase development time and cost, that is, the separately adapted management interface has the problems of long adaptation cycle and low adaptation efficiency.

[0005] Summary of the Invention

[0006] The embodiments of the present application provide a method, system, and device for transmitting interactive data, a non-volatile readable storage medium, and an electronic device, to at least address the problem of low adaptation efficiency caused by the need to individually adapt various accelerator cards through the BMC in the interactive data transmission method in the related art.

[0007] According to one embodiment of the present application, a method for transmitting interactive data is provided, which is applied to a target device, wherein the target device includes a baseboard management controller, a designated logic device and a group of accelerator cards, the baseboard management controller sends an interactive command corresponding to the group of accelerator cards to the designated logic device, and the communication interface used is a first communication interface; the designated logic device sends an interactive command to the group of accelerator cards, and the communication interface used is a second communication interface, wherein the method includes: receiving, through the designated logic device, a first interactive command sent by the baseboard management controller through the first communication interface, wherein the first interactive command is used to instruct to send an interactive command of a designated interactive type to a designated accelerator card in the group of accelerator cards; in response to the first interactive command, querying a pre-stored command data set through the designated logic device to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in the group of accelerator cards, and the target command data is command data of the designated interactive type corresponding to the designated accelerator card; converting the target command data into a second interactive command through the designated logic device, and sending the second interactive command to the designated accelerator card through the second communication interface through the designated logic device.

[0008] According to another embodiment of the present application, a system for transmitting interactive data is provided, including a baseboard management controller, a designated logic device and a group of accelerator cards, wherein the baseboard management controller sends an interactive command corresponding to the group of accelerator cards to the designated logic device, and the communication interface used is a first communication interface; the designated logic device sends an interactive command to the group of accelerator cards, and the communication interface used is a second communication interface, wherein the baseboard management controller is configured to send a first interactive command to the designated logic device through the first communication interface, wherein the first interactive command is used to instruct to send an interactive command of a specified interactive type to a specified accelerator card in the group of accelerator cards; the designated logic device is configured to receive the first interactive command, and in response to the first interactive command, query a pre-stored command data set to obtain target command data, convert the target command data into a second interactive command, and send the second interactive command to the designated accelerator card through the second communication interface, wherein the command data set includes a group of command data corresponding to each accelerator card in the group of accelerator cards, and the target command data is command data of the specified interactive type corresponding to the specified accelerator card.

[0009] According to another embodiment of the present application, a device for transmitting interactive data is provided, which is applied to a target device, wherein the target device includes a baseboard management controller, a designated logic device and a group of accelerator cards, the baseboard management controller sends an interactive command corresponding to the group of accelerator cards to the designated logic device, and the communication interface used is a first communication interface; the designated logic device sends an interactive command to the group of accelerator cards, and the communication interface used is a second communication interface. The device includes: a first receiving unit, configured to receive a first interactive command sent by the baseboard management controller through the first communication interface through the designated logic device, wherein the first interactive command is used to instruct to send an interactive command of a specified interactive type to a specified accelerator card in the group of accelerator cards; a query unit, configured to query a pre-stored command data set through the designated logic device in response to the first interactive command to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in the group of accelerator cards, and the target command data is command data of the specified interactive type corresponding to the specified accelerator card; a first execution unit, configured to convert the target command data into a second interactive command through the designated logic device, and send the second interactive command to the designated accelerator card through the second communication interface through the designated logic device.

[0010] According to another aspect of the embodiments of the present application, a computer non-volatile readable storage medium is provided, wherein the computer non-volatile readable storage medium includes a stored program, wherein when the program is run, the steps of any of the above method embodiments are executed.

[0011] According to another aspect of the embodiments of the present application, an electronic device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to execute the steps of any of the above method embodiments through the computer program.

[0012] Through the embodiment of the present application, the management interface for management data interaction between the baseboard management controller and the accelerator card is converted into a unified interactive command interface between the baseboard management controller and the specified logic device, and between the specified logic device and a group of accelerator cards. The interaction between the baseboard management controller and any accelerator card in a group of accelerator cards can be realized through the unified communication interface between the baseboard management controller and the specified logic device, and between the specified logic device and a group of accelerator cards, without the need to perform separate interface adaptation between the baseboard management controller and each accelerator card in a group of accelerator cards. By querying the command data corresponding to the specified accelerator card through the specified logic device, converting the queried command data and sending it to the specified accelerator card through the communication interface between the specified logic device and the accelerator card, the interaction of management data between the baseboard management controller and the specified accelerator card can be realized. Based on this, the adaptation cycle of the baseboard management controller can be shortened, and the purpose of quickly adapting to various forms of accelerator cards can be achieved, thereby solving the problem of low adaptation efficiency caused by the need to perform separate adaptation for various accelerator cards through the BMC in the transmission method of interactive data in the related art. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] FIG1 is a hardware structure block diagram of a server device of an interactive data transmission method according to an embodiment of the present application;

[0014] FIG2 is a schematic diagram of a flow chart of a method for transmitting interactive data according to an embodiment of the present application;

[0015] FIG3 is a schematic diagram of an accelerator card command storage format for a method for transmitting interactive data according to an embodiment of the present application;

[0016] FIG4 is a schematic diagram of a system architecture of a method for transmitting interactive data according to an embodiment of the present application;

[0017] FIG5 is a schematic flow chart of another method for transmitting interactive data according to an embodiment of the present application;

[0018] FIG6 is a schematic diagram of an interactive command of a method for transmitting interactive data according to an embodiment of the present application;

[0019] FIG7 is a structural block diagram of a device for transmitting interactive data according to an embodiment of the present application;

[0020] FIG8 is a structural block diagram of a computer system of an optional electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0021] The embodiments of the present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0022] It should be noted that the terms "first", "second", etc. in the description and claims of the embodiments of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0023] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.

[0024] The method embodiments provided in the embodiments of the present application can be executed in a server device or a similar computing device. Taking operation on a server device as an example, FIG1 is a hardware structure block diagram of a server device of an interactive data transmission method in an embodiment of the present application. As shown in FIG1 , the server device may include one or more (only one is shown in FIG1 ) processors 102 (the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a memory 104 for storing data, wherein the above-mentioned server device may also include a transmission device 106 and an input and output device 108 for communication functions. It can be understood by those skilled in the art that the structure shown in FIG1 is only for illustration, and it does not limit the structure of the above-mentioned server device. For example, the server device may also include more or fewer components than those shown in FIG1 , or have a configuration different from that shown in FIG1 .

[0025] The memory 104 can be configured to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the method for transmitting interactive data in the embodiment of the present application. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, implementing the above method. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include a memory remotely located relative to the processor 102, and these remote memories may be connected to a server device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0026] The transmission device 106 is configured to receive or transmit data via a network. A specific example of the aforementioned network may include a wireless network provided by a communication provider of the server device. In one embodiment, the transmission device 106 includes a NIC (Network Interface Controller), which can be connected to other network devices via a base station to enable communication with the Internet. In another embodiment, the transmission device 106 may be an RF (Radio Frequency) module for wireless communication with the Internet.

[0027] In this embodiment, a method for transmitting interactive data is provided. FIG2 is a flow chart of a method for transmitting interactive data according to an embodiment of the present application. As shown in FIG2 , the flow chart includes the following steps:

[0028] Step S202: receiving, through a designated logic device, a first interaction command sent by a baseboard management controller through a first communication interface, wherein the first interaction command is used to instruct to send an interaction command of a designated interaction type to a designated accelerator card in a group of accelerator cards.

[0029] The method for transmitting interactive data in this embodiment can be applied to a target device, in which the accelerator card is managed by the baseboard management controller (i.e., BMC) of the target device. BMC is an independent management controller on the target device (e.g., a server), which is responsible for monitoring and managing the hardware and operating status of the target device, while the accelerator card is a hardware device used to improve device performance, typically used to accelerate computing, network processing, or storage operations. In some device architectures (e.g., server architectures), the BMC can monitor and manage the accelerator card to ensure its normal operation and provide necessary support. On the other hand, the accelerator card can also communicate with the BMC, sending status information to it or receiving management commands, so that the BMC can better control the overall performance and stability of the target device.

[0030] However, because different manufacturers haven't adopted a unified management interface specification when designing accelerator cards, management methods for these cards vary significantly. This includes inconsistent information support and differing protocols and command formats for obtaining the same information. This diversity of management interfaces presents significant difficulties and challenges for adapting accelerator cards to device systems.

[0031] Here, unified management interface specifications refer to the adherence to unified specifications and standards across all management interfaces (including user management, permissions management, and data management) within a system or platform. This ensures consistent structure and behavior across different management interfaces, improving system stability, maintainability, and scalability. Unified management interface specifications can define interface naming conventions, parameter formats, return result formats, error handling, and other common functions such as identity authentication and authorization verification. Unified management interface specifications can simplify interface development and invocation, reduce system coupling, and improve development efficiency and overall system quality.

[0032] A management interface is used to manage a system or device. It enables configuration, monitoring, maintenance, and management of the system or device. It typically provides a set of commands, protocols, or application programming interfaces (APIs) that allow administrators or management software to interact with the system or device and perform various management operations. Management interfaces can be physical (such as serial ports or network ports) or software interfaces, depending on the characteristics and requirements of the system or device.

[0033] To ensure compatibility with accelerator cards from different manufacturers, device manufacturers have traditionally adapted each accelerator card individually through the BMC. However, with numerous management interfaces, this approach is difficult and time-consuming to adapt, and involves a significant amount of repetitive work. Furthermore, the need to adapt each accelerator card individually through the BMC results in low adaptation and transmission efficiency.

[0034] In order to at least partially solve the above problems, in this embodiment, by introducing a designated logic device unit between the BMC and the accelerator card unit, the management data interaction between the BMC and the accelerator card is converted into a unified interactive command interface between the BMC and the designated logic device unit. Since the interface used between the BMC and the designated logic device is a unified interface, the BMC only needs to implement the interface protocol to indirectly realize the management function of different accelerator cards, which can improve the firmware adaptation efficiency on the BMC side.

[0035] For the target device, the target device may include a baseboard management controller, a designated logic device, and a group of accelerator cards, wherein the communication interface used by the baseboard management controller to send an interaction command corresponding to a group of accelerator cards to the designated logic device is a first communication interface, and the communication interface used by the designated logic device to send an interaction command to a group of accelerator cards is a second communication interface. When the BMC needs to interact with a designated accelerator card in a group of accelerator cards, the BMC can send a first interaction command to the designated logic device through the first communication interface, and the designated logic device can receive the first interaction command sent by the BMC through the first communication interface. Here, the first interaction command can be used to indicate that an interaction command of a specified interaction type is sent to a specified accelerator card in a group of accelerator cards. The specified interaction type may include but is not limited to a firmware version acquisition command, a temperature acquisition command, a power consumption acquisition command, a manufacturer information acquisition command, etc., which are used to obtain the firmware version, temperature, power consumption, and manufacturer information of the accelerator card, etc.

[0036] Optionally, the first interaction command may carry the address of a specified logic device. In order to perform data interaction of a specified interaction type with a specified accelerator card in a group of accelerator cards, the first interaction command may also carry identification information of the specified accelerator card, as well as indication information of the specified interaction type, etc., to indicate the specified accelerator card and the specified interaction type.

[0037] Step S204: In response to the first interaction command, a pre-stored command data set is queried through a specified logic device to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in a group of accelerator cards, and the target command data is command data of a specified interaction type corresponding to the specified accelerator card.

[0038] After receiving the first interaction command, the designated logic device may query a pre-stored command data set in response to the first interaction command to obtain target command data. Here, the command data set may be stored in a memory of the target device, such as ROM (Read-Only Memory), RAM (Random Access Memory), etc. The command data set may include a set of command data corresponding to each accelerator card in a group of accelerator cards. The target command data may be command data of a specified interaction type corresponding to the specified accelerator card. The target command data may include, but is not limited to, command data of different interaction types corresponding to different accelerator cards defined by various manufacturers. Each accelerator card may correspond to multiple interaction types. The command data of different accelerator cards for the same interaction type may be the same or different, which is not limited in this embodiment.

[0039] Optionally, querying the target command data may be implemented based on the indication information of the designated accelerator card and the designated interaction type carried in the first interaction command.

[0040] Step S206: Convert the target command data into a second interactive command through the designated logic device, and send the second interactive command to the designated accelerator card through the second communication interface through the designated logic device.

[0041] When the target command data is queried through the designated logic device, the target command data can be converted into a second interactive command through the designated logic device, and the second interactive command can be sent to the designated accelerator card through the second communication interface through the designated logic device. The second interactive command can be a command that conforms to the communication protocol format of the second communication interface.

[0042] Optionally, in order to let the designated accelerator card "know" that the second interactive command is sent to "itself", the second interactive command may carry identification information for identifying the designated accelerator card, for example, address information of the designated accelerator card.

[0043] Through the above steps of the embodiment provided by the present application, a first interactive command sent by the baseboard management controller through the first communication interface is received through a designated logic device, wherein the first interactive command is used to indicate that an interactive command of a specified interactive type is sent to a designated accelerator card in a group of accelerator cards; in response to the first interactive command, a pre-stored command data set is queried through the designated logic device to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in a group of accelerator cards, and the target command data is command data of a specified interactive type corresponding to the designated accelerator card; the target command data is converted into a second interactive command through the designated logic device, and the second interactive command is sent to the designated accelerator card through the second communication interface through the designated logic device, thereby solving the problem of low adaptation efficiency caused by the need to perform separate adaptation for various accelerator cards through the BMC in the transmission method of interactive data in the related art, and improving the efficiency of accelerator card adaptation.

[0044] In an exemplary embodiment, in response to the first interactive command, querying a pre-stored command data set through a designated logic device to obtain target command data includes:

[0045] S11, in response to the first interaction command, extracting an accelerator card identifier and a specified command code of a specified accelerator card from the first interaction command through a specified logic device, wherein the specified command code is used to identify a specified interaction type;

[0046] S12: querying a pre-stored command data set based on the accelerator card identifier of the designated accelerator card and the designated command code through the designated logic device to obtain target command data.

[0047] To identify the interaction type, a command code can be introduced. In this embodiment, the first interaction command can carry the accelerator card identifier of the specified accelerator card and the specified command code. The specified command code can be used to identify the specified interaction type. After the specified logic device receives the first interaction command, the specified logic device can extract the accelerator card identifier and the specified command code from the first interaction command. The specified logic device then queries a pre-stored command data set based on the accelerator card identifier and the specified command code of the specified accelerator card to obtain the target command data.

[0048] Here, similar to the aforementioned embodiment, the command data set may include manufacturer-designed command data corresponding to different interaction types of different accelerator cards. The accelerator card identifier may include, but is not limited to, at least one of the following: the card number of the accelerator card, the address information of the accelerator card. The designated command code may be a command code used between the BMC and the designated logic device to identify the designated interaction type. It may be the same designated command code corresponding to the designated interaction type for different accelerator cards, or it may be the same designated command code corresponding to the designated interaction type for the designated interaction type of the designated accelerator card, and the command codes for the same designated interaction type for different accelerator cards may be different. This is not limited in this embodiment.

[0049] For example, in this embodiment, the specified command codes for the specified interaction types of different accelerator cards may be the same, and the command codes correspond to the interaction types.

[0050] Table 1

[0051] Among them, taking the designated accelerator card as accelerator card 2 and the designated interaction type as obtaining the firmware version as an example, the first interaction command can carry the accelerator card identifier and the specified command code of the specified accelerator card, and the accelerator card identifier and the specified command code "0x01" of accelerator card 2 are extracted from the first interaction command through the designated logical device. The pre-stored command data set is queried based on the accelerator card identifier and the specified command code "0x01" of accelerator card 2 through the designated logical device, and the command data set set by the manufacturer and obtained according to the firmware version corresponding to accelerator card 2 can be obtained.

[0052] It should be noted that, in this embodiment, the interactive commands between the BMC and the specified logic device only need to define fixed command codes and can be transmitted using standard I2C (Inter-Integrated Circuit, a simple, bidirectional two-wire synchronous serial bus) read and write commands.

[0053] Through this embodiment, the interaction type is identified by the command code, and a unified command format for the interaction between the BMC unit and the specified logic device is defined by the unified interface format, which can improve the efficiency of obtaining the manufacturer-defined command data of the specified interaction type corresponding to the specified accelerator card.

[0054] In an exemplary embodiment, the target command data is obtained by querying a pre-stored command data set based on an accelerator card identifier and a specified command code of a specified accelerator card through a specified logic device, including:

[0055] S21: querying an address mapping table using an accelerator card identifier and a specified command code of a specified accelerator card through a specified logic device to obtain first storage location information, wherein the first storage location information is used to indicate a storage location of command data of a specified interaction type corresponding to the specified accelerator card, and the address mapping table is used to store a mapping relationship between a combination of the accelerator card identifier and the command code and a storage location of the corresponding command data;

[0056] S22: extracting target command data from the storage location indicated by the first storage location information through a designated logic device.

[0057] Similar to the aforementioned embodiment, the command data set includes manufacturer-designed command data of different interaction types corresponding to at least some of a group of accelerator cards. In order to find the target command data based on the accelerator card identifier and the specified command code of the specified accelerator card, an address mapping table can be introduced. Here, when the specified command code corresponds only to the specified interaction type, the address mapping table can be used to store the mapping relationship between the combination of the accelerator card identifier and the command code and the storage location of the corresponding command data. When the specified command code corresponds to the specified interaction type of the specified accelerator card, the address mapping table can be used to store the mapping relationship between the command code and the storage location of the corresponding command data. That is, the address mapping table can be used to indicate the mapping relationship between command data of different interaction types of different accelerator cards and the storage location of the command data.

[0058] In this embodiment, the first storage location information can be used to indicate the storage location of command data of a specified interaction type corresponding to a specified accelerator card, and the target command data can be extracted from the storage location indicated by the first storage location information through a specified logic device.

[0059] Here, the storage location information of the target command data can be indication information including the starting position and ending position of the target command data, or it can be indication information including the starting position and data length of the target command data, or it can be other indication information used to indicate the storage location of the target command data, which is not limited in this embodiment.

[0060] For example, in an exemplary embodiment, taking the storage location information of the target command data including indication information of the starting position and data length of the target command data as an example, the first storage location information is obtained by querying the address mapping table using the accelerator card identifier of the specified accelerator card and the specified command code through the specified logic device, including:

[0061] S31, querying an address mapping table using the accelerator card identifier and the specified command code of the specified accelerator card through the specified logic device to obtain first starting position information and first data length information, wherein the first starting position information is used to indicate the starting storage position of command data of the specified interaction type corresponding to the specified accelerator card, the first data length information is used to indicate the data length of the command data of the specified interaction type corresponding to the specified accelerator card, and the first storage position information includes the first starting position information and the first data length information.

[0062] Through this embodiment, the address mapping table stores the mapping relationship between the command data and the location information of the command data designed by the manufacturer and corresponding to the different interaction types of different accelerator cards, thereby improving the efficiency of obtaining the command data.

[0063] In an exemplary embodiment, each command data in a command data set is stored respectively through a specified data structure in a specified data structure set, and each specified data structure in the specified data structure set includes a data header and a data body, the data header includes a storage location field for storing the storage location of the corresponding command data, an accelerator card identification field for storing the accelerator card identification of the corresponding accelerator card, and a command code field for storing the corresponding command code, and the data body is used to store the corresponding command data.

[0064] Correspondingly, the specified logic device queries the pre-stored command data set based on the accelerator card identifier of the specified accelerator card and the specified command code to obtain the target command data, including:

[0065] S41, using the accelerator card identifier and the specified command code of the specified accelerator card through the specified logic device to sequentially query the accelerator card identifier field and the command code field of the data header of each specified data structure;

[0066] S42: When the target data structure is found, extract second storage location information from the storage location field of the data header of the target data structure through the designated logic device, wherein the accelerator card identifier stored in the accelerator card identifier field of the data header of the target data structure is the same as the accelerator card identifier of the designated accelerator card, and the command code stored in the command code field of the data header of the target data structure is the same as the designated command code, and the second storage location information is used to indicate a storage location of the command data stored in the target data structure.

[0067] S43: extracting target command data from the data body of the target data structure from the storage location indicated by the second storage location information through a designated logic device.

[0068] In this embodiment, the management interface commands of acceleration cards from different manufacturers can be stored in a command data set in a specific format. Optionally, each command data in the command data set can be stored respectively through a specified data structure in a specified data structure set, and each specified data structure in the specified data structure set includes a data header and a data body.

[0069] For example, consider a group of N accelerator cards. The commands for these cards are stored sequentially in a command data set. One storage scheme involves storing the command for accelerator card 1 at memory address 0, and the commands for the remaining accelerator cards at subsequent addresses based on the space occupied by the commands. Each accelerator card's command consists of two parts: a header and a payload.

[0070] The following describes the data formats of these two parts respectively:

[0071] The header part is the command header, which is used to describe the specific attributes of the command. It is a common part of each accelerator card command storage, including a storage location field for storing the storage location of the corresponding command data, an accelerator card identification field for storing the accelerator card identification of the corresponding accelerator card, and a command code field for storing the corresponding command code. Here, the storage location of the command data, the accelerator card identification, and the command code can be similar to those in the aforementioned embodiment and are not repeated here.

[0072] The Payload part is the specific storage format of the command. It depends on the command format defined by the accelerator card manufacturer and can be consistent with the manufacturer.

[0073] In the storage format of the command data set described above, to query the target command data, the accelerator card identifier and the specified command code of the specified accelerator card can be used by the specified logic device to sequentially query the accelerator card identifier field and the command code field of the data header of each specified data structure. If a match is found between the accelerator card identifier stored in the accelerator card identifier field of the data header of the specified data structure that is identical to the accelerator card identifier of the specified accelerator card, and the command code stored in the command code field of the data header of the specified data structure that is identical to the specified command code, the specified data structure can be determined to be the target data structure.

[0074] Optionally, the designated data structure may contain designated command codes corresponding to different interaction types in the form of command numbers. For example, the correspondence between the designated command code and the command number corresponding to the designated accelerator card is represented by a command mapping table. The designated accelerator card and its corresponding command number can be determined by querying the command mapping table. The target data structure can also be determined by matching the accelerator card identifier and the command number stored in the accelerator card identifier field of the data header of the designated data structure. Here, the command numbers for the same interaction type for different accelerator cards may be the same. In the case where the designated command code corresponds to different interaction types for different accelerator cards of a group of accelerator cards, that is, when different accelerator cards have different designated command codes for the same interaction type, the data header portion of the designated data structure may only include the command code or the command number corresponding to the command code. Here, the command numbers for the same interaction type for different accelerator cards are different.

[0075] It should be noted that the above method is only an example. In this embodiment, other methods of command data designed by the manufacturer that can uniquely locate the target interaction type of the target accelerator card may also be used.

[0076] When the target data structure is found, the second storage location information can be extracted from the storage location field of the data header of the target data structure by a designated logical device. Here, the second storage location information can be used to indicate the storage location of the command data stored in the target data structure. The target command data is extracted from the data body of the target data structure by the designated logical device from the storage location indicated by the second storage location information. Similar to the first storage location information, the second storage location information can be information indicating the starting and ending positions of the target command data, information indicating the starting position and data length of the target command data, or other information indicating the storage location of the target command data, which is not limited in this embodiment.

[0077] Optionally, in an exemplary embodiment, the second storage location information includes indication information of the starting position and data length of the target command data, for example, and the storage location field may include a starting position field for storing the starting storage position of the corresponding command data and a data length field for storing the data length of the corresponding command data.

[0078] Correspondingly, when the target data structure is found, extracting the second storage location information from the storage location field of the data header of the target data structure by specifying the logic device includes:

[0079] S51. When the target data structure is found, the second starting position information is extracted from the starting position field of the data header of the target data structure and the second data length information is extracted from the data length field through the designated logical device, wherein the second starting position information is used to indicate the starting storage position of the command data corresponding to the target data structure, the second data length information is used to indicate the data length of the command data corresponding to the target data structure, and the second storage position information includes the second starting position information and the second data length information.

[0080] For example, in this embodiment, the data header may include four fields: the starting position field Signature, the card number field Card Index, the command number field Cmd Index, and the data length field Payload Length. The Signature is a fixed 2-byte field (0x550xAA) used to identify the starting position of the command; the Card Index is the number of the accelerator card in the system, which occupies 1 byte and can describe 256 accelerator cards; the Cmd Index is the command number of the accelerator card, which occupies 1 byte and can define 256 commands; the last field is Payload Length, which is used to describe the byte length of the Payload portion of the data body and occupies 1 byte.

[0081] Through this embodiment, the management interface commands of acceleration cards from different manufacturers are stored in a specific format through a unified data structure, which can improve the efficiency of data processing, facilitate data query, and reduce the complexity and time cost of data processing.

[0082] In an exemplary embodiment, each designated data structure further includes a verification data portion, the verification data portion being used to store verification data of the corresponding command data; the above method further includes:

[0083] S61, when the target data structure is found, extracting first verification data from the verification data portion of the target data structure by using a designated logic device;

[0084] S62: Verify the target command data using the first verification data through the designated logic device.

[0085] To improve data security and reliability, a checksum can be added to a specified data structure to store verification data for the corresponding command data. For example, Figure 3 shows an optional storage format for accelerator card commands within a command data set. The CRC is the verification portion of the command, and the data involved in the checksum can start at the Card Index in the Header and end at the last byte of the Payload.

[0086] When the target data structure is found, the first verification data can be extracted from the verification data part of the target data structure through the designated logical device, and the target command data can be verified using the first verification data through the designated logical device. If the verification passes, the target command data will be converted into a second interactive command; otherwise, the data will be discarded, an error will be reported, or re-verified.

[0087] Through this embodiment, by verifying whether the target command data in the data structure is valid, complete and correct through the verification data part, the quality and security of the data can be guaranteed and the reliability and availability of the data can be improved.

[0088] In an exemplary embodiment, in response to the first interactive command, extracting the accelerator card identifier and the designated command code of the designated accelerator card from the first interactive command by a designated logic device includes:

[0089] S71. In response to a first interaction command, extract the accelerator card number and the specified command code of the specified accelerator card from the first interaction command through a specified logic device, wherein the accelerator card identifier of the specified accelerator card includes the accelerator card number of the specified accelerator card, the specified command code belongs to a group of preset command codes, the specified interaction type belongs to a group of preset interaction types, the preset command codes in a group of preset command codes correspond one-to-one to the preset interaction types in a group of preset interaction types, and the preset command codes for command data of the same interaction type corresponding to different accelerator cards in a group of accelerator cards are the same.

[0090] In this embodiment, taking the example of an accelerator card identifier carried in a first interaction command as the accelerator card number, and command codes for command data of the same interaction type corresponding to different accelerator cards being the same, a designated logic device can extract the accelerator card number and designated command code of the designated accelerator card from the first interaction command. The designated command code belongs to a set of preset command codes, and the designated interaction type belongs to a set of preset interaction types. The preset command codes in the set of preset command codes correspond one-to-one to the preset interaction types in the set of preset interaction types. Optionally, the preset interaction types may include, but are not limited to, firmware version acquisition, temperature acquisition, power consumption acquisition, and manufacturer information acquisition.

[0091] Through this embodiment, a unified command code is used to identify the same interaction type of different accelerator cards, which can simplify the size of the command code set and improve the efficiency of data transmission.

[0092] In an exemplary embodiment, before querying the pre-stored command data set based on the accelerator card identifier of the designated accelerator card and the designated command code through the designated logic device, the method further includes:

[0093] S81: Using a specified command code, searching a command code mapping table corresponding to the accelerator card number of a specified accelerator card using a specified logic device, and updating the specified command code to the found command code to obtain an updated specified command code, wherein the command code mapping table is used to store a mapping relationship between each preset command code in a set of preset command codes and a command code configured for the specified accelerator card.

[0094] In the case where the designated command code carried in the first interaction command corresponds to the interaction type, that is, when different accelerator cards have the same designated command code for the same interaction type, the command code corresponding to the accelerator card number of the designated accelerator card can be searched based on the command code mapping table to obtain an updated designated command code. The updated command code is the command code of the designated interaction type corresponding to the designated accelerator card, that is, the updated command codes for the same interaction type of different accelerator cards can be different. The command code mapping table is used to store the mapping relationship between each preset command code in a set of preset command codes and the command code configured for the designated accelerator card.

[0095] In an exemplary embodiment, before converting the target command data into the second interactive command by the designated logic device, the method further includes:

[0096] S91, obtaining, by a designated logic device, second verification data of the target command data from pre-stored verification data of each command data in the command data set;

[0097] S92: Verify the target command data using the second verification data through the designated logic device.

[0098] In this embodiment, the pre-stored command data set may include a verification data portion of the target command data. When the target command data is found based on the address mapping table, the storage location information of the verification data portion corresponding to the target command data may be indicated based on the address mapping table. Alternatively, a positional relationship between the target command data and the corresponding verification data portion may be preset. Optionally, the starting and ending positions of the verification data portion, or the starting position and data length, may be preset. For example, the verification data portion may be located after the command data, with the bit following the last bit of the command data being the starting position of the verification data portion. Second verification data for the target command data is obtained from the pre-stored verification data corresponding to each command data in the command data set by a designated logic device.

[0099] Alternatively, when data is stored in a command data set in a specified data structure comprising a data header, a data body and verification data, the second verification data of the target command data is obtained from the pre-stored verification data of each command data in the command data set through a specified logic device.

[0100] The target command data is verified by using the second verification data through the designated logic device, and the target command data is converted into a second interactive command when the target command data passes the verification.

[0101] Through this embodiment, by verifying whether the target command data in the command data set is valid, complete and correct through the verification data part, the quality and security of the data can be guaranteed and the reliability and availability of the data can be improved.

[0102] In an exemplary embodiment, in response to the first interactive command, querying a pre-stored command data set through a designated logic device to obtain target command data includes:

[0103] S101 , in response to a first interactive command, querying a command data set pre-stored in a powered erasable programmable read-only memory of a target device through a designated logic device to obtain target command data.

[0104] In this embodiment, the command data set can be stored in the EEPROM (Electrically Erasable Programmable read only memory) of the target device. For example, the management interface commands of accelerator cards from different manufacturers can be stored in the EEPROM in a specific format using the off-chip EEPROM on the server motherboard. After receiving the first interactive command from the BMC, the designated logic device queries the command sent to the accelerator card in the above EEPROM to obtain the target command data.

[0105] Here, off-chip EEPROM is an external memory used to store nonvolatile data. The stored data can be modified through electronic erasing and programming operations. Compared to on-chip EEPROM, off-chip EEPROM typically has a larger storage capacity and can store more data. It is often used in conjunction with microcontrollers or other electronic devices to store non-volatile data such as configuration information, calibration data, and user settings. Off-chip EEPROM typically communicates with the host device via a serial interface such as I2C or SPI. It can be read and written, allowing data to be modified and updated.

[0106] Through this embodiment, the command data set is stored in the EEPROM. Due to its non-volatile characteristics, the data stored in the EEPROM can still be retained after power failure or restart, which can ensure the security and persistence of the data.

[0107] In an exemplary embodiment, receiving, by a designated logic device, a first interaction command sent by a baseboard management controller through a first communication interface includes:

[0108] S111 , receiving, through a designated logic device, a first interaction command sent by a baseboard management controller through a first communication interface via a first communication bus, wherein the first communication interface is an inter-integrated circuit I2C interface, and the first communication bus is an I2C bus.

[0109] In this embodiment, when the BMC needs to interact with a certain accelerator card to manage it, the BMC first sends a command to the designated logic device via I2C. For example, the BMC unit has a control core (Core), usually an Arm processor, on which the BMC management system, such as the Linux system, runs. The BMC's management of the accelerator card needs to be the responsibility of the application in the system, and ultimately data is sent and received through the BMC I2C. The BMC I2C (master controller) is connected to the designated logic device I2C1 (slave controller) via the I2C bus to achieve data interaction with the designated logic device.

[0110] Through this embodiment, the transmission of an interaction command of a specified interaction type to a specified accelerator card in a group of accelerator cards is implemented through a unified I2C communication interface between a specified logic device and a baseboard management controller. This can avoid separate interface adaptation between the baseboard management controller and each accelerator card in a group of accelerator cards, improve the firmware adaptation efficiency on the BMC side, effectively save the manpower investment cost of accelerator card adaptation, increase the application implementation speed of the accelerator card, and further reduce equipment costs.

[0111] In an exemplary embodiment, sending the second interaction command to the designated accelerator card through the second communication interface by the designated logic device includes:

[0112] S121: Send a second interactive command to a designated accelerator card through a second communication interface and a second communication bus through a designated logic device, wherein the second communication interface is an internal integrated circuit I2C interface and the second communication bus is an I2C bus.

[0113] For example, in this embodiment, after receiving a command from the BMC, the designated logic device queries a pre-stored command data set to obtain target command data. This target command data is converted into a command for a designated accelerator card, and then the command is sent to the corresponding accelerator card via the I2C bus. Specifically, the target command data is converted into a command compatible with the designated accelerator card and conforming to the I2C communication protocol format. The converted command is then sent to a group of accelerator cards via the I2C interface.

[0114] In an exemplary embodiment, in response to the first interactive command, querying a pre-stored command data set through a designated logic device to obtain target command data includes:

[0115] S131, in response to the first interaction command, sends a data query command to the designated memory through the second communication bus through the designated logic device, and receives target command data returned by the designated memory through the second communication bus, wherein a command data set is pre-stored in the designated memory, and the data query command is used to query command data of a specified interaction type corresponding to the specified accelerator card.

[0116] In this embodiment, data can be transmitted between a designated logic device and a designated memory, and between a designated logic device and a group of accelerator cards, via the same communication bus. For example, the designated logic device can be connected to the I2C bus via an I2C interface to implement data transmission between the designated logic device and a group of accelerator cards and the designated memory. In response to a first interaction command, the designated logic device can send a data query command to the designated memory via a second communication bus, and receive target command data returned by the designated memory via the second communication bus. The designated memory has a command data set pre-stored therein, and the data query command is used to query command data of a specified interaction type corresponding to the designated accelerator card.

[0117] In an exemplary embodiment, the second interactive command carries the accelerator card address of the designated accelerator card. Correspondingly, after the designated logic device sends the second interactive command to the designated accelerator card via the second communication interface, the method further includes:

[0118] S141: Receive, by the designated accelerator card, a second interactive command from the second communication bus via the I2C interface of the designated accelerator card, and extract the accelerator card address carried in the second interactive command;

[0119] S142: If it is determined that the accelerator card address carried in the second interactive command is the same as the accelerator card address of the designated accelerator card, extract target command data from the second interactive command through the designated accelerator card.

[0120] S143, in response to the target command data, converting the first response data of the target command data into a first response command through the designated accelerator card, and sending the first response command to the designated logic device via the second communication bus through the I2C interface of the designated accelerator card, so that the designated logic device sends the first response data carried in the first response command to the baseboard management controller.

[0121] In order to help the two interacting parties confirm each other's identity and location, ensure that information and instructions are sent to the correct device, and increase the accuracy and security of the interaction, the accelerator card address of the specified accelerator card can be carried in the second interaction command. Here, the accelerator card address of the specified accelerator card can be carried in the first interaction command sent by the BMC to the specified logic device, and then carried in the second interaction command, or it can be obtained by the correspondence between the accelerator card identifier of a group of accelerator cards stored in the specified memory and the address information of the accelerator card, and then carried in the second interaction command, or it can be other acquisition methods, which are not limited in this embodiment.

[0122] For example, in this embodiment, each accelerator card in a group of accelerator cards receives a command from a designated logic device through its own communication interface (e.g., an I2C interface), determines whether the command is sent to itself by comparing the address information, and responds to the command if the address information matches its own, otherwise it does not respond. The designated accelerator card that matches the address information carried in the second interactive command extracts the target command data from the second interactive command, and in response to the target command data, converts the first response data of the target command data into a first response command through the designated accelerator card, and sends the first response command to the designated logic device via the I2C interface of the designated accelerator card via the second communication bus, so that the designated logic device sends the first response data carried in the first response command to the baseboard management controller.

[0123] According to this embodiment, by carrying the address information of a specified accelerator card in a group of accelerator cards in the interaction command between the specified logic device and the group of accelerator cards, the efficiency and reliability of the interaction can be improved.

[0124] In an exemplary embodiment, after the second interaction command is sent to the designated accelerator card through the second communication interface by the designated logic device, the method further includes:

[0125] S151: Receive, through a designated logic device, a second response command returned by a designated accelerator card in response to a second interactive command;

[0126] S152, in response to the second response command, performing command parsing on the second response command by a designated logic device to obtain second response data;

[0127] S153: Transmit the second response data to the baseboard management controller through the designated logic device.

[0128] Some logic is required inside the designated logic device to implement command processing, including a command receiving and parsing module, etc. For example, in this embodiment, the designated logic device receives a response command from a designated accelerator card, and can parse the response command through the command receiving and parsing module to obtain response data corresponding to the designated interaction type of the designated accelerator card, and then transmit the response data to the baseboard management controller through the designated logic device.

[0129] In an exemplary embodiment, transmitting the second response data to the baseboard management controller through the designated logic device includes:

[0130] S161, setting the state of the universal input / output interface between the designated logic device and the baseboard management controller through the designated logic device, so as to notify the baseboard management controller of the existence of response data to be obtained through the state change of the universal input / output interface;

[0131] S162, receiving a response data acquisition command sent by the baseboard management controller through a designated logic device, wherein the response data acquisition command is used to acquire response data sent to the baseboard management controller;

[0132] S163 , in response to the response data acquisition command, sending second response data to the baseboard management controller through the designated logic device.

[0133] For example, the designated logic device notifies the BMC that the response command has been parsed by setting a state change on the General Purpose Input / Output (GPIO) interface between the designated logic device and the baseboard management controller. The BMC sends a Get Response Data command to the designated logic device via the BMC I2C. The designated logic device receives the command from the BMC, converts the parsed data through the command response module, and sends it back to the BMC.

[0134] Through this embodiment, the GPIO state change is set by specifying the logic device to notify the BMC unit that the response command has been parsed. This does not require complex communication protocols and hardware support, is simple and easy to implement, and the GPIO state change can be responded to in real time, which can achieve real-time communication and control.

[0135] In an exemplary embodiment, after setting the state of the general input / output interface between the designated logic device and the baseboard management controller by the designated logic device, the method further includes:

[0136] S171 , detecting the state of the universal input / output interface through the baseboard management controller, triggering a universal input / output interface interrupt based on the detected state of the universal input / output interface, and sending a response data acquisition command to a designated logic device.

[0137] In this embodiment, the BMC unit can detect the status of the general input and output interface. When a status change is detected, the BMC unit can trigger a GPIO interrupt inside the BMC unit and send a get response data command to the specified logic device through the BMC I2C.

[0138] Here, the command code of the control command for obtaining the response data command may be 0xFF. The control command refers to the obtain response data command, which is mainly used to control data transmission between the BMC unit and the specified logic device. The usage of this command is: after the BMC unit triggers the GPIO interrupt, it sends this command to inform the specified logic device to send response data to the BMC.

[0139] Through this embodiment, the triggered GPIO interrupt can be used to immediately notify the processor when a specific condition occurs so that the corresponding handler can be executed. This mechanism allows the processor to wait for a specific event to occur while performing other tasks, thereby improving the system's responsiveness and efficiency.

[0140] In an exemplary embodiment, the designated logic device is a complex programmable logic device, and a group of accelerator cards are all artificial intelligence accelerator cards; the interaction command of the designated interaction type is one of the following commands: firmware version acquisition command, temperature acquisition command, power consumption acquisition command, and manufacturer information acquisition command.

[0141] In this embodiment, the designated logic device can be a CPLD (Complex Programmable Logic Device), and a group of accelerator cards can all be artificial intelligence (AI) accelerator cards. For example, referring to Figure 4, the system architecture of a single CPU with multiple AI accelerator cards can be divided into five parts: the BMC unit, the CPLD unit, the configuration unit, the AI ​​accelerator unit, and the CPU unit. The connection relationship between these parts is described in detail below.

[0142] First, the BMC transmits and receives data via the BMC I2C bus. The BMC I2C (master controller) connects to the CPLD I2C1 (slave controller) via the I2C bus, enabling data exchange with the CPLD. Additionally, interrupt signals are transmitted between the BMC and CPLD via GPIO.

[0143] The CPLD unit exchanges data with the BMC unit via the CPLD I2C1 and GPIO. It also connects to the I2C Bus via the CPLD I2C2 (master controller) to enable data transmission between the CPLD and the AI ​​accelerator and configuration units. Furthermore, to achieve compatibility with different AI accelerator cards, the CPLD requires internal logic to process commands, including a command query module, a command sending module, a command receiving and parsing module, and a command response module.

[0144] The configuration unit is an EEPROM chip, which is connected to the CPLD unit via the I2C bus and is responsible for storing commands for different AI accelerator cards.

[0145] The AI ​​accelerator unit includes multiple AI accelerator cards, such as AI accelerator cards 1 to N in Figure 4. These accelerator cards can be any of the FPGA (Field-Programmable Gate Array), SOC (System-on-a-Chip), or ASIC (Application-Specific Integrated Circuit) architectures. As shown in Figure 4, each AI accelerator card is connected to the CPU via a PCIe (Peripheral Component Interconnect Express) channel and to the I2C Bus via an I2C slave controller, enabling interaction of accelerator card management information with the CPLD.

[0146] The CPU unit is the computing unit responsible for system management and logical operations. It is connected to the AI ​​accelerator unit via a PCIe channel. By collaborating with the AI ​​accelerator unit, it significantly improves the system's computing speed.

[0147] To ensure compatibility with accelerator cards from different manufacturers, the device system usually uses the BMC unit to perform individual adaptation for each accelerator card. In this embodiment, through the system architecture shown in FIG4 , multiple management interfaces individually adapted between the BMC and each accelerator card can be converted into a unified interactive command interface between the BMC and the CPLD, and between the CPLD and a group of AI accelerator cards. That is, the BMC unit and the CPLD unit exchange data via an I2C interface based on a unified interactive command format. The identification information of the designated accelerator card with which the BMC unit needs to exchange management data and the interaction type are sent to the CPLD unit in a unified interactive command format. The CPLD unit queries the corresponding manufacturer-defined command data pre-stored in the EEPROM chip via the I2C bus and converts the queried command data into a command format that complies with the I2C communication protocol. The interactive command in the command format that complies with the I2C communication protocol is then sent to the group of AI accelerator cards via the I2C bus. Because a unified interactive command interface is used between the BMC and the CPLD, and between the CPLD and a group of AI accelerator cards, the BMC does not need to be individually adapted to each accelerator card. This can solve the problem of low adaptation efficiency in the related art interactive data transmission method due to the need for the BMC to individually adapt to various accelerator cards.

[0148] In an exemplary embodiment, the management method of the AI ​​accelerator card of the server proposed in this embodiment is explained by taking the BMC obtaining the firmware version information of the AI ​​accelerator card 2, specifying the logic device as the CPLD, and specifying the memory as the off-chip EEPROM as an example.

[0149] Because different manufacturers haven't adopted a unified management interface specification when designing AI accelerator cards, management methods for these cards vary significantly. This includes inconsistent information support and differing protocols and command formats for accessing the same information. This diversity of management interfaces presents significant challenges for adapting AI accelerator cards to server systems. To ensure compatibility with accelerator cards from different vendors, server manufacturers traditionally use the Baseboard Management (BMC) management unit (BMC) to individually adapt each accelerator card. This approach, with its numerous management interfaces, presents significant adaptation challenges and cycle times, as well as significant repetitive work. Furthermore, BMCs typically involve a vast array of functions and complex code logic. Adding management support to a large number of accelerator cards inevitably increases the complexity of code debugging, potentially impacting the overall implementation of server products. Consequently, there is an urgent need for an efficient accelerator card management method to accelerate the implementation of AI accelerator cards and provide a solid foundation for the rapid adoption of various AI technologies.

[0150] In order to solve the above-mentioned problems, this embodiment provides an efficient management method for AI accelerator cards in a server. The implementation principle of this method is: using the off-chip EEPROM on the server motherboard, the management interface commands of AI accelerator cards of different manufacturers are stored in the EEPROM in a specific format. When the BMC needs to interact with a certain AI accelerator card to manage it, the BMC first sends a command to the CPLD through I2C. After receiving the command from the BMC, the CPLD queries the command sent to the AI ​​accelerator card in the above EEPROM and sends the command to the corresponding accelerator card through the I2C bus. When the AI ​​accelerator card responds, the corresponding response data is first sent to the CPLD through I2C. The CPLD parses the data by querying the corresponding response data format in the EEPROM, and then notifies the BMC in the form of an interrupt through the GPIO interface. After the BMC receives the interrupt signal, it reads the corresponding data through the I2C bus, and finally realizes the BMC's management of the AI ​​accelerator card. Among them, a unified interface protocol is adopted between the above CPLD and the BMC.

[0151] In this embodiment, CPLD is used in conjunction with an external EEPROM to achieve compatibility with different AI accelerator card management interfaces. A unified storage format is designed based on the EEPROM to store commands for different accelerator cards. Combined with a small amount of CPLD logic, the query and parsing of management commands for different accelerator cards can be achieved. This method is highly efficient and scalable. Furthermore, the interface between the BMC and CPLD in the proposed method is a unified interface. Therefore, only the BMC needs to implement the interface protocol to indirectly implement management functions for different AI accelerator cards. This can greatly improve the firmware adaptation efficiency on the BMC side and significantly accelerate the application and implementation of AI accelerator cards.

[0152] FIG5 is a workflow of the interactive data transmission method according to an embodiment of the present application, which can be divided into the following steps:

[0153] In step 1, the BMC unit sends a command to obtain the firmware version information of AI accelerator card 2 via BMC I2C. This command is sent by the BMC unit to the CPLD unit. In this embodiment of the application, the commands for interaction between the BMC unit and the CPLD unit are designed to be in a unified command format to reduce the difficulty of code adaptation when the BMC responds to different AI accelerator cards.

[0154] The unified interface format defines a unified command format for interaction between the BMC unit and the CPLD unit. The commands for interaction between the BMC unit and the CPLD unit are shown in Figure 6, including general commands and control commands. Among them, the general commands are mainly used by the BMC unit to manage the AI ​​accelerator card, including: firmware version acquisition command, temperature acquisition command, power consumption acquisition command and manufacturer information acquisition command, etc.; the control command refers to the response data acquisition command, which is mainly used to control the data transmission between the BMC unit and the CPLD unit. The usage of this command is: after the BMC unit triggers the GPIO interrupt, it sends this command to inform the CPLD unit to send the response data to the BMC. The interaction commands defined above only need to define fixed command codes, and can be transmitted using standard I2C read and write commands.

[0155] It should be noted that the interactive commands between the BMC unit and the CPLD unit include more than the ones mentioned above. They can be flexibly expanded according to needs during application and can be distinguished by command codes.

[0156] In step 2, the CPLD unit receives commands from the BMC unit via CPLD I2C1, and reads the corresponding command data stored in the configuration unit's EEPROM via CPLD I2C2 through the command query module. The BMC, CPLD, and EEPROM maintain the same mapping table. When the BMC sends a command to the CPLD, the CPLD maps it into the AI ​​accelerator card number (Card Index) and command number (Cmd Index) in the EEPROM. The command storage format in the EEPROM can be shown in Figure 3. The commands of N accelerator cards are stored sequentially in the EEPROM. One storage scheme is to store the command of AI accelerator card 1 at address 0 of the EEPROM, and the commands of the remaining accelerator cards are stored in subsequent addresses according to the space occupied by the commands.

[0157] Step 3: The EEPROM of the configuration unit returns the command data to the CPLD unit.

[0158] In step 4, the CPLD unit converts the received return command data into a command compatible with AI accelerator card 2 through the command sending module, and sends the converted command to the AI ​​accelerator unit through CPLD I2C2.

[0159] In step 5, each AI accelerator card in the AI ​​acceleration unit receives the command from the CPLD unit through its own I2C interface and determines whether the command is sent to itself by comparing the address information. If the address information matches its own, it responds to the command; otherwise, it does not respond.

[0160] Step 6: AI accelerator card 2 responds to the command of the CPLD unit and sends a response data packet to the CPLD unit.

[0161] In step 7, the CPLD unit receives the response data from the AI ​​accelerator card 2 through the CPLD I2C2 interface, parses the response data through the command receiving and parsing module, and obtains the firmware version information of the AI ​​accelerator card 2.

[0162] Step 8: The CPLD unit notifies the BMC unit that the response command has been parsed by setting a GPIO state change.

[0163] Step 9: The BMC unit triggers a GPIO interrupt inside the BMC unit and sends a get response data command to the CPLD unit via the BMC I2C.

[0164] Step 10: The CPLD unit receives the command from the BMC through the CPLD I2C1, converts the data parsed in step 8 into a command that meets the "unified interface format" through the command response module, and sends it to the BMC unit through the CPLD I2C1.

[0165] In step 11, the BMC receives data from the CPLD through the BMC I2C interface, parses the data, and obtains the final command return result, which is the firmware version information of AI accelerator card 2.

[0166] This embodiment provides an efficient management solution for the AI ​​accelerator card of a server. By introducing a CPLD unit between the BMC unit and the AI ​​accelerator unit, the management data interaction between the BMC and the AI ​​accelerator card is converted into a unified interactive command interface between the BMC unit and the CPLD unit. The interactive commands between the CPLD unit and the AI ​​accelerator unit are defined by a unified storage format in the EEPROM. When the management interface of the AI ​​accelerator card changes, it is only necessary to change the storage commands in the EEPROM. The command interaction process between the CPLD unit and the AI ​​accelerator unit can be realized by coordinating the command query and parsing logic in the CPLD unit. It is friendly to the code adaptation of the BMC management unit, greatly reducing the difficulty of the BMC unit's adaptation to different AI accelerator cards. At the same time, it has the characteristics of flexibility, efficiency and strong scalability. The proposed method can significantly shorten the BMC unit adaptation cycle, improve the implementation and delivery efficiency of server products, and effectively ensure the code adaptation efficiency of the BMC unit when dealing with different AI accelerator cards.

[0167] Although the implementation methods described in this application are as above, the above descriptions and definitions are only for the purpose of facilitating the understanding of the implementation methods of this application and are not intended to limit this application. Any modifications and changes made without departing from the spirit and scope of this application, especially the efficient management system architecture, management method, command storage, and command code definition of the accelerator card, are within the scope of protection of the present invention.

[0168] It should be noted that for the aforementioned method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should be aware that this application is not limited by the order of the actions described, because according to this application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by this application.

[0169] According to another aspect of the embodiments of the present application, a system for transmitting interactive data is further provided, which is used to implement the method for transmitting interactive data provided in the above embodiments, and will not be repeated hereafter. As used below, the term "module" may be a combination of software and / or hardware that implements a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware, is also possible and contemplated.

[0170] In this embodiment, the above-mentioned interactive data transmission system includes a baseboard management controller, a designated logic device, and a group of accelerator cards. The baseboard management controller sends an interactive command corresponding to the group of accelerator cards to the designated logic device, and the communication interface used is the first communication interface; the designated logic device sends an interactive command to the group of accelerator cards, and the communication interface used is the second communication interface, wherein,

[0171] The baseboard management controller is configured to send a first interaction command to a specified logic device through a first communication interface, wherein the first interaction command is used to instruct to send an interaction command of a specified interaction type to a specified accelerator card in a group of accelerator cards;

[0172] A designated logic device is configured to receive a first interactive command, query a pre-stored command data set in response to the first interactive command, obtain target command data, convert the target command data into a second interactive command, and send the second interactive command to a designated accelerator card through a second communication interface, wherein the command data set includes a set of command data corresponding to each accelerator card in a group of accelerator cards, and the target command data is command data of a specified interactive type corresponding to the designated accelerator card.

[0173] Optionally, each method step in the above embodiment may be executed by a corresponding component in the interactive data transmission system, which has been explained above and will not be repeated here.

[0174] Through the above-mentioned system of the embodiment provided by the present application, a first interactive command sent by the baseboard management controller through the first communication interface is received through a designated logic device, wherein the first interactive command is used to indicate that an interactive command of a specified interactive type is sent to a designated accelerator card in a group of accelerator cards; in response to the first interactive command, a pre-stored command data set is queried through the designated logic device to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in a group of accelerator cards, and the target command data is command data of a specified interactive type corresponding to the designated accelerator card; the target command data is converted into a second interactive command through the designated logic device, and the second interactive command is sent to the designated accelerator card through the second communication interface through the designated logic device, thereby solving the problem of low adaptation efficiency caused by the need to perform separate adaptation for various accelerator cards through the BMC in the transmission method of interactive data in the related art, thereby improving the efficiency of accelerator card adaptation.

[0175] According to another aspect of the embodiments of the present application, a device for transmitting interactive data is also provided, which is used to implement the method for transmitting interactive data provided in the above embodiments, and will not be repeated hereafter. As used below, the term "module" may be a combination of software and / or hardware that implements a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware, is also possible and contemplated.

[0176] The interactive data transmission device can be applied to a target device, which includes a baseboard management controller, a designated logic device, and a group of accelerator cards. The baseboard management controller sends an interactive command corresponding to the group of accelerator cards to the designated logic device, using a first communication interface; the designated logic device sends an interactive command to the group of accelerator cards, using a second communication interface. Figure 7 is a structural block diagram of an interactive data transmission device according to an embodiment of the present application. As shown in Figure 7, the device includes:

[0177] The first receiving unit 702 is configured to receive, through a designated logic device, a first interaction command sent by the baseboard management controller through the first communication interface, wherein the first interaction command is used to instruct to send an interaction command of a designated interaction type to a designated accelerator card in a group of accelerator cards;

[0178] The query unit 704 is configured to query a pre-stored command data set through a specified logic device in response to the first interaction command to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in a set of accelerator cards, and the target command data is command data of a specified interaction type corresponding to the specified accelerator card;

[0179] The first execution unit 706 is configured to convert the target command data into a second interactive command through a designated logic device, and send the second interactive command to the designated accelerator card through the second communication interface through the designated logic device.

[0180] It should be noted that the first receiving unit 702 in this embodiment can be configured to execute the above step S202, the query unit 704 in this embodiment can be configured to execute the above step S204, and the first executing unit 706 in this embodiment can be configured to execute the above step S206.

[0181] Through the embodiments of the present application, a first interaction command sent by a baseboard management controller through a first communication interface is received through a designated logic device, wherein the first interaction command is used to instruct to send an interaction command of a specified interaction type to a designated accelerator card in a group of accelerator cards; in response to the first interaction command, a pre-stored command data set is queried through a designated logic device to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in a group of accelerator cards, and the target command data is command data of a specified interaction type corresponding to the designated accelerator card; the target command data is converted into a second interaction command through the designated logic device, and the second interaction command is sent to the designated accelerator card through the second communication interface through the designated logic device, thereby solving the problem of low adaptation efficiency in the related art of the interaction data transmission method due to the need to perform separate adaptation for various accelerator cards through the BMC, and improving the efficiency of accelerator card adaptation.

[0182] In an exemplary embodiment, the query unit includes:

[0183] an extraction module configured to, in response to the first interaction command, extract an accelerator card identifier and a specified command code of a specified accelerator card from the first interaction command through a specified logic device, wherein the specified command code is used to identify a specified interaction type;

[0184] The first query module is configured to query a pre-stored command data set based on an accelerator card identifier of a specified accelerator card and a specified command code through a specified logic device to obtain target command data.

[0185] In an exemplary embodiment, the first query module includes:

[0186] a first query submodule configured to query an address mapping table using an accelerator card identifier and a specified command code of a specified accelerator card through a specified logic device to obtain first storage location information, wherein the first storage location information is used to indicate a storage location of command data of a specified interaction type corresponding to the specified accelerator card, and the address mapping table is used to store a mapping relationship between a combination of the accelerator card identifier and the command code and a storage location of the corresponding command data;

[0187] The first extraction submodule is configured to extract target command data from the storage location indicated by the first storage location information through a designated logic device.

[0188] In an exemplary embodiment, the first query submodule includes:

[0189] The query subunit is configured to query the address mapping table using the accelerator card identifier and the specified command code of the specified accelerator card through the specified logic device to obtain first starting position information and first data length information, wherein the first starting position information is used to indicate the starting storage position of the command data of the specified interaction type corresponding to the specified accelerator card, the first data length information is used to indicate the data length of the command data of the specified interaction type corresponding to the specified accelerator card, and the first storage position information includes the first starting position information and the first data length information.

[0190] In an exemplary embodiment, each command data in the command data set is respectively stored by a specified data structure in the specified data structure set, and each specified data structure in the specified data structure set includes a data header and a data body, the data header includes a storage location field for storing a storage location of the corresponding command data, an accelerator card identification field for storing an accelerator card identification of the corresponding accelerator card, and a command code field for storing a corresponding command code, and the data body is used to store the corresponding command data;

[0191] The first query module includes:

[0192] The second query submodule is configured to query the accelerator card identification field and the command code field of the data header of each specified data structure in sequence using the accelerator card identification and the specified command code of the specified accelerator card through the specified logic device;

[0193] a second extraction submodule configured to, when the target data structure is found, extract second storage location information from a storage location field of a data header of the target data structure through a designated logic device, wherein the accelerator card identifier stored in the accelerator card identifier field of the data header of the target data structure is identical to the accelerator card identifier of the designated accelerator card, the command code stored in the command code field of the data header of the target data structure is identical to the designated command code, and the second storage location information is used to indicate a storage location of the command data stored in the target data structure;

[0194] The third extraction submodule is configured to extract the target command data from the data body of the target data structure from the storage location indicated by the second storage location information through a designated logic device.

[0195] In an exemplary embodiment, the storage location field includes a start location field for storing a start storage location of the corresponding command data and a data length field for storing a data length of the corresponding command data;

[0196] The second extraction submodule includes:

[0197] The extraction subunit is configured to extract the second starting position information from the starting position field of the data header of the target data structure and the second data length information from the data length field through a specified logical device when the target data structure is found, wherein the second starting position information is used to indicate the starting storage position of the command data corresponding to the target data structure, the second data length information is used to indicate the data length of the command data corresponding to the target data structure, and the second storage position information includes the second starting position information and the second data length information.

[0198] In an exemplary embodiment, each designated data structure further includes a verification data portion, the verification data portion being used to store verification data of the corresponding command data; the apparatus further includes:

[0199] a first extraction unit configured to extract first verification data from the verification data portion of the target data structure by using a designated logic device when the target data structure is found;

[0200] a first verification unit configured to verify the target command data using first verification data through a designated logic device;

[0201] The conversion of the target command data into the second interactive command is performed when the target command data passes verification.

[0202] In one exemplary embodiment, the extraction module includes:

[0203] The fourth extraction submodule is configured to respond to the first interaction command and extract the accelerator card number and the specified command code of the specified accelerator card from the first interaction command through the specified logic device, wherein the accelerator card identifier of the specified accelerator card includes the accelerator card number of the specified accelerator card, the specified command code belongs to a group of preset command codes, the specified interaction type belongs to a group of preset interaction types, the preset command codes in a group of preset command codes correspond one-to-one to the preset interaction types in a group of preset interaction types, and the preset command codes of the command data of the same interaction type corresponding to different accelerator cards in a group of accelerator cards are the same.

[0204] In an exemplary embodiment, the apparatus further comprises:

[0205] The second execution unit is configured to, before querying a pre-stored command data set based on the accelerator card identifier and the specified command code of the specified accelerator card through the specified logic device, use the specified command code to search a command code mapping table corresponding to the accelerator card number of the specified accelerator card through the specified logic device, and update the specified command code to the found command code to obtain an updated specified command code, wherein the command code mapping table is used to store a mapping relationship between each preset command code in a set of preset command codes and the command code configured for the specified accelerator card.

[0206] In an exemplary embodiment, the apparatus further comprises:

[0207] an acquiring unit configured to acquire, by the designated logic device, second verification data of the target command data from pre-stored verification data corresponding to each command data in the command data set before converting the target command data into the second interactive command by the designated logic device;

[0208] a second verification unit configured to verify the target command data using the second verification data through a designated logic device;

[0209] The conversion of the target command data into the second interactive command is performed when the target command data passes verification.

[0210] In an exemplary embodiment, the query unit includes:

[0211] The second query module is configured to query the command data set pre-stored in the electrically erasable programmable read-only memory of the target device through the designated logic device in response to the first interactive command to obtain target command data.

[0212] In an exemplary embodiment, the first receiving unit includes:

[0213] The first receiving module is configured to receive a first interactive command sent by the baseboard management controller through the first communication interface via the first communication bus through a designated logic device, wherein the first communication interface is an internal integrated circuit I2C interface and the first communication bus is an I2C bus.

[0214] In an exemplary embodiment, the first execution unit includes:

[0215] The first sending module is configured to send the second interactive command to the designated accelerator card through the second communication interface and the second communication bus through the designated logic device, wherein the second communication interface is an internal integrated circuit I2C interface and the second communication bus is an I2C bus.

[0216] In an exemplary embodiment, the query unit includes:

[0217] The execution module is configured to respond to the first interaction command, send a data query command to the specified memory through the second communication bus through the specified logic device, and receive target command data returned by the specified memory through the second communication bus, wherein a command data set is pre-stored in the specified memory, and the data query command is used to query command data of a specified interaction type corresponding to the specified accelerator card.

[0218] In an exemplary embodiment, the second interactive command carries an accelerator card address of a specified accelerator card; and the apparatus further includes:

[0219] a third execution unit configured to, after the designated logic device sends the second interaction command to the designated accelerator card through the second communication interface, receive the second interaction command from the second communication bus through the designated accelerator card via the I2C interface of the designated accelerator card, and extract the accelerator card address carried in the second interaction command;

[0220] a second extraction unit configured to extract target command data from the second interactive command through the designated accelerator card when it is determined that the accelerator card address carried in the second interactive command is the same as the accelerator card address of the designated accelerator card;

[0221] The fourth execution unit is configured to respond to the target command data, convert the first response data of the target command data into a first response command through the designated acceleration card, and send the first response command to the designated logic device via the second communication bus through the I2C interface of the designated accelerator card, so that the designated logic device sends the first response data carried in the first response command to the baseboard management controller.

[0222] In an exemplary embodiment, the apparatus further comprises:

[0223] a second receiving unit configured to, after sending the second interactive command to the designated accelerator card through the second communication interface through the designated logic device, receive, through the designated logic device, a second response command returned by the designated accelerator card in response to the second interactive command;

[0224] a parsing unit configured to, in response to the second response command, parse the second response command through a designated logic device to obtain second response data;

[0225] The transmitting unit is configured to transmit the second response data to the baseboard management controller through a designated logic device.

[0226] In one exemplary embodiment, the transmission unit includes:

[0227] a setting module configured to set a state of a universal input / output interface between the designated logic device and the baseboard management controller through a designated logic device, so as to notify the baseboard management controller of the existence of response data to be obtained through a state change of the universal input / output interface;

[0228] A second receiving module is configured to receive a response data acquisition command sent by the baseboard management controller through a designated logic device, wherein the response data acquisition command is used to acquire response data sent to the baseboard management controller;

[0229] The second sending module is configured to send the second response data to the baseboard management controller through the designated logic device in response to the response data acquisition command.

[0230] In an exemplary embodiment, the apparatus further comprises:

[0231] The fifth execution unit is configured to, after setting the state of the universal input / output interface between the specified logic device and the baseboard management controller through the specified logic device, detect the state of the universal input / output interface through the baseboard management controller, trigger a universal input / output interface interrupt based on the detected state of the universal input / output interface, and send a response data acquisition command to the specified logic device.

[0232] In an exemplary embodiment, the designated logic device is a complex programmable logic device, and a group of accelerator cards are all artificial intelligence accelerator cards; the interaction command of the designated interaction type is one of the following commands: firmware version acquisition command, temperature acquisition command, power consumption acquisition command, and manufacturer information acquisition command.

[0233] According to another aspect of the embodiments of the present application, a computer non-volatile readable storage medium is provided, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when running.

[0234] In an exemplary embodiment, the above-mentioned non-volatile computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, a read-only memory, a random access memory, a mobile hard disk, a magnetic disk, or an optical disk.

[0235] According to one aspect of the present application, a computer program product is provided, which includes a computer program / instruction, which contains program code for executing the method shown in the flowchart. In such an embodiment, referring to Figure 8, the computer program can be downloaded and installed from the network via the communication part 809, and / or installed from a removable non-volatile readable storage medium 811. When the computer program is executed by the central processing unit 801, the various functions provided by the embodiments of the present application are performed. The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages and disadvantages of the embodiments.

[0236] Refer to FIG8 , which is a structural block diagram of a computer system of an optional electronic device provided in an embodiment of the present application.

[0237] Fig. 8 schematically shows a computer system structure block diagram for realizing the electronic equipment of embodiment of the present application.As shown in Figure 8, computer system 800 includes central processing unit 801 (Central Processing Unit, CPU), which can perform various appropriate actions and processes according to the program stored in read-only memory 802 (Read-Only Memory, ROM) or the program loaded into random access memory 803 (Random Access Memory, RAM) from storage part 808. In random access memory 803, various programs and data required for system operation are also stored. Central processing unit 801, read-only memory 802 and random access memory 803 are connected to each other through bus 804. Input / output interface 805 (Input / Output interface, referred to as I / O interface) is also connected to bus 804.

[0238] The following components are connected to the input / output interface 805: an input section 806 including a keyboard, a mouse, and the like; an output section 807 including devices such as a cathode ray tube (CRT), a liquid crystal display (LCD), and a speaker; a storage section 808 including a hard disk and the like; and a communication section 809 including a network interface card such as a local area network card or a modem. The communication section 809 performs communication processing via a network such as the Internet. A drive 810 is also connected to the input / output interface 805 as needed. A removable non-volatile readable storage medium 811, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, and the like, is installed in the drive 810 as needed, so that a computer program read therefrom can be installed into the storage section 808 as needed.

[0239] In particular, according to an embodiment of the present application, the processes described in the various method flow charts can be implemented as computer software programs. For example, an embodiment of the present application includes a computer program product comprising a computer program carried on a computer non-volatile readable storage medium, the computer program containing program code for executing the methods shown in the flow charts. In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 809, and / or installed from a removable non-volatile readable storage medium 811. When the computer program is executed by the central processing unit 801, the various functions defined in the system of the present application are executed.

[0240] It should be noted that the computer system 800 of the electronic device shown in FIG8 is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.

[0241] According to another aspect of the embodiments of the present application, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any of the above method embodiments.

[0242] In an exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.

[0243] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail here.

[0244] Obviously, those skilled in the art should understand that the various modules or steps of the above-mentioned embodiments of the present application can be implemented using a general-purpose computing device, they can be concentrated on a single computing device, or distributed on a network composed of multiple computing devices, they can be implemented using program codes executable by the computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, the steps shown or described can be performed in a different order than herein, or they can be made into individual integrated circuit modules, or multiple modules or steps therein can be made into a single integrated circuit module for implementation. Thus, the embodiments of the present application are not limited to any specific combination of hardware and software.

[0245] The above are only preferred embodiments of the present application and are not intended to limit the embodiments of the present application. For those skilled in the art, the embodiments of the present application may be modified and varied in various ways. Any modifications, equivalent replacements, improvements, etc. made within the principles of the embodiments of the present application shall be included in the scope of protection of the embodiments of the present application.

Claims

1. A method for transmitting interactive data, characterized in that: Applied to a target device, the target device includes a baseboard management controller, a designated logic device and a group of acceleration cards, the baseboard management controller sends an interaction command corresponding to the group of acceleration cards to the designated logic device, and the communication interface used is a first communication interface; The designated logic device sends an interaction command to the group of acceleration cards, and the communication interface used is a second communication interface. The method includes: receiving, by the designated logic device, a first interaction command sent by the baseboard management controller through the first communication interface, wherein the first interaction command is used to instruct sending an interaction command of a designated interaction type to a designated accelerator card in the group of accelerator cards; In response to the first interaction command, query a pre-stored command data set through the designated logic device to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in the set of accelerator cards, and the target command data is command data of the designated interaction type corresponding to the designated accelerator card; The target command data is converted into a second interactive command by the designated logic device, and the second interactive command is sent to the designated acceleration card through the second communication interface by the designated logic device.

2. The method according to claim 1, characterized in that In response to the first interactive command, querying a pre-stored command data set through the designated logic device to obtain target command data includes: In response to the first interaction command, extracting an accelerator card identifier and a specified command code of the specified accelerator card from the first interaction command through the specified logic device, wherein the specified command code is used to identify the specified interaction type; The target command data is obtained by querying the pre-stored command data set based on the accelerator card identifier of the designated accelerator card and the designated command code through the designated logic device.

3. The method according to claim 2, characterized in that The step of querying the pre-stored command data set based on the accelerator card identifier of the designated accelerator card and the designated command code through the designated logic device to obtain the target command data includes: querying an address mapping table by the designated logic device using the accelerator card identifier of the designated accelerator card and the designated command code to obtain first storage location information, wherein the first storage location information is used to indicate a storage location of command data of the designated interaction type corresponding to the designated accelerator card, and the address mapping table is used to store a mapping relationship between a combination of the accelerator card identifier and the command code and a storage location of the corresponding command data; The target command data is extracted from the storage location indicated by the first storage location information through the designated logic device.

4. The method according to claim 3, characterized in that The step of querying the address mapping table by using the accelerator card identifier of the designated accelerator card and the designated command code through the designated logic device to obtain the first storage location information includes: The address mapping table is queried through the designated logic device using the accelerator card identifier of the designated accelerator card and the designated command code to obtain first starting position information and first data length information, wherein the first starting position information is used to indicate the starting storage position of the command data of the designated interaction type corresponding to the designated accelerator card, the first data length information is used to indicate the data length of the command data of the designated interaction type corresponding to the designated accelerator card, and the first storage position information includes the first starting position information and the first data length information.

5. The method according to claim 2, characterized in that: Each command data in the command data set is stored in a specified data structure in the specified data structure set, each specified data structure in the specified data structure set includes a data header and a data body, the data header includes a storage location field for storing a storage location of the corresponding command data, an accelerator card identification field for storing an accelerator card identification of the corresponding accelerator card, and a command code field for storing a corresponding command code, and the data body is used to store the corresponding command data; The step of querying the pre-stored command data set based on the accelerator card identifier of the designated accelerator card and the designated command code through the designated logic device to obtain the target command data includes: Using the accelerator card identifier of the designated accelerator card and the designated command code, the designated logic device sequentially queries the accelerator card identifier field and the command code field of the data header of each designated data structure; In the case where the target data structure is found, second storage location information is extracted from the storage location field of the data header of the target data structure through the designated logic device, wherein the acceleration card identifier stored in the acceleration card identifier field of the data header of the target data structure is the same as the acceleration card identifier of the designated acceleration card, the command code stored in the command code field of the data header of the target data structure is the same as the designated command code, and the second storage location information is used to indicate a storage location of the command data stored in the target data structure; The target command data is extracted from the data body of the target data structure from the storage location indicated by the second storage location information through the designated logic device.

6. The method according to claim 5, characterized in that The storage location field includes a starting location field for storing a starting storage location of the corresponding command data and a data length field for storing a data length of the corresponding command data; In the case where the target data structure is found, extracting the second storage location information from the storage location field of the data header of the target data structure by the designated logic device includes: When the target data structure is found, the second starting position information is extracted from the starting position field of the data header of the target data structure and the second data length information is extracted from the data length field by the designated logic device, wherein the second starting position information is used to indicate the starting storage position of the command data corresponding to the target data structure, and the second data length The information is used to indicate the data length of the command data corresponding to the target data structure, and the second storage location information includes the second starting position information and the second data length information.

7. The method according to claim 5, characterized in that Each of the specified data structures further includes a verification data portion, wherein the verification data portion is used to store verification data of the corresponding command data; the method further includes: In the case where the target data structure is found, extracting first verification data from the verification data portion of the target data structure through the designated logic device; Verifying the target command data using the first verification data through the designated logic device; The conversion of the target command data into the second interactive command is performed when the target command data passes verification.

8. The method according to claim 2, characterized in that: The step of extracting, in response to the first interactive command, the accelerator card identifier and the designated command code of the designated accelerator card from the first interactive command by the designated logic device includes: In response to the first interaction command, the accelerator card number and the specified command code of the specified accelerator card are extracted from the first interaction command through the specified logic device, wherein the accelerator card identifier of the specified accelerator card includes the accelerator card number of the specified accelerator card, the specified command code belongs to a group of preset command codes, the specified interaction type belongs to a group of preset interaction types, the preset command codes in the group of preset command codes correspond one-to-one to the preset interaction types in a group of preset interaction types, and the preset command codes of command data of the same interaction type corresponding to different accelerator cards in the group of accelerator cards are the same.

9. The method according to claim 8, characterized in that Before querying the pre-stored command data set based on the accelerator card identifier of the designated accelerator card and the designated command code through the designated logic device, the method further includes: The designated logic device uses the designated command code to search a command code mapping table corresponding to the accelerator card number of the designated accelerator card, and updates the designated command code to the found command code to obtain the updated designated command code, wherein the command code mapping table is used to store a mapping relationship between each preset command code in the set of preset command codes and the command code configured for the designated accelerator card.

10. The method according to claim 1, characterized in that Before converting the target command data into a second interactive command through the designated logic device, the method further includes: Acquire, by the designated logic device, second verification data of the target command data from pre-stored verification data of each command data in the command data set; Verifying the target command data using the second verification data through the designated logic device; The conversion of the target command data into the second interactive command is performed when the target command data passes verification.

11. The method according to claim 1, characterized in that: In response to the first interactive command, querying a pre-stored command data set through the designated logic device to obtain target command data includes: In response to the first interactive command, the command data set pre-stored in the electrically erasable programmable read-only memory of the target device is queried through the designated logic device to obtain the target command data.

12. The method according to claim 1, characterized in that The receiving, through the designated logic device, a first interactive command sent by the baseboard management controller through the first communication interface includes: The first interactive command sent by the baseboard management controller through the first communication interface via the first communication bus is received by the designated logic device, wherein the first communication interface is an internal integrated circuit I2C interface, and the first communication bus is an I2C bus.

13. The method according to claim 1, characterized in that The sending the second interaction command to the designated accelerator card through the second communication interface by the designated logic device includes: The second interactive command is sent to the designated accelerator card through the second communication interface and the second communication bus by the designated logic device, wherein the second communication interface is an internal integrated circuit I2C interface and the second communication bus is an I2C bus.

14. The method according to claim 13, characterized in that In response to the first interactive command, querying a pre-stored command data set through the designated logic device to obtain target command data includes: In response to the first interaction command, a data query command is sent to a designated memory through the second communication bus through the designated logic device, and the target command data returned by the designated memory is received through the second communication bus, wherein the command data set is pre-stored in the designated memory, and the data query command is used to query the command data of the designated interaction type corresponding to the designated accelerator card.

15. The method according to claim 13, characterized in that The second interactive command carries the accelerator card address of the designated accelerator card; after the designated logic device sends the second interactive command to the designated accelerator card through the second communication interface, the method further includes: receiving the second interactive command from the second communication bus through the designated accelerator card via the I2C interface of the designated accelerator card, and extracting the accelerator card address carried in the second interactive command; When it is determined that the accelerator card address carried in the second interactive command is the same as the accelerator card address of the designated accelerator card, extracting the target command data from the second interactive command through the designated accelerator card; In response to the target command data, the first response data of the target command data is converted into a first response command through the designated acceleration card, and the first response command is sent to the designated logic device via the second communication bus through the I2C interface of the designated acceleration card, so that the designated logic device sends the first response data carried in the first response command to the baseboard management controller.

16. The method according to claim 1, characterized in that After sending the second interaction command to the designated acceleration card through the second communication interface by the designated logic device, the method further includes: receiving, by the designated logic device, a second response command returned by the designated accelerator card in response to the second interactive command; In response to the second response command, the designated logic device performs command parsing on the second response command to obtain second response data; The second response data is transmitted to the baseboard management controller through the designated logic device.

17. The method according to claim 16, characterized in that The transmitting the second response data to the baseboard management controller through the designated logic device includes: Setting the state of the general input / output interface between the specified logic device and the baseboard management controller through the specified logic device, so as to notify the baseboard management controller that there is response data to be obtained through the state change of the general input / output interface; Receiving, through the designated logic device, a response data acquisition command sent by the baseboard management controller, wherein the response data acquisition command is used to acquire response data sent to the baseboard management controller; In response to the response data acquisition command, the second response data is sent to the baseboard management controller through the designated logic device.

18. The method according to claim 17, characterized in that After setting the state of the general input / output interface between the designated logic device and the baseboard management controller by the designated logic device, the method further includes: The state of the universal input / output interface is detected by the baseboard management controller, a universal input / output interface interrupt is triggered based on the detected state of the universal input / output interface, and the response data acquisition command is sent to the designated logic device.

19. The method according to any one of claims 1 to 18, characterized in that The designated logic device is a complex programmable logic device, and the group of acceleration cards are all artificial intelligence acceleration cards; the interaction command of the designated interaction type is one of the following commands: a firmware version acquisition command, a temperature acquisition command, a power consumption acquisition command, and a manufacturer information acquisition command.

20. A system for transmitting interactive data, comprising a baseboard management controller, a designated logic device and a group of acceleration cards, wherein the baseboard management controller sends an interactive command corresponding to the group of acceleration cards to the designated logic device, and the communication interface used is a first communication interface; the designated logic device sends an interactive command to the group of acceleration cards, and the communication interface used is a second communication interface, wherein: The baseboard management controller is configured to send a first interaction command to the designated logic device through the first communication interface, wherein the first interaction command is used to instruct to send an interaction command of a designated interaction type to a designated accelerator card in the group of accelerator cards; The designated logic device is configured to receive the first interactive command, query a pre-stored command data set in response to the first interactive command, obtain target command data, convert the target command data into a second interactive command, and send the second interactive command to the designated accelerator card through the second communication interface, wherein the command data set includes a group of command data corresponding to each accelerator card in the group of accelerator cards, and the target command data is command data of the designated interactive type corresponding to the designated accelerator card.

21. A transmission device for interactive data, characterized in that: Applied to a target device, the target device includes a baseboard management controller, a designated logic device and a group of acceleration cards, the baseboard management controller sends an interaction command corresponding to the group of acceleration cards to the designated logic device, and the communication interface used is a first communication interface; The designated logic device sends an interaction command to the group of acceleration cards, and the communication interface used is a second communication interface. The device includes: A first receiving unit is configured to receive, through the designated logic device, a first interaction command sent by the baseboard management controller through the first communication interface, wherein the first interaction command is used to instruct to send an interaction command of a designated interaction type to a designated accelerator card in the group of accelerator cards; a query unit configured to query a pre-stored command data set through the specified logic device in response to the first interaction command to obtain target command data, wherein the command data set includes a set of command data corresponding to each accelerator card in the set of accelerator cards, and the target command data is command data of the specified interaction type corresponding to the specified accelerator card; The first execution unit is configured to convert the target command data into a second interactive command through the designated logic device, and send the second interactive command to the designated acceleration card through the second communication interface through the designated logic device.

22. A computer non-volatile readable storage medium, characterized in that: The computer non-volatile readable storage medium stores a computer program, wherein the computer program implements the method according to any one of claims 1 to 19 when executed by a processor.

23. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the method according to any one of claims 1 to 19 is implemented.

Citation Information

Patent Citations

  • Implementation method of OpenPOWER CPU boot based on CPLD

    CN107018054A

  • Acceleration card based on CPLD, data acquisition method and device

    CN109240966A

  • Performance supervision method, device, system, equipment and medium

    CN115543755A

  • Interaction data transmission method, system and device, storage medium and electronic equipment

    CN117376110A

  • Multi-vendor accelerator management protocol interoperability

    US20220137969A1

Cited By

  • Virtual switch deployment and test method and device

    CN121239653A