Disk drive for dynamically allocating memory accessed concurrently by a host interface and a disk interface to facilitate large host commands
First Claim
1. A disk drive comprising:
- (a) a disk;
(b) a head actuated radially over the disk;
(c) a semiconductor memory comprising addressable locations for staging and caching data, wherein each addressable location having an allocation status; and
(d) a disk controller for;
receiving a write command from a host to write write-data to the disk, the write-data comprising a first segment, a second segment and a third segment;
dynamically allocating a plurality of the addressable locations relative to the size of the write command and the allocation status of the addressable locations;
receiving the first segment of write-data from the host and storing the first segment of write-data in the dynamically allocated addressable locations;
receiving the second segment of write-data from the host and storing the second segment of write-data in the dynamically allocated addressable locations while concurrently reading the first segment of write-data from the dynamically allocated addressable locations and writing the first segment of write-data to the disk; and
re-using the dynamically allocated addressable locations for storing the third segment of write-data received from the host after writing the first segment of write-data to the disk.
8 Assignments
0 Petitions
Accused Products
Abstract
A disk drive is disclosed comprising a disk and a semiconductor memory comprising addressable locations for staging and caching data, wherein each addressable location having an allocation status. When a large write command is received from a host to write write-data to the disk, a disk controller dynamically allocates a plurality of the addressable locations relative to the size of the write command and the allocation status of the addressable locations. The write-data received from the host is stored in the dynamically allocated addressable locations while concurrently reading the write-data from the dynamically allocated addressable locations and writing the write-data to the disk. The dynamically allocated addressable locations are re-used for storing write-data received from the host after writing the write-data to the disk.
-
Citations
14 Claims
-
1. A disk drive comprising:
-
(a) a disk;
(b) a head actuated radially over the disk;
(c) a semiconductor memory comprising addressable locations for staging and caching data, wherein each addressable location having an allocation status; and
(d) a disk controller for;
receiving a write command from a host to write write-data to the disk, the write-data comprising a first segment, a second segment and a third segment;
dynamically allocating a plurality of the addressable locations relative to the size of the write command and the allocation status of the addressable locations;
receiving the first segment of write-data from the host and storing the first segment of write-data in the dynamically allocated addressable locations;
receiving the second segment of write-data from the host and storing the second segment of write-data in the dynamically allocated addressable locations while concurrently reading the first segment of write-data from the dynamically allocated addressable locations and writing the first segment of write-data to the disk; and
re-using the dynamically allocated addressable locations for storing the third segment of write-data received from the host after writing the first segment of write-data to the disk. - View Dependent Claims (2, 3, 4, 5, 6, 7)
(a) the addressable locations for staging read-data to facilitate read commands;
(b) the disk controller for;
receiving a read command from the host to read read-data from the disk, the read-data comprising a first segment, a second segment and a third segment;
dynamically allocating a plurality of the addressable locations relative to the size of the read command and the allocation status of the addressable locations;
reading the first segment of read-data from the disk and storing the first segment of read-data in the dynamically allocated addressable locations;
reading the second segment of read-data from the disk and storing the second segment of read-data in the dynamically allocated addressable locations while concurrently reading the first segment of read-data from the dynamically allocated addressable locations and transmitting the first segment of read-data to the host; and
re-using the dynamically allocated addressable locations for storing the third segment of read-data read from the disk after transmitting the first segment of read-data to the host.
-
-
3. The disk drive as recited in claim 2, wherein:
-
(a) the allocation status is assigned a value selected from the group consisting of free, available, valid, and dirty;
(b) the free allocation status indicates an addressable location is not allocated;
(c) the available allocation status indicates an addressable location stores cached write-data written to the disk and therefore available for re-allocation;
(d) the valid allocation status indicates an addressable location stores cached read-data that can be selectively re-allocated; and
(e) the dirty allocation status indicates an addressable location stores staged write-data not yet written to the disk and therefore not available for re-allocation.
-
-
4. The disk drive as recited in claim 3, wherein when dynamically allocating the plurality of addressable locations:
-
(a) the disk controller dynamically allocates addressable locations having a free allocations status first;
(b) the disk controller dynamically allocates addressable locations having an available allocation status second; and
(c) the disk controller dynamically allocates addressable locations having a valid allocation status third.
-
-
5. The disk drive as recited in claim 4, wherein before dynamically allocating all of the addressable locations having a valid allocation status, the disk controller writes at least part of the staged write-data to the disk, changes the corresponding addressable locations from a dirty allocation status to an available allocation status, and dynamically allocates the addressable locations updated to the available allocation status.
-
6. The disk drive as recited in claim 4, wherein when the disk controller dynamically allocates the addressable locations having a valid allocation status, the disk controller selects the addressable locations storing the least recently used cached read-data.
-
7. The disk drive as recited in claim 3, wherein the number of addressable locations dynamically allocated by the disk controller increases with the number of addressable locations having a free allocation status and an available allocation status.
-
8. A method of processing host commands in a disk drive, the disk drive comprising a disk, a head actuated radially over the disk, a semiconductor memory comprising addressable locations for staging and caching data, wherein each addressable location having an allocation status, the method comprising the steps of:
-
(a) receiving a write command from a host to write write-data to the disk, the write command comprising a first segment, a second segment and a third segment;
(b) dynamically allocating a plurality of the addressable locations relative to the size of the write command and the allocation status of the addressable locations;
(c) receiving the first segment of write-data from the host and storing the first segment of write-data in the dynamically allocated addressable locations;
(d) receiving the second segment of write-data from the host and storing the second segment of write-data in the dynamically allocated addressable locations while concurrently reading the first segment of write-data from the dynamically allocated addressable locations and writing the first segment of write-data to the disk; and
(e) re-using the dynamically allocated addressable locations for storing the third segment of write-data received from the host after writing,the first segment of write-data to the disk. - View Dependent Claims (9, 10, 11, 12, 13, 14)
(a) receiving a read command from the host to read read-data from the disk, the read-data comprising a first segment, a second segment, and a third segment;
(b) dynamically allocating a plurality of the addressable locations relative to the size of the read command and the allocation status of the addressable locations; and
(c) reading the first segment of read-data from the disk and storing the first segment of read-data in the dynamically allocated addressable locations;
(d) reading the second segment of read-data from the disk and storing the second segment of read-data in the dynamically allocated addressable locations while concurrently reading the first segment of read-data from the dynamically allocated addressable locations and transmitting the first segment of read-data to the host; and
(e) re-using the dynamically allocated addressable locations for storing the third segment of read-data read from the disk after transmitting the first segment of read-data to the host.
-
-
10. The method as recited in claim 9, wherein:
-
(a) the allocation status is assigned a value selected from the group consisting of free, available, valid, and dirty;
(b) the free allocation status indicates an addressable location is not allocated;
(c) the available allocation status indicates an addressable location stores cached write-data written to the disk and therefore available for re-allocation;
(d) the valid allocation status indicates an addressable location stores cached read-data that can be selectively re-allocated; and
(e) the dirty allocation status indicates an addressable location stores staged write-data not yet written to the disk and therefore not available for re-allocation.
-
-
11. The method as recited in claim 10, wherein when dynamically allocating the plurality of addressable locations:
-
(a) the addressable locations having a free status are dynamically allocated first;
(b) the addressable locations having an available status are dynamically allocated second; and
(c) the addressable locations having a valid status are dynamically allocated third.
-
-
12. The method as recited in claim 11, wherein before dynamically allocating all of the addressable locations having a valid allocation status, at least part of the staged write-data is written to the disk, the corresponding addressable locations are changed from a dirty allocation status to an available allocation status, and the addressable locations updated to the available allocation status are dynamically allocated.
-
13. The method as recited in claim 11, wherein when allocating addressable locations having a valid allocation status, further comprising the step of selecting the addressable locations storing the least recently used cached read-data.
-
14. The method as recited in claim 10, wherein the number of addressable locations dynamically allocated increases with the number of addressable locations having a free allocation status and an available allocation status.
Specification