IP Library Granted Patent US 7,769,948
Granted Patent B2
US 7,769,948 · App. 11/544,442 · Granted Aug 3, 2010

Virtual profiles for storage-device array encoding/decoding

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,769,948
App. No.
11/544,442
Granted
Aug 3, 2010
Kind
B2
Abstract

In one embodiment, a method for accessing a physical storage-device array comprising a plurality of storage devices. The method includes (1) obtaining at least one parameter from a profile selected from two or more profiles concurrently defining two or more virtual arrays, each profile defining (i) a different virtual array associated with a corresponding set of storage devices and (ii) a parameter set of one or more parameters used for accessing the virtual array; and (2) generating an instruction, based on the at least one parameter, for accessing information to the virtual array defined by the selected profile.

Claims (70)

1. A method for accessing a physical storage-device array comprising a plurality of storage devices, the method comprising:

selecting a first profile and a second profile from among two or more profiles concurrently defining two or more virtual arrays, each profile defining (i) a different virtual array associated with a corresponding set of storage devices and (ii) a parameter set of one or more parameters used for accessing the virtual array;

while both the first profile and the second profile remain selected, obtaining at least one first parameter from the first profile;

while both the first profile and the second profile remain selected, generating an instruction, based on the at least one first parameter, for accessing information of the virtual array defined by the first profile;

while both the first profile and the second profile remain selected, obtaining at least one second parameter from the second profile; and

while both the first profile and the second profile remain selected, generating an instruction, based on the at least one second parameter, for accessing information of the virtual array defined by the second profile.

2. The method of claim 1 , wherein:

the first and second profiles are associated with at least a common subset of one or more storage devices; and

the parameter sets of the first and second profiles are different from each other.

3. The method of claim 1 , wherein:

information is read from or written to the storage devices in the set, one chunk at a time; and

a parameter in each parameter set indicates chunk size for the corresponding virtual array.

4. The method of claim 3 , wherein a chunk comprises either (i) at least a portion of the information or (ii) parity data generated from at least a portion of the information.

5. The method of claim 4 , wherein:

a number of chunks are substantially concurrently written to or read from the storage devices in the virtual array defined by the selected profile; and

a parameter in each parameter set indicates the aggregate size of the number of chunks for the corresponding virtual array.

6. The method of claim 4 , wherein a parameter in each parameter set indicates whether chunks of parity data are generated for the corresponding virtual array.

7. The method of claim 1 , wherein a parameter in each parameter set indicates whether a storage device in the corresponding virtual array is degraded.

8. The method of claim 1 , wherein a parameter in each parameter set indicates a RAID level for the corresponding virtual array.

9. The method of claim 1 , wherein a parameter in each parameter set indicates the number of storage devices in the corresponding virtual array.

10. The method of claim 1 , wherein the first and second profiles define, respectively, (i) a first virtual array having a storage configuration at a first RAID level and (ii) a second virtual array having a second storage configuration different from the first storage configuration.

11. The method of claim 10 , wherein the second storage configuration has a RAID level different from the first RAID level.

12. The method of claim 10 , wherein the second storage configuration is JBOD.

13. The method of claim 1 , wherein:

the storage-device array (i) comprises three or more storage devices and (ii) has a plurality of stripes, each stripe having two or more sector levels, each sector level containing one sector on each storage device in the array at corresponding addresses across the storage devices, and the method further comprises:

(a) calculating a parity index based on (i) an index value for a current stripe and (ii) the number of storage devices in the array, the parity index identifying a first storage device for parity data for the current stripe; and

(b) at each sector level of the current stripe:

(b1) writing parity data to the first storage device identified by the parity index; and

(b2) writing information to the remaining storage devices.

14. The method of claim 13 , wherein the storage devices use a buffer having a first portion and a second portion, and the method further comprises:

(c) accessing the first and second profiles; and

(d) generating two or more successive pairs of instructions, wherein:

the first instruction of each pair of instructions (i) is based on one or more parameters of the first profile and (ii) is an instruction to read, into the first portion of the buffer, one sector of data from each storage device of a first virtual array; and

the second instruction of each pair of instructions (i) is based on one or more parameters of the second profile and (ii) is an instruction to read, into the second portion of the buffer, one sector of data from each storage device of a second virtual array.

