A memory testing method, device, workstation and storage medium

By disabling non-test slots in the BIOS firmware and running specified test scripts, the hardware wear and stability issues caused by repeated plugging and unplugging in memory testing are resolved. This enables accurate testing without plugging and unplugging and automated multiple tests, thus improving testing efficiency.

CN122177198APending Publication Date: 2026-06-09SUMA TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SUMA TECH CO LTD
Filing Date
2026-05-07
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

Current memory testing processes require repeated insertion and removal of memory modules, leading to hardware wear and reduced stability of the testing system. Furthermore, they rely heavily on manual operation, impacting testing efficiency.

Method used

The operating system's kernel driver sends the identifier of the slot to be tested to the BIOS firmware, disables the non-test slots, and runs the specified test script after the BIOS firmware has completed disabling the non-test slots, thus achieving accurate testing without the need to remove or reseat the memory modules.

Benefits of technology

It reduces hardware wear and tear during testing, improves the stability of the testing system, and enables multiple automated tests without manual restarts through interface control, thereby improving testing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122177198A_ABST
    Figure CN122177198A_ABST
Patent Text Reader

Abstract

This application provides a memory testing method, apparatus, workstation, and storage medium, relating to the field of testing technology. The method includes: displaying a task settings interface during normal operating system operation; determining that the slot identifier displayed by the user based on the task settings interface is the slot to be tested in the test task, and determining the number of tests set by the user for the test task; sending the identifier of the slot to be tested to the BIOS firmware through the operating system kernel driver, so that the BIOS firmware disables the non-test slot; in response to the BIOS firmware disabling the non-test slot, running a specified test script; after the specified test script finishes running, checking whether the number of runs of the specified test script has reached the number of tests for the test task; if not, returning to the step of running the specified test script. This solution enables memory testing of memory modules inserted in specific slots without repeatedly inserting and removing memory modules.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of testing technology, and in particular to a memory testing method, apparatus, workstation, and storage medium. Background Technology

[0002] With the rapid development of computer technology, DDR (Double Data Rate) memory technology has continued to evolve. From DDR4 to DDR5, and then to the future DDR6, each technological upgrade has brought significant increases in memory capacity, data transfer rate, and bandwidth. As DDR evolves towards higher performance, it forces a continuous increase in the frequency of clock signals related to read and write operations, resulting in clock signals operating in the GHz high-frequency range. However, problems such as jitter, crosstalk, and timing deviations under high-frequency signals are significantly amplified, easily leading to read and write errors and thus affecting the stability of the operating system. This makes memory testing a core component in ensuring system stability.

[0003] Currently, memory testing requires testers to repeatedly insert and remove memory modules to adjust the memory under test, indicating that the testing process relies heavily on manual operation. Furthermore, this repeated insertion and removal of memory modules not only accelerates physical wear and tear on the memory modules and slots but also significantly reduces the overall stability of the testing system. Summary of the Invention

[0004] The purpose of this application is to provide a memory testing method, apparatus, workstation, and storage medium to perform memory testing on memory modules inserted in specific slots without repeatedly inserting and removing memory modules. The specific technical solution is as follows:

[0005] In a first aspect, embodiments of this application provide a memory testing method, the method comprising:

[0006] When the operating system is running normally, the task settings interface is displayed; wherein, the task settings interface displays the identifier of the slot where the memory module is plugged in;

[0007] Determine the slot to be tested as the slot set by the user based on the slot identifier displayed in the task settings interface, and determine the number of tests set by the user for the test task.

[0008] The kernel driver of the operating system sends the identifier of the slot to be tested to the BIOS firmware, so that the BIOS firmware disables the non-test slots according to the identifier of the slot to be tested.

[0009] In response to the BIOS firmware completing the disabling of non-test slots, the specified test script is run.

[0010] After the specified test script finishes running, check whether the number of times the specified test script has been run has reached the number of tests required for the test task.

[0011] If the desired result is not achieved, return to the step of running the specified test script.

[0012] Optionally, the identifiers of the memory slots displayed in the task settings interface are obtained in the following manner:

[0013] The kernel driver of the operating system sends a storage instruction to the BIOS firmware, so that the BIOS firmware stores the specified mapping table recorded during the BIOS boot process to the specified area according to the storage instruction; wherein, the specified mapping table records the mapping relationship between each memory physical address and the slot identifier;

[0014] Read the identifiers of each slot in the specified mapping table stored in the specified area to obtain the identifiers of the slots where memory modules are inserted.

[0015] Optionally, the BIOS firmware disables non-test slots in the following manner:

[0016] The BIOS firmware determines the memory physical address corresponding to other identifiers besides the identifier of the slot to be tested from a specified mapping table that records the mapping relationship between each memory physical address and the identifier of the slot.

[0017] The determined physical memory address is marked as reserved in the Address Range Descriptor structure ARDS table.

[0018] Optionally, the number of test tasks is multiple; the method further includes:

[0019] If the number of times the specified test script is run reaches the number of times the currently executed test task is tested, then check if there are any unexecuted test tasks in the task list;

[0020] If it exists, the first unexecuted test task in the task list is identified as the current test task. The kernel driver of the operating system sends the identifier of the slot to be tested for the current test task to the BIOS firmware, so that the BIOS firmware disables the non-test slot according to the identifier of the slot to be tested for the current test task, and returns the step of running the specified test script in response to the BIOS firmware completing the disabling of the non-test slot.

[0021] Optionally, after displaying the task settings interface, the method further includes:

[0022] In response to the user's save operation on the set test slot and test count in the task settings interface, a test task is generated and saved to the end of the current task list, and the slot identifier and test count settings displayed in the task settings interface are reset.

[0023] In response to a test operation triggered by the user in the task settings interface, the slot to be tested is determined to be the slot included in the first unexecuted test task in the task list, and the step of sending the identifier of the slot to be tested to the BIOS firmware through the kernel driver of the operating system is executed.

[0024] Optionally, the method further includes:

[0025] After the specified test script finishes running, the test results obtained will be stored in the specified storage location.

[0026] If the user clicks the "Analyze" button in the task settings interface, the test results belonging to the same test task stored in the specified storage location will be analyzed and processed, and the processing results will be displayed.

[0027] Optionally, the specified test script is an eye diagram test script;

[0028] The analysis and processing of test results belonging to the same test task stored in the specified storage location includes:

[0029] The eye height and eye width data from the test results belonging to the same test task stored in the specified storage location are averaged.

[0030] Secondly, embodiments of this application provide a memory testing apparatus, the apparatus comprising:

[0031] The display module is used to display the task settings interface when the operating system is running normally; wherein the task settings interface displays the identifier of the slot where the memory module is plugged in.

[0032] The first determining module is used to determine that the slot identifier displayed by the user based on the task setting interface is the slot to be tested set for the test task, and to determine the number of tests set by the user for the test task.

[0033] The sending module is used to send the identifier of the slot to be tested to the BIOS firmware through the kernel driver of the operating system, so that the BIOS firmware disables the non-test slots according to the identifier of the slot to be tested.

[0034] The running module is used to run a specified test script in response to the BIOS firmware completing the disabling of non-test slots.

[0035] The first detection module is used to detect, after the specified test script has finished running, whether the number of times the specified test script has been run has reached the number of times the test task has been tested;

[0036] The return module is used to return to the step of running the specified test script if the condition is not met.

[0037] Thirdly, embodiments of this application provide a workstation, including a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus;

[0038] Memory, used to store computer programs;

[0039] The processor, when executing a program stored in memory, implements any of the memory testing methods described above.

[0040] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements any of the memory testing methods described above.

[0041] Fifthly, embodiments of this application provide a computer program product containing instructions that, when run on a computer, cause the computer to execute any of the memory testing methods described above.

[0042] Beneficial effects of the embodiments in this application:

[0043] The solution provided in this application determines the slot to be tested based on the slot identifier displayed by the user in the task settings interface. Then, the operating system kernel driver sends the identifier of the slot to be tested to the BIOS firmware, causing the BIOS firmware to disable non-test slots based on the identifier. After the BIOS firmware disables the non-test slots, a specified test script runs. This allows the operating system to be unable to recognize memory modules in non-test slots through interface control, enabling testing of specified memory modules without the need for hot-swapping in a fully populated state. This allows for precise testing of specific memory modules even without hot-swapping support, reducing hardware wear caused by repeated memory module insertion and removal during testing, thus improving the overall stability of the testing system. Furthermore, if the number of tests has not reached the required number of tests for the test task, the specified test script is run again, enabling multiple tests without manual restart, improving testing efficiency.

[0044] Of course, implementing any product or method of this application does not necessarily require achieving all of the advantages described above at the same time. Attached Figure Description

[0045] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other embodiments can be obtained based on these drawings.

[0046] Figure 1 A flowchart of a memory testing method provided in an embodiment of this application;

[0047] Figure 2 Another flowchart of the memory testing method provided in the embodiments of this application;

[0048] Figure 3 Another flowchart of a memory testing method provided in an embodiment of this application;

[0049] Figure 4 Another flowchart of the memory testing method provided in the embodiments of this application;

[0050] Figure 5 A flowchart illustrating a specific example of the memory testing method provided in an embodiment of this application;

[0051] Figure 6 This is a schematic diagram of the structure of a memory testing device provided in an embodiment of this application;

[0052] Figure 7 A block diagram of an electronic device for implementing the memory testing method provided in the embodiments of this application. Detailed Implementation

[0053] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art based on this application are within the scope of protection of this application.

[0054] Currently, memory testing requires testers to repeatedly insert and remove memory modules to adjust the memory under test. For example, if a workstation has 32 memory modules at full capacity, after a full-capacity test, if a partial-capacity test (keeping 16 memory modules) is needed, half of the memory modules must be removed before testing. If a full-capacity test is needed again later, the removed memory modules must be reinserted. This repeated insertion and removal of memory modules not only accelerates physical wear and tear on the memory modules and slots but also significantly reduces the overall stability of the test system. Furthermore, the reliance on extensive manual operation lengthens the testing cycle and reduces testing efficiency.

[0055] To address the aforementioned issues, embodiments of this application provide a memory testing method, apparatus, workstation, and storage medium.

[0056] The memory testing method provided in this application embodiment is described below. This method can be applied to electronic devices with display functions and data processing capabilities, such as workstations that require memory testing. A workstation is a high-end general-purpose microcomputer with more powerful performance than a personal computer, especially in graphics processing or task parallelism. When this memory testing method is applied to a workstation, the steps of this application embodiment can be executed by a program running on the workstation.

[0057] like Figure 1 As shown, the memory testing method provided in this application embodiment may include the following steps:

[0058] S101. Under normal operating system conditions, display the task settings interface; the task settings interface shows the identifiers of the slots where memory modules are installed; S102. Determine that the slot to be tested is the one the user has set for the test task based on the slot identifiers displayed in the task settings interface, and determine the number of tests set by the user for the test task; S103. Send the identifiers of the slots to be tested to the BIOS firmware through the operating system kernel driver, so that the BIOS firmware disables non-test slots according to the identifiers of the slots to be tested; S104. In response to the BIOS firmware completing the disabling of non-test slots, run the specified test script; S105. After the specified test script finishes running, check whether the number of times the specified test script has been run has reached the number of tests required for the test task; S106. If not, return to the step of running the specified test script.

[0059] In this embodiment, the slot identifier displayed by the user in the task settings interface is determined as the slot to be tested in the test task. Then, the identifier of the slot to be tested is sent to the BIOS firmware through the operating system kernel driver. This allows the BIOS firmware to disable non-test slots based on the identifier of the slot to be tested. After the BIOS firmware disables the non-test slots, a specified test script is run. This allows the operating system to not recognize the memory modules in the non-test slots through interface control, thus enabling testing of specified memory modules without the need for hot-swapping in a fully populated state. In this way, precise testing of specific memory modules can be completed even without hot-swapping, reducing hardware wear caused by repeated memory module insertion and removal during testing, thereby improving the overall stability of the test system. Furthermore, if the number of tests has not reached the required number of tests for the test task, the specified test script is run again, enabling multiple tests without manual restart, thus improving testing efficiency.

