Parameter configuration method and device, computer device and storage medium

By testing multiple PCIe devices and automating preset value configuration, the problem of poor link stability of multiple PCIe devices was solved, achieving optimal device operation and improving testing efficiency.

CN117762712BActive Publication Date: 2026-06-26INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2023-12-26
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

In existing technologies, setting the Preset value of multiple PCIe devices to a uniform value results in poor link stability and makes it impossible to guarantee the stability of multiple PCIe links simultaneously.

Method used

By setting multiple combinations of first preset values, multiple PCIe devices are tested to determine the effective preset value range for each device. The optimal preset value combination is then selected, and the preset value is automatically refreshed using a retimer firmware. Combined with out-of-band retimer self-refresh and in-band PCIe signal test results, the optimal preset value combination is selected.

Benefits of technology

It improves the stability and testing efficiency of the PCIe link, reduces human intervention, saves testing costs, simplifies testing procedures, and ensures that each PCIe device operates in optimal condition.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117762712B_ABST
    Figure CN117762712B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of PCIe devices, and discloses a parameter configuration method and device, a computer device and a storage medium, the method comprising the following steps: setting a plurality of first preset value combinations; configuring preset values of a plurality of PCIe devices according to the first preset value combinations, and performing first testing on the plurality of PCIe devices to obtain first testing results; determining an effective preset value range that can be configured by each PCIe device according to the first testing results; selecting an effective preset value from the effective preset value range corresponding to each PCIe device to form a second preset value combination; configuring preset values of the plurality of PCIe devices according to the second preset value combination, and performing second testing on the plurality of PCIe devices to obtain second testing results; and determining an optimal second preset value combination according to the second testing results corresponding to the plurality of second preset value combinations. The application can determine optimal preset values corresponding to each PCIe device respectively, and can simultaneously ensure the stability of PCIe links of each PCIe device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of PCIe device technology, and more specifically to methods, apparatus, computer devices, and storage media for parameter configuration. Background Technology

[0002] With the development of AI (artificial intelligence) server architecture and the widespread application of PCIe (Peripheral Component Interconnect express, a high-speed serial computer expansion bus standard), the PCIe link has been extended, resulting in attenuation and loss of PCIe signal quality. This has led to frequent card loss and speed reduction issues in PCIe devices such as GPUs (Graphics Processing Units).

[0003] To compensate for the quality of PCIe signals, the Preset value corresponding to the PCIe signal can be adjusted, and the EQ (Equalizer) coefficient can be adjusted based on the Preset value to achieve negotiation of the PCIe signal equalization coefficient and make the signal compensation optimal.

[0004] However, an increasing number of scenarios involve multiple PCIe devices. For example, GPUs are often presented in modular form, and a GPU module involves multiple GPUs. Currently, the same preset value is generally set for multiple PCIe devices. However, because the PCB (printed circuit board) traces of different PCIe devices are different, the corresponding preset values ​​may also differ. Setting a uniform preset value cannot guarantee the stability of multiple PCIe links simultaneously. Summary of the Invention

[0005] In view of this, the present invention provides a method, apparatus, computer device and storage medium for parameter configuration to solve the problem of poor stability of existing PCIe links.

[0006] In a first aspect, the present invention provides a method for configuring parameters, comprising:

[0007] Set multiple combinations of first Preset values; the first Preset value combinations include the Preset values ​​of multiple PCIe devices;

[0008] Configure the Preset values ​​of the plurality of PCIe devices according to the combination of the first Preset value, and perform a first test on the plurality of PCIe devices to obtain a first test result;

[0009] Based on the first test results, determine the effective preset value range that each PCIe device can be configured with; each effective preset value range includes at least one effective preset value;

[0010] Select a valid Preset value from the range of valid Preset values ​​corresponding to each PCIe device to form a second Preset value combination;

[0011] Configure the preset values ​​of the plurality of PCIe devices according to the combination of the second preset values, and perform a second test on the plurality of PCIe devices to obtain a second test result; the second test is different from the first test;

[0012] Based on the second test results corresponding to multiple combinations of the second Preset values, the optimal combination of the second Preset values ​​is determined; the optimal combination of the second Preset values ​​includes the optimal Preset value for each PCIe device.

[0013] In some alternative implementations, the first test is a stress test with results including pass and fail; the second test is an attenuation test with results indicating signal attenuation.

[0014] The step of determining the effective preset value range that each PCIe device can be configured with based on the first test result includes:

[0015] Based on the first test results, determine the Preset value for each PCIe device to pass the stress test;

[0016] The Preset value that passes the stress test is taken as the effective Preset value of the corresponding PCIe device, forming the effective Preset value range of the PCIe device.

[0017] In some alternative implementations, the PCIe device is equipped with a retimer;

[0018] The method further includes:

[0019] Preset timer firmware for each Preset value;

[0020] The step of configuring the Preset values ​​of the plurality of PCIe devices according to the first Preset value includes:

[0021] The retimer firmware corresponding to each Preset value in the first Preset value combination is used as the first target firmware; the retimer firmware of the corresponding PCIe device is refreshed according to the first target firmware;

[0022] The step of configuring the Preset values ​​of the plurality of PCIe devices according to the second Preset value includes:

[0023] The retimer firmware corresponding to each Preset value in the second Preset value combination is used as the second target firmware; the retimer firmware of the corresponding PCIe device is refreshed according to the second target firmware.

[0024] In some optional implementations, the firmware update of the retimer for the corresponding PCIe device includes:

[0025] The corresponding target firmware is written to the retimer of the PCIe device via the Redfish interface to refresh the firmware of the retimer of the PCIe device.

[0026] The process of obtaining the first test result includes: obtaining the first test result fed back by the PCIe device based on the application programming interface function of the PCIe device;

[0027] Obtaining the second test result includes: obtaining the second test result fed back by the PCIe device based on the application programming interface function of the PCIe device.

[0028] In some optional implementations, setting multiple combinations of first Preset values ​​includes:

[0029] Based on the range of Preset values, multiple different combinations of first Preset values ​​are set; each Preset value in the first Preset value combination is the same.

[0030] In some optional implementations, selecting a valid preset value from the range of valid preset values ​​corresponding to each PCIe device to form a second preset value combination includes:

[0031] Determine the pending Preset value for each PCIe device; the pending Preset value is a valid Preset value within the range of valid Preset values ​​that has not undergone the second test;

[0032] Each PCIe device is selected with a preset value to form a second set of preset values.

[0033] In some optional implementations, the step of selecting a pending Preset value corresponding to each PCIe device to form a second Preset value combination includes:

[0034] The number of pending Preset values ​​for all the PCIe devices is determined by statistical analysis.

[0035] Perform a selectable preset value operation on the second PCIe device other than the first PCIe device until there are no more second PCIe devices; the first PCIe device is the PCIe device whose selected preset value has been selected, and the second PCIe device is the PCIe device whose corresponding preset value is different from any preset value corresponding to all the first PCIe devices.

[0036] After performing the operation of selecting pending Preset values, the minimum number of pending Preset values ​​among all pending Preset values ​​corresponding to the third PCIe device is selected as the Preset value corresponding to the third PCIe device in the second Preset value combination; the third PCIe device is all PCIe devices other than the PCIe devices whose pending Preset values ​​have been selected, and each third PCIe device corresponds to at least one pending Preset value;

[0037] Generate the second Preset value combination;

[0038] The operation of selecting the undetermined Preset value includes:

[0039] For the second PCIe device corresponding to the maximum number of undetermined Preset values, the maximum number of undetermined Preset values ​​are selected as the Preset values ​​corresponding to the second PCIe device in the second Preset value combination.

[0040] In some optional implementations, the step of selecting a pending Preset value corresponding to each PCIe device to form a second Preset value combination includes:

[0041] If the second test has been performed on all valid preset values ​​corresponding to the fourth PCIe device, the current optimal preset value of the fourth PCIe device is determined based on the obtained second test results.

[0042] The current optimal Preset value is used as the Preset value corresponding to the fourth PCIe device in the second Preset value combination to form the second Preset value combination.

[0043] Secondly, the present invention provides a parameter configuration apparatus, comprising:

[0044] The combination setting module is used to set multiple combinations of first Preset values; the first Preset value combination includes the Preset values ​​of multiple PCIe devices.

[0045] A configuration test module is configured to combine and configure the Preset values ​​of the plurality of PCIe devices according to the first Preset value, and perform a first test on the plurality of PCIe devices to obtain a first test result;

[0046] The processing module is configured to determine, based on the first test result, the effective Preset value range that each PCIe device can be configured with; each effective Preset value range includes at least one effective Preset value;

[0047] The combination setting module is further configured to select a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination;

[0048] The configuration test module is further configured to combine the Preset values ​​of the plurality of PCIe devices according to the second Preset value, and perform a second test on the plurality of PCIe devices to obtain a second test result; the second test is different from the first test;

[0049] The processing module is further configured to determine the optimal combination of second Preset values ​​based on the second test results corresponding to multiple combinations of second Preset values; the optimal combination of second Preset values ​​includes the optimal Preset value for each PCIe device.

[0050] Thirdly, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the computer instructions to perform the parameter configuration method of the first aspect or any corresponding embodiment described above.

[0051] Fourthly, the present invention provides a computer-readable storage medium storing computer instructions for causing a computer to perform the parameter configuration method of the first aspect or any corresponding embodiment thereof.

[0052] This invention utilizes combinations of preset values, including multiple preset values, to test multiple PCIe devices. This allows for the determination of the optimal preset value combination, and subsequently, the optimal preset value for each PCIe device. Preset values ​​can be configured based on the actual conditions of each PCIe device, ensuring the stability of the PCIe link for each device and adjusting each device to its optimal state. Furthermore, the method of conducting a first test followed by a second test not only provides a more comprehensive test of the PCIe devices but also allows for the initial screening of suitable valid preset values ​​based on the first test. The second test then determines the optimal preset value from a smaller pool of valid preset values, improving the efficiency of parameter configuration and ensuring more accurate determination of the optimal preset value.

[0053] By implementing out-of-band retimer self-refresh through BMC and combining it with the system's in-band PCIe signal test results, the optimal combination of preset values ​​can be selected. This enables firmware self-refresh without the need for manual setting of preset values ​​or manual judgment of test results after testing. This maximizes signal compensation of the entire system's PCIe link, saves testing costs, and simplifies testing procedures.

[0054] Setting each preset value in the first preset value combination to be identical means that each time the firmware is refreshed based on this first preset value combination, only one retimer firmware needs to be provided to the device module. This reduces the amount of data transmitted between the BMC and the device module, improving overall testing efficiency. First, select a subset of PCIe device preset values ​​based on the maximum number of undetermined preset values, and then select based on the minimum number of undetermined preset values. This ensures that the selected second preset value combination contains as many duplicate preset values ​​as possible, thus reducing the need for retimer firmware during the second test and improving the efficiency of the second test as well. Attached Figure Description

[0055] To more clearly illustrate the technical solutions in the specific embodiments or related technologies of the present invention, the drawings used in the description of the specific embodiments or related technologies will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0056] Figure 1 This is a flowchart illustrating a parameter configuration method according to an embodiment of the present invention;

[0057] Figure 2 This is a flowchart illustrating another parameter configuration method according to an embodiment of the present invention;

[0058] Figure 3 This is a schematic diagram of a system structure including a GPU module according to an embodiment of the present invention;

[0059] Figure 4 This is a schematic diagram of the structure for firmware flashing according to an embodiment of the present invention;

[0060] Figure 5 This is a flowchart illustrating another parameter configuration method according to an embodiment of the present invention;

[0061] Figure 6 This is a structural block diagram of a parameter configuration device according to an embodiment of the present invention;

[0062] Figure 7 This is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. Detailed Implementation

[0063] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0064] According to an embodiment of the present invention, a method embodiment for parameter configuration is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.

[0065] This embodiment provides a parameter configuration method that can be used in devices capable of configuring parameters of a PCIe device, such as the PCIe device itself, or devices capable of controlling the PCIe device, such as a BMC (Baseboard Management Controller). Figure 1 This is a flowchart of a parameter configuration method according to an embodiment of the present invention, such as... Figure 1 As shown, the process includes the following steps.

[0066] Step S101: Set multiple combinations of first Preset values; the combination of first Preset values ​​includes the Preset values ​​of multiple PCIe devices.

[0067] In this embodiment, the parameter configuration method is used to configure the parameters of a device module containing multiple PCIe devices to determine the appropriate Preset value for each PCIe device. For example, if the device module includes 10 PCIe devices, then a total of 10 Preset values ​​need to be determined, with each Preset value corresponding to one PCIe device.

[0068] In this context, the Preset value refers to a parameter used to limit signal interference and ensure data transmission quality; it can also be called a preset value. This embodiment represents all Preset values ​​in combination, i.e., a Preset value combination. For ease of description, this Preset value combination is referred to as the first Preset value combination. This first Preset value combination includes the Preset values ​​of all PCIe devices.

[0069] For example, the first Preset value combination can be represented as an array. If the device module includes n PCIe devices, then the first Preset value combination is an n-dimensional array, where each element is the Preset value corresponding to a PCIe device.

[0070] Furthermore, since there are multiple preset values, different combinations of first preset values ​​can be formed by using different preset values, so multiple combinations of first preset values ​​can be set. Generally, there are eleven preset values: P0 to P10. Each preset value corresponds to a different equalization coefficient (such as the de-emphasis coefficient). After determining the preset value, the corresponding equalization coefficient that needs to be configured can be determined.

[0071] Step S102: Configure the preset values ​​of multiple PCIe devices according to the first preset value combination, and perform a first test on the multiple PCIe devices to obtain the first test result.

[0072] In this embodiment, a first Preset value combination represents a configuration method for these PCIe devices. For example, if there are four PCIe devices and the first Preset value combination is [P1, P2, P3, P4], then the Preset values ​​of these four PCIe devices can be configured based on this first Preset value combination. That is, the Preset value of the first PCIe device is set to P1, the Preset value of the second PCIe device is set to P2, the Preset value of the third PCIe device is set to P3, and the Preset value of the fourth PCIe device is set to P4. Any first Preset value combination can be used to configure these PCIe devices.

[0073] After configuring these PCIe devices based on a certain first Preset value combination, these PCIe devices have completed a parameter configuration method. At this time, these PCIe devices can be tested to determine whether the current configuration parameters are appropriate, that is, whether the Preset value in the first Preset value combination is appropriate.

[0074] Specifically, the test performed on the first combination of Preset values ​​is called the first test, and the test result obtained from the first test is called the first test result. For example, the first test result can represent the performance of the PCIe device after configuring the corresponding Preset values; the better the performance of the PCIe device, the better the Preset values ​​in the first combination of Preset values.

[0075] Step S103: Determine the range of valid preset values ​​that each PCIe device can be configured with based on the first test result; each range of valid preset values ​​includes at least one valid preset value.

[0076] In this embodiment, for any combination of first preset values, the PCIe device is configured and a first test is performed, thereby obtaining the first test result corresponding to each combination of first preset values. Based on these first test results, it can be determined which preset values ​​among these combinations of first preset values ​​are reasonable, thus determining which preset values ​​can be set for a certain PCIe device. These settable preset values ​​are called valid preset values, thereby forming a corresponding range of valid preset values.

[0077] This involves determining the effective preset value range for each PCIe device. Specifically, for a given PCIe device, any combination of first preset values ​​contains a preset value corresponding to that PCIe device, and different combinations of first preset values ​​generally correspond to different preset values. Based on the first test results of these combinations of first preset values, it can be determined which preset values ​​meet the requirements, i.e., which preset values ​​are effective preset values ​​for that PCIe device, and thus the effective preset value range for that PCIe device can be generated.

