IP Library Granted Patent US 6,996,668
Granted Patent B2
US 6,996,668 · App. 10/185,063 · Granted Feb 7, 2006

Synchronized mirrored data in a data storage device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,996,668
App. No.
10/185,063
Granted
Feb 7, 2006
Kind
B2
Abstract

A data storage device mirrors data on a data storage medium. The multiple instances of data are synchronized in order to optimize performance of the reading and writing, and the integrity of the data. Preferably, a data storage device is allowed to defer writing multiple copies of data until a more advantageous time.

Claims (80)

1. A method comprising the steps of:

receiving a command to store data associated with mirrored data of a data storage medium in a data storage device;

determining whether the store command is associated with enabled or disabled caching; and

if the store command is associated with disabled caching:

determining restrictions in reference to a data structure indicating which store requests have not been completed;

inserting at least one store sub-request from the store command into a scheduling pool;

scheduling one of the store sub-requests;

removing remaining sub-requests from the scheduling pool; and

transferring data associated with the store command from host to the recording media and adding remaining store sub-requests to the data structure.

2. The method of claim 1 wherein adding the requests to the data structure comprises the steps of:

merging the subrequest with the existing entry in the data structure, if an address associated with the subrequest is sequential, overlapping or close to an address associated wit an existing entry in the data structure; and

creating a new entry in the data structure, if an unused entry exists in the data structure and if the address associated wit the subrequest is not sequential, overlapping or close to an address associated with an existing entry in the data structure.

3. The method of claim 2 , wherein further comprising:

merging the subrequest with an existing entry, if an unused entry does not exist in the data structure.

4. A method comprising the steps of:

receiving a command to store data associated with mirrored data of a data storage medium in a data storage device;

determining whether the store command is associated with enabled or disabled caching, and

if the store command is associated with enabled caching:

determining whether the store command is associated with volatile or nonvolatile caching.

5. The method of claim 4 and further comprising, if the store command is associated with volatile caching:

transferring data associated with the store command to a volatile cache;

determining restrictions in reference to a data structure indicating which store requests have not been completed;

inserting a at least one store sub-request from the store command into a scheduling pool;

scheduling at least one of the store sub-requests;

removing remaining sub-requests from the scheduling pool; and

transferring data associated with the store command from host to the recording media and adding remaining store sub-requests to the data structure.

6. The method of claim 4 and further comprising, wherein if the store command is associated with nonvolatile caching:

transferring data associated with the store command to a nonvolatile cache;

inserting an entry into a data structure indicating which store requests have not been completed that designates that all copies of the corresponding data need to be stored;

determining restrictions in reference to the data structure;

inserting at least one store sub-request into a scheduling pool;

scheduling one of the store sub-requests;

removing remaining sub-requests from the scheduling pool; and

removing store sub-requests for the write command from the data structure list, after the store sub-request is performed.

7. The method of claim 4 wherein if the store command is associated with volatile caching further comprising:

copying a data structure indicating which store requests have not been completed to a nonvolatile cache; and

copying corresponding instance data to nonvolatile memory.

8. The method of claim 7 wherein copying the data structure for the comprises copying the data structure to the nonvolatile cache, if the data structure is not present in the nonvolatile caching.

9. The method of claim 7 , wherein copying a corresponding instance data further comprises:

copying corresponding instance data to nonvolatile memory, if nonvolatile store caching is supported.

10. A data storage device comprising:

a data storage medium comprising mirrored data;

an input for receiving a store command associated with the mirrored data;

a means for determining whether the store command is associated with enabled or disabled caching; and,

wherein if the store command is associated with enabled caching the means for determining further comprises:

a means for determining restrictions in reference to a data structure indicating which store requests have not been completed;

a means for inserting at least one store sub-request from the store command into a scheduling pool;

a means for scheduling one of the store sub-requests;

a means for removing remaining sub-requests from the scheduling pool;

a means for transferring data associated with the store command from host to the data storage medium; and

a means for adding remaining store sub-requests to the data structure.

11. A data storage device comprising:

a data storage medium comprising mirrored data;

an input for receiving a store command associated with the mirrored data;

a means for determining whether the store command is associated with enabled or disabled caching; and

wherein if the store command is associated wit enabled caching, the means for determining further comprises:

a means for determining whether the store command is associated with volatile or non-volatile caching.

12. The data storage device of claim 11 wherein if the store command is associated with volatile caching, the means for determining whether the store command is associated with volatile or non-volatile caching further comprises:

a means for transferring data associated with the store command to a volatile cache;

a means for determining restrictions in reference to a data structure;

a means for inserting at least one store sub-request from the store command into a scheduling pool;

a means for scheduling at least one of the store sub-requests from the scheduling pool;

a means for transferring data associated with the store command from host to the data storage medium; and

a means for adding remaining store sub-requests to the data structure.

13. A data storage device comprising:

a storage media;

a buffer configured to store, temporarily, data to be stored on the storage media in

a data structure of store commands; and

a controller configured to received a command to store data associated with mirrored data on the storage media, and to determine if the store command is associated with enabled or disabled caching; and

wherein the controller is further configured to determine if the store command is associated with volatile or non-volatile caching.

14. The data storage device of claim 13 wherein the controller is further configured to manage the store commands in the buffer.

15. The data storage device of claim 13 wherein the controller is further configured to:

transfer data associated with the store command to the cache;

determine restrictions in reference to the data structure;

insert at least one store sub-request into a schedule pool;

schedule at least one of the store sub-requests;

remove remaining sub-requests for the schedule pool;

transfer data associated with the store command from the buffer to the recording media; and

add the remaining sub-requests to the data structure.

16. The data storage device of claim 15 wherein if the store command is associated with non-volatile caching, the controller further configured to inset an entry into the data structure designating tat all copies of the corresponding data are to be stored.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jul 19, 2013
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE
To: SEAGATE TECHNOLOGY LLC; EVAULT INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY INTERNATIONAL; SEAGATE TECHNOLOGY US HOLDINGS, INC.
Reel/Frame 030833/0001 →
RELEASE Recorded Jan 19, 2011
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: SEAGATE TECHNOLOGY HDD HOLDINGS; MAXTOR CORPORATION; SEAGATE TECHNOLOGY LLC; SEAGATE TECHNOLOGY INTERNATIONAL
Reel/Frame 025662/0001 →
SECURITY AGREEMENT Recorded May 15, 2009
From: MAXTOR CORPORATION; SEAGATE TECHNOLOGY LLC; SEAGATE TECHNOLOGY INTERNATIONAL
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND FIRST PRIORITY REPRESENTATIVE; WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE
Reel/Frame 022757/0017 →
RELEASE OF SECURITY INTERESTS IN PATENT RIGHTS Recorded Dec 21, 2005
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT (FORMERLY KNOWN AS THE CHASE MANHATTAN BANK AND JPMORGAN CHASE BANK)
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 016926/0342 →
SECURITY INTEREST Recorded Dec 10, 2002
From: SEAGATE TECHNOLOGY LLC
To: JPMORGAN CHASE BANK, AS COLLATERAL AGENT
Reel/Frame 013516/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2002
From: GAERTNER, MARK A.; FRIENDSHUH, LUKE W.; CORNABY, STEPHEN R.
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 013073/0343 →