15. The method of claim 1 , wherein:

the storage-device array (i) comprises three or more storage devices and (ii) has a plurality of stripes, each stripe having two or more sector levels, each sector level containing one sector on each storage device in the array at corresponding addresses across the storage devices, and the method further comprises:

(a) calculating a parity index based on (i) an index value for a current stripe and (ii) the number of storage devices in the array, the parity index identifying a first storage device for parity data for the current stripe; and

(b) at each sector level of the current stripe:

(b1) reading parity data from the first storage device identified by the parity index; and

(b2) reading information from the remaining storage devices.

16. The method of claim 15 , wherein the storage devices use a buffer having a first portion and a second portion, and the method further comprises:

(c) accessing the first and second profiles; and

(d) generating two or more successive pairs of instructions, wherein:

the first instruction of each pair of instructions (i) is based on one or more parameters of the first profile and (ii) is an instruction to read, into the first portion of the buffer, one sector of data from each storage device of a first virtual array; and

the second instruction of each pair of instructions (i) is based on one or more parameters of the second profile and (ii) is an instruction to read, into the second portion of the buffer, one sector of data from each storage device of a second virtual array.

17. The method of claim 1 , wherein:

the plurality of storage devices use a buffer having a first portion and a second portion;

the physical storage-device array has a plurality of sector levels, each sector level containing one sector on each storage device in the array at corresponding addresses across the storage devices, and the method further comprises:

(a) accessing the first and second profiles; and

(b) generating two or more successive pairs of instructions, wherein:

the first instruction of each pair of instructions (i) is based on one or more parameters of the first profile and (ii) is an instruction to read, into the first portion of the buffer, one sector of data from each storage device of a first virtual array; and

the second instruction of each pair of instructions (i) is based on one or more parameters of the second profile and (ii) is an instruction to read, into the second portion of the buffer, one sector of data from each storage device of a second virtual array.

18. The method of claim 1 , wherein the two or more profiles are stored in hardware registers.

19. Apparatus comprising a processor for accessing a physical storage-device array comprising a plurality of storage devices, the apparatus adapted to:

select a first profile and a second profile from among two or more profiles concurrently defining two or more virtual arrays, each profile defining (i) a different virtual array associated with a corresponding set of storage devices and (ii) a parameter set of one or more parameters used for accessing the virtual array;

while both the first profile and the second profile remain selected, obtain at least one first parameter from the first profile;

while both the first profile and the second profile remain selected, generate an instruction, based on the at least one first parameter, for accessing information of to the virtual array defined by the first profile;

while both the first profile and the second profile remain selected, obtain at least one second parameter from the second profile; and

while both the first profile and the second profile remain selected, generate an instruction, based on the at least one second parameter, for accessing information of the virtual array defined by the second profile.

20. The apparatus of claim 19 , wherein the apparatus is embodied in an integrated circuit.

21. The apparatus of claim 19 , wherein the two or more profiles are stored in hardware registers.

22. A computer system comprising:

a computer having a processor and an interface;

a physical storage-device array having a plurality of storage devices; and

a storage system coupled to the computer via the interface and adapted to access the physical storage-device array, the storage system adapted to:

select a first profile and a second profile from among two or more profiles concurrently defining two or more virtual arrays, each profile defining (i) a different virtual array associated with a corresponding set of storage devices and (ii) a parameter set of one or more parameters used for accessing the virtual array;

while both the first profile and the second profile remain selected, obtain at least one first parameter from the first profile;

while both the first profile and the second profile remain selected, generate an instruction, based on the at least one first parameter, for accessing information of the virtual array defined by the first profile;

while both the first profile and the second profile remain selected, obtain at least one second parameter from the second profile; and

while both the first profile and the second profile remain selected, generate an instruction, based on the at least one second parameter, for accessing information of the virtual array defined by the second profile.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
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: AGERE SYSTEMS LLC
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035365/0634 →
CERTIFICATE OF CONVERSION Recorded Aug 29, 2014
From: AGERE SYSTEMS INC.
To: AGERE SYSTEMS LLC
Reel/Frame 033663/0948 →
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 →