CN113157510B - Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer - Google Patents

Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer Download PDF

Info

Publication number
CN113157510B
CN113157510B CN202110450981.XA CN202110450981A CN113157510B CN 113157510 B CN113157510 B CN 113157510B CN 202110450981 A CN202110450981 A CN 202110450981A CN 113157510 B CN113157510 B CN 113157510B
Authority
CN
China
Prior art keywords
type
data packet
packet
flow control
slave device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110450981.XA
Other languages
Chinese (zh)
Other versions
CN113157510A (en
Inventor
黄玲
陈玉龙
陈君
叶鹏玉
倪亚路
张攀勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110450981.XA priority Critical patent/CN113157510B/en
Publication of CN113157510A publication Critical patent/CN113157510A/en
Application granted granted Critical
Publication of CN113157510B publication Critical patent/CN113157510B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

The invention provides a method for testing transaction sequencing rules of an expansion bus of a high-speed serial computer, which is applied to a main device of a PCIE bus of the expansion bus of the high-speed serial computer; the method comprises the following steps: sending a first type data packet to slave equipment of a PCIE bus so that the slave equipment stops updating flow control after responding to the first type data packet; sending a first type data packet to the slave device to exhaust a 5 flow control unit corresponding to the first type data packet in flow control; sending a first type of data packet to the slave device so that the first type of data packet is stored in a cache; and sending a second type of data packet to the slave equipment, so that the slave equipment starts to update the flow control in response to the second type of data packet, and sending the first type of data packet in the cache to the slave equipment. The invention can construct a scene needing to sort the PCIE transactions and verify the sorting rule of the PCIE.

Description

Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer
Technical Field
The invention relates to the technical field of processors, in particular to a method and a device for testing transaction sequencing rules of an expansion bus of a high-speed serial computer.
Background
The PCIE bus of the high-speed serial computer expansion bus is a widely applied computer bus and has the characteristics of point-to-point, high bandwidth, reliable transmission and the like. In the transmission process of the PCIE bus, to avoid congestion of transmission, a processing manner of ordering transactions is usually adopted, for example, transactions are ordered by adopting a D4 ordering rule.
In the process of implementing the present invention, the inventors found that at least the following technical problems exist in the prior art: because the transaction ordering is a processing mode adopted under the special condition that congestion may occur, in the stage of testing and verifying the chip, in the conventional data transmission process of the PCIe controller and the slave device, it is difficult to accurately construct a data transmission scenario of a certain transaction ordering rule, and thus, each PCIe transaction ordering rule cannot be verified accurately and efficiently.
Disclosure of Invention
The method and the device for testing the transaction sequencing rule of the expansion bus of the high-speed serial computer can construct a scene needing to sequence PCIE transactions and verify the sequencing rule of the PCIE.
In a first aspect, the invention provides a method for testing sequencing rules of an expansion bus of a high-speed serial computer, which is applied to a main device of a PCIE bus of the expansion bus of the high-speed serial computer; the method comprises the following steps:
sending a first type data packet to slave equipment of a PCIE bus so that the slave equipment stops updating flow control after responding to the first type data packet;
sending a first type data packet to the slave device to exhaust a flow control unit corresponding to the first type data packet in the flow control;
sending a first type of packet to the slave device to cause the first type of packet to be stored in a pending transaction buffer;
and sending a second type of data packet to the slave device, so that the slave device starts to update the flow control in response to the second type of data packet, and the first type of data packet in the suspended transaction buffer is sent to the slave device.
Optionally, sending the first type data packet to the slave device to exhaust the flow control unit corresponding to the first type data packet in the flow control includes:
and receiving a third type data packet sent by the slave device, and sending a first type data packet to the slave device in response to the third type data packet so as to exhaust a flow control unit corresponding to the first type data packet in the flow control.
Optionally, sending the first type data packet to the slave device to exhaust the flow control unit corresponding to the first type data packet in the flow control includes:
and after waiting for the first preset time, sending a first type data packet to the slave equipment to exhaust a flow control unit corresponding to the first type data packet in the flow control.
Optionally, sending the second type of data packet to the slave device comprises:
and receiving a first type data packet sent by the slave equipment, and sending a second type data packet to the slave equipment in response to the first type data packet.
Optionally, before sending the second type of data packet to the slave device, the method includes:
and newly building a process and sending a vendor-defined Data Link Layer Packet (DLLP) to the slave equipment to trigger the slave equipment to send a first type packet.
Optionally, the first type data packet is sent to the slave device, so that after the flow control unit corresponding to the first type data packet in the flow control is exhausted, the slave device is further configured to send the first type data packet after waiting for a second predetermined time.
Optionally, the slave device includes a programmable PCIE device or a field programmable gate array FPGA.
In a second aspect, the present invention provides a device for testing sequencing rules of an expansion bus of a high-speed serial computer, which is applied to a host device of a PCIE bus of the expansion bus of the high-speed serial computer; the method comprises the following steps:
the flow control stopping module is used for sending a first type data packet to slave equipment of the PCIE bus so as to stop updating the flow control after the slave equipment responds to the first type data packet;
the flow control exhaustion module is used for sending the first type data packet to the slave device so as to exhaust flow control units corresponding to the first type data packet in the flow control;
a first sending module, configured to send a first type of packet to the slave device, so that the first type of packet is stored in a pending transaction buffer;
and a second sending module, configured to send a second type of packet to the slave device, so that the slave device starts to update the flow control in response to the second type of packet, and send the first type of packet in the pending transaction buffer to the slave device.
Optionally, the flow control exhaustion module is specifically configured to:
receiving a third type data packet sent by the slave device, and sending a first type data packet to the slave device in response to the third type data packet so as to exhaust a flow control unit corresponding to the first type data packet in the flow control; alternatively, the first and second liquid crystal display panels may be,
and after waiting for the first preset time, sending a first type data packet to the slave equipment to exhaust a flow control unit corresponding to the first type data packet in the flow control.
Optionally, the second sending module is specifically configured to receive a first type of packet sent by the slave device, and send a second type of packet to the slave device in response to the first type of packet, so that the slave device starts to update the flow control in response to the second type of packet, and sends the first type of packet in the pending transaction buffer to the slave device.
In the technical scheme provided by the invention, the congestion is formed when the primary equipment of the PCIE bus sends the first type data packet by closing and exhausting the flow control, and a processing environment which needs to sequence the PCIE transaction is created, so that whether the sequencing rule of the PCIE transaction can be correctly executed can be verified.
Drawings
FIG. 1 is a flow chart of a method for testing a high-speed serial computer expansion bus sequencing rule according to an embodiment of the present invention;
FIG. 2 is an interactive flowchart of a method for testing a high-speed serial computer expansion bus sequencing rule according to another embodiment of the present invention;
FIG. 3 is an interactive flowchart of a method for testing sequencing rules of a high-speed serial computer expansion bus according to another embodiment of the present invention;
FIG. 4 is a timing diagram corresponding to FIG. 3;
FIG. 5 is a schematic diagram of an apparatus for testing a high-speed serial computer expansion bus sequencing rule according to another embodiment of the present invention;
FIG. 6 is a system diagram of an application environment of a high-speed serial computer extended bus sequencing rule testing device according to another embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be obtained by a person skilled in the art without making any creative effort based on the embodiments in the present invention, belong to the protection scope of the present invention.
The embodiment of the invention provides a method for testing sequencing rules of an expansion bus of a high-speed serial computer, which is applied to main equipment of a PCIE bus of the expansion bus of the high-speed serial computer as shown in figure 1; the method comprises the following steps:
step 101, sending a first type data packet to a slave device of a PCIE bus, so that the slave device stops updating a flow control after responding to the first type data packet; in some embodiments, the packet types generally include three types as follows: a non-forwarding request data packet NPH, a forwarding request data packet PH and a completion feedback data packet CPL; the correspondence between the types of the three data packets and the specific data processing procedure is as follows:
Figure BDA0003038425950000051
however, it should be understood by those skilled in the art that, after receiving an NPH-type data packet, both a PCIE controller and a PCIE slave device are triggered to send a CPL-type data packet. For the above and the following description, the first type packet and the second type packet refer to two types of packets that need to be sequenced in the process of processing PCIE transaction, for example, the d4 sequencing rule refers to that the CPL type packet should be able to pass through the NPH type packet, at this time, the first type packet may be an NPH type packet, and the second type packet may be a CPL type packet.
102, sending a first type data packet to the slave device to exhaust a flow control unit corresponding to the first type data packet in the flow control; in some embodiments, after the NPH flow control update is stopped, there are still a part of flow control units that are not used yet, and therefore, in order to block the first type data packet in the subsequent verification process, in this step, after the flow control update is stopped, the first type data packet is continuously sent, so that the flow control unit corresponding to the first type data packet is exhausted, and thus the sending of the first type data packet is blocked.
Step 103, sending a first type data packet to the slave device so that the first type data packet is stored in a suspended transaction buffer; in some embodiments, since the flow control unit corresponding to the first type packet is exhausted in step 102, at this time, the first type packet cannot be sent, and the first type packet that cannot be sent successfully will be stored in the pending transaction buffer of the PCIE controller.
And 104, sending a second type of data packet to the slave device, so that the slave device starts to update the flow control in response to the second type of data packet, and sending the first type of data packet in the pending transaction buffer to the slave device. In some embodiments, the second type of packet is a packet type that is specified in the ordering rule and can be ordered with the first type of packet according to a predetermined rule, for example, the d4 rule in step 101 is still used for explaining, and the d4 rule requires that the CPL type of packet can be sent beyond the NPH type of packet, so that the CPL type of packet can be used as the second type of packet, and the NPH type of packet is used as the first type of packet, in step 103, the first type of packet is sent first, and the second type of packet is sent later, at this time, it is verified that the second type of packet can be sent beyond the first type of packet, it is only necessary to determine whether the second type of packet sent later can be sent successfully, when the second type of packet can be sent successfully, it is determined that the ordering rule can be executed successfully, and when the second type of packet cannot be sent successfully, it is determined that the ordering rule cannot be executed successfully.
In the technical scheme provided by the invention, the congestion is formed by the main equipment of the PCIE bus on the sending of the first type data packet through closing and exhausting the flow control, and a processing environment which needs to sequence the PCIE transactions is created, so that whether the sequencing rule of the PCIE transactions can be correctly executed can be verified.
As an optional implementation manner, sending the first type data packet to the slave device to exhaust the flow control unit corresponding to the first type data packet in the flow control includes:
and receiving a third type data packet sent by the slave device, and sending a first type data packet to the slave device in response to the third type data packet so as to exhaust a flow control unit corresponding to the first type data packet in the flow control. In some embodiments, the third type of packet sent from the device is used to trigger the PCIE controller to send the first type of packet. The PCIE controller is configured to send a third type data packet after the slave device closes the flow control update in this step, and send the first type data packet after receiving the third type data packet, so as to accurately consume the flow control unit corresponding to the first type data packet.
As an optional implementation manner, sending the first type data packet to the slave device to exhaust the flow control unit corresponding to the first type data packet in the flow control includes:
and after waiting for the first preset time, sending a first type data packet to the slave equipment to exhaust a flow control unit corresponding to the first type data packet in the flow control. In some embodiments, since the slave device needs a certain operation time when the flow control update is turned off, enough waiting time needs to be reserved to ensure that the slave device turns off the flow control, and then the first type data packet is sent. The embodiment reduces the interaction process, and only needs the PCIE controller to wait before sending the first type data packet.
As an optional implementation, the sending the second type of data packet to the slave device includes:
and receiving a first type data packet sent by the slave equipment, and sending a second type data packet to the slave equipment in response to the first type data packet. In some embodiments, the first type of packet sent by the slave device is a condition for triggering the PCIE controller to send the second type of packet, for example, as described in the foregoing d4 ordering rule, since the second type of CPL type of packet is a packet fed back after receiving the NPH type of packet, that is, the first type of packet, needs to be sent from the slave device to the PCIE controller, and after receiving the NPH type of packet, the PCIE controller feeds back the CPL type of packet, that is, the second type of packet, to the slave device.
As an optional implementation manner, before sending the second type of data packet to the slave device, the method includes:
and newly establishing a process and sending a manufacturer definition DLLP to the slave equipment so as to trigger the slave equipment to send a first type data packet. In some embodiments, since the PCIE controller has exhausted the flow control unit corresponding to the first type packet, the first type packet sent by the PCIE controller is buffered and cannot be sent to the slave device, that is, the slave device cannot determine when to send the first type packet to trigger the PCIE controller, in this embodiment, after the PCIE controller sends the first type packet and the first type packet is buffered, the PCIE controller sends the vendor definition DLLP to the slave device, so that the slave device obtains a state change of the PICE controller.
As an optional implementation manner, after the first type data packet is sent to the slave device to exhaust the flow control unit corresponding to the first type data packet in the flow control, the slave device is further configured to send the first type data packet after waiting for a second predetermined time. In this embodiment, after the PCIE controller exhausts the flow control unit corresponding to the first type of packet, the slave device waits for the second predetermined time, where the waiting time corresponds to a time for the PCIE controller to send the first type of packet and perform buffering, and therefore, the waiting time needs to ensure that the PCIE controller can complete sending and buffering the first type of packet. The mode reduces the interaction between the PCIE controller and the slave equipment and simplifies the interaction process.
As an optional implementation, the slave device includes a programmable PCIE device or a field programmable gate array FPGA.
As follows, a PCIE controller is used as a master device of a PCIE bus, a programmable PCIE device and a field programmable gate array FPGA are used as slave devices of the PCIE bus, and the above method is described in detail with a specific interaction process.
As shown in fig. 2, a PCIE controller is used as a master device of a PCIE bus, a programmable PCIE device is used as a slave device of the PCIE bus, and an interaction process between the two devices is taken as an example to explain:
in step 201, the pcie controller sends a first type data packet, for example, sends a memory read request.
In step 202, the programmable PCIe device stops updating the NPH flow control after responding to the first type data packet sent by the test program.
In step 203, after the programmable PCIe device stops updating the setting of the NPH flow control to take effect, the programmable PCIe device sends a third type data packet, for example, a memory write request, to the PCIe controller, so as to trigger the PCIe controller to send the first type data packet to exhaust the flow control unit corresponding to the first type data packet.
In step 204, after receiving a third type data packet, such as a memory write request, sent by the PCIE device, the PCIE controller sends a first type data packet, such as a memory read request, to exhaust a flow control unit corresponding to the first type data packet.
In step 205, the pcie controller sends a first type packet, for example, a configuration write request. Since the flow control unit corresponding to the first type of packet is exhausted after the first type of packet is sent in step 204, there will be no flow control unit corresponding to the first type of packet to be successfully sent, and when the first type of packet cannot be successfully sent, the first type of packet will be stored in the pending transaction buffer.
In step 206, the PCIe controller new process sends a Vendor-Specific DLLP of the link layer packet, which is specified by the provider, to notify the programmable PCIe device that the first type packet has been sent out, for example, the configuration write request has been sent out.
In step 207, after the programmable PCIe device receives the Vendor-Specific DLLP sent by the PCIe controller, the programmable PCIe device sends a first type data packet, for example, a memory read request, to trigger the PCIe controller to send a second type data packet.
In step 208, the PCIe controller replies to the second type data packet, e.g., data corresponding to the memory read request, in response to the first type data packet, e.g., the memory read request, issued by the PCIe device.
In step 209, the programmable PCIe device resumes updating the flow control after receiving the second type of packet.
Step 210, after the programmable PCIe device recovers the stream control update, a first type data packet sent by the PCIe controller is received, for example, a configuration write request.
The above is described by taking a programmable PCIE device as an example, and those skilled in the art should understand that the above process is also applicable to an interaction process between an FPGA and a PCIE controller. In addition, the sending of the first type data packet by the programmable PCIe device in step 207 is triggered by the notification message in step 206, and the sending of the first type data packet in step 204 is triggered by the third type data packet in step 203, and those skilled in the art should understand that one or both of steps 207 and step 204 may be modified to directly send the corresponding data packet after waiting for the predetermined time without triggering in steps 206 and 203, so as to simplify the interaction process between the PCIe controller and the programmable PCIe device.
As shown in fig. 3-4, a PCIE controller is used as a primary device of a PCIE bus, an FPGA is used as a secondary device of the PCIE bus, and an interaction process between the two devices is taken as an example to explain:
in step 301, the pcie controller sends a first type packet, for example, sends a memory read request.
And step 302, after the FPGA responds to the first type data packet sent by the test program, the NPH flow control stops being updated.
Step 303, after the step 301, after waiting for a first predetermined time, for example, 10 milliseconds, the PCIE controller sends a first type data packet, for example, a memory read request, to exhaust a flow control unit corresponding to the first type data packet.
In step 304, the PCIE controller sends a first type of packet, such as a configuration write request. Since the flow control unit corresponding to the first type of packet is exhausted after the first type of packet is sent in step 303, there will be no flow control unit corresponding to the first type of packet to be successfully sent, and when the first type of packet cannot be successfully sent, the first type of packet will be stored in the pending transaction buffer.
In step 305, after stopping updating the flow control, the fpga waits for a second predetermined time, for example, 1 second, to ensure that the memory read request is sent after the test program sends the configuration write request. The FPGA sends a first type of data packet, for example, a memory read request, to trigger the PCIE controller to send a second type of data packet.
In step 306, the pcie controller replies to the second type data packet, for example, data corresponding to the memory read request, in response to the first type data packet, for example, the memory read request, sent by the FPGA.
And 307, after receiving the second type data packet, the FPGA restores updating the flow control.
In step 308, after the flow control update is restored by the fpga, a first type data packet, such as a configuration write request, sent by the PCIe controller is received.
The above is described by taking an FPGA as an example, and those skilled in the art should understand that the above process is also applicable to the interaction process between the programmable PCIE device and the PCIE controller. In addition, both of the above steps 303 and 305 directly transmit the corresponding data packet after waiting for a predetermined time, and it should be understood by those skilled in the art that one or both of the above steps 303 and 305 may be performed in a condition-triggered manner, for example, in steps 206 and 203, so as to avoid erroneous interaction due to timing errors.
The embodiment of the invention also provides a device for testing the sequencing rule of the expansion bus of the high-speed serial computer, which is applied to the main equipment of the PCIE bus of the expansion bus of the high-speed serial computer as shown in FIG. 5; the method comprises the following steps:
the flow control stopping module is used for sending a first type data packet to slave equipment of the PCIE bus so as to stop updating the flow control after the slave equipment responds to the first type data packet;
in some embodiments, the packet types generally include three types: a non-forwarding request data packet NPH, a forwarding request data packet PH and a completion feedback data packet CPL; the correspondence between the types of the three data packets and the specific data processing procedure is as follows:
Figure BDA0003038425950000111
however, it should be understood by those skilled in the art that, after receiving an NPH type packet, a PCIE controller or a PCIE slave device is triggered to transmit a CPL type packet. For the above and the following description, the first type packet and the second type packet refer to two types of packets that need to be sequenced in the process of processing PCIE transaction, for example, the d4 sequencing rule refers to that the CPL type packet should be able to pass through the NPH type packet, at this time, the first type packet may be an NPH type packet, and the second type packet may be a CPL type packet.
The flow control exhaustion module is used for sending the first type data packet to the slave device so as to exhaust flow control units corresponding to the first type data packet in the flow control;
in some embodiments, after stopping the flow control update, there is still a part of the flow control units that are not used yet, and therefore, in order to block the first type data packet in the subsequent verification process, in this step, after stopping the flow control update, the first type data packet is continuously sent, so that the flow control unit corresponding to the first type data packet is exhausted, and thus the sending of the first type data packet is blocked.
A first sending module, configured to send a first type of packet to the slave device, so that the first type of packet is stored in a pending transaction buffer;
in some embodiments, since the flow control unit corresponding to the first type packet is exhausted in the flow control exhaustion module, at this time, the first type packet cannot be sent, and the first type packet that cannot be sent successfully will be stored in the suspended transaction buffer of the PCIE controller.
And the second sending module is used for sending the second type of data packet to the slave equipment so that the slave equipment starts to update the flow control in response to the second type of data packet and sends the first type of data packet in the cache to the slave equipment.
In some embodiments, the second type of packet is a packet type that is specified in the ordering rule and can be ordered with the first type of packet according to a predetermined rule, for example, the d4 rule in step 101 is still used for explaining, and the d4 rule requires that the CPL type of packet can be sent beyond the NPH type of packet, so that the CPL type of packet can be used as the second type of packet, and the NPH type of packet is used as the first type of packet, in step 103, the first type of packet is sent first, and the second type of packet is sent later, at this time, it is verified that the second type of packet can be sent beyond the first type of packet, it is only necessary to determine whether the second type of packet sent later can be sent successfully, when the second type of packet can be sent successfully, it is determined that the ordering rule can be executed successfully, and when the second type of packet cannot be sent successfully, it is determined that the ordering rule cannot be executed successfully.
In the technical scheme provided by the invention, the congestion is formed by the main equipment of the PCIE bus on the sending of the first type data packet through closing and exhausting the flow control, and a processing environment which needs to sequence the PCIE transactions is created, so that whether the sequencing rule of the PCIE transactions can be correctly executed can be verified.
As an optional embodiment, the flow control exhaustion module is specifically configured to:
receiving a third type data packet sent by the slave device, and sending a first type data packet to the slave device in response to the third type data packet to exhaust a flow control unit corresponding to the first type data packet in the flow control; alternatively, the first and second electrodes may be,
and after waiting for the first preset time, sending a first type data packet to the slave equipment to exhaust a flow control unit corresponding to the first type data packet in the flow control.
In this embodiment, there are two trigger modes for the flow control exhaustion module to send the first type of packet, one is to wait for a predetermined time for triggering, and the other is to receive the third type of packet for triggering, which is specifically as follows:
in some embodiments, the third type of packet sent from the device is used to trigger the PCIE controller to send the first type of packet. The PCIE controller is configured to send the third type data packet after the flow control is closed by the slave device in this step, and send the first type data packet after the PCIE controller receives the third type data packet, so as to accurately consume the flow control unit corresponding to the first type data packet.
In other embodiments, since the slave needs a certain period of operation time when the flow control is turned off and the update is stopped, enough waiting time needs to be reserved to ensure that the slave turns off the flow control, and then sends the first type of data packet. The embodiment reduces the interaction process, and only needs the PCIE controller to wait before sending the first type data packet.
As an optional implementation manner, the second sending module is specifically configured to receive a first type of data packet sent by the slave device, and send a second type of data packet to the slave device in response to the first type of data packet, so that the slave device starts to update a flow control in response to the second type of data packet, and sends the first type of data packet in the cache to the slave device.
In some embodiments, the first type of packet sent by the slave device is a condition for triggering the PCIE controller to send the second type of packet, for example, as described in the foregoing d4 ordering rule, since the second type of CPL type of packet is a packet fed back after receiving the NPH type of packet, that is, the first type of packet, needs to be sent from the slave device to the PCIE controller, and after receiving the NPH type of packet, the PCIE controller feeds back the CPL type of packet, that is, the second type of packet, to the slave device.
The slave device sends the first type data packet in two triggering manners, one of which is that the PCIE controller newly creates a process and sends a vendor defined DLLP to the slave device to trigger the slave device to send the first type data packet. In some embodiments, since the PCIE controller has exhausted the flow control unit corresponding to the first type packet, the first type packet sent by the PCIE controller is cached and cannot be sent to the slave device, that is, the slave device cannot determine when to send the first type packet to trigger the PCIE controller, in this embodiment, after the PCIE controller sends the first type packet and the first type packet is cached, the PCIE controller sends the vendor definition DLLP to the slave device, so that the slave device obtains the state change of the PICE controller.
The other is that the PCIE controller sends the first type packet to the slave device, so that after the flow control unit corresponding to the first type packet in the flow control is used up, the PCIE controller is further configured to enable the slave device to send the first type packet after waiting for the second predetermined time. That is, after receiving the first type data packet sent by the flow control exhaustion module, the slave device waits for a second predetermined time and then sends the first type data packet. In this embodiment, after the PCIE controller exhausts the flow control unit corresponding to the first type of packet, the slave device waits for the second predetermined time, where the waiting time corresponds to a time for the PCIE controller to send the first type of packet and perform buffering, and therefore, the waiting time needs to ensure that the PCIE controller can complete sending and buffering the first type of packet. The mode reduces the interaction between the PCIE controller and the slave equipment and simplifies the interaction process.
Fig. 6 illustrates an application environment of the above-described apparatus and method, and the test program in the figure can execute the above-described method during execution.
It will be understood by those skilled in the art that all or part of the processes of the embodiments of the methods described above may be implemented by a computer program, which may be stored in a computer-readable storage medium, and when executed, may include the processes of the embodiments of the methods described above. The storage medium may be a magnetic disk, an optical disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), or the like.
The above description is only for the specific embodiment of the present invention, but the scope of the present invention is not limited thereto, and any changes or substitutions that can be easily conceived by those skilled in the art within the technical scope of the present invention are included in the scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (10)

