A method of data processing, computing device, and computer-readable storage medium

By acquiring and storing memory SPD information in computing devices, and utilizing identifier matching and verification fault tolerance functions, the problem of memory capacity reduction caused by memory CRC check errors is solved, thereby improving the performance of computing devices and reducing costs.

CN115373748BActive Publication Date: 2026-05-15XFUSION DIGITAL TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
XFUSION DIGITAL TECH CO LTD
Filing Date
2022-07-13
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing technologies cause unnecessary reduction in memory capacity during computer startup due to CRC check errors in the memory SPD information, affecting the performance of computing devices and increasing manpower and equipment costs.

Method used

By obtaining the SPD information of the memory, it is determined whether the fault tolerance function is enabled, and the initialization data and identifier are saved. If the verification fails, the second initialization data with the same identifier that has passed the verification is found and the memory is initialized to avoid unnecessary reduction of memory capacity.

Benefits of technology

It improves the performance of computing devices, reduces the frequency of memory isolation and replacement, and reduces labor and equipment costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115373748B_ABST
    Figure CN115373748B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a data processing method, a computing device and a computer readable storage medium, which are used to avoid unnecessary memory capacity reduction, and thus improve computer performance. The method comprises obtaining first SPD information of a first memory, the first SPD information comprising first initialization data and a first identifier; checking the first initialization data, and if the first initialization data fails to pass the check, obtaining second initialization data, wherein the second initialization data is contained in second SPD information of a second memory, the second SPD information further comprising a second identifier, the second identifier being the same as the first identifier, and the second initialization data passing the check; and initializing the first memory according to the second initialization data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computers, and more particularly to a data processing method, a computing device, and a computer-readable storage medium. Background Technology

[0002] Computer memory acts as a bridge between the central processing unit (CPU) and other components, and its capacity is closely related to computer performance. Memory modules are equipped with serial presence detect (SPD) information, which is primarily used for memory initialization. During the basic input / output system (BIP) startup phase of each computer boot, the read SPD information is subjected to a cyclic redundancy check (CRC), and the availability of memory is determined based on the check result. However, this method can lead to unnecessary reduction in memory capacity, thereby affecting the performance of the computing device. Summary of the Invention

[0003] This application provides a data processing method, a computing device, and a computer-readable storage medium to avoid unnecessary reduction in memory capacity, thereby improving the performance of the computing device.

[0004] A first aspect of the present invention provides a data processing method, comprising: acquiring first SPD information of a first memory, the first SPD information including first initialization data and a first identifier; verifying the first initialization data; if the first initialization data fails verification, acquiring second initialization data, wherein the second initialization data is contained in second SPD information of the second memory, the second SPD information further including a second identifier, the second identifier being the same as the first identifier, and the second initialization data passing verification; and initializing the first memory according to the second initialization data.

[0005] This method obtains first initialization device (SPD) information from the first memory, which includes first initialization data and a first identifier. The first initialization data is validated. If the validation fails, second initialization data is obtained, which is contained within second SPD information in the second memory. The second SPD information also includes a second identifier, which is identical to the first identifier. If the second initialization data passes validation, the first memory is initialized based on the second initialization data. This ensures that if the first initialization data fails validation, the first memory can be initialized using the second initialization data, which has the same identifier and passes validation, thus avoiding unnecessary reduction in memory capacity and improving the performance of the computing device.

[0006] In one possible implementation of the first aspect, the method further includes: obtaining a second parameter; the second initialization data passing the verification includes: when the second parameter is a second preset value, the second initialization data passes the verification. This method records whether the initialization data passes the verification through the second parameter, and uses the value of the second parameter to determine whether the initialization data passes the verification, which can accurately obtain the second initialization data that has passed the verification, thus improving the efficiency of data processing.

[0007] In a possible implementation of the first aspect, obtaining the second initialization data includes: determining whether the first identifier and the second identifier are the same; if the first identifier and the second identifier are the same, determining whether the second parameter is a second preset value; if the second parameter is a second preset value, obtaining the second initialization data.

[0008] This method saves a second parameter, which indicates whether the second initialization data has passed verification. By determining if the first and second identifiers are the same, the range is narrowed down. Then, it checks if the second parameter is a second preset value. If the second identifier is the same as the first identifier and the second parameter is the second preset value, the second initialization data is obtained. By using the second parameter, the verified second initialization data is accurately obtained, improving data processing efficiency.

[0009] In a possible implementation of the first aspect, obtaining the second initialization data includes: determining whether the second parameter is a second preset value; if the second parameter is a second preset value, determining whether the first identifier and the second identifier are the same; if the first identifier and the second identifier are the same, obtaining the second initialization data.

[0010] This method saves a second parameter, which indicates whether the first initialization data is valid. It first checks if the second parameter is a second preset value to narrow the search range. Then, it checks if the first identifier and the second identifier are the same. If they are the same, the second initialization data is obtained. By first checking if the value of the second parameter meets the requirements, the search range for the second identifier is narrowed, improving the efficiency of data retrieval.

[0011] In a possible implementation of the first aspect, the method further includes: obtaining a first parameter; and saving the first initialization data, the first identifier, and the mapping relationship between the first initialization data and the first identifier. This method obtains the first parameter and, when the first parameter equals a first preset value, saves the first initialization data, the first identifier, and the mapping relationship between the first initialization data and the first identifier. Utilizing the value of the first parameter to determine whether to enable the fault tolerance function improves the flexibility of the solution.

