IP Library Granted Patent US 6,901,551
Granted Patent B1
US 6,901,551 · App. 10/022,051 · Granted May 31, 2005

Method and apparatus for protection of data utilizing CRC

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 6,901,551
App. No.
10/022,051
Granted
May 31, 2005
Kind
B1
Abstract

A dedicated hardware CRC computation engine is provided to assure the integrity of data transferred between the system memory and storage devices. The CRC computation engine provides CRC calculation “on-the-fly” for the protection of data transferred to and from the system memory without software overhead. The computation of CRC values and optional checking against previously calculated CRC values is selected through the use of an address-mapping scheme. This CRC protection scheme requires a small amount of initial software overhead to allocate the data, CRC value, and CRC error regions of the system memory. After the CRC protection scheme is initialized, all CRC operations are transparent to the executing software.

Claims (51)

1. A method for protecting a data transfer, comprising:

receiving a data transfer request, wherein the data transfer request comprises a request address;

determining whether the request address is within a generate address range;

sending generate information to a hardware computation engine in response to the request address being within the generate address range;

receiving a cyclical redundancy check value from the hardware computation engine; and

storing the cyclical redundancy check value.

2. The method of claim 1 , wherein the generate address range is defined by generate base and limit registers.

3. The method of claim 1 , wherein the hardware computation engine calculates the cyclical redundancy check value simultaneously with the data transfer.

4. The method of claim 1 , wherein the generate address range maps to a protected data area in memory.

5. The method of claim 4 , wherein the data transfer request is a write request.

6. The method of claim 5 , further comprising writing data for the data transfer request into the protected data area.

7. The method of claim 1 , further comprising:

determining whether the request address is within a check address range if the request address is not within a generate address range;

sending check information to the hardware computation engine;

receiving a cyclical redundancy check result from the hardware computation engine.

8. The method of claim 7 , further comprising:

performing the data transfer without cyclical redundancy protection if the request address is not within the generate address range or the check address range.

9. The method of claim 7 , wherein the generate address range and the check address range both map to a protected data area in memory.

10. The method of claim 1 , wherein the generate information includes the request address and data to be transferred.

11. A method for protecting a data transfer, comprising:

receiving a data transfer request, wherein the data transfer request comprises a request address;

determining whether the request address is within a check address range;

sending check information to a hardware computation engine in response to the request address being within the check address range; and

receiving a cyclical redundancy check result from the hardware computation engine.

12. The method of claim 11 , wherein the check address range is defined by check base and limit registers.

13. The method of claim 11 , wherein the hardware computation engine checks the cyclical redundancy check value simultaneously with the data transfer.

14. The method of claim 11 , wherein the cyclical redundancy check result includes error information.

15. The method of claim 14 , further comprising storing the error information.

16. The method of claim 11 , wherein the check address range maps to a protected data area in memory.

17. The method of claim 16 , wherein the data transfer request is a write request.

18. The method of claim 17 , further comprising writing data for the data transfer request into the protected data area.

19. The method of claim 16 , wherein the data transfer request is a read request.

20. The method of claim 19 , further comprising reading data for the data transfer request from the protected data area.

21. An apparatus for protecting a data transfer, comprising:

a memory interface logic;

a system memory coupled to the memory interface logic;

a hardware computation engine, wherein the hardware computation engine is coupled to the memory interface logic by a memory monitor bus and a memory read/write bus,

wherein the memory interface logic receives a data transfer request, wherein the data transfer request comprises a request address; determines whether the request address is within a generate address range; sends generate information to a hardware computation engine via the memory monitor bus in response to the request address being within the generate address range; receives a cyclical redundancy check value from the hardware computation engine via the memory read/write bus; and stores the cyclical redundancy check value in the system memory.

22. The apparatus of claim 21 , wherein the generate address range is defined by generate base and limit registers.

23. The apparatus of claim 21 , wherein the hardware computation engine calculates the cyclical redundancy check value simultaneously with the data transfer.

24. The apparatus of claim 21 , wherein the generate address range maps to a protected data area in the system memory.

25. An apparatus for protecting a data transfer, comprising:

a memory interface logic;

a system memory coupled to the memory interface logic;

a hardware computation engine, wherein the hardware computation engine is coupled to the memory interface logic by a memory monitor bus and a memory read/write bus,

wherein the memory interface logic receives a data transfer request, wherein the data transfer request comprises a request address; determines whether the request address is within a check address range; sends check information to a hardware computation engine via the memory monitor bus in response to the request address being within the check address range; and receives a cyclical redundancy check result from the hardware computation engine via the memory read/write bus.

26. The apparatus of claim 25 , wherein the check address range is defined by check base and limit registers.

27. The apparatus of claim 25 , wherein the hardware computation engine checks the cyclical redundancy check value simultaneously with the data transfer.

28. The apparatus of claim 25 , wherein the cyclical redundancy check result includes error information.

29. The apparatus of claim 28 , wherein the memory interface logic stores the error information.

30. The apparatus of claim 25 , wherein the check address range maps to a protected data area in the system memory.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0097. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048555/0510 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0097 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
CHANGE OF NAME Recorded Jun 6, 2014
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 033102/0270 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2001
From: CORRIGAN, BRIAN E. III
To: LSI LOGIC CORPORATION
Reel/Frame 012394/0896 →