Cooperative control method and device, server and storage medium

By periodically publishing broadcast signals and assigning dynamic addresses in the server, and selecting a slave controller with a smaller load as the new master controller, the problem of low switching accuracy of the substrate management controller is solved, efficient master controller switching is achieved, and the stability of the server is improved.

CN120492232APending Publication Date: 2025-08-15INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202510495201.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-18
Publication Date
2025-08-15

AI Technical Summary

Technical Problem

In the prior art, the switching accuracy of the switching method of the substrate management controller is low, and the fault cannot be identified and switched in time, resulting in abnormal server function.

Method used

By periodically publishing broadcast signals, dynamic addresses are assigned to the target slave controller, and when the current master controller is overloaded, the target slave controller with a smaller load is selected from multiple slave controllers to switch to a new master controller to perform the master controller function.

Benefits of technology

It realizes efficient and high-precision main controller switching, avoids server function abnormalities caused by failures, and improves the stability and reliability of the server.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120492232A_ABST
    Figure CN120492232A_ABST
Patent Text Reader

Abstract

The invention discloses a cooperative control method and device, a server and a storage medium, and relates to the technical field of servers, and the method comprises the steps: a current master controller allocates a dynamic address to a target slave controller returning information through periodically issuing broadcast signals, and achieves the purpose that when the first load of the current master controller is large, the target slave controller returns information; and a target slave controller with a smaller second load is selected from the plurality of target slave controllers and is used as a new master controller to execute the function of the master controller, so that the condition of function abnormality caused by the failure of the master controller is avoided. According to the invention, the technical problem of low switching precision of the switching method of the substrate management controller in the related technology is solved, and the technical effect of switching the main controller with high efficiency and high precision is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of server technology, and in particular to a collaborative control method, device, server, and storage medium. Background Art

[0002] The baseboard management controller (BMC) is a microcontroller that communicates with hardware sensors and monitors server status. It's typically integrated on the server motherboard. A BMC failure can easily cause server malfunctions. Servers can monitor the BMC's status and promptly switch to a faulty BMC to prevent any disruptions to server functionality.

[0003] Related BMC switching methods typically use the BMC's heartbeat signal to determine the master controller's operating status and, in the event of an anomaly, switch another BMC to become the master controller. However, this method cannot accurately identify BMC anomalies, resulting in low switching accuracy. Summary of the Invention

[0004] The present application provides a collaborative control method, device, server and storage medium to at least solve the problem of low switching accuracy of the switching method of the baseboard management controller in the related art.

[0005] This application provides a collaborative control method, including:

[0006] Periodically publish broadcast signals and receive information returned by each target from the controller;

[0007] Based on the respective information, a dynamic address is assigned to each target slave controller;

[0008] When the first load of the current master controller is greater than the first threshold, the first slave controller is selected from each target slave controller, and the first slave controller is switched to the new master controller so that the new master controller executes the periodic broadcast signal and subsequent steps; wherein the first slave controller is used to indicate a slave controller whose second load is less than or equal to the second threshold; the second threshold is less than the first threshold.

[0009] The present application also provides a collaborative control device, comprising:

[0010] Broadcast module, used to periodically issue broadcast signals and receive information returned by each target from the controller;

[0011] A first allocation module is configured to allocate a dynamic address to each target slave controller based on each information;

[0012] A switching module is used to select a first slave controller from each target slave controller when the first load of the current master controller is greater than a first threshold, and switch the first slave controller to a new master controller so that the new master controller executes the periodic release of the broadcast signal and subsequent steps; wherein the first slave controller is used to indicate a slave controller whose second load is less than or equal to a second threshold; and the second threshold is less than the first threshold.

[0013] The present application also provides a server, comprising: a memory for storing a computer program; and a processor for implementing the steps of any one of the above-mentioned collaborative control methods when executing the computer program.

[0014] The present application also provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of any of the above-mentioned collaborative control methods are implemented.

[0015] The present application also provides a computer program product, including a computer program, which implements the steps of any of the above-mentioned collaborative control methods when executed by a processor.

[0016] Through the present application, by periodically issuing broadcast signals and allocating dynamic addresses to the target slave controllers that return information, when the first load of the current master controller is large, a target slave controller with a second smaller load is selected from multiple target slave controllers as a new master controller to perform the functions of the master controller, thereby avoiding functional abnormalities caused by failure of the master controller. Therefore, the technical problem of low switching accuracy of the switching method of the baseboard management controller in the related art can be solved, and the technical effect of efficient and high-precision switching of the master controller can be achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0018] Figure 1 A hardware architecture diagram of a server provided in an embodiment of the present application;

