CN113157510A - 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 PDFInfo
- Publication number
- CN113157510A CN113157510A CN202110450981.XA CN202110450981A CN113157510A CN 113157510 A CN113157510 A CN 113157510A CN 202110450981 A CN202110450981 A CN 202110450981A CN 113157510 A CN113157510 A CN 113157510A
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/221—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
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 data packet to the slave device to cause the first type data packet to be stored in a cache; 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 sending the first type of data packet in the cache to the slave device. The invention can construct a scene needing to sort the PCIE transactions and verify the sorting rule of the PCIE.
Description
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, in order to avoid congestion of transmission, a processing manner of ordering the transactions is generally adopted, for example, the transactions are ordered by using a D4 ordering rule.
In the process of implementing the invention, the inventor finds 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 a sequencing rule 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 an ordering rule 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 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.
Optionally, the second sending module is specifically configured to receive the 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 the flow control in response to the second type of data packet, and sends the first type of data 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 a high-speed serial computer expansion bus sequencing rule 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 derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The embodiment of the invention provides a method for testing the sequencing rule 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 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:
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 descriptions, 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 indicates that the CPL type packet should be able to pass through the NPH type packet, at this time, the first type packet may be the NPH type packet, and the second type packet may be the 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 specified in the ordering rule that can be ordered with the first type of packet according to a predetermined rule, for example, still explained with the rule of d4 in step 101, the CPL type of packet is required to be transmitted beyond the NPH type of packet in the rule of d4, and therefore, the CPL type of packet may be used as the second type of packet, and the NPH type of packet is used as the first type of packet, and at step 103, the first type of packet is transmitted first, and the second type of packet is transmitted later, at which time, it is verified that the second type of packet can be transmitted beyond the first type of packet, it is only necessary to determine whether the second type of packet to be transmitted later can be successfully transmitted, when the second type of packet can be transmitted successfully, it is determined that the ordering rule can be executed successfully, and when the second type of packet cannot be transmitted successfully, it may be determined that the sort rule cannot be successfully executed.
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.
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 sorting 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 the PCIE controller receives the NPH type of packet, the CPL type of packet, that is, the second type of packet, is fed back 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 building 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 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.
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 sending of the first-type packet in step 204 depletes the corresponding flow control unit, there will be no corresponding flow control unit to enable the first-type packet to be successfully sent, and when the first-type packet cannot be successfully sent, the first-type packet will be stored in the pending transaction buffer.
In step 206, the new process of the PCIE controller sends a Vendor-Specific DLLP as a link layer packet designated by a provider, and notifies the programmable PCIE device that the first type packet has been sent, for example, the configuration write request has been sent.
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 responds to the first type data packet, such as the memory read request, sent by the PCIe device, and replies to the second type data packet, such as the data corresponding to the memory read request.
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 master device of a PCIE bus, an FPGA is used as a slave device of the PCIE bus, and an interaction process between the two is taken as an example to explain:
in step 301, the PCIE controller sends a first type data packet, for example, sends a memory read request.
And step 302, after responding to the first type data packet sent by the test program, the FPGA stops updating the NPH flow control.
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.
At step 304, the PCIE controller sends a first type packet, for example, a configuration write request. Since the sending of the first-type packet in step 303 depletes the corresponding flow control unit, there will be no corresponding flow control unit to enable the first-type packet to be successfully sent, and when the first-type packet cannot be successfully sent, the first-type packet will be stored in the pending transaction buffer.
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 data packet, such as a memory read request, to trigger the PCIE controller to send a second type data packet.
In step 306, the PCIe controller responds to the first type data packet, such as the memory read request, sent by the FPGA, and replies to the second type data packet, such as the data corresponding to the memory read request.
And 307, after receiving the second type data packet, the FPGA restores the updating of the flow control.
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 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:
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 descriptions, 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 indicates that the CPL type packet should be able to pass through the NPH type packet, at this time, the first type packet may be the NPH type packet, and the second type packet may be the 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 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 cache is sent to the slave device.
In some embodiments, the second type of packet is a packet type specified in the ordering rule that can be ordered with the first type of packet according to a predetermined rule, for example, still explained with the rule of d4 in step 101, the CPL type of packet is required to be transmitted beyond the NPH type of packet in the rule of d4, and therefore, the CPL type of packet may be used as the second type of packet, and the NPH type of packet is used as the first type of packet, and at step 103, the first type of packet is transmitted first, and the second type of packet is transmitted later, at which time, it is verified that the second type of packet can be transmitted beyond the first type of packet, it is only necessary to determine whether the second type of packet to be transmitted later can be successfully transmitted, when the second type of packet can be transmitted successfully, it is determined that the ordering rule can be executed successfully, and when the second type of packet cannot be transmitted successfully, it may be determined that the sort rule cannot be successfully executed.
In the technical scheme provided by the invention, the congestion is formed by the main equipment of the PCIE bus in sending 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 things can be correctly executed can be verified.
As an optional implementation, 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 device 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 device turns off the flow control, and then the first type of 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 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 sorting 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 the PCIE controller receives the NPH type of packet, the CPL type of packet, that is, the second type of packet, is fed back 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 data packet 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 PCIE controller is further configured to make the slave device wait for a second predetermined time and send the first type data packet. 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 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.
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 high-speed serial computer expansion bus transaction sequencing rule testing device is characterized by being applied to a main device of a PCIE bus of a high-speed serial computer expansion bus; 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.
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.
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 true CN113157510A (en) | 2021-07-23 |
CN113157510B 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 (9)
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 |
US20030172181A1 (en) * | 2002-03-08 | 2003-09-11 | Sharma Debendra Das | 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 |
US20180004701A1 (en) * | 2016-06-30 | 2018-01-04 | Intel Corporation | Innovative high speed serial controller testing |
CN109684269A (en) * | 2018-12-26 | 2019-04-26 | 成都九芯微科技有限公司 | A kind of PCIE exchange chip kernel and working method |
US20190306134A1 (en) * | 2019-03-08 | 2019-10-03 | Intel Corporation | Secure stream protocol for serial interconnect |
CN111694781A (en) * | 2020-04-21 | 2020-09-22 | 恒信大友(北京)科技有限公司 | ARM main control board based on data acquisition system |
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 |
-
2021
- 2021-04-25 CN CN202110450981.XA patent/CN113157510B/en active Active
Patent Citations (10)
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 |
US20030172181A1 (en) * | 2002-03-08 | 2003-09-11 | Sharma Debendra Das | 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 |
US20180004701A1 (en) * | 2016-06-30 | 2018-01-04 | Intel Corporation | Innovative high speed serial controller testing |
CN109684269A (en) * | 2018-12-26 | 2019-04-26 | 成都九芯微科技有限公司 | A kind of PCIE exchange chip kernel and working method |
US20190306134A1 (en) * | 2019-03-08 | 2019-10-03 | Intel Corporation | Secure stream protocol for serial interconnect |
CN111666246A (en) * | 2019-03-08 | 2020-09-15 | 英特尔公司 | Secure streaming protocol for serial interconnects |
CN111694781A (en) * | 2020-04-21 | 2020-09-22 | 恒信大友(北京)科技有限公司 | ARM main control board based on data acquisition system |
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)
Title |
---|
岳义杰: "基于UVM的PCIe总线接口数据传送顺序的验证方法", 《硕士电子期刊》 * |
李凯峰: "PCIe事务层及数据链路层的实现与验证", 《硕士电子期刊》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113157510B (en) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109964215B (en) | Flow control in remote direct memory access data communications with ring buffer mirroring | |
EP2819022B1 (en) | Initiator apparatus, target apparatus, communication system, timeout detection method, and timeout detection program | |
CN107948063B (en) | Method for establishing aggregation link and access equipment | |
WO2021134418A1 (en) | Data checking method and apparatus | |
JPS6262695A (en) | Method and apparatus for transmitting data signal | |
JP5112246B2 (en) | Storage system and communication method | |
CN114221903A (en) | Data transmission method and device | |
US11115474B2 (en) | Data transmission and network interface controller | |
CN113157510B (en) | Method and device for testing transaction ordering rule of expansion bus of high-speed serial computer | |
KR102303424B1 (en) | Direct memory access control device for at least one processing unit having a random access memory | |
US20010018646A1 (en) | USB simulation apparatus and storage medium | |
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 | |
US10101987B2 (en) | Method and system of processing an image upgrade | |
KR20150054414A (en) | Redundancy Check Method for Communication Data using Receiving Buffer in Redundancy Apparatus | |
US9252922B2 (en) | System and method for improved error response in data mirroring | |
US20030154288A1 (en) | Server-client system and data transfer method used in the same system | |
CN108037942B (en) | Adaptive data recovery and update method and device for embedded equipment | |
US10218468B2 (en) | USB device, data transfer system and data transfer method | |
US6880120B2 (en) | Sequence-based verification method and system | |
CN113297022B (en) | Method and device for testing expansion bus of high-speed serial computer | |
JP3245552B2 (en) | Transfer control system | |
JP4666369B2 (en) | USB device | |
CN116932055A (en) | Configuration information acquisition method, device, equipment and vehicle | |
JP2825464B2 (en) | Communication device |
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 |