[0012] In one possible implementation of the first aspect, obtaining the first parameter includes: responding to an operation command for the first parameter and obtaining the first parameter. This method provides a user interface and obtains the first parameter in response to the user's operation command for the first parameter. It offers multiple options for obtaining the first parameter, improving the feasibility and interactivity of the solution.

[0013] In a possible implementation of the first aspect, if the first initialization data verification passes, the first initialization data and the first identifier are saved, and the first memory is initialized according to the first initialization data.

[0014] In one possible implementation of the first aspect, initializing the first memory based on the second initialization data includes: verifying the second initialization data; if the second initialization data passes the verification, initializing the first memory based on the second initialization data. This method verifies the second initialization data before initializing the first memory based on it; if the second initialization data passes the verification, the first memory is then initialized based on the second initialization data. Performing verification before initializing the first memory using the second initialization data avoids frame drops and other issues during data transmission and recording, thus improving data stability.

[0015] In one possible implementation of the first aspect, the method further includes: determining whether the first initialization data has been verified, wherein the first initialization data is the initialization data corresponding to any memory location in the computing device; if the first initialization data has not been verified, verifying the first initialization data. This method avoids the situation of missing some memory by determining whether there is any initialization data in the computer that has not been verified.

[0016] In one possible implementation of the first aspect, the method further includes: if the first identifier and the second identifier are different, or the second parameter and the second preset value are different, the first memory is isolated.

[0017] A second aspect of the present invention provides a computing device including a plurality of memory modules, a non-volatile memory, and a processor, wherein the non-volatile memory is coupled to the processor and the plurality of memory modules respectively; the non-volatile memory stores BIOS firmware; the plurality of memory modules include a first memory and a second memory; the first memory stores first SPD information of the first memory; the second memory stores second SPD information of the second memory; the first SPD information includes first initialization data and a first identifier; and the second SPD information includes second initialization data and a second identifier.

[0018] The processor is used to run the BIOS firmware during the power-on startup process of the computing device;

[0019] The BIOS firmware is used to obtain the first SPD information and verify the first initialization data. If the first initialization data fails verification, the second initialization data is obtained, wherein the second identifier is the same as the first identifier, and the second initialization data passes verification.

[0020] The BIOS firmware is used to initialize the first memory according to the second initialization data.

[0021] In a possible implementation of the second aspect, the BIOS firmware is further used to obtain the second parameter;

[0022] The second initialization data is validated including:

[0023] When the second parameter is a second preset value, the second initialization number passes the verification.

[0024] In a possible implementation of the second aspect, the BIOS firmware is further configured to save the first initialization data and the first identifier if the first initialization data verification passes, and initialize the first memory according to the first initialization data.

[0025] In a possible implementation of the second aspect, the BIOS firmware is further used to determine whether the first initialization data has been verified, wherein the first initialization data is the initialization data corresponding to any memory in the computing device;

[0026] If the first initialization data fails verification, the first initialization data is verified. A third aspect of the present invention provides a computing device, comprising: an acquisition unit configured to acquire first SPD information of a first memory, the first SPD information including first initialization data and a first identifier; a verification unit configured to verify the first initialization data; the acquisition unit is further configured to acquire second initialization data if the first initialization data verification fails, wherein the second initialization data is contained within second SPD information of a second memory, the second SPD information further including a second identifier, the second identifier being the same as the first identifier, and the second initialization data passing verification; and an initialization unit initializing the first memory according to the second initialization data.

[0027] In a possible implementation of the third aspect, the acquiring unit is further configured to acquire the second parameter; the second initialization data is verified through:

[0028] When the second parameter is a second preset value, the second initialization number passes the verification.

[0029] In a possible implementation of the third aspect, the acquisition unit is specifically used to determine whether the first identifier and the second identifier are the same; if the first identifier and the second identifier are the same, determine whether the second parameter is a second preset value; if the second parameter is a second preset value, obtain the first initialization data according to the first mapping relationship.

[0030] In a possible implementation of the third aspect, the acquisition unit is specifically used to: determine whether the second parameter is a second preset value; if the second parameter is a second preset value, determine whether the first identifier and the second identifier are the same; if the first identifier and the second identifier are the same, acquire the first initialization data according to the first mapping relationship.

[0031] In a possible implementation of the third aspect, the acquisition unit is further used to acquire the first parameter; the storage unit is specifically used to store the first initialization data, the first identifier, and the mapping relationship between the first initialization data and the first identifier if the first parameter is equal to the first preset value.

[0032] In a possible implementation of the third aspect, the verification unit is specifically used to verify the first initialization data; the initialization unit is specifically used to initialize the second memory according to the first initialization data if the first initialization data passes the verification.

[0033] A fourth aspect of this application provides a computing device, comprising: a processor and a memory; the memory for storing computer execution instructions; and the processor for executing the computer execution instructions stored in the memory to cause the computing device to perform any of the methods described in the first aspect or possible implementations of the first aspect.

[0034] The fifth aspect of this application provides a computer-readable storage medium including instructions that, when executed on a computer, cause the computer to perform any one of the methods described in the first aspect or any possible implementation thereof. Attached Figure Description

[0035] Figure 1 A schematic diagram of a computing device system architecture to which the solutions provided in the embodiments of this application are applicable;

[0036] Figure 2 A schematic diagram of a computer startup process provided in an embodiment of this application;

[0037] Figure 3 A schematic diagram of a memory initialization process provided in this application;

[0038] Figure 4 A schematic flowchart of a data processing method provided in an embodiment of this application;

[0039] Figure 5An interactive schematic diagram illustrating the verification and fault tolerance provided in this application embodiment;

[0040] Figure 6 A schematic diagram of an SPD information list provided in an embodiment of this application;