[0019] Figure 2 One of the flow charts of the collaborative control method provided in the embodiment of the present application;

[0020] Figure 3 The second flowchart of the collaborative control method provided in the embodiment of the present application;

[0021] Figure 4The third flowchart of the collaborative control method provided in the embodiment of the present application;

[0022] Figure 5 A schematic diagram of an application of the collaborative control method provided in an embodiment of the present application;

[0023] Figure 6 A schematic diagram of the structure of a collaborative control device provided in an embodiment of the present application;

[0024] Figure 7 A schematic diagram of the server structure provided for this application. DETAILED DESCRIPTION

[0025] The following will be combined with the accompanying drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0026] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.

[0027] Improved Inter-Integrated Circuit (I3C) refers to a new serial communication protocol that can be used to address the limitations of traditional I2C and SPI interfaces in terms of low power consumption, high performance, and high integration.

[0028] Dynamic Address Assignment (DAA) refers to the method of dynamically assigning IP addresses when a device needs them. I3C dynamic address assignment refers to the improved internal integrated circuit I3C, which uses a temporary ID and the above-mentioned dynamic address assignment (DAA) to assign dynamic addresses from the master device to the slave device. It can be used to overcome the static address limitations of I2C, simplify device connection and management, and allow multiple master devices to exist simultaneously, improving device flexibility and scalability.

[0029] Decentralized Identity (DID) refers to a decentralized identity. Devices can join the bus based on dynamic identifiers. Dynamic identifiers can include unique IDs (such as serial numbers) or randomly generated temporary addresses.

[0030] The baseboard management controller (BMC) is a microcontroller typically integrated into the server motherboard. It is a core component of the server management system defined by the Intelligent Platform Management Interface (IPMI) protocol. Independent of the server's central processing unit (CPU), memory, and operating system, the BMC communicates with hardware sensors via buses such as I2C and SMBus to monitor server status. Even when the server is shut down or the operating system crashes, the BMC continues to function, improving device availability, security, and management efficiency.

[0031] Generally, servers with a single baseboard management controller (BMC) are prone to malfunction if the BMC fails. To address this, servers can integrate multiple BMCs on the motherboard and monitor the status of the master controller. This allows for a timely switchover when the master controller fails, preventing disruption to the server's operation.

[0032] Related BMC switching methods typically monitor the BMC's heartbeat signal to determine whether the primary controller is experiencing an anomaly. If this occurs, the server switches to another BMC as the primary controller. However, this method only switches the primary controller when the primary controller's heartbeat signal completely disappears, rendering it unable to function. It cannot detect anomalies caused by a primary controller failure. Furthermore, it cannot determine whether the primary controller will function properly after switching, resulting in low switching accuracy. Consequently, servers still face functional anomalies caused by BMC failures.

[0033] In order to solve the above problems, the embodiments of the present application provide a collaborative control method, device, server and storage medium, which periodically publishes broadcast signals and assigns dynamic addresses to target slave controllers that return information, so that when the first load of the current main controller is large, a target slave controller with a second smaller load is selected from multiple target slave controllers as the new main controller to perform the function of the main controller, thereby avoiding functional abnormalities caused by failure of the main controller, and switching the main controller efficiently and accurately, thereby improving the functional stability of the server.

[0034] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0035] In conjunction with the specific application environment architecture or specific hardware architecture on which the execution of the collaborative control method depends, the specific application environment architecture or specific hardware architecture is described here. Figure 1 , Figure 1 This is a diagram of the server's hardware architecture.

[0036] The server's motherboard is integrated with multiple baseboard management controllers (only four are shown in the figure: baseboard management controller 1-1, baseboard management controller 1-2, baseboard management controller 1-3, and baseboard management controller 1-4). Baseboard management controller 1-1 is designated as the master controller, while baseboard management controllers 1-2, 1-3, and 1-4 are slave controllers. Each baseboard management controller is connected to another.

[0037] Among them, the baseboard management controller 1-1 (i.e. the main controller, Figure 1 The rectangular frame is shown in bold) and is used to periodically issue broadcast signals to the target slave controllers (such as baseboard management controller 1-2, baseboard management controller 1-3, Figure 1 Dynamic addresses are assigned to the master controllers (shown in a dotted rectangle in the figure). When the first load of the current master controller is large, a target slave controller with a smaller second load (such as baseboard management controller 1-2) is selected from multiple target slave controllers and switched to become the new master controller. The current baseboard management controller 1-1 (i.e., the master controller) is updated to a slave controller.

[0038] Baseboard management controller 1-2, baseboard management controller 1-3, and baseboard management controller 1-4 are all configured to receive the broadcast signal issued by baseboard management controller 1-1. Baseboard management controller 1-2 and baseboard management controller 1-3 return information to baseboard management controller 1-1 when the second load is less than or equal to a second threshold.

[0039] Figure 2 One of the flow charts of the collaborative control method provided in the embodiment of the present application is as follows: Figure 2 As shown, the embodiment of the present application provides a collaborative control method, which is described in detail as follows:

[0040] S201: Periodically publish broadcast signals and receive information returned by each target from the controller.

[0041] Optionally, the current main controller refers to a baseboard management controller that is integrated on the server motherboard, set as the main management node by the server, and is responsible for communicating with hardware sensors, monitoring server status, periodically publishing broadcast signals, and performing main controller switching operations based on the first load state.

[0042] Optionally, a broadcast cycle is preset, and the current master controller performs an operation of periodically issuing a broadcast signal based on the broadcast cycle, and receives information returned from each target slave controller.

[0043] The current master controller is in communication with multiple slave controllers, and the target slave controller is used to indicate a slave controller whose second load is less than or equal to a second threshold and returns information based on the broadcast signal. The current master controller and multiple slave controllers share and collaborate on a management server architecture, also known as a multi-master bus architecture, allowing the controllers to collaborate based on a shared "management channel" to balance management workloads.

[0044] Optionally, the broadcast period can be specifically set according to actual conditions, for example, the broadcast period can be set to 5 minutes, or the broadcast period can be set to 1 hour.

[0045] Alternatively, the current main controller can periodically issue a broadcast signal via an I3C link. Since the bandwidth of the I3C link is high, the cost of sending the broadcast signal is low and the burden on the controller itself is small.

[0046] S202: Based on the information, a dynamic address is allocated to each target slave controller.

[0047] Optionally, based on information returned by each target slave controller, a dynamic address is allocated to each target slave controller according to a preset rule.

[0048] The dynamic address may be used to indicate an I3C dynamic address. For example, the preset rules may include but are not limited to an I3C arbitration mechanism or an I3C dynamic address allocation rule.

[0049] S203: When the first load of the current master controller is greater than the first threshold, select the first slave controller from each target slave controller, and switch the first slave controller to the new master controller so that the new master controller executes the periodic broadcast signal and subsequent steps; wherein, the first slave controller is used to indicate a slave controller whose second load is less than or equal to the second threshold; the second threshold is less than the first threshold.

[0050] Optionally, when the first load of the current master controller exceeds a first threshold, it is determined that the current master controller is overloaded, indicating that the current master controller may be experiencing (or may be experiencing) a malfunction or malfunction due to the overload, necessitating a master controller switch. A first slave controller is selected from each target slave controller in communication with the current master controller. The current master controller switches external interactions and corresponding management functions to the new master controller by switching bus control and changing management authority priority. This new master controller can then perform the functions of the master controller, including periodically issuing broadcast signals and subsequent steps.

[0051] It can be understood that the first slave controller is selected from each target slave controller, and based on the second load of the target slave controller being less than or equal to the second threshold, the second load of the first slave controller is also less than or equal to the second threshold.

[0052] Optionally, the second threshold is smaller than the first threshold, thereby avoiding too frequent transfer of control rights of the main controller and reducing power consumption.

[0053] The first threshold and the second threshold can be set specifically according to actual conditions.

[0054] Exemplarily, the first threshold value can be the maximum load of the main controller executing various functions of the main management node (such as communication with hardware sensors, monitoring server status, periodic publishing of broadcast signals, etc.), and the second threshold value can be the maximum load of the slave controller executing various functions of the slave management node (such as receiving broadcast signal lights).

[0055] For example, the first threshold is 85% and the second threshold is 60%, or the first threshold is 80% and the second threshold is 65%.

[0056] In some embodiments, the collaborative control method further includes:

[0057] Each time it is detected that the first load of the current main controller is greater than the first threshold, the number of times the load is marked as excessive is increased by one;

[0058] When the number of overloads is greater than or equal to a third threshold, a first slave controller is selected from each target slave controller and the first slave controller is switched to a new master controller, so that the new master controller executes periodic broadcast signal issuance and subsequent steps.

[0059] Optionally, detecting that the first load of the current master controller is greater than a first threshold may be a misjudgment. Based on this, a third threshold can be pre-set, and each time the first load of the current master controller is detected to be greater than the first threshold, the overload count is incremented by one. Only when the overload count is greater than or equal to the third threshold is the first slave controller selected from the target slave controllers and switched to the new master controller. This reduces the number of master controller control switches due to misjudgments, thereby reducing power consumption.

[0060] Optionally, the initial value of the overload times is 0.

[0061] Optionally, the third threshold value may be specifically set according to actual conditions, for example, the third threshold value is 3, or the third threshold value is 4.

[0062] Optionally, step S201 includes:

[0063] Periodically issuing a broadcast signal so that each slave controller receives the broadcast signal; wherein each slave controller is in communication with the current master controller;

[0064] The target slave controller receives information returned by each target slave controller, wherein the target slave controller is used to indicate that the second load is less than or equal to the second threshold value, and is a slave controller that returns information based on a broadcast signal.

[0065] Optionally, the master controller is connected to multiple slave controllers, placed in parallel on the server motherboard and interconnected via I3C. The master controller and multiple slave controllers can simultaneously perform basic server monitoring functions. External interactions and corresponding management functions are handled by the master controller.

[0066] It can be understood that the slave controller returns information based on the broadcast signal only when the second load is less than or equal to the second threshold. In this way, the current master controller will not receive information sent by the slave controller with a high load, nor will it assign a dynamic address to the slave controller with a high load, thereby reducing the probability of the master controller after switching to an abnormality due to excessive load.

[0067] The current master controller may periodically issue a broadcast signal based on a broadcast cycle, so that each slave controller that is communicatively connected to the current master controller receives the broadcast signal.

[0068] Optionally, when the second load of the slave controller is less than or equal to the second threshold, the slave controller may return information to the master controller based on the broadcast signal issued by the master controller. In this case, the slave controller may also be referred to as a target slave controller. In this way, the current master controller may receive information returned by each target slave controller.

[0069] Optionally, the information includes but is not limited to a unique identifier and a dynamic identifier of the target slave controller.

[0070] Optionally, after step S202, the method further includes:

[0071] When the first load is less than or equal to the first threshold, periodically issuing a broadcast signal, receiving a signal returned by each target from the controller, and subsequent steps are performed.

[0072] Optionally, when the first load of the current master controller is less than or equal to the first threshold, it is determined that the load of the current master controller is light and there is no need to switch the master controller. The current master controller can continue to perform the steps of periodically issuing broadcast signals, receiving signals returned by each target slave controller, and subsequent steps, thereby avoiding frequent switching of the master controller.

[0073] The embodiment of the present application improves the stability and continuity of the controller's management and monitoring of the server through the collaboration between multiple controllers through the bus, and realizes dynamic load detection and work transfer under multiple controllers based on the status detection of the first load of the main controller and the second load of the slave controller. When the main controller is overloaded and performance degradation or failure may occur, the slave controller with lighter load can take over the work through coordinated scheduling. The distributed multi-BMC architecture that eliminates the single controller centralization, the dynamic address allocation and bus arbitration mechanism of the I3C bus realizes the collaborative operation of multiple BMCs, ensures that the multi-BMC structure can continue to manage and monitor the server, reduces the losses caused by server function failures caused by BMC anomalies, and thus improves the stability and reliability of the server.

[0074] Figure 3 The second flow chart of the collaborative control method provided in the embodiment of the present application is as follows: Figure 3 As shown, an embodiment of the present application provides a collaborative control method step S202, including:

[0075] S2021: Sort the dynamic identifiers returned by each target from the controller based on a preset sorting method to obtain a first sequence; wherein the preset sorting method includes an ascending sorting method or a descending sorting method.

[0076] Optionally, based on a preset sorting method, the dynamic identifiers in the information returned by each target from the controller are sorted to obtain a first sequence of the dynamic identifiers.

[0077] Optionally, the preset sorting method includes an ascending sorting method or a descending sorting method.

[0078] S2022: Based on the first sequence, sequentially allocate a dynamic address to each target slave controller.

[0079] Optionally, based on the order of the dynamic identifiers in the first sequence, dynamic addresses are sequentially allocated to the target slave controllers corresponding to the dynamic identifiers.

[0080] Optionally, when the first sequence is arranged in ascending order, a dynamic address is allocated to each target slave controller according to the order of the dynamic identifier from small to large.

[0081] Optionally, when the first sequence is arranged based on a descending sorting manner, a dynamic address is allocated to each target slave controller in descending order of the dynamic identifier.

[0082] It is understandable that the dynamic address is generated based on the dynamic identifier DID. The dynamic identifier DID is unique for each controller BMC. Therefore, the same dynamic address will not appear in multiple controller BMCs, avoiding priority conflicts.

[0083] In some embodiments, multiple controller BMCs may also use other bus methods or network link methods to achieve the same functional effects as the I3C technology, which is not specifically limited in the embodiments of the present application.

[0084] Optionally, after allocating a dynamic address to each target slave controller based on each information, the method further includes:

[0085] An address table is generated based on each target slave controller and the corresponding dynamic address and stored.

[0086] Optionally, an address table is generated based on each target slave controller and the corresponding dynamic address, and the address table is stored.

[0087] Optionally, the address table includes but is not limited to a unique identifier, a dynamic identifier, and a dynamic address of each target slave controller.

[0088] The embodiment of the present application can enable multiple controllers BMC to coexist effectively in a single server system based on I3C dynamic address allocation technology, thereby improving the working efficiency of the BMC and avoiding the problem of BMC abnormalities caused by high load.

[0089] Figure 4 The third flow chart of the collaborative control method provided in the embodiment of the present application is as follows: Figure 4 As shown, the embodiment of the present application provides a collaborative control method step S203, including:

[0090] S2031: When the first load is greater than a first threshold, stop issuing the broadcast signal and obtain the address table.

[0091] Optionally, when the first load of the current main controller is greater than a first threshold, the broadcast signal is stopped and a previously stored address table is obtained.

[0092] S2032: Based on the address table, select a target slave controller from each target slave controller and determine it as the first slave controller.

[0093] Optionally, based on the address table, a target slave controller is selected from target slave controllers that are communicatively connected to the current master controller and whose second load is less than or equal to the second threshold and is determined as the first slave controller.

[0094] Optionally, the method of selecting the first slave controller can be set according to actual needs.

[0095] Exemplarily, based on the address table, a target slave controller may be randomly selected from each target slave controller as the first slave controller.

[0096] S2033: Switch the first slave controller to a new master controller, so that the new master controller executes the steps of periodically issuing broadcast signals, receiving signals returned by each target slave controller, and performing subsequent steps.

[0097] Optionally, the first slave controller is switched to a new master controller so that the new master controller (i.e., the second load is less than or equal to the second threshold) performs the functional operations of the master controller, including but not limited to periodically publishing broadcast signals, receiving signals returned by each target slave controller and subsequent steps.

[0098] Optionally, after step S2033, the following steps are included:

[0099] The current master controller is switched to a new slave controller; wherein the new slave controller is used to receive the broadcast signal issued by the new master controller.

[0100] Optionally, when the first load of the current master controller is greater than a first threshold, the selected first slave controller is switched to a new master controller, and the current master controller is switched to a new slave controller to receive the broadcast signal issued by the new master controller. When the second load is less than or equal to a second threshold, the new slave controller returns information to the new master controller.

[0101] Optionally, the collaborative control method further includes:

[0102] Each time an operation of switching the current master controller to a new slave controller is detected, the first switching count is incremented by one;

[0103] Each time an operation of switching the first slave controller to a new master controller is detected, the second switching number is marked to be incremented by one; wherein, the initial values of the first switching number and the second switching number are both 0.

[0104] Optionally, before periodically issuing a broadcast signal and receiving information returned by each target from the controller, the following steps are included:

[0105] In response to the initialization command, executing an initialization program;

[0106] When the initialization procedure is completed, the parameters of each initialized controller are obtained;

[0107] Based on the parameters of the post-initialization controllers, selecting a post-initialization controller from the post-initialization controllers and determining the post-initialization controller as a main controller;

[0108] In each initialized controller, a non-master controller is determined as a slave controller, and each slave controller is controlled to enter a waiting state;

[0109] Unique identifiers are assigned to the master controller and each slave controller; wherein the master controller is used to execute the steps of periodically issuing broadcast signals, receiving signals returned by each target slave controller, and the like.

[0110] Optionally, in response to the initialization command, an initialization program is executed, and when the initialization program is completed, parameters of each initialized controller (including the current main controller) are obtained.

[0111] Exemplarily, the master controller and each slave controller may be assigned unique identifiers based on 0 to N. For example, the unique identifier of the master controller is BMC-0, and the unique identifiers of the slave controllers are BMC-1, BMC-2, ..., BMC-N.

[0112] Optionally, the parameters include but are not limited to temperature, load, first switching times (referring to the number of times the master controller switches to the slave controller), and second switching times (referring to the number of times the slave controller switches to the master controller).

[0113] Optionally, based on the parameters of the post-initialization controllers, one post-initialization controller is selected and determined as the main controller.

[0114] Optionally, the controller selected after initialization may be the current main controller or may not be the current main controller.

[0115] Optionally, the initialization command may refer to an initialization command received by a server where the current main controller is located, or may refer to an initialization command sent by the server to the current main controller.

[0116] Optionally, in each initialized controller, other initialized controllers (also referred to as non-master controllers) other than the master controller are determined as slave controllers, and each slave controller is controlled to enter a waiting state so that each slave controller receives the broadcast signal sent by the above-mentioned master controller, and at the same time, a unique identifier is assigned to the master controller and each slave controller.

[0117] Exemplarily, based on the loads of the post-initialization controllers, the post-initialization controller with the most efficient load is selected and determined as the master controller.

[0118] As another example, based on the first switching times of the initialized controllers, the initialized controller with the smallest value (ie, the controller with the least number of switching times from the master controller to the slave controller) is selected and determined as the master controller.

[0119] As another example, based on the second switching times of the initialized controllers, the initialized controller with the largest value (ie, the controller with the largest number of switching times from the slave controller to the master controller) is selected and determined as the master controller.

[0120] Optionally, based on the address table, selecting a target slave controller from each target slave controller and determining it as the first slave controller includes:

[0121] In the address table, select the dynamic address symbol at the first position and determine it as the target dynamic address symbol;

[0122] Obtaining a unique identifier corresponding to the target dynamic address character and determining it as the target identifier;

[0123] The target slave controller corresponding to the target identifier is determined as the first slave controller.

[0124] Optionally, the dynamic address symbols in the address table are arranged based on a preset sorting method.

[0125] Optionally, when the dynamic address symbols in the address table are arranged in ascending order, the dynamic address symbol with the smallest value at the first position is selected and determined as the target dynamic address symbol, and the target slave controller corresponding to the target identifier is determined as the first slave controller.

[0126] Optionally, when the dynamic address symbols in the address table are arranged in descending order, the dynamic address symbol with the largest value at the first position is selected and determined as the target dynamic address symbol, and the target slave controller corresponding to the target identifier is determined as the first slave controller.

[0127] The embodiment of the present application can select the nearest dynamic address based on the order of the dynamic address symbols in the address table, so that when it is necessary to switch the control of the main controller, the addressing switching operation can be completed quickly, the switching efficiency of the dynamic address symbols is improved, and the risk of server function failure caused by an abnormality of the current main controller when the control of the main controller is switched is reduced.

[0128] Figure 5 Schematic diagram of the application of the collaborative control method provided in an embodiment of the present application.

[0129] See also Figure 5When the first load of the current master controller is less than or equal to the first threshold, the current master controller periodically broadcasts based on the broadcast cycle. When the second load of the slave controller is less than or equal to the second threshold, the slave controller returns information to the current master controller. Based on the information returned by the slave controller, the current master controller assigns dynamic addresses to each slave controller and generates a corresponding address table. When the first load of the current master controller is greater than the first threshold, the current master controller selects a first slave controller and determines it as the new master controller. The current master controller switches to the new slave controller. The new master controller continues to perform operations such as periodically broadcasting based on the broadcast cycle.

[0130] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.

[0131] Figure 6 This is a schematic diagram of the structure of the collaborative control device provided in the embodiment of the present application. Figure 6 As shown, an embodiment of the present application further provides a collaborative control device, comprising:

[0132] Broadcast module 601, used to periodically issue broadcast signals and receive information returned by each target from the controller;

[0133] A first allocation module 602 is configured to allocate a dynamic address to each target slave controller based on the information;

[0134] The switching module 603 is used to select a first slave controller from each target slave controller when the first load of the current master controller is greater than a first threshold, and switch the first slave controller to a new master controller so that the new master controller executes the periodic release of the broadcast signal and subsequent steps; wherein the first slave controller is used to indicate a slave controller whose second load is less than or equal to a second threshold; and the second threshold is less than the first threshold.

[0135] Optionally, the information includes a dynamic identifier. The first allocation module 602 includes:

[0136] A sorting unit, configured to sort the dynamic identifiers returned by the controller for each target based on a preset sorting method to obtain a first sequence; wherein the preset sorting method includes an ascending sorting method or a descending sorting method;

[0137] An address allocating unit, configured to allocate a dynamic address to each target slave controller sequentially based on a first sequence;

[0138] The collaborative control device further includes:

[0139] The storage module is used to generate and store an address table based on each target slave controller and the corresponding dynamic address.

[0140] Optionally, the switching module 603 includes:

[0141] an acquiring unit, configured to stop issuing the broadcast signal and acquire the address table when the first load is greater than a first threshold;

[0142] a determining unit, configured to select a target slave controller from each target slave controller based on the address table and determine the target slave controller as the first slave controller;

[0143] The first switching unit is used to switch the first slave controller to a new master controller, so that the new master controller executes the steps of periodically issuing broadcast signals, receiving signals returned by each target slave controller, and the subsequent steps.

[0144] Optionally, the device comprises:

[0145] An initialization module, configured to execute an initialization program in response to an initialization command;

[0146] An acquisition module is used to obtain the parameters of each initialized controller when the initialization program is completed;

[0147] A selection module is used to select a post-initialization controller from the post-initialization controllers based on the parameters of the post-initialization controllers and determine it as a main controller;

[0148] A determination module, configured to determine, in each initialized controller, a non-master controller as a slave controller, and control each slave controller to enter a waiting state;

[0149] A second allocation module is used to allocate unique identifiers to the master controller and each slave controller; wherein the master controller is used to perform the steps of periodically issuing broadcast signals, receiving signals returned by each target slave controller, and the subsequent steps;

[0150] Identify units, specifically for:

[0151] In the address table, select the dynamic address symbol at the first position and determine it as the target dynamic address symbol;

[0152] Obtaining a unique identifier corresponding to the target dynamic address character and determining it as the target identifier;

[0153] The target slave controller corresponding to the target identifier is determined as the first slave controller.

[0154] Optionally, the switching module 603 includes:

[0155] The second switching unit is used to switch the current master controller to a new slave controller; wherein the new slave controller is used to receive the broadcast signal issued by the new master controller.

[0156] Optionally, the broadcast module 601 includes:

[0157] A broadcast unit, configured to periodically issue a broadcast signal so that each slave controller receives the broadcast signal; wherein each slave controller is in communication with the current master controller;

[0158] The receiving unit is configured to receive information returned by each target slave controller, wherein the target slave controller is configured to indicate that the second load is less than or equal to a second threshold value and is a slave controller that returns information based on a broadcast signal.

[0159] Optionally, the collaborative control device further includes:

[0160] The loop module is used to execute the steps of periodically issuing a broadcast signal, receiving a signal returned by each target from the controller, and the subsequent steps when the first load is less than or equal to the first threshold.

[0161] For the description of the features in the embodiments corresponding to the collaborative control device, please refer to the relevant description of the embodiments corresponding to the collaborative control method, and will not be repeated here.

[0162] Figure 7 This is a schematic diagram of the server structure provided for this application. Figure 7 As shown, the server 70 provided in this embodiment includes: at least one processor 701 and a memory 702. Optionally, the server 70 further includes a communication component 703. The processor 701, the memory 702 and the communication component 703 are connected via a bus.

[0163] During the specific implementation process, at least one processor 701 executes the computer-executable instructions stored in the memory 702, so that the at least one processor 701 executes the above-mentioned collaborative control method embodiment.

[0164] The specific implementation process of the processor 701 can be found in the above method embodiment. Its implementation principle and technical effects are similar and will not be repeated here in this embodiment.

[0165] In the above embodiments, it should be understood that the processor may be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), etc. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the application may be directly executed by a hardware processor or by a combination of hardware and software modules within the processor.

[0166] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage.

[0167] A bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus. Buses can be categorized as address buses, data buses, and control buses. For ease of illustration, the buses in the drawings of this application are not limited to just one bus or just one type of bus.

[0168] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above-mentioned collaborative control method embodiments when run.

[0169] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk.

[0170] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps in any one of the above-mentioned collaborative control method embodiments are implemented.

[0171] An embodiment of the present application also provides another computer program product, including a non-volatile computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the steps in any of the above-mentioned collaborative control method embodiments.

[0172] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0173] The above is a detailed introduction to a collaborative control method, device, server and storage medium provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method of the present application and its core idea. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the claims of the present application.

Claims

1. A collaborative control method, characterized in that: include: Periodically publish broadcast signals and receive information returned by each target from the controller; Based on each of the information, assign a dynamic address to each of the target slave controllers; When the first load of the current master controller is greater than a first threshold, a first slave controller is selected from each of the target slave controllers, and the first slave controller is switched to a new master controller so that the new master controller executes the periodic broadcast signal issuance and subsequent steps; wherein the first slave controller is used to indicate a slave controller whose second load is less than or equal to a second threshold; and the second threshold is less than the first threshold.

2. The collaborative control method according to claim 1, characterized in that: The information includes a dynamic identifier, and the allocating a dynamic address to each target slave controller based on each of the information includes: Sorting the dynamic identifiers returned by the controller for each target based on a preset sorting method to obtain a first sequence; wherein the preset sorting method includes an ascending sorting method or a descending sorting method; sequentially allocating a dynamic address to each of the target slave controllers based on the first sequence; After allocating a dynamic address to each target slave controller based on each of the information, the method further includes: An address table is generated based on each of the target slave controllers and the corresponding dynamic address, and stored.

