IP Library Patent Application 14261476
Patent Application
App. No. 14/261,476

DATA STORAGE SYSTEM WITH CACHING USING APPLICATION FIELD TO CARRY DATA BLOCK PROTECTION INFORMATION

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 None
App. No.
14/261,476
Abstract

In a data storage system in which a host system transfers data to a data storage controller having cache memory, the data storage controller can use a designated field of each of several cache data blocks, such as an application (APP) field, to contain protection information from fields of a host data block, such as the guard (GRD) and reference (REF) fields as well as the APP field.

Claims (54)

1 . A method for data caching in a data storage system controller, comprising:

receiving a host data block from a host system, the host data block comprising a data field, a first protection information field configured for storing a first type of protection information, and a second protection information field configured for storing a second type of protection information, the data field of the host data block containing host data, the first protection information field of the host data block containing first protection information, and the second protection information field of the host data block containing second protection information;

dividing the host data block into a plurality of cache data blocks including a first cache data block and a second cache data block, each cache data block of the plurality of cache data blocks having a data field, a first protection information field configured for storing the first type of protection information, and a second protection information field configured for storing the second type of protection information;

transferring a portion of the host data contained in the host data block into the data field of each cache data block of the plurality of cache data blocks, each data field of each cache data block containing a different portion of the host data from the data field of all others of the cache data blocks;

transferring the first protection information contained in the first protection information field of the host data block to the second protection information field of the first cache data block; and

storing the plurality of cache data blocks in a cache memory.

2 . The method of claim 1 , wherein the first type of protection information is a cyclic redundancy check, and the second type of protection information is not a cyclic redundancy check.

3 . The method of claim 2 , wherein:

the first protection information field of the host data block is a data integrity extension guard field; and

the second protection information field of the host data block is a data integrity extension application field.

4 . The method of claim 1 , further comprising transferring the second protection information contained in the second protection information field of the host data block to the second protection information field of the second cache data block.

5 . The method of claim 4 , wherein the first type of protection information is a cyclic redundancy check, and the second type of protection information is not a cyclic redundancy check.

6 . The method of claim 5 , wherein:

the first protection information field of the host data block is data integrity extension guard field; and

the second type of protection information of the host data block is a data integrity extension application field.

7 . The method of claim 1 , wherein the host data block further comprises a third protection information field configured for storing a third type of protection information, the third protection information field of the host data block contains third protection information, each cache data block of the plurality of cache data blocks further comprises a third protection information field configured for storing the third type of protection information, and the method further comprises transferring the third protection information contained in the third protection information field of the host data block to the second protection information field of the third cache data block.

8 . The method of claim 7 , wherein:

the third protection information field of the host data block has a size twice a size of the second protection information field of each of the cache data blocks; and

transferring the third protection information comprises transferring a first half of the third protection information contained in the third protection information field of the host data block to the second protection information field of the third cache data block and transferring a second half of the third protection information contained in the third protection information field of the host data block to the second protection information field of the fourth cache data block.

9 . The method of claim 8 , wherein:

the first protection information field of the host data block is data integrity extension guard field configured for storing a cyclic redundancy check value;

the second protection information field of the host data block is a data integrity extension application field; and

the third protection information field of the host data block is a data integrity extension reference field.

10 . A data storage controller, comprising:

a cache memory; and

a processing system programmed or configured to:

receive a host data block from a host system, the host data block comprising a data field, a first protection information field configured for storing a first type of protection information, and a second protection information field configured for storing a second type of protection information, the data field of the host data block containing host data, the first protection information field of the host data block containing first protection information, and the second protection information field of the host data block containing second protection information;

divide the host data block into a plurality of cache data blocks including a first cache data block and a second cache data block, each cache data block of the plurality of cache data blocks having a data field, a first protection information field configured for storing the first type of protection information, and a second protection information field configured for storing the second type of protection information;

transfer a portion of the host data contained in the host data block into the data field of each cache data block of the plurality of cache data blocks, each data field of each cache data block containing a different portion of the host data from the data field of all others of the cache data blocks;

transfer the first protection information contained in the first protection information field of the host data block to the second protection information field of the first cache data block; and

store the plurality of cache data blocks in the cache memory.

11 . The data storage controller of claim 10 , wherein the first type of protection information is a cyclic redundancy check, and the second type of protection information is not a cyclic redundancy check.

12 . The data storage controller of claim 11 , wherein:

the first protection information field of the host data block is a data integrity extension guard field; and

the second protection information field of the host data block is a data integrity extension application field.

13 . The data storage controller of claim 10 , wherein the processing system is further programmed or configured to transfer the second protection information contained in the second protection information field of the host data block to the second protection information field of the second cache data block.

14 . The data storage controller of claim 13 , wherein the first type of protection information is a cyclic redundancy check, and the second type of protection information is not a cyclic redundancy check.

15 . The data storage controller of claim 14 , wherein:

the first protection information field of the host data block is a data integrity extension guard field; and

the second protection information field of the host data block is a data integrity extension application field.

16 . The data storage controller of claim 10 , wherein the host data block further comprises a third protection information field configured for storing a third type of protection information, the third protection information field of the host data block contains third protection information, each cache data block of the plurality of cache data blocks further comprises a third protection information field configured for storing the third type of protection information, and the processing system if further programmed or configured to transfer the third protection information contained in the third protection information field of the host data block to the second protection information field of the third cache data block.

17 . The data storage controller of claim 16 , wherein:

the third protection information field of the host data block has a size twice a size of the second protection information field of each of the cache data blocks; and

the processor is programmed or configured to transfer the third protection information by transferring a first half of the third protection information contained in the third protection information field of the host data block to the second protection information field of the third cache data block and transferring a second half of the third protection information contained in the third protection information field of the host data block to the second protection information field of the fourth cache data block.

18 . The data storage controller of claim 17 , wherein:

the first protection information field of the host data block is data integrity extension guard field configured for storing a cyclic redundancy check value;

the second protection information field of the host data block is a data integrity extension application field; and

the third protection information field of the host data block is a data integrity extension reference field.

19 . A computer program product comprising computer readable medium having stored thereon in computer executable non-transitory form instructions that, when executed on a processing system of a data storage system controller, cause the processing system to:

receive a host data block from a host system, the host data block comprising a data field, a first protection information field configured for storing a first type of protection information, and a second protection information field configured for storing a second type of protection information, the data field of the host data block containing host data, the first protection information field of the host data block containing first protection information, and the second protection information field of the host data block containing second protection information;

divide the host data block into a plurality of cache data blocks including a first cache data block and a second cache data block, each cache data block of the plurality of cache data blocks having a data field, a first protection information field configured for storing the first type of protection information, and a second protection information field configured for storing the second type of protection information;

transfer a portion of the host data contained in the host data block into the data field of each cache data block of the plurality of cache data blocks, each data field of each cache data block containing a different portion of the host data from the data field of all others of the cache data blocks;

transfer the first protection information contained in the first protection information field of the host data block to the second protection information field of the first cache data block; and

store the plurality of cache data blocks in a cache memory of the data storage controller system.

Assignments (6)
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 →
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 Apr 25, 2014
From: PURKAYASTHA, SAUGATA DAS
To: LSI CORPORATION
Reel/Frame 032763/0311 →