Complex programmable logic device (CPLD)-based data processing method and system, and computing device

By using a CPLD to simulate the UBM protocol on the hard drive backplane, the problems of high cost and poor scalability of dedicated FPGA chips are solved, enabling flexible management and protocol upgrades for various hard drive interface types, reducing hardware costs and improving system integration.

WO2025256210A1PCT designated stage Publication Date: 2025-12-18XFUSION DIGITAL TECH CO LTD

Patent Information

Application Number
PCT/CN2025/082724
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-11
Filing Date
2025-03-14
Publication Date
2025-12-18

AI Technical Summary

Technical Problem

In the existing technology, implementing the UBM protocol with dedicated FPGA chips has problems such as high cost, high supply chain risk and poor scalability, making it difficult to flexibly manage multiple hard drive interface types on the hard drive backplane.

Method used

It uses a complex programmable logic device (CPLD) to simulate the UBM protocol on the hard drive backplane, and processes the interactive data between the RAID controller and the hard drive through a protocol processing module. It supports hard drive management of SAS/SATA/NVME interface types and supports new protocols through software updates.

Benefits of technology

It reduces hardware costs, enhances the versatility and scalability of hard drive backplanes, reduces reliance on proprietary FPGA chips, and enables flexible adaptation and protocol upgrades to different hard drive interface types.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025082724_18122025_PF_FP_ABST
    Figure CN2025082724_18122025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a complex programmable logic device (CPLD)-based data processing method and system, and a computing device. The CPLD is arranged on a hard disk backplane of a server, and the hard disk backplane supports a universal backplane management (UBM) protocol; the hard disk backplane comprises an HFC connector for connecting to a RAID controller and a DFC connector for connecting to a hard disk slot, and the CPLD is connected to the HFC connector and the DFC connector, respectively. The method comprises: when a hard disk is inserted into the hard disk slot, determining an interface type of the hard disk according to a signal level transmitted by the DFC; processing interaction data between the RAID controller and the hard disk according to the hard disk interface type, wherein the interaction data comprises data indicating the hard disk interface type, data indicating a hard disk state and read / write operation command data; and transmitting the processed data to the RAID controller or the hard disk so as to achieve hard disk management, wherein the hard disk comprises a hard disk of an SAS / SATA / NVME interface type. In this way, new logic functionality is added to an existing logic chip of the hard disk backplane to achieve the functionality of the UBM protocol.
Need to check novelty before this filing date? Find Prior Art

Description

Data processing method, system and computing device based on complex programmable logic device (CPLD)

[0001] The present application claims priority to the Chinese Patent Publication No. 202410751588.8, filed on June 11, 2024, entitled "Data processing method, system and computing device based on complex programmable logic device (CPLD)", the entire contents of which are incorporated herein by reference. TECHNICAL FIELD

[0002] The present application relates to the technical field of hard disk backplane, and particularly relates to a data processing method, system and computing device based on complex programmable logic device (CPLD). BACKGROUND

[0003] With the increasing demand for data read / write speed and data reliability of servers, a technical solution based on a RAID controller to manage NVME hard disks has emerged in the market. This solution relies on a hard disk backplane that meets the UBM protocol to implement the solution. The Universal Backplane Management (UBM) specification provides a framework for a universal backplane management host, which is used to determine the characteristics of a hard disk backplane connected to SAS / SATA / NVMe hard disks and provide access to drive slot information and controls.

[0004] In related technologies, the function of the UBM protocol is implemented through a special FPGA chip, or through a special FPGA chip plus a general-purpose input / output (GPIO) expansion chip. However, the current UBM protocol chip is a special FPGA chip, which has no cost advantage due to the demand and the particularity of the chip itself. There is also a risk of exclusive supply of the special FPGA chip, and the price of the FPGA chip is relatively high. In addition, the special FPGA chip has poor scalability, and server manufacturers cannot achieve differentiated features through source code changes. Therefore, a system and method are needed that can implement the UBM protocol on the hard disk backplane and have controllable cost and supply to implement the function of the UBM protocol. SUMMARY

[0005] To solve the problems in the prior art, the present application provides a data processing method, system and computing device based on complex programmable logic device (CPLD).

[0006] In a first aspect, the embodiments of the present application provide a data processing method based on a complex programmable logic device (CPLD). The CPLD is arranged on a hard disk backplane of a server, and the hard disk backplane supports a universal backplane management (UBM) protocol. The hard disk backplane includes an HFC connector for connecting a RAID controller and a DFC connector for connecting a hard disk slot, and the CPLD is connected to the HFC connector and the DFC connector respectively. The method includes: determining an interface type of a hard disk according to a signal level transmitted by the DFC when the hard disk is inserted into the hard disk slot; processing interactive data between the RAID controller and the hard disk according to the interface type of the hard disk, the interactive data including data indicating the interface type of the hard disk, data indicating a state of the hard disk, and read / write operation command data; and transmitting the processed data to the RAID controller or the hard disk to implement management of the hard disk, the hard disk including a SAS / SATA / NVME interface type hard disk.

[0007] In the embodiments, by using the CPLD commonly arranged in the hard disk backplane in the server, a protocol processing module is arranged in the CPLD to implement management of SAS / SATA / NVME hard disks based on the RAID controller under the backplane management framework provided by the UBM specification. The dependence on chips such as a special FPGA in the market is reduced, and the size of the CPLD does not need to be increased, so that the hard disk backplane design is compact. The hard disk backplane can be more flexible to adapt to hard disks of different interface types, and the integration of the system is improved. In addition, by using the CPLD to simulate the function of the UBM protocol, compared with the special FPGA chip, the cost of additional purchase and integration of the special FPGA chip is avoided, the hardware cost is reduced, and the universality and scalability of the hard disk backplane are enhanced. The programmable feature of the CPLD enables the hard disk backplane to be flexible to adapt to different types of hard disks, and the support for new hard disk interface protocols can be implemented without replacing hardware. By updating the software of the CPLD, the support for protocol upgrades can be implemented, for example, when a new hard disk interface protocol appears, the new protocol can be supported by upgrading the logic code in the CPLD.

[0008] In some possible examples, the CPLD includes a SAS / SATA protocol processing module and a UBM protocol processing module; and processing the interactive data between the RAID controller and the hard disk according to the interface type of the hard disk includes: when the interface type of the hard disk is SAS / SATA, using the SAS / SATA protocol processing module to process the interactive data from the RAID controller and a first hard disk, the first hard disk including a SAS / SATA interface type hard disk; and when the interface type of the hard disk is NVME, using the UBM protocol processing module to process the interactive data from the RAID controller and a second hard disk, the second hard disk including an NVME interface type hard disk; and the UBM protocol processing module processes the interactive data according to the UBM protocol.

[0009] In the protocol processing module of the CPLD, the SAS / SATA hard disk and the NVME hard disk are processed through the SAS / SATA protocol processing module and the UBM protocol processing module respectively in the embodiment. The UBM protocol processing module is implemented through programming, and the interaction data between the RAID controller and the NVME hard disk is processed according to the UBM protocol, so as to ensure the accuracy and consistency of data transmission and state management.

[0010] In some possible examples, the UBM protocol processing module includes a plurality of UBM controllers, the RAID controller is connected to at least one UBM controller through an HFC connector, and the UBM controller is connected to at least one DFC connector; the interaction data from the second hard disk is processed using the UBM protocol processing module, including: a target UBM controller receiving the interaction data sent by the RAID controller; the target UBM controller is one of the plurality of UBM controllers; the interaction data includes a plurality of fields, and the plurality of fields include one or more of the following: read / write data enable bits, read / write data address bits, command bits, and to-be-written data bits; a plurality of interface data are obtained by parsing the interaction data using the UBM protocol; the plurality of interface data include one or more of the following: first interface data indicating read data enable; second interface data indicating read / write data address; third interface data indicating write data enable; fourth interface data indicating operation command; and fifth interface data indicating to-be-written data; the values of at least one of the first interface data to the fifth interface data are read, the values of at least one of the first interface data to the fifth interface data are parsed, and the parsed command is sent to the DFC connector connected to the second hard disk.

[0011] In the embodiment, a plurality of UBM controllers are arranged in the UBM protocol processing module, so as to be connected to the RAID controller in an upward direction and connected to various types of hard disks in a downward direction. The UBM controller is used to parse the interaction data sent by the RAID controller through the HFC connector. By arranging a plurality of UBM controllers, the system can concurrently process the interaction data of a plurality of hard disks, thereby improving the processing efficiency of the interaction data and the response speed of the system. The interaction data includes a plurality of fields, so that the transmission of the command and the data is more flexible. According to specific requirements, the command field can be extended or modified to ensure accurate issuance and execution of each operation. The interface data are read and parsed to generate a specific operation command, thereby improving the automation degree of the system and reducing manual intervention.

[0012] In some possible examples, the plurality of fields in the interaction data further include UBM controller address bits, the UBM controller address bits being used to determine the target UBM controller; the target UBM controller receives the interaction data sent by the RAID controller, including: the RAID controller sends the interaction data to the UBM controller through the serial data bus, and determines the target UBM controller based on the UBM controller address bits in the interaction data, including: based on the address identification and the address identification comparison result indicated by the UBM controller address bits being consistent, determining that one of the at least one UBM controller is the target UBM controller; each of the at least one UBM controller has a unique address identification.

[0013] In this embodiment, by setting the address bits of the UBM controller in the interaction data, the RAID controller can accurately determine the target UBM controller; each UBM controller has a unique address identification, which can prevent address conflicts and data transmission errors in a plurality of UBM controller environment. And the system can extend new UBM controllers without causing address conflicts.

[0014] In some possible examples, the UBM protocol processing module further includes an FRU, the FRU storing initial configuration information of the hard disk backboard, the initial configuration information including mapping relationships of the plurality of UBM controllers and the HFC connector and the DFC connector.

[0015] In this embodiment, by storing the initial configuration information in the FRU, the system does not need to reconfigure the mapping relationship of each UBM controller and interface when starting, which improves the initialization speed of the system and shortens the startup time. The configuration information stored in the FRU ensures that the system can quickly recover to the previous configuration state after restarting or hardware replacement. And it can be convenient to extend and add new hard disks and UBM controllers.

[0016] In some possible examples, the method further includes: the target UBM controller returns an interaction data processing result to the RAID controller, the processing result indicating that the execution result of the interaction data is success or failure; based on the execution result being success, the RAID controller sends the next interaction data; based on the execution result being failure, the RAID controller, for example, records a log or executes an error processing procedure to notify the RAID controller of the processing error.

[0017] In this embodiment, by indicating the success and failure of execution, the system can timely detect and handle abnormal situations, enhancing the stability and maintainability of the system.

[0018] In some possible examples, the method further includes: transmitting the processed data to a hard disk indicator corresponding to the hard disk to implement management of the hard disk indicator.

[0019] In the embodiment, the system can display the status of the hard disk (such as normal operation, existence, loading failure, etc.) in real time by transmitting the processed data to the hard disk indicator light corresponding to the hard disk.

[0020] In some possible examples, the method further includes that the hard disk indicator lights of the first hard disk and the second hard disk are controlled through the same group of signal lines.

[0021] In some possible examples, the method further includes that the hard disk indicator light is connected to the hard disk backboard through a DFC connector. The DFC connector connects the hard disk indicator light through a multiplexed line.