[0060] Regarding step S101, the operating system can be Linux, Windows, or Unix, etc., and this application embodiment is not limited to this. It is understood that after the electronic device is powered on, the BIOS (Basic Input Output System) firmware first performs hardware self-test and initialization, then loads the boot program, and finally transfers control to the operating system, completing the boot process. Subsequently, the operating system begins to run. In this application embodiment, the task settings interface is displayed under normal operating system operation; that is, the task settings interface runs within the operating system.

[0061] The task settings interface is an interactive interface for users to set up test tasks after the GUI (Graphical User Interface) tool is launched. The task settings interface displays the identifiers of the slots where memory modules are installed. For example, if the motherboard of the electronic device executing the memory testing method provided in this application embodiment has 32 slots where memory modules are installed, and their identifiers are A1, A2, B1, B2, ..., P1, P2, then the task settings interface displays the identifiers of these 32 slots, i.e., A1, A2, B1, B2, ..., P1, P2.

[0062] For example, the task settings interface can display the identifiers of the slots where memory modules are plugged in as optional features, as well as the setting for the number of tests, so that users can select the slots to be tested and set the number of tests in the task settings interface.

[0063] Understandably, by displaying indicators of memory slots connected to memory modules in the task settings interface, the system can provide users with all currently available test slots. Compared to displaying a fixed number of slot indicators in the task settings interface, this approach allows for adaptive adjustment of the slot indicators, thus accommodating various testing needs.

[0064] For example, if the task settings interface displays a fixed number of 16 slots, but the current device's motherboard has 32 slots, then the task settings interface with a fixed number of 16 slots will not be applicable when performing a full-slot test on the current motherboard's memory. That is, it is impossible to set the 32 slots on the current device's motherboard as the slots to be tested using the 16 slots displayed in the task settings interface. However, in this solution, by displaying the slots with installed memory modules in the task settings interface, the displayed icons in the task settings interface can adaptively adjust according to the changes in the slots with installed memory modules, thus making it applicable to test scenarios with various slot combinations.

[0065] In step S102, after the task settings interface is displayed, the user can set up test tasks in the interface. A test task includes the slots to be tested and the number of tests. For example, a test task could be to test slots A1 and A2 three times.

[0066] For example, if the identifiers of the slots where memory modules are installed are displayed as optional options in the task settings interface, the slot indicated by the identifier selected by the user in the task settings interface can be designated as the slot to be tested for a test task. Furthermore, the user can set the number of tests in the test count setting displayed in the task settings interface, and then the user-set number of tests will be determined as the number of tests for that test task.

[0067] For example, in one implementation, a function button indicating "Start Test" can be displayed on the task settings interface. In response to the user clicking the function button, the identifier of the slot displayed on the interface is determined as the test slot and the number of tests set for the test task. This application embodiment does not limit the timing of determining the user-set test slot and number of tests in step S102. For example, in another implementation, step S102 can be executed after detecting that the user has not performed any operation on the task settings interface for a predetermined period; both are reasonable.

[0068] Regarding step S103, after determining the slot to be tested and the number of tests set for the test task, the kernel driver of the operating system can send the identifier of the slot to be tested to the BIOS firmware. After receiving the identifier of the slot to be tested, the BIOS firmware can identify the non-test slots other than the slot to be tested, and then disable the non-test slots, that is, disable the memory modules inserted in the non-test slots.

[0069] Understandably, during the boot process, the BIOS firmware identifies memory slot information through a hardware self-test, that is, it checks each slot one by one via the memory controller or memory interface. If a memory module is installed in the slot, the BIOS firmware establishes communication with the SPD chip on the memory module to read the information from the SPD chip; if no memory module is installed in the slot, the BIOS firmware marks the slot as "idle". Then, the BIOS firmware records the status (idle / memory module installed) and related information of each slot, generating a complete slot list, including the identifiers and status information of all slots on the device. In this way, the BIOS firmware can obtain the identifiers of all slots on the motherboard of the current device.

[0070] After the BIOS firmware receives the identifier of the slot to be tested sent by the kernel driver of the operating system, it can determine the other identifiers besides the identifier of the slot to be tested based on the identifiers of all slots recorded in the slot list. The slots corresponding to these other identifiers are the non-test slots.

[0071] For example, in practical applications, the operating system kernel driver can issue memory configuration instructions to the MMIO (Memory Mapped I / O) area reserved in the BIOS firmware. These instructions carry the identifier of the slot to be tested. The BIOS firmware polls this MMIO area to obtain the memory configuration instructions and configures the memory controller accordingly, thereby disabling non-test slots. The specific implementation of disabling non-test slots in the BIOS firmware is described in the following embodiments and will not be repeated here.

[0072] Regarding step S104, after the BIOS firmware disables the non-test slots, a specified test script is run in the operating system. It's understood that after disabling the non-test slots, the operating system can only recognize the memory modules installed in the slot to be tested; that is, the memory modules installed in the non-test slots are hidden by the operating system. At this time, when the specified test script is run to perform memory testing, it can test the memory modules installed in the slot to be tested. Therefore, it is possible to accurately test a specific memory module in a fully populated state (i.e., all slots on the motherboard are filled with memory modules).

[0073] For example, the specified test script can be an eye diagram test script, a timing analysis test script, or a crosstalk analysis test script, etc. The specific type of the specified test script is not limited in the embodiments of this application.

[0074] Regarding steps S105 and S106, after the specified test script finishes running, it can be checked whether the number of times the specified test script has been run has reached the number of tests required for the test task. If it has, the current test task is completed. If not, the specified test script is rerun until the number of tests required for the test task is reached. In this way, multiple automated tests can be achieved through interface control without the need for manual test restarts.

[0075] For example, in one implementation, a counter can be set to record the number of times a specified test script is run. The counter is incremented after each run of the specified test script. After the specified test script finishes running, it is determined whether the number of runs has reached the number of tests required for the test task. If not, the specified test script is run again. If it has, the loop ends.

[0076] For example, in another implementation, the number of times the test script is run, its status, and results can be recorded in a log file, thereby effectively tracking and monitoring the testing process. After each specified test script finishes running, the number of times the specified test script is run is recorded in the log file to determine whether the number of runs for the specified test script has reached the required number of tests for the test task.

