IP Library Granted Patent US 7,681,102
Granted Patent B2
US 7,681,102 · App. 11/396,748 · Granted Mar 16, 2010

Byte level protection in 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 7,681,102
App. No.
11/396,748
Granted
Mar 16, 2010
Kind
B2
Abstract

Method and system for protecting data in a PCI-Express device is provided. The method includes adding error correction code (ECC) to every byte of data that enters a PCI-Express Transaction Handler (“PTH”) Module and is destined for a host system memory or destined to another device, before the data is aligned within the PTH module; verifying the ECC code for every byte of the data before the data leaves the PTH module; and generating the ECC code for a data block size, wherein the data block size depends on the destination of the data.

Claims (29)

1. A method for protecting data in a PCI-Express device, comprising:

(a) receiving data at a PCI-Express Transaction Handler (“PTH”) Module for the PCI-Express device;

(b) verifying a first error correction code (“ECC”) for the received data;

(c) before data is aligned by the PTH module, generating ECC for every byte of data that is received in step (a);

(d) aligning the data after the ECC is generated in step (c);

(e) without having to regenerate ECC for the aligned data, verifying the ECC generated in step (c) after the data is aligned; and

(f) before sending the data to a destination, generating ECC code for a data block size, wherein the data block size depends on the destination of the data.

2. The method of claim 1 , wherein 5-bit ECC is added for every byte of data.

3. The method of claim 1 , wherein after byte level ECC is verified in the PTH module and data has been aligned, ECC is generated for every 32 data bits when data is destined for a host system memory.

4. The method of claim 3 , wherein the ECC is 7-bits for every 32 data bits.

5. The method of claim 1 , wherein after byte level ECC is verified in the PTH module and data has been aligned, ECC is generated for every 64 data bits when data is destined for the device.

6. The method of claim 5 , wherein the ECC is 8-bits for every 64 data bits.

7. The method of claim 1 , wherein the PCI Express device is a host bus adapter that is coupled to another device via a network connection and to a host system via a PCI Express bus.

8. A PCI-Express device coupled to a host system via a PCI Express bus and to a device via a network connection, comprising:

a PCI-Express Transaction Handler (“PTH”) Module that is configured to: (a) receive data; (b) verify a first error correction code (“ECC”) for the received data; (c) before data is aligned by the PTH module, generate ECC for every byte of data that is received by the PTH Module; (d) align the data after the ECC is generated by the PTH Module; (e) verify the ECC generated in (c) after the data is aligned, without having to regenerate ECC for the aligned data; and (f) before sending the data, generate ECC code for a data block size; wherein the data block size depends on a destination of the data.

9. The PCI Express device of claim 8 , wherein 5-bit ECC is added for every byte of data.

10. The PCI Express device of claim 8 , wherein after byte level ECC is verified in the PTH module and data has been aligned, ECC is generated for every 32 data bits when data is destined for a host system memory.

11. The PCI Express device of claim 10 , wherein the ECC is 7-bits for every 32 data bits.

12. The PCI Express device of claim 8 , wherein after byte level ECC is verified in the PTH module and data has been aligned, ECC is generated for every 64 data bits when data is destined for the device.

13. The PCI Express device of claim 12 , wherein the ECC is 8-bits for every 64 data bits.

14. The PCI Express device of claim 8 , wherein the PCI Express device is a host bus adapter.

15. The method of claim 1 , wherein the PCI-Express device is an adapter and data is received from a host memory and is destined for another device via the adapter.

16. The method of claim 1 , wherein the PCI-Express device is an adapter and data is received from another device and destined for a host memory.

17. The PCI-Express device of claim 8 , wherein data is received from a host memory and is destined for the device.

18. The PCI-Express device of claim 8 , wherein data is received from the device and destined for a host memory.

19. An adapter coupled to a host system and to a device via a network connection, comprising:

a transaction handler configured to: (a) receive data; (b) verify a first error correction code (“ECC”) for the received data; (c) before data is aligned by the transaction handler, generate ECC for every byte of data that is received by the transaction handler; (d) align the data after the ECC is generated by the transaction handler; (e) verify the ECC generated in (c) after the data is aligned, without having to regenerate ECC for the aligned data; and (f) before sending the data, generate ECC code for a data block size; wherein the data block size depends on a destination of the data.

20. The adapter of claim 19 , wherein data is received from a host memory and is destined for the device.

21. The adapter of claim 19 , wherein data is received from the device and is destined for a host memory.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2006
From: SONKSEN, BRADLEY S.; CHAU, VI
To: QLOGIC CORPORATION
Reel/Frame 017714/0712 →