[0022] In the second aspect, the embodiments of the present application provide a data processing system based on a complex programmable logic device (CPLD). The CPLD is arranged on a hard disk backboard of a server. The hard disk backboard includes an HFC connector for connecting a RAID controller and a DFC connector for connecting a hard disk slot. The system includes a protocol processing module. The protocol processing module is configured to process interactive data between the RAID controller and a hard disk according to a hard disk interface type, and transmit processed data to the RAID controller or the hard disk to implement management of the hard disk. The hard disk includes a SAS / SATA / NVME interface type hard disk.

[0023] In some possible examples, the protocol processing module includes a SAS / SATA protocol processing module configured to process interactive data between the RAID controller and a first hard disk when the hard disk interface type is SAS / SATA. The first hard disk includes a SAS / SATA interface type hard disk. The protocol processing module includes a UBM protocol processing module configured to process interactive data from the RAID controller and a second hard disk by using a UBM protocol when the hard disk interface type is NVME. The second hard disk includes an NVME interface type hard disk. The UBM protocol processing module processes the interactive data according to the UBM protocol.

[0024] In some possible examples, the UBM protocol processing module includes a plurality of UBM controllers. Each of the plurality of UBM controllers is connected to the RAID controller through the HFC connector and connected to the hard disk slot through the DFC connector. Each of the UBM controllers includes a data receiving module configured to receive interactive data sent by the RAID controller through a serial data bus and process the interactive data to obtain a plurality of interface data. The UBM controllers include a command analysis module configured to obtain the plurality of interface data and analyze the plurality of interface data to obtain a first command and a second command. The UBM controllers include a command execution module configured to send the first command to the DFC connector connected to the UBM controller, and send the second command to a hard disk indicator light of the second hard disk connected to the UBM controller. The second hard disk includes an NVME interface type hard disk.

[0025] In the embodiment, the process of processing the interaction data is divided into multiple processing stages, the closed-loop operation of data processing of each stage is completed, that is, the information flow analysis processing in each implementation module is self-closed. The structured processing manner improves the data processing efficiency and reduces the waiting time. The stability and consistency of each stage in the data processing process are ensured. Even if a module fails, other modules can continue to work normally, improving the stability of the system. Each module completes data processing in an independent closed loop, reducing errors and delays caused by data transmission between multiple modules.

[0026] In a third aspect, the embodiment of the present application provides a computing device, comprising: a hard disk backboard, wherein the hard disk backboard comprises a CPLD, and the CPLD is configured to simulate a UBM controller, and the UBM controller is configured to execute the data processing method according to any one of the first aspect and the second aspect; and a RAID controller connected with the UBM controller of the computing device, wherein the RAID controller is configured to generate control information of the hard disk and control information of a hard disk indicator light, and send the control information to a target UBM controller; and the target UBM controller is configured to analyze the control information of the hard disk and the control information of the hard disk indicator light to obtain a control command, and send the control command to a DFC connector connected with a target hard disk and a target hard disk indicator light.

[0027] It can be understood that the beneficial effects of the second aspect and the third aspect described above can be referred to the related description in the first aspect, and will not be described here. BRIEF DESCRIPTION OF DRAWINGS

[0028] FIG. 1 is a schematic diagram of a system architecture of a computing device 200 according to an embodiment of the present application;

[0029] FIG. 2 is a schematic diagram of a system architecture of another computing device 200 according to an embodiment of the present application;

[0030] FIG. 3 is a schematic diagram of a system architecture of a UBM protocol processing module according to an embodiment of the present application;

[0031] FIG. 4 is a schematic diagram of I2C communication between UBM controllers of multiple hard disk backboards and a UBM FRU according to an embodiment of the present application;

[0032] FIG. 5 is a schematic diagram of internal implementation of a UBM controller according to an embodiment of the present application;

[0033] FIG. 6 is a schematic diagram of structures of sub-modules included in each module of the UBM controller in FIG. 5 according to an embodiment of the present application;

[0034] FIG. 7 is a schematic diagram of a structure of a first register in a receiving module according to an embodiment of the present application;

[0035] FIG. 8 is a schematic diagram of a second register in a command analysis module according to an embodiment of the present application;

[0036] Fig. 9 is a schematic diagram of a UBM structure of a multi-RAID controller and a multi-hard disk backplane according to an embodiment of the present application;

[0037] Fig. 10 is a schematic diagram of a structure of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0038] The terms "first", "second", and the like in the description and claims of the present application and the above drawings are used to distinguish similar objects, and do not necessarily indicate a specific order or sequence. It should be understood that the terms so used are interchangeable under appropriate circumstances, and that the embodiments of the present application are described by the use of these terms in a manner that is intended to enable a clear and complete description of the embodiments of the present application to be made. Also, the terms "comprise", "have" and any variations thereof are intended to cover a non-exclusive inclusion, so that a process, method, system, product or apparatus that comprises a list of elements not necessarily limited to those elements, but can include other elements not expressly listed or inherent to such process, method, product or apparatus.

[0039] In order to facilitate understanding of the technical solutions of the present application, the related terms involved in the present application are explained as follows.

[0040] Universal Backplane Management (UBM). The UBM specification aims to define a universal backplane management solution to effectively manage and monitor various hardware devices on the backplane, such as hard disks, etc. The UBM specification usually includes detailed provisions for hardware connection, communication protocol, management function, etc. The RAID controller is usually located on the mainboard and manages the hard disks through the backplane.

[0041] Complex Programming Logic Device (CPLD). CPLD is a digital integrated circuit that users can construct logic functions according to their needs. It is generated by using schematic diagrams, hardware description languages, etc. through an integrated development software platform to generate corresponding target files, which are transmitted to the target chip to realize the designed digital system.

[0042] Hard disk backplane. A circuit board for connecting more hard disks to a computing device, commonly used in the server field, and can also be used to build personal storage systems. The hard disk backplane is directly connected to the mainboard or various adapter cards through a cable, and the number of hard disks that can be connected on each backplane is different. Generally, the backplane is classified according to the different types of data interfaces, and the common classifications are serial advanced technology attachment (SATA) backplane, 6G backplane (such as SFF-8087), 12G (such as SFF-8643) backplane.

[0043] Mainboard: One of the main components of a server, on which the power supply, central processing unit, baseboard management controller, internal memory, memory controller, RAID controller, and PCIE interface connector reserved for expansion cards, etc. can be installed.

[0044] RAID controller: A dedicated expansion card used to manage multiple hard drives, implement data storage and protection functions, and is usually installed in the PCIE slot of the mainboard through the slot.

[0045] The hard disk backboard is an important component of a server, used to connect hard disks and upstream board cards, including server mainboards, RAID controllers, etc. The hard disk backboard can also connect one or more hard disks through an interface. Among them, hard disks can be divided into Serial Attached Small Computer System Interface / Serial Advanced Technology Attachment (SAS / SATA) hard disks and Non-Volatile Memory Express (NVME) hard disks. Hard disk types can be mechanical hard disks, solid state hard disks, etc. Solid state hard disks are further divided into SAS / SATA / NVMe solid state hard disks. SAS / SATA interface hard disks include both mechanical hard disks and solid state hard disks.

[0046] To manage SAS / SATA / NVMe hard drives, different links and protocols are required. SAS / SATA hard drives usually use SAS or SATA protocols to communicate with the CPU on the mainboard. These protocols define specifications for data transmission, command interaction, error handling, etc., allowing the CPU to effectively manage the hard drive. NVMe hard drives use the NVMe protocol for communication. NVMe protocol is a high-performance, low-latency storage protocol designed specifically for solid state drives. Compared to traditional SATA and SAS interfaces, NVMe communicates through the PCIE bus, taking advantage of its high bandwidth and low latency characteristics to achieve higher data transfer rates and lower access latency.

[0047] In servers without RAID controllers, the management schemes for SAS / SATA / NVME hard drives are different. If a hard drive backplane needs to support SAS / SATA / NVME hard drives at the same time, the SAS / SATA / NVME hard drives need to have separate uplink connectors, and different links are needed on the hard drive backplane to support it. The backplane needs to support two management schemes. SAS / SATA hard drives need to be managed through the SGPIO management scheme, and NVME hard drives need to be managed through the VPP management scheme. The backplane management is complex, and the material cost is high.

[0048] With the increasing demand for data read / write speed and data reliability of servers, RAID controllers have emerged, and some servers have begun to support RAID (Redundant Array of Independent Disks) management. Under this management, the RAID controller uplink interacts with the CPU through the PCIE protocol, and the downlink is electrically connected to the hard drive backplane to achieve interaction with the hard drive backplane.

[0049] Because the RAID controller can improve the data reliability, performance and scalability of the system, and simplify the management and maintenance of the storage system, by distributing data and check information among multiple hard drives, even if one hard drive fails, the system can still continue to work and not lose data.

[0050] However, when using a RAID controller to manage different types of hard drives, because the protocols supported by the hard drives are different, the management methods for SAS / SATA hard drives and NVMe hard drives are also different. Different interface types of hard drives require different connectors and controllers, increasing the complexity and cost of system design. The uplink device (such as the RAID controller) needs to support multiple different protocols and command sets, increasing the difficulty of software development and maintenance. Therefore, in order to solve the complexity of managing and monitoring different interface types of hard drives in the same system, the UBM protocol is introduced, which provides a standardized management framework to manage and monitor multiple different interface types of hardware devices on the backplane.

[0051] Figure 1 is a system architecture diagram of a computing device 200 provided by an embodiment of the present application. As shown in Figure 1, the computing device 200 includes a motherboard 10, a hard drive backplane 20, and a storage device 30. The motherboard 10 includes a processor 11 and a RAID controller 12. The hard drive backplane 20 includes a host-facing connector (Host Facing Connector, abbreviated as HFC) 21, a drive-facing connector (Drive Facing Connector, abbreviated as DFC) 22, a CPLD 23, and a protocol processing module 27 in the CPLD 23.

[0052] The processor 11 and the RAID controller 12 can be connected in communication through a Peripheral Component Interconnect Express (PCIE) interface, and can also be connected in communication through other interfaces, which are not limited in the embodiments of the present application. For example, the processor 11 provides high-speed PCIE signals for the RAID controller 12. The processor 11 can be a central processing unit (CPU), or can be other devices with processing capability. The processor 11 can send read-write commands and management configuration commands to the RAID controller 12 to realize data reading and writing and RAID group management.

[0053] The RAID controller 12 manages the storage device 30 through the CPLD 23. The CPLD 23 includes a protocol processing module 27, which analyzes the instructions sent by the RAID controller 12 and then sends them to the storage device 30. The protocol processing module 27 also sends the monitored state information of the storage device 30 to the RAID controller 12, and the RAID controller 12 can send corresponding instructions according to the latest state of the storage device 30 to manage the storage device 30.

[0054] The RAID controller 12 can be connected through a high-speed signal line, a sideband signal line and an HFC connector 21. The high-speed signal line is used for transmission of high-speed data between the RAID controller 12 and the HFC connector 21, such as transmission of high-speed data through a PCIE bus and SAS / SATA / NVME interface. The sideband signal line is used for transmission of control and management signals between the HFC connector 21 and the protocol processing module 27. The RAID controller 12 transmits data to the HFC connector 21 through the high-speed signal line, the HFC connector 21 transmits the high-speed signal to the DFC connector 22, and the DFC connector 22 finally transmits the high-speed signal to the interface of the corresponding storage device 30 to realize high-speed data reading and writing operation of the storage device 30. The HFC connector 21 is a connector connected to the mainboard, indicating a connector component connected to the backboard of the host, which is referred to as the HFC connector 21 connected to the RAID controller in the embodiments of the present application.

[0055] The HFC connector 21 is connected with the protocol processing module 27 through a sideband signal line. The sideband signal line can transmit, for example, a 2-wire signal and other types of control and management signals, which are low-speed control and management signals, such as an Inter-Integrated Circuit (I2C) signal, between the HFC connector 21 and the protocol processing module 27 on the hard disk backplane 20.

[0056] The RAID controller 12 sends read / write instructions to the protocol processing module 27 through the HFC connector 21.

[0057] The protocol processing module 27 is connected with the DFC connector 22, and the instructions are sent to the DFC connector 22 after being processed by the protocol processing module 27. The protocol processing module 27 simulates the function of the UBM protocol through a CPLD, and specifically, the protocol processing module 27 is responsible for parsing and processing the transmitted sideband signal, and managing and monitoring the state and operation of the hard disk. The DFC connector 22 is a connector connected to the hard disk drive, and indicates a connector assembly connected to the hard disk drive of the hard disk backplane. In the embodiment of the application, it refers to a connector connected to the hard disk.

[0058] The DFC connector 22 is connected with the storage device 30, and the DFC connector 22 sends the instructions parsed by the protocol processing module 27 to the storage device 30. The state control of the storage device 30 is completed.

[0059] Similarly, the storage device 30 sends signals including the type, state and in-place information of the storage device 30 to the protocol processing module 27 through the DFC connector 22, and the RAID controller 12 obtains the latest signals including the type, state and in-place information of the storage device 30 through the HFC connector 21, and issues corresponding operation instructions.

[0060] It should be understood that a plurality of HFC connectors 21 can be configured on the hard disk backplane 20, and each HFC connector 21 can be connected with a plurality of DFC connectors 22.

[0061] The DFC connector 22 has a standard interface and can support connection of at least one of a PCIE hard disk, a SATA hard disk and a SAS hard disk at the same time. At least one HFC connector 21 supports a serial bus connection. The serial bus can include, but is not limited to, a serial bus such as an Inter-Integrated Circuit (IIC or I2C) bus, an Improved Inter Integrated Circuit (I3C) bus and a Serial Peripheral Interface (SPI) bus.

[0062] The storage device 30 includes, but is not limited to, a hard disk such as an NVMe hard disk, a solid state hard disk, a mechanical hard disk, or a hybrid hard disk, etc. The hard disk slot in the hard disk backboard 20 can support at least one of the three types of interface modes of SATA / SAS / NVME.

[0063] The hard disk backboard 20 is a Tri-mode backboard supporting the three types of interface modes of SATA / SAS / NVME.

[0064] In one possible implementation, in one computing device 200, the number of mainboards can be one or more, and the number of RAID controllers 12 corresponding thereto is also one or more. For example, in one computing device 200, two mainboards 10 can be included, and each mainboard 10 can include two RAID controllers.

[0065] The hard disk backboard 20 can also include a hard disk indicator light 40, and the protocol processing module 27 is connected to the hard disk indicator light 40.

[0066] The RAID controller 12 also performs high-speed read / write operations on the storage device 30 through the high-speed signal transmission channel between the HFC connector 21 and the DFC connector 22.

[0067] The embodiment of the present application uses the CPLD commonly provided in the hard disk backboard in the server, sets a protocol processing module in the CPLD, to realize management of the SAS / SATA / NVME hard disk based on the RAID controller under the backboard management framework provided by the UBM specification. The dependence on the special FPGA chip and the like in the market is reduced, and the size of the CPLD does not need to be increased, so that the compact design of the hard disk backboard is maintained. The hard disk backboard can be more flexibly adapted to hard disks of different interface types, and the integration of the system is improved. In addition, the function of the UBM protocol is simulated by using the CPLD, which avoids additional procurement and the cost of integrating the special FPGA chip and the like, reduces the hardware cost, and enhances the universality and expandability of the hard disk backboard. The programmable feature of the CPLD enables the hard disk backboard to flexibly adapt to different types of hard disks, and the support for new hard disk interface protocols can be realized without replacing the hardware. The support for the protocol after the upgrade can be realized by software updating of the CPLD, for example, when a new hard disk interface protocol appears, the new protocol can be supported by upgrading the logic code in the CPLD.

[0068] In one possible implementation, the protocol processing module 27 is implemented by a CPLD, a field programmable gate array FPGA, or the like.

[0069] It should be understood that the number of RAID controllers 12, storage devices 30, hard disk backplanes 20, DFC connectors 22, HFC connectors 21 and hard disk indicator lights 40 in the system architecture diagram shown in FIG. 1 is merely exemplary, and more or less numbers are within the protection scope of the present application.

[0070] In one possible implementation, the HFC connector 21 is a connector meeting the SFF-8643 specification, which is commonly used to connect between the RAID controller and the hard disk backplane to achieve high-speed data transmission and management functions. For example, the connector can support PCIE X16 channels.

[0071] In one possible implementation, the DFC connector 22 can be a connector meeting the SFF-8639 specification, which is a connector standard defined by the SFF (Small Form Factor) Committee for connecting solid state drives and other storage devices. It is also known as a U.2 connector. U.2 supports the NVMe protocol, while being compatible with SAS, SATA protocol specifications, and can connect different types of SAS, SATA and NVME hard drives.

[0072] For example, the RAID controller 12 has X16 channels, and the HFC connector 21 connected to the RAID controller 12 has two, each HFC connector 21 has X8 channels, and each HFC connector 21 connects four DFC connectors, and each DFC 22 has X2 channels for connection to the hard disk backplane, receiving data transmitted from the RAID controller 12 and transmitting data to the connected hard disk. Each DFC connector 22 can connect one hard disk. Then each hard disk has X2 channels for receiving data transmitted from the DFC connector 22 and performing read / write operations on the hard disk data.

[0073] The number of channels provided by the HFC connector 21 will be affected by the type and number of hard drives connected. For example, the HFC connector 21 is an SFF-8639 connector. The connector includes six channels, four of which are PCIE channels supporting connection to NVME hard drives, and the other two channels can connect SAS / SATA hard drives. Its maximum support bandwidth is PCIE X4 (Lane0 / 1 / 2 / 3), if the inserted hard drive is PCIE X1, use Lane0 on the SFF-8639 interface; if the inserted hard drive is PCIE X2, use Lane0 / 1 on the SFF-8639 interface; if the inserted hard drive is PCIE X4, use Lane0 / 1 / 2 / 3 / 4 on the SFF-8639 interface. Therefore, when designing, the number of channels required by the HFC connector 21 should be determined according to the type and number of hard drives required by the backplane.

[0074] In the embodiments of the present application, the computing device 200 can be, but is not limited to, the following devices: servers, tablets, laptops, desktop computers, and laptop computers, etc. The server can be, but is not limited to, the following devices: high-density servers, rack servers, GPU servers, tower servers, blade servers, and whole-cabinet servers. The RAID controller 12 can be any controller that can be used to manage hard disks in the related art.

[0075] Figure 2 is a schematic diagram of the system architecture of another computing device 200 provided by the embodiments of the present application. The difference between Figure 2 and Figure 1 is that the protocol processing module 27 in the CPLD controller 23 in Figure 2 includes a SAS / SATA protocol processing module 25 and a UBM protocol processing module 26, and different types of storage devices are processed through different channels according to the type of the storage device 30. The embodiments of the present application use the CPLD on the hard disk backplane to implement the function of the UBM protocol, and use the UBM protocol to parse the data transmitted between the CPLD and the NVME hard disk through the UBM protocol parsing module 26, to implement the management of the NVME hard disk by the RAID controller. At the same time, the SAS / SATA protocol processing module 25 uses, for example, the SAS / SATA protocol to parse the data transmitted between the CPLD and the SAS / SATA hard disk, to implement the management of the SAS / SATA hard disk by the RAID controller. Thus, the links for processing the SAS / SATA hard disk and the NVME hard disk by the RAID controller 12 are unified in the CPLD, which simplifies the processing logic and reduces the space occupied by the hard disk backplane.

[0076] As shown in Figure 2, the RAID controller 12 determines the interface type of the hard disk connected to the hard disk backplane 20 by sampling the DFC_IFDET signal, and determines the signal type for communicating with the hard disk backplane 20 according to the interface type of the hard disk.

[0077] The RAID controller 12 transmits interaction data to the hard disk backplane 20 via I2C protocol, and the hard disk backplane 20 selects the SAS / SATA protocol processing module or the UBM protocol processing module 26 according to the interface type of the plugged hard disk, and then transmits the data to the hard disk. Referring to FIG. 2, the RAID controller 12 sends high-speed signals to the HFC 21 via a high-speed channel (such as a PCIE channel), the high-speed signals are transmitted to the DFC 22 via the HFC 21, and finally arrive at the storage device 30. The RAID controller 12 sends interaction data to the hard disk backplane 20 via, for example, I2C protocol, the HFC 21 receives the I2C signals from the RAID controller 12 and transmits them to the signal judgment module 28 on the hard disk backplane 20. The signal judgment module 28 receives the IFDET signal, judges the type of the hard disk, and selects the SAS / SATA protocol processing module 25 or the UBM protocol processing module 26 for processing.

[0078] The DFC_IFDET signal is a signal on the hard disk backplane, which is used to indicate the type of the communication interface used by the connected hard disk, and the interface type includes, for example, SGPIO, 2-Wire (I2C) or other types. I2C is a serial bus standard, which is also commonly referred to as 2-Wire bus, and uses two signal lines (serial data line and serial clock line) to transmit data. By detecting the state of the DFC_IFDET signal, the system can determine the type of the communication interface of the hard disk.

[0079] For example, the DFC IFDET signal is low, indicating that the hard disk backplane connects a Serial General Purpose Input / Output (SGPIO) signal, which is a general purpose input / output signal used for SAS / SATA hard disk interface. The RAID controller recognizes that the hard disk backplane communicates through the SGPIO signal, and then the SAS / SATA protocol processing module 25 processes the data transmitted between the RAID controller 12 and the SAS / SATA hard disk according to the SAS / SATA protocol. Specifically, the RAID controller 12 sends a sideband signal to the SAS / SATA protocol processing module 25 through the HFC 21, and the sideband signal is packaged into a format that can be recognized by the SAS / SATA protocol, including commands and necessary control data. The SAS / SATA protocol processing module 25 parses the interaction data according to the SAS / SAATA protocol specification, and sends the parsed command to the DFC 22. The DFC 22 sends the command to the connected SAS / SATA hard disk (first hard disk) and the hard disk indicator light of the SAS / SATA hard disk, to achieve control of the SAS / SATA hard disk (first hard disk) and the hard disk indicator light of the SAS / SATA hard disk. The SAS / SATA protocol processing module can also send the status information of the SAS / SATA hard disk (first hard disk) to the RAID controller 12 through the SGPIO.

[0080] For example, the DFC IFDET signal is high, indicating that the hard disk backplane uses a 2-Wire protocol for communication, and the RAID controller communicates with the hard disk backplane 20 through the UBM protocol processing module 26. The RAID controller 12 controls and manages the connected NVME hard disk by using signals according to the 2-Wire protocol specification. For example, monitoring the status of the hard disk drive, controlling the status of the hard disk indicator light, and detecting hot plug events, etc. When the RAID controller 12 performs disk array reconstruction, data recovery, reading of the status information of the hard disk backplane, acquisition of the hard disk status, control of power on and off, monitoring of the fault disk, indication of the hard disk status light, clearing of RAID information, RAID reconstruction, etc. or performs fault diagnosis, signals according to the 2-Wire protocol specification are sent to instruct the corresponding hard disk drive to perform read / write operations or display the corresponding status indicator light.

[0081] In other words, the RAID controller 12 determines according to the received hard disk type information, if the storage device is a SAS / SATA hard disk, the RAID controller and the hard disk backplane adopt SGPIO mode communication, the RAID controller sends SGPIO signals, and sends them to the corresponding SAS / SATA protocol processing module 25 for analysis and processing, and outputs the control information and hard disk light signal of the SAS / SATA hard disk after processing.

[0082] If the storage device 30 is an NVME hard disk, the RAID controller 12 and the hard disk backplane 20 adopt 2-Wire mode communication, and the 2-Wire signals are analyzed and processed by the UBM protocol processing module 26. Thus, the state of the NVME hard disk is acquired and the command is issued.

[0083] In a possible implementation, the processing link of different signals can be realized by adding a channel selector. The channel selector can be located in the RAID controller 12 or in the protocol processing module 27 in the hard disk backplane 20. When the RAID controller output signal is SGPIO, the SAS / SATA protocol processing module 25 is switched to for data analysis; when the RAID controller 12 output signal is a 2-Wire signal, the UBM protocol processing module 26 provided in the embodiment is switched to for data analysis.

[0084] The embodiment provided in the application respectively processes the SAS / SATA hard disk and the NVME hard disk through the SAS / SATA protocol processing module and the UBM protocol processing module in the protocol processing module of the CPLD, wherein the UBM protocol processing module is realized by programming, the interaction data between the RAID controller and the NVME hard disk is processed according to the UBM protocol, and the accuracy and consistency of data transmission and state management are ensured.

[0085] FIG. 3 is a system architecture schematic diagram of a UBM protocol processing module provided in the embodiment of the application, as shown in FIG. 3, the technical solution is further explained relative to FIG. 2. In the hard disk backplane 20, the UBM protocol processing module 26 includes a plurality of UBM controllers and UBM FRUs. One UBM controller can correspond to connect one HFC and a plurality of DFCs, and each DFC in the plurality of DFCs is connected to at least one hard disk.

[0086] For example, the RAID controller 12 manages the hard disks through four UBM controllers. The UBM controller provides a 2-Wire slave interface, provides backplane functions, and DFC status and control information. The UBM signal processing module 26 includes UBM controller 1 and UBM FRU 1, UBM controller 2 and UBM FRU 2, UBM controller 3 and UBM FRU 3, and UBM controller 4 and UBM FRU 4. The UBM controller and the UBM FRU can be one-to-one correspondence, for example. The number of UBM controllers and UBM FRUs is determined according to the number of channels provided by the RAID controller, the number of DFCs, the number of HFCs, and the like according to the specific hardware type and requirements. The present embodiment provides a possible implementation. The UBM controller is connected to the HFC and is used to receive the sideband signals sent by the RAID controller 12 through the HFC, such as UBM I2C, 2WIRE_RESET#, CHANGE_ECTECT#, and the like. The HFC 1 is connected to the UBM controller 1 and the UBM FRU 1, and the HFC 1 is also connected to the UBM controller 2 and the UBM FRU 2. The HFC 2 is connected to the UBM controller 3 and the UBM FRU 3, and the HFC 2 is also connected to the UBM controller 4 and the UBM FRU 4. Each group of UBM controller and UBM FRU is connected to the same 2-Wire interface. The UBM controller uses the sideband signals in the standard protocol through the 2-Wire interface.

[0087] For example, the sideband signals are UBM1_I2C_SCL signal, UBM1_I2C_SDA signal, 2WIRE_RESET signal, and CHANGE_DETECT signal.

[0088] The FRU information in the hard disk backplane is usually stored in a memory on the hard disk backplane. The memory can be an electrically erasable programmable read-only memory (EEPROM) or other types of non-volatile memory. The FRU has a standard format for storing device information and status.

[0089] The UBM FRU uses single-byte 2-Wire addressing, specifically, the UBM FRU uses 0xAE for addressing. The UBM FRU records initial configuration information of the hard disk backplane, for example, including the mapping relationship of a plurality of UBM controllers and HFC connectors, DFC connectors, the number of HFCs, ports, channel rates, the number of DFCs, the type and number of connected hard disks, UBM port routing information of the UBM protocol processing module 26, etc. When the system is powered on, the RAID controller 12 reads the information in the UBM FRU to complete the initialization of the RAID controller 12 and the UBM protocol processing module 26.

[0090] In an example, the initial configuration information is written into the FRU, the UBM FRU1 stores the initial configuration information of the UBM controller 1, the UBM FRU2 stores the initial configuration information of the UBM controller 2, the UBM FRU3 stores the initial configuration information of the UBM controller 3, and the UBM FRU4 stores the initial configuration information of the UBM controller 4.

[0091] Embodiments of the present application store initial configuration information in the FRU, so that the system does not need to reconfigure the mapping relationship of each UBM controller and interface when starting, thereby improving the initialization speed of the system and shortening the startup time. The configuration information stored in the FRU ensures that the system can quickly recover to the previous configuration state after restarting or hardware replacement. Moreover, new hard disks and UBM controllers can be easily extended and added.

[0092] In an example, the DFCs include DFC1-DFC8, the UBM controller 1 is connected to the DFC1 and the DFC2, the UBM controller 2 is connected to the DFC3 and the DFC4, the UBM controller 3 is connected to the DFC5 and the DFC6, the UBM controller 4 is connected to the DFC7 and the DFC8, and the DFC1-DFC8 are connected to the NVME hard disks 40-1 to 40-8. Specifically, the DFC1 is connected to the UBM controller 1 through DFC1_PRSNT / DFC1_IFDET / DFC1_PERST, and the DFC2 is connected to the UBM controller 2 through DFC2_PRSNT / DFC2_IFDET / DFC2_PERST. The DFC3, the DFC4, the DFC5, the DFC6, and the DFC8 are connected in the same way.

[0093] In a possible implementation, the HFC1 and the UBM controller 1, the HFC1 and the UBM controller 2, the HFC2 and the UBM controller 3, and the HFC2 and the UBM controller 4 communicate through I2C. I2C is a serial communication protocol that uses two lines (one for data transmission SDA and one for transmitting a clock signal SCL) for communication, so it is also called 2-Wire communication.

[0094] The UBM controller 1 receives the UBM_I2C_SDA signal and the UBM_I2C_SCL signal sent by the RAID controller 12 through the HFC 1, processes the signals, and obtains the control signals of the DFC 1 and the DFC 2 and the control signals of the hard disk indicator lights DFC 1_LED and DFC 2_LED connected to the DFC 1 and the DFC 2. The UBM controller 1 outputs the control signals of the DFC 1 / DFC 2 to the DFC 1 / DFC 2 and the DFC 1_LED / DFC 2_LED.

[0095] The UBM controller 2 receives the UBM_I2C_SDA signal and the UBM_I2C_SCL signal sent by the RAID controller 12 through the HFC 1, processes the signals, and obtains the control signals of the DFC 3 and the DFC 4 and the control signals of the hard disk indicator lights DFC 3_LED and DFC 4_LED connected to the DFC 3 and the DFC 4. The UBM controller 2 outputs the control signals of the DFC 3 / DFC 4 to the DFC 3 / DFC 4 and the DFC 3_LED / DFC 4_LED.

[0096] The UBM controller 3 and the UBM FRU 3, and the UBM controller 4 and the UBM FRU 4 are the same as described above, and thus will not be described again.

[0097] The embodiment of the present application sets multiple UBM controllers in the UBM protocol processing module, connects the RAID controller through the multiple UBM controllers in an upward direction, and connects various types of hard disks in a downward direction. The UBM controller analyzes the interactive data sent by the RAID controller through the HFC connector. By setting multiple UBM controllers, the system can concurrently process the interactive data of multiple hard disks, thereby improving the processing efficiency of the interactive data and the response speed of the system. The interactive data includes multiple fields, making the transmission of commands and data more flexible. According to specific requirements, the command field can be extended or modified, ensuring the accurate issuance and execution of each operation. The interface data is read and analyzed to generate specific operation commands, thereby improving the automation level of the system and reducing manual intervention.

[0098] The RAID controller 12 can determine the backboard function, the state and control information of the DFC connector, and the routing information of the DFC connector to the HFC connector on the backboard 20 through the architecture of the hard disk backboard 20 provided by the embodiment of the present application. The hard disk backboard 20 can connect multiple DFCs through a high-speed signal channel 50 for each HFC, for example, the high-speed signal channel 50 is X1, X2, X4, or other channel bandwidth.

[0099] It can be understood that the structure of the embodiments of the present application does not constitute a specific limitation on the UBM controller in the UBM protocol processing module 26 and the UBM FRU, hard disk and RAID controller. In other embodiments of the present application, the UBM controller in the UBM protocol processing module 26 and the UBM FRU, hard disk and RAID controller can include more or fewer components than the illustration, or combine certain components, or split certain components, or different component arrangement. The illustrated components can be implemented in hardware, software or a combination of software and hardware.

[0100] For example, each hard disk includes three states: an Active state, a Present state, or a Fault state. The running state of the hard disk is indicated by the color of the hard disk indicator light, for example, when the hard disk is normally recognized and participates in data read / write operations, the hard disk indicator light is displayed in green, the hard disk is in a Local state (for example, the hard disk has been detected by the system, but has not yet participated in the activity of the RAID array, the hard disk indicator light is displayed in yellow), or in a Fault state (for example, when the hard disk cannot work normally due to hardware failure, configuration error or data damage, etc., the hard disk indicator light is displayed in red), which can effectively reflect the working state of the hard disk.

[0101] The DFC1_LED can be controlled by the hard disk indicator light signal fault / local / active sent by the UBM controller 1, and the DFC2_LED can be controlled by the hard disk indicator light signal fault / local / active sent by the UBM controller 2. The UBM protocol processing module 26 can indicate the hard disk state information: Active, Local, Fault state. The embodiments of the present application transmit the processed data to the hard disk indicator light corresponding to the hard disk, and the system can display the state of the hard disk (such as normal operation, existence, failure, etc.) in real time.

[0102] In some possible implementations, the hard disk indicator lights of the first hard disk and the second hard disk are connected and controlled by the same group of signal lines.

[0103] The UBM controller needs to be initialized when the system is powered on, and the initialization includes the following steps:

[0104] S100, initializing the sideband signal of the DFC.

[0105] The input / output (I / O) signals of the hard disk connected to the DFC are set, including: providing appropriate power signals to the connected hard disk to start the hard disk. Reset the signal line for communication with the hard disk to a consistent state.

