Speculative processing of transaction layer packets
First Claim
1. A receiving device, comprising:
- a link layer for processing a link layer packet, the link layer packet comprising fields for a sequence number, a transaction layer packet, and a data integrity code; and
a transaction layer for processing the transaction layer packet;
wherein the link layer forwards the transaction layer packet to the transaction layer as a speculative transaction layer packet if the sequence number of the link layer packet is equal to an expected sequence number, and after checking the data integrity code, notifies the transaction layer that the speculative transaction layer packet is either good or bad.
1 Assignment
0 Petitions
Accused Products
Abstract
A receiving device in which transaction layer packets are speculatively forwarded, is disclosed. The receiving device includes a physical layer, a link layer, a transaction layer, and a core. Transaction layer packets are forwarded to the transaction layer before processing at the link layer is completed, and without the use of memory storage at the link layer. A link layer engine checks the sequence number only and not the CRC before forwarding the packet to the transaction layer. This allows the transaction layer to pre-process the packet, such as verifying header information. However, the transaction layer is unable to make the transaction globally available until the link layer has verified the CRC of the packet. The simultaneous processing of the packet by both the link layer and the transaction layer may reduce latency and lessens the amount of memory needed for processing.
20 Citations
21 Claims
-
1. A receiving device, comprising:
-
a link layer for processing a link layer packet, the link layer packet comprising fields for a sequence number, a transaction layer packet, and a data integrity code; and
a transaction layer for processing the transaction layer packet;
wherein the link layer forwards the transaction layer packet to the transaction layer as a speculative transaction layer packet if the sequence number of the link layer packet is equal to an expected sequence number, and after checking the data integrity code, notifies the transaction layer that the speculative transaction layer packet is either good or bad. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for processing a packet by a link layer of a receiving device, comprising:
-
receiving a packet by a link layer engine, the packet comprising a sequence number, a header, data, and a data integrity code, wherein the packet is not stored in a memory;
forwarding the packet to a transaction layer engine if the sequence number equals an expected sequence number;
checking the data integrity code of the packet to produce a result; and
notifying the transaction layer engine of the result. - View Dependent Claims (12)
-
-
13. A method for processing a packet by a transaction layer of a receiving device, comprising:
-
receiving the packet from a link layer engine, the packet comprising a sequence number, a header, data, and a data integrity code, wherein the sequence number is equal to an expected sequence number but the data integrity code is not verified;
storing the packet in a memory for processing; and
not forwarding the packet to a core of the receiving device until receiving confirmation from the link layer engine that the data integrity code is correct. - View Dependent Claims (14, 15)
-
-
16. A receiving device, comprising:
-
a link layer for receiving a packet from a physical layer, the packet comprising a sequence number, a header, and a data integrity code, the link layer including no memory;
a transaction layer comprising a memory for storing a plurality of packets;
wherein the link layer speculatively forwards the packet to the transaction layer when the sequence number of the packet matches an expected sequence number, the transaction layer stores the packet in memory and processes the header, but does not forward the packet to a core of the receiving device until the link layer has confirmed the data integrity code as correct. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification