Operation aware striping in parallel drives
AssigneeMarvell International Ltd.
InventorsWei Zhou, Chee Hoe Chu, Po-Chien Chang
Life of this patent
Estimating the term…
Abstract
Embodiments of the present invention provide a method comprising performing an operation on a first flash drive of a plurality of flash drives configured in a parallel flash drive architecture, wherein the operation occupies a flash controller corresponding to the first flash drive, sending a signal to a processor coupled with the parallel flash drive architecture to indicate that the flash controller is occupied, and writing data to two or more of the plurality of flash drives, other than the first flash drive, by striping the data amongst the two or more of the plurality of flash drives in response to the signal to the processor. Other embodiments may be described and/or claimed.
Claims19
A method of writing data to a plurality of flash drives, comprising:
- performing an operation on a first flash drive of the plurality of flash drives configured in a parallel flash drive architecture, wherein the operation occupies a first flash controller corresponding to the first flash drive, and wherein the operation includes one of a read operation, a write operation, or an erase operation;
- while the operation occupies the first flash controller, generating a signal to indicate that the first flash controller is occupied for performing the operation;
- and
- in response to the signal indicating that the first flash controller is to be occupied while the data is to be written,
- (i) writing the data to two or more of the plurality of flash drives, other than the first flash drive, by striping the data amongst the two or more of the plurality of flash drives, and
- (ii) refraining from writing the data to the first flash drive.
An apparatus comprising:
- a processor;
- a plurality of flash controllers arranged in parallel, wherein the plurality of flash controllers comprises a first flash controller;
- and
- a plurality of flash drives corresponding to the plurality of flash controllers, wherein the plurality of flash drives comprises a first flash drive that is controlled by the first flash controller, wherein the first flash controller is configured to generate a signal in response to the first flash controller being in an occupied state, wherein the first flash controller is in the occupied state in response to an operation being performed on the first flash drive, and wherein the operation includes one of a read operation, a write operation, or an erase operation,
- wherein the processor is configured to, in response to the signal indicating that the first flash controller is to be occupied while data is to be written, (i) write the data to two or more of the plurality of flash drives, other than the first flash drive, by striping the data across the two or more of plurality of flash drives and (ii) refrain from writing the data to the first flash drive.
A method comprising:
- performing an operation on a first flash drive of a plurality of flash drives configured in a parallel flash drive architecture, wherein the operation occupies a flash controller corresponding to the first flash drive, and wherein the operation includes at least one of a read operation, a write operation, an erase operation, and a wear leveling operation;
- sending a signal to a processor coupled with the parallel flash drive architecture to indicate that the flash controller is occupied;
- in response to the signal to the processor, writing data to two or more of the plurality of flash drives, other than the first flash drive, by striping the data amongst the two or more of the plurality of flash drives;
- performing another operation on a second flash drive of the plurality of flash drives, wherein the another operation occupies another flash controller corresponding to the second flash drive, wherein the another operation includes at least one of a read operation, a write operation, an erase operation, and a wear leveling operation;
- sending another signal to the processor to indicate that the another flash controller is occupied;
- refrain from reading a first block of data from the second flash drive in response to the another signal to the processor;
- reading two or more blocks of data from two or more of the plurality of flash drives, other than the second flash drive, in response to the another signal to the processor;
- and
- reconstructing data from the two or more blocks of data, using parity data, to compensate for not reading the first block of data.
A method of reading data from a plurality of flash drives, wherein the plurality of flash drives comprises (i) a first flash drive and (ii) a subset of the plurality of flash drives, wherein the plurality of flash drives are configured in a parallel flash drive architecture, the method comprising:
- writing the data to the plurality of flash drives, by striping the data amongst the plurality of flash drives, wherein the data written to the plurality of flash drives represents (i) user data and (ii) parity data associated with the user data, wherein the data includes (i) a first block of the data written to the first flash drive and (ii) a plurality of blocks of the data written to the subset of the plurality of flash drives;
- performing an operation on the first flash drive of the plurality of flash drives, wherein the first flash drive is controlled by a first flash controller;
- while performing the operation on the first flash drive, generating a signal to indicate that the first flash controller is occupied;
- and
- in response to the signal indicating that the first flash controller is occupied while the data is to be read from the plurality of flash drives,
- (i) refraining from reading the first block of the data from the first flash drive,
- (ii) reading the plurality of blocks of the data from the subset of the plurality of flash drives, and
- (iii) reconstructing the user data from the plurality of blocks of the data read from the subset of the plurality of flash drives, using the parity data, to compensate for not reading the first block of data from the first flash drive.
An apparatus comprising:
- a plurality of flash drives, wherein the plurality of flash drives comprises (i) a first flash drive and (ii) a subset of the plurality of flash drives, wherein the plurality of flash drives are configured in a parallel flash drive architecture;
- a plurality of flash controllers corresponding to the plurality of flash drives, wherein the first flash drive is controlled by a first flash controller of the plurality of flash controllers;
- a processor, wherein the processor is configured to
- write data to the plurality of flash drives, by striping the data amongst the plurality of flash drives, wherein the data written to the plurality of flash drives represents (i) user data and (ii) parity data associated with the user data, wherein the data includes (i) a first block of the data written to the first flash drive and (ii) a plurality of blocks of the data written to the subset of the plurality of flash drives,
- facilitate performing an operation on the first flash drive of the plurality of flash drives,
- while the operation is being performed on the first flash drive, receive a signal to indicate that the first flash controller is occupied, and
- in response to the signal indicating that the first flash controller is occupied while the data is to be read from the plurality of flash drives,
- (i) refrain from reading the first block of the data from the first flash drive,
- (ii) read the plurality of blocks of the data from the subset of the plurality of flash drives, and
- (iii) reconstruct the user data from the plurality of blocks of the data read from the subset of the plurality of flash drives, using the parity data, to compensate for not reading the first block of data from the first flash drive.
Dependencies are inferred from the claim text.