[0106] S110, reset the DFC_PERST signal.

[0107] For example, the DFC_PERST signal is pulled low to ensure that the signals on the various DFC interfaces are in the correct state when the device is powered on or running.

[0108] S120, disable the reference clock.

[0109] To ensure that no unnecessary problems are caused by clock signal interference during initialization.

[0110] S130, enable the power supply (not shown in the figure).

[0111] S140, initialize the sideband signal of the HFC output.

[0112] S150, set the operating state of the UBM controller to initialization.

[0113] S160, enable the 2-Wire slave interface of the UBM controller.

[0114] According to the standard I2C protocol, the I2C control module of the host is usually referred to as the I2C Master module, and the I2C module of the slave is usually referred to as the I2C Slave module. Each I2C device has a unique I2C address for accessing the device. The host identifies other I2C devices through the address. The above-mentioned host refers to the device that initializes the I2C bus, and other I2C devices addressed by the host are referred to as slaves. In the embodiment of the application, the host is the RAID controller 12, and the slave is the UBM controller in the UBM protocol processing module 26.

[0115] The RAID controller 12 is the host, sends commands and requests, and multiple UBM controllers are slaves, respond to the instructions of the host. When the host (RAID controller) sends data, each slave (UBM controller) identifies whether it is the data sent to itself by matching the address.

[0116] S170, set the operating state of the UBM controller to all 2-Wire slave interfaces ready.

[0117] Set the UBM controller operating state of all 2-Wire slave interfaces to READY. The RAID controller starts to monitor the state of the hard disk corresponding to the DFC and the change of the in-place signal through the UBM controller. The initialization of the UBM controller is completed. After the initialization of the UBM controller is completed, the change of the DFC input is started to be monitored. For example, the UBM controller pulls the CHANGE_DETECT signal low.

[0118] The RAID controller 12 attempts to communicate with the UBM controller, and if the UBM controller does not respond, the communication is retried again. If the UBM controller responds READY. The UBM controller pulls up the CHANGE_DETECT signal to high. The RAID controller needs to resolve the routing of at least one DFC through the UBM controller to the corresponding HFC.

[0119] Table 1 shows an example of multiple channels of DFCs to two HFC starting channels. The DFCs, HFCs and hard drives can be represented by their location or number on the backplane for physical address. For example, each DFC, HFC and hard drive can be identified by number 1, 2, 3, 4, etc. The numbers can or can not be consecutive.

[0120] As shown in Table 1, HFC0 has 4 channels, channel identification 0 / 1 / 2 / 3 respectively, channel 0 and channel 1 connect DFC0 with channel identification 0, channel 2 and channel 3 connect DFC1 with channel identification 1. DFC0 has channel 0 and channel 1, which can connect hard drive 0 and hard drive 1 respectively, DFC1 has channel 2 and channel 3, which can connect hard drive 2 and hard drive 3 respectively. If the HFC design supports PCIE interface, then the number of its channels can match the number of PCIE bus channels, and the data transmission bandwidth of each PCIE channel can be X1 / X4 / X8 / X16.

[0121] Table 1 shows an example of multiple channels of DFCs to two HFC starting channels.

[0122] HFC1 with identification 1 has 6 channels, channel identification 0 / 1 / 2 / 3 / 4 / 5 respectively, channel 0, channel 1, channel 2 and channel 3 connect DFC2 with channel identification 2, channel 4 and channel 5 connect DFC3 with channel identification 3, DFC2 has channel 0-channel 3, which can connect hard drive 4-hard drive 7 respectively. DFC3 has channel 4 and channel 5, which can connect hard drive 8 and hard drive 9 respectively.

[0123] Further illustrated with HFC0 having 16 channels, for example, 4 channels of the 16 channels can be allocated to DFC0, and the remaining 12 channels are allocated to DFC1, the 4 channels possessed by DFC0 can be connected to 4 hard drives respectively, and the 12 channels possessed by DFC1 can be connected to 12 hard drives respectively.

[0124] For example, the RAID controller sends a reset command to both hard drives 1 and 3. This reset command needs to carry the UBM port routes for hard drives 1 and 3. According to the information in Table 1, the UBM port route for hard drive 1 is: UBM port route index = 0, HFC identifier = 0, HFC channel = 1, DFC identifier = 0, DFC channel = LANE1. The UBM port route for hard drive 3 is: UBM port route index = 1, HFC identifier = 0, HFC channel = 3, DFC identifier = 1, DFC channel = LANE3. Therefore, the reset of hard drives 1 and 3 can be completed.

[0125] Figure 4 is a schematic diagram of the I2C communication between the UBM controller and UBM FRU of multiple hard disk backplanes provided in this embodiment of the application. As shown in Figure 4, the RAID controller is connected to four hard disk backplanes, hard disk backplane 1 to hard disk backplane 4. Each hard disk backplane is equipped with a UBM protocol processing module, which includes multiple UBM controllers and UBM FRUs. The RAID controller 12 generates address selection line signals and decodes them to select the UBM protocol processing module on a certain hard disk backplane. An address selector is set in the RAID controller. When there are n address selection lines, the n address selection lines can select a maximum of 2. n Each UBM protocol processing module. For example, as shown in Figure 4, when there are two address selection lines, four signals (00 / 01 / 10 / 11) can be output, corresponding to ports 1-4. The address selection logic selects a UBM protocol processing module on the hard drive backplane. Therefore, a maximum of four UBM protocol processing modules can be selected using the two address lines. The logic for decoding the address selection line signals can also be implemented by the hard drive backplane.

[0126] Taking hard drive backplane 3 as an example, the RAID controller, acting as the host, connects HF0, HFC1 to HFCn in hard drive backplane 3. The connection between the RAID controller and HFC1 is explained below: HFC1 connects to UBM controller 1, UBM FRU1, UBM controller 2, UBM FRU2… UBM controller N, UBM FRUN.

[0127] Similarly, each of HFC0-HFCn is connected to at least one UBM controller and one UBM FRU.

[0128] The external interface between the HFC and the UBM controller is an I2C interface. Therefore, the RAID controller can connect to the UBM controller via the I2C bus. Correspondingly, the communication method used by the RAID controller and each UBM controller corresponding to its external interface can be I2C bus communication. On the I2C bus, each slave device (UBM controller) has a unique address for I2C communication; this address is usually called the I2C address.

[0129] The RAID controller 12 sends the I2C address of the UBM controller to be accessed to each UBM controller in the UBM protocol processing module through the HFC. When the UBM controller receives the address matching its own I2C address, it responds to the communication request of the RAID controller. Thus, the RAID controller 12 can access any UBM controller and UBM FRU, so as to obtain the status signal of at least one hard disk managed by the UBM controller and issue a hard disk light signal.

[0130] In one possible implementation, the data sending process of the RAID controller 12 and the data receiving process of the UBM controller are as follows:

[0131] Sending start condition and slave address: The RAID controller first sends a start condition (Start) signal, and then sends a slave address. Each I2C device has a unique 7-bit address, for example, and the UBM controller confirms the address: After receiving the address sent by the RAID controller 12, the target UBM controller confirms whether the address is correct. The UBM controller compares its own address with the value of the address field in the data sent by the RAID controller, and if the addresses match, the target UBM controller will prepare to send or receive data.

[0132] Read / write data bit judgment: After the master device sends the 7-bit address of the slave device, for example, the least significant bit (bit 0) of the address can indicate the direction of data transmission. For example, if this least significant bit is 0, it means that the master device will write data to the slave device (write operation); for example, if this least significant bit is 1, it means that the master device reads data from the slave device (read operation).

[0133] RAID controller receives data: When the least significant bit (direction bit) is 1, the RAID controller 12 reads the data in the target UBM controller. After reading the data, the RAID controller 12 can choose to send an acknowledge signal to request more data, or send a non-acknowledge signal to indicate that all data has been read. If the RAID controller sends a non-acknowledge signal, it usually means that the RAID controller no longer needs more data.

[0134] Stop condition: When the master device completes the data read / write operation on the slave device, it generates a stop condition to notify the slave device that the transmission session is over. The stop condition can be that the master device generates a high-level signal on the SDA (data line), while the SCL (clock line) also generates a high-level signal.

[0135] The embodiment of the application can accurately determine the target UBM controller by setting the address bit of the interaction data of the RAID controller, each UBM controller has a unique address identifier, which can prevent address conflict and data transmission error in the environment of multiple UBM controllers. And the system can extend new UBM controllers without causing address conflict.

[0136] Fig. 5 is a schematic diagram of the internal implementation of the UBM controller, as shown in Fig. 5, the UBM controller includes a data receiving module, a command analysis module, and a command execution module.

[0137] The data receiving module receives the interaction data sent by the RAID controller through the serial data bus, and processes the interaction data to obtain a plurality of interface data. The data receiving module receives a serial bus signal from the RAID controller, and stores the serial bus signal in a register; the serial bus signal indicates a read / write data command for a second hard disk or a second hard disk indicator light, the second hard disk including an NVME interface type hard disk; the serial bus signal includes a plurality of fields, and the plurality of fields include one or more of the following: read / write data enable bit, read / write data address bit, command bit, and data to be written bit; the interaction data is analyzed by using the UBM protocol to obtain a plurality of interface data; the plurality of interface data includes one or more of the following: first interface data indicating read data enable; second interface data indicating read / write data address; third interface data indicating write data enable; fourth interface data indicating operation command; and fifth interface data indicating data to be written.

[0138] The command analysis module is used to obtain and analyze the plurality of interface data to obtain the first command and the second command. The values of at least one of the first interface data to the fifth interface data are read, and the values of at least one of the first interface data to the fifth interface data are analyzed to obtain the first command and the second command.

[0139] The command execution module is used to send the first command to the DFC connector connected to the UBM controller, and send the second command to the hard disk indicator light of the target hard disk connected to the UBM controller.

[0140] The embodiment of the present application provides the process of processing the interaction data into multiple processing stages, completes the closed loop operation of data processing of each stage, that is, the information flow analysis processing in each implementation module is self-closed. The structured processing manner improves the data processing efficiency and reduces the waiting time. The stability and consistency of each stage in the data processing process are ensured. Even if a module fails, other modules can continue to work normally, improving the stability of the system. Each module completes data processing in an independent closed loop, reducing errors and delays caused by data transmission between multiple modules.

[0141] The data receiving module receives the interaction data sent by the RAID controller through the HFC. For example, when it is detected that I2C_SCL on the I2C bus remains high and I2C_SDA changes from high to low, the data receiving module starts to receive data. The data receiving module processes the data to determine whether it is a UBM controller sent to the current address and whether the sent data indicates reading data or writing data. Specifically, the reading data or writing data is determined according to the value of the read / write bit of the sent data, and whether the data is received is determined according to the address bit of the sent data. Each of the at least one UBM controller has a unique address identifier, and the address identifier indicated based on the address bit is consistent. It is determined that one of the at least one UBM controller is the target UBM controller.

[0142] The data receiving module reads the data bit on the I2C data line SDA, for example, at the rising edge of the clock signal SCL, and parses it into a valid data byte. According to the I2C protocol, for example, the data is transmitted in the order of LSB-first, that is, the least significant bit (LSB, Least Significant Bit) is transmitted first, then the next low bit, until the most significant bit (MSB, Most Significant Bit) is transmitted. The data receiving module needs to reorder the data bits of each byte to obtain the correct data value. The clock signal I2C_SCL can adopt the system main clock SYS_CLK.