3. The collaborative control method according to claim 2, characterized in that: When the first load of the current master controller is greater than a first threshold, selecting a first slave controller from each of the target slave controllers, switching the first slave controller to a new master controller, so that the new master controller performs the periodic broadcast signal issuance and subsequent steps, including: When the first load is greater than a first threshold, stopping issuing the broadcast signal and acquiring the address table; Based on the address table, selecting a target slave controller from each of the target slave controllers and determining it as a first slave controller; The first slave controller is switched to the new master controller, so that the new master controller executes the steps of periodically issuing broadcast signals, receiving signals returned by each target slave controller, and subsequent steps.

4. The collaborative control method according to claim 3, characterized in that: Before the periodic broadcast signal is issued and the information returned by each target from the controller is received, the following steps are included: In response to the initialization command, executing an initialization program; When the initialization procedure is completed, obtaining parameters of each initialized controller; Based on the parameters of the post-initialization controllers, selecting one post-initialization controller from the post-initialization controllers and determining it as the main controller; In each of the initialized controllers, a non-master controller is determined as a slave controller, and each of the slave controllers is controlled to enter a waiting state; Assigning unique identifiers to the master controller and each of the slave controllers; wherein the master controller is used to perform the steps of periodically issuing broadcast signals, receiving signals returned by each target slave controller, and subsequent steps; The selecting a target slave controller from each of the target slave controllers based on the address table and determining the target slave controller as the first slave controller includes: In the address table, selecting the dynamic address character at the first position and determining it as the target dynamic address character; Obtaining a unique identifier corresponding to the target dynamic address character and determining it as the target identifier; The target slave controller corresponding to the target identifier is determined as the first slave controller.