[0078] It is understandable that the effective preset value range may be the same or different for different PCIe devices, depending on the specific circumstances.

[0079] Step S104: Select a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination.

[0080] In this embodiment, the first test is performed based on the first set value combination, which can initially screen the set values ​​of all PCIe devices, that is, initially screen out the valid set values ​​corresponding to each PCIe device, thereby reducing the number of set values ​​that need to be tested subsequently. Furthermore, after determining the valid set values ​​corresponding to each PCIe device, a new set value combination, namely the second set value combination, is formed based on these valid set values.

[0081] Specifically, for each PCIe device, a valid Preset value is selected from its corresponding valid Preset value range to form a combination containing the Preset values ​​corresponding to each PCIe device, namely the second Preset value combination.

[0082] For example, if the device module includes three PCIe devices, the effective preset values ​​corresponding to the first PCIe device include P1 and P2, the effective preset values ​​corresponding to the second PCIe device include P3 and P4, and the effective preset values ​​corresponding to the third PCIe device include P4 and P5, then the resulting combination of second preset values ​​can be, for example: [P1,P3,P4], [P1,P3,P5], [P1,P4,P4], [P1,P4,P5], [P2,P3,P4], [P2,P3,P5], [P2,P4,P4], [P2,P4,P5].

[0083] Step S105: Configure the preset values ​​of multiple PCIe devices according to the combination of the second preset values, and perform a second test on the multiple PCIe devices to obtain the second test results; the second test is different from the first test.

[0084] In this embodiment, similar to the process of performing a first test on multiple PCIe devices based on the first Preset value combination, the Preset values ​​of multiple PCIe devices can be configured based on the second Preset value combination. Then, other tests different from the first test, namely the second test, are performed on these PCIe devices to obtain the second test result corresponding to each second Preset value combination.

[0085] The second test differs from the first test, allowing for testing of PCIe devices from different perspectives and providing a more comprehensive evaluation of whether the Preset value is suitable for the corresponding PCIe device.

[0086] Step S106: Determine the optimal combination of second Preset values ​​based on the second test results corresponding to multiple combinations of second Preset values; the optimal combination of second Preset values ​​includes the optimal Preset value for each PCIe device.

[0087] In this embodiment, for any combination of second Preset values, a corresponding second test result can be obtained. Based on this second test result, it can be determined which combination of second Preset values ​​corresponds to the optimal second test result, thereby determining the optimal combination of second Preset values. Furthermore, the effective Preset value corresponding to each PCIe device in the optimal combination of second Preset values ​​is also used as the finally determined optimal Preset value for that PCIe device; that is, the optimal Preset value is the optimal effective Preset value.

[0088] After determining the optimal preset value for each PCIe device, the method may further include configuring a corresponding optimal preset value for each PCIe device. Specifically, the preset values ​​of multiple PCIe devices can be configured based on the optimal combination of second preset values, thereby setting the preset values ​​of multiple PCIe devices to their respective optimal preset values.

[0089] The parameter configuration method provided in this embodiment utilizes combinations of preset values ​​to test multiple PCIe devices, determining the optimal combination of preset values. This, in turn, determines the optimal preset value for each PCIe device. Preset values ​​can be configured based on the actual situation of each PCIe device, ensuring the stability of the PCIe link for each device and adjusting each device to its optimal state. Furthermore, the method of conducting a first test followed by a second test not only allows for more comprehensive testing of the PCIe devices but also enables the initial screening of suitable valid preset values ​​based on the first test. The second test then determines the optimal preset value from a smaller pool of valid preset values, improving the efficiency of parameter configuration and ensuring more accurate determination of the optimal preset value.

[0090] This embodiment provides a parameter configuration method that can be used in devices capable of configuring parameters of PCIe devices, such as devices capable of controlling the PCIe devices, such as BMC (Baseboard Management Controller). Figure 2 This is a flowchart of a parameter configuration method according to an embodiment of the present invention, such as... Figure 2 As shown, the process includes the following steps.

[0091] Step S201: Preset the retimer firmware for each Preset value.

[0092] In this embodiment, each PCIe device is equipped with a retimer.

[0093] A retimer is a hybrid digital-analog signal device that extracts the embedded clock from the input signal using its internal clock data recovery circuitry. It then retransmits the data using the complete, undamaged clock signal, thus fully recovering the data signal for retransmission. This method of recovering the data first and then retransmitting the signal through the serial channel effectively solves the signal attenuation problem. As an effective PCIe signal quality compensation solution, the retimer is finding increasingly widespread application.

[0094] For scenarios involving multiple PCIe devices, taking a GPU module as an example, it involves multiple corresponding Retimers. Based on the Retimer firmware (FW), the preset value of the PCIe signal can be adjusted to solve the signal attenuation problem. Therefore, in this embodiment, a retimer firmware (Retimer FW) is pre-set for each preset value; for example, P0 to P10 are one preset value, and corresponding retimer firmware is set for each, for a total of eleven retimer firmwares.

[0095] For example, the PCIe device is a GPU, and this embodiment is used to configure parameters of a GPU module containing multiple GPUs. Taking a GPU module containing eight GPUs as an example, the system architecture containing eight GPU modules can be found in [reference needed]. Figure 3 As shown.

[0096] like Figure 3 As shown, this system includes at least a motherboard module (MB), a GPU module, and a PCIe switch (SW). The CPU in the motherboard module provides the most basic PCIe resources. This example is a dual-CPU motherboard module, where each CPU can provide multiple PCIe 5.0 x16 resources.

[0097] Since the CPU can only provide limited PCIe resources, the system uses a PCIe Switch to provide richer PCIe expansion capabilities to meet the I / O needs of GPU modules, HCA (host channel adapter) cards, and other storage devices.

[0098] This GPU module contains eight GPU modules, and each GPU module has a corresponding Retimer added to its front end. It's understandable that after the GPU module passes through the PCIe switch, the PCIe link is extended, leading to attenuation and loss of PCIe signal quality. By adding a Retimer to the front end of the GPU module, the PCIe signal of the entire system link can be optimized.

[0099] Step S202: Set multiple combinations of first Preset values; the combination of first Preset values ​​includes the Preset values ​​of multiple PCIe devices.

[0100] For details, please refer to Figure 1 Step S101 of the illustrated embodiment will not be described again here.

[0101] Step S203: Configure the preset values ​​of multiple PCIe devices according to the first preset value combination, and perform a first test on the multiple PCIe devices to obtain the first test result.

[0102] Specifically, the above step S203 "configure the Preset values ​​of multiple PCIe devices according to the combination of the first Preset value" includes the following steps S2031 to S2032.

[0103] Step S2031: Take the retimer firmware corresponding to each Preset value in the first Preset value combination as the first target firmware; refresh the retimer firmware of the corresponding PCIe device according to the first target firmware.

[0104] To determine the optimal preset value for a PCIe device, it's necessary to test the device under different preset values, requiring frequent changes to the preset value. Currently, this is typically done manually, setting the preset value for each PCIe device. However, this manual method is inefficient when dealing with a large number of PCIe devices. This embodiment utilizes the firmware's ability to set preset values ​​for retimers. By self-refreshing each retimer, the preset value for the PCIe device can be automatically set, improving efficiency and enabling faster testing.

[0105] Specifically, for a given first set value combination, the retimer firmware corresponding to each set value can be determined. For ease of description, these retimer firmwares are referred to as the first target firmware. By updating the retimer of the corresponding PCIe device according to these first target firmwares, the retimer's set value can be set to the corresponding set value in the first set value combination, thereby enabling the configuration of the set value.

[0106] This parameter configuration method can be applied to devices capable of updating the re-timer firmware, such as BCM. Specifically, BCM can be used to build a structure for firmware flashing of the re-timer, still based on... Figure 3 Taking the parameter configuration of the GPU module shown as an example, the structure for firmware flashing can be found in [reference needed]. Figure 4 As shown.

[0107] like Figure 4 As shown, the BMC connects to the Retimer of each GPU front-end via an I2C link and an I2CSwitch. In this embodiment, the firmware corresponding to the eleven preset values ​​(P0 to P10) can be placed in the out-of-band system. The BMC acts as the master device, and the Retimer acts as the slave device. The I2C path is used as the refresh link, which connects to the downlink Retimer via an I2CSwitch (e.g., PCA9548). This allows the BMC to refresh the firmware of the Retimer corresponding to each GPU in the GPU module, thereby updating the firmware of the Retimer and its preset value.

[0108] Because the entire I2C link is quite long, the GPU module uses an I2C switch. This serves two purposes: firstly, to isolate cross-board signals and avoid issues such as leakage; and secondly, to enhance the I2C signal driving capability and resolve the Retimer I2C address conflict issue for the downstream GPU.

[0109] In some alternative implementations, the above step "flash the firmware of the retimer of the corresponding PCIe device according to the first target firmware" may specifically include the following step A1.

[0110] Step A1: Write the corresponding first target firmware to the PCIe device's retimer via the Redfish interface to refresh the firmware of the PCIe device's retimer.

[0111] In this embodiment, firmware updates are implemented using the BMC's Redfish interface. Specifically, based on the Redfish interface, the corresponding target firmware, i.e., the first target firmware, can be written to the retimer of each PCIe device, thereby achieving firmware self-refresh. After the firmware refresh and reboot, the PCIe device can then undergo its first test, performing a PCIe signal test.

[0112] Step S2032: Perform stress tests on multiple PCIe devices and obtain stress test results.

[0113] In this embodiment, a stress test is first performed on the PCIe device; that is, the first test is a stress test, and the corresponding first test result is the stress test result. By performing a stress test on the PCIe device, its stress resistance under different preset values ​​can be tested, thereby determining a subset of selectable preset values, i.e., effective preset values.

[0114] Furthermore, the stress test results include pass and fail. The test is simple and allows for relatively quick iteration through all preset values. It can be understood that the preset value corresponding to a pass (PASS) can be used as the valid preset value for the corresponding PCIe device.

[0115] Specifically, step S204, "determine the effective range of Preset values ​​that each PCIe device can be configured with based on the first test result," may include steps B1 to B2.

[0116] Step B1: Determine the Preset value for each PCIe device to pass the stress test based on the first test results.

[0117] Step B2: The Preset value that passes the stress test is used as the valid Preset value of the corresponding PCIe device, forming the valid Preset value range of the PCIe device.

[0118] Specifically, for each PCIe device, a stress test is conducted to determine whether it passes under eleven preset values. If a preset value passes the stress test, then that preset value is considered a valid preset. For example, if a PCIe device is subjected to a stress test with eleven preset values ​​from P0 to P10, and P1, P3, and P4 pass, while the other eight preset values ​​fail, then the valid preset values ​​for that PCIe device include: P1, P3, and P4.

[0119] Step S204: Determine the range of valid preset values ​​that each PCIe device can be configured with based on the first test results; each range of valid preset values ​​includes at least one valid preset value.

[0120] For details, please refer to Figure 1 Step S103 of the illustrated embodiment will not be described again here.

[0121] Step S205: Select a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination.

[0122] For details, please refer to Figure 1Step S104 of the illustrated embodiment will not be described again here.

[0123] Step S206: Configure the preset values ​​of multiple PCIe devices according to the combination of the second preset values, and perform a second test on the multiple PCIe devices to obtain the second test results; the second test is different from the first test.

[0124] Specifically, similar to step S203 above, step S206 "configure the Preset values ​​of multiple PCIe devices according to the combination of the second Preset value" includes the following steps S2061 to S2062.

[0125] Step S2061: Take the retimer firmware corresponding to each Preset value in the second Preset value combination as the second target firmware; refresh the retimer firmware of the corresponding PCIe device according to the second target firmware.

[0126] In this embodiment, similar to step S2031 above, for a certain combination of second Preset values, the re-timer firmware corresponding to each Preset value can be determined. For ease of description, these re-timer firmwares are referred to as second target firmware. By updating the re-timer of the corresponding PCIe device according to these second target firmwares, the Preset value of the re-timer can be set to the corresponding Preset value in the combination of second Preset values, thereby enabling the configuration of the Preset value.

[0127] Optionally, similar to step A1 above, the step "flash the firmware of the retimer of the corresponding PCIe device according to the second target firmware" may specifically include: writing the corresponding second target firmware to the retimer of the PCIe device based on the Redfish interface, so as to flash the firmware of the retimer of the PCIe device.

[0128] Step S2062: Perform attenuation tests on multiple PCIe devices to obtain attenuation test results.

[0129] In this embodiment, the PCIe device is first subjected to a stress test, followed by an attenuation test; that is, the second test is the attenuation test, and the corresponding result of the second test is the attenuation test result. By performing an attenuation test on the PCIe device, the signal attenuation of the PCIe device under different preset values ​​can be tested. Based on the more refined attenuation test results, the optimal preset value can be determined.

[0130] Step S207: Determine the optimal combination of second Preset values ​​based on the second test results corresponding to multiple combinations of second Preset values; the optimal combination of second Preset values ​​includes the optimal Preset value for each PCIe device.

[0131] For details, please refer to Figure 1 Step S106 of the illustrated embodiment will not be described again here.

[0132] Optionally, the corresponding test results can be obtained based on the application programming interface (API) functions of the PCIe device. Specifically, the step "obtaining the first test result" can include obtaining the first test result fed back by the PCIe device based on the PCIe device's API functions. Similarly, the step "obtaining the second test result" can include obtaining the second test result fed back by the PCIe device based on the PCIe device's API functions.

[0133] Specifically, BMC can use the Redfish interface and application programming interface functions to perform firmware updates and obtain test results with PCIe devices.

[0134] The parameter configuration method provided in this embodiment achieves out-of-band Retimer self-refresh through BMC and combines it with the system's in-band PCIe signal test results. This allows for initial screening of the retimer preset values. Based on the initial screening results, preset value combinations are further refined, and a second refresh of the retimer firmware is initiated. This completes the selection of the optimal preset value combination, ensuring the robustness of the PCIe link and enabling all PCIe devices to operate under the optimal PCIe link. Furthermore, an automated script can be set up to perform firmware self-refresh, eliminating the need for manual preset value setting and post-test result verification. This maximizes signal compensation for the entire system's PCIe link while saving testing costs and simplifying testing procedures.

[0135] This embodiment provides a parameter configuration method that can be used in devices capable of configuring parameters of PCIe devices, such as devices capable of controlling the PCIe devices, such as BMC (Baseboard Management Controller). Figure 5 This is a flowchart of a parameter configuration method according to an embodiment of the present invention, such as... Figure 5 As shown, the process includes the following steps.

[0136] Step S501: Preset the retimer firmware for each Preset value.

[0137] For details, please refer to Figure 2 Step S201 of the illustrated embodiment will not be described again here.

[0138] Step S502: Based on the range of Preset values, set multiple different combinations of first Preset values; each Preset value in the first Preset value combination is the same.

[0139] In this embodiment, the range of Preset values ​​includes eleven Preset values. For each Preset value, a first Preset value combination with all Preset values ​​being the same can be formed. That is, a first Preset value combination where each Preset value is P0, a first Preset value combination where each Preset value is P1, a first Preset value combination where each Preset value is P2, ..., a first Preset value combination where each Preset value is P10 can be formed, for a total of 11 first Preset value combinations.

[0140] Since the configuration of the Preset value is achieved by updating the re-timer firmware in this embodiment, and each Preset value corresponds to the same re-timer firmware, setting each Preset value in the first Preset value combination to be the same means that each time the firmware is refreshed based on the first Preset value combination, only one re-timer firmware needs to be used. That is, only one re-timer firmware needs to be provided to the device module, which can reduce the amount of data transmitted between the BMC and the device module and further improve the overall testing efficiency.

[0141] Step S503: Configure the preset values ​​of multiple PCIe devices according to the combination of the first preset value, and perform a first test on the multiple PCIe devices to obtain the first test result.

