Claims
- 1. A method comprising the steps of:
(a) receiving a read command associated with mirrored data of a data storage medium in a data storage device; and (b) determining whether the read command is associated with synchronized or unsynchronized data.
- 2. The method of claim 1, wherein the determining step (b) yields an indication that the read command is associated with synchronized data, and wherein the method further comprises the steps of:
(c) inserting a at least one read sub-request from the read command into a scheduling pool; (d) scheduling one of the read sub-requests; and (e) removing remaining sub-requests from the scheduling pool.
- 3. The method of claim 1, wherein the determining step (b) yields an indication that the read command is associated with unsynchronized data, and wherein the method further comprises the steps of:
(c) synchronizing data; (d) inserting a at least one read sub-request from the read command into a scheduling pool; (e) scheduling one of the read sub-requests; and (f) removing remaining sub-requests from the scheduling pool.
- 4. The method of claim 3, wherein the synchronizing step (c) further comprises the steps of:
(c)(i) completing writes of outstanding-copy-write entries related to the read command.
- 5. The method of claim 1, wherein the determining step (b) yields an indication that the read command is associated with unsynchronized data further, and wherein the method further comprises the steps of:
(c) reading most recently written data.
- 6. A method comprising the steps of:
(a) receiving a write command associated with mirrored data of a data storage medium in a data storage device; and (b) determining whether the write command is associated with enabled or disabled caching.
- 7. The method of claim 6, wherein the determining step (b) yields an indication that the write command is associated with disabled caching, and wherein the method further comprises the steps of:
(c) determining restrictions in reference to an outstanding-copy-write list; (d) inserting a at least one write sub-request from the write command into a scheduling pool; (e) scheduling one of the write sub-requests; (f) removing remaining sub-requests from the scheduling pool; transferring data associated with the write command from host to the recording media andadding remaining write sub-requests to the outstanding-copy-write list.
- 8. The method of claim 6, wherein the determining step (b) yields an indication that the write command is associated with enabled caching, and wherein the method further comprises the steps of:
(c) determining whether the write command is associated with volatile or nonvolatile caching.
- 9. The method of claim 8, wherein the determining step (b) yields an indication that the write command is associated with volatile caching, and wherein the method further comprises the steps of:
(d) transferring data associated with the write command to a volatile cache; (e) determining restrictions in reference to an outstanding-copy-write list; (f) inserting a at least one write sub-request from the write command into a scheduling pool; (g) scheduling at least one of the write sub-requests; (h) removing remaining sub-requests from the scheduling pool; and (i) transferring data associated with the write command from host to the recording media and adding remaining write sub-requests to the outstanding-copy-write list.
- 10. The method of claim 8, wherein the determining step (b) yields an indication that the write command is associated with nonvolatile caching, and wherein the method further comprises the steps of:
(d) transferring data associated with the write command to a nonvolatile cache; (e) inserting an entry into the outstanding-copy-write list that designates that all copies of the corresponding data need to be written; (f) determining rest rictions in reference to an outstanding-copy-write list; (g) inserting a at least one write sub-request into a scheduling pool; (h) scheduling one of the write sub-requests; (i) removing remaining sub-requests from the scheduling pool; and (j) removing write sub-requests for the write command from the outstanding-copy-write list, after the write sub-request is performed.
- 11. A method to add a new entry to an outstanding-copy-write list in a data storage device, the method comprising the steps of:
(a) merging the new entry with the existing entry in the outstanding-copy-write list, if the address associated with the new entry is sequential, overlapping or close to an address associated with an existing entry in the outstanding-copy-write list; and (b) creating a new entry in the outstanding-copy-write list, if an unused entry exists in the outstanding-copy-write list and if the address associated with the new entry is not sequential, overlapping or close to an address associated with an existing entry in the outstanding-copy-write list;
- 12. The method of claim 11, wherein the method further comprises the step of:
(c) merging the new entry with an existing entry, if an unused entry does not exist in the outstanding-copy-write list.
- 13. A method to manage a destructive condition associated with an outstanding-copy-write resident list in volatile memory in a data storage device, the method comprising the steps of:
(a) copying the outstanding-copy-write list to nonvolatile memory;
- 14. The method of claim 13, wherein the copying step (a) further comprises the steps of:
(a)(i) copying the outstanding-copy-write list to nonvolatile memory, if the outstanding-copy-write list is not present in the nonvolatile memory.
- 15. The method of claim 13, wherein the copying step (b) further comprises the steps of:
(b)(i) copying corresponding instance data to nonvolatile memory, if nonvolatile write caching is supported.
- 16. A method to initialize a data storage device with a valid outstanding-copy-write list in nonvolatile memory associated with synchronized mirrored data in the data storage device, the method comprising the steps of:
(a) restoring the outstanding-copy-write list to operating memory; and (b) performing writes from the outstanding-copy-write list during opportune times.
- 17. The method of claim 16, wherein the restoring step (a) further comprises the steps of:
(a)(i) restoring the outstanding-copy-write list to operating memory, if the outstanding-copy-write list is run-time maintained in nonvolatile memory.
- 18. A method to perform entries in an outstanding-copy-write list of a data storage device, comprising the steps of:
(a) determining that the data storage device is idle.
- 19. The method of claim 18, wherein the method further comprises the step of:
(b) determining that performing a write to the data storage device from the outstanding-copy-write list will have an effect on the performance of other functions of the data storage device that is less than a predetermined threshold.
- 20. The method of claim 18, wherein the method further comprises the step of:
(b) determining that data is being read with frequency at least equal to a predetermined threshold from an unsynchronized location of the data storage device.
- 21. The method of claim 18, wherein the method further comprises the step of:
(b) determining that the quantity of entries in the outstanding-copy-write list is at least equal to a predetermined quantity.
- 22. A method to initialize a data storage device having an invalid outstanding-copy-write list in nonvolatile memory that is associated with synchronized mirrored data in the data storage device, the method comprising the steps of:
(a) writing a timestamp to the recording media for every sector that is written; (b) determining the most recent data; and (c) writing the most recent data to the other instances, if the data is not synchronized.
- 23. The method of claim 22, wherein the determining step (b) further comprises the steps of:
(b)(i) synchronizing data by scanning every instance of every sector.
- 24. A data storage device comprising:
at least one data storage medium; and a controller, communicatively coupled to the data storage medium, further including:
a data structure suitable for representing at least one write sub-request of mirrored data on the data storage medium that has not been performed to the data storage medium; and a synchronizer of the mirrored data on the data storage medium.
- 25. The data storage device of claim 24, wherein the data structure further comprises:
a representation of a logical buffer address, if non-volatile caching is being used; a representation of the instance of the write request; a representation of the length of write-data associated with the sub-request; and a representation of a logical address of the write-data.
- 26. The data storage device of claim 24, wherein the synchronizer performs in reference to caching in a non-volatile medium.
- 27. The data storage device of claim 24, wherein the synchronizer performs in reference to caching in a volatile medium.
- 28. The data storage device of claim 24, wherein the synchronizer performs in reference to no caching.
- 29. A system to manage data comprising:
at least one data storage device, the at least one data storage device having mirrored data stored thereon; a processor, operably coupled to the data storage device; and a means operative on the processor to synchronize the mirrored data on the data storage device.
- 30. The system of claim 29, wherein the means further comprises:
a means operative on the processor to synchronize the mirrored data associated with a write command to the data storage device.
- 31. The system of claim 29, wherein the means further comprises:
a means operative on the processor to synchronize the mirrored data associated with a read command to the data storage device.
- 32. A data structure representing a write sub-request of a write request comprising:
a representation of at least one write sub-request that has not been performed to a data storage medium.
- 33. The data structure of claim 32, wherein the representation further comprises:
a representation of a logical buffer address, if non-volatile caching is being used; a representation of the instance of the write request; a representation of the length of write-data associated with the sub-request; and a representation of a logical address of the write-data.
- 34. The method of claim 16, wherein the restoring is necessitated due to a power-on condition.
RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application Serial No. 60/310,368 filed Aug. 6, 2001 under 35 U.S.C. 119(e).
[0002] This application is related to U.S. Pat. No. 6,295,577 issued Sep. 25, 2001, entitled “Disc storage system having a non-volatile cache to store write data in the event of a power failure.”
Provisional Applications (1)
|
Number |
Date |
Country |
|
60310368 |
Aug 2001 |
US |