Claims
- 1. A computer system, comprising:
a drive array that stores data and corresponding parity data; a main memory; a processor coupled to the main memory that generates and stores data in the main memory and that sends a logical request to transfer the stored data to the drive array; and an array controller coupled to the drive array, the main memory and the processor that receives the logical request and that transfers the stored data to the drive array, comprising:
a transfer buffer; a local memory that stores an index indicating free data sectors and non-zero data sectors within the transfer buffer; and processing circuitry coupled to the transfer buffer and the local memory that receives the logical request, that transfers the stored data to the transfer buffer, that combines the stored data with corresponding data from the drive array to generate new parity data and that stores the stored data and the new parity data to the drive array, and when otherwise idle, that scans the index for free and non-zero sections in the transfer buffer and that zeroes data sectors of at least one of the free and non-zero sections within the transfer buffer.
- 2. The computer system of claim 1, the processing circuitry further comprising:
get circuitry that allocates a block of memory space from free and zeroed sectors within the transfer buffer.
- 3. The computer system of claim 2, wherein the get circuitry accepts at least one input parameter to indicate buffer allocation requirements and produces an output status to indicate success of allocating a buffer according to the buffer allocation requirements.
- 4. The computer system of claim 2, wherein the block of memory space is the largest contiguous free and zero section within the transfer buffer.
- 5. The computer system of claim 1 wherein the processing circuitry includes:
a memory controller coupled to the transfer buffer via a multithreaded interface that performs parallel exclusive-OR logic operations within the transfer buffer.
- 6. The computer system of claim 1 further comprising:
the processing circuitry including a second processor; and the memory storing software for execution by the second processor that includes an idle task that causes the second processor to scan the index for free and non-zero sections in the transfer buffer and to zero data sectors of at least one of the free and non-zero sections within the transfer buffer.
- 7. The computer system of claim 6, wherein the second processor is a local processor.
- 8. The computer system of claim 6 wherein the idle task further updates the index after zeroing data sectors of at least one of the free and non-zero sections within the transfer buffer.
- 9. The computer system of claim 1, wherein the drive array comprises:
a redundant array of disk drives that stores data and parity in a block interleaved format.
- 10. The computer system of claim 1, wherein the processing circuitry transfers the stored data to the transfer buffer and combines the stored data with corresponding data from the drive array to generate new parity data in a parallel operation.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present case is a continuation of U.S. application Ser. No. 08/963862 entitled “Method and Apparatus for Zeroing A Transfer Buffer Memory As A Background Task,” (Attorney Docket No. P-1391), filed Nov. 4, 1997, allowed Aug. 27, 2001.
Continuations (1)
|
Number |
Date |
Country |
| Parent |
08963862 |
Nov 1997 |
US |
| Child |
10006553 |
Dec 2001 |
US |