IP Library Granted Patent US 9,122,588
Granted Patent B1
US 9,122,588 · App. 13/843,714 · Granted Sep 1, 2015

Managing asymmetric memory system as a cache 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 9,122,588
App. No.
13/843,714
Granted
Sep 1, 2015
Kind
B1
Abstract

Some implementations provide a method for managing data in a storage system that includes a persistent storage device and a non-volatile random access memory (NVRAM) cache device. The method includes: accessing a direct mapping between a logical address associated with data stored on the persistent storage device and a physical address on the NVRAM cache device; receiving, from a host computing device coupled to the storage system, a request to access a particular unit of data stored on the persistent storage device; using the direct mapping as a basis between the logical address associated with the data stored on the persistent storage device and the physical address on the NVRAM cache device to determine whether the particular unit of data being requested is present on the NVRAM cache device.

Claims (63)

1. A method for managing data in a storage system comprising a persistent storage device and a non-volatile random access memory (NVRAM) cache device, the method comprising:

establishing a direct mapping between a logical address associated with data stored on the persistent storage device and a physical address on the NVRAM device by mapping from a logical address space into a physical address space, wherein the logical address is directed to the logical address space and the physical address is directed to the physical address space, and wherein the logical address space is larger than the physical address space;

performing the direct mapping from the logical address space to the physical address space by keying a hash to the logical address in the logical address space and equalizing probabilities of mapping a keyed logical address to physical addresses within the physical address space;

accessing the direct mapping between the logical address associated with data stored on the persistent storage device and the physical address on the NVRAM cache device;

receiving, from a host computing device coupled to the storage system, a request to access a particular unit of data stored on the persistent storage device;

using the direct mapping as a basis between the logical address associated with the data stored on the persistent storage device and the physical address on the NVRAM cache device to determine whether the particular unit of data being requested is present on the NVRAM cache device;

in response to determining that the particular unit of data being requested is present on the NVRAM cache device, servicing the request by accessing a copy of the particular unit of data present on the NVRAM cache device; and

in response to determining that the particular unit of data being requested is not present on the NVRAM cache device, servicing the request by accessing the particular unit of data stored on the persistent storage device.

2. The method of claim 1 , further comprising indexing the logical address by using at least 32 bits.

3. The method of claim 1 , further comprising:

based on determining that the particular unit of data is present on the NVRAM cache device, ascertaining whether the copy of the particular unit of data present on the NVRAM cache device is in an updated state,

wherein the copy of the particular unit of data present on the NVRAM cache device is in the updated state when the copy of the particular unit of the data present on the NVRAM cache device is more recent than the particular unit of data stored on the persistent storage device.

4. The method of claim 1 , wherein receiving the request to access data stored on the persistent storage device includes one of: receiving a read request, receiving a write request, or receiving a garbage collection request.

5. The method of claim 1 , further comprising:

using a logical block address as the logical address to specify a logical location of the data stored on the persistent storage device; and

using the physical address to identify a physical location on the NVRAM cache device where a copy of the data is stored.

6. The method of claim 5 , further comprising:

formatting the logical block address (LBA) on a linear basis.

7. The method of claim 1 , further comprising:

based on determining that the particular unit of data is present on the NVRAM cache device, ascertaining whether the copy of the particular unit of data present on the NVRAM cache device is in a non-updated state,

wherein the copy of the particular unit of data present on the NVRAM cache device is in the non-updated state when the copy of the particular unit of data present on the NVRAM cache device is identical to the particular unit of data stored on the persistent storage device.

8. The method of claim 7 , further comprising:

in response to ascertaining that the copy of the particular unit of data present on the NVRAM cache device is in the non-updated state, determining at least one of: an access intensity of the copy of the particular unit of data present on the NVRAM cache device, or a ranking importance of the copy of the particular unit of data present on the NVRAM cache device; and

deleting, and without writing to the persistent storage device, the copy of the particular unit of data present on the NVRAM cache device in response to determining that the access intensity of the copy of the particular unit of data present on the NVRAM cache device is within an access threshold or the ranking importance of the copy of the particular unit of data present on the NVRAM is below an importance threshold.

9. The method of claim 8 , further comprising: deleting, and without writing to the persistent storage device, the copy of particular unit of data present on the NVRAM cache device in response to receiving the garbage collection request.

10. The method of claim 9 , further comprising:

generating the garbage collection request by a write request from the host computing device when the NVRAM cache device does not have sufficient capacity to accommodate the write request.

11. The method of claim 9 , further comprising:

generating the garbage collection request by a background garbage collection process.

12. A NVRAM-based storage subsystem comprising:

a persistent storage device; and

a NVRAM cache device in communication with the persistent storage device, the NVRAM cache device comprises:

flash memory media; and

a controller in communication with a host computing device, the controller configured to:

access a direct mapping between a logical address associated with data stored on the persistent storage device and a physical address on the NVRAM cache device, wherein logical address is directed to a logical address space and the physical address is directed to a physical address space, wherein the logical address space is larger than the physical address space, wherein the direct mapping is from the logical address space into the physical address space, wherein the logical address is indexed by at least 32 bits, wherein the mapping from the logical address space to the physical address space comprises an association map based on a hash, and wherein the hash is keyed to the logical address and is configured to equalize probabilities of mapping a keyed logical address to physical addresses within the physical address space;