[0143] The smallest unit in the I2C data transmission is a data bit. The data receiving module reads the data bit at the rising edge or the falling edge of SCL. After receiving 8 data bits, that is, a byte, the byte is stored.

[0144] The data receiving module transmits the result of data processing to the command analysis module as interface data through constructing at least one interface. For example, the data receiving module adds a third data interface write_en to indicate that the received data is a write data enable command, and assigns the third data interface write_en as "1" or "0" by reading a specific position of the received data byte, for example, "1" indicates a read command and "0" indicates a write command. A first data interface read_en is added to indicate that the received data is a read data enable, and the read_en is assigned as "1" or "0" by reading a specific position of the received data byte. A fifth data interface write_data is added by the data receiving module to indicate that the received data is a status signal of the target hard disk or a lighting signal of the hard disk indicator.

[0145] The embodiments of the present application further define other interfaces transmitted to the command analysis module, for example, including data interfaces Start_condition, stop_condition, restart_condition, initial_finish, and busy_en.

[0146] In a possible implementation, the command analysis module is configured to acquire data provided by the interface of the data receiving module at a preset time interval, analyze the interface data to obtain a first command and a second command, send a control command to the command execution module, and the command execution module executes the first command to at least one DFC and sends the second command to the hard disk indicator corresponding to the at least one hard disk.

[0147] In a possible implementation, the data receiving module stores the complete byte in a cache area after receiving the complete byte, sets a data receiving completion flag bit or triggers an interrupt event to notify the command analysis module of data reading.

[0148] For example, the command analysis module calls an interface function provided by the data receiving module, accesses the cache area storing the received data, reads the data byte, and performs command analysis.

[0149] In a possible implementation, the command analysis module is further configured to store a status signal of at least one hard disk and a status signal of a hard disk indicator corresponding to the hard disk.

[0150] FIG. 6 is a structural schematic diagram of sub-modules included in each module in the UBM controller in FIG. 5. As shown in FIG. 6:

[0151] The data receiving module includes a data receiving submodule, a first interface submodule, and a first register.

[0152] The command analysis module comprises a command receiving submodule, a second interface submodule, a hard disk state acquisition submodule and a command output submodule.

[0153] The command execution module comprises a first command execution submodule and a second command execution submodule.

[0154] The data receiving submodule listens to the data transmission on the I2C bus, receives the data sent by the RAID controller through the HFC, combines the data into bytes and stores the bytes in the first register (the buffer area mentioned in FIG. 6).

[0155] For example, the first interface submodule provides the byte data in the first register to the command analysis module.

[0156] The data receiving submodule ensures that the received data is stored in the correct order. After the data is stored, a corresponding interrupt signal can be triggered to the first interface submodule to process the received raw data. The processed data is transmitted to the command analysis submodule.

[0157] The command analysis submodule calls the interface data of the first interface submodule to analyze the data.

[0158] It should be noted that the analysis of the data by the command analysis submodule is the interpretation and analysis of the interface data to determine the meaning of the command and the operation to be performed.

[0159] The command analysis submodule is also used to store the result of the execution of the interface data in the second interface submodule. The RAID controller can periodically query the second interface submodule to obtain the result of the command execution. The command execution result is returned to the RAID controller through the I2C bus. For example, the second interface submodule comprises a plurality of data interfaces: rdchecksum_valid, readdata_valid and read_data. The target UBM controller returns the execution result status to the RAID controller. The execution result status indicates that the execution result of the serial bus signal is successful or failed. Based on the successful execution result, the RAID controller sends the next serial bus signal. Based on the failed execution result, the RAID controller records a log or performs an error processing procedure to inform the RAID controller to process the error.

[0160] Through the indication of the successful and failed execution, the system can detect and handle the abnormal situation in time, thereby enhancing the stability and maintainability of the system.

[0161] The hard disk state acquisition submodule acquires state information of the hard disk connected to the DFC through the DFC. The hard disk state information includes but is not limited to: hard disk in-place information DFC_PRSNT, hard disk type information DFC_IFDET, and hard disk set information DFC_PERST. And the hard disk state information is stored in the second register.

[0162] The command output submodule is configured to send the parsed command to the command execution submodule.

[0163] The first command execution submodule is configured to receive a control command for the DFC. For example, the first command execution submodule sends the DFC_PERST signal to the DFC. According to the state of the DFC_PERST, it is determined whether to reset the hard disk connected to the DFC.

[0164] The second command execution submodule is configured to send a command for controlling the hard disk indicator light to the hard disk indicator light of the corresponding hard disk. For example, the second command execution submodule controls the brightness and flashing frequency of the hard disk indicator light through corresponding voltage or current information. Specifically, the second command execution submodule receives the command output by the command output submodule, determines the hard disk indicator light to be lit, and the state of the indicator light.

[0165] The hard disk hot plug process is described below. The hard disk state acquisition submodule detects the state signal of the hard disk, and when the hard disk state signal changes, the new hard disk state signal is stored in the second register as the current hard disk state signal. The command parsing submodule notifies the RAID controller of the change of the hard disk state signal. The RAID controller receives the hard disk state change signal through the I2C data channel, thereby managing the hard disk with state change.

[0166] Fig. 7 is a structural diagram of the first register in the receiving module. As shown in Fig. 7, the first register stores the I2C data received by the data receiving module. The I2C data includes a plurality of fields, including read / write data enable bit, read / write data address bit, command bit, and data to be written bit. In addition, it also includes start bit, UBM controller address bit, check bit and stop bit.

[0167] The first register includes a plurality of storage units, and the plurality of storage units form a data block for storing a complete command. The number of storage units is the same as the number of commands in the UBM command set defined in the UBM specification.

[0168] For example, one storage unit of the first register is 1 bit (bit) value, one storage unit stores one bit of data, and a plurality of storage units store a command. A command is determined by the start bit and the end bit of the received data, and at least includes read / write data enable bit, read / write data address bit, command bit, and data to be written bit between the start bit and the end bit.

[0169] It should be noted that the embodiments of the present application are described in a data transmission format, the number and meaning of the field bits included in the data transmission format are only illustrative and should not be regarded as a limitation on the scope of protection of the embodiments of the present application.

[0170] The data receiving module stores the received data in a target storage unit in the first register according to a command bit of the received data.

[0171] The definitions of the first to fifth interface data in the first interface submodule are as follows: the first interface data indicates read data enable; the second interface data indicates read / write data address; the third interface data indicates write data enable; the fourth interface data indicates operation command; and the fifth interface data indicates data to be written.

[0172] When data starts to be transmitted, a start bit is sent, and the first interface submodule detects the start bit signal and stores it. After data storage is completed, the first interface submodule sets the start_condition signal to a predetermined valid level, and the change of the level value indicates that the command analysis submodule starts to receive data.

[0173] Then the first interface submodule judges the read data bit / write data enable bit. If it indicates a read operation, the first interface submodule sets the first data interface read_en interface to a predetermined valid level value, indicating that the command analysis submodule starts the read operation. If it indicates a write operation, the first interface submodule sets the third data interface write_en interface data to a predetermined valid level value, indicating that the command analysis submodule starts the write operation. The state machine in the command analysis submodule automatically jumps to the corresponding read or write operation state according to the read_en or write_en signal. The write operation data is provided from the fifth data interface. The command analysis submodule analyzes the data according to the UBM specification and outputs a control signal to the command output submodule to complete the corresponding operation.

[0174] Some commands need to perform continuous write operations, for example, command i has command j embedded therein, and there is an association relationship between command i and command j, and the start bit of command j is indicated by the data interface restart_condition of the first interface submodule.

[0175] After data reception is completed, the first interface submodule sets the data interface stop_condition interface to a predetermined valid level value, indicating that the command analysis submodule ends this command and prepares to process the next command.

[0176] The data receiving sub-module checks whether the command is received completely. For example, the command i is defined with 12-bit data. If the data receiving sub-module only receives 10-bit data, when storing the fields of the received command i into the first register, the 12-bit register unit allocated to the command i cannot be filled up, and the remaining 2-bit storage unit is not refreshed with the data of the previous command i. Then the data receiving sub-module considers that the fields of the received command i are invalid. The RAID controller needs to retransmit the command i.

[0177] The correctness of the data receiving is checked by the command i checksum field and the command analysis sub-module.

[0178] In summary, the data interface in the first interface sub-module is operated on the hard disk or the hard disk indicator light after being analyzed by the command analysis module. The interface data in the second interface sub-module is fed back to the RAID controller, indicating that the command is not received successfully, and the RAID controller is instructed to resend; or the command has been processed, and the next command can be sent.

[0179] For example, the RAID controller sends a command to execute power-off on a certain hard disk. After the command analysis sub-module completes the command, the command execution result is fed back to the RAID controller. If the command is successfully executed, the RAID controller sends the next command to indicate power-on or setting of the hard disk.

[0180] In a possible implementation, the DFC connected to the UBM controller detects that a hard disk slot is not inserted with a hard disk. Then the system releases the storage space occupied by the second register for use by other UBM controllers. In this way, the use of the storage space can be optimized.

[0181] It should be noted that the interface structure and data format of the data receiving sub-module are agreed by the command analysis sub-module, and the data exchange mode between the command analysis sub-module and the data receiving sub-module is specified. These rules include the type, position, format of the data, and the timing of reading and writing, and the like. Therefore, the command analysis sub-module analyzes the data of the interface of the data receiving sub-module according to these rules, and performs corresponding operations.

[0182] The command analysis sub-module calls the data of the first interface sub-module, and analyzes the interface data after obtaining the interface data.

[0183] In an example, the command parsing sub-module creates multiple processes to obtain the data provided by the first interface sub-module according to preset rules. The preset rules can be to query the first interface sub-module every other time period.

[0184] In a possible implementation, the hard disk state obtaining sub-module includes an interface circuit, and multiple pins in the interface circuit receive DFC_PERST, DFC_IFDET, and DFC_PRSNT signals from the DFC. The pins are configured as input ports of the hard disk state obtaining sub-module by programming to receive the hard disk state signals obtained from the DFC. When the signals including DFC_PERST, DFC_IFDET, and DFC_PRSNT are received by the interface circuit, the hard disk state obtaining sub-module stores the current hard disk state in the second register, and the RAID controller can determine the state information of the hard disk according to the level (high level or low level) of the signals.

[0185] In the UBM protocol specification, a number of bit positions in the DFC state and control information indicate the type of the hard disk in the DFC.

[0186] The signal of the first pin of the slot can be detected to determine whether the hard disk is inserted into the slot.

[0187] In a possible implementation, the signal of the first pin is the DFC_PRSNT signal for determining whether the hard disk is inserted into the slot. When the signal of the first pin is at a high level, it indicates that the hard disk is pulled out. When the signal of the first pin is at a low level, it indicates that the hard disk is inserted into the slot.

[0188] In a possible implementation, the signal of the second pin is the DFC_IFDET signal. The type of the hard disk can be determined by detecting the signal of the second pin. If the signal of the second pin is at a low level, it is determined that the type of the inserted hard disk is SAS or SATA. If the signal of the second pin is at a high level, it is determined that the type of the hard disk is NVME.

