Fault tolerant hard disk array controller
AssigneeEclipse Technologies, Inc.
InventorsAlexander Holland, Peter G. Vavaroutsos
Life of this patent
Estimating the term…
Loading patent…
AssigneeEclipse Technologies, Inc.
InventorsAlexander Holland, Peter G. Vavaroutsos
Estimating the term…
The disk array control system is a fault tolerant controller for arrays of hard disk drives. With the controller as a front end, an array of hard disk drives would appear as a single drive to a host computer system connected to the controller. The controller translates input/output data transfer requests from the host system to input/output data transfer requests for the appropriate drives in the drive array. To minimize latency, translation techniques provide for a minimal number of accesses to the drives in the array. Queued input/output requests are supported, and, to maximize throughput, optimal scheduling techniques are used to optimize resource usage and minimize drive access overheads. Means are provided for detecting module failures, sustaining operation after failure, and replacing faulty modules without interrupting service.
A fault tolerant memory array control system for controlling data accesses to and from a host system bus and a memory array of discrete bulk memory units, organized by channel index and rank index, wherein bulk memory units with the same rank index are of a similar type and capacity, and bulk memory units with the same channel index share a common channel data bus, the memory array control system comprising:
A method for translating logical access address data to a physical array access address data set for an array of bulk memories having C channels and a plurality of rank levels, the array using a RAID-0 block striping data format, the logical access address data described by a starting block address, n, and a block length parameter, N, indicating the number of contiguous blocks to be accessed, and producing a set of channel indices, {m.sub.i }, a set of channel starting addresses, {s.sub.m.sbsb.i }, and a set of channel transfer length parameters, {x.sub.i (j)}, indicating the length of access for each rank, p.sub.ij, involved in the access for each channel, for producing an optimal set of physical access addresses requiring a minimal set of access commands, the method comprises:
A method for translating logical access address data to a physical array access address data set for an array of bulk memories having C channels and a plurality of rank levels, the array using a RAID-1 partitioned mirrored data format, the logical access address data described by a starting block address, n, and a block length parameter, N, indicating the number of contiguous blocks to be accessed, and producing a set of channel indices, {m.sub.i }, a set of channel starting addresses, {s.sub.m.sbsb.i }, and a set of channel transfer length parameters, {x.sub.i (j)}, indicating the number of contiguous blocks to be accessed for each rank, p.sub.j, and for each channel, for producing a set of physical access address data requiring a minimal set of access commands, the partitioned mirrored memory having a first set of channel and rank coordinates, (m, p), for a first partitioned section of memory, and a second set, (m', p'), for a second partitioned section of memory, the method comprises:
A method for translating logical access address data to a physical array access address data set for an array of bulk memories having C channels and a plurality of rank levels, using a RAID-3 byte striping format, the logical access data described by a starting address, n, and a block length parameter, N, indicating the number of blocks to be accessed, and producing a set of rank index, {p.sub.j }, a starting address index s, and a set of transfer length parameters, {x(j)}, indicating the number of contiguous transfers for each rank, p.sub.j, and for producing a set of physical access addresses requiring a minimal set of access commands, the method comprises:
A method for translating logical access address data to a physical array access address data set for an array of bulk memories having C channels and a plurality of rank levels, using a RAID-5 block striping format with distributed parity for allowing parallel access operations, the distributed parity blocks located at reserved logical block address set, {n.sub.j }, where {n.sub.j } satisfies a constraint condition, n.sub.j mod C.sup.2 =j(C+1) for j=0,1,2, . . . , C-1, the physical array access address data set includes a set of channel indices, {m.sub.i }, a set of channel starting addresses, {s.sub.m.sbsb.i }, and a set of channel transfer length parameters, {x.sub.i (j)}, indicating the number of blocks in rank j and channel m.sub.i that are involved in the access, for producing a set of physical access address data requiring a minimal set of access commands, the method comprises:
A method for accessing a memory array that reduces latency by optimizing parallel access to a memory array of discrete bulk memory units organized by channel index and rank index, wherein bulk memory units with the same rank are of a similar type and capacity, and bulk memory units with the same channel index share a common channel data bus, the method comprising:
Dependencies are inferred from the claim text.