[0077] For example, if a user selects slots A1 and A2 in the task settings interface and sets the test count to 3, the generated test task will be a test task that tests the memory modules inserted in slots A1 and A2 3 times. After the operating system's kernel driver sends the identifiers A1 and A2 to the BIOS firmware, the BIOS firmware will disable all slots except those identified as A1 and A2. At this time, the specified test script runs in the operating system, which tests the memory modules in slots A1 and A2. After each run of the specified test script, it checks whether the number of runs has reached 3. If not, the specified test script is run again until the number of runs reaches 3, then the loop ends, completing the user-set test task.

[0078] For example, in one implementation, the task settings interface can also display a button indicating the end of the test. When the user clicks the button, the test script will end. In this way, the memory test can be stopped at any time through the interface, thereby improving the flexibility of the test.

[0079] Alternatively, in another embodiment of this application, such as Figure 2 As shown, the identifier of the slot with the memory module installed, displayed in the task settings interface, is obtained according to the following steps: S201, the kernel driver of the operating system sends a storage instruction to the BIOS firmware, so that the BIOS firmware stores the specified mapping table recorded during the BIOS boot process to the specified area according to the storage instruction; wherein, the specified mapping table records the mapping relationship between each memory physical address and the identifier of the slot; S202, the identifier of each slot in the specified mapping table stored in the specified area is read to obtain the identifier of the slot with the memory module installed.

[0080] In this embodiment, the operating system's kernel driver sends a storage instruction to the BIOS firmware, causing the BIOS firmware to store a specified mapping table recorded during the BIOS boot process into a designated area. This allows the operating system to read the contents of the specified mapping table. Since the specified mapping table records the mapping relationship between each memory physical address and slot identifier, and the slot corresponding to the memory physical address is the slot where a memory module is installed, the identifier of the slot with the installed memory module can be obtained by reading the identifiers of each slot recorded in the specified mapping table. By displaying the identifier of the slot with the installed memory module in the task settings interface, the identifier displayed in the task settings interface can adaptively adjust according to changes in the number of slots with installed memory modules, thus making it suitable for various slot configurations in test scenarios.

[0081] When the operating system is running normally, the GUI tool is launched to display the task settings interface. During the loading process of the task settings interface, the operating system kernel driver sends a storage instruction to the BIOS firmware. This storage instruction is used to instruct the BIOS firmware to store a specified mapping table recorded during the BIOS boot process into a specified area.

[0082] Understandably, during the boot process, the BIOS firmware identifies memory slot information through hardware self-test. If a memory module is installed in a slot, the BIOS firmware communicates with the SPD chip on the memory module to read parameters from the SPD chip. These parameters include memory type (e.g., DDR4, DDR5), capacity, operating frequency, etc. Then, the BIOS firmware configures the memory controller based on the read parameters, ensuring the memory module can operate with the correct parameters. Furthermore, based on the parameters in the SPD and the system architecture, the BIOS firmware allocates a corresponding physical address space for each slot and establishes a mapping relationship between slot identifiers and memory physical addresses, resulting in a specified mapping table that records the mapping relationship between slot identifiers and memory physical addresses.

[0083] Upon receiving a storage instruction, the BIOS firmware stores the specified mapping table recorded during the boot process into a designated area. For example, this designated area can be a shared memory area between the BIOS firmware and the operating system, such as the DMI (Desktop Management Interface) data area or the SMBIOS (System Management BIOS) structure table area, etc. After the BIOS firmware stores the specified mapping table into the designated area, the operating system can read the contents of the specified mapping table from that area.

[0084] Understandably, the BIOS firmware checks the status of each memory slot during startup, identifying installed memory modules by reading the SPD chip. For slots without installed memory modules, the BIOS firmware typically marks them as "free" or "unused" without allocating physical address space for these slots in the designated mapping table. In other words, the designated mapping table records the mapping relationship between the slot identifiers of installed memory modules and their corresponding physical addresses. Therefore, the operating system can obtain the identifiers of the memory slots on the motherboard of the current device by reading the identifiers of each slot in the designated mapping table stored in a designated area, and thus display the identifiers of the memory slots in the task settings interface.

[0085] Optionally, in another embodiment of this application, the BIOS firmware disables non-test slots in the following manner: the BIOS firmware determines the memory physical addresses corresponding to other identifiers besides the identifier of the slot to be tested from a specified mapping table that records the mapping relationship between each memory physical address and the identifier of the slot; and marks the determined memory physical addresses as reserved in the (AddressRange Descriptor Structure) ARDS table.

[0086] In this embodiment, the BIOS firmware can determine the physical address of the memory corresponding to the non-test slot based on the identifier of the slot to be tested and the specified mapping table. By marking the determined physical address of the memory as reserved in the ARDS table, the BIOS firmware can close the address access channel of the memory module in the non-test slot, so that the operating system cannot recognize the memory module in the non-test slot. Thus, it is possible to test the specified memory module without plugging or unplugging it when it is fully inserted.

[0087] It is understandable that, since the slots allocated with physical memory addresses are the slots where memory modules are installed, all identifiers in the specified mapping table except for the identifier of the slot to be tested can be identified as identifiers of non-test slots. Then, the physical memory addresses corresponding to the identifiers of non-test slots are determined from the specified mapping table, and the physical memory addresses corresponding to the identifiers of non-test slots are the physical memory addresses that need to be disabled.

[0088] In this embodiment, the BIOS disables the determined physical memory addresses by marking them as reserved in the ARDS table. After disabling, the operating system cannot recognize the disabled physical memory addresses.

[0089] For example, marking a determined memory physical address as reserved can be done by marking the determined memory physical address as "Address Range Reserved".

[0090] For example, if the determined physical memory address is a 256MB address range starting from 0x80000000, then an example of marking the determined physical memory address as reserved in the ARDS table is shown below:

[0091] “ARDS {

[0092] BaseAddr = 0x80000000, / / Starting address

[0093] Length = 0x10000000, / / Capacity 256M

[0094] Type = 2 / / Reserved region

[0095] }".

[0096] Optionally, in another embodiment of this application, the number of test tasks is multiple; Figure 1 Based on the illustrated embodiments, as Figure 3 As shown, the above memory testing method further includes: step S301, if the number of times the specified test script is run reaches the number of times the currently executed test task is tested, then check whether there is an unexecuted test task in the task list; S302, if there is, then determine the first unexecuted test task in the task list as the current test task, and send the identifier of the slot to be tested of the current test task to the BIOS firmware through the kernel driver of the operating system, so that the BIOS firmware disables the non-test slot according to the identifier of the slot to be tested of the current test task, and returns the step of running the specified test script in response to the BIOS firmware completing the disabling of the non-test slot.

