IP Library Granted Patent US 8,117,525
Granted Patent B2
US 8,117,525 · App. 11/917,106 · Granted Feb 14, 2012

Method for parallel data integrity checking of PCI express devices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,117,525
App. No.
11/917,106
Granted
Feb 14, 2012
Kind
B2
Abstract

An apparatus and method for supporting PCI Express is disclosed. A physical layer has a PCI Express interface for receiving data from a PCI Express compatible communication medium. The data is in the form of a packet. A data link layer is disclosed for verifying a CRC value and a sequence number received within the packet. A transaction layer is disclosed for receiving the packet from the data link layer and for processing thereof. The transaction layer processes at least some of the packet data in parallel to the data link layer.

Claims (45)

1. A method of processing packets within a high speed serial interface comprising:

receiving the packet at a first layer of a plurality of layers, wherein the first layer comprises a link of the high speed serial interface;

processing the packet through the plurality of layers; and,

performing error checking of the packet relating to a layer of the plurality of layers in parallel with error checking of the packet relating to another layer of the plurality of layers.

2. A method according to claim 1 wherein the method is compatible with the PCI Express standard.

3. A method according to claim 2 , wherein the plurality of layers comprises a physical layer, a data link layer and a transaction layer.

4. A method according to claim 2 , wherein error checking of the packet relating to a layer comprises:

comparing a CRC field of the packet with a computed CRC of the packet;

comparing a sequence number of the packet with an expected sequence number of the packet; and,

providing a first status value to the another layer in dependence upon the comparison of the CRC field of the packet and the computed CRC of the packet, and in dependence upon the comparison of the sequence number of the packet and the expected sequence number of the packet.

5. A method according to claim 1 , wherein the plurality of layers comprises a physical layer, a data link layer and a transaction layer.

6. A method according to claim 5 wherein the error checking performed in parallel is that of the data link layer and the transaction layer.

7. A method according to claim 6 , wherein error checking of the packet relating to a layer comprises:

comparing a CRC field of the packet with a computed CRC of the packet;

comparing a sequence number of the packet with an expected sequence number of the packet; and,

providing a first status value to the another layer in dependence upon the comparison of the CRC field of the packet and the computed CRC of the packet, and in dependence upon the comparison of the sequence number of the packet and the expected sequence number of the packet.

8. A method according to claim 1 , wherein error checking of the packet relating to a layer comprises:

comparing a CRC field of the packet with a computed CRC of the packet;

comparing a sequence number of the packet with an expected sequence number of the packet; and,

providing a first status value to the another layer in dependence upon the comparison of the CRC field of the packet and the computed CRC of the packet, and in dependence upon the comparison of the sequence number of the packet and the expected sequence number of the packet.

9. A method according to claim 8 comprising:

providing a second status value to the another layer in dependence upon performing error checking of the packet relating to the another layer; and,

discarding the packet when at least one of the first status value and the second status value is indicative of error within the packet.

10. A method according to claim 9 wherein when each of the first status value and the second status value is other than indicative of an error within the packet, transferring the packet to a host device.

11. A method according to claim 8 comprising:

returning the another layer to its state prior to receiving the packet when the first status value is indicative of an error within the packet.

12. A method according to claim 1 , comprising: processing a portion of the packet through a FIFO memory located within the layer prior to transferring at least a portion of the packet to the another layer.

13. A method according to claim 1 , absent storing the entire packet simultaneously within the memory of the layer.

14. A method of processing packets within a high speed serial interface comprising:

receiving the packet at a first layer of a plurality of layers, wherein the first layer comprises a link of the high speed serial interface;

during a first period of time, performing error checking of the packet relating to a second layer of the plurality of layers; and,

during a second period of time, transferring at least a portion of the packet to a third layer of the plurality of layers, at least a portion of the second period of time overlapping the first period of time.

15. A method according to claim 14 comprising:

during a third period of time, performing error checking of the packet relating to the third layer of the plurality of layers, at least a portion of the third period of time overlapping the first period of time and the second period of time.

16. An apparatus comprising:

a packet processing apparatus for receiving and transmitting packet data though a plurality of layers comprising:

a first packet memory located within a second layer of the plurality of layers for storing at least a first portion of the packet during a first period of time, the least a first portion of the packet smaller than a maximum received packet size; and,

a second packet memory located within a third layer of the plurality of layers for storing at least a portion of the packet during a same first period of time.

17. An apparatus comprising:

a physical layer comprising a PCI Express interface for receiving data from a PCI Express compatible communication medium, the data comprising a packet;

a data link layer for verifying a CRC and a sequence number within the packet; and

a transaction layer for receiving the packet from the data link layer and for processing thereof, the transaction layer for processing at least some of the packet in parallel to the data link layer.

18. An apparatus according to claim 17 wherein each of the data link layer and the transaction layer comprise memory storage locations, memory storage locations within the data link layer for storing a portion of a packet less than the whole received thereby.

19. An apparatus according to claim 17 , comprising a communication circuit for communicating between the data link layer and the transaction layer data that is indicative of a validity of the present packet.

20. An apparatus according to claim 17 , wherein the transaction layer comprises circuitry for returning the transaction layer to a state of the transaction layer prior to processing of the present packet upon receipt of a signal from the data link layer that the present packet is invalid.

Assignments (13)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2014
From: PARTNERS FOR CORPORATE RESEARCH INTERNATIONAL
To: FUTURE LINK SYSTEMS
Reel/Frame 032399/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2013
From: NXP B. V.
To: PARTNERS FOR CORPORATE RESEARCH INTERNATIONAL
Reel/Frame 031334/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2010
From: WOOD, SAM C.; CAESAR, ROBERT J., JR.
To: NXP B.V.
Reel/Frame 024685/0094 →