IP Library › Granted Patent US 8,539,162
Granted Patent B2
US 8,539,162 · App. 13/033,569 · Granted Sep 17, 2013

Caching based on spatial distribution of accesses to data storage devices

Inventor: Arvind Pruthi (Los Gatos, CA)
Assignee: Marvell World Trade Ltd.
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,539,162
App. No.
13/033,569
Filed
Feb 23, 2011
Granted
Sep 17, 2013
Kind
B2
Art Unit
2189
USPC
711/133
Abstract

Methods and systems for quantifying a spatial distribution of accesses to storage systems and for determining spatial locality of references to storage addresses in the storage systems are described. In one aspect, a specified quantity of address references associated with a storage system is received. A spatial distribution of references to addresses of the storage system is determined based at least in part on the received specified quantity of the address references, and the determined spatial distribution is combined with a previously determined spatial distribution into a spatial locality metric of the storage system. The spatial locality metric includes a weighted sum of the determined spatial distribution and the previously determined spatial distribution. The spatial locality metric is used in caching data from the storage system to a cache device.

Claims (49)

1. A storage system comprising:

a storage medium;

a cache device; and

a controller communicatively coupled with the storage medium and with the cache device and configured to interface with a processor or a memory of a computer system, the controller being further configured to:

receive a specified quantity of address references associated with the storage system;

determine a spatial distribution of references to addresses of the storage system based at least in part on the received specified quantity of the address references, and

combine the determined spatial distribution with a previously determined spatial distribution into a spatial locality metric of the storage system, wherein the spatial locality metric includes a weighted sum of the determined spatial distribution and the previously determined spatial distribution; and

output the spatial locality metric to use in caching data from the storage medium to the cache device.

2. The system of claim 1 , wherein the cache device includes cache memory.

3. The system of claim 2 , wherein the cache device further includes a device controller.

4. The system of claim 1 , wherein to perform a determination of the spatial distribution, the controller is further configured to omit a random quantity of address references between previous determination of the spatial distribution and said determination of the spatial distribution.

5. The system of claim 1 , wherein the controller is further configured to:

receive a reference to an address of the storage system, the received address reference corresponding to a given block offset on the storage system;

detect a cache miss for the received address reference in the cache device; and

select, in response to the detection of the cache miss, data relating to the given block offset of the storage system for caching to the cache device in accordance with a current value of the spatial locality metric.

6. The system of claim 5 , wherein the selected data for caching to the cache device includes

(i) a specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is between a first value and a second value larger than the first value,

(ii) more than the specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is larger than the second value, and

(iii) less than the specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is less than the first value.

7. The system of claim 6 , wherein the selected data for caching to the cache device is zero if the current value of the spatial locality metric is less than the first value.

8. The system of claim 6 , wherein the selected data for caching to the cache device includes twice the specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is larger than the second value.

9. The system of claim 5 , wherein the determined spatial distribution on the storage system includes a first fraction of the received specified quantity of the address references that are within a first distance from a block offset of a first address reference of the received specified quantity of the address references.

10. The system of claim 9 , wherein the determined spatial distribution on the storage system further includes a second fraction of the received specified quantity of the address references that are within a second distance from the block offset of the first address reference of the received specified quantity of the address references, the second distance being longer than the first distance, such that the determined spatial distribution has a short-range component of the spatial distribution representing a ratio of the first fraction to the first, shorter distance and a long-range component of the spatial distribution representing another ratio of the second fraction to the second, longer distance, and wherein the spatial locality metric includes short-range and long-range spatial locality metrics corresponding to respective short-range and long-range components of the spatial distribution.

11. The system of claim 10 , wherein the selected data for caching to the cache device corresponds to

(i) addresses located less than the first distance from the given block offset if a current value of the short-range spatial locality metric is larger than a current value of the long-range spatial locality metric,

(ii) addresses located less than the second distance from the given block offset if current values of the short-range and long-range spatial locality metrics are substantially equal, and

(iii) addresses located between the second and first distances from the given block offset if a current value of the short-range spatial locality metric is smaller than a current value of the long-range spatial locality metric.

12. A method comprising:

receiving, by a controller communicatively coupled with a storage system and with a cache device, a specified quantity of address references associated with the storage system;

determining, by the controller, a spatial distribution of references to addresses of the storage system based at least in part on the received specified quantity of the address references;

combining, by the controller, the determined spatial distribution with a previously determined spatial distribution into a spatial locality metric of the storage system, wherein the spatial locality metric includes a weighted sum of the determined spatial distribution and the previously determined spatial distribution; and

outputting, by the controller, the spatial locality metric to use in caching data from the storage system to the cache device.

13. The method of claim 12 , wherein said determining the spatial distribution comprises omitting a random quantity of address references between a previous determining of the spatial distribution and said determining the spatial distribution.

14. The method of claim 12 , comprising:

receiving, by the controller, a reference to an address of the storage system, the received address reference corresponding to a given block offset on the storage system;

detecting, by the controller, a cache miss for the received address reference in the cache device; and

selecting, by the controller in response to the detection of the cache miss, data relating to the given block offset of the storage system for caching to the cache device in accordance with a current value of the spatial locality metric.

15. The method of claim 14 , wherein the selected data for caching to the cache device includes

(i) a specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is between a first value and a second value larger than the first value,

(ii) more than the specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is larger than the second value, and

(iii) less than the specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is less than the first value.

16. The method of claim 15 , wherein the selected data for caching to the cache device is zero if the current value of the spatial locality metric is less than the first value.

17. The method of claim 15 , wherein the selected data for caching to the cache device includes twice the specified amount of data from contiguous memory adjacent to the given block offset if the current value of the spatial locality metric is larger than the second value.

18. The method of claim 14 , wherein the determined spatial distribution on the storage system includes a first fraction of the received specified quantity of the address references that are within a first distance from a block offset of a first address reference of the received specified quantity of the address references.

19. The method of claim 18 , wherein the determined spatial distribution on the storage system further includes a second fraction of the received specified quantity of the address references that are within a second distance from the block offset of the first address reference of the received specified quantity of the address references, the second distance being longer than the first distance, such that the determined spatial distribution has a short-range component of the spatial distribution representing a ratio of the first fraction to the first, shorter distance and a long-range component of the spatial distribution representing another ratio of the second fraction to the second, longer distance, and wherein the spatial locality metric includes short-range and long-range spatial locality metrics corresponding to respective short-range and long-range components of the spatial distribution.

20. The method of claim 19 , wherein the selected data for caching to the cache device corresponds to

(i) addresses located less than the first distance from the given block offset if a current value of the short-range spatial locality metric is larger than a current value of the long-range spatial locality metric,

(ii) addresses located less than the second distance from the given block offset if current values of the short-range and long-range spatial locality metrics are substantially equal, and

(iii) addresses located between the second and first distances from the given block offset if a current value of the short-range spatial locality metric is smaller than a current value of the long-range spatial locality metric.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2011
From: PRUTHI, ARVIND
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 026530/0100 →
LICENSE Recorded Jun 30, 2011
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 026530/0262 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2011
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 026530/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2011
From: MARVELL INTERNATIONAL LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 026530/0226 →
Continuity (2)
Provisional Application 61307789 · Feb 24, 2010
Related Publication 20110208919A1 · Aug 25, 2011