[0097] Understandably, if there are multiple test tasks, when the specified test script reaches the maximum number of runs for the currently executed test task, the operating system's kernel driver sends the identifier of the test slot for the first unexecuted test task in the task list to the BIOS firmware. This causes the BIOS firmware to disable the non-test slot for that test task, and then run the specified test script after the non-test slot is disabled. In this way, the execution of each test task in the task list can be automated until all test tasks in the list have been executed, ending the test. Therefore, this solution can achieve automated multi-round testing of the test memory, eliminating the need for manual modification of the test memory by manually inserting and removing memory modules, reducing physical wear and tear on the memory modules and slots, and improving the overall stability of the test system.

[0098] In this embodiment, the user can set multiple test tasks on the task settings interface, and these multiple test tasks are stored in the task list in the order set by the user.

[0099] For example, in practical applications, after setting up multiple test tasks on the task settings interface, the user can click the "Start Test" button. At this point, the first unexecuted test task in the current task list is designated as the current test task. The operating system's kernel driver sends the identifier of the slot to be tested for the current test task to the BIOS firmware, causing the BIOS firmware to disable non-test slots based on this identifier. After the BIOS firmware disables the non-test slots, it runs the specified test script for testing. When the required number of runs for the current test task is reached, the first unexecuted test task in the current task list is designated as the current test task. Thus, each test task executes its first unexecuted test task in the current task list after the specified number of runs for that test task has been reached, thereby completing each test task in the order listed.

[0100] For example, in one implementation, each test task in the task list can be removed from the task list during execution. If the number of times the specified test script is run reaches the number of times the currently executed test task is tested, it can be checked whether the task list is empty. If the task list is not empty, it means that there are unexecuted test tasks. At this time, the first unexecuted test task in the task list is determined as the current test task.

[0101] For example, in another implementation, each test task in the task list can be marked as "executed" when it is executed. If the number of times the specified test script is run reaches the number of times the currently executed test task is tested, it can be detected whether there are any test tasks in the task list that are not marked as "executed". If there are, it means that there are test tasks that have not been executed. At this time, the first test task that has not been executed in the task list is determined as the current test task.

[0102] Additionally, when executing the next test task in the task list after the completion of one test task, the identifier of the slot to be tested for the current test task is sent to the BIOS firmware. Upon receiving the identifier, the BIOS firmware marks all memory physical addresses corresponding to the slots to be tested as enabled in the ARDS table, and marks the memory physical addresses corresponding to non-test slots as reserved. For example, marking all memory physical addresses corresponding to the slots to be tested as enabled in the ARDS table can be achieved by modifying the value of the `type` field corresponding to all memory physical addresses to be tested in the ARDS table to 1, thereby restoring memory to enabled.

[0103] It is understandable that the method of sending the identifier of the slot to be tested for the current test task to the BIOS firmware through the kernel driver of the operating system, so that the BIOS firmware can disable non-test slots according to the identifier of the slot to be tested for the current test task, can be referred to the relevant description in the above embodiments, and will not be repeated here.

[0104] Optionally, in another embodiment of this application, after displaying the task settings interface, the memory testing method further includes: in response to the user's save operation on the set slot to be tested and the number of tests in the task settings interface, generating a test task and saving it to the end of the current task list, and resetting the slot identifier and test count settings displayed in the task settings interface; in response to the test operation triggered by the user in the task settings interface, determining that the slot to be tested is the slot included in the first unexecuted test task in the task list, and executing the step of sending the identifier of the slot to be tested to the BIOS firmware through the kernel driver of the operating system.

[0105] In this embodiment, the user can configure the memory slots to be tested and the number of tests in the task settings interface, and generate test tasks that are saved to the task queue. When the user triggers a test operation in the task settings interface, the test will be performed on the slots included in the first unexecuted test task in the test list. In this way, the user can flexibly implement memory testing for different memory slots through interface configuration. That is, automated testing is achieved through interface control, eliminating the need to manually insert and remove memory modules to perform memory testing for different memory slots.

[0106] In this embodiment, the user can set up multiple test tasks on the task settings interface. Specifically, after the task settings interface displays the identifiers of the slots where memory modules are installed, the user can select the slot to be tested by checking the identifiers, and enter the number of tests in the test count setting field displayed on the task settings interface. Then, clicking save generates a test task and saves it to the end of the task list. The task list is initially empty. Furthermore, the slot identifiers and test count settings displayed on the task settings interface are reset; that is, the slot identifiers and test count settings displayed on the task settings interface are restored to their default states before the user made any settings. For example, if all the slot identifiers displayed during task settings interface initialization are unchecked, then during the reset, all identifiers are restored to the unchecked state. If the value in the test count setting field is 0 during task settings interface initialization, then the value in the test count setting field of the task settings interface is restored to 0.

[0107] After each reset, the task settings interface allows users to continue configuring the test slots and number of tests, then click "Save" to generate the next test task. The generated test task is then saved to the end of the current task list. This process can be repeated to set up multiple test tasks at once through the task settings interface.

[0108] For example, in one implementation, the task settings interface can display a function button indicating "Start Test." The user triggers the test by clicking this button. At this point, the slot to be tested is determined to be the slot included in the first unexecuted test task in the task list, and correspondingly, the current test count is the number of tests included in that first unexecuted test task. Then, the step of sending the identifier of the slot to be tested to the BIOS firmware via the operating system's kernel driver is executed. After receiving the identifier, the BIOS firmware disables the currently non-test slots. After the BIOS firmware completes the disabling of the non-test slots, the operating system runs the specified test script to perform the test.

[0109] Alternatively, in another embodiment of this application, in Figure 1 Based on the illustrated embodiments, as Figure 4 As shown, the above memory testing method further includes: S401, after the specified test script finishes running, storing the test results obtained in the specified storage location; S402, if the user clicks the analysis button in the task settings interface, analyzing and processing the test results belonging to the same test task stored in the specified storage location, and displaying the processing results.