5. The collaborative control method according to claim 3, characterized in that: After switching the first slave controller to the new master controller, the method includes: Switch the current master controller to a new slave controller; wherein the new slave controller is used to receive the broadcast signal issued by the new master controller.

6. The collaborative control method according to claim 1, characterized in that: The periodic broadcast signal issuance and the reception of information returned by each target from the controller include: Periodically issuing a broadcast signal so that each slave controller receives the broadcast signal; wherein each slave controller is in communication with the current master controller; The target slave controller receives information returned by each target slave controller, wherein the target slave controller is used to indicate that the second load is less than or equal to a second threshold, and is a slave controller that returns the information based on the broadcast signal.

7. The collaborative control method according to any one of claims 1 to 6, characterized in that: After allocating a dynamic address to each of the target slave controllers based on each of the signals, the method further includes: When the first load is less than or equal to the first threshold, the steps of periodically issuing a broadcast signal, receiving a signal returned by each target from the controller, and subsequent steps are performed.

8. A collaborative control device, characterized in that: include: Broadcast module, used to periodically issue broadcast signals and receive information returned by each target from the controller; A first allocation module, configured to allocate a dynamic address to each of the target slave controllers based on each of the information; A switching module is used to select a first slave controller from each target slave controller when the first load of the current master controller is greater than a first threshold, and switch the first slave controller to a new master controller so that the new master controller executes the periodic broadcast signal issuance and subsequent steps; wherein the first slave controller is used to indicate a slave controller whose second load is less than or equal to a second threshold; and the second threshold is less than the first threshold.

9. A server, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the collaborative control method according to any one of claims 1 to 7 when executing the computer program.

10. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the collaborative control method according to any one of claims 1 to 7.

Citation Information

Cited By

  • Cooperative operation method of multiple substrate management controllers and electronic equipment

    CN120723489A