[0142] For details, please refer to Figure 1 Step S102 of the illustrated embodiment will not be described again here.

[0143] Specifically, if there are 11 possible combinations of first preset values, after performing the first test on a combination of first preset values, the corresponding first test result is recorded. Then, it is determined whether there are any other combinations of first preset values ​​that have not been tested, for example, whether 11 first tests have already been performed. If there are still untested combinations of first preset values, the first test is performed on the next combination of first preset values, and so on, until all combinations of first preset values ​​have been traversed, thus determining the first test result for each combination of first preset values.

[0144] Step S504: Determine the range of valid Preset values ​​that each PCIe device can be configured with based on the first test result; each range of valid Preset values ​​includes at least one valid Preset value.

[0145] For details, please refer to Figure 1 Step S103 of the illustrated embodiment will not be described again here.

[0146] Step S505: Select a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination.

[0147] Specifically, the above step S505, "selecting a valid Preset value from the range of valid Preset values ​​corresponding to each PCIe device to form a second Preset value combination", includes steps S5051 to S5052.

[0148] Step S5051: Determine the pending Preset value for each PCIe device; the pending Preset value is a valid Preset value within the valid Preset value range that has not undergone the second test.

[0149] When multiple PCIe devices exist, if each PCIe device corresponds to multiple valid preset values, then various combinations of second preset values ​​can be obtained based on these valid preset values. As shown in the example in step S104 above, if the valid preset values ​​corresponding to the three PCIe devices are P1, P2, P3, P4, and P4, P5 respectively, then 2 × 2 × 2 = 8 combinations of second preset values ​​can be formed. Although a second test can be performed on all combinations of second preset values ​​to select the optimal combination, this would result in low testing efficiency.

[0150] In this embodiment, the second test on valid Preset values ​​is avoided as much as possible. Specifically, valid Preset values ​​within the range of valid Preset values ​​that have not undergone the second test are referred to as "pending Preset values," and the second Preset value combination is mainly generated based on these pending Preset values.

[0151] It is understandable that initially, since all valid preset values ​​have not undergone the second test, all valid preset values ​​are undetermined preset values. As the second test progresses, the number of valid preset values ​​that have not undergone the second test gradually decreases, that is, the number of undetermined preset values ​​gradually decreases. When there are no undetermined preset values, it can be determined that the second test has been completed.

[0152] Step S5052: Select a pending Preset value for each PCIe device to form a second Preset value combination.

[0153] In this embodiment, each PCIe device has a corresponding valid Preset value range. Therefore, after each second test, the current pending Preset value of each PCIe device can be determined, thereby selecting a pending Preset value corresponding to each PCIe device and forming a second Preset value combination.

[0154] For example, the device module includes three PCIe devices. The valid preset values ​​corresponding to the first PCIe device include P1 and P2, the valid preset values ​​corresponding to the second PCIe device include P3 and P4, and the valid preset values ​​corresponding to the third PCIe device include P4 and P5. Initially, all valid preset values ​​are undetermined preset values ​​that have not undergone a second test. Therefore, for each PCIe device, one of the undetermined preset values ​​can be randomly selected as an element in the combination of second preset values.

[0155] For example, if P1 is selected from the pending preset values ​​corresponding to the first PCIe device, P3 is selected from the pending preset values ​​corresponding to the second PCIe device, and P4 is selected from the pending preset values ​​corresponding to the third PCIe device, then a second preset value combination [P1, P3, P4] can be formed, and the first second test can be performed based on this second preset value combination [P1, P3, P4]. It is understandable that the selected pending preset values ​​P1, P3, and P4 have all undergone the second test and are no longer pending preset values. Therefore, the pending preset value corresponding to the first PCIe device now only includes the remaining P2, the pending preset value corresponding to the second PCIe device only includes the remaining P4, and the pending preset value corresponding to the third PCIe device only includes the remaining P5. Selecting from the current pending preset values ​​again can generate a new combination of second preset values. Since each PCIe device corresponds to only one pending preset value, a unique combination of second preset values ​​can be generated: [P2, P4, P5]. Therefore, a second test is then performed based on this combination of second preset values ​​[P2, P4, P5].

[0156] In summary, a second test can be performed based on the second Preset value combination [P1,P3,P4], and then a second test can be performed again based on the same second Preset value combination [P2,P4,P5]. This way, the effective Preset value of each PCIe device can be tested, thereby determining the optimal Preset value for each PCIe device.

[0157] In cases where multiple PCIe devices exist, signal interference may occur between them. Therefore, after determining the optimal Preset value for each PCIe device, a second optimal combination of Preset values ​​is generated based on these optimal Preset values. An additional second test is then performed based on this optimal combination of Preset values ​​to verify whether it is truly optimal, thus avoiding inaccurate Preset value selection due to interference between PCIe devices.

[0158] In some optional implementations, the above step S5052, "selecting a pending Preset value corresponding to each PCIe device to form a second Preset value combination", may specifically include the following steps C1 to C4.

[0159] Step C1: Statistically analyze the pending Preset values ​​for all PCIe devices to determine the quantity of each type of pending Preset value.

[0160] In this embodiment, for all the current pending Preset values, the number of each pending Preset value can be determined by statistics. Subsequently, based on the number of these pending Preset values, a suitable pending Preset value can be selected to generate a second Preset value combination.

[0161] For example, if a device module includes three PCIe devices, the pending preset values ​​for the first PCIe device include P1 and P2, the pending preset values ​​for the second PCIe device include P3 and P4, and the pending preset values ​​for the third PCIe device include P4 and P5; by counting the pending preset values ​​of all PCIe devices, we can determine that: the number of P1 is 1, the number of P2 is 1, the number of P3 is 1, the number of P4 is 2, and the number of P5 is also 1.

[0162] Step C2: Perform a selectable preset value operation on the second PCIe device other than the first PCIe device until there are no second PCIe devices. The first PCIe device is the PCIe device for which a preset value has been selected, and the second PCIe device is the PCIe device whose corresponding preset value is different from any preset value corresponding to any of the first PCIe devices.

[0163] The above-mentioned "selecting a pending Preset value" operation specifically includes the following steps C21.

[0164] Step C21: For the second PCIe device with the largest number of pending Preset values, select the largest number of pending Preset values ​​as the Preset value corresponding to the second PCIe device in the combination of second Preset values.

[0165] In this embodiment, each time the second Preset value combination is determined, the pending Preset value corresponding to each PCIe device needs to be selected. For ease of description, during the process of determining the second Preset value combination, the PCIe device with the currently selected pending Preset value is referred to as the "first PCIe device". Furthermore, any pending Preset value corresponding to any other PCIe device besides the first PCIe device is different from any pending Preset value corresponding to any of the first PCIe devices. In this embodiment, this PCIe device is referred to as the "second PCIe device".

[0166] It is understandable that in the initial stage of determining a certain combination of second preset values, since no PCIe device has been selected yet, there is no first PCIe device at present, that is, all PCIe devices at present are second PCIe devices.

[0167] Therefore, in the initial stage, a process of selecting pending preset values ​​is performed on all PCIe devices. Specifically, if a PCIe device corresponds to the maximum number of pending preset values, then that maximum number of pending preset values ​​can be selected as the pending preset values ​​selected by that PCIe device. These pending preset values ​​are the elements in the combination of second preset values ​​that need to be determined. Subsequently, the PCIe device corresponding to that maximum number of pending preset values ​​becomes the first PCIe device.

[0168] For example, continuing with the previous example: the pending preset values ​​for the first PCIe device include P1 and P2; the pending preset values ​​for the second PCIe device include P3 and P4; and the pending preset values ​​for the third PCIe device include P4 and P5. At this point, the number of P1 is 1, the number of P2 is 1, the number of P3 is 1, the number of P4 is 2, and the number of P5 is also 1. Therefore, the maximum number of pending preset values ​​can be determined as P4. The PCIe devices corresponding to P4 include the second and third PCIe devices. Therefore, P4 can be used as the element selected by the second and third PCIe devices. The second preset value combination can then be represented as [x, P4, P4], where x represents the element that has not yet been selected.