[0110] In this embodiment, after the specified test script finishes running, the test results are stored in a specified storage location. When the user clicks the analysis button on the interface, the test results belonging to the same test task stored in the specified storage location are analyzed and processed. In this way, the test results controlled by the interface can be automatically analyzed, thereby improving test efficiency. Furthermore, the processed results are displayed in the task settings interface, which allows users to intuitively understand the test effect.

[0111] Understandably, a log file will be generated after the specified test script finishes running, and this log file contains the test results. The log file records detailed parameter data during the test. For example, if the specified test script is an eye diagram test script, the log file may record parameters such as eye height, eye width, and eye amplitude; if the specified test script is a crosstalk analysis test script, the log file may record parameters such as crosstalk coupling strength, crosstalk voltage amplitude, and crosstalk delay.

[0112] For example, the specified storage location can be a storage address pre-set by relevant technical personnel. Since a test task may include one or more tests, test results belonging to the same test task can be stored in the same folder, and the test results stored in that folder can be named differently to avoid overwriting. For example, if the test script is specified as an eye diagram test script, the test results of a certain test task can be stored in the Eye Diagram folder, and in that folder, the test results of the first test of the test task can be named EYE_1.log, the test results of the second test can be named EYE_2.log, and the numbers in the names can be stacked sequentially to avoid the later test results in the same test task from overwriting the earlier test results.

[0113] In this embodiment, the task settings interface also displays an analysis button. When the user clicks the analysis button, the test results belonging to the same test task stored in the specified storage location are analyzed and processed. It is understood that since the same test task targets memory modules in the same slot, the test results obtained from multiple tests within the same test task can be comprehensively analyzed to obtain an accurate test result for the memory targeted by that test task.

[0114] For example, the analysis and processing could involve averaging or taking extreme values ​​of the parameters from multiple tests within the same test task to obtain the analysis results. These results are then displayed in the task settings interface for user viewing.

[0115] For example, in one implementation, the processing method can be determined based on the nature of each parameter. For instance, for parameters reflecting typical memory performance (such as memory read / write bandwidth, memory latency, etc.), the average of the parameter's results from multiple tests in the same test task can be used to obtain the parameter's processing result. For parameters reflecting the system state under worst-case conditions (such as maximum memory temperature, processor queue length, etc.), the maximum value of the parameter's results from multiple tests in the same test task can be used to obtain the parameter's processing result.

[0116] Optionally, in another embodiment of this application, the test script is designated as an eye diagram test script; correspondingly, in this embodiment, the analysis and processing of test results belonging to the same test task in the test results stored in the designated storage location in step S402 includes: taking the average value of the eye height and eye width data in the test results belonging to the same test task stored in the designated storage location.

[0117] Understandably, eye height and eye width are core metrics for measuring signal integrity, representing the signal's noise immunity and timing stability, respectively. By averaging the eye height and eye width data from eye diagram test results belonging to the same test task, we can smooth out random interference during the testing process and obtain more statistically significant stable values, thereby enabling a more accurate assessment of the signal integrity under the current test memory.

[0118] For example, eye height and eye width data from test results belonging to the same test task stored in a specified storage location can be aggregated into an Excel table. Then, the average of all eye width data in the column containing eye width and the average of all eye height data in the column containing eye height can be taken. In this way, when the user clicks the analysis button on the interface, the capture, aggregation, and analysis of eye diagram test data can be completed automatically, greatly improving testing efficiency.

[0119] To better understand the memory testing method provided in the embodiments of this application, a specific example will be used for explanation below.

[0120] This example is based on an automated testing platform architecture, which mainly consists of three parts: a GUI interface (corresponding to the task settings interface mentioned above), signal processing, and data processing. The combined effect of these three control layers comprehensively improves the efficiency of DDR signal eye diagram testing.

[0121] (a) GUI interface

[0122] The GUI interface allows for more intuitive and convenient input of test parameters. The main selectable parameters in the GUI interface (corresponding to the task settings interface mentioned above) include the test memory location and the number of tests. In addition to parameter selection, there are function buttons such as: RUN, STOP, and Analyze. Clicking RUN in the GUI interface starts the test, clicking STOP ends the test, and clicking Analyze analyzes the test results. Users can select the memory module to be tested by checking the displayed slot icons and set the number of tests to obtain a test task. Users can set multiple tasks at once in the interface to generate a test task queue.

[0123] (II) Signal Processing

[0124] The primary function of the signal processing layer is to disable non-test memory (corresponding to memory modules inserted in non-test slots as mentioned above), ensuring that only memory modules inserted in the target slot (corresponding to the slot to be tested as mentioned above) are tested. This mainly includes the following steps: 1. Precise positioning of the memory chips (i.e., memory modules). 2. Writing the disable location to the BIOS firmware. 3. Memory controller configuration. 4. Implementing physical address disabling.

[0125] The first step is to accurately locate the memory chips and determine the physical address of the memory slot (corresponding to the slot mentioned above) to be disabled. This is achieved through a BIOS-level memory slot fingerprinting algorithm, which binds the memory slot identifier to the memory's physical address, creating a mapping table that records the relationship between the memory slot identifier and the memory's physical address. Based on this mapping table, precise location of a specific memory chip can be achieved even when all slots are fully populated. This allows for the identification and testing of various memory chip combinations without physically removing or reseating the memory chips.

[0126] Specifically, after the workstation is powered on, the BIOS boot process traverses all memory slots and assigns a unique physical address to each available memory unit, thereby constructing a mapping table from specific slot identifiers to memory physical addresses.

[0127] The second step is to write the disabled locations into the BIOS firmware. After the user selects the memory slot to be tested in the GUI interface, the memory chips installed in the other slots do not need to be tested by default. At this time, the disabled locations need to be written into the BIOS firmware. Specifically, the workstation sends the disabled slot (corresponding to the non-test slots mentioned above) identifier to the BIOS firmware through the kernel driver of the Linux operating system.

[0128] The third step is memory controller configuration. That is, the BIOS firmware resolves the disabled physical address range (corresponding to the memory physical address) based on the received disabled slot identifier and the mapping table recorded during BIOS startup (corresponding to the specified mapping table above), and configures the memory controller registers or memory mapping table to mark the resolved physical address range as inaccessible or disabled (corresponding to the reserved state above).

