Verification method, verification platform, device, medium and product for RDMA device
By setting up a storage proxy module and a comparison module on the RDMA verification platform, out-of-order data transmission and automated comparison of verification results are achieved, solving the problem of insufficient flexibility in existing RDMA verification schemes and improving the efficiency and accuracy of verification.
Patent Information
- Application Number
- CN202511115926.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-11
- Publication Date
- 2025-11-18
AI Technical Summary
Existing verification schemes for RDMA data paths are not very flexible and lack verification of the Doorbell function, resulting in verification methods that are not flexible and accurate enough.
A verification method and platform are adopted, including a sending host, a device under test, a storage proxy module, a comparison module, and a receiving host. The device under test automatically sends a read request carrying address information, the storage proxy module uses an association table to realize out-of-order data transmission, and the comparison module determines the verification result.
It simplifies the verification process, improves verification efficiency and accuracy, enhances verification flexibility and credibility, and reduces costs.
Smart Images

Figure CN120979977A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of data link verification, and in particular to a verification method and platform for RDMA devices, devices, media and products. BACKGROUND
[0002] In the field of modern high-performance computing and data centers, the efficiency and speed of data transmission are crucial to the overall performance of the system. Remote Direct Memory Access (RDMA) technology enables direct data transmission between network nodes by bypassing the remote host to access data in its memory. This technology greatly reduces the latency of data transmission and the overhead of the Central Processing Unit (CPU), improving the efficiency of data transmission. RDMA allows user-mode applications to directly read or write remote memory without going through the operating system, without kernel intervention and memory copy, saving a lot of CPU resources, improving system throughput and reducing system network communication delay. AXI-RDMA is a device with efficient data transmission path based on this technology combined with the AXI (Advanced Extensible Interface) bus standard.
[0003] In the AXI-RDMA data path, the Doorbell function is a key technical feature. It allows a node (application) to notify another node (receiver) of new data arrival by sending a signal (i.e. "doorbell"). RDMA will retrieve the complete instructions from the corresponding address according to the doorbell, and prepare the address and configuration information needed for data transmission. This mechanism greatly simplifies the data transmission process, reduces unnecessary waiting and polling, and further improves the efficiency and response speed of data transmission.
[0004] However, with the continuous development of technology, the complexity and reliability requirements of AXI-RDMA and its Doorbell function are becoming higher and higher. In order to ensure that the AXI-RDMA data path can run stably and efficiently in practical applications, it is essential to conduct strict verification. The design of verification methods and devices needs to consider various possible scenarios to ensure that the AXI-RDMA data path and its Doorbell function can work normally in various situations.
[0005] In summary, verification methods and equipment for the AXI-RDMA data path and its Doorbell function are crucial to ensuring the stable and efficient operation of this high-performance data transmission technology in practical applications. By employing advanced verification methods and designing specialized verification equipment, the performance and reliability of the AXI-RDMA data path and its Doorbell function can be comprehensively and accurately evaluated, providing strong technical support for the development of high-performance computing and data centers. Existing verification schemes for the RDMA data path are limited by restrictions on the triggering order and access address of RDMA read / write operations, and lack verification of the Doorbell function, resulting in poor scheme flexibility. Summary of the Invention
[0006] This invention provides a verification method, verification platform, equipment, medium, and product for RDMA devices, in order to solve the technical problem of poor flexibility in existing verification schemes.
[0007] According to one aspect of the present invention, a verification method for an RDMA device is provided, applied to a verification platform for an RDMA device; the verification platform includes at least: a transmitting host, a device under test, a storage proxy module, a comparison module, and a receiving host; the method includes:
[0008] In response to the device under test receiving a target type data packet carrying at least first address information sent by the sending host, the device under test automatically sends a read request carrying at least the first address information to the storage proxy module; wherein, the target type data packet has the function of triggering other data packets to be sent automatically;
[0009] The device under test automatically receives read / write instructions carrying at least the second address information from the storage proxy module, and automatically forwards the read / write instructions carrying the second address information to the receiving host.
[0010] The comparison module determines the verification result of the device under test based on the first address information and the second address information.
[0011] According to another aspect of the present invention, a verification platform for RDMA devices is provided, comprising: a transmitting host, a device under test, a storage proxy module, a comparison module, and a receiving host;
[0012] The input terminal of the device under test is connected to the transmitting host, and the output terminal of the device under test is connected to the storage proxy module and the receiving host respectively; the output terminals of the transmitting host, the storage proxy module, and the receiving host are all connected to the comparison module.
[0013] In response to the to-be-tested device receiving the target type data packet sent by the sending host and carrying the first address information, the to-be-tested device automatically sends a read request carrying the first address information to the storage proxy module; wherein the target type data packet has a function of triggering other data packets to automatically send;
[0014] The to-be-tested device automatically receives the read / write instruction carrying the second address information fed back by the storage proxy module, and automatically forwards the read / write instruction carrying the second address information to the receiving host;
[0015] The comparison module determines the verification result of the to-be-tested device based on the first address information and the second address information.
[0016] According to another aspect of the present application, an electronic device is provided, which comprises:
[0017] at least one processor; and
[0018] a memory connected to the at least one processor in communication; wherein,
[0019] The memory stores a computer program executable by the at least one processor, and the computer program is executed by the at least one processor to enable the at least one processor to perform the verification method for the RDMA device according to any one of the embodiments of the present application.
[0020] According to another aspect of the present application, a computer readable storage medium is provided, which stores computer instructions for enabling a processor to perform the verification method for the RDMA device according to any one of the embodiments of the present application when executed by the processor.
[0021] According to another aspect of the present application, a computer program product is provided, which comprises a computer program for implementing the verification method for the RDMA device according to any one of the embodiments of the present application when executed by a processor.
[0022] The technical scheme of the embodiment of the present application, in the case that the to-be-tested device receives the target type data packet carrying the first address information sent by the sending host, automatically sends the read request carrying the first address information to the storage proxy module by the to-be-tested device, through the verification function integrated into the target type data packet, the data reading process can be automatically triggered, the working process of the RDMA device in the actual application is simulated, not only the verification process is simplified, but also the verification efficiency is significantly improved; at the same time, the storage proxy module is set on the verification platform, so that after the to-be-tested device automatically sends the read request carrying the first address information to the storage proxy module, the storage proxy module can automatically query the association table according to the first address information to obtain the associated second address information, and automatically forward the read / write instruction carrying the second address information to the receiving host, thereby effectively avoiding the problem in the prior art that the module in the memory is empty before writing data, and when data is read from the module, the data packet associated with the effective second address information cannot be obtained, resulting in the sequence operation of writing first and then reading, and the present scheme breaks through the shackles of writing the first address information first in the prior art, realizes the effect of sending in disorder, and significantly improves the flexibility and accuracy of the verification process; at the same time, the verification result of the to-be-tested device is obtained based on the first address information and the second address information through the comparison module, so that the verification process is closer to the real application scene, and the verification credibility is enhanced and the cost is reduced.
[0023] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present application, nor is it used to limit the scope of the present application. Other features of the present application will become apparent from the following description. BRIEF DESCRIPTION OF DRAWINGS
[0024] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed in the embodiment description will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.
[0025] Figure 1 is a flowchart of a verification method for an RDMA device provided by an embodiment of the present application;
[0026] Figure 2 is a flowchart of another verification method for an RDMA device provided by an embodiment of the present application;
[0027] Figure 3 is a structural block diagram of a verification platform for an RDMA device provided by an embodiment of the present application;
[0028] Figure 4 is another structural diagram of a verification platform for an RDMA device provided by an embodiment of the present application;
[0029] Figure 5 is another structural diagram of a verification platform for an RDMA device provided by an embodiment of the present application;
[0030] Figure 6 is a structural diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0031] In order to enable persons skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by persons skilled in the art without creative labor should fall within the scope of protection of the present application.
[0032] It should be noted that the terms "first", "second", and the like in the specification and claims of the present application and the above-described drawings are used to distinguish similar objects, and do not necessarily indicate a specific order or a chronological sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device that includes a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but can include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0033] It should be noted that, in order to facilitate the understanding of the present application, the UVM verification platform involved in the present application is described. Generally, the UVM verification platform adopts a hierarchical and modular architecture, and usually includes components such as Agent, Driver, Monitor, Scoreboard, Reference Model, etc.
[0034] The comparison module in the embodiments of the present application has the same function as the score board, and the agent includes a plurality of different agent modules. For example, the sending host, the device under test, the storage agent module, the comparison module and the receiving host in the present application are all different agent modules.
[0035] In an embodiment, Figure 1is a flowchart of a verification method for an RDMA device provided by an embodiment of the present application. The embodiment can be applicable to the verification of an AXI-RDMA data path supporting target type functions. The method can be executed by a verification platform for an RDMA device, which can be implemented in the form of hardware and / or software, and can be configured in an electronic device. In an example, the verification platform for an RDMA device can be a UVM verification platform, which at least includes a sending host, a device under test, a storage proxy module, a comparison module, and a receiving host. The input end of the device under test is connected to the sending host, and the output end of the device under test is connected to the storage proxy module and the receiving host respectively. The output end of the sending host, the output end of the storage proxy module, and the output end of the receiving host are all connected to the comparison module. The storage proxy module is used to simulate the behavior of a storage space.
[0036] As shown in Figure 1 , the method includes:
[0037] S110, in response to the device under test receiving a target type data packet carrying at least first address information sent by the sending host, automatically sending a read request carrying at least the first address information to the storage proxy module through the device under test.
[0038] The target type data packet has the function of triggering other data packets to be automatically sent. Exemplarily, the target type data packet can include a Doorbell data packet, or other types of data packets having the function of triggering other data packets to be automatically sent. In an example, the device under test refers to a device whose function in the current test scenario needs to be verified. Exemplarily, the device under test can be an AXI-Stream device, and an RDMA module is integrated in the device under test. In an example, the function verification in the current test scenario can include, but is not limited to, one of the following: function correctness verification, data path verification, and timing verification.
[0039] In an example, the first address information is used to identify an identifier of a data storage location in the storage proxy module, and the target type data packet at least includes the first address information, and can further include associated write data and write instructions. Exemplarily, the write instructions can be RDMA write instructions, and the write data can be target type data. In an example, the read request refers to a request of the DUT to the storage proxy module for obtaining data, i.e., obtaining data from the storage proxy module and transmitting the data to the DUT. The read request at least carries the first address information, and further can include associated write data and write instructions. When it is necessary to test the function of the current test scenario, a test case can be sent to the sending host to trigger the sending host to automatically trigger the device verification process; when the sending host receives the test case, the sending host can send the target type data packet at least carrying the first address information to the DUT; when the DUT receives the target type data packet at least carrying the first address information, the DUT automatically sends a read request at least carrying the first address information to the storage proxy module to obtain the related information from the first address information.
[0040] S120, automatically receiving, by the DUT, the read / write instructions at least carrying the second address information fed back by the storage proxy module, and automatically forwarding the read / write instructions at least carrying the second address information to the receiving host.
[0041] In an example, the second address information is obtained by the storage proxy module according to the first address information querying the association table; and the association table contains a mapping relationship corresponding to the first address information and the second address information.
[0042] In an example, the read / write instructions refer to instructions for data reading and writing operations on the receiving host; and the second address information is used to identify an identifier of a data storage location in the receiving host. In an embodiment, the read / write instructions at least include the second address information, and can further include associated write data and write instructions. Exemplarily, the write instructions can be RDMA write instructions or other write instructions, which are not limited, and the write data can be target type data or other data, which are not limited.
[0043] It should be noted that the data content contained in the read / write instructions is related to the first address information, i.e., the data content carried in the read / write instructions is the same as the data content contained in the address pointed to by the first address information. In an embodiment, the DUT can automatically receive the read / write instructions at least carrying the second address information fed back by the storage proxy module, and then the DUT automatically forwards the read / write instructions at least carrying the second address information to the receiving host.
[0044] S130, determining, by the comparison module, a verification result of the DUT based on the first address information and the second address information.
[0045] In an example, the verification result of the DUT is used to represent whether the function of the DUT in the current test scenario is verified, i.e., the verification result of the DUT includes: verification pass and verification fail. In an example, in the case that the read / write instruction contains the second address information, and the target type data packet contains the first address information, if the consistency comparison result is obtained by comparing the first address information sent by the DUT and the first address information sent by the storage proxy module through the comparison module, and the association comparison result is obtained by comparing the first address information sent by the storage proxy module and the second address information sent by the receiving host through the comparison module, if the consistency comparison result is consistent, and the association comparison result satisfies the mapping relationship, it is determined that the verification result of the DUT is verification pass; if the consistency comparison result is obtained by comparing the first address information sent by the DUT and the first address information sent by the storage proxy module through the comparison module, and the association comparison result is obtained by comparing the first address information sent by the storage proxy module and the second address information sent by the receiving host through the comparison module, if the consistency comparison result is inconsistent, or the association comparison result does not satisfy the mapping relationship, it is determined that the verification result of the DUT is verification fail.
[0046] In an example, in the case that the read / write instruction contains the second address information and the associated write data and write instruction, and the target type data packet contains the write data and write instruction corresponding to the first address information, if the consistency comparison result is obtained by comparing the first address information sent by the DUT and the first address information sent by the storage proxy module through the comparison module, and the association comparison result is obtained by comparing the first address information sent by the storage proxy module and the second address information sent by the receiving host through the comparison module, if the consistency comparison result is consistent, and the association comparison result satisfies the mapping relationship, and the write data associated with the first address information is consistent with the write data associated with the second address information, and the write instruction associated with the first address information satisfies the mapping relationship with the write instruction associated with the second address information, it is determined that the verification result of the DUT is verification pass; if the consistency comparison result is obtained by comparing the first address information sent by the DUT and the first address information sent by the storage proxy module through the comparison module, and the association comparison result is obtained by comparing the first address information sent by the storage proxy module and the second address information sent by the receiving host through the comparison module, if the consistency comparison result is inconsistent, or the association comparison result does not satisfy the mapping relationship, or the write data associated with the first address information is inconsistent with the write data associated with the second address information, or the write instruction associated with the first address information does not satisfy the mapping relationship with the write instruction associated with the second address information, it is determined that the verification result of the DUT is verification fail.
[0047] The technical scheme of the embodiment can automatically trigger the data reading process by integrating the verification function of the target type data packet, simulate the workflow in actual application of RDMA, simplify the verification process, and significantly improve the verification efficiency; meanwhile, the storage proxy module is set on the verification platform, so that after the read request carrying the first address information is automatically sent to the storage proxy module by the to-be-tested device, the storage proxy module can automatically query the association table according to the first address information to obtain the associated second address information, and automatically forward the read / write instruction carrying the second address information to the receiving host, thereby effectively avoiding the problem that in the prior art, the module in the memory is empty before data is written, and when data is read from the module, the effective data packet associated with the second address information cannot be obtained, resulting in the sequence operation of writing first and then reading, and the association table of the one-to-one mapping relationship between the first address information and the second address information is pre-set in the storage proxy module, which breaks the shackles of writing the first address information first in the prior art, realizes the effect of sending in random order, and significantly improves the flexibility and accuracy of the verification process; meanwhile, the comparison module compares the first address information and the second address information to obtain the verification result of the to-be-tested device, so that the verification process is closer to the real application scenario, and the verification credibility is enhanced and the cost is reduced.
[0048] In an embodiment, Figure 2 is a flowchart of another verification method for an RDMA device provided by an embodiment of the application, and the embodiment further details the receiving process of the target type data packet, the sending process of the read request, the transmission process of the read / write instruction, and the determination process of the verification result on the basis of the above-mentioned embodiment. As shown in Figure 2 the method comprises the following steps.
[0049] S210. Sending, by a sending host, at least a target type data packet carrying first address information to a to-be-tested device.
[0050] In an example, the sending host and the to-be-tested device can be connected through a pre-configured interface, and the sending host can send the target type data packet to the to-be-tested device through the interface and carry the first address information representing the data storage position in the storage proxy module in the target type data packet.
[0051] S220. Analyzing, by a switching module in the to-be-tested device, the target type data packet carrying at least the first address information to obtain the first address information.
[0052] In an example, the switching module is configured to classify the received data packet and distribute the classified data packet to a corresponding module. In an embodiment, the sending host can send a target type data packet carrying at least the first address information to the switching module in the device under test, and the switching module can strip the target type data packet carrying at least the first address information to obtain the first address information.
[0053] S230, distributing the first address information to the RDMA module inside the device under test through the switching module in the device under test.
[0054] After the switching module in the device under test receives the target type data packet carrying at least the first address information, the device under test strips the target type data packet carrying at least the first address information to obtain the first address information, and forwards the first address information to the internal RDMA module through the internal interface.
[0055] S240, automatically sending a read request carrying at least the first address information to the storage proxy module through the RDMA module inside the device under test.
[0056] In an example, the device under test is connected to the storage proxy module through an interface. After the RDMA module receives the target type data packet carrying at least the first address information, the RDMA module sends a read request carrying at least the first address information to the storage proxy module through the interface. In an example, the read request carrying at least the first address information can also be referred to as a read instruction carrying at least the first address information.
[0057] S250, automatically receiving a read / write instruction carrying at least the second address information fed back by the storage proxy module through the device under test.
[0058] In an example, the read / write instruction can be an RDMA read / write instruction. The device under test automatically receives the relevant information contained in the data storage location pointed to by the first address information read from the storage proxy module. If the data storage location pointed to by the first address information contains the second address information, the device under test automatically receives the read / write instruction carrying the second address information fed back by the storage proxy module. If the data storage location pointed to by the first address information contains the second address information, the associated write data and write instruction, the device under test automatically receives the read / write instruction carrying the second address information and the associated write data and write instruction fed back by the storage proxy module.
[0059] S260, in the case where the read / write instruction contains the second address information and the associated write data and write instruction, encapsulating the second address information and the associated write data and write instruction into a first message according to a target message format through the device under test.
[0060] In an example, the target message format refers to a format that can be accurately sent, received and understood by the DUT as the sender and the receiving host as the receiver. In an example, the target message format can specify the following information: field composition, data type, encoding method and message structure.
[0061] In an example, after the DUT receives the read / write instruction containing the second address information and the associated write data and write instruction, the DUT temporarily stores the read / write instruction containing the second address information and the associated write data and write instruction, and uses the internal other message packaging module to convert the read / write instruction containing the second address information and the associated write data and write instruction into the specified format of the sending, forming the first message.
[0062] S270, automatically forwarding the first message to the receiving host.
[0063] In an example, the DUT and the receiving host are connected through an interface. The DUT can send the first message to the receiving host through the interface.
[0064] S280, parsing the first message by the receiving host to obtain the second address information and the associated write data and write instruction.
[0065] After the receiving host receives the first message, the receiving host parses the first message and, after stripping the protocol header, identifies and extracts the second address information and the associated write data and write instruction.
[0066] S290, sending the second address information and the associated write data and write instruction to the comparison module.
[0067] The receiving host sends the identified and extracted second address information and the associated write data and write instruction to the comparison module.
[0068] S2100, sending the first address information and the associated write data and write instruction to the comparison module by the storage proxy module.
[0069] S2110, comparing the first address information sent by the sending host and the first address information sent by the storage proxy module by the comparison module to obtain a consistency comparison result.
[0070] In an embodiment, the comparison module compares the first address information sent by the sending host and the first address information sent by the storage proxy module to determine whether the first address information sent by the sending host and the first address information sent by the storage proxy module are consistent. If they are consistent, it is determined that the consistency comparison result is consistent. If they are not consistent, it is determined that the consistency comparison result is inconsistent.
[0071] S2120, the first address information sent by the storage agent module and the second address information sent by the receiving host are compared by the comparison module, and the corresponding association comparison result is obtained according to the mapping relationship between the first address information and the second address information contained in the association table.
[0072] The association comparison result is used to represent whether the first address information sent by the storage agent module and the second address information sent by the receiving host satisfy the pre-configured mapping relationship. The mapping relationship can be understood as that there is a corresponding rule between the first address information sent by the storage agent module and the second address information sent by the receiving host, so that the first address information can be uniquely mapped to the second address information through a certain rule.
[0073] In the embodiment, the comparison module compares the first address information sent by the storage agent module and the second address information sent by the receiving host to determine the relationship therebetween. If the second address information and the first address information satisfy the pre-configured mapping relationship, it is determined that the association comparison result satisfies the mapping relationship. If the mapping relationship between the second address information and the first address information does not match the mapping relationship between the first address information and the second address information contained in the association table, it is determined that the association comparison result does not satisfy the mapping relationship.
[0074] S2130, in the case that the consistency comparison result is consistent and the association comparison result satisfies the mapping relationship, it is determined that the verification result of the to-be-tested device is verified to pass.
[0075] In the embodiment, if the consistency comparison result output by the comparison module is consistent and the association comparison result satisfies the mapping relationship, it is determined that the verification result of the to-be-tested device is verified to pass.
[0076] S2140, in the case that the consistency comparison result is inconsistent or the association comparison result does not satisfy the mapping relationship, it is determined that the verification result of the to-be-tested device is verified to fail.
[0077] In the embodiment, if the consistency comparison result output by the comparison module is inconsistent or the association comparison result does not satisfy the mapping relationship, it is determined that the verification result of the to-be-tested device is verified to fail.
[0078] The technical scheme of the embodiment is characterized in that a storage proxy module is arranged on the verification platform, and the sending host sends a target type data packet carrying at least first address information to the device under test; the target type data packet carrying at least the first address information is analyzed by the switching module in the device under test to obtain the first address information; the first address information is distributed to the RDMA module inside the device under test by the switching module in the device under test, so as to ensure that the first address information is distributed to the matching RDMA module, and the RDMA module inside the device under test automatically sends a read request carrying the first address information to the storage proxy module, so that the storage proxy module automatically obtains the associated second address information from the first address information, and automatically forwards a read / write instruction carrying the second address information to the receiving host, thereby effectively avoiding the sequence operation of writing first and reading later in the prior art, and significantly improving the flexibility and accuracy of the verification process; meanwhile, in the case that the device under test receives the target type data packet carrying the first address information sent by the sending host, the device under test automatically sends a read request carrying the first address information to the storage proxy module, and by integrating the verification function of the target type data packet, the data reading process can be automatically triggered, the working process of the RDMA device in the actual application is simulated, the verification process is simplified, and the verification efficiency is significantly improved; meanwhile, the consistency of the first address information sent by the storage proxy module and the first address information sent by the sending host is compared by the comparison module, and the association of the first address information sent by the storage proxy module and the second address information sent by the receiving host is compared by the comparison module, and the verification result of the device under test is obtained, so that the verification process is closer to the real application scenario, and the storage device as a hardware device does not need to be arranged on the verification platform, thereby reducing the hardware cost.
[0079] In an embodiment, the comparison module determines the verification result of the device under test based on the first address information and the second address information, and further includes: the comparison module compares the write data and the write instruction related to the first address information sent by the sending host, and the write data and the write instruction related to the first address information sent by the storage proxy module, to obtain a consistency comparison result; the comparison module compares the write data and the write instruction related to the first address information sent by the storage proxy module, and the write data and the write instruction related to the second address information sent by the receiving host, and obtains an association comparison result according to the association table; in the case that the consistency comparison result is consistent and the association comparison result satisfies the mapping relationship, it is determined that the verification result of the device under test is verified; in the case that the consistency comparison result is inconsistent, or the association comparison result does not satisfy the mapping relationship, it is determined that the verification result of the device under test is not verified.
[0080] In an embodiment, on the basis of comparing the first address information sent by the sending host and the first address information sent by the storage proxy module, and comparing the first address information sent by the storage proxy module and the second address information sent by the receiving host, the associated write data and write instruction are further compared by the comparison module, so that the consistency between the first address information sent by the sending host and the first address information sent by the storage proxy module can be further compared, and the association between the first address information sent by the storage proxy module and the second address information sent by the receiving host can be further compared, thereby increasing the reliability of the verification result.
[0081] In an embodiment, Figure 3 is a structural block diagram of a verification platform for an RDMA device provided by an embodiment of the present application. As Figure 3 shown, the verification platform includes a sending host 310, a device under test 320, a storage proxy module 330, a comparison module 340, and a receiving host 350.
[0082] The input end of the device under test 320 is connected with the sending host 310, and the output end of the device under test 320 is connected with the storage proxy module 330 and the receiving host 350 respectively; the output end of the sending host 310, the output end of the storage proxy module 330, and the output end of the receiving host 350 are all connected with the comparison module 340.
[0083] In response to the device under test 320 receiving a target type data packet carrying at least first address information sent by the sending host 310, the device under test 320 automatically sends a read request carrying at least the first address information to the storage proxy module 330; the target type data packet has the function of triggering other data packets to be automatically sent.
[0084] The device under test 320 automatically receives a read / write instruction carrying at least second address information fed back by the storage proxy module 330, and automatically forwards the read / write instruction carrying the second address information to the receiving host 350; the second address information is obtained by the storage proxy module 330 according to the first address information querying an association table; the association table contains a one-to-one mapping relationship between the first address information and the second address information.
[0085] The comparison module 340 determines the verification result of the device under test 320 based on the first address information and the second address information.
[0086] The technical scheme of the embodiment can automatically trigger the data reading process by automatically sending the read request carrying the first address information to the storage proxy module through the to-be-tested device in the case that the to-be-tested device receives the target type data packet carrying the first address information sent by the sending host, simulate the workflow in the actual application of RDMA, simplify the verification process, and significantly improve the verification efficiency; meanwhile, the storage proxy module is arranged on the verification platform, so that the storage proxy module can automatically query the association table according to the first address information to obtain the associated second address information and automatically forward the read / write instruction carrying the second address information to the receiving host after the to-be-tested device automatically sends the read request carrying the first address information to the storage proxy module, thereby effectively avoiding the situation that the module in the memory is empty before data is written, the effective second address information associated data packet cannot be obtained when data is read from the module, and the sequential operation of writing first and then reading is required in the prior art, the association table of the one-to-one mapping relationship between the first address information and the second address information is prearranged in the storage proxy module, the shackles of writing the first address information first in the prior art are broken, the effect of sending out of order is realized, and the flexibility and accuracy of the verification process are significantly improved; meanwhile, the comparison module compares the first address information and the second address information to obtain the verification result of the to-be-tested device, the verification process is closer to the real application scenario, the verification credibility is enhanced, and the cost is reduced.
[0087] In an embodiment, in response to the to-be-tested device receiving the target type data packet carrying at least the first address information sent by the sending host, specifically:
[0088] sending, by the sending host, the target type data packet carrying at least the first address information to the to-be-tested device;
[0089] analyzing, by the switching module in the to-be-tested device, the target type data packet carrying at least the first address information to obtain the first address information;
[0090] allocating, by the switching module in the to-be-tested device, the first address information to the RDMA module inside the to-be-tested device;
[0091] Correspondingly, automatically sending, by the to-be-tested device, the read request carrying at least the first address information to the storage proxy module, specifically:
[0092] automatically sending, by the RDMA module inside the to-be-tested device, the read request carrying at least the first address information to the storage proxy module.
[0093] In an embodiment, the read / write instruction carrying the second address information fed back by the storage proxy module is automatically received by the to-be-tested device, and the read / write instruction carrying the second address information is automatically forwarded to the receiving host, and the read / write instruction carrying the second address information is specifically used for:
[0094] The read / write instruction carrying the second address information fed back by the storage proxy module is automatically received by the to-be-tested device;
[0095] In the case that the read / write instruction contains the second address information and associated write data and write instruction, the second address information and associated write data and write instruction are encapsulated by the to-be-tested device according to a target message format, and a first message is obtained;
[0096] The first message is automatically forwarded to the receiving host.
[0097] In an embodiment, the first message is parsed by the receiving host, and the second address information and associated write data and write instruction are obtained;
[0098] The second address information and associated write data and write instruction are sent to the comparison module.
[0099] In an embodiment, before the verification result of the to-be-tested device is determined by the comparison module based on the first address information and the second address information, the method further comprises:
[0100] The first address information and associated write data and write instruction are sent to the comparison module by the storage proxy module.
[0101] In an embodiment, the verification result of the to-be-tested device is determined by the comparison module based on the first address information and the second address information, and the verification result of the to-be-tested device is specifically used for:
[0102] The first address information sent by the sending host and the first address information sent by the storage proxy module are compared by the comparison module, and a consistency comparison result is obtained;
[0103] The first address information sent by the storage proxy module and the second address information sent by the receiving host are compared by the comparison module, and an association comparison result is obtained according to a mapping relationship between the first address information and the second address information contained in the association table;
[0104] In the case that the consistency comparison result is consistent, and the association comparison result satisfies the mapping relationship, it is determined that the verification result of the to-be-tested device is verified to pass;
[0105] In the case that the consistency comparison result is inconsistent, or the association comparison result does not satisfy the mapping relationship, it is determined that the verification result of the to-be-tested device is verified to fail.
[0106] In an embodiment, the comparison module determines the verification result of the to-be-tested device based on the first address information and the second address information, and is further configured to:
[0107] The comparison module compares the write data and the write instruction related to the first address information sent by the sending host with the write data and the write instruction related to the first address information sent by the storage proxy module, and obtains a consistency comparison result.
[0108] The comparison module compares the write data and the write instruction related to the first address information sent by the storage proxy module with the write data and the write instruction related to the second address information sent by the receiving host, and obtains an association comparison result according to the association table.
[0109] In a case where the consistency comparison result is consistent and the association comparison result satisfies the mapping relationship, it is determined that the verification result of the to-be-tested device is passed.
[0110] In a case where the consistency comparison result is inconsistent, or the association comparison result does not satisfy the mapping relationship, it is determined that the verification result of the to-be-tested device is failed.
[0111] The verification platform provided in the embodiments of the present application can execute the device verification method provided in any of the embodiments of the present application, and has the corresponding function modules and beneficial effects of the execution method.
[0112] In an embodiment, Figure 4 is another structural block diagram of the verification platform for the RDMA device provided in the embodiments of the present application. In the present embodiment, the sending host is the host agent, the to-be-tested device is the AXI-Stream device, the storage proxy module is the mem agent, the receiving host is the out agent, the first message is the message 1, the first address information is the address 1, the second address information is the address 2, and the target type data packet is the Doorbell data packet. The implementation process of the verification platform is described by taking the Doorbell data packet as an example. The structural block diagram of the verification device of the AXI-RDMA data channel is adjusted in the present embodiment. As shown in Figure 4 After the UVM infrastructure is built, the verification process is started, including the following steps:
[0113] Step one: the host agent sends the Doorbell data packet to the AXI-Stream device as the to-be-tested module through the host_if (interface), wherein the Doorbell data packet carries the address 1.
[0114] Step two: the switching module in the AXI-Stream device receives the Doorbell data packet, and forwards the Doorbell data packet to the internal RDMA module through the internal interface.
[0115] Step three: RDMA module receives the Doorbell packet and sends a read instruction to the mem agent through the mem_if (interface) to get the RDMA read / write instruction from address 1. The RDMA read / write instruction contains: address 2 of the out agent as the remote read / write target, write data 1 and instruction 1.
[0116] Step four: AXI-stream device temporarily stores the RDMA read / write instruction and uses other message encapsulation modules inside the device to convert the RDMA read / write instruction into the specified format for sending, forming message 1.
[0117] Step five: AXI-Stream device sends message 1 to the out agent through the out_if (interface). At this time, the AXI-Stream device has completed its work.
[0118] Step six: out agent receives and parses message 1, extracts address 2, write data 1 and instruction 1 after stripping the protocol header.
[0119] Step seven: host agent sends address 1 (i.e. inside the host agent) and associated write data 1 and instruction 1 to the scoreboard module, mem agent sends address 1 and associated write data 1 and instruction 1 (i.e. inside the mem agent) to the scoreboard module, and out agent sends the extracted address 2 and associated write data 1 and instruction 1 (i.e. inside the out agent) to the scoreboard module.
[0120] Step eight: scoreboard module performs consistency comparison on address 1 and associated write data 1 and instruction 1 sent by the host agent and address 1 and associated write data 1 and instruction 1 sent by the mem agent, and performs association comparison on address 1 and associated write data 1 and instruction 1 (i.e. inside the mem agent) sent by the mem agent and address 2 and associated write data 1 and instruction 1 (i.e. inside the out agent) sent by the out agent, to verify whether the AXI-Stream device containing the RDMA module is working correctly.
[0121] In an embodiment, Figure 5is a structural block diagram of another verification platform for an RDMA device provided by an embodiment of the present application. In the embodiment, a sending host is taken as a Host agent (abbreviated as Host), a device under test is taken as an AXI-Stream device, a storage agent module is taken as a storage space, and a receiving host is taken as a remote target memory space, and the implementation process of the verification platform is described by taking the above as an example. The AXI-Stream devices send data to the receiving host through a transfer module (abbreviated as transfer). As shown in Figure 5 the figure, the following processes are included:
[0122] The ports between the Host, the transfer module and the device under test are connected by using the TLM communication technology of UVM. The Host sends a Doorbell data packet carrying first address information to an RDMA module (abbreviated as RDMA) inside the AXI-Stream device. The RDMA retrieves the second address information originally written in the storage space and the associated write data and RDMA write instruction according to the first address information in the Doorbell data packet. It is checked whether the corresponding second address information has associated data, if yes, the associated write data and write instruction are obtained, and then it is judged whether it is an RDMA write instruction, if yes, the data payload (i.e. the first address information) is extracted according to the packet header information, the first address information as an actual write address and the associated write data and write instruction (including reversing the data order and storing to an associated array) are obtained. Then the first address information in the storage space is compared with the second address information actually received by the transfer module by using a comparison module, if the comparison result of the association between the two satisfies a mapping relationship, the verification is passed, otherwise it is not passed. The first port and the second port are created in the UVM component, and are connected with the receiving and sending packet transmission ports of the VIP component of the axi_stream Host respectively. The two ports store the received and sent packets to different queues respectively.
[0123] The present solution can effectively solve the problem that the existing verification solution for the AXI_Stream RDMA data path has limitations on the order of triggering RDMA read and write operations and the access address, and the flexibility of the solution is poor.
[0124] In an embodiment, Figure 6 is a structural block diagram of an electronic device provided by an embodiment of the present application, as shown in Figure 6The diagram illustrates a schematic representation of an electronic device 10 that can be used to implement embodiments of the present invention. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices (e.g., helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the invention described and / or claimed herein.
[0125] like Figure 6 As shown, the electronic device 10 includes at least one processor 11 and a memory, such as a read-only memory (ROM) 12 or a random access memory (RAM) 13, communicatively connected to the at least one processor 11. The memory stores computer programs executable by the at least one processor. The processor 11 can perform various appropriate actions and processes based on the computer program stored in the ROM 12 or loaded from storage unit 18 into the RAM 13. The RAM 13 may also store various programs and data required for the operation of the electronic device 10. The processor 11, ROM 12, and RAM 13 are interconnected via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.
[0126] Multiple components in electronic device 10 are connected to I / O interface 15, including: input unit 16, such as keyboard, mouse, etc.; output unit 17, such as various types of displays, speakers, etc.; storage unit 18, such as disk, optical disk, etc.; and communication unit 19, such as network card, modem, wireless transceiver, etc. Communication unit 19 allows electronic device 10 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0127] Processor 11 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Processor 11 performs the various methods and processes described above, such as verification methods for RDMA devices.
[0128] In some embodiments, the verification method for an RDMA device can be implemented as a computer program tangibly embodied in a computer readable storage medium, e.g., storage unit 18. In some embodiments, portions of or all of the computer program can be loaded onto the electronic device 10 via, e.g., ROM 12 and / or communication unit 19. When a computer program is loaded onto RAM 13 and executed by processor 11, one or more of the steps of the verification method for an RDMA device as described above can be performed. Alternatively, in other embodiments, processor 11 can be configured to perform the verification method for an RDMA device by other any suitable means, e.g., with the aid of firmware.
[0129] The various implementations of the system and techniques described above can be realized in digital electronic circuitry, integrated circuitry, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on a chip (SOC), a programmable logic device (PLD), a computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0130] Computer programs used to implement the processes of the present application can be written in any combination of one or more programming languages. These computer programs can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the computer program, when executed, implements the functions / acts specified in the flowcharts and / or block diagrams. The computer program can be executed entirely on a machine, partially on a machine, partially on a machine as a stand-alone software package, partially on a machine and partially on a remote machine or entirely on a remote machine or server.
[0131] In the context of the present application, a computer-readable storage medium can be a tangible medium that can contain or store a computer program for use by or in connection with an instruction execution system, apparatus, or device. A computer-readable storage medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium can be a machine-readable signal medium. More specific examples of a machine-readable storage medium will include one or more lines of a program of instructions in a transitory signal, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0132] To provide for interaction with a user, the systems and techniques described here can be implemented on an electronic device having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the electronic device. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0133] The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), a blockchain network, and the Internet.
[0134] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Servers can be cloud servers, also known as cloud computing servers or cloud hosts, which are a host product in the cloud computing service system to solve the defects of great management difficulty and weak business scalability in traditional physical hosts and VPS services.
[0135] The embodiment of the present application further provides a computer program product comprising a computer program which, when executed by a processor, can implement the verification method for an RDMA device as provided in any embodiment of the present application.
[0136] The computer program product can be written in one or more programming languages or combinations of languages including object-oriented languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider).
[0137] It should be understood that the various forms of flow shown above can be re-ordered, added to, or deleted from without departing from the scope of the present application. For example, the steps recited in the present application can be performed in parallel, in series, or in a different order, and the present application is not limited in this regard.
[0138] The above detailed description does not constitute a limitation on the protection scope of the present application. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent replacements, and improvements made within the spirit and principles of the present application should be included in the protection scope of the present application.
Claims
1. A verification method for RDMA devices, characterized in that, Applied to verification platforms; The verification platform includes at least: a sending host, a device under test, a storage proxy module, a comparison module, and a receiving host; the method includes: In response to the device under test receiving a target type data packet carrying at least first address information sent by the sending host, the device under test automatically sends a read request carrying at least the first address information to the storage proxy module; wherein, the target type data packet has the function of triggering other data packets to be sent automatically; The device under test automatically receives read / write instructions carrying at least a second address information from the storage proxy module, and automatically forwards the read / write instructions carrying the second address information to the receiving host; wherein, the second address information is obtained by the storage proxy module by querying an association table based on the first address information; the association table contains a one-to-one mapping relationship between the first address information and the second address information; The comparison module determines the verification result of the device under test based on the first address information and the second address information.
2. The method according to claim 1, characterized in that, The response to the device under test receiving a target type data packet carrying at least first address information sent by the sending host includes: The sending host sends a target type data packet carrying at least a first address information to the device under test; The target type data packet carrying at least the first address information is parsed by the switching module in the device under test to obtain the first address information; The first address information is allocated to the RDMA module inside the device under test through the transfer module in the device under test; Accordingly, the step of automatically sending a read request carrying at least the first address information to the storage proxy module through the device under test includes: The RDMA module inside the device under test automatically sends a read request carrying at least the first address information to the storage proxy module.
3. The method according to claim 1, characterized in that, The device under test automatically receives read / write instructions carrying at least a second address information from the storage proxy module, and automatically forwards the read / write instructions carrying the second address information to the receiving host, including: The device under test automatically receives read / write instructions from the storage proxy module, which carry at least the second address information. When the read / write instruction contains second address information and associated write data and write instruction, the device under test encapsulates the second address information and associated write data and write instruction according to the target message format to obtain the first message; The first message is automatically forwarded to the receiving host.
4. The method according to claim 3, characterized in that, The method further includes: The receiving host parses the first message to obtain the second address information and the associated write data and write instructions; The second address information, along with the related write data and write instructions, are sent to the comparison module.
5. The method according to any one of claims 1-4, characterized in that, Before determining the verification result of the device under test based on the first address information and the second address information through the comparison module, the method further includes: The storage proxy module sends the first address information, along with the related write data and write instructions, to the comparison module.
6. The method according to claim 5, characterized in that, The step of determining the verification result of the device under test based on the first address information and the second address information by the comparison module includes: The comparison module compares the first address information sent by the sending host with the first address information sent by the storage proxy module to obtain a consistency comparison result. The comparison module compares the first address information sent by the storage proxy module with the second address information sent by the receiving host, and obtains the correlation comparison result based on the mapping relationship between the first address information and the second address information contained in the association table. If the consistency comparison result is consistent and the correlation comparison result satisfies the mapping relationship, the verification result of the device under test is determined to be verified as passed. If the consistency comparison result is inconsistent, or the correlation comparison result is that the mapping relationship is not satisfied, the verification result of the device under test is determined to be verification failure.
7. The method according to claim 6, characterized in that, The step of determining the verification result of the device under test based on the first address information and the second address information by the comparison module further includes: The comparison module compares the write data and write instructions related to the first address information sent by the sending host with the write data and write instructions related to the first address information sent by the storage proxy module to obtain a consistency comparison result. The comparison module compares the write data and write instructions related to the first address information sent by the storage proxy module with the write data and write instructions related to the second address information sent by the receiving host, and obtains the correlation comparison result based on the correlation table. If the consistency comparison result is consistent and the correlation comparison result satisfies the mapping relationship, the verification result of the device under test is determined to be verified as passed. If the consistency comparison result is inconsistent, or the correlation comparison result is that the mapping relationship is not satisfied, the verification result of the device under test is determined to be verification failure.
8. A verification platform for RDMA devices, characterized in that, include: Sending host, device under test, storage proxy module, comparison module, and receiving host; The input terminal of the device under test is connected to the transmitting host, and the output terminal of the device under test is connected to the storage proxy module and the receiving host respectively; the output terminals of the transmitting host, the storage proxy module, and the receiving host are all connected to the comparison module. In response to the device under test receiving a target type data packet carrying at least first address information sent by the sending host, the device under test automatically sends a read request carrying at least the first address information to the storage proxy module; wherein, the target type data packet has the function of triggering other data packets to be sent automatically; The device under test automatically receives read / write instructions carrying at least the second address information from the storage proxy module, and automatically forwards the read / write instructions carrying the second address information to the receiving host. The comparison module determines the verification result of the device under test based on the first address information and the second address information.
9. An electronic device, characterized in that, The electronic device includes: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor to enable the at least one processor to perform the verification method for an RDMA device as described in any one of claims 1-7.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed by a processor, implement the verification method for an RDMA device as described in any one of claims 1-7.
11. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by a processor, implements the verification method for an RDMA device according to any one of claims 1-7.