receive, from the host computing device, a request to access a particular unit of data stored on the persistent storage device;

use the direct mapping as a basis between the logical address associated with the data stored on the persistent storage device and the physical address on the NVRAM cache device to determine whether the particular unit of data being requested is present on the NVRAM cache device;

in response to determining that the particular unit of data being requested is present on the NVRAM cache device, service the request by accessing a copy of the particular unit of data present on the NVRAM cache device; and

in response to determining that the particular unit of data being requested is not present on the NVRAM cache device, service the request by accessing the data stored on the persistent storage device.

13. The storage system of claim 12 , wherein the persistent storage device comprises a hard disk drive with a rotating arm, a redundant array of independent disks (RAID), a portion of a storage area network (SAN) or network area storage (NAS), or a solid state device (SSD) either on the host computing device or in a network appliance in connection with the host computing device.

14. The storage system of claim 12 , wherein the flash memory media comprise at least one of: NAND Flash memory media, NOR Flash memory media, SLC-type Flash memory media, or MLC-type Flash memory media.

15. The storage system of claim 12 , wherein the logical address comprises a logical block address (LBA) to specify a logical location of data stored on the persistent storage device; and wherein the physical address identifies a physical location on the NVRAM cache device where a copy of the data is stored.

16. The storage system of claim 15 , wherein the logical block address (LBA) is linear.

17. The storage system of claim 12 , wherein the controller is further configured to:

in response to determining that the data is present on the NVRAM cache device, ascertain whether the copy of the particular unit of data present on the NVRAM cache device is in a non-updated state or in an updated state,

wherein the copy of the particular unit of data present on the NVRAM cache device is in the non-updated state when the copy of the particular unit of data present on the NVRAM cache device is identical to the data stored on the persistent storage device, and

wherein the copy of the particular unit of data present on the NVRAM cache device is in the updated state when the copy of the particular unit of data present on the NVRAM cache device is more recent than the data stored on the persistent storage device.

18. The storage system of claim 17 , wherein the request to access data stored on the persistent storage device includes at least one of: a read request, a write request, or a garbage collection request.

19. The storage system of claim 17 , wherein the controller is further configured to:

in response to ascertaining that the copy of the particular unit of data present on the NVRAM cache device is in the non-updated state, determining at least one of: an access intensity of the copy of the particular unit of data present on the NVRAM cache device, or a ranking importance of the copy of the particular unit of data present on the NVRAM cache device; and

delete, and without writing to the persistent storage device, the copy of the particular unit of data present on the NVRAM cache device in response to determining that the access intensity of the copy of the particular unit of data present on the NVRAM cache device is within an access threshold or the ranking importance of the copy of the particular unit of data present on the NVRAM is below an importance threshold.

20. The storage system of claim 17 , wherein the controller is further configured to: delete, and without writing to the persistent storage device, the copy of the particular unit of data present on the NVRAM cache device in response to receiving the garbage collection request.

21. The storage system of claim 20 , wherein the garbage collection request is generated by one of: a write request from the host computing device when the NVRAM cache device does not have sufficient capacity to accommodate the write request, or a back-ground garbage collection process.

22. A NVRAM-based storage subsystem comprising:

a persistent storage device; and

a NVRAM cache device in communication with the persistent storage device, the NVRAM cache device comprises:

flash memory media; and

a controller means for:

accessing a direct mapping between a logical address associated with data stored on the persistent storage device and a physical address on the NVRAM cache device, wherein logical address is directed to a logical address space and the physical address is directed to a physical address space, wherein the logical address space is larger than the physical address space, wherein the direct mapping is from the logical address space into the physical address space, wherein the logical address is indexed by at least 32 bits, wherein the mapping from the logical address space to the physical address space comprises an association map based on a hash, and wherein the hash is keyed to the logical address and is configured to equalize probabilities of mapping a keyed logical address to physical addresses within the physical address space;

receiving, from the host computing device, a request to access a particular unit of data stored on the persistent storage device;

using the direct mapping as a basis between the logical address associated with the data stored on the persistent storage device and the physical address on the NVRAM cache device to determine whether the particular unit of data being requested is present on the NVRAM cache device;

in response to determining that the particular unit of data being requested is present on the NVRAM cache device, servicing the request by accessing a copy of the particular unit of data present on the NVRAM cache device; and

in response to determining that the particular unit of data being requested is not present on the NVRAM cache device, servicing the request by accessing the data stored on the persistent storage device.

Assignments (6)
RELEASE OF SECURITY INTEREST AT REEL 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2020
From: VIRIDENT SYSTEMS, LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053180/0472 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SERIAL NUMBER 13/827,871 PREVIOUSLY RECORDED ON REEL 042463 FRAME 0876. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded May 24, 2017
From: VIRIDENT SYSTEMS, INC.
To: VIRIDENT SYSTEMS, LLC
Reel/Frame 042657/0640 →
CHANGE OF NAME Recorded May 15, 2017
From: VIRIDENT SYSTEMS, INC.
To: VIRIDENT SYSTEMS, LLC
Reel/Frame 042463/0876 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2013
From: MONDAL, SHIBABRATA; KARAMCHETI, VIJAY; ARORA, ANKUR; YAGATY, AJIT
To: VIRIDENT SYSTEMS INC.
Reel/Frame 031065/0279 →