[0129] The fourth step is to disable physical address ranges. After the BIOS firmware marks the physical address range corresponding to the slot as disabled, the operating system and memory controller will ignore the memory region within that physical address range. Once disabled, the memory within that physical address range will no longer be recognized, thus enabling testing of the memory module inserted in the target slot.

[0130] (iii) Data processing.

[0131] After partially disabling DDR memory, the test will begin automatically based on the user's selections in the GUI interface. The test results will be stored in the Eye Diagram folder, and a log file named EYE_1.log will be saved (numbers will be stacked sequentially to avoid overwriting the original data). Afterwards, clicking the "Analyze" button will aggregate the eye height and eye width data from all logs in the Eye Diagram folder, generating a summary table.

[0132] Below, in conjunction with Figure 5 This example describes the testing process, including:

[0133] S501, build a DUT (Device Under Test); for example, you can fill all the memory slots on the workstation motherboard with memory modules to use it as a DUT.

[0134] S502, run the GUI tool and select the slot to be tested.

[0135] After powering on, run the GUI tool within the operating system. In the interface displayed after the GUI tool runs, the user selects the slots to be tested and sets information such as the number of tests. Click "RUN" to begin the test.

[0136] S503: Identify whether the memory modules in each slot are the memory modules to be tested; if yes, proceed to S505; otherwise, proceed to S504.

[0137] S504, disable the physical memory address of the non-test slot; return to S503.

[0138] The memory slot fingerprint recognition algorithm accurately locates the physical memory address of the slot under test and disables the physical memory addresses of the other slots.

[0139] S505, run the test script.

[0140] After disabling the physical memory addresses of non-test slots, run the test script. After each test, save the generated log to the Eye Diagram folder, and save the log file as EYE_1.log (numbers increment sequentially).

[0141] S506, check if the number of tests has been reached; if yes, proceed to S507; otherwise, proceed to S508.

[0142] S507, save the test results and analyze the data.

[0143] S508, save the test results and restart the DUT; return to S505.

[0144] If the number of tests for the current test task has not been reached, the test results will be retained, and the device under test will automatically restart to continue the next test. The test will be repeated according to the number of tests selected by the user until completion. The user clicks the "Analyze" button in the interface to extract the eye height and eye width data from all log files in the Eye Diagram folder, and averages the eye height and eye width data to generate a test report.

[0145] This solution enables automated testing, reducing testing time and significantly improving efficiency. It offers flexible testing capabilities, allowing verification of memory signal quality at specific locations based on requirements. Furthermore, it greatly reduces wear and tear on memory hardware, ensuring the overall stability of the testing system. A BIOS-level memory slot fingerprinting algorithm binds slot identifiers to physical addresses, enabling precise location of specific memory chips even when fully inserted. It can accurately perform eye diagram testing on specific memory locations even when hot-swapping is not supported, reducing hardware wear. Based on user needs, it can continuously and automatically capture, analyze, and summarize fully automated eye diagram data multiple times, significantly improving efficiency. It also supports multi-task queue management. After each test task is completed (e.g., Task 1 tests memory A, B, and C three times), the memory masking is removed, all memory is recognized, and the next test task selected by the GUI re-selects the memory to be tested, while all other memory is masked, continuing the next round of testing.

[0146] Corresponding to the above method embodiments, this application also provides a memory testing device, such as... Figure 6 As shown, the device includes:

[0147] The display module 610 is used to display a task setting interface when the operating system is running normally; wherein the task setting interface displays the identifier of the slot where the memory module is plugged in.

[0148] The first determining module 620 is used to determine that the slot identifier displayed by the user based on the task setting interface is a test slot set for the test task, and to determine the number of tests set by the user for the test task.

[0149] The sending module 630 is used to send the identifier of the slot to be tested to the BIOS firmware through the kernel driver of the operating system, so that the BIOS firmware disables the non-test slots according to the identifier of the slot to be tested.

[0150] The running module 640 is used to run a specified test script in response to the BIOS firmware completing the disabling of non-test slots.

[0151] The first detection module 650 is used to detect whether the number of times the specified test script has been run has reached the number of times the test task has been tested after the specified test script has finished running.

[0152] Return module 660 is used to return to the step of running the specified test script if the condition is not met.

[0153] Optionally, the identifiers of the memory slots displayed in the task settings interface are obtained in the following manner:

[0154] The kernel driver of the operating system sends a storage instruction to the BIOS firmware, so that the BIOS firmware stores the specified mapping table recorded during the BIOS boot process to the specified area according to the storage instruction; wherein, the specified mapping table records the mapping relationship between each memory physical address and the slot identifier;

[0155] Read the identifiers of each slot in the specified mapping table stored in the specified area to obtain the identifiers of the slots where memory modules are inserted.

[0156] Optionally, the BIOS firmware disables non-test slots in the following manner:

[0157] The BIOS firmware determines the memory physical address corresponding to other identifiers besides the identifier of the slot to be tested from a specified mapping table that records the mapping relationship between each memory physical address and the identifier of the slot.

[0158] The determined physical memory address is marked as reserved in the Address Range Descriptor structure ARDS table.

[0159] Optionally, the number of test tasks is multiple; the device further includes:

[0160] The second detection module is used to detect whether there are any unexecuted test tasks in the task list if the number of times the specified test script has been run reaches the number of times the currently executed test task has been tested.

[0161] The second determining module is used to determine the first unexecuted test task in the task list as the current test task if it exists, and send the identifier of the test slot of the current test task to the BIOS firmware through the kernel driver of the operating system, so that the BIOS firmware disables the non-test slot according to the identifier of the test slot of the current test task, and returns the step of running the specified test script in response to the BIOS firmware completing the disabling of the non-test slot.

[0162] Optionally, after displaying the task settings interface, the device further includes:

[0163] The generation module is used to generate a test task and save it to the end of the current task list in response to the user's save operation for the set test slot and test count in the task settings interface, and to reset the slot identifier and test count settings displayed in the task settings interface.

[0164] The third determining module is used to respond to a test operation triggered by the user in the task settings interface, determine the slot to be tested as the slot included in the first unexecuted test task in the task list, and execute the step of sending the identifier of the slot to be tested to the BIOS firmware through the kernel driver of the operating system.