[0041] Figure 7 Another schematic diagram of the SPD information list provided in the embodiments of this application;

[0042] Figure 8 Another flowchart illustrating the data processing method provided in this application embodiment;

[0043] Figure 9 Another schematic diagram of the SPD information list provided in the embodiments of this application;

[0044] Figure 10 A schematic diagram of the structure of a computing device provided in an embodiment of this application;

[0045] Figure 11 This is another schematic diagram of the structure of the computing device provided in the embodiments of this application. Detailed Implementation

[0046] The embodiments of this application are described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. As those skilled in the art will understand, with the development of technology and the emergence of new scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.

[0047] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0048] Please see Figure 1 , Figure 1 This is a schematic diagram of a computing device system architecture to which the solution provided in the embodiments of this application is applicable.

[0049] Computing devices may include one or more CPUs, multiple memory modules, multiple high-speed serial computer expansion bus (PCIE) cards, an integrated southbridge (PCH), a universal serial bus (USB), hard disks, and flash memory.

[0050] For example, in combination Figure 1 As shown, the computing device may include CPU1, CPU2, multiple memory modules, PCIe card, PCHUSB, hard disk, and FLASH.

[0051] CPU1 is electrically connected to two memory modules, a PCIe card, and the PCH. The PCH is electrically connected to the USB, FLASH, and hard drive.

[0052] CPU2 is electrically connected to the two memory modules and the PCIe card, respectively.

[0053] It should be noted that computing devices can be servers, computers, or other devices with data processing capabilities. The description of computing devices here is for illustrative purposes only; in practical applications, there are no restrictions on the number of components or the connection methods between them. The specific hardware configuration of the computing device can be adjusted according to actual needs.

[0054] Based on this system architecture, please refer to the process executed by the computer during startup. Figure 2 , Figure 2 This is a schematic diagram illustrating a computer startup process provided in an embodiment of this application. After the computer is powered on, it enters the startup process. The CPU loads and executes the BIOS firmware from the FLASH memory, and obtains SPD information from the non-volatile memory space. It then sequentially performs chip initialization, memory initialization, device scanning and loading, driver scanning and loading, and starts the operating system, etc. Figure 1 The described FLASH is one possibility for non-volatile storage. Non-volatile storage chips can also be electrically erasable programmable read-only memory (EEPROM) or non-volatile random access memory (NVRAM).

[0055] In this system architecture, SPD information, as essential for memory initialization, needs to be written to memory during the memory initialization phase. Please refer to [link / reference]. Figure 3 , Figure 3 This is a schematic diagram illustrating a memory initialization process provided in this application. After the computer boots up, it enters the BIOS boot state. The BIOS performs a CRC check on the SPD information corresponding to each memory. If the checksum calculated from the SPD information is the same as the checksum carried in the SPD information, it means that the SPD information has passed the CRC check, and the SPD information is written to the corresponding memory, making the memory available after this boot. If the checksum calculated from the SPD information is different from the checksum carried in the SPD information, it means that an error has occurred in the CRC check, and the memory is isolated and disabled, making the memory unusable after this boot.

[0056] However, since an error in the CRC checksum of the SPD information does not necessarily indicate a problem with other memory components, situations arise where memory is available but still isolated. This inevitably leads to reduced usable memory capacity and increased memory failure rates. Furthermore, the need for manual replacement of isolated memory increases unnecessary manpower and equipment costs. Therefore, reducing the likelihood of this situation and avoiding unnecessary memory capacity reduction, as well as minimizing the manpower and equipment costs associated with replacing isolated memory, are crucial issues that technical personnel need to address.

[0057] The proposed solution, after obtaining the SPD information corresponding to the memory, saves the correctly verified initialization data and the corresponding identifier of the memory. When an error occurs in the verification of the SPD information of the second memory, it checks if a first memory with the same identifier exists. If the first initialization data of the first memory passes the verification, it uses the first initialization data to initialize the second memory. This avoids unnecessary memory capacity reduction caused by SPD information verification errors. For details, please refer to... Figure 4 , Figure 4 This is a schematic flowchart of a data processing method provided in an embodiment of this application.

[0058] 401. Obtain SPD information;

[0059] When the computer is turned on, the BIOS firmware starts running and obtains the SPD information stored on the non-volatile memory chips of each memory. The SPD information may include the initialization data of the corresponding memory, the memory identifier, manufacturer, capacity, operating frequency, operating voltage and operation timing, etc. The initialization data may include information used for memory initialization, such as memory operating voltage and memory operation timing.

[0060] The memory identifier can be the memory product model (part number, PN) or any identifier set by the user for the memory; there are no restrictions here.

[0061] 402. Determine whether the fault tolerance function is enabled;

[0062] Obtain the first parameter, which is used to determine whether the SPD's fault tolerance function is enabled. Please refer to [link / reference] for details. Figure 5 , Figure 5 This is an interactive schematic diagram illustrating the fault tolerance verification provided in an embodiment of this application. The first parameter is stored in a variable storage space within the FLASH area of ​​the BIOS firmware. After the user sets whether the fault tolerance verification function of the SPD is enabled in the interactive interface, if the fault tolerance verification function of the SPD is enabled, the first parameter is 1; if the fault tolerance verification function of the SPD is not enabled, the first parameter is 0. Whether the fault tolerance verification function of the SPD is enabled is determined by judging whether the value of the first parameter is 1. It can be understood that 1 here is a first preset value.

[0063] Optionally, if the user does not configure whether to enable the fault tolerance function through the fault tolerance interface, the fault tolerance function will be enabled by default.