[0169] After selecting P4 as the element for the second and third PCIe devices, these second and third PCIe devices become PCIe devices with currently selected preset values, effectively becoming first PCIe devices. At this point, the preset values ​​for all first PCIe devices include P3, P4, and P5, while the preset values ​​for the first PCIe device include P1 and P2. These preset values ​​are different from P3, P4, and P5; therefore, the first PCIe device remains a second PCIe device.

[0170] It is understandable that if the pending Preset value corresponding to the first PCIe device includes P5 in addition to P1 and P2, then P5 overlaps with P3, P4 and P5 mentioned above. Therefore, the first PCIe device is no longer the second PCIe device, that is, there is no second PCIe device at this time.

[0171] Furthermore, after selecting the preset values ​​corresponding to some PCIe devices based on the maximum number of pending preset values, the "selecting pending preset values ​​operation" is completed once; if there is a second PCIe device, the "selecting pending preset values ​​operation" is executed again, but there is no second PCIe device.

[0172] For example, continuing with the previous example: the pending preset values ​​for the first PCIe device include P1 and P2, the pending preset values ​​for the second PCIe device include P3 and P4, and the pending preset values ​​for the third PCIe device include P4 and P5. As mentioned above, after the first "selecting pending preset values" operation, only the first PCIe device remains as the second PCIe device, and the number of its corresponding pending preset values ​​P1 and P2 is 1 each. That is, P1 and P2 are the most numerous pending preset values, so any one of them can be selected as the pending preset value for the first PCIe device. For example, if P1 is selected, there are no longer any second PCIe devices, and the combination of second preset values ​​at this time is [P1, P4, P4].

[0173] Furthermore, when determining the second Preset value combination for the second time, since the first determined second Preset value combination was [P1, P4, P4], these Preset values ​​have already undergone the second test, so they are no longer pending Preset values. At this time, the pending Preset values ​​corresponding to the first PCIe device include P2, the pending Preset values ​​corresponding to the second PCIe device include P3, and the pending Preset values ​​corresponding to the third PCIe device include P5. Since the number of these three pending Preset values ​​is 1 and they are complementary and overlapping, the second second Preset value combination can be determined to be [P2, P3, P4], which is equivalent to repeating the "select pending Preset value operation" three times.

[0174] It should be noted that this embodiment only needs to count all pending Preset values ​​once; that is, it does not need to be counted repeatedly each time the "select pending Preset value operation" is performed. This is because the pending Preset values ​​of the first PCIe device and the second PCIe device in this embodiment have no overlap, and the two do not affect each other when counting the number of pending Preset values.

[0175] Step C3: After completing the operation of selecting pending Preset values, select the minimum number of pending Preset values ​​among all pending Preset values ​​corresponding to the third PCIe device as the Preset value corresponding to the third PCIe device in the second Preset value combination; the third PCIe device is all PCIe devices other than the PCIe devices whose pending Preset values ​​have been selected, and the third PCIe device corresponds to at least one pending Preset value.

[0176] In this embodiment, after one or more operations to select a pending Preset value, the maximum number of pending Preset values ​​can be selected as elements in the second Preset value combination. Subsequently, if there are still PCIe devices that do not select pending Preset values, and these PCIe devices currently correspond to at least one pending Preset value, then these PCIe devices are referred to as "third PCIe devices".

[0177] When selecting the pending preset value for the third PCIe device, if the selection is still based on the current maximum number of pending preset values, it may lead to a situation where duplicate preset values ​​are difficult to find in other combinations of second preset values ​​later. This would result in a need for more retimer firmware to achieve firmware self-refresh for all PCIe devices. Therefore, after performing the operation of selecting pending preset values, for any third PCIe device, the minimum number of pending preset values ​​is selected as the preset value corresponding to that third PCIe device.

[0178] For example, if a device module includes three PCIe devices A, B, and C, and the pending preset values ​​corresponding to PCIe device A include P1 and P2, the pending preset values ​​corresponding to PCIe device B include P2 and P3, and the pending preset values ​​corresponding to PCIe device C include P3 and P4; it can be understood that the number of pending preset values ​​P1, P2, P3, and P4 are 1, 2, 2, and 1, respectively.

[0179] Based on step C2 above, if P2 is taken as the maximum number of pending preset values, then PCIe device A and PCIe device B each have P2. After P2 is selected as the preset value for PCIe devices A and B, PCIe device C has P3, which is the same as the pending preset value corresponding to PCIe device B. Therefore, PCIe device C is no longer the second PCIe device; there is no second PCIe device at this point, meaning all pending preset value selection operations have been completed. At this point, PCIe device C remains unselected, thus becoming the third PCIe device. Since PCIe device C has pending preset values ​​P3 and P4, and the minimum number of pending preset values ​​is P4, P4 is taken as the pending preset value selected by PCIe device C. Therefore, the first combination of second preset values ​​is: [P2, P2, P4]. Furthermore, it can be understood that the second set value combination determined later is: [P1,P3,P3], that is, when performing the second test, only the two retimer firmware corresponding to P1 and P3 need to be used.

[0180] If the pending preset value for the third PCIe device is not selected based on step C3 above, the first combination of second preset values ​​is [P2, P2, P3], and the second combination of second preset values ​​is [P1, P3, P4]. Although only two retimer firmwares (the firmware corresponding to P2 and P3) are needed during the first second test, three retimer firmwares are needed during the second second test, namely the retimer firmwares corresponding to P1, P3, and P4. This is more retimer firmware than the [P1, P3, P3] combination mentioned above.

[0181] Step C4: Generate the second Preset value combination.

[0182] In this embodiment, after selecting the pending preset values ​​for all remaining third PCIe devices, the selection of all PCIe devices can be completed, thereby determining a second preset value combination, and then performing the corresponding second test. Afterwards, new second preset value combinations can be determined again based on the methods described in steps C1 to C4 above, until all valid preset values ​​have been traversed.

[0183] Optionally, the above step S5052 "selecting a pending Preset value corresponding to each PCIe device to form a second Preset value combination" may further include the following steps C5 to C6.

[0184] Step C5: If all valid Preset values ​​corresponding to the fourth PCIe device have been tested in the second test, determine the current optimal Preset value of the fourth PCIe device based on the obtained second test results.

[0185] In this embodiment, as described above, the third PCIe device corresponds to at least one pending preset value. Since different PCIe devices may correspond to different numbers of valid preset values, this results in different numbers of pending preset values ​​for different PCIe devices. Therefore, after determining the second preset value combination once or multiple times, all valid preset values ​​corresponding to some PCIe devices have undergone the second test. That is, the PCIe device does not correspond to any pending preset value, or in other words, the PCIe device corresponds to 0 pending preset values. For ease of description, the PCIe device that does not correspond to any pending preset value is referred to as the fourth PCIe device; that is, all valid preset values ​​corresponding to the fourth PCIe device have undergone the second test.

[0186] At this point, one or more second tests have been conducted, so the corresponding second test results can be obtained. Based on these second test results, the optimal Preset value corresponding to the fourth PCIe device can be temporarily determined, i.e., the current optimal Preset value.

[0187] Step C6: The current optimal Preset value is used as the Preset value corresponding to the fourth PCIe device in the second Preset value combination to form the second Preset value combination.

[0188] In this embodiment, when forming the second Preset value combination, although the fourth PCIe device does not correspond to any pending Preset value, the current optimal Preset value can be used as the Preset value selected by the fourth PCIe device. This allows the current optimal Preset value to be tested again to verify whether it is truly optimal.

[0189] For example, if a device module includes two PCIe devices A and B, and the undetermined preset values ​​for PCIe device A include P1 and P2, while the undetermined preset values ​​for PCIe device B include P2, P3, and P4, then following steps C1 to C4 above, the first combination of second preset values ​​can be determined as [P2, P2], and the second combination of second preset values ​​is [P1, P3] (or [P1, P4]). Since PCIe device B still has an untested undetermined preset value including P4, a third combination of second preset values ​​needs to be determined.

