IP Library Granted Patent US 8,560,770
Granted Patent B2
US 8,560,770 · App. 12/618,268 · Granted Oct 15, 2013

Non-volatile write cache for a data storage system

Inventors: Jonathan Williams Haines (Boulder, CO); Brett Alan Cook (Westminster, CO); Luke William Friendshuh (Elko, MN); Mark Allen Gaertner (Vadnais Heights, MN)
Assignee: Seagate Technology LLC
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 8,560,770
App. No.
12/618,268
Granted
Oct 15, 2013
Kind
B2
Abstract

The present disclosure provides a data storage system. In one example, the data storage system includes a data storage media component having a plurality of data storage locations. A first set of the plurality of data storage locations are allocated for a main data storage area. The data storage system also includes a controller configured to define a write cache for the main data storage area by selectively allocating a second set of the plurality of data storage locations.

Claims (34)

1. A device comprising:

a memory having a plurality of data storage locations, wherein a first set of the plurality of data storage locations are allocated for a main data storage area;

a controller configured to selectively allocate a second set of the plurality of data storage locations as a write cache; and

an erasure block pool including some of the plurality of data storage locations, wherein the controller selectively allocates the second set of the plurality of data storage locations for the write cache from the erasure block pool.

2. The device of claim 1 , wherein the memory comprises at least one non-volatile, solid-state data storage device.

3. The device of claim 1 , wherein the first and second sets of the plurality of data storage locations comprise different data storage blocks of the memory.

4. The device of claim 1 , wherein the controller is further configured to:

receive a write command including user data to be written to the main data storage area; and

store the user data in the write cache.

5. The device of claim 1 , wherein the second set of the plurality of data storage locations selectively allocated for the write cache comprise at least some data storage blocks of the memory that are non-contiguous.

6. The device of claim 1 , wherein the controller is further configured to maintain at least one pointer to the write cache.

7. The device of claim 6 , wherein the at least one pointer comprises a pointer chain, the pointer chain including:

a first pointer, the location of the first pointer maintained by the controller; and

a second pointer that identifies a first data storage location in the write cache.

8. The device of claim 7 , wherein the plurality of data storage locations comprise a plurality of data storage blocks, wherein each of the pointers in the pointer chain is stored in one of the data storage blocks.

9. The device of claim 1 , wherein the first set of the plurality of data storage locations allocated for the main data storage area and the second set of the plurality of data storage locations allocated for the write cache are each allocated from the same erasure block pool.

10. The device of claim 1 , wherein the controller selects data storage locations from the erasure block pool based on erasure counts for the data storage locations.

11. The device of claim 1 , wherein the controller is further configured to re-define the write cache by selectively allocating a third set of the plurality of data storage locations, the third set of the plurality of data storage locations being different than the second set of the plurality of data storage locations.

12. The device of claim 11 , wherein the controller is further configured to maintain at least one pointer to the write cache, wherein the controller marks the second set of the plurality of data storage locations such that the second set of the plurality of data storage locations are erased and returned to the erasure block pool after the at least one pointer has been modified to identify the re-defined media cache.

13. A controller comprising:

a host interface for receiving commands and data from a host; and

a memory interface for providing the data to at least one memory device, the at least one memory device including data storage media having a plurality of data storage locations;

wherein the controller is configured to:

define a media cache in the data storage media by selectively allocating a first set of the plurality of data storage locations, wherein the media cache is configured to be utilized to cache the data to be written to a main data storage area of the data storage media; and

selectively allocate data storage locations for the media cache from an erasure block pool.

14. The controller of claim 13 , wherein the media cache and the main data storage area comprise different data storage locations in the same data storage media.

15. The controller of claim 13 wherein the controller is further configured to re-define the media cache by selectively allocating a second set of the plurality of data storage locations and de-allocating the first set of the plurality of data storage locations.

16. A method comprising:

defining a media cache by selectively allocating a first set of blocks of a data storage medium;

storing data intended for a non-cache data storage area to the first set of blocks allocated as the media cache; and

re-defining the media cache by selectively allocating a second set of blocks of the data storage medium, the first set of blocks being different than the second set of blocks;

the first and second sets of blocks are allocated from an erasure block pool, the erasure block pool comprising data blocks of the data storage medium which do not contain valid data; and

storing data intended for the non-cache data storage area to the second set of blocks allocated as the media cache.

17. The method of claim 16 , wherein defining the media cache comprises selecting the first set of blocks from a plurality of data storage blocks of the data storage medium based on erasure counts of the plurality of data storage blocks.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jul 23, 2025
From: THE BANK OF NOVA SCOTIA
To: SEAGATE TECHNOLOGY PUBLIC LIMITED COMPANY; SEAGATE TECHNOLOGY; SEAGATE TECHNOLOGY HDD HOLDINGS; I365 INC.; SEAGATE TECHNOLOGY LLC; SEAGATE TECHNOLOGY INTERNATIONAL; SEAGATE HDD CAYMAN; SEAGATE TECHNOLOGY (US) HOLDINGS, INC.
Reel/Frame 072193/0001 →
SECURITY AGREEMENT Recorded Mar 24, 2011
From: SEAGATE TECHNOLOGY LLC
To: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT
Reel/Frame 026010/0350 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2009
From: HAINES, JONATHAN WILLIAMS; COOK, BRETT ALAN; FRIENDSHUH, LUKE WILLIAM; GAERTNER, MARK ALLEN
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 023527/0261 →
Continuity (1)
Related Publication 20110119442A1 · May 19, 2011