Method and apparatus for zeroing a transfer buffer memory as...

Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000

Reexamination Certificate

active

06341342

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to drive arrays, and more particularly to a method and apparatus for zeroing transfer buffer memory as a background task to improve the performance of read and write operations to a drive array.
DESCRIPTION OF THE RELATED ART
Personal computer systems are continuing to develop at a relatively high pace due to substantial improvements in performance and density of semiconductor technology. The continual increase of computer system performance and use has lead to a corresponding need for improvements in the performance, capacity and reliability of secondary storage systems. Disk or drive arrays were proposed as an alternative to large and expensive magnetic disk drives. Several different levels of redundant arrays were introduced and analyzed in a landmark paper “A Case for Redundant Arrays of Inexpensive Disks (RAID)” by D. Patterson, G. Gibson and R. Katz, Report No. UCB/CSD 87/391, December, 1987, Computer Science Division, University of California, Berkeley, Calif. As described in a later article by P. Chen, E. Lee, G. Gibson, R. Katz and D. Patterson, “RAID: High-Performance, Reliable Secondary Storage”, ACM Computing Surveys, Vol. 26. No. 2, June 1994, RAID technology has grown substantially and provides a natural solution to the continually growing demands for larger and improved storage systems.
A drive array is a collection of hard disk drives, otherwise referred to as physical drives, which are grouped together to create an array of physical drives. A drive array includes one or more subsets called logical drives or logical volumes which are typically spread across all of the physical drives in the drive array. An operating system views a logical drive as a single, contiguous storage space, even though the storage space may be made up of portions of several physical drives. One reason for building a drive array subsystem is to create a logical device that has a relatively high data transfer rate. A higher transfer rate may be accomplished by “ganging” multiple physical drives together and transferring data to or from the drives in parallel. For example, striping techniques are often used to distribute the data in a drive array. In striping, data is broken into segments of a unit length and sequential segments are written to several disk drives rather than to sequential locations on a single physical drive. The combination of corresponding sequential data segments across each of the disks in the disk array is a stripe. The stripe size affects data transfer characteristics and access times and is generally chosen to optimize data transfers to and from the disk array. The unit length is referred to as a block or segment or strip and usually includes one or more sectors, where each sector is 512 bytes. The first RAID level 0 uses data striping to achieve greater performance but does not use any fault tolerance techniques for data protection.
Data protection is another reason for using drive arrays, where fault tolerance methods are implemented within the array to protect the data against hardware failures. A popular solution is called mirroring or shadowing and is the technique used for RAID level 1. A drive array incorporating RAID level 1 includes a mirrored segment for each data segment, where the data is copied to both a data drive and a mirrored drive resulting in two copies of the same information. Alternatively for odd drive mirroring, data and mirrored segments are distributed among an odd number of drives greater than or equal to three. Mirroring provides the advantages of high reliability and relatively fast transfer rate but at a cost of storage efficiency since the storage space is utilized at a maximum of 50%. The higher RAID levels 2-5 use a parity scheme to achieve data redundancy. In the parity schemes, a controller writing data blocks to various drives within the array use the EXCLUSIVE-OR (XOR) function to create parity information, which is then written to a parity drive or parity segment within the array. For example, in a block-interleaved parity drive array according to RAID level 4, data is interleaved or striped across the disks and the corresponding parity information is stored in a corresponding block of a parity drive. A block-interleaved distributed parity drive array according to RAID level 5 is similar to RAID level 4, except that the parity information and the data is uniformly distributed across the drive array. The RAID levels 4 and 5 provide greater storage space efficiency than mirroring although typically at lower performance.
A computer system implementing RAID levels 4 and 5 achieve fault tolerance by calculating parity across drives of the array. The XOR operation is performed on each segment of data from each data drive in a drive array at a given offset and the result is stored (normally at the same offset) in a parity disk drive or a parity segment. The XOR operation is a time consuming activity because of the need to perform several read and write operations to update data and parity information. Existing or old data is read and combined with new data, and the results are written back to appropriate locations of the drive array. Various methods are known. In read-modify-write (RMW) operations, for example, old data and parity blocks are XOR'd with corresponding blocks of new data to be written to generate new parity data blocks, and the new data and parity blocks are written back to the array. In a regenerative write operation, remaining valid data is read from corresponding sectors of a stripe of data, XOR'd with new data to be written to generate a new parity block, and the new data and parity blocks are written back to the drive array.
In some drive array architectures, such as the SMART and SMART-2 Array Controllers by Compaq Computer Corporation, the XOR operations are performed in a region of memory called a “transfer buffer”. The transfer buffer is a bank of memory within a drive controller that may include a multi-threaded interface. Control logic accepts CDB-based (command descriptor block) requests to XOR/zero/DMA regions of the transfer buffer and also accepts read/write slave requests. The CDB-base requests to perform certain operations are queued up and an interrupt is generated upon completion. In many operations, such as the regenerative or RMW operations discussed above, multiple blocks of data are combined in one or more XOR operations to obtain a block of parity data. The operations may be performed in a serial manner where each block is combined one at a time. It is preferable, however, to perform the operations in parallel where multiple requests are submitted simultaneously. To achieve parallelism the buffer must be cleared before the operations are performed since otherwise unknown initial contents of the memory would be XOR'd with incoming data resulting in unknown data.
Portions of the transfer buffer must be allocated for subsequent disk operations. Also, to ensure that the allocated portions of the transfer buffer are cleared prior to one or more XOR operations, a ZERO MEMORY CDB command had to be issued and completed before subsequent disk I/O commands were performed. Such allocation and/or zeroing, if necessary, are part of the real-time “garbage collection” tasks that are performed in the transfer buffer. The ZERO MEMORY CDB command, however, added a significant amount of overhead in the CDB-based command traffic stream which slowed disk transfer operations. It is desired to provide a method and system to reduce the number of queued commands that must be serviced by the array controller during disk drive operations.
SUMMARY OF THE INVENTION
A controller according to the present invention cleans buffer memory as a background task. The controller includes a transfer buffer, a memory that stores an index or table indicating free and non-zero data sectors within the transfer buffer, and processing logic that uses the transfer buffer for data transfer operations, and when otherwise idle, that scans the index table for contiguous sections o

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for zeroing a transfer buffer memory as... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for zeroing a transfer buffer memory as..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for zeroing a transfer buffer memory as... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2856003

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.