[0190] At this point, for PCIe device A, all its corresponding valid preset values ​​have undergone the second test, thus it is a fourth PCIe device. Based on the two second test results corresponding to the second preset value combinations [P2,P2] and [P1,P3], it can be determined which of the two valid preset values, P1 and P2, is the current optimal preset value for PCIe device A. Assuming P2 is the current optimal preset value for PCIe device A, then when generating the third second preset value combination, P2 is again used as the preset value corresponding to PCIe device A, thus forming the third second preset value combination: [P2,P4]. It can be understood that by performing the second test again based on this second preset value combination [P2,P4], the test results when the preset value of PCIe device A is set to P2 can be determined again, thus verifying whether P2 is the optimal preset value for PCIe device A. If P2 is not the optimal Preset value, then other new combinations of second Preset values ​​need to be set. For example, all combinations of second Preset values ​​can be iterated to determine how to set the Preset value of each PCIe device to ensure that each PCIe device has a good signal link.

[0191] Step S506: Configure the preset values ​​of multiple PCIe devices according to the combination of the second preset values, and perform a second test on the multiple PCIe devices to obtain the second test results; the second test is different from the first test.

[0192] For details, please refer to Figure 1 Step S105 of the illustrated embodiment will not be described again here.

[0193] Step S507: Determine the optimal combination of second Preset values ​​based on the second test results corresponding to multiple combinations of second Preset values; the optimal combination of second Preset values ​​includes the optimal Preset value for each PCIe device.

[0194] For details, please refer to Figure 1 Step S106 of the illustrated embodiment will not be described again here.

[0195] The parameter configuration method provided in this embodiment of the invention sets each preset value in the first preset value combination to be identical. Therefore, each time firmware is refreshed based on this first preset value combination, only one retimer firmware needs to be provided to the device module. This reduces the amount of data transmitted between the BMC and the device module, improving overall testing efficiency. First, a subset of PCIe device preset values ​​are selected based on the maximum number of undetermined preset values, and then a selection is made based on the minimum number of undetermined preset values. This ensures that the selected second preset value combination contains as many duplicate preset values ​​as possible, thereby reducing the need for retimer firmware during the second test and also improving the efficiency of the second test.

[0196] This embodiment also provides a parameter configuration device for implementing the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0197] This embodiment provides a parameter configuration device, such as... Figure 6 As shown, it includes:

[0198] The combination setting module 601 is used to set multiple combinations of first Preset values; the first Preset value combination includes the Preset values ​​of multiple PCIe devices.

[0199] The configuration test module 602 is used to configure the Preset values ​​of the plurality of PCIe devices according to the first Preset value combination, and to perform a first test on the plurality of PCIe devices to obtain a first test result;

[0200] Processing module 603 is configured to determine, based on the first test result, a range of valid Preset values ​​that each PCIe device can be configured with; each range of valid Preset values ​​includes at least one valid Preset value.

[0201] The combination setting module 601 is further configured to select a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination;

[0202] The configuration test module 602 is further configured to combine and configure the Preset values ​​of the plurality of PCIe devices according to the second Preset value, and perform a second test on the plurality of PCIe devices to obtain a second test result; the second test is different from the first test;

[0203] The processing module 603 is further configured to determine the optimal combination of second Preset values ​​based on the second test results corresponding to the multiple combinations of second Preset values; the optimal combination of second Preset values ​​includes the optimal Preset value for each PCIe device.

[0204] In some alternative implementations, the first test is a stress test with results including pass and fail; the second test is an attenuation test with results indicating signal attenuation.

[0205] The processing module 603 determines the effective preset value range that each PCIe device can be configured with based on the first test result, including:

[0206] Based on the first test results, determine the Preset value for each PCIe device to pass the stress test;

[0207] The Preset value that passes the stress test is taken as the effective Preset value of the corresponding PCIe device, forming the effective Preset value range of the PCIe device.

[0208] In some alternative implementations, the PCIe device includes a retimer; the device further includes:

[0209] The preset module is used to preset the retimer firmware for each Preset value;

[0210] The configuration test module 602 configures the Preset values ​​of the plurality of PCIe devices according to the first Preset value combination, including: taking the retimer firmware corresponding to each Preset value in the first Preset value combination as the first target firmware; and flashing the retimer firmware of the corresponding PCIe device according to the first target firmware.

[0211] The configuration test module 602 configures the Preset values ​​of the plurality of PCIe devices according to the second Preset value combination, including: taking the retimer firmware corresponding to each Preset value in the second Preset value combination as the second target firmware; and refreshing the retimer firmware of the corresponding PCIe device according to the second target firmware.

[0212] In some optional implementations, the configuration test module 602 performs firmware updates on the retimer of the corresponding PCIe device, including:

[0213] The corresponding target firmware is written to the retimer of the PCIe device via the Redfish interface to refresh the firmware of the retimer of the PCIe device.

[0214] The configuration test module 602 obtains a first test result, including: obtaining the first test result fed back by the PCIe device based on the application programming interface function of the PCIe device;

[0215] The configuration test module 602 obtains a second test result, including: obtaining a second test result fed back by the PCIe device based on the application programming interface function of the PCIe device.

[0216] In some optional implementations, the combination setting module 601 sets multiple first Preset value combinations, including: setting multiple different first Preset value combinations according to the value range of the Preset value; each Preset value in the first Preset value combination is the same.

[0217] In some optional implementations, the combination setting module 601 selects a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination, including:

[0218] Determine the pending Preset value for each PCIe device; the pending Preset value is a valid Preset value within the range of valid Preset values ​​that has not undergone the second test;

[0219] Each PCIe device is selected with a preset value to form a second set of preset values.

[0220] In some optional implementations, the combination setting module 601 selects a pending Preset value corresponding to each PCIe device to form a second Preset value combination, including:

[0221] The number of pending Preset values ​​for all the PCIe devices is determined by statistical analysis.

[0222] Perform a selectable preset value operation on the second PCIe device other than the first PCIe device until there are no more second PCIe devices; the first PCIe device is the PCIe device whose selected preset value has been selected, and the second PCIe device is the PCIe device whose corresponding preset value is different from any preset value corresponding to all the first PCIe devices.

[0223] After performing the operation of selecting pending Preset values, the minimum number of pending Preset values ​​among all pending Preset values ​​corresponding to the third PCIe device is selected as the Preset value corresponding to the third PCIe device in the second Preset value combination; the third PCIe device is all PCIe devices other than the PCIe devices whose pending Preset values ​​have been selected, and each third PCIe device corresponds to at least one pending Preset value;

[0224] Generate the second Preset value combination;

[0225] The operation of selecting the undetermined Preset value includes:

[0226] For the second PCIe device corresponding to the maximum number of undetermined Preset values, the maximum number of undetermined Preset values ​​are selected as the Preset values ​​corresponding to the second PCIe device in the second Preset value combination.

[0227] In some optional implementations, the combination setting module 601 selects a pending Preset value corresponding to each PCIe device to form a second Preset value combination, including:

[0228] If the second test has been performed on all valid preset values ​​corresponding to the fourth PCIe device, the current optimal preset value of the fourth PCIe device is determined based on the obtained second test results.

[0229] The current optimal Preset value is used as the Preset value corresponding to the fourth PCIe device in the second Preset value combination to form the second Preset value combination.

[0230] Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.

[0231] In this embodiment, the parameter configuration device is presented in the form of a functional unit. Here, a unit refers to an ASIC (Application Specific Integrated Circuit) circuit, including a processor and memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.

[0232] This invention also provides a computer device having the above-described features. Figure 6 The device with the parameters shown is configured as described.

[0233] Please see Figure 7 , Figure 7 This is a schematic diagram of the structure of a computer device provided in an optional embodiment of the present invention, such as... Figure 7 As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 7 Take a processor 10 as an example.

