Patent ID: 6195727
Filing Date: 2001-02-27
Classification: G06F

Abstract:
In a RAID controller, a method of coalescing RAID write commands received from a host for data to be stored in an array of disk drives, wherein the array of disk drives is organized as a multiplicity of stripes, and wherein each stripe is composed of a plurality of stripe units, said method of coalescing comprising the steps of:(a) receiving a multiplicity of ""X"" commands followed by a multiplicity of ""Y"" commands from the host, wherein ""X"" and ""Y"" are integers and wherein each of the ""X"" and ""Y"" commands are write commands for writing data, as specified by each of the ""X"" and ""Y"" commands, to the array of disk drives;(b) processing the ""X"" commands and storing the ""Y"" commands in a stash;(c) finding a first command of the ""Y"" commands stored in the stash for writing a partial stripe to a first stripe of the array of disk drives;(d) finding a second command of the ""Y"" commands stored in the stash for writing first data to the first stripe;(e) determining if the second command also writes second data to a second stripe of the array of disk drives, the second stripe being different from the first stripe;(f) if the second command does not write the second data to the second stripe, changing the first command to also write the first data from the second command;(g) tying the first and second commands together;(h) if the second command does write the second data to the second stripe, changing the first command to also write the first data from the second command, and changing the second command to exclude the first data from the second command; and(i) tying the first and second commands together.