[0064] If the first parameter is 1, the SPD's verification and fault tolerance function is enabled, and step 403 is executed.

[0065] If the first parameter is 0, the SPD's verification and fault tolerance function is not enabled, and step 410 is executed.

[0066] It should be noted that the specific numerical description of the first preset value here is only an example. In actual applications, the selectable range of the first parameter and the value of the first preset value used to indicate the activation of the SPD's verification and fault tolerance function can be set according to requirements. There are no restrictions here.

[0067] It should be noted that the order of steps 401 and 402 here is only an example. In actual applications, the order of steps 401 and 402 is not restricted. Furthermore, step 402 is an optional step. In actual applications, step 403 can be executed directly after step 401 is completed. There are no specific restrictions here.

[0068] This method obtains a first parameter and enables the fault tolerance function when the first parameter equals a first preset value. By using the value of the first parameter to determine whether to enable the fault tolerance function, the flexibility of the solution is improved, allowing users to configure whether to enable the fault tolerance function according to their needs.

[0069] 403. Save initialization data and memory identifiers;

[0070] After confirming that the SPD's fault tolerance function is enabled, save the initialization data and memory identifiers. Save the initialization data of all memory on the computer and the corresponding memory identifiers. For an example, please refer to [link to example]. Figure 6 , Figure 6This is a schematic diagram of an SPD information list provided in an embodiment of this application. The diagram records memory numbers, initialization data, and memory identifiers. Memory 1 is mapped to initialization data 1, initialization data 1 is mapped to identifier 1, memory 2 is mapped to initialization data 2, initialization data 2 is mapped to identifier 2, ..., memory N is mapped to initialization data N, and initialization data N is mapped to identifier N. This mapping relationship is the first mapping relationship.

[0071] It is important to note that Figure 6 This is merely an illustration of the relationship between initialization data and memory identifiers. In practical applications, the initialization data and memory identifiers, as well as the mapping relationship between initialization data and memory identifiers, can be recorded and saved in other forms, and no limitation is made here.

[0072] 404. Perform CRC check on the initialization data;

[0073] After saving the initialization data and memory identifiers, a CRC check is performed on the initialization data corresponding to each memory in the computing device. Let the memory currently being checked be the first memory, which can be any memory among all memory locations. The SPD information corresponding to the first memory is called the first SPD information, which includes the first initialization data and the first identifier. The CRC check on the first initialization data is performed by extracting the first checksum and the first checksum from the first initialization data, calculating the second checksum using a preset CRC checksum rule. If the first checksum and the second checksum are the same, the first initialization data passes the CRC check. The first initialization data is then marked as CRC-passed initialization data in the SPD information list, and step 405 is executed.

[0074] If the first checksum is different from the second checksum, the first initialization data fails the CRC check. In the SPD information list, the first initialization data is marked as initialization data that fails the CRC check, and step 406 is executed.

[0075] It should be noted that, in other embodiments, the initialization data corresponding to each memory in the computing device can also be verified by means other than CRC check.

[0076] Specifically, a second parameter can be added to the SPD information list to indicate whether the initialization data passes the CRC check. If it passes, a 1 is recorded after the initialization data; if it fails, a 0 is recorded. That is, when the second parameter is 1, it indicates that the initialization data has passed the CRC check; when the second parameter is 0, it indicates that the initialization data has failed the CRC check. 1 represents a second preset value. There is a second mapping relationship between the second parameter and the corresponding initialization data. Please refer to the SPD information list. Figure 7 , Figure 7 Another schematic diagram of the SPD information list provided in the embodiments of this application. This diagram is in... Figure 6 A flag that passes CRC verification has been added to the existing one.

[0077] It should be noted that the specific value of the second parameter described here is only an example. In actual applications, the second parameter can be set to indicate the value when the initialization data passes the CRC check and the value when the initialization data fails the CRC check, depending on the actual situation. There are no restrictions here.

[0078] This method uses a second parameter to record whether the first initialization data passes the CRC check, and uses the value of the second parameter to determine whether the initialization data passes the CRC check. This allows for the accurate acquisition of the second initialization data that passes the CRC check, thus improving the efficiency of data processing.

[0079] 405. Initialize the first memory according to the first initialization data;

[0080] After completing the CRC check of the first initialization data, if the first initialization data passes the check, the first memory is initialized based on the first initialization data.

[0081] 406. Determine if second initialization data exists;

[0082] When the first checksum is different from the second checksum, Figure 7 The system checks if second initialization data exists in the SPD information list shown. It should be noted that the second initialization data refers to the initialization data in the second SPD information of the second memory. The second memory can be any memory location recorded in the SPD information list other than the first memory. The second SPD information also includes a second identifier. If the second identifier is the same as the first identifier, and the second initialization data is marked as initialization data that has passed the CRC check, then the second initialization data exists. The second initialization data being marked as initialization data that has passed the CRC check means that the third checksum carried by the second initialization data is the same as the fourth checksum. The fourth checksum is a checksum calculated according to a preset CRC checksum rule and the second initialization data.

[0083] In addition, the SPD information list carries a first mapping relationship between the second initialization data and the second identifier. Therefore, the second identifier with the same identifier can be found through the first identifier, and then the second initialization data can be found through the first mapping relationship.

[0084] It should be noted that there are several ways to determine whether second initialization data exists. The first method is: [The text abruptly ends here, likely due to an incomplete sentence or a formatting error.] Figure 7 The existence of second initialization data is determined by traversing the initialization data in the SPD information list shown.