[0234] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.

[0235] The memory 20 stores instructions executable by at least one processor 10 to cause the at least one processor 10 to perform the method shown in the above embodiments.

[0236] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.

[0237] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 20 may also include a combination of the above types of memory.

[0238] The computer device also includes an input device 30 and an output device 40. The processor 10, memory 20, input device 30, and output device 40 can be connected via a bus or other means. Figure 7 Taking the example of a connection between China and Israel via a bus.

[0239] Input device 30 can receive input numerical or character information, and generate key signal inputs related to user settings and function control of the computer device, such as a touchscreen, keypad, mouse, trackpad, touchpad, joystick, one or more mouse buttons, trackball, joystick, etc. Output device 40 may include display devices, auxiliary lighting devices (e.g., LEDs), and haptic feedback devices (e.g., vibration motors). The aforementioned display devices include, but are not limited to, liquid crystal displays, light-emitting diodes, displays, and plasma displays. In some alternative embodiments, the display device may be a touchscreen.

[0240] This invention also provides a computer-readable storage medium. The methods described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded via a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code, which, when accessed and executed by the computer, processor, or hardware, implements the methods shown in the above embodiments.

[0241] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined by the appended claims.

Claims

1. A method for configuring parameters, characterized in that, The method includes: Set multiple combinations of first Preset values; the first Preset value combinations include the Preset values ​​of multiple PCIe devices; Configure the Preset values ​​of the plurality of PCIe devices according to the combination of the first Preset value, and perform a first test on the plurality of PCIe devices to obtain a first test result; Based on the first test results, determine the effective preset value range that each PCIe device can be configured with; each effective preset value range includes at least one effective preset value; Select a valid Preset value from the range of valid Preset values ​​corresponding to each PCIe device to form a second Preset value combination; Configure the preset values ​​of the plurality of PCIe devices according to the combination of the second preset values, and perform a second test on the plurality of PCIe devices to obtain a second test result; the second test is different from the first test; Based on the second test results corresponding to multiple combinations of the second Preset values, the optimal combination of the second Preset values ​​is determined; the optimal combination of the second Preset values ​​includes the optimal Preset value for each PCIe device. The first test is a stress test with results including pass and fail; the second test is an attenuation test with results indicating signal attenuation. The step of determining the effective preset value range that each PCIe device can be configured with based on the first test result includes: Based on the first test results, determine the Preset value for each PCIe device to pass the stress test; The Preset value that passes the stress test is taken as the effective Preset value of the corresponding PCIe device, forming the effective Preset value range of the PCIe device. The PCIe device is equipped with a retimer; the method further includes: Preset timer firmware for each Preset value; The step of configuring the Preset values ​​of the plurality of PCIe devices according to the first Preset value includes: The retimer firmware corresponding to each Preset value in the first Preset value combination is used as the first target firmware; the retimer firmware of the corresponding PCIe device is refreshed according to the first target firmware; The step of configuring the Preset values ​​of the plurality of PCIe devices according to the second Preset value includes: The retimer firmware corresponding to each Preset value in the second Preset value combination is used as the second target firmware; the retimer firmware of the corresponding PCIe device is refreshed according to the second target firmware.

2. The method according to claim 1, characterized in that, The firmware update for the retimer of the corresponding PCIe device includes: The corresponding target firmware is written to the retimer of the PCIe device via the Redfish interface to refresh the firmware of the retimer of the PCIe device. The process of obtaining the first test result includes: obtaining the first test result fed back by the PCIe device based on the application programming interface function of the PCIe device; Obtaining the second test result includes: obtaining the second test result fed back by the PCIe device based on the application programming interface function of the PCIe device.

3. The method according to claim 1, characterized in that, The setting of multiple combinations of first Preset values ​​includes: Based on the range of Preset values, multiple different combinations of first Preset values ​​are set; each Preset value in the first Preset value combination is the same.

4. The method according to claim 1, characterized in that, The step of selecting a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination includes: Determine the pending Preset value for each PCIe device; the pending Preset value is a valid Preset value within the range of valid Preset values ​​that has not undergone the second test; Each PCIe device is selected with a preset value to form a second set of preset values.

5. The method according to claim 4, characterized in that, The step of selecting a pending Preset value corresponding to each of the PCIe devices to form a second Preset value combination includes: The number of pending Preset values ​​for all the PCIe devices is determined by statistical analysis. Perform a selectable preset value operation on the second PCIe device other than the first PCIe device until there are no more second PCIe devices; the first PCIe device is the PCIe device whose selected preset value has been selected, and the second PCIe device is the PCIe device whose corresponding preset value is different from any preset value corresponding to all the first PCIe devices. After performing the operation of selecting pending Preset values, the minimum number of pending Preset values ​​among all pending Preset values ​​corresponding to the third PCIe device is selected as the Preset value corresponding to the third PCIe device in the second Preset value combination; the third PCIe device is all PCIe devices other than the PCIe devices whose pending Preset values ​​have been selected, and each third PCIe device corresponds to at least one pending Preset value; Generate the second Preset value combination; The operation of selecting the undetermined Preset value includes: For the second PCIe device corresponding to the maximum number of undetermined Preset values, the maximum number of undetermined Preset values ​​are selected as the Preset values ​​corresponding to the second PCIe device in the second Preset value combination.

6. The method according to claim 4, characterized in that, The step of selecting a pending Preset value corresponding to each of the PCIe devices to form a second Preset value combination includes: If the second test has been performed on all valid preset values ​​corresponding to the fourth PCIe device, the current optimal preset value of the fourth PCIe device is determined based on the obtained second test results. The current optimal Preset value is used as the Preset value corresponding to the fourth PCIe device in the second Preset value combination to form the second Preset value combination.

7. A parameter configuration device, characterized in that, The device includes: The combination setting module is used to set multiple combinations of first Preset values; the first Preset value combination includes the Preset values ​​of multiple PCIe devices. A configuration test module is configured to combine and configure the Preset values ​​of the plurality of PCIe devices according to the first Preset value, and perform a first test on the plurality of PCIe devices to obtain a first test result; The processing module is configured to determine, based on the first test result, the effective Preset value range that each PCIe device can be configured with; each effective Preset value range includes at least one effective Preset value; The combination setting module is further configured to select a valid Preset value from the valid Preset value range corresponding to each PCIe device to form a second Preset value combination; The configuration test module is further configured to combine the Preset values ​​of the plurality of PCIe devices according to the second Preset value, and perform a second test on the plurality of PCIe devices to obtain a second test result; the second test is different from the first test; The processing module is further configured to determine the optimal combination of second Preset values ​​based on the second test results corresponding to multiple combinations of second Preset values; the optimal combination of second Preset values ​​includes the optimal Preset value for each PCIe device; The first test is a stress test with results including pass and fail; the second test is an attenuation test with results indicating signal attenuation. The processing module determines the effective preset value range that each PCIe device can be configured with based on the first test result, including: Based on the first test results, determine the Preset value for each PCIe device to pass the stress test; The Preset value that passes the stress test is taken as the effective Preset value of the corresponding PCIe device, forming the effective Preset value range of the PCIe device. The PCIe device is equipped with a re-timer; the device also includes: The preset module is used to preset the retimer firmware for each Preset value; The configuration test module configures the Preset values ​​of the multiple PCIe devices according to the first Preset value, including: The retimer firmware corresponding to each Preset value in the first Preset value combination is used as the first target firmware; the retimer firmware of the corresponding PCIe device is refreshed according to the first target firmware; The configuration test module configures the Preset values ​​of the multiple PCIe devices according to the second Preset value, including: The retimer firmware corresponding to each Preset value in the second Preset value combination is used as the second target firmware; the retimer firmware of the corresponding PCIe device is refreshed according to the second target firmware.

8. A computer device, characterized in that, include: A memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, the processor executing the computer instructions to perform the parameter configuration method of any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for causing a computer to perform the parameter configuration method according to any one of claims 1 to 6.