[0189] The signals of the first pin and the second pin are received by the interface circuit in the hard disk state obtaining sub-module, and the signals of the first pin and the second pin are stored in the second register.

[0190] In a possible implementation, the signal of the third pin is the DFC_PERST signal for determining the setting state of the hard disk, and the signal of the third pin can also be stored in the second register.

[0191] Specifically, the hard disk state obtaining sub-module stores the level of the signal sent by the interface circuit in the second register, which can be implemented by writing logic code. This will be described in detail later.

[0192] If the hard disk information has been put into the second register, and the host needs to read the information, the second register address can be agreed in the I2C communication protocol, such as the second register address is 0x1000.

[0193] The command execution submodule receives the parsed data sent by the command parsing submodule, the first command execution submodule is used for controlling the state signals of the hard disk, including DFC_VALID and DFC_DATA, and the second command execution submodule is used for controlling the signals of the hard disk indicator light, including LED_DATA, LED_EN and LED_STATUS.

[0194] For example, the first command execution submodule selects whether to enable the DFC_DATA signal according to the state of the DFC_VALID signal through a multiplexer, and the output of the command execution submodule is connected with the DFC to provide the set signal DFC_PERST of the hard disk, so as to output the valid or invalid hard disk set signal DFC_PERST.

[0195] The embodiment of the application allows the reset signal of the hard disk to be transmitted through the DFC, so that the UBM controller can centrally manage the reset operation of the hard disk, the reset of the hard disk can be dynamically controlled by the RAID controller, the hard disk in a specified slot connected with the DFC can be selected to reset, and more precise control can be achieved.

[0196] For example, the second command execution submodule maps the signal LED_STATUS reflecting the LED state to the specific state of the hard disk indicator light, such as fault, activity, and local. The command execution submodule controls the LED circuit according to the specific state of the indicator light, so that the hard disk indicator light displays according to the state indicated by the control signal.

[0197] The LED_EN signal is used to enable or disable the hard disk indicator light, when the LED_EN signal is in the enabled state, the command execution module adjusts the on or off and state of the indicator light according to the LED_DATA and LED_STATUS signals, such as brightness level, color, and flashing frequency.

[0198] For example, when the LED_STATUS indicates that the hard disk has a fault, the second command execution submodule generates a FAULT control signal to the fault indicator light. When the LED_STATUS signal indicates that the hard disk is in an active state, a control signal ACTIVE is generated to light up the active indicator light. When the LED_STATUS signal indicates that the hard disk is in a local state, a control signal LOCAL is generated to light up the local indicator light. The LED_DATA signal is used to transmit control information such as brightness or color of the LED light.

[0199] Figure 8 is a schematic diagram of the second register in the command parsing module. As shown in Figure 8, the DFC_PERST, DFC_IFDET, and DFC_PRSNT signals of each of the hard drives 0 to N are stored in the second register. The second register stores the first pin signal, the second pin signal, and the third pin signal of at least one hard drive connected to at least one DFC connected to the first command parsing sub-module.

[0200] The second register includes a plurality of storage units. For example, the base address of the second register is set to 0x1000, and the offset of each storage unit relative to the base address is set to determine the location of each storage unit in the register space.

[0201] The register offset refers to the offset of each storage unit relative to the base address in the register mapping of the device. The base address is the starting address of the register space of the device, and the offset is the offset value relative to the starting address, which is used to determine the location of each storage unit in the register space.

[0202] By detecting the hard drive status signals in the second register corresponding to the hard drive, and when the hard drive status signals change, the latest status of the hard drive is obtained through the interface circuit and saved in the corresponding address offset storage space in the second register.

[0203] For example, in the UBM controller 1, the hard drive status acquisition sub-module can acquire the _DFC1_PERST signal of hard drive 1 connected to DFC1, the _DFC2_PERST signal of hard drive 2 connected to DFC2, the _DFC1_PESNT signal of hard drive 1 connected to DFC1, the _DFC2_PESNT signal of hard drive 2 connected to DFC2, the _DFC1_IFDET signal of hard drive 1 connected to DFC1, and the _DFC2_IFDET signal of hard drive 2 connected to DFC2. In the second register, the status of each hard drive is stored in a storage unit.

[0204] The third pin signal DFC_PERST signal will be described below. The first pin signal DFC_PERST signal can be updated by the DFC after the hard drive is inserted into the slot, and the DEF_PERST signal of the hard drive in the second register can also be updated by sending a reset command through the RAID controller.

[0205] For example, the RAID controller needs to reset the hard disk 1, and the RAID controller sends a reset command to the UBM controller address connected to the hard disk 1 through the I2C signal channel. The data receiving module in the UBM controller receives the command, judges the start bit, the read / write bit, the command bit, the data bit, the checksum bit and the end bit, stores the command in the corresponding storage unit in the first register, and sends the processed data to the corresponding data interface. The command analysis module queries the interface provided by the data receiving module, executes the data provided by the interface, and returns the execution result to the RAID controller. For example, the command analysis module queries the interface data provided by the data receiving module in a periodic polling manner. The embodiment of the present application does not limit the way in which the command analysis module obtains the interface data.

[0206] The process of receiving and analyzing data by the UBM controller is described by taking the RAID controller reading the hard disk state as an example. The RAID controller sends a command to read the hard disk state to the data receiving module in the target UBM controller through the I2C bus. It should be noted that the data sent by the RAID controller in the embodiment of the present application is a specific byte sequence, which is encoded according to the UBM protocol. The data receiving module receives the command sent by the RAID controller from the I2C bus, extracts the value of the first data signal in the received data, and sets the value of the interface write_en to “1” if it indicates a read command. The value of the second data signal in the received data is extracted to obtain the hexadecimal value of the corresponding command. The value of the second data signal indicates the command to be executed. According to the preset command mapping relationship, for example, the command field 07h is mapped to 01. The command field with the identifier 01 is found in the plurality of storage units in the first register, and if the matching is successful, the received data is stored in the storage unit and the command stored in the unit before is overwritten. The command indicates to read the hard disk state, and the data field contains the read UBM port routing information, which indicates the specific path from the HFC to the DFC of the hard disk to be read (as shown in Table 1). After the command analysis module obtains the data of the read_en interface provided by the data receiving module, the command and the data field of the command are read from the first register, the command indicated by the command field and the command data indicated by the data field are obtained, and the hard disk state is obtained from the second register according to the port routing information.

[0207] One or more hard disk backplanes can be provided on the computing device, and the one or more hard disk backplanes are connected with the RAID controller. In order to configure the one or more hard disk backplanes, after the computing device is powered on, the RAID controller can read information of the one or more hard disk backplanes through a UBM controller in the one or more hard disk backplanes, and the information of the one or more hard disk backplanes can include an identifier of the one or more hard disk backplanes, which respectively indicates hardware resources of the one or more hard disk backplanes. The hardware resources of the hard disk backplane can include the number of interfaces of the hard disk backplane, the maximum number of supported hard disks, the type of supported hard disks, and the like, and the hardware resources of different types of hard disk backplanes are different. The identifier of a hard disk backplane can be a backplane ID of the hard disk backplane, or other information (such as the name of the hard disk backplane) that can identify the type or hardware resources of the hard disk backplane, and the embodiments of the present application are not limited herein.

[0208] The embodiments of the present application provide a data processing method based on a complex programmable logic device (CPLD). The CPLD is arranged on a hard disk backplane of a server, and the hard disk backplane supports a universal backplane management (UBM) protocol. The hard disk backplane includes an HFC connector for connecting a RAID controller and a DFC connector for connecting a hard disk slot. The CPLD is connected with the HFC connector and the DFC connector respectively. The method includes the following steps.

[0209] In step S310, when a hard disk is inserted into the hard disk slot, the interface type of the hard disk is determined according to a signal level transmitted by the DFC.

[0210] In step S320, the interactive data between the RAID controller and the hard disk is processed according to the interface type of the hard disk. The interactive data includes data indicating the interface type of the hard disk, data indicating the state of the hard disk, and read / write operation command data.

[0211] In step S330, the processed data is transmitted to the RAID controller or the hard disk, so as to realize the management of the hard disk. The hard disk includes a SAS / SATA / NVME interface type hard disk.

[0212] The embodiments of the present application provide another data processing method based on a complex programmable logic device (CPLD). The method is applied to a hard disk backplane. The hard disk backplane includes an HFC connector for connecting a RAID controller and a DFC connector for connecting a hard disk slot. The HFC and the DFC are connectors satisfying a universal hard disk backplane management (UBM) specification. The HFC is connected with the RAID controller, and the HFC is connected with at least one DFC through a CPLD. The DFC is connected with at least one hard disk. The hard disk backplane includes a plurality of UBM controllers. The UBM controllers are connected with the RAID controller through the HFC. The UBM controllers are connected with the hard disk through the DFC. The method includes the following steps.

[0213] In response to the RAID controller sending the serial bus signal, the target UBM controller receives the serial bus signal; the target UBM controller is one of the plurality of UBM controllers; the serial bus signal includes a plurality of fields, the plurality of fields including at least a read / write data enable bit, a read / write data address bit, a command bit, a data to be written bit;

[0214] The serial bus signal is parsed to obtain a plurality of interface data; the plurality of interface data includes at least a first data interface indicating read data enable, a second data interface indicating read / write data address, a third data interface indicating write data enable, a fourth data interface indicating operation command, and a fifth data interface indicating data to be written; the target hard disk is at least one of the plurality of hard disks;

[0215] The value of at least one of the first interface data to the fifth interface data is read, and the value of at least one of the first interface data to the fifth interface data is parsed, and a read / write command is sent to the DFC connected to the target hard disk or the target hard disk indicator light.

[0216] The serial bus signal includes at least a first serial bus signal, a second serial bus signal, a third serial bus signal, and a fourth serial bus signal. The first serial bus signal indicates a read data command for the target hard disk, the second serial bus signal indicates a write data command for the target hard disk, the third serial bus signal indicates a write data command for the target hard disk indicator light, and the fourth serial bus signal indicates a read data command for the target hard disk indicator light.

[0217] In response to the RAID controller sending the first serial bus signal, the target UBM controller receives the first serial bus signal, the first serial bus signal including a plurality of fields, the plurality of fields including at least a read data bit and a target hard disk address identification bit; the first serial bus signal is parsed to obtain a plurality of interface data; at least a first data interface data in the plurality of interface data indicates read data enable, and a second interface data indicates UBM port routing of the target hard disk; the value of at least the first interface data and the second interface data is read, and the value of the first interface data and the second interface data is parsed, and based on the UBM port routing, the address of the register unit of the state data of the target hard disk is determined; the state data of the target hard disk stored in the register unit address is read, and the state data is sent to the RAID controller through the serial bus.

[0218] In response to the RAID controller sending a second serial bus signal, the target UBM controller receives the second serial bus signal; the second serial bus signal indicates a reset command for the target hard disk; the second serial bus signal includes a plurality of fields, the plurality of fields at least including a write data enable bit, a write data address bit and a command bit; the second serial bus signal is parsed to obtain a plurality of interface data; at least a third interface data in the plurality of interface data indicates write data enable, a second interface data indicates that a write data address is routed to a UBM port of the target hard disk, and a fourth interface data indicates an operation command for the target hard disk; the operation command indicates that a reset signal of the target hard disk is set to a valid value; values of at least the second interface, the third interface and the fourth interface are read, and the values of the second interface, the third interface and the fourth interface are parsed to obtain the operation command for the target hard disk; and the operation command is sent to a DFC connected to the target hard disk, and the target hard disk is reset by the DFC.

