Disk drive maintaining a cache link attribute for each of a plurality of allocation states
AssigneeWestern Digital Technologies, Inc.
InventorsGregory B. Thelin, Ming Y. Wang
Life of this patent
Estimating the term…
Abstract
A disk drive is disclosed comprising a cache buffer for caching data written to the disk and data read from the disk, the cache buffer comprising a plurality of cache segments linked together to form a plurality of cache links. At least one segment attribute is associated with each cache segment, including an allocation state, and at least one link attribute is associated with the segment attributes within each cache link. When a host command is received from a host computer, the link attributes are evaluated to allocate cache segments for a cache link associated with the host command.
Claims26
A disk drive comprising:
- (a) a disk;
- (b) a head actuated radially over the disk;
- (c) a semiconductor memory comprising a cache buffer for caching data written to the disk and data read from the disk, the cache buffer comprising a plurality of cache segments linked together to form a plurality of cache links;
- and
- (d) a disk controller for:
- maintaining at least one segment attribute associated with each cache segment, the segment attribute comprising an allocation state selected from the group consisting of at least:
- free—an unallocated cache segment;
- available—an allocated cache segment storing write data that has been written to the disk;
- valid—an allocated cache segment storing cached read data;
- and
- dirty—an allocated cache segment storing write data not yet written to the disk;
- maintaining at least one link attribute associated with the segment attributes within each cache link;
- receiving a host command from a host computer, the host command comprising a command size indicating a number of blocks of data associated with the host command;
- and
- evaluating the link attributes to allocate cache segments for a cache link associated with the host command.
A method of allocating memory for a host command in a disk drive, the disk drive comprising a disk, a head actuated radially over the disk, and a semiconductor memory comprising a cache buffer for caching data written to the disk and data read from the disk, the cache buffer comprising a plurality of cache segments linked together to form a plurality of cache links, the method comprising the steps of:
- (a) maintaining at least one segment attribute associated with each cache segment, the segment attribute comprising an allocation state selected from the group consisting of at least:
- free—an unallocated cache segment;
- available—an allocated cache segment storing write data that has been written to the disk;
- valid—an allocated cache segment storing cached read data;
- and
- dirty—an allocated cache segment storing write data not yet written to the disk;
- (b) maintaining at least one link attribute associated with the segment attributes within each cache link;
- (c) receiving a host command from a host computer, the host command comprising a command size indicating a number of blocks of data associated with the host command;
- and
- (d) evaluating the link attributes to allocate cache segments for a cache link associated with the host command.
Dependencies are inferred from the claim text.