[0085] For example, any initialization data in the SPD information list is selected as the second initialization data. A second identifier is obtained through the first mapping relationship corresponding to the second initialization data. It is then determined whether the second identifier corresponding to the second initialization data is the same as the first identifier. If the second identifier is different from the first identifier, the next initialization data is selected as the second initialization data. If the second identifier is the same as the first identifier, a second parameter is obtained through the second mapping relationship. It is then determined whether the second parameter corresponding to the second initialization data is a second preset value. If the second parameter is not equal to the second preset value, the next initialization data is selected as the second initialization data. If the second parameter is equal to the second preset value, then the second initialization data exists. If... Figure 7 If all the initialization data in the SPD information list shown are used as second initialization data for judgment, and there is still no initialization data that meets the conditions, then there is no second initialization data.

[0086] In this method, by searching for a second identifier to narrow down the search area, it is determined whether the second parameter is a second preset value. If the second identifier is the same as the first identifier and the second parameter is a second preset value, the second initialization data is obtained according to the first mapping relationship. By using the second parameter, the second initialization data that has passed CRC verification is accurately obtained, improving the efficiency of data processing.

[0087] For example, by selecting any initialization data from the SPD information list as the second initialization data, the second parameter is obtained through the second mapping relationship corresponding to the second initialization data. It is then determined whether the second parameter corresponding to the second initialization data is a second preset value. If the second parameter is not equal to the second preset value, the next initialization data is selected as the second initialization data. If the second parameter is equal to the second preset value, the second identifier is obtained through the first mapping relationship. It is then determined whether the second identifier corresponding to the second initialization data is the same as the first identifier. If the second identifier is different from the first identifier, the next initialization data is selected as the second initialization data. If the second identifier is the same as the first identifier, then second initialization data exists. If... Figure 7If all the initialization data in the SPD information list shown are used as second initialization data for judgment, and there is still no initialization data that meets the conditions, then there is no second initialization data.

[0088] This method narrows the search range by first determining whether the second parameter is a second preset value, then searches for the second identifier, and finds the second initialization data that meets the requirements based on the first mapping relationship. By first determining whether the value of the second parameter meets the requirements, the range of searching for the second identifier is narrowed, thus improving the efficiency of data retrieval.

[0089] The second method is: [It can be done...] Figure 7 The presence of second initialization data is determined by traversing the identifiers in the SPD information list shown.

[0090] For example, any identifier is selected from the SPD list as the second identifier, and the initialization data corresponding to the second identifier is the second initialization data. It is determined whether the second identifier is the same as the first identifier. If the second identifier is different from the first identifier, the next identifier is selected as the second identifier. If the second identifier is the same as the first identifier, it is determined whether the second parameter corresponding to the second initialization data is a second preset value. If the second parameter is not equal to the second preset value, the next identifier is selected as the second identifier. If the second parameter is equal to the second preset value, then the second initialization data exists. If... Figure 7 If all the initialization data in the SPD information list shown are used as second initialization data for judgment, and there is still no initialization data that meets the conditions, then there is no second initialization data.

[0091] For example, any identifier is selected from the SPD list as the second identifier, and the initialization data corresponding to the second identifier is the second initialization data. It is determined whether the second parameter corresponding to the second initialization data is a second preset value. If the second parameter is not equal to the second preset value, the next identifier is selected as the second identifier; if the second parameter is equal to the second preset value, it is determined whether the second identifier is the same as the first identifier. If the second identifier is different from the first identifier, the next identifier is selected as the second identifier; if the second identifier is the same as the first identifier, then the second initialization data exists. If... Figure 7 If all the initialization data in the SPD information list shown are used as second initialization data for judgment, and there is still no initialization data that meets the conditions, then there is no second initialization data.

[0092] If second initialization data exists, proceed to step 407.

[0093] If no second initialization data exists, proceed to step 408.

[0094] 407. Initialize the first memory according to the second initialization data;

[0095] If the first initialization data fails the verification, the second memory will find the second initialization data that has passed the verification, write the second initialization data into the first memory, and initialize the first memory according to the second initialization data.

[0096] In some embodiments, if the first initialization data fails the verification, and the first memory matches the second initialization data that has passed the verification, the second initialization data can be verified again. The fifth checksum is calculated based on the preset CRC checksum. If the fifth checksum is the same as the third checksum, the first memory is initialized based on the second initialization data.

[0097] If the fifth checksum is different from the third checksum, proceed to step 408.

[0098] This method improves data stability by performing secondary verification on the second initialization data, thus preventing frame drops during transmission and recording.

[0099] It should be noted that if there is secondary initialization data, the method of performing secondary verification on the secondary initialization data is only an example. In actual applications, it can be determined whether to perform relevant operations based on the requirements, and there are no restrictions here.

[0100] 408. Isolate the first memory;

[0101] If no second initialization data exists, then the first memory has no available initialization data, and the first memory is isolated, making it unusable.

[0102] 409. Determine if there are any memory entries for which CRC checks have not been completed;

[0103] Determine if there are any memory locations where CRC checks have not been completed.

[0104] If it exists, proceed to step 404 for the memory that has not been verified.

[0105] If it does not exist, proceed to step 410.

[0106] 410. Continue starting the computer;

[0107] If all memory has completed CRC verification, proceed with subsequent device scanning, driver loading, and operating system startup.

[0108] 411. Perform CRC check on the initialization data and initialize or isolate the memory.

[0109] Perform a CRC check on the initialization data of the memory. If the initialization data passes the CRC check, then initialize the memory corresponding to the initialization data.

[0110] If the initialization data fails the CRC check, the memory corresponding to the initialization data will be isolated.

