Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
First Claim
6. A method for updating a block of data stored in a striped data architecture in a redundant disk drive array with a block of new data, the method comprising the steps of:
- identifying a current data stripe that includes the block to be updated;
identifying a first drive of the array that stores current parity data for the current stripe;
identifying a second drive of the array that stores the data block to be updated;
reading the data block and reading a corresponding parity block from the first and second drives, respectively;
computing a first XOR of the retrieved data block and the retrieved parity block to form an intermediate block of data;
storing the computed XOR in a temporary storage location, wherein said computing step is done “
on the fly”
during said storing step without storing the retrieved data block and the retrieved parity block in memory;
reading the temporary storage location block and reading the new data block;
computing a second XOR of the intermediate block and the new data block;
synchronously storing the second computed XOR in the parity drive (first drive) and storing the new data block into the second drive.
1 Assignment
0 Petitions
Accused Products
Abstract
A RAID disk drive controller (FIG. 33) implements disk storage operations, including striping and redundancy operations with multiple disk drives connected via respective SATA ports (520). Configurable data path switch logic (460) provides dynamic configuration of two or more attached drives into one or more arrays. Data transfers are synchronized locally by leveraging the SATA port transport layer FIFO (530). Synchronous transfers allow on-the-fly redundancy (XOR) operations (FIG. 36) for improved performance and reduced hardware complexity. XOR accumulator hardware (FIG. 42-FIG. 43) reduces buffer requirements for multiple DMA channels otherwise required for synchronization, and various narrow and wide striping modes are supported.
-
Citations
43 Claims
-
6. A method for updating a block of data stored in a striped data architecture in a redundant disk drive array with a block of new data, the method comprising the steps of:
-
identifying a current data stripe that includes the block to be updated;
identifying a first drive of the array that stores current parity data for the current stripe;
identifying a second drive of the array that stores the data block to be updated;
reading the data block and reading a corresponding parity block from the first and second drives, respectively;
computing a first XOR of the retrieved data block and the retrieved parity block to form an intermediate block of data;
storing the computed XOR in a temporary storage location, wherein said computing step is done “
on the fly”
during said storing step without storing the retrieved data block and the retrieved parity block in memory;
reading the temporary storage location block and reading the new data block;
computing a second XOR of the intermediate block and the new data block;
synchronously storing the second computed XOR in the parity drive (first drive) and storing the new data block into the second drive. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A two-step method for updating a data block and a parity block stored in a redundant disk drive array with updated data, the method comprising the steps of:
-
in a first step, reading the data block and reading the parity block from the array;
computing an XOR of the data block and the parity block; and
storing the computed XOR in a temporary storage location without storing either the data block or the parity block in memory; and
in a second step, reading the computed XOR from the temporary storage location and reading the updated data block from memory;
computing a second XOR of the first computed XOR and the updated data block;
storing the updated data block in the array; and
storing the second computed XOR in the parity drive of the array to update the parity block. - View Dependent Claims (13, 14, 15, 16)
-
-
17. An improved RAID disk array controller comprising:
-
a plurality of serial disk drive interfaces for attaching physical disk drives to form a disk drive array;
each of the serial interfaces including a buffer memory for storing write data to be stored on the attached disk drive in a disk write operation;
each of the serial interfaces providing a status flag output to indicate when the buffer memory is FULL;
switch logic circuitry coupled to all of the serial interfaces for receiving write data from at least one DMA channel and providing the write data to the buffer memories during a write operation;
a logic circuit for detecting when all of the buffer memories are not full; and
a control circuit responsive to the logic circuit for synchronously writing the write data from the DMA channel(s) to all of the buffer memories via the switch logic circuitry, thereby forming synchronous write data; and
the switch logic circuitry includes a boolean XOR circuit for forming redundant data “
on the fly”
from the synchronous write data for storing in the array. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. An improved RAID disk array controller comprising:
- [READ]
a plurality of serial disk drive interfaces for attaching physical disk drives to form a disk drive array;
each of the serial interfaces including a buffer memory for storing read data fetched from the attached disk drive in a disk read operation;
each of the serial interfaces providing a status flag output to indicate whether the buffer memory is presently empty or not;
switch logic circuitry coupled to all of the serial interfaces to implement data paths for receiving read data from at least one of the serial interfaces and providing the received read data to at least one DMA channel during a write operation;
a logic circuit for detecting when all of the buffer memories are not empty;
a control circuit responsive to the logic circuit for synchronously transferring the read data from all of the buffer memories to the DMA channel(s) via the switch logic circuitry, thereby forming synchronous read data; and
the switch logic circuitry includes a boolean XOR circuit for reconstructing missing data “
on the fly”
from the synchronous read data as it is transferred from the buffer memories to the DMA channel(s). - View Dependent Claims (1, 2, 3, 4, 5, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
- [READ]
-
35-1. An improved RAID disk array controller according to claim 34 wherein the switch logic circuitry is configured by mapping data.
Specification