1. A method for testing sequencing rules of an expansion bus of a high-speed serial computer is characterized by being applied to a main device of a PCIE bus of the expansion bus of the high-speed serial computer; the method comprises the following steps:
sending a first type data packet to slave equipment of a PCIE bus so that the slave equipment stops updating flow control after responding to the first type data packet;
sending a first type data packet to the slave device to exhaust a flow control unit corresponding to the first type data packet in the flow control;
sending a first type of data packet to the slave device to cause the first type of data packet to be stored in a pending transaction buffer of the master device;
sending a second type of data packet to the slave device, so that the slave device starts to update the flow control in response to the second type of data packet, and the first type of data packet in the pending transaction buffer is sent to the slave device; determining a PCIE bus sequencing test result according to whether the second type data packet can be successfully sent; wherein the second type of packet is capable of overriding the first type of packet.
2. The method according to claim 1, wherein sending the first type of packet to the slave device to exhaust flow control units corresponding to the first type of packet in the flow control comprises:
and receiving a third type data packet sent by the slave device, and sending a first type data packet to the slave device in response to the third type data packet so as to exhaust a flow control unit corresponding to the first type data packet in the flow control.
3. The method according to claim 1, wherein sending the first type of packet to the slave device to exhaust flow control units corresponding to the first type of packet in the flow control comprises:
and after waiting for the first preset time, sending a first type data packet to the slave equipment to exhaust a flow control unit corresponding to the first type data packet in the flow control.
4. The method of claim 1, wherein sending the second type of packet to the slave device comprises:
and receiving a first type data packet sent by the slave device, and sending a second type data packet to the slave device in response to the first type data packet.
5. The method of claim 4, wherein sending the second type of packet to the slave device is preceded by:
and newly building a process and sending a data link layer packet DLLP defined by a manufacturer to the slave equipment so as to trigger the slave equipment to send a first type packet.
6. The method according to claim 4, wherein the first type data packet is sent to the slave device, so that after the flow control unit corresponding to the first type data packet in the flow control is exhausted, the slave device is further configured to send the first type data packet after waiting for a second predetermined time.
7. The method of claim 1, wherein the slave device comprises a programmable PCIE device or a field programmable gate array FPGA.
8. A transaction sequencing rule testing device for an expansion bus of a high-speed serial computer is characterized by being applied to main equipment of a PCIE bus of the expansion bus of the high-speed serial computer; the method comprises the following steps:
the flow control stopping module is used for sending a first type data packet to slave equipment of the PCIE bus so that the slave equipment stops updating the flow control after responding to the first type data packet;
the flow control exhaustion module is used for sending the first type data packet to the slave device so as to exhaust flow control units corresponding to the first type data packet in the flow control;
a first sending module, configured to send a first type of packet to the slave device, so that the first type of packet is stored in a pending transaction buffer;
a second sending module, configured to send a second type of packet to the slave device, so that the slave device starts to update the flow control in response to the second type of packet, and send the first type of packet in the pending transaction buffer to the slave device; determining a PCIE bus sequencing test result according to whether the second type data packet can be successfully sent; wherein the second type of packet is capable of overriding the first type of packet.
9. The apparatus of claim 8, wherein the flow control depletion module is specifically configured to:
receiving a third type data packet sent by the slave device, and sending a first type data packet to the slave device in response to the third type data packet to exhaust a flow control unit corresponding to the first type data packet in the flow control; alternatively, the first and second electrodes may be,
and after waiting for the first preset time, sending a first type data packet to the slave equipment to exhaust a flow control unit corresponding to the first type data packet in the flow control.
10. The apparatus according to claim 8, wherein the second sending module is specifically configured to receive a first type of packet sent by the slave device, and send a second type of packet to the slave device in response to the first type of packet, so that the slave device starts to update the flow control in response to the second type of packet, and sends the first type of packet in the pending transaction buffer to the slave device.
CN202110450981.XA 2021-04-25 2021-04-25 Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer Active CN113157510B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110450981.XA CN113157510B (en) 2021-04-25 2021-04-25 Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110450981.XA CN113157510B (en) 2021-04-25 2021-04-25 Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer

Publications (2)

Publication Number Publication Date
CN113157510A CN113157510A (en) 2021-07-23
CN113157510B true CN113157510B (en) 2023-02-28

Family

ID=76870635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110450981.XA Active CN113157510B (en) 2021-04-25 2021-04-25 Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer

Country Status (1)

Country Link
CN (1) CN113157510B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516379B1 (en) * 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
CN111666246A (en) * 2019-03-08 2020-09-15 英特尔公司 Secure streaming protocol for serial interconnects
CN111858413A (en) * 2020-06-29 2020-10-30 牛芯半导体(深圳)有限公司 Data scheduling method and device for PCIE (peripheral component interface express) exchange chip port
CN112631883A (en) * 2020-12-15 2021-04-09 成都海光集成电路设计有限公司 PCIe data transmission pressure manufacturing method and system and electronic equipment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938091B2 (en) * 2002-03-08 2005-08-30 Hewlett-Packard Development Company, L.P. Static end to end retransmit apparatus and method
US7500046B1 (en) * 2006-05-04 2009-03-03 Sun Microsystems, Inc. Abstracted host bus interface for complex high performance ASICs
US10657092B2 (en) * 2016-06-30 2020-05-19 Intel Corporation Innovative high speed serial controller testing
CN109684269B (en) * 2018-12-26 2020-06-02 成都九芯微科技有限公司 PCIE (peripheral component interface express) exchange chip core and working method
CN111694781A (en) * 2020-04-21 2020-09-22 恒信大友(北京)科技有限公司 ARM main control board based on data acquisition system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516379B1 (en) * 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
CN111666246A (en) * 2019-03-08 2020-09-15 英特尔公司 Secure streaming protocol for serial interconnects
CN111858413A (en) * 2020-06-29 2020-10-30 牛芯半导体(深圳)有限公司 Data scheduling method and device for PCIE (peripheral component interface express) exchange chip port
CN112631883A (en) * 2020-12-15 2021-04-09 成都海光集成电路设计有限公司 PCIe data transmission pressure manufacturing method and system and electronic equipment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PCIe事务层及数据链路层的实现与验证;李凯峰;《硕士电子期刊》;20131215;全文 *
基于UVM的PCIe总线接口数据传送顺序的验证方法;岳义杰;《硕士电子期刊》;20200215;全文 *