[0111] In this embodiment, first SPD information of the first memory is obtained, where the first SPD information includes first initialization data and a first identifier. A CRC check is performed on the first initialization data. If the check fails, second initialization data is obtained, where the second initialization data is contained in the second SPD information of the second memory. The second SPD information also includes a second identifier, which is identical to the first identifier. The second initialization data passes the check. The first memory is then initialized based on the second initialization data. This ensures that if the first initialization data fails the check, the first memory can be initialized using the second initialization data, which has the same identifier and passes the check. This avoids unnecessary reduction in memory capacity, thereby improving the performance of the computing device and reducing the frequency of replacing isolated memory and the associated labor and equipment costs.

[0112] In addition, this application proposes that after obtaining the initialization data corresponding to the memory, the initialization data and identifier that are CRC-verified correctly can be saved. When other initialization data fails the CRC check, it is necessary to check whether there is initialization data with the same identifier that passes the CRC check, and use the initialization data with the same identifier that passes the CRC check to initialize the memory corresponding to the initialization data that fails the CRC check.

[0113] Please refer to Figure 8 , Figure 8 This is another schematic flowchart illustrating the data processing method provided in the embodiments of this application.

[0114] 801. Obtain SPD information;

[0115] When the computer is turned on, the BIOS firmware starts running and obtains the SPD information stored on the EEPROM chip of each memory. The SPD information may include initialization data, memory identifier, manufacturer, capacity, operating frequency, operating voltage and operation timing, etc. The initialization data may include memory operating voltage and memory operation timing, etc., for memory initialization.

[0116] The memory identifier can be the memory product model (part number, PN) or any identifier set by the user for the memory; there are no restrictions here.

[0117] 802. Perform CRC check on the first initialization data;

[0118] After the computing device enters the BIOS stage, a CRC check is performed on the first initialization data. This first initialization data is the initialization data of the first memory, which can be any memory within the computing device. The first initialization data carries first checksum data and a first checksum. The first SPD information is any one of the acquired SPD information. The first SPD information includes the first initialization data and a first identifier.

[0119] Extract the first checksum from the first initialization data, and calculate the second checksum using the preset CRC checksum rules.

[0120] If the first checksum is the same as the second checksum, the first initialization data passes the CRC check and step 803 is executed.

[0121] If the first checksum is different from the second checksum, the first initialization data fails the CRC check, and step 804 is executed.

[0122] It should be noted that, in other embodiments, the initialization data corresponding to each memory in the computing device can also be verified by means other than CRC check.

[0123] 803. Save the first initialization data and the first identifier, and initialize the first memory according to the first initialization data;

[0124] After the first initialization data passes the CRC check, the first initialization data, the first identifier, and the first mapping relationship are written into the SPD information list, and the first memory is initialized according to the first initialization data. The first mapping relationship is the mapping relationship between the first initialization data and the first identifier.

[0125] For example, please refer to Figure 9 , Figure 9 This is another schematic diagram of the SPD information list provided in the embodiments of this application. The diagram records the memory number, initialization data, and memory identifier of the memory verified by CRC. Specifically, memory 1 is mapped to initialization data 1, initialization data 1 is mapped to identifier 1, memory 3 is mapped to initialization data 3, initialization data 3 is mapped to identifier 3, ..., memory N is mapped to initialization data N, and initialization data N is mapped to identifier N.

[0126] It is important to note that Figure 9 This is merely an illustration of the relationship between initialization data and memory identifiers. In practical applications, the initialization data and memory identifiers, as well as the mapping relationship between initialization data and memory identifiers, can be recorded and saved in other forms, and no limitation is made here.

[0127] This method reduces the amount of data that needs to be saved and improves the efficiency of data processing by saving the initialization data that has passed CRC verification, the corresponding memory, and the mapping relationship between the initialization data and the memory.

[0128] 804. Determine if second initialization data exists;

[0129] When the first checksum is different from the second checksum, Figure 9 The system checks the SPD information list to see if second initialization data exists. It should be noted that the second initialization data refers to the initialization data in the second SPD information of the second memory. The second memory can be any memory location recorded in the SPD information list other than the first memory. The second SPD information also includes a second identifier; if the second identifier is the same as the first identifier, then second initialization data exists.

[0130] If second initialization data exists, proceed to step 805.

[0131] If no second initialization data exists, proceed to step 806.

[0132] 805. Initialize the first memory according to the second initialization data;

[0133] If the first initialization data fails verification, the first memory is matched with the second initialization data that passes verification. The first memory is then initialized according to the second initialization data. The second initialization data is the initialization data recorded in the SPD information list.

[0134] In some embodiments, if the first initialization data fails the verification, and the first memory matches the second initialization data that has passed the verification, the second initialization data can be verified again. The fifth checksum is calculated based on the preset CRC checksum. If the fifth checksum is the same as the third checksum, the first memory is initialized based on the second initialization data.

[0135] If the fifth checksum is different from the third checksum, proceed to step 806.

[0136] This method improves data stability by performing secondary verification on the second initialization data, thus preventing frame drops during transmission and recording.

[0137] It should be noted that if there is secondary initialization data, the method of performing secondary verification on the secondary initialization data is only an example. In actual applications, it can be determined whether to perform relevant operations based on the requirements, and there are no restrictions here.

[0138] 806. Isolate the first memory;

[0139] If the first initialization data fails the verification and there is no second initialization data, then the first memory has no available initialization data, and the first memory is isolated, making it unusable.

[0140] 807. Determine if there are any memory entries for which CRC checks have not been completed;

[0141] Determine if there are any memory locations where CRC checks have not been completed.

[0142] If it exists, proceed to step 802 for the memory that has not been verified.

[0143] If it does not exist, proceed to step 808.

[0144] 808. Continue starting the computer.

[0145] If all memory has completed CRC verification, proceed with subsequent device scanning, driver loading, and operating system startup.

[0146] In this embodiment, after obtaining the SPD information of all memory in the computer, a CRC check is performed on the first initialization data on the computer. The first initialization data is the initialization data of the first memory, which can be any memory in the computer. If the first initialization data passes the CRC check, the first initialization data and the first identifier are saved to generate an SPD information list, and the first memory is initialized according to the first initialization data. If the first initialization data fails the CRC check, the second initialization data that meets the conditions is searched from the SPD information list. The second initialization data is the initialization data of the second memory, and the second identifier is the same as the first identifier. The second initialization data passes the CRC check. If there is second initialization data that meets the conditions, the first memory is initialized according to the second initialization data. If there is no such second initialization data, the first memory is isolated. This embodiment writes the first initialization data that passes the CRC check and the first identifier into the SPD information list, eliminating the need to save the initialization data that fails the CRC check. This reduces the amount of data in the SPD information list and the workload of the computer in matching the second initialization data in the SPD information list, thereby improving the working time and required memory space of the BIOS during the memory initialization stage.

[0147] The data processing method proposed in this application has been described above. The data processing apparatus proposed in this application will now be described in conjunction with the accompanying drawings.

[0148] Please see Figure 10 , Figure 10 A schematic diagram of a computing device provided in an embodiment of this application, the data processing device including:

[0149] The acquisition unit 1001 is used to acquire the first SPD information of the first memory, wherein the first SPD information includes first initialization data and a first identifier;

[0150] Verification unit 1002 is used to verify the first initialization data;

[0151] The acquisition unit 1001 is further configured to acquire second initialization data if the first initialization data verification fails, wherein the second initialization data is contained in the second SPD information in the second memory, the second SPD information further includes a second identifier, the second identifier is the same as the first identifier, and the second initialization data passes the verification.

[0152] The initialization unit 1003 initializes the first memory according to the second initialization data.

[0153] Optionally, the acquisition unit 1001 is also used to acquire the second parameter.

[0154] The second initialization data is validated including:

[0155] When the second parameter is the second preset value, the second initialization number passes the verification.

[0156] Optionally, the acquisition unit 1001 is specifically used for:

[0157] Determine whether the first identifier and the second identifier are the same;

[0158] If the first identifier is the same as the second identifier, determine whether the second parameter is a second preset value.

[0159] If the second parameter is not a second preset value, obtain the second initialization data.

[0160] Optionally, the acquisition unit 1001 is specifically used for:

[0161] Determine whether the second parameter is a second preset value;

[0162] If the second parameter is a second preset value, determine whether the first identifier and the second identifier are the same;

[0163] If the first identifier is the same as the second identifier, obtain the second initialization data.

[0164] Optionally, the acquisition unit 1001 is also used for:

[0165] Get the first parameter;

[0166] If the first parameter is equal to the first preset value, save the first initialization data, the first identifier, and the mapping relationship between the first initialization data and the first identifier.

[0167] Optionally, the acquisition unit 1001 is specifically used to acquire the first parameter in response to an operation instruction for the first parameter.

[0168] Optionally, the verification unit 1002 is also used to perform CRC verification on the second initialization data;

[0169] Optionally, the initialization unit 1003 is specifically used to initialize the first memory according to the second initialization data if the second initialization data passes the CRC check.

[0170] Optionally, the acquisition unit 1001 is also used to acquire the first parameter;

[0171] The device also includes a storage unit 1004, which is specifically used to store first initialization data, first identifier, and mapping relationship between first initialization data and first identifier if the first parameter is equal to a first preset value.

[0172] Optionally, the device further includes a judgment unit 1005, used to determine whether the first initialization data has completed CRC verification, wherein the first initialization data is the initialization data corresponding to any memory in the computing device;

[0173] The verification unit 1002 is also used to perform CRC verification on the first initialization data if the first initialization data has not completed CRC verification.

[0174] Optionally, the device also includes an isolation unit 1006 for isolating the first memory if the first identifier and the second identifier are different, or if the second parameter is not equal to the second preset value.

[0175] Please see Figure 11 , Figure 11 This is another schematic diagram of the structure of a computing device provided in an embodiment of this application. The computing device includes: a processor 1101, a memory 1102, multiple memory modules 1103, a communication interface 1104, and a bus system 1105.

[0176] Bus system 1105 is used to couple the various hardware components of a computing device together. Bus system 1105 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Bus system 1105 can be divided into address bus, data bus, control bus, etc.

[0177] The communication interface 1104 is used to realize the communication connection between the computing device and other devices. It can be a wired interface (such as an Ethernet interface), an internal interface (such as a high-speed serial computer expansion bus (PCIe) bus interface), a wired interface (such as an Ethernet interface), or a wireless interface (such as a cellular network interface or a wireless local area network interface).

[0178] Multiple memory modules 1103 are used to temporarily store computational data from the processor and data exchanged with external storage devices such as hard disks. Specifically, each memory module 1103 may include a non-volatile memory chip, such as read-only memory (ROM), flash memory, hard disk (HDD), or solid-state drive (SSD), which stores the SPD information of the memory. For example, the multiple memory modules may include a first memory and a second memory. The first memory stores first SPD information of the first memory, and the second memory stores second SPD information of the second memory. The first SPD information includes first initialization data and a first identifier, and the second SPD information includes second initialization data and a second identifier. Memory 1102 is used to store program instructions and data and may include volatile memory, such as random access memory (RAM); memory 1102 may also include non-volatile memory, such as flash memory, read-only memory (ROM), flash memory, hard disk (HDD), or solid-state drive (SSD); memory 1102 may also include combinations of the above types. The non-volatile memory stores BIOS firmware. The non-volatile memory of memory 1102 is coupled to the processor and multiple memory modules respectively.

