IP Library Granted Patent US 9,928,172
Granted Patent B2
US 9,928,172 · App. 15/454,306 · Granted Mar 27, 2018

Method and apparatus for accessing data stored in a storage system that includes both a final level of cache and a main memory

Inventor: Sehat Sutardja (Los Altos Hills, CA)
Assignee: Marvell World Trade LTD.
G06F12/0811G06F12/0813G06F12/0862G06F12/1027G06F12/0864G06F2212/154G06F2212/6022G06F2212/62
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,928,172
App. No.
15/454,306
Granted
Mar 27, 2018
Kind
B2
Abstract

A data access system including a processor and a storage system including a main memory and a cache module. The cache module includes a FLC controller and a cache. The cache is configured as a FLC to be accessed prior to accessing the main memory. The processor is coupled to levels of cache separate from the FLC. The processor generates, in response to data required by the processor not being in the levels of cache, a physical address corresponding to a physical location in the storage system. The FLC controller generates a virtual address based on the physical address. The virtual address corresponds to a physical location within the FLC or the main memory. The cache module causes, in response to the virtual address not corresponding to the physical location within the FLC, the data required by the processor to be retrieved from the main memory.

Claims (35)

1. A data access system comprising:

a storage system, wherein the storage system includes

a main memory, and

a cache module comprising a final level of cache (FLC) controller and a cache, wherein the cache of the cache module is configured as a final level of cache to be accessed by the FLC controller prior to the FLC controller accessing the main memory; and

a processor coupled to one or more levels of cache, wherein the one or more levels of cache coupled to the processor do not include the final level of cache, and wherein

the processor is configured to generate, in response to data required by the processor not being cached in the one or more levels of cache coupled to the processor, a physical address corresponding to a physical location to be accessed in the storage system in order to retrieve the data required by the processor,

the FLC controller is configured to generate a virtual address based on the physical address of the physical location to be accessed in the storage system, wherein the virtual address corresponds to i) a physical location within the final level of cache, or ii) a physical location within the main memory where the data required by the processor is stored, and

the cache module is configured to cause, in response to determining the virtual address does not correspond to the physical location within the final level of cache, the data required by the processor to be retrieved from the physical location within the main memory.

2. The data access system of claim 1 , wherein the causing of the data required by the processor to be retrieved from the physical location within the main memory comprises the cache module fetching the data from the physical location within the main memory.

3. The data access system of claim 1 , wherein the causing of the data required by the processor to be retrieved from the physical location within the main memory comprises the cache module indicating to the processor that a cache miss has occurred.

4. The data access system of claim 1 , wherein data stored in the final level of cache has higher priority than data stored in the main memory.

5. The data access system of claim 1 , wherein the main memory comprises a solid state drive (SSD), a hard disk drive (HDD), or a hybrid drive including solid state memory and rotating storage media.

6. The data access system of claim 1 , wherein the cache module is configured to perform predictive fetching of data stored at addresses expected to be accessed in the future.

7. The data access system of claim 6 , wherein the predictive fetching of data comprises the cache module, independent of receiving a request for data, accessing data stored within the main memory and transferring the retrieved data to the cache module.

8. The data access system of claim 6 , wherein the predictive fetching of data comprises the cache module, independent of receiving a request for data, accessing data stored within the final level of cache and transferring the retrieved data to the processor.

9. A network comprising a first server and a second server, wherein:

the first server comprises the cache module of claim 1 ; and

the second server comprises the main memory of claim 1 .

10. An automotive vehicle comprising the data access system of claim 1 .

11. A method of operating a data access system, wherein the data access system comprises a storage system and a processor, wherein the storage system includes a main memory and a cache module, wherein the cache module includes a final level of cache (FLC) controller and a cache, wherein the processor is coupled to one or more levels of cache, wherein the one or more levels of cache coupled to the processor do not include the final level of cache, the method comprising:

configuring the cache of the cache module as a final level of cache to be accessed by the FLC controller prior to the FLC controller accessing the main memory;

generating, via the processor and in response to data required by the processor not being cached in the one or more levels of cache coupled to the processor, a physical address corresponding to a physical location to be accessed in the storage system in order to retrieve the data required by the processor;

generating a virtual address via the FLC controller and based on the physical address of the physical location to be accessed in the storage system, wherein the virtual address corresponds to i) a physical location within the final level of cache, or ii) a physical location within the main memory where the data required by the processor is stored; and

causing, via the cache module and in response to determining the virtual address does not correspond to the physical location within the final level of cache, the data required by the processor to be retrieved from the physical location within the main memory.

12. The method of claim 11 , wherein the causing of the data required by the processor to be retrieved from the physical location within the main memory comprises fetching, via the cache module, data from the physical location within the main memory.

13. The method of claim 11 , wherein the causing of the data required by the processor to be retrieved from the physical location within the main memory comprises indicating, via the cache module, to the processor that a cache miss has occurred.

14. The method of claim 11 , wherein data stored in the final level of cache has higher priority than data stored in the main memory.

15. The method of claim 11 , wherein the main memory comprises a solid state drive (SSD), a hard disk drive (HDD), or a hybrid drive including solid state memory and rotating storage media.

16. The method of claim 11 , further comprising performing, via the cache module, predictive fetching of data stored at addresses expected to be accessed in the future.

17. The method of claim 16 , wherein the predictive fetching of data comprises, independent of receiving a request for data and via the cache module, accessing data stored within the main memory and transferring the retrieved data to the cache module.

18. The method of claim 16 , wherein the predictive fetching of data comprises, independent of receiving a request for data and via the cache module, accessing data stored within the final level of cache and transferring the retrieved data to the processor.

19. The method of claim 11 , wherein:

the cache module is implemented in a first server;

the main memory is implemented in a second server; and

a network comprises the first server and the second server.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2018
From: MARVELL INTERNATIONAL LTD.; SUTARDJA, SEHAT, DR.
To: FLC GLOBAL, LTD.
Reel/Frame 045095/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2018
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 044988/0878 →
SECURITY AGREEMENT Recorded Feb 21, 2018
From: FLC GLOBAL, LTD.
To: SUTARDJA FAMILY LLC
Reel/Frame 045404/0328 →
Continuity (8)
Continuation 15137611 · Apr 25, 2016
Continuation 14937330 · Nov 10, 2015
Continuation 14710988 · May 13, 2015
Continuation 14519826 · Oct 21, 2014
Provisional Application 61893662 · Oct 21, 2013
Provisional Application 61893683 · Oct 21, 2013
Provisional Application 61895049 · Oct 24, 2013
Related Publication 20170177481A1 · Jun 22, 2017