Computing device, management controller, and data processing method
By implementing protocol conversion in computing devices through the management controller, directly connecting more external devices, solving the problem of additional use of converters or expansion cards in the prior art, and improving the input and output capabilities of the processor and data transmission efficiency.
Patent Information
- Application Number
- PCT/CN2024/103398
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-27
- Filing Date
- 2024-07-03
- Publication Date
- 2025-07-03
AI Technical Summary
Existing computing devices need to connect more external devices by additionally using converters or expansion cards, increasing hardware costs and affecting data exchange efficiency.
Through the management controller, the protocol conversion is realized between the processor and the extension interface, and multiple communication protocol interfaces are expanded to directly connect more external devices to avoid additional interface conversion devices.
Improves the input and output capabilities of the processor, saves costs, and improves the accuracy and efficiency of data transmission.
Smart Images

Figure CN2024103398_03072025_PF_FP_ABST
Abstract
Description
Computing device, management controller and data processing method
[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on December 27, 2023, with application number 202311827052.1 and application name “A computing device, management controller and data processing method”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The embodiments of the present application relate to the technical field of computing devices, and in particular to a computing device, a management controller, and a data processing method. Background Art
[0003] Computing devices such as servers can be used to process, store, and transmit data, providing a variety of services to users. Within the computing device, various functional devices and components are arranged around the processor to assist in the processing of service data packets. The processor within the computing device can include multiple interfaces, through which it establishes connections with corresponding functional devices or connected external devices to enable data exchange. The most common interfaces include USB (Universal Serial Bus) interfaces and Ethernet interfaces.
[0004] Interfaces such as USB interfaces and Ethernet interfaces are mostly connected to the processor through PCIe (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard) interfaces inside computing devices. With the advent of the era of data explosion, the processors in computing devices need to be able to connect to more devices and networks to store and transmit the large amount of data generated. In order to enable computing devices to connect to more external devices through interfaces, it is currently common to use additional devices such as converters or expansion cards to realize a PCIe interface connecting to multiple types of interfaces, thereby connecting more external devices through multiple types of interfaces. The additional use of devices such as converters or expansion cards increases hardware costs, and the efficiency of data exchange will also be adversely affected to a certain extent.
[0005] Summary of the Invention
[0006] The embodiments of the present application provide a computing device, a management controller, and a data processing method, which can conveniently enable the computing device to access more devices.
[0007] In a first aspect, an embodiment of the present application provides a computing device, the computing device including a processor and a management controller, the management controller being connected to the processor via a first communication protocol;
[0008] The management controller includes an expansion interface, and the expansion interface is connected to the external device via a second communication protocol;
[0009] The management controller is used to receive a business data packet from the processor. When the destination device of the business data packet is an external device, the management controller converts the business data packet that conforms to the first communication protocol into a conversion data packet that conforms to the second communication protocol, and sends the conversion data packet to the corresponding external device through the expansion interface to realize the communication connection between the external device and the processor.
[0010] In this technical solution, by utilizing the existing management controller in the computing device, while the processor and the management controller are connected based on the first communication protocol, interfaces for other communication protocols can be extended. This allows the processor to conveniently access more devices that support other protocols through the management controller, thereby improving the input and output capabilities of the processor, eliminating the need for additional interface conversion devices, and saving costs.
[0011] In a possible implementation, the management controller further includes a PCIe interface connected to the processor. There are multiple expansion interfaces, each expansion interface is connected to a corresponding external device, and different expansion interfaces are connected to corresponding external devices via different second communication protocols.
[0012] In this technical solution, the performance of the management controller within the computing device, such as fast data processing capabilities and high throughput, can be utilized to configure multiple expansion interfaces as needed. Through the management controller and multiple expansion interfaces, more external devices corresponding to various types of communication protocols can be connected, thereby better improving the input and output capabilities of the processor and enhancing the performance of the computing device.
[0013] In one possible implementation, the multiple expansion interfaces include a USB interface, a Gigabit Media Access Controller (GMAC) interface, and a Serial Advanced Technology Attachment (SATA) interface. The computing device also includes multiple connectors, including a USB connector, a GMAC connector, and a SATA connector. The USB connector, the GMAC connector, and the SATA connector are connected one-to-one with the USB interface, the GMAC interface, and the SATA interface. The external device includes a USB device, a storage device, or a network card. The USB connector is used to connect to a USB device, the SATA connector is used to connect to a storage device, and the GMAC connector is used to connect to a network card.
[0014] In this technical solution, the management controller and expansion interface can be used to expand the USB interface, GMAC interface, and SATA interface. Through the corresponding connectors, the processor can be connected to various USB devices, network devices, and storage devices, so that the data transmission and reception volume and rate of the computing device can be significantly improved. Through the USB interface, the computing device can communicate with more USB devices to meet different application requirements, and additional solid-state drives (SSDs) and other storage devices can be connected through the SATA interface to increase the storage capacity and storage performance of the computing device. The network connection capability and bandwidth of the computing device can also be increased through the GMAC interface.
[0015] In one possible implementation, the management controller also includes a connecting device and an interface device. The connecting device is connected to both the processor and the interface device, and the interface device is connected to the extension interface. The connecting device is used to receive a business data packet, and when the destination device of the business data packet is an external device, the business data packet is sent to the interface device connected to the external device. The interface device performs protocol conversion on the business data packet to obtain a converted data packet, and sends the converted data packet to the corresponding external device through the extension interface.
[0016] In this technical solution, by refining the connection device and interface device in the management controller to realize the routing function and protocol conversion function of the data packet respectively, it can be ensured that the data packet is forwarded to the correct interface device for protocol conversion, so that the data in the business data packet can eventually be correctly sent to the device connected to the extension interface. Even when there is data interaction with multiple external devices at the same time, it can be accurately distributed through the connection device and the correct protocol conversion can be performed through the interface device, which greatly improves the correctness, accuracy and integrity of data transmission.
[0017] In a possible implementation, the management controller further includes an image processor, which is connected to the connection device. The connection device is further configured to send the service data packet to the image processor when the destination device of the service data packet is the management controller.
[0018] In this technical solution, the GPU set in the management controller allows the processor to utilize more computing resources for image processing, thereby improving the image processing speed of the computing device, and cooperating with the connection device can also ensure that the image data that needs to be processed by the GPU can be correctly sent to the GPU.
[0019] In one possible implementation, the interface device includes a USB interface device, a GMAC interface device, and a SATA interface device, and multiple extended interfaces include a USB interface, a GMAC interface, and a SATA interface. The USB interface device, the GMAC interface device, and the SATA interface device are connected to the USB interface, the GMAC interface, and the SATA interface in a one-to-one correspondence; the USB interface device is used to convert a business data packet into a data packet whose second communication protocol is the USB protocol when receiving a business data packet; the GMAC interface device is used to convert a business data packet into a data packet whose second communication protocol is the GMAC protocol when receiving a business data packet; and the SATA interface device is used to convert a business data packet into a data packet whose second communication protocol is the SATA protocol when receiving a business data packet.
[0020] In this technical solution, USB interface devices, SATA interface devices and GMAC interface devices are respectively set up for the commonly used USB protocols, SATA protocols and GMAC protocols, so that the computing device can communicate well with commonly used devices such as mobile hard disks, mice, keyboards, speakers using the USB protocol, hard disks using the SATA protocol, network cards using the GMAC protocol, etc., which better meets the daily expansion use needs of the computing device.
[0021] In one possible implementation, the interface device is used to convert a business data packet into a conversion data packet of a second communication protocol, specifically to: parse the received business data packet to obtain target data, where the target data refers to the data required by the second communication protocol in the business data packet; and perform data encapsulation processing on the target data to obtain a conversion data packet that complies with the second communication protocol.
[0022] In this technical solution, each interface device in the management controller can complete the parsing of data packets for the first communication protocol and the encapsulation of data packets for the second communication protocol according to the second communication protocol it supports, so that the data can be correctly converted and transmitted, so that the interface extended by the management controller can work normally and the corresponding data packets can be correctly transmitted.
[0023] In one possible implementation, the connecting device is specifically used to parse the business data packet, obtain a destination identifier, confirm the receiving end of the business data packet based on the destination identifier, and send the business data packet to the receiving end corresponding to the destination identifier, where the receiving end includes a USB interface device, a GMAC interface device, a SATA interface device or a GPU, wherein different destination identifiers correspond to different receiving ends.
[0024] In this technical solution, a separate connection device within the management controller identifies the receiving end of service data packets and correctly routes them to a USB interface device, GMAC interface device, SATA interface device, or GPU, ensuring accurate data transmission and reception. Furthermore, by recording the destination identifier within the data packet, the receiving end confirmation and forwarding of service data packets can be completed simply and quickly, improving the efficiency of data packet distribution and significantly reducing the possibility of data packet congestion.
[0025] In one possible implementation, the service data packet is a PCIe data packet, and the destination identifier is set in the data packet header field of the PCIe data packet. The connection device determines the receiving end of the service data packet by parsing the service data packet to obtain the destination identifier in the data packet header field.
[0026] This technical solution utilizes the header field in the PCIe packet to record the destination identifier, enabling the PCIe protocol to quickly distinguish between different receiving ends and facilitate the rapid forwarding of service packets to the corresponding interface device. Of course, in other possible implementations, the destination identifier can also be recorded in a newly added identification bit in the PCIe packet.
[0027] In a possible implementation, the purpose identifier includes a PF (Physical Function) identifier or type indication information.
[0028] This technical solution establishes a one-to-one mapping between PF identifiers and receiving ends, distinguishing different receiving ends by PF identifiers. This effectively utilizes the PF used by the processor during transmission and reception, enabling service data packets to be forwarded to the corresponding receiving end more simply and quickly, thereby improving data packet distribution efficiency. Alternatively, by using type indication information that uniquely identifies a receiving end, the receiving end of a service data packet can be quickly distinguished for forwarding, also effectively improving data packet distribution efficiency.
[0029] In the second aspect, an embodiment of the present application also provides a management controller, including a PCIe interface and an expansion interface, the PCIe interface is connected to the processor, and the expansion interface is used to connect to an external device; the management controller is used to receive a business data packet that complies with a first communication protocol and is sent by the processor through the PCIe interface; when the destination device of the business data packet is an external device, the business data packet is converted into a conversion data packet that complies with a second communication protocol; and the conversion data packet is sent to the corresponding external device through the expansion interface to realize a communication connection between the external device and the processor.
[0030] In this technical solution, the performance of the management controller is utilized to quickly realize the sending and receiving of data packets and the conversion of protocols, so that the computing device where the management controller is located can interact with more devices for data, increasing the capabilities of the management controller and improving the data processing performance of the computing device using the management controller.
[0031] In a possible implementation, there are multiple expansion interfaces, each expansion interface is connected to a corresponding external device, and different expansion interfaces are connected to corresponding external devices via different second communication protocols.
[0032] In one possible implementation, the management controller also includes a PCIe interface, which is connected to the processor. There are multiple expansion interfaces, each expansion interface is connected to a corresponding external device, and different expansion interfaces are connected to corresponding external devices through different second communication protocols.
[0033] In one possible implementation, the multiple expansion interfaces include a USB interface, a GMAC interface, and a SATA interface; the computing device also includes multiple connectors, including a USB connector, a GMAC connector, and a SATA connector; the USB connector, the GMAC connector, and the SATA connector are connected one-to-one with the USB interface, the GMAC interface, and the SATA interface; the external device includes a USB device, a storage device, or a network card; the USB connector is used to connect to a USB device, the SATA connector is used to connect to a storage device, and the GMAC connector is used to connect to a network card.
[0034] In one possible implementation, the management controller also includes a connecting device and an interface device. The connecting device is connected to both the processor and the interface device, and the interface device is connected to the extension interface. The connecting device is used to receive a business data packet, and when the destination device of the business data packet is an external device, the business data packet is sent to the interface device connected to the external device. The interface device is used to perform protocol conversion on the business data packet to obtain a converted data packet, and send the converted data packet to the corresponding external device through the extension interface.
[0035] In a possible implementation, the management controller further includes an image processor, which is connected to the connection device. The connection device is further configured to send the service data packet to the image processor when the destination device of the service data packet is the management controller.
[0036] In one possible implementation, the interface device includes a USB interface device, a GMAC interface device, and a SATA interface device, and multiple extended interfaces include a USB interface, a GMAC interface, and a SATA interface. The USB interface device, the GMAC interface device, and the SATA interface device are connected to the USB interface, the GMAC interface, and the SATA interface in a one-to-one correspondence; the USB interface device is used to convert a business data packet into a data packet whose second communication protocol is the USB protocol when receiving a business data packet; the GMAC interface device is used to convert a business data packet into a data packet whose second communication protocol is the GMAC protocol when receiving a business data packet; and the SATA interface device is used to convert a business data packet into a data packet whose second communication protocol is the SATA protocol when receiving a business data packet.
[0037] In one possible implementation, the connecting device is specifically used to parse the business data packet, obtain a destination identifier, confirm the receiving end of the business data packet based on the destination identifier, and send the business data packet to the receiving end corresponding to the destination identifier, where the receiving end includes a USB interface device, a GMAC interface device, a SATA interface device or a GPU, wherein different destination identifiers correspond to different receiving ends.
[0038] In a possible implementation, the destination identifier includes a PF identifier or type indication information.
[0039] In a third aspect, an embodiment of the present application further provides a data processing method, which is applied to a management controller, wherein the management controller is connected to the processor based on a first communication protocol, and the management controller includes an expansion interface, which is used to connect to an external device based on a second communication protocol. The method includes:
[0040] Receive business data packets sent by the processor;
[0041] Parse the service data packet to determine the destination device of the service data packet;
[0042] When the destination device of the service data packet is an external device, the service data packet is converted into a conversion data packet that complies with the second communication protocol, and the conversion data packet is sent to the corresponding external device through the expansion interface to achieve a communication connection between the external device and the processor.
[0043] In this technical solution, the existing management controller in the computing device is utilized, and based on the first communication protocol between the processor and the management controller, and the interface for extending other communication protocols, corresponding data analysis, protocol conversion and other processing are performed, thereby realizing data interaction from the processor to other devices connected to the extended interface. In this way, the processor can be easily connected to more devices that support other protocols, thereby improving the input and output capabilities of the processor, eliminating the need for additional interface conversion devices, and saving costs.
[0044] In a possible implementation, the management controller may be the management controller provided in the second aspect above.
[0045] In a possible implementation, the management controller includes an interface device, and the interface device includes a USB interface device, a GMAC interface device, and a SATA interface device. The method further includes any one or more of the following steps:
[0046] When the receiving end corresponding to the destination device of the service data packet is a USB interface device, converting the service data packet into a data packet whose second communication protocol is a USB protocol;
[0047] When the receiving end corresponding to the destination device of the service data packet is a GMAC interface device, converting the service data packet into a data packet whose second communication protocol is the GMAC protocol;
[0048] In a case where the receiving end corresponding to the destination device of the service data packet is a SATA interface device, the service data packet is converted into a data packet whose second communication protocol is the SATA protocol.
[0049] In a possible implementation, the management controller further includes an image processor, and the method further includes:
[0050] When the destination device of the service data packet is the management controller, the service data packet is sent to the image processor.
[0051] In one possible implementation, the method further includes:
[0052] Parse the business data packet to obtain the destination identifier, confirm the receiving end of the business data packet according to the destination identifier, and send the business data packet to the receiving end corresponding to the destination identifier, the receiving end including a USB interface device, a GMAC interface device, a SATA interface device or a GPU, wherein different destination identifiers correspond to different receiving ends.
[0053] In a fourth aspect, an embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and the computer program includes program instructions, which, when executed, enable the method of the third aspect to be implemented.
[0054] In a fifth aspect, an embodiment of the present application provides a computer program product comprising a computer program or instructions, which, when the computer program or instructions are run on a computer, enables the computer to execute the method of the third aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0055] FIG1 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;
[0056] FIG2 is a schematic diagram of an architecture for performing interface expansion in a computing device through a management controller according to an embodiment of the present application;
[0057] FIG3 is a schematic structural diagram of a USB interface device and a corresponding interface provided in an embodiment of the present application;
[0058] FIG4 is a schematic structural diagram of a GMAC interface device and a corresponding interface provided in an embodiment of the present application;
[0059] FIG5 is a structural diagram of a SATA interface device and a corresponding interface provided by an embodiment of the present application;
[0060] FIG6 is a flow chart of a data processing method provided in an embodiment of the present application;
[0061] 7 is a flow chart of a data processing method based on a USB interface device according to an embodiment of the present application;
[0062] 8 is a schematic flow chart of a data processing method based on a GMAC interface device according to an embodiment of the present application;
[0063] FIG9 is a flow chart of a data processing method based on a SATA interface device according to an embodiment of the present application. DETAILED DESCRIPTION
[0064] It should be understood that the terms "first", "second", etc. involved in the embodiments of the present application are used to distinguish different objects rather than to describe a specific order.
[0065] In the embodiments of the present application, "at least one" refers to one or more, and "a plurality" refers to two or more. In the embodiments of the present application, "and / or" describes the association relationship of associated objects, indicating that three relationships can exist. For example, A and / or B can represent the following three situations: A exists alone, A and B exist at the same time, and B exists alone. Among them, A and B can be singular or plural. The character " / " can indicate that the previous and next associated objects are in an "or" relationship.
[0066] In the embodiments of the present application, "at least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent the following seven situations: a, b, c, a and b, a and c, b and c, and a, b, and c. Each of a, b, and c can be an element or a set containing one or more elements.
[0067] Computing devices such as servers include functional components such as a CPU (Central Processing Unit) and a BMC (Baseboard Management Controller). In an embodiment of the present application, by optimizing the BMC connected to the CPU, the BMC can directly expand more interfaces for the computing device based on the PCIe interface connected to the CPU. The expanded interfaces include, for example, a USB interface, a SAS (Serial Attached SCSI) interface, a SATA (Serial Advanced Technology Attachment) interface, a GMAC (Gigabit Media Access Control) interface, and some multimedia data interfaces (such as a VGA (Video Graphics Array) interface, an HDMI (High Definition Multimedia) interface, and a SATA (Serial Advanced Technology Attachment) interface. One or more interfaces in the High-Definition Multimedia Interface (HDMI) interface) can enable the computing device to connect to more external devices as needed and access the network through more ways, thereby increasing the data transmission and reception volume and rate of the computing device, improving the IO (Input / Output) capabilities of the CPU, and thus achieving the effect of improving the performance of the computing device. At the same time, the interface expansion solution of the embodiment of the application does not require the addition of converters or expansion cards, saving costs. Moreover, these interfaces expanded through BMC optimization can connect more types of devices to the CPU, thereby providing a wider range of IO functions and more expansion options.
[0068] In order to better understand the technical solutions provided by the embodiments of the present application, some concepts or technologies involved in the embodiments of the present application are first introduced.
[0069] (1) Server
[0070] A server is an electronic device that has data processing, data receiving, and data storage capabilities. For example, a server can be a rack server, a cabinet server, a blade server, a high-density server, a graphics processing unit (GPU) server, etc.
[0071] For example, a server may include, but is not limited to, components such as a power supply, a processor, memory, a hard disk, and a management controller. The components in the server may be placed in a server chassis. The embodiments of this application do not limit the specific number and form of the components in the server. For example, a server including one power supply, one processor, four memory modules, four hard disks, and one management controller is used.
[0072] The power supply may be a power supply unit (PSU). The processor may be a central processing unit (CPU) or a graphics processing unit (GPU). The memory may be a random access memory (RAM) or a read-only memory (ROM). The hard disk 104 may include a solid-state drive (SSD) or a mechanical hard disk. The management controller may be used to monitor and manage components in the server 10. For example, the management controller may monitor the status of each hardware device in the server (such as temperature, voltage, etc.). For another example, the management controller may be used to perform system configuration, firmware upgrades, fault diagnosis, etc. of the computing device.
[0073] It should be noted that different equipment manufacturers may have different names for the server's management controller. For example, some management controllers are called baseboard management controllers (BMCs), some are called integrated lights-out (iLOs), and others are called integrated Dell Remote Access Controllers (iDRACs). Regardless of whether it is called BMC, iLO, or iDRAC, it can be understood as the management controller in the embodiments of the present invention. In the embodiments of this application, the server's management controller 105 is called a BMC as an example.
[0074] It should also be noted that the server may also include but is not limited to the following components: basic hardware such as backplanes, motherboards, and fans, configurable components such as network cards and disk arrays (Redundant Arrays of Independent Disks, RAID) cards, and various controller components with processing functions such as field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs).
[0075] (2)BMC
[0076] The BMC is a critical component in servers. It monitors and manages the server, including device information management, status monitoring, control, and maintenance. The BMC connects to the server's CPU via the PCIe interface, enabling data exchange between the two devices.
[0077] (3) Interface
[0078] Servers can connect to a variety of interfaces based on functional requirements. The server's CPU can use these interfaces to exchange data with external devices or the network. Some common interfaces are listed below.
[0079] PCI Express (PCIe) interface, the CPU can connect to various expansion cards, such as graphics cards, storage controller cards, network cards, etc. through the PCIe interface.
[0080] Ethernet interface: used to connect to the network and realize network communication of the server.
[0081] USB port: used to connect various external USB devices, such as keyboard, mouse, storage device, etc.
[0082] SATA interface: used to connect storage devices such as hard disk drives, optical drives, and SSDs (Solid State Disks).
[0083] BMC port: used to connect to the BMC for server management and monitoring. This port enables diagnosis, control, and maintenance operations.
[0084] Multimedia data interfaces, such as VGA / DVI (Digital Visual Interface) or HDMI (High Definition Multimedia Interface), are used to connect to monitors and are typically used for server graphics output.
[0085] RAID controller interface: used to connect to the disk array controller to implement hardware RAID function.
[0086] The following describes the data processing method according to the embodiment of the present application.
[0087] Please refer to Figure 1, which is a structural diagram of the computing device provided in an embodiment of the present application. The architecture shown in Figure 1 is a brief schematic diagram of part of the internal structure of the computing device involved in the embodiment of the present application. The computing device can be a server including a processor and a management controller, for example, the processor is a CPU and the management controller is a BMC.
[0088] The management controller is connected to the processor via a first communication protocol, and the management controller exchanges data with the processor based on the first communication protocol; the management controller includes an extension interface, each extension interface corresponds to a second communication protocol, and each extension interface is connected to an external device via the second communication protocol; the management controller is used to receive a business data packet from the processor, and when the destination device of the business data packet is an external device, the business data packet is protocol-converted to obtain a converted data packet, the business data packet that complies with the first communication protocol is converted into a converted data packet that complies with the second communication protocol, and the converted data packet is sent to the corresponding external device via the extension interface to realize the communication connection between the external device and the processor.
[0089] As shown in FIG1 , a processor within a computing device can establish data connections with various devices and equipment based on the PCIe protocol and multiple PCIe interfaces, such as multiple disks, NICs (Network Interface Cards), and the like in FIG1 . Furthermore, the processor and the management controller can also establish a connection via the PCIe protocol to exchange data. In one embodiment, the first communication protocol is the PCIe protocol, and the management controller further includes a PCIe interface, which is connected to the processor. Based on the connection between the management controller and the processor via the PCIe interface, the management controller extends interfaces, which can be referred to as extension interfaces. These extension interfaces are connected to external devices, and different extension interfaces are connected to corresponding external devices via different second communication protocols. The extension interfaces include one or more of a USB interface, a SAS interface, a SATA interface, or a GMAC interface. The extension interfaces include multiple interfaces, each of which is connected to a corresponding external device. The extension interfaces of the management controller can be connected to external devices, thereby enabling the processor to complete more data input / output processing as needed through the extension interfaces provided by the management controller, thereby increasing the processor's input / output (IO) capabilities and improving the performance of the computing device.
[0090] It is understandable that the embodiment of the present application is described by taking the expansion interface including a USB interface, a SATA interface and a GMAC interface as an example. The management controller can be connected to the USB device, the storage device and the network card device one-to-one through the USB interface, the SATA interface and the GMAC interface. For example, corresponding to the expansion interface mentioned above, the computing device also includes a plurality of connectors, such as a USB connector, a SATA connector and a GMAC connector, each connector is connected to the corresponding expansion interface, wherein the USB connector is connected to the USB interface of the management controller, the SATA connector is connected to the SATA interface of the management controller, and the GMAC connector is connected to the GMAC interface in the management controller, so that the external device can be connected to the expansion interface through these connectors, thereby enabling these external devices to finally communicate with the processor through the expansion interface and the PCIe interface of the management controller. The external device may include, for example, a USB device, a storage device or a network card, the USB connector is used to connect to the USB device, the SATA connector is used to connect to the storage device, and the GMAC connector is used to connect to the network card. Of course, in other embodiments, the expansion interface may include one or more interfaces such as a USB interface, a SATA interface, a GMAC interface, a PCIe interface, a SAS interface, and a multimedia data interface.
[0091] By expanding more interfaces through the management controller, more external devices can be connected to the processor. Specifically, the embodiments of the present application have the following effects:
[0092] 1. Increase scalability: More external devices can be connected through the expansion interface, such as network interface cards, storage controllers, accelerator cards, etc., which increases the scalability and flexibility of computing devices and can meet the needs of different applications of computing devices.
[0093] 2. Providing high-performance computing capabilities: By connecting more external devices, such as graphics processing unit (GPU) accelerator cards or other coprocessors, through expansion interfaces, high-performance computing and accelerator-driven applications can be implemented on computing devices. This enables computing devices to utilize more computing resources to process and execute complex tasks.
[0094] 3. Increase storage capacity and performance: By connecting additional storage devices such as solid-state drives (SSDs) through expansion interfaces, you can increase the storage capacity and performance of computing devices. This is very beneficial for computing devices that require large-capacity, high-speed storage, such as database servers, big data analysis, and cloud computing platforms.
[0095] 4. Provide high-speed network connection: By connecting multiple network external devices such as network interface cards (NICs) through expansion interfaces, the network connection capability and bandwidth of computing devices can be increased.
[0096] In general, by expanding more interfaces for the processor of a computing device through a management controller, more expansion options and functions can be provided, bringing more device connection capabilities to the processor, expanding the functions of the computing device, improving the performance and flexibility of the computing device, and meeting the needs of different application scenarios.
[0097] In the computing device mentioned above including a processor and a management controller, the management controller is connected to the processor via a first communication protocol. The first communication protocol may be, for example, a PCIe protocol. The management controller may exchange data with the processor via the PCIe protocol, and establish a connection with other external devices based on a second communication protocol through an expansion interface to achieve communication.
[0098] In one embodiment, the management controller includes a PCIe interface connected to the processor, and includes expansion interfaces such as a USB interface, a SATA interface, and a GMAC interface, wherein each expansion interface corresponds to a second communication protocol, and the types of second communication protocols corresponding to different expansion interfaces may be different. The USB interface, SATA interface, and GMAC interface can be connected to corresponding external devices respectively. It should be noted that each expansion interface corresponding to a second communication protocol may mean that expansion interfaces of different types correspond to a second communication protocol. The number of each of the USB interface, SATA interface, and GMAC interface can be one or more.
[0099] The management controller receives business data packets from the processor based on the PCIe interface connected to the processor, and determines the destination device of the business data packet. Specifically, it determines whether the business data packet is data sent to the management controller for processing or data sent to an external device connected to the management controller through an expansion interface. In other words, the destination device can be the management controller or a device connected to the external device through the expansion interface.
[0100] The expansion interface can be connected to an external device via a connector. There can be multiple expansion interfaces and multiple connectors, and each expansion interface can be connected to one or more connectors to access an external device. The PCIe interface is connected to the processor, and each expansion interface is connected to a corresponding connector. Different expansion interfaces are connected to corresponding connectors via different second communication protocols. The expansion interfaces support different second communication protocols to facilitate the transmission of converted data packets that comply with the second communication protocol, converted from service data packets, to the corresponding external device.
[0101] Since there are multiple expansion interfaces and connectors, multiple external devices can be connected through the expansion interfaces and connectors of the management controller. Therefore, for the business data packets generated by the processor mentioned in the embodiments of the present application, their destination device can be the management controller, or it can be an external device connected to the management controller through the expansion interfaces and connectors.
[0102] It is understandable that since some connectors may be provided on the housing of the computing device relatively far away from the management controller, the connectors are not shown in the schematic diagrams such as FIG. 2 .
[0103] When the service data packet is sent to an external device connected to the management controller via an expansion interface (i.e., the destination device is an external device), the management controller forwards the processed service data packet to the target interface corresponding to the destination device of the service data packet. The processed service data packet is a converted data packet obtained by the management controller performing processing such as protocol conversion and error correction on the service data packet. Finally, the processed service data packet is sent to the external device connected to the target interface.
[0104] It is understood that the external devices involved in the embodiments of the present application refer to devices that can be connected to the processor via the expansion interface provided by the management controller, including but not limited to various USB devices, storage devices, or network cards, and also including but not limited to multimedia devices such as displays and speakers. When the destination device of the service data packet is the management controller, the service data packet is sent to the image processor within the management controller. Of course, the management controller may also include other components. When the destination device of the service data packet is the management controller, the service data packet can also be distributed to the image processor or other components within the management controller according to the service data packet distribution logic configured within the management controller.
[0105] Similarly, for business data packets sent from external devices connected to the management controller through the expansion interface, the management controller performs processing such as protocol conversion and error correction on the business data packets, and then sends the processed business data packets to the processor through the PCIe interface between the management controller and the processor for processing by the processor.
[0106] In one implementation, the management controller may further include a connection device, an interface device such as a USB interface device, a SATA interface device, a GMAC interface device, and a graphics processing unit (GPU). The USB interface device, the SATA interface device, the GMAC interface device, and the graphics processing unit (GPU) are all connected to the connection device, which is also connected to the processor via a PCIe interface. The GPU implements data exchange with the processor via the connection device. The USB interface device, the SATA interface device, and the GMAC interface device are connected to the USB interface, the SATA interface, and the GMAC interface, respectively. The USB connector, the GMAC connector, and the SATA connector are connected to the USB interface, the GMAC interface, and the SATA interface, respectively. External devices that need to be connected can be plugged into the connector. In this way, these external devices plugged into the connector can exchange data with the processor via the management controller's interface, the interface device, the connection device, and the PCIe interface.
[0107] For example, each interface device in the management controller has one end connected to the connection device and one end connected to an external device via a corresponding interface or connector. In one embodiment, among the interface devices, one end of the USB interface device is connected to the connection device and is connected to the processor via the connection device and the PCIe interface, and the other end of the USB interface device is connected to the USB interface or USB connector, and exchanges data with the USB device via the USB interface or USB connector.
[0108] One end of the SATA interface device is connected to the connection device, which is connected to the processor through the connection device and the PCIe interface. The other end of the SATA interface device is connected to the SATA interface and the SATA connector, and exchanges data with a storage device such as a hard disk through the SATA interface and the SATA connector.
[0109] One end of the GMAC interface device is connected to the connecting device, and is connected to the processor through the connecting device and the PCIe interface. The other end of the GMAC interface device is connected to the GMAC connector, and exchanges data with network devices such as network cards or routers through the GMAC connector.
[0110] In one embodiment, determining the destination device of the service data packet includes determining a receiving end of the service data packet, where the receiving end may be an interface device connected to the destination device or an image processor included in the destination device. For example, for a service data packet received from a processor, the receiving end of the service data packet may be identified by a connecting device. If the receiving end of the service data packet is an interface device, the interface device serving as the receiving end is determined as a target interface device, and the service data packet is forwarded to the target interface device. The target interface device performs processing such as protocol conversion and error correction on the service data packet to obtain a converted data packet. The converted data packet is finally sent to the corresponding destination device via an extended interface (i.e., target interface) and a connector (i.e., target connector) connected to the target interface device.
[0111] Similarly, for the business data packets sent from the device connected to the target connector, the target interface device that receives the business data packets performs processing such as protocol conversion and error correction on the business data packets, and sends the processed business data packets to the connection device. The connection device then sends the processed business data packets to the processor through the PCIe interface between the processor and the management controller.
[0112] In another embodiment, determining the destination device of the service data packet includes determining the destination device of the service data packet and, based on the destination device, identifying a receiving end corresponding to the destination device, where the receiving end may be an interface device connected to the destination device or an image processor included in the destination device. If the receiving end of the service data packet is an interface device, the interface device serving as the receiving end is determined as a target interface device, and the service data packet is forwarded to the target interface device. The target interface device performs processing such as protocol conversion and error correction on the service data packet to obtain a converted data packet. The converted data packet is ultimately transmitted to the corresponding destination device via an extended interface (i.e., a target interface) and a connector (i.e., a target connector) connected to the target interface device.
[0113] In one embodiment, the connection device included in the management controller can be a logic circuit or chip constructed in the management controller based on the PCIe protocol. The connection device can realize the transmission and reception of PCIe data packets. When receiving a business data packet (i.e., a PCIe data packet) sent from the processor, the connection device is used to analyze the PCIe data packet sent from the processor, determine the receiving end of the PCIe data packet based on the analysis result, and send the PCIe data packet to the determined receiving end. To a certain extent, the connection device can be considered as a data packet parsing and distribution device, which can provide a routing function and route the PCIe data packet received from the processor to the correct receiving end for subsequent data processing. At the same time, the connection device can also receive PCIe data packets obtained after the corresponding interface device performs processing such as data conversion and error correction on the data packet sent by the external device, and forward the PCIe data packet to the processor via the PCIe interface between the management controller and the processor.
[0114] Of course, in other embodiments, the connecting device may also be a software module running in the processing core of the management controller.
[0115] In one embodiment, the connection device is specifically used to parse the received business data packet, obtain the destination identifier, confirm the receiving end of the business data packet based on the destination identifier, and send the business data packet to the receiving end corresponding to the destination identifier, the receiving end including a USB interface device, a GMAC interface device, a SATA interface device, or a GPU, wherein different destination identifiers correspond to different receiving ends. That is, when the processor generates a business data packet, the destination identifier can be recorded in the business data packet to facilitate sending the business data packet to the correct receiving end. Each receiving end is configured with a unique destination identifier, and the destination identifier can be used to distinguish each receiving end.
[0116] In one embodiment, the processor can, in response to certain processing operations by a user or application, first determine the destination device corresponding to the data generated in response to these operations, then determine the receiving end based on the destination device, and then, when generating a PCIe data packet, record the destination identifier corresponding to the determined receiving end in the PCIe data packet to facilitate the transmission of the PCIe data packet generated by the processor. Specifically, a GPU is assigned a unique destination identifier. In this way, when the connection device parses and determines that the destination identifier in a PCIe data packet indicates a GPU, the GPU is the receiving end and the corresponding destination device is the management controller.
[0117] For example, the destination identifier may be set in a data packet header field of a PCIe data packet, and the connection device determines the receiving end of the service data packet by parsing the service data packet to obtain the destination identifier in the data packet header field.
[0118] This technical solution utilizes the header field in the PCIe packet to record the destination identifier, enabling the PCIe protocol to quickly distinguish between different receiving ends and facilitate the rapid forwarding of service packets to the corresponding interface device. Of course, in other possible implementations, the destination identifier can also be recorded in a newly added identification bit in the PCIe packet.
[0119] In one embodiment, the destination identifier includes a PF identifier. In the process of transmitting data based on the PCIe protocol, the transmission of PCIe data packets can be controlled and managed by the PF. Therefore, in an embodiment of the present application, the data packet generated by the processor is sent to the corresponding receiving end (as mentioned above, the receiving end can be a target interface device among multiple interface devices, or a GPU) by utilizing multiple PFs corresponding to the PCIe interface connected to the processor and the management controller. In one embodiment, a mapping relationship between the PF identifier and the receiving end such as the interface device and the GPU can be established in advance. When the processor needs to send a PCIe data packet to the management controller, the PF identifier can be recorded in the PCIe data packet based on the mapping relationship between the PF identifier and the receiving end. The connection device of the management controller can directly determine the receiving end of the PCIe data packet based on the mapping relationship and the PF identifier in the PCIe data packet, and forward the PCIe data packet to the determined receiving end. In one embodiment, as shown in Table 1 below, the mapping relationship between the PF identifier and the receiving end is schematically shown, and the receiving end includes various interface devices and GPUs, etc.
[0120] Table 1
[0121] For example, when the processor needs to send data to an external device connected to a USB interface device, based on the mapping relationship in Table 1, the processor sends the generated PCIe data packet recording PF1 to the management controller. After the connection device of the management controller receives the PCIe data packet, it parses the PF identifier recorded in the PCIe data packet, queries the mapping relationship between the PF identifier and the receiving end shown in Table 1 based on the PF identifier, and determines that the receiving end corresponding to PF1 is the USB interface device. Thus, it is determined that the PCIe data packet should be sent to the USB interface device, and the USB interface device is used as the target interface device of the PCIe data packet, and the PCIe data packet is forwarded to the USB interface device. After processing such as protocol conversion, the USB interface device obtains a converted data packet, which is a USB data packet. The converted data packet is sent to the corresponding USB device through the connected USB interface and USB connector.
[0122] In one embodiment, the destination identifier can be type indication information, and the processor can also add type indication information about the receiving end in the PCIe data packet. Each interface device and GPU corresponds to a unique type indication information. In this way, when receiving a PCIe data packet carrying type indication information sent by the processor, the connecting device can obtain the type indication information from the PCIe data packet and determine the receiving end of the PCIe data packet based on the obtained type indication information, so as to send the PCIe data packet to the GPU serving as the receiving end or the target interface device in the interface device.
[0123] Connectivity devices designed based on the PCIe protocol can, as needed, implement functions such as physical layer interfaces, data link layer protocols, transport layer protocol support, configuration space management, error detection and correction, power management, and power supply. Implementing these functions enables the connectivity device to communicate with processors connected via the PCIe protocol, correctly sending and receiving PCIe packets. Furthermore, it can identify the correct recipient for PCIe packets sent by the processor to ensure proper data exchange, providing stable and reliable data transmission and operation.
[0124] In one embodiment, the connection device is configured to detect and correct anomalies that occur during data exchange, including between the connection device and the processor, and between the connection device and the interface device or GPU. During this data exchange, anomalies such as incomplete data and timing errors may occur. By designing and implementing relevant logic circuits and detection algorithms, and executing processing logic such as packet integrity checks and retransmission of abnormal packets, the connection device is able to perform anomaly detection and error correction.
[0125] In one embodiment, for power management and power supply functions, the connecting device is also used to provide power and perform power management for external devices connected to the expansion interface. The connecting device implements power management and power supply functions for these external devices through power management circuits, and processing logic such as voltage regulation and overcurrent protection.
[0126] Each interface device in the management controller is used to exchange data packets conforming to a first communication protocol with the connection device, and to connect to a corresponding interface or connector on the management controller via a second communication protocol, thereby enabling connection to an external device. Each interface device can be a logic circuit or chip built into the management controller. Of course, in other embodiments, each interface device can also be a software module running in the processing core of the management controller.
[0127] In one embodiment, please refer to Figure 2, which is an architectural diagram of interface expansion through a management controller in a computing device provided by an embodiment of the present application. A connecting device, as well as interface devices such as a USB interface device, a GMAC interface device, and a SATA interface device are provided in the management controller. The extended interfaces corresponding to these interface devices include the USB interface, GMAC interface, and SATA interface in Figure 2. Of course, other interface devices and their corresponding interfaces can be added as needed, such as an HDMI interface device and a corresponding HDMI interface, a wireless interface device and a corresponding wireless interface, etc. In Figure 2, the second communication protocol corresponding to the USB interface device and the USB interface is the USB protocol, the second communication protocol corresponding to the GMAC interface device and the GMAC interface is the GMAC protocol, and the second communication protocol corresponding to the SATA interface device and the SATA interface is the SATA protocol.
[0128] In one embodiment, on the one hand, the management controller is connected to the processor through a first communication protocol, thereby receiving data from the CPU or sending data to the CPU; on the other hand, the management controller also establishes connections with external devices based on multiple second communication protocols through corresponding connection devices, interfaces and connectors to send and receive data, for example, through the USB interface device and its corresponding USB interface, SATA interface device and its corresponding SATA interface shown in Figure 2, to connect to other external devices to send and receive data to be stored, and through the GMAC interface device and its corresponding GMAC interface to access the network external device to send and receive data with the network, thereby enabling the processor to communicate with more other devices or networks. Among them, accessing the network device through the GMAC interface device and the GMAC interface can specifically be through the GMAC interface, and Figure 2 shows that the SGMII (Serial Gigabit Media Independent Interface) is connected to the PHY (Physical Layer) chip to access the network device.
[0129] For each interface device in the management controller, on the one hand, it can exchange data with the processor through the connection device included in the management controller and the PCIe interface between the management controller and the processor. On the other hand, each interface device also has a protocol conversion function, which can realize the conversion between the first communication protocol and the second communication protocol, thereby realizing data interaction between the processor and the external device.
[0130] For example, for the USB interface device, GMAC interface device and SATA interface device shown in Figure 2, on the one hand, these interface devices can exchange data with the processor through the connection device of the management controller. On the other hand, the USB interface device, as a protocol conversion module, can realize protocol conversion from USB protocol to PCIe protocol, and PCIe protocol to USB protocol; the GMAC interface device, as a protocol adapter module, can realize protocol conversion from GMAC protocol to PCIe protocol, and PCIe protocol to GMAC protocol; the SATA interface device, as a protocol adapter module, can realize protocol conversion from SATA protocol to PCIe protocol, and PCIe protocol to SATA protocol, thereby realizing these interface devices to exchange data with external devices connected to these interfaces through corresponding interfaces (corresponding USB interface, GMAC interface, SATA interface).
[0131] The structures of the USB interface device, GMAC interface device, and SATA interface device shown in Figure 2 are explained below, and the first communication protocol is the PCIe protocol as an example for explanation. It can be understood that by setting these interface devices in the management controller, not only can the USB interface function, network interface function, and SATA interface function be expanded, but more interface devices and interfaces can also be added as needed to expand new interface functions, such as adding an HDMI interface device and an HDMI interface to expand the HDMI interface function, adding an audio interface device and an audio interface to expand the audio interface function, and so on.
[0132] Please refer to Figure 3, which is a structural schematic diagram of a USB interface device and a corresponding interface provided in an embodiment of the present application. The USB interface device is connected to the connecting device and is used to receive PCIe data packets sent by the connecting device, convert the PCIe data packets into USB data packets, and send the converted data packets, i.e., USB data packets, to an external USB device through the USB interface; at the same time, the USB interface device is also used to receive USB data packets from an external USB device, convert the received USB data packets into PCIe data packets, and send the converted PCIe data packets to the connecting device for sending to the processor through the connecting device.
[0133] In one embodiment, the USB interface device includes: an xHCI (eXtensible Host Controller Interface) Controller controller. In some other embodiments, the USB interface device may further include a USB root hub (USB root hub) to facilitate the connection of more USB devices according to the number of external USB devices required.
[0134] xHCI is a USB controller standard that manages communication between computing devices and external USB devices. It provides high-speed, reliable data transfer and supports USB 3.0, USB 3.1, and USB 3.2 specifications.
[0135] The xHCI controller is used to convert PCIe data packets received from the connection device into data packets corresponding to the USB protocol, and then send the converted USB protocol data packets to the corresponding USB device via the USB interface. The specific conversion process includes extracting valid information such as the payload and control signals from the PCIe data packets, encapsulating the data according to the USB protocol, and obtaining USB data packets. The obtained USB data packets are data packets that comply with the USB protocol, and then sending the obtained USB data packets to the corresponding USB device via the USB interface to which the xHCI controller is connected. If the xHCI controller is connected to a USB root hub, the xHCI controller is further used to identify the target USB interface to which the USB data packets belong, send the obtained USB data packets to the USB root hub, and instruct the USB root hub to send the obtained USB data packets to the USB device connected to the target USB interface via the target USB interface. For USB data packets received from the USB device via the USB interface, the xHCI controller is used to perform protocol conversion on the USB data packets from the USB protocol to the PCIe protocol, obtaining PCIe data packets, and then sending the obtained PCIe data packets to the processor via the connection device.
[0136] In an embodiment of the present application, the xHCI controller can be connected to the USB interface and USB connector included in the management controller, and then physically connect and communicate with the USB device inserted in the USB connector, support and manage the USB interface, and can cooperate with the USB root hub as needed to access multiple USB devices with the same or different protocol versions supported by the xHCI controller.
[0137] The xHCI controller manages data transfer between USB devices connected through the USB interface and the processor. It provides a high-speed, reliable data transfer channel and supports USB 3.0 and later specifications, enabling USB devices such as USB-based mobile hard drives and USB-based speakers to transfer data with the processor at faster speeds.
[0138] In some other embodiments, the xHCI controller can also manage the power supply of the USB device, control the power supply status of the USB device, provide appropriate power to the USB device as needed, and perform power saving management when the USB device is not in use.
[0139] In some other embodiments, the xHCI controller can also detect and manage USB devices connected through the USB interface, identify newly inserted USB devices, and communicate with the processor to implement functions such as initialization, configuration, and management of USB devices connected through the USB interface and USB connector of the management controller.
[0140] The USB Root Hub can be a logical component. Multiple USB interfaces can be connected through the USB Root Hub. More USB devices can be connected through the connected multiple USB interfaces, so that the xHCI controller can initialize, configure, and manage multiple USB devices.
[0141] The USB root hub provides a physical connection and communication interface for USB devices connected through the USB interface, allowing multiple USB devices to be connected and supporting the connection and communication of multiple USB devices simultaneously. The USB root hub is used to route data transmission between USB devices connected to the USB interface and the xHCI controller. On the one hand, the USB root hub can route USB data packets output from the xHCI controller to the correct USB interface and connected USB device. On the other hand, when the USB root hub receives USB data packets from the external USB device, it will transmit them to the xHCI controller so that they can be sent to the processor for corresponding processing through the xHCI controller and the connection device.
[0142] In other embodiments, the USB root hub can also adjust the data transmission speed based on the read / write speed of the external USB device and the input / output capabilities of the processor. The USB root hub can analyze the USB protocol version supported by the external USB device and the USB protocol version supported by the computing device's processor, and transmit data at the highest achievable transmission speed of the corresponding USB protocol version to facilitate better reading and writing data to the USB device.
[0143] Please refer to Figure 4 again, which is a structural schematic diagram of a GMAC interface device and a corresponding GMAC interface provided in an embodiment of the present application. The GMAC interface device is connected to the above-mentioned connection device, and is used to receive PCIe data packets sent by the connection device, convert the PCIe data packets into GMAC data packets, and send the converted data packets, i.e., GMAC data packets, to the connected network device through the corresponding GMAC interface; at the same time, the GMAC interface is also used to receive GMAC data packets sent by the network device, convert the GMAC data packets into PCIe data packets, and send the converted PCIe data packets to the connection device, so as to be sent to the processor through the connection device.
[0144] In one embodiment, the GMAC interface includes: a protocol conversion unit and a GMAC Controller.
[0145] The protocol conversion unit is used to implement protocol conversion of data packets and output the data after protocol conversion. It can convert the protocol corresponding to the data packet from PCIe protocol to GMAC protocol, and from GMAC protocol to PCIe protocol.
[0146] In one embodiment, the protocol conversion unit is configured to receive PCIe data packets sent from a connection device and parse them to obtain a data packet to be transmitted to the network via the GMAC interface and the connected network device. The processor transmits the PCIe data packet to be output to the network device via the GMAC interface to the connection device of the management controller via the PCIe interface, which then transmits the data packet to the GMAC interface device. After receiving the PCIe data packet, the GMAC interface device parses the data packet to extract valid information, such as data, addresses, and control signals. This valid information includes information required by the GMAC protocol.
[0147] After obtaining valid information, the protocol conversion unit performs protocol conversion to produce a GMAC data packet. Due to the differences in data formats and encoding between the PCIe protocol and the GMAC protocol, the protocol conversion unit re-encodes and reassembles the contents of the PCIe data packet, repackaging the data into a GMAC-compliant data packet. This process includes rearranging the data fields and adding checksums and control flags to produce a GMAC data packet.
[0148] The GMAC data packet obtained after conversion can be sent to the corresponding network device as data to be transmitted through the GMAC controller and the GMAC interface (such as the Ethernet interface 1 in Figure 4) and then transmitted in the corresponding network.
[0149] In one embodiment, the protocol conversion unit may use data cache as needed to handle rate mismatch or delay issues during the conversion process. For example, for the GMAC data packets converted by the protocol conversion unit, since the network accessed through the GMAC interface device and the GMAC interface may have a small bandwidth and a low transmission rate, this may cause the converted GMAC data packets to be unable to be sent out in a timely manner. In this case, a cache circuit may be configured to store the GMAC data packets converted by the protocol conversion unit, so that the converted GMAC data can be sent in the form of a cache queue.
[0150] In one embodiment, when the GMAC data packet cannot be output to the network in time, the protocol conversion unit may also cache the PCIe data packet received from the connection device into the cache circuit to achieve data flow control and synchronization during GMAC data packet communication.
[0151] The GMAC Controller is used to achieve high-speed Ethernet interconnection and can be connected to a variety of network devices to access the network and realize network data interaction.
[0152] For GMAC packets received via GMAC interfaces such as Ethernet interface 1, the GMAC Controller is responsible for processing the transmission and reception of GMAC packets, including level conversion and timing control. It then sends the final GMAC packet to the protocol conversion unit, which converts the GMAC packet into a PCIe packet. The resulting PCIe packet is then sent to the connection device, which then sends it to the processor for processing. The packet protocol conversion process also involves obtaining valid information from the GMAC packet, including information required by the PCIe protocol. This valid information is then used to obtain the data to be processed, and protocol conversion is performed on the data to ultimately obtain the PCIe packet.
[0153] Please refer to Figure 5 again, which is a structural schematic diagram of a SATA interface device and a corresponding SATA interface provided in an embodiment of the present application. The SATA interface device is connected to the connection device mentioned above, and is used to receive PCIe data packets sent by the connection device, convert the PCIe data packets into conversion data packets, namely SATA data packets, and send the converted SATA data packets to the SATA device through the corresponding SATA interface; at the same time, the SATA interface device is also used to receive SATA data packets from the SATA device, convert the SATA data packets into PCIe data packets, and send the converted PCIe data packets to the connection device, so as to be sent to the processor through the connection device.
[0154] In one embodiment, the SATA interface device includes: a protocol conversion unit and an AHCI (Advanced Host Controller Interface) Controller.
[0155] The protocol conversion unit is used to implement protocol conversion of data packets and output the converted data packets. It can convert data packets from PCIe protocol to SATA protocol, and also convert data packets from SATA protocol to PCIe protocol.
[0156] In one embodiment, a protocol conversion unit is configured to perform PCIe bus layer conversion on a PCIe data packet received from a connection device. This conversion process includes parsing the PCIe data packet, determining payload data within the PCIe data packet, and determining transmission information such as the transmission type, transmission direction, and transmission size. Then, based on the payload data, transmission information, and other contents, the payload data within the PCIe data packet, including data to be stored in a SATA device, is encapsulated and processed according to the SATA protocol to obtain a SATA data packet. The SATA data packet obtained after protocol conversion is accessed via an AHCI controller to store the SATA data packet in the SATA device (storage device).
[0157] The SATA interface device will implement a communication interface with the physical layer and link layer of the connected SATA device. In this way, after the protocol conversion unit converts the SATA data packet, the AHCI controller implements the access to the SATA device and the storage of the SATA data packet through the communication interface with the physical layer and link layer of the connected SATA device and the corresponding SATA interface.
[0158] For SATA data packets received from SATA devices via the AHCI controller, the protocol conversion unit converts the SATA protocol to the PCIe protocol. It decapsulates the SATA data packets to obtain the processor's processing data, such as the payload data, and then recapsulates the decapsulated data into PCIe data packets. During the encapsulation and decapsulation process, protocol differences, such as packet structure and transmission rate, must be considered to achieve protocol conversion. The resulting PCIe data packets are then sent to the processor via the connection device.
[0159] In one embodiment, when writing SATA data packets to a SATA device or reading SATA data packets from a SATA device, the SATA interface device can be configured with logic for error detection and processing of the SATA data packets, for performing error detection and correction processing on each data packet transmission to ensure the integrity and accuracy of the SATA data packets. In some possible implementations, a checksum, a cyclic redundancy check (CRC), or an error correction code can be used to detect and correct errors in SATA data packet transmission.
[0160] In one embodiment, a SATA interface device can generate and transmit control signals to transmit commands covered by the SATA protocol and transfer SATA data packets to and from SATA devices. When reading and writing data, the SATA interface device can also be configured with processing logic specific to the status and response of the connected SATA device to ensure the accuracy of the SATA data packets.
[0161] Timing control logic can be configured as needed within the SATA interface device, taking into account timing requirements such as data sampling, transmission timing, and hold time, to implement appropriate clock signals and timing control mechanisms to ensure that data transmission and processing adhere to protocol specifications and that SATA data packets are correctly transmitted and received. Furthermore, registers and control interfaces can be provided for configuring the SATA interface device's operating mode, transmission rate, and functional options. An interrupt handling mechanism can also be implemented within the SATA interface device to send interrupt signals to the processor as needed to respond to corresponding events.
[0162] AHCI is a host controller interface standard. An AHCI controller based on AHCI is used to connect a protocol conversion unit and a SATA device (such as a hard disk drive and a solid-state drive) connected to a corresponding SATA interface.
[0163] The AHCI controller is used to achieve high-speed data transmission with SATA devices, supporting data transmission rates of up to 6Gbps as needed, providing higher bandwidth for faster data access and transfer speeds. Furthermore, because the AHCI standard defines a common set of commands, registers, and protocols, driver development is simplified. AHCI drivers can be applied to various SATA devices that comply with the AHCI standard, allowing the computing device's operating system to use a common driver to manage and operate different hard disk drives and solid-state drives.
[0164] In addition, the AHCI controller also supports hot plugging and hot swapping, allowing SATA devices connected through the AHCI controller to be connected or disconnected while the computing device is running. SATA devices can be added or removed without shutting down the computing device, improving the flexibility and scalability of the hardware. In addition, the AHCI controller also supports NCQ (Native Command Queuing) technology, which is a technology that optimizes disk access. NCQ technology allows multiple input and output requests to be issued for SATA, and reordered and optimized to maximize the performance and response speed of SATA devices.
[0165] Please refer to Figure 6 again, which is a flow chart of the data processing method provided in an embodiment of the present application. The method can be executed by the management controller of the computing device (the BMC SoC shown in Figure 2), can be executed by the management controller, or can be executed by a functional device integrated in the management controller. The management controller is connected to the processor based on a first communication protocol, and the management controller includes an extension interface, which is used to connect to an external device based on a second communication protocol. The management controller can specifically refer to the management controller mentioned in the aforementioned embodiments. The method includes the following steps.
[0166] S601: Receive a service data packet transmitted by a processor.
[0167] During the operation of the computing device, the processor can generate various types of business data packets. These business data packets can be output data that needs to be sent to USB devices such as mobile hard drives based on the USB protocol, speakers based on the USB protocol, etc. through the USB interface; they can also be data to be stored in SATA devices such as mechanical hard drives and SSDs through the SATA interface, or they can be data to be transmitted to the network through the GMAC interface. These business data packets will be processed into data packets in the form of corresponding protocols for transmission between the processor and the management controller, and within the management controller. The processor will generate a business data packet that complies with the first communication protocol based on the first communication protocol. If the first communication protocol is the PCIe protocol, the obtained business data packet is a PCIe data packet.
[0168] S602: Analyze the service data packet to determine the destination device of the service data packet.
[0169] As described in the aforementioned embodiment, determining the destination device of a service data packet may include confirming the receiving end of the service data packet. The receiving end may refer to one or more interface devices provided in the management controller, as well as a GPU, etc. The expansion interfaces connected to different interface devices correspond to different types of second communication protocols, and different types of second communication protocols perform data processing based on different protocols. For example, the aforementioned USB interface corresponds to a second communication protocol based on the USB protocol, and corresponds to USB protocols such as USB 2.0 and USB 3.0.
[0170] In one embodiment, the management controller can determine the receiving end of a service data packet based on parsing the PF identifier in the service data packet. The service data packet generated by the processor can record the PF identifier used to transmit the service data packet. The PF identifier is mapped to each possible receiving end (such as each interface device and GPU). In S602, the receiving end of the service data packet can be determined by reading the PF identifier recorded in the service data packet and the mapping relationship.
[0171] In another embodiment, the service data packet generated by the processor may include type indication information of the service data packet. The type indication information is used to indicate the receiving end, and each possible receiving end corresponds to unique type indication information. In S602, the receiving end of the service data packet can be determined by reading the type indication information recorded in the service data packet. For example, if the type indication information corresponding to a USB interface device is a character, when the type indication information in the service data packet is USB, the receiving end can be directly determined as a USB interface device in S603.
[0172] In another embodiment, the service data packet generated by the processor may include a destination device. The management controller parses the service data packet to obtain the destination device, and based on the correspondence between the destination device and the receiving end, confirms the receiving end corresponding to the target device (various interface devices and GPU, etc.).
[0173] S603: When the destination device of the service data packet is an external device, the service data packet is converted into a conversion data packet that complies with the second communication protocol, and the conversion data packet is sent to the corresponding external device through the expansion interface to achieve a communication connection between the external device and the processor.
[0174] The processor can generate data to be sent to the management controller (for example, data to be sent to the GPU in the management controller), or it can generate data to be sent to an external device connected through the management controller. Therefore, the destination device can be the GPU or a device connected to the GPU, or it can be one or more external devices currently connected through an expansion interface. When data needs to be sent to these destination devices, the processor can record relevant information such as the destination identifier in the generated data packet so that the generated data packet is correctly sent to the destination device.
[0175] In one embodiment, the management controller includes an interface device, and the interface device includes a USB interface device, a GMAC interface device, and a SATA interface device. The method further includes any one or more of the following steps:
[0176] In a case where the receiving end corresponding to the destination device of the service data packet is a USB interface device, converting the service data packet into a data packet that complies with the second communication protocol being the USB protocol;
[0177] In the case where the receiving end corresponding to the destination device of the service data packet is a GMAC interface device, converting the service data packet into a data packet that complies with the second communication protocol being the GMAC protocol;
[0178] In a case where the receiving end corresponding to the destination device of the service data packet is a SATA interface device, the service data packet is converted into a data packet complying with the second communication protocol being the SATA protocol.
[0179] The data conversion processing and other related processing processes of the USB interface device, the GMAC interface device, and the SATA interface device can refer to the description in the aforementioned embodiments.
[0180] In one embodiment, the management controller further includes an image processor, and the method further includes: when the destination device of the service data packet is the management controller, sending the service data packet to the image processor.
[0181] In one embodiment, S603 may include: parsing a service data packet to obtain a destination identifier, confirming a receiving end of the service data packet based on the destination identifier, and sending the service data packet to a receiving end corresponding to the destination identifier, where the receiving end may include, for example, a USB interface device, a GMAC interface device, a SATA interface device, or a GPU, wherein different destination identifiers correspond to different receiving ends. The destination identifier may refer to a PF identifier or type indication information.
[0182] In one embodiment, the PF identifier can be recorded in the generated data packet based on the mapping relationship between the PF identifier and the receiving end described in Table 1 above. In this way, the generated data packet can send the generated data to the correct receiving end, so as to be sent to the destination device through the correct receiving end. For example, the processor records PF2 in the generated PCIe data packet. In this way, the PCIe data packet can send the GMAC data packet converted based on the PCIe data packet to the network device through the connection device, GMAC interface device, GMAC interface, and GMAC connector in the management controller. At this time, the GMAC interface device is the receiving end and the network device is the destination device. For another example, the processor records PFm in the generated PCIe data packet. In this way, the PCIe data packet can forward the data to the GPU through the connection device in the management controller. At this time, the GPU is both the receiving end and the destination device.
[0183] In one embodiment, the relevant information recorded by the processor in the generated data packet can also be type indication information that uniquely indicates the receiving end. The various interface devices and GPUs mentioned above are all assigned unique type indication information. In this way, by recording the type indication information in the generated PCIe data packet, it can be sent to the destination device through the correct target interface device, or directly to the GPU serving as the destination device.
[0184] In one embodiment, the management controller also includes a connecting device and an interface device, and S603 may include: S6031 generating a processing instruction for the receiving end according to the determined receiving end of the business data packet and the business data packet through the connecting device; S6032 sending a processing instruction to the receiving end of the business data packet, the processing instruction being used to instruct the receiving end to process the data of the business data packet; S6033 when the receiving end is a target interface device in the interface device, performing protocol conversion on the business data packet through the target interface device to obtain a converted data packet, and sending the converted data packet to the corresponding external device through the extended interface to realize the communication connection between the external device and the processor.
[0185] In S6031, if the determined receiving end is a GPU, a processing instruction for the GPU can be generated, instructing the GPU to process the service data packet. If the determined receiving end is a target interface device among multiple interface devices, the processing instruction is an instruction for the target interface device, and the processing instruction can be recognized by the target interface device and execute a corresponding processing response. For example, if a USB interface device is the target interface device, the USB interface device can correctly parse the processing instruction and, in response to the processing instruction, perform protocol conversion processing on the service data packet from PCIe protocol to USB protocol through an xHCI controller, etc., to obtain a USB data packet, and then send the USB data packet to the USB device connected to the USB interface device. The processing instruction can include the service data packet. In this way, upon receiving the processing instruction, the target interface device can carry out operations such as parsing, protocol conversion, and outputting the service data packet included in the processing instruction.
[0186] When the target interface device is used as the receiving end, the data processing of the business data packet is mainly to convert the business data packet into a data packet of the second communication protocol corresponding to the target interface device, so that the converted data packet can be sent to the device inserted into the connector through the target interface device via the connector connected to the target interface.
[0187] Taking FIG. 2 as an example, when the processor generates data to be sent to an external USB device, it performs data encapsulation and other processing based on the first communication protocol between the processor and the management controller, namely the PCIe protocol, to generate a PCIe protocol service data packet, which is then sent to the management controller via the PCIe interface. Upon receiving the service data packet, the connection device of the management controller parses the received service data packet and, based on the destination identifier, such as the PF identifier, recorded in the service data packet, determines that the service data packet is data to be sent to the USB device via the USB interface device. Therefore, using the USB interface device as the target interface device, the connection device generates a processing instruction for the USB interface device, instructing the USB interface device to perform protocol conversion on the service data packet, converting the service data packet from a PCIe protocol packet to a USB protocol packet, and then sending the converted USB protocol packet to the corresponding USB interface (e.g., the USB interface corresponding to USB 2.0 in FIG. 2 ), so that the converted USB protocol packet can be stored in the USB device corresponding to USB 2.0.
[0188] The following further describes the process of data processing by the interface device in the embodiment of the present application in combination with the above-mentioned structural diagram.
[0189] Based on the structure of Figure 3, please refer to Figure 7, which is a flow chart of the data processing method based on the USB interface device provided by an embodiment of the present application. After the USB interface device is determined as the target interface device from the interface device, the connection device of the management controller will send a processing instruction for instructing the processing of the service data packet to the USB interface device. After receiving the processing instruction, the USB interface device will process the service data packet and execute the corresponding processing steps. In one embodiment, the USB interface device includes an xHCI controller. The relevant process of converting the service data packet from PCIe protocol data to USB protocol data packet and transmitting it in the USB interface device includes the following steps:
[0190] S701: Parse the received service data packet through the xHCI controller to obtain target data.
[0191] When the first communication protocol is PCIe, parsing the service data packet is equivalent to parsing the PCIe data packet. This includes parsing and analyzing the PCIe data packet header information, data payload, and error detection. The target data refers to the data required by the USB protocol within the service data packet, so that the resulting USB data packet can be correctly stored in the USB device.
[0192] In addition, before executing S701, for example, when the management controller is powered on or a USB device is connected via a USB interface device, the management controller may perform device initialization processing for the PCIe interface, USB interface device, and USB interface. Device initialization processing includes steps such as initializing the PCIe interface, USB interface device, and USB interface, as well as detecting and identifying the connected USB device, and related configuration and parameter settings. Furthermore, before transmitting a service data packet, the management controller also configures the necessary software and hardware resources and parameters for transmitting the service data packet, including allocating a buffer for the service data packet transmission, determining the transmission size and direction, and setting a transmission mode, such as DMA (Direct Memory Access).
[0193] S702: The target data is encapsulated and processed by the xHCI controller to obtain output data that complies with the USB protocol, i.e., a converted data packet. The output data is data that complies with the USB protocol, i.e., a USB data packet. After parsing the PCIe data packet, the parsed target data is converted into output data in the format required by the USB protocol. This includes segmenting the data into USB transmission units (e.g., USB data frames) by the xHCI controller, adding the corresponding USB protocol header, and performing data frame serialization.
[0194] S703: Outputting the data to be output in accordance with the USB protocol through the xHCI controller to be stored in the connected USB device. The converted data needs to be transmitted through the USB interface to be ultimately sent to the USB device connected to the USB interface for storage.
[0195] In one embodiment, after S703, the method further includes: performing error correction processing through the xHCI controller, the error correction processing including error detection and correction of transmitted USB data packets, including detecting and correcting errors that may occur in the PCIe interface and USB interface device, USB interface, data integrity, timing problems, etc.
[0196] After the data transfer is completed, the xHCI controller may perform some cleanup and resource release operations as needed, such as releasing buffers, closing and resetting related interfaces, and updating status and flags.
[0197] Based on the structure of FIG4 , please refer to FIG8 , which is a flow chart of a data processing method based on a GMAC interface device provided in an embodiment of the present application. After the GMAC interface device is determined as the target interface device for a service data packet from the interface device, a processing instruction for instructing the processing of the service data packet is sent to the GMAC interface device via the connection device of the management controller. After receiving the processing instruction, the GMAC interface device processes the service data packet and executes the corresponding processing steps. In one embodiment, the GMAC interface device includes a protocol conversion unit and a GMAC controller. The relevant process of converting the service data packet from PCIe protocol data to GMAC protocol data and transmitting it in the GMAC interface device includes the following steps.
[0198] S801: The protocol conversion unit parses the service data packet to obtain target data. If the first communication protocol is the PCIe protocol, the protocol conversion unit parses and processes the PCIe data packet. The parsing process includes extracting payload data, checksums, and other content to obtain target data. The target data refers to the data required by the GMAC protocol in the service data packet, so that the resulting GMAC data packet can be correctly sent to the network device and transmitted on the network.
[0199] Furthermore, before executing S801, for example, when the management controller is powered on or an external network device is connected via the GMAC interface device, the management controller may initialize and configure the PCIe interface, the GMAC interface device, and the GMAC interface. Initializing and configuring the PCIe interface includes setting a transmission mode for service data packets, configuring data buffers, and interrupt and error handling. Initializing and configuring the GMAC interface device and the GMAC interface includes detecting and identifying connected network devices, and setting related network configurations and parameters.
[0200] S802: The protocol conversion unit performs data encapsulation processing on the target data to obtain data to be transmitted that complies with the GMAC protocol. The data to be transmitted that complies with the GMAC protocol is a GMAC data packet. The data encapsulation processing includes protocol conversion between the PCIe protocol and the GMAC protocol. The data encapsulation processing converts the target data determined from the service data packet based on the first communication protocol, namely the PCIe protocol, into data of the second communication protocol, namely the GMAC protocol. The data conversion process may include, for example, constructing a GMAC frame header for the target data, setting the source and destination MAC addresses, and adjusting the frame length.
[0201] S803: Outputting the data to be transmitted that complies with the GMAC protocol through the GMAC controller. The converted data to be transmitted can be transmitted through the GMAC controller, including writing the data to be transmitted into the GMAC sending buffer, setting the frame interval, and sending the frame.
[0202] After S803 , the method may further include: performing error detection and correction by the GMAC controller, such as checking the integrity and accuracy of data, and handling transmission errors and abnormal situations.
[0203] In addition, after executing S802 and before executing S803, the management controller may also perform transmission initialization and configuration processing, which may specifically include initialization and configuration processing of the GMAC controller. The initialization and configuration include setting the transmission mode, rate, flow control, etc. of the GMAC controller.
[0204] In one embodiment, for data packets received from the GMAC interface, i.e., one or more Ethernet interfaces in FIG. 4 , the GMAC interface device also performs corresponding GMAC data packet parsing, conversion, and other processing to ultimately obtain a PCIe data packet that can be sent to the processor. The obtained PCIe data packet is then sent to the processor of the computing device for processing via the PCIe interface between the connection device, the management controller, and the processor. The GMAC controller performs parsing on the GMAC data packet, including verifying a CRC (Cyclic Redundancy Check) checksum, extracting payload data, and checking for address matching. The data parsed by the GMAC controller is then subjected to protocol conversion processing, converted into a data packet in the data format of the first communication protocol, i.e., a PCIe data packet, and the converted PCIe data packet is output to the processor via the connection device.
[0205] In one embodiment, whether sending data to or receiving data from a network external device, after the data transmission is completed, the GMAC controller can clean up and release resources as needed, including releasing buffers, closing and resetting interfaces, updating status and flags, and other operations.
[0206] Based on the structure of FIG5 , FIG9 is a flow chart illustrating a data processing method based on a SATA interface device according to an embodiment of the present application. After the slave interface device determines the SATA interface device as the target interface device for a service data packet, a processing instruction instructing the SATA interface device to process the service data packet is sent to the SATA interface device. Upon receiving the processing instruction, the SATA interface device processes the service data packet and executes the corresponding processing steps. In one embodiment, the SATA interface device includes a protocol conversion unit and an AHCI controller. The process of converting the service data packet from PCIe protocol data to SATA protocol data and transmitting the data packet in the SATA interface device includes the following steps.
[0207] S901: The protocol conversion unit parses the received service data packet to obtain target data. The target data refers to the data required by the SATA protocol within the service data packet, so that the resulting SATA data packet can be correctly stored in the SATA device. If the first communication protocol is the PCIe protocol, this step primarily involves parsing the PCIe protocol data packet, extracting the payload data, checksum, and other content from the PCIe data packet to obtain the target data to be processed.
[0208] In one embodiment, before S901, for example, when the management controller is powered on or a SATA device is connected through a SATA interface device, the management controller may also perform initialization processing for the PCIe interface, the SATA interface device, and the SATA interface. The initialization and configuration may include setting the transmission mode for the service data packet, configuring the data buffer, interrupt and error handling, and other processing.
[0209] S902: The protocol conversion unit converts the target data to obtain data to be stored that conforms to the SATA protocol. The data to be stored that conforms to the SATA protocol is a SATA data packet. Converting the parsed target data (e.g., the payload data mentioned above) to SATA protocol data includes encapsulating the parsed data into SATA commands and data packets.
[0210] S903: Outputting the data to be stored that complies with the SATA protocol through the AHCI controller so that the data to be stored that complies with the SATA protocol is stored in the corresponding SATA device. The transmission process of S903 includes the transmission of SATA commands. The SATA commands can be generated by the protocol conversion unit when the conversion is completed to obtain the data to be stored that complies with the SATA protocol. The protocol conversion unit transmits the generated SATA commands and SATA data packets to the AHCI controller, which then writes the SATA data packets. In addition, before transmitting the SATA commands and SATA data packets, the management controller can also initialize and configure the AHCI controller. The initialization and configuration includes setting the transmission mode, rate, number of interfaces used, etc.
[0211] In one embodiment, before S903 , the AHCI controller may further perform error detection and correction processing on the data packet, such as checking the integrity and accuracy of the SATA data packet, and handling transmission errors and abnormal situations.
[0212] After data transmission is completed, the AHCI controller can also be used to confirm the completion of the transmission. The AHCI controller can also be used to perform operations including cleaning up and releasing resources. The process of cleaning up and releasing resources includes checking the transmission status and flags, releasing related resources, updating the status and notifying the upper-layer application of the completion of the transmission.
[0213] In the computing device of the present application, the input and output capabilities of the processor are improved by the interface device provided by the management controller connected to the processor in the computing device, and more external devices such as network interface cards, storage controllers, accelerator cards, etc. can be connected to the computing device. This increases the scalability and flexibility of the computing device and can meet the needs of different applications. After adding various types of external devices as needed, the storage capacity and performance of the computing device can be significantly improved. By connecting additional storage controllers or solid-state drives (SSDs) and other devices, the storage capacity and performance of the computing device can be increased, which is very meaningful for computing devices that require large capacity and high-speed storage (such as database servers, big data analysis and cloud computing platforms, etc.). It is also possible to increase the network connectivity and bandwidth of the computing device by connecting multiple network interface cards (NICs). Moreover, after the interface is expanded, some network, storage and other interfaces that are directly connected to the processor and occupy the processor IO can be unloaded as needed, so that the processor can be directly connected to other required devices.
[0214] Regarding the various devices and units described in the above embodiments, they can be software modules / units, hardware modules / units, or partly software modules / units and partly hardware modules / units. For example, for various devices and products applied to or integrated into a chip, the various modules / units contained therein can all be implemented in the form of hardware such as circuits, or at least some of the modules / units can be implemented in the form of software programs, which run on the processor integrated inside the chip, and the remaining (if any) modules / units can be implemented in the form of hardware such as circuits; for various devices applied to or integrated into a chip module, the various modules / units contained therein can all be implemented in the form of hardware such as circuits, and different modules / units can be located in the same component of the chip module (such as a chip, circuit module, etc.) or in different components, or at least some of the modules / units can be implemented in the form of software programs. It is implemented in the form of a software program, which runs on the processor integrated inside the chip module, and the remaining (if any) modules / units can be implemented in the form of hardware such as circuits; for various devices and products applied to or integrated in the terminal, the various modules / units contained therein can be implemented in the form of hardware such as circuits, and different modules / units can be located in the same component (for example, chip, circuit module, etc.) or different components in the terminal, or at least some modules / units can be implemented in the form of a software program, which runs on the processor integrated inside the terminal, and the remaining (if any) modules / units can be implemented in the form of hardware such as circuits.
[0215] It will be understood that the “embodiment” mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the embodiment of the present application. Therefore, the various embodiments in the entire specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It will be understood that in the various embodiments of the embodiment of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.
[0216] It can be understood that in the embodiments of the present application, "when...", "under...", "if" and "if" all mean that the device will perform corresponding processing under certain objective circumstances, and do not limit the time, nor do they require that the device must perform a judgment action when it is implemented, nor do they mean that there are other limitations.
[0217] Those skilled in the art will appreciate that, for the sake of convenience and brevity of description, the specific working processes of the above-described systems, devices, and units may refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0218] The same or similar parts between the various embodiments in the embodiments of the present application can refer to each other. In the various embodiments in the embodiments of the present application, and the various implementation methods / implementation methods / implementation methods in the various embodiments, if there is no special explanation and logical conflict, the terms and / or descriptions between different embodiments and the various implementation methods / implementation methods / implementation methods in the various embodiments are consistent and can be referenced to each other. The technical features in different embodiments and the various implementation methods / implementation methods / implementation methods in the various embodiments can be combined to form new embodiments, implementation methods, implementation methods, or implementation methods according to their inherent logical relationships. The above implementation methods of the embodiments of the present application do not constitute a limitation on the scope of protection of the embodiments of the present application.
[0219] The above is only a specific implementation method of the embodiment of the present application, but the protection scope of the embodiment of the present application is not limited to this. Any technician familiar with this technical field can easily think of changes or replacements within the technical scope disclosed in the embodiment of the present application, and they should all be covered by the protection scope of the embodiment of the present application.
Claims
1. A computing device, characterized in that, The computing device includes a processor and a management controller, and the management controller is connected to the processor through a first communication protocol; The management controller includes an expansion interface, and the expansion interface is connected to an external device through a second communication protocol; The management controller is configured to receive a service data packet from the processor, and in the case that the destination device of the service data packet is an external device, convert the service data packet conforming to the first communication protocol into a conversion data packet conforming to the second communication protocol, and send the conversion data packet to the corresponding external device through the expansion interface, so as to implement a communication connection between the external device and the processor.
2. The computing device according to claim 1, wherein The management controller further includes a Peripheral Component Interconnect Express (PCIe) interface, the PCIe interface is connected to the processor, the number of the expansion interfaces is multiple, each expansion interface is connected to a corresponding external device, and different expansion interfaces are connected to corresponding external devices through different second communication protocols.
3. The computing device according to claim 2, wherein The multiple expansion interfaces include a Universal Serial Bus (USB) interface, a Gigabit Media Access Control (GMAC) interface, and a Serial Advanced Technology Attachment (SATA) interface. The computing device further includes a plurality of connectors, and the plurality of connectors include a USB connector, a GMAC connector, and a SATA connector. The USB connector, the GMAC connector, and the SATA connector are respectively and correspondingly connected to the USB interface, the GMAC interface, and the SATA interface. The external device includes a USB device, a storage device, or a network card; the USB connector is used to connect to the USB device, the SATA connector is used to connect to the storage device, and the GMAC connector is used to connect to the network card.
4. The computing device according to claim 1, wherein The management controller further includes a connection device and an interface device. The connection device is connected to both the processor and the interface device, and the interface device is connected to the expansion interface. The connection device is configured to receive the service data packet, and in the case that the destination device of the service data packet is an external device, send the service data packet to the interface device corresponding to the connected external device. The interface device is configured to perform protocol conversion on the service data packet to obtain a conversion data packet, and send the conversion data packet to the corresponding external device through the expansion interface.
5. The computing device according to claim 4, wherein The management controller further includes an image processor, and the image processor is connected to the connection device. The connection device is further configured to, in the case that the destination device of the service data packet is the management controller, send the service data packet to the image processor.
6. The computing device according to claim 4 or 5, characterized in that, The interface device includes a USB interface device, a GMAC interface device, and a SATA interface device. The multiple expansion interfaces include a USB interface, a GMAC interface, and a SATA interface. The USB interface device, the GMAC interface device, and the SATA interface device are respectively and correspondingly connected to the USB interface, the GMAC interface, and the SATA interface; The USB interface device is configured to, when receiving the service data packet, convert the service data packet into a data packet with a second communication protocol being the USB protocol; The GMAC interface device is used to convert the service data packet into a data packet with the second communication protocol being the GMAC protocol when receiving the service data packet; The SATA interface device is used to convert the service data packet into a data packet with the second communication protocol being the SATA protocol when receiving the service data packet.
7. The computing device according to claim 6, wherein The connection device is specifically configured to parse the service data packet to obtain a destination identifier, confirm the receiving end of the service data packet according to the destination identifier, and send the service data packet to the receiving end corresponding to the destination identifier. The receiving end includes a USB interface device, a GMAC interface device, a SATA interface device, or a GPU. Among them, different destination identifiers correspond to different receiving ends.
8. A management controller, characterized in that, It includes a PCIe interface and an expansion interface. The PCIe interface is connected to the processor, and the expansion interface is used to connect to an external device; The management controller is used to receive the service data packet that conforms to the first communication protocol sent by the processor through the PCIe interface; when the destination device of the service data packet is an external device, convert the service data packet into a converted data packet that conforms to the second communication protocol; and send the converted data packet to the corresponding external device through the expansion interface to achieve the communication connection between the external device and the processor.
9. The management controller according to claim 8, characterized in that The number of the expansion interfaces is multiple, each expansion interface is connected to a corresponding external device, and different expansion interfaces are connected to the corresponding external devices through different second communication protocols.
10. A data processing method, characterized in that, Applied to a management controller, the management controller is connected to the processor based on the first communication protocol. The management controller includes an expansion interface, and the expansion interface is used to connect to an external device based on the second communication protocol. The method includes: Receiving the service data packet sent by the processor; Parsing the service data packet to determine the destination device of the service data packet; When the destination device of the service data packet is the external device, convert the service data packet into a converted data packet that conforms to the second communication protocol, and send the converted data packet to the corresponding external device through the expansion interface to achieve the communication connection between the external device and the processor.
Citation Information
Patent Citations
Server system
CN104516434A
Baseboard management controller and construction method thereof
CN110532005A
Computing device, management controller and data processing method
CN117873924A
UBM implementation inside bmc
US20200065273A1
Cited By
Multi-mode communication network dynamic scheduling system fusing AI computing power
CN120751408A