[0179] Processor 1101, used to read instructions and data stored in memory 1102, may be composed of at least one general-purpose processor, such as a central processing unit (CPU), or a combination of a CPU and a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a general-purpose array logic (GAL), or any combination thereof. Processor 1101 is used to load and run BIOS firmware from non-volatile memory during the power-on process of the computing device. The BIOS firmware is used to obtain first SPD information and verify first initialization data. If the first initialization data verification fails, second initialization data is obtained, where the second identifier is the same as the first identifier, and the second initialization data passes verification. The BIOS firmware is also used to initialize first memory according to the second initialization data. Optionally, the BIOS firmware is also used to obtain a second parameter; the second initialization data passing verification includes: when the second parameter is a second preset value, the second initialization data passes verification.

[0180] Optionally, the BIOS firmware is also used to save the first initialization data and the first identifier if the first initialization data verification passes, and to initialize the first memory according to the first initialization data.

[0181] Optionally, the BIOS firmware is also used to determine whether the first initialization data has been verified. The first initialization data is the initialization data corresponding to any memory in the computing device. If the first initialization data has not been verified, the first initialization data is verified.

[0182] Specifically, the aforementioned Figure 11 The described computing device is used to perform the aforementioned Figure 4 or Figure 8 The steps of the data processing method described in the document will not be repeated here.

[0183] This application also provides a computer-readable storage medium storing a computer program. When the computer program is run on one or more processors, it can perform the above-mentioned tasks. Figure 4 or Figure 8 The method shown.

[0184] This application also provides a computer program product, which includes a computer program. When the computer program product runs on a processor, it can achieve the above-mentioned... Figure 4 or Figure 8 The method shown.

[0185] This application also provides a chip, which includes a processor for executing instructions. When the processor executes the instructions, it can achieve the above-mentioned... Figure 4 or Figure 8 The method shown. Optionally, the chip also includes a communication interface for inputting or outputting signals.

[0186] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0187] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.

[0188] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0189] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0190] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application.

Claims

1. A data processing method, characterized in that, include: When the computer device is powered on and the BIOS firmware starts running, it acquires the first SPD information of the first memory. The first SPD information includes first initialization data and a first identifier. There is a first mapping relationship between the first memory, the first initialization data, and the first identifier; The first initialization data is verified. If the first initialization data fails verification, the second initialization data is obtained. The second initialization data is contained in the second SPD information in the second memory. The second SPD information also includes a second identifier, which is the same as the first identifier. The second initialization data passes verification. Initialize the first memory according to the second initialization data; The method further includes: Get the second parameter; The second initialization data is validated including: When the second parameter is a second preset value, the second initialization number passes the verification. The method further includes: if the first identifier and the second identifier are different, or the second parameter and the second preset value are different, isolating the first memory.

2. The method according to claim 1, characterized in that, The method further includes: Get the first parameter; If the first parameter is equal to the first preset value, save the first initialization data, the first identifier, and the mapping relationship between the first initialization data and the first identifier.

3. The method according to claim 1 or 2, characterized in that, If the first initialization data passes the verification, the first initialization data and the first identifier are saved, and the first memory is initialized according to the first initialization data.

4. The method according to claim 1 or 2, characterized in that, The initialization of the first memory according to the second initialization data includes: The second initialization data is validated. If the second initialization data passes the validation, the first memory is initialized based on the second initialization data.

5. The method according to claim 1 or 2, characterized in that, The method further includes: Determine whether the first initialization data has been verified. The first initialization data is the initialization data corresponding to any memory in the computing device. If the first initialization data has not been validated, then validate the first initialization data.

6. A computing device, characterized in that, The system includes multiple memory modules, a non-volatile memory, and a processor. The non-volatile memory is coupled to the processor and the multiple memory modules respectively. The non-volatile memory stores BIOS firmware. The multiple memory modules include a first memory and a second memory. The first memory stores first SPD information of the first memory, and the second memory stores second SPD information of the second memory. The first SPD information includes first initialization data and a first identifier. There is a first mapping relationship between the first memory, the first initialization data, and the first identifier. The second SPD information includes second initialization data and a second identifier. The processor is used to run the BIOS firmware during the power-on startup process of the computing device; The BIOS firmware is used to obtain the first SPD information and verify the first initialization data. If the first initialization data fails verification, the second initialization data is obtained, wherein the second identifier is the same as the first identifier, and the second initialization data passes verification. The BIOS firmware is used to initialize the first memory according to the second initialization data; The BIOS firmware is also used to obtain a second parameter; The second initialization data is validated including: When the second parameter is a second preset value, the second initialization number passes the verification. The BIOS firmware is also used for: If the first identifier and the second identifier are different, or the second parameter and the second preset value are different, isolate the first memory.

7. The computing device according to claim 6, characterized in that, The BIOS firmware is also used to save the first initialization data and the first identifier if the first initialization data verification passes, and to initialize the first memory according to the first initialization data.

8. The computing device according to claim 6 or 7, characterized in that, The BIOS firmware is also used to determine whether the first initialization data has been verified, wherein the first initialization data is the initialization data corresponding to any memory in the computing device; If the first initialization data has not been validated, then validate the first initialization data.