[0219] In response to the RAID controller sending a third serial bus signal, the target UBM controller receives the third serial bus signal; the third serial bus signal indicates a lighting command for a target hard disk indicator light; the third serial bus signal includes a plurality of fields, the plurality of fields at least including a write data enable bit, a write data address bit and a to-be-written data bit, and the target hard disk indicator light and the target hard disk are in one-to-one correspondence; the third serial bus signal is parsed to obtain a plurality of interface data; at least a third interface data in the plurality of interface data indicates write data enable, a second interface data includes port routing information, a control register address of the target hard disk indicator light is determined according to the port routing information, a fourth data interface indicates that the operation command is the lighting command for the target hard disk indicator light, and a fifth data interface indicates that the to-be-written data is a lighting signal for the target hard disk indicator light; values of at least the second interface, the third interface, the fourth interface and the fifth interface are read, and the values of the second interface, the third interface, the fourth interface and the fifth interface are parsed to obtain the lighting command for the target hard disk indicator light; and the lighting command is sent to the target hard disk indicator light.

[0220] In response to the RAID controller sending a fourth serial bus signal, the target UBM controller receives the fourth serial bus signal; the fourth serial bus signal indicates a read data command for the target hard disk indicator light; the fourth serial bus signal includes a plurality of fields, the plurality of fields at least including a read data enable bit and a read data address bit; the fourth serial bus signal is parsed to obtain a plurality of interface data; at least a first interface data in the plurality of interface data indicates read data enable, a second interface data includes a read data address, and a register unit address of a state of the target hard disk indicator light is determined; values of at least the first interface and the second interface are read, and the values of the first interface and the second interface are parsed to obtain the register unit address of the state of the target hard disk indicator light based on a UBM port routing; and state data of the target hard disk indicator light stored in the register unit address is read, and the state data is sent to the RAID controller through the serial bus.

[0221] It should be noted that the embodiments of the present application only exemplarily describe the first to fourth serial bus signals, and the RAID controller can also send serial bus signals representing other commands, which are not described herein.

[0222] FIG. 9 is a UBM structure diagram of a multi-RAID controller and a multi-hard disk backboard provided by the embodiments of the present application. As shown in FIG. 9, there are more than one backboard in the chassis of the computing device, which are hard disk backboard 0 and hard disk backboard 1. The RAID controller can also be multiple, for example, RAID controller 0 and RAID controller 1. The RAID controller 0 is connected with the hard disk backboard 0. The hard disk backboard 0 includes multiple UBM controllers and UBM FRUs, and the hard disk backboard 1 includes multiple UBM controllers and UBM FRUs.

[0223] The RAID controller 0 is connected with the hard disk backboard 0, and the RAID controller 1 is connected with the hard disk backboard 1. The HFC0 and HFC1 in the RAID controller 0 and the hard disk backboard 0 are connected, and the HFC0 and HFC1 in the RAID controller 1 and the hard disk backboard 1 are connected. The RAID controller 0 / 1 can send the sideband signal through the HFC0 and HFC1 in the hard disk backboard 0 / 1, obtain the state information and in-place information of at least one hard disk connected with the HFC0 and HFC1 in the hard disk backboard 0 / 1, and send the control command to the at least one hard disk.

[0224] The embodiments of the present application also provide a computing device 1000, as shown in FIG. 10, which includes a hard disk backboard, the hard disk backboard includes a CPLD, the CPLD is used to simulate a UBM controller, and multiple UBM controllers perform the data processing method as described in any one of FIGS. 2-9.

[0225] The RAID controller is connected with the UBM controller of the computing device 1000, and the RAID controller is used to generate the control information of the hard disk and the control information of the hard disk indicator light, and send to the target UBM controller. The target UBM controller is used to parse the control information of the hard disk and the control information of the hard disk indicator light, and obtain the control command to send to the DFC connector connected with the target hard disk and the target hard disk indicator light.

[0226] It can be appreciated that the processor in the embodiments of the present application can be a central processing unit (CPU), and can also be other general-purpose processors, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The general-purpose processor can be a microprocessor, or any conventional processor.

[0227] The method steps in the embodiments of the present application can be implemented in the form of hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in a random access memory (RAM), a flash memory, a read-only memory (ROM), a programmable read-only memory (PROM), an erasable PROM (EPROM), an electrically EPROM (EEPROM), a register, a hard disk, a mobile hard disk, a CD-ROM, or any other form of storage medium well known in the art. An exemplary storage medium is coupled to the processor, so that the processor can read information from, and write information to, the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and the storage medium can be located in an ASIC.

[0228] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated. The computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions can be stored in or transmitted by a computer readable storage medium. The computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center through a wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) manner. The computer readable storage medium can be any available medium accessible by a computer or a data storage device such as a server, data center, etc. integrated with one or more available media. The available media can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)) and the like.

[0229] It can be understood that various numerical numbers involved in the embodiments of the present application are only distinguished for convenience of description, and are not used to limit the scope of the embodiments of the present application.

Claims

1. A data processing method based on a complex programmable logic device (CPLD), characterized in that, The CPLD is arranged on a hard disk backboard of a server, the hard disk backboard supports a universal backboard management (UBM) protocol; the hard disk backboard comprises an HFC connector for connecting a RAID controller and a DFC connector for connecting a hard disk slot, and the CPLD is connected with the HFC connector and the DFC connector respectively; the method comprises: In the case that a hard disk is inserted into the hard disk slot, judging an interface type of the hard disk according to a signal level transmitted by the DFC connector; processing interactive data between the RAID controller and the hard disk according to the interface type of the hard disk, the interactive data comprising data indicating the interface type of the hard disk, data indicating a state of the hard disk and read / write operation command data; transmitting the processed data to the RAID controller or the hard disk to realize management of the hard disk, the hard disk comprising a hard disk of SAS / SATA / NVME interface type.

2. The method of claim 1, wherein, The CPLD comprises a SAS / SATA protocol processing module and a UBM protocol processing module; the processing of the interactive data between the RAID controller and the hard disk according to the interface type of the hard disk comprises: when the interface type of the hard disk is SAS / SATA, using the SAS / SATA protocol processing module to process the interactive data from the RAID controller and a first hard disk, the first hard disk comprising a hard disk of SAS / SATA interface type; when the interface type of the hard disk is NVME, using the UBM protocol processing module to process the interactive data from the RAID controller and a second hard disk, the second hard disk comprising a hard disk of NVME interface type; the UBM protocol processing module processes the interactive data according to the UBM protocol.

3. The method of claim 2, wherein, The UBM protocol processing module comprises a plurality of UBM controllers, the RAID controller is connected with at least one UBM controller through the HFC connector, and the UBM controller is connected with at least one DFC connector; processing the interactive data from the second hard disk using the UBM protocol processing module comprises: a target UBM controller receives the interactive data sent by the RAID controller; the target UBM controller is one of the plurality of UBM controllers; the interactive data comprises a plurality of fields, and the plurality of fields comprise one or more of the following: read / write data enable bit, read / write data address bit, command bit, data to be written bit; a plurality of interface data are obtained by parsing the interactive data using the UBM protocol; the plurality of interface data comprise one or more of the following: first interface data indicating read data enable; second interface data indicating read / write data address; third interface data indicating write data enable; fourth interface data indicating operation command; and fifth interface data indicating data to be written. Reading the value of at least one of the first interface data to the fifth interface data, parsing the value of at least one of the first interface data to the fifth interface data, and sending the parsed command to the DFC connector connected to the second hard disk.

4. The method of claim 3, wherein, The plurality of fields in the interaction data further include UBM controller address bits, which are used to determine the target UBM controller; The target UBM controller receives the interaction data sent by the RAID controller, including: The RAID controller sends the interaction data to the UBM controller through a serial data bus, Determining the target UBM controller based on the UBM controller address bits in the interaction data includes: Based on the consistent comparison result of the address identifier and the address identifier indicated by the UBM controller address bits, one of the at least one UBM controller is determined as the target UBM controller; each of the at least one UBM controller has a unique address identifier.

5. The method of claim 3, wherein, The UBM protocol processing module further includes an FRU, which stores initial configuration information of the hard disk backplane, and the initial configuration information includes a mapping relationship between a plurality of UBM controllers and the HFC connector and the DFC connector.

6. The method of claim 3, wherein, The method further includes: the target UBM controller returns the interaction data processing result to the RAID controller, and the processing result indicates that the execution result of the interaction data is success or failure; Based on the success of the execution result, the RAID controller sends the next interaction data; Based on the failure of the execution result, an error processing procedure is executed to inform the RAID controller to process the error.

7. The method of claim 1, wherein, The method further includes: transmitting the processed data to the hard disk indicator light corresponding to the hard disk to realize management of the hard disk indicator light.

8. A complex programmable logic device (CPLD) based data processing system, comprising: The CPLD is arranged on a hard disk backplane of a server, the hard disk backplane includes an HFC connector for connecting a RAID controller and a DFC connector for connecting a hard disk slot; the system includes: A protocol processing module is configured to process interaction data between the RAID controller and the hard disk according to a hard disk interface type, and transmit processed data to the RAID controller or the hard disk to realize management of the hard disk, wherein the hard disk includes a SAS / SATA / NVME interface type hard disk.

9. The system of claim 8, wherein, The protocol processing module includes: A SAS / SATA protocol processing module is configured to process interaction data between the RAID controller and a first hard disk when the hard disk interface type is SAS / SATA, and the first hard disk includes a SAS / SATA interface type hard disk. A UBM protocol processing module is configured to process interaction data from the RAID controller and a second hard disk using a UBM protocol when the hard disk interface type is NVME, and the second hard disk includes a NVME interface type hard disk; the UBM protocol processing module processes the interaction data according to the UBM protocol.

10. A computing device, comprising: including: A hard disk backboard, wherein the hard disk backboard comprises a CPLD, the CPLD is used to simulate a UBM controller, the UBM controller executes the data processing method as claimed in any one of claims 1-7; A RAID controller connected with the UBM controller of the computing device, the RAID controller is used to generate control information of a hard disk and control information of a hard disk indicator light, and send to a target UBM controller; the target UBM controller is used to parse the control information of the hard disk and the control information of the hard disk indicator light, and obtain a control command and send to a DFC connector connected with a target hard disk and a target hard disk indicator light.

Citation Information

Patent Citations

  • CPLD-FPGA-based interface hard disk state indication control system and method

    CN108563549A

  • System, method, device and equipment for identifying uplink board card connected with hard disk backboard

    CN117093514A

  • Hard disk lighting device and method

    CN117806918A

  • Information processing method and related device

    CN118069052A

  • Data processing method and system based on complex programmable logic device (CPLD) and computing equipment

    CN118689819A

Cited By

  • Server input and output system, application method thereof and electronic equipment

    CN121614425A

  • Server input / output system and application method thereof, electronic device

    CN121614425B