[0165] Optionally, the device further includes:

[0166] The storage module is used to store the test results obtained after the specified test script has finished running to a specified storage location;

[0167] The analysis module is used to analyze and process test results belonging to the same test task stored in the specified storage location if the user clicks the analysis button in the task settings interface, and then display the processing results.

[0168] Optionally, the specified test script is an eye diagram test script;

[0169] The analysis module is specifically used for:

[0170] The eye height and eye width data from the test results belonging to the same test task stored in the specified storage location are averaged.

[0171] This application also provides an electronic device, such as... Figure 7 As shown, it includes a processor 701, a communication interface 702, a memory 703, and a communication bus 704, wherein the processor 701, the communication interface 702, and the memory 703 communicate with each other through the communication bus 704.

[0172] Memory 703 is used to store computer programs;

[0173] When the processor 701 executes the program stored in the memory 703, it implements the steps of any of the above memory testing methods.

[0174] The communication bus mentioned in the above electronic devices can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This communication bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used to represent it in the diagram, but this does not mean that there is only one bus or one type of bus.

[0175] The communication interface is used for communication between the aforementioned electronic devices and other devices.

[0176] The memory may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Optionally, the memory may also be at least one storage device located remotely from the aforementioned processor.

[0177] The processors mentioned above can be general-purpose processors, including central processing units (CPUs), network processors (NPs), etc.; they can also be digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.

[0178] In another embodiment provided in this application, a computer-readable storage medium is also provided, which stores a computer program that, when executed by a processor, implements the steps of any of the memory testing methods described above.

[0179] In another embodiment provided in this application, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to execute any of the memory testing methods described above.

[0180] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk (SSD)).

[0181] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0182] The various embodiments in this specification are described in a related manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the embodiments of devices, workstations, computer-readable storage media, and computer program products containing instructions are basically similar to the method embodiments, and therefore the descriptions are relatively simple; relevant parts can be referred to the descriptions of the method embodiments.

[0183] The above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application are included within the scope of protection of this application.

Claims

1. A memory testing method, characterized in that, The method includes: When the operating system is running normally, the task settings interface is displayed; wherein, the task settings interface displays the identifier of the slot where the memory module is plugged in; Determine the slot to be tested as the slot set by the user based on the slot identifier displayed in the task settings interface, and determine the number of tests set by the user for the test task. The kernel driver of the operating system sends the identifier of the slot to be tested to the BIOS firmware, so that the BIOS firmware disables the non-test slots according to the identifier of the slot to be tested. In response to the BIOS firmware completing the disabling of non-test slots, the specified test script is run. After the specified test script finishes running, check whether the number of times the specified test script has been run has reached the number of tests required for the test task. If the desired result is not achieved, return to the step of running the specified test script.

2. The method according to claim 1, characterized in that, The identifiers for memory slots displayed in the task settings interface are obtained as follows: The kernel driver of the operating system sends a storage instruction to the BIOS firmware, so that the BIOS firmware stores the specified mapping table recorded during the BIOS boot process to the specified area according to the storage instruction; wherein, the specified mapping table records the mapping relationship between each memory physical address and the slot identifier; Read the identifiers of each slot in the specified mapping table stored in the specified area to obtain the identifiers of the slots where memory modules are inserted.

3. The method according to claim 1, characterized in that, The BIOS firmware disables non-test slots in the following manner: The BIOS firmware determines the physical addresses corresponding to other identifiers besides the identifier of the slot to be tested from a specified mapping table that records the mapping relationship between each memory physical address and the identifier of the slot. The determined physical memory address is marked as reserved in the Address Range Descriptor structure ARDS table.

4. The method according to claim 1, characterized in that, The number of test tasks is multiple; the method further includes: If the number of times the specified test script is run reaches the number of times the currently executed test task is tested, then check if there are any unexecuted test tasks in the task list; If it exists, the first unexecuted test task in the task list is identified as the current test task. The kernel driver of the operating system sends the identifier of the slot to be tested for the current test task to the BIOS firmware, so that the BIOS firmware disables the non-test slot according to the identifier of the slot to be tested for the current test task, and returns the step of running the specified test script in response to the BIOS firmware completing the disabling of the non-test slot.

5. The method according to claim 4, characterized in that, After displaying the task settings interface, the method further includes: In response to the user's save operation on the set test slot and test count in the task settings interface, a test task is generated and saved to the end of the current task list, and the slot identifier and test count settings displayed in the task settings interface are reset. In response to a test operation triggered by the user in the task settings interface, the slot to be tested is determined to be the slot included in the first unexecuted test task in the task list, and the step of sending the identifier of the slot to be tested to the BIOS firmware through the kernel driver of the operating system is executed.

6. The method according to any one of claims 1-5, characterized in that, The method further includes: After the specified test script finishes running, the test results obtained will be stored in the specified storage location. If the user clicks the "Analyze" button in the task settings interface, the test results belonging to the same test task stored in the specified storage location will be analyzed and processed, and the processing results will be displayed.

7. The method according to claim 6, characterized in that, The specified test script is an eye diagram test script; The analysis and processing of test results belonging to the same test task stored in the specified storage location includes: The eye height and eye width data from the test results belonging to the same test task stored in the specified storage location are averaged.

8. A memory testing device, characterized in that, The device includes: The display module is used to display the task settings interface when the operating system is running normally; wherein the task settings interface displays the identifier of the slot where the memory module is plugged in. The first determining module is used to determine that the slot identifier displayed by the user based on the task setting interface is the slot to be tested set for the test task, and to determine the number of tests set by the user for the test task. The sending module is used to send the identifier of the slot to be tested to the BIOS firmware through the kernel driver of the operating system, so that the BIOS firmware disables the non-test slots according to the identifier of the slot to be tested. The running module is used to run a specified test script in response to the BIOS firmware completing the disabling of non-test slots. The first detection module is used to detect, after the specified test script has finished running, whether the number of times the specified test script has been run has reached the number of times the test task has been tested; The return module is used to return to the step of running the specified test script if the condition is not met.

9. A workstation, characterized in that, It includes a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus; Memory, used to store computer programs; A processor, when executing a program stored in memory, implements the steps of the method described in any one of claims 1-7.

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