Also Published As

Publication number Publication date
CN113157510A (en) 2021-07-23

Similar Documents

Publication Publication Date Title
CN109964215B (en) Flow control in remote direct memory access data communications with ring buffer mirroring
US7676701B2 (en) Computer readable medium storing an error recovery program, error recovery method, error recovery apparatus, and computer system
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
WO2022213641A1 (en) Method and apparatus for process succession, electronic device and storage medium
JP2006190257A (en) Data transfer device and its method
WO2021134418A1 (en) Data checking method and apparatus
CN113157510B (en) Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer
JP2010092336A (en) Storage system and communication method
CN113259273A (en) Switch control method, switch, computer device, and storage medium
CN110134419B (en) System upgrading method, device, equipment and storage medium for double-sided cabinet
CN116204214A (en) BMC upgrading method, device and system, electronic equipment and storage medium
CN114880266B (en) Fault processing method and device, computer equipment and storage medium
CN114221903B (en) Data transmission method and device
CN111857546A (en) Method, network adapter and computer program product for processing data
US9252922B2 (en) System and method for improved error response in data mirroring
CN115048255A (en) Automatic test method, device, host and storage medium
US20060129714A1 (en) Method and apparatus for transferring data
CN113050976B (en) FPGA parallel upgrading method and device based on PCIe bus, medium and electronic equipment
CN108037942B (en) Adaptive data recovery and update method and device for embedded equipment
US8904062B2 (en) Network control model driver
US6880120B2 (en) Sequence-based verification method and system
US20110314183A1 (en) System and method for managing dataflow in a temporary memory
CN108304214B (en) Method and device for verifying integrity of immediate data
CN113297022B (en) Method and device for testing expansion bus of high-speed serial computer
US20220050139A1 (en) System, apparatus and method for communicating debug messages on a sideband of a serial link according to a debug type messaging protocol

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant