IP Library Granted Patent US 11,513,961
Granted Patent B2
US 11,513,961 · App. 17/161,252 · Granted Nov 29, 2022

Online heuristic sequentiality detection over input/output streams for cache systems in large address spaces

Inventors: Vinicius Michel Gottin (Rio de Janeiro, BR); Tiago Salviano Calmon (Rio de Janeiro, BR); Paulo Abelha Ferreira (Rio de Janeiro, BR); Hugo de Oliveira Barbalho (Rio de Janeiro, BR); Rômulo Teixeira de Abreu Pinho (Niterói, BR)
Assignee: EMC IP HOLDING COMPANY LLC
G06F12/0862G06F2212/602
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 11,513,961
App. No.
17/161,252
Granted
Nov 29, 2022
Kind
B2
Abstract

A method and system for assessing sequentiality of a data stream is disclosed. Specifically, the method and system disclosed herein may entail receiving an incoming request to access a page in a cache memory, wherein the page is identified by a page address of an address space in a main memory; identifying, in a memory, a bin corresponding to an address range including the page address of the page of the incoming request, wherein the bin includes k address ranges of the address space of the main memory; determining whether to update an occupation count of the bin in the memory; locating the bin in a heuristics table to obtain an estimated total number of expected proximal accesses based on an updated occupation count of the bin; and determining, based on the estimated total number of expected proximal accesses, sequentiality of the data stream to device in order to generate a policy for the cache memory.

Claims (71)

1. A method of assessing sequentiality of a data stream, the method comprising:

receiving an incoming request to access a page in a cache memory, wherein the page is identified by a page address of an address space in a main memory;

identifying, in a memory, a bin corresponding to an address range including the page address of the page of the incoming request, wherein the bin includes k address ranges of the address space of the main memory;

determining whether to update an occupation count of the bin in the memory;

locating the bin in a heuristics table to obtain an estimated total number of expected proximal accesses based on an updated occupation count of the bin; and

determining, based on the estimated total number of expected proximal accesses, sequentiality of the data stream to device in order to generate a policy for the cache memory.

2. The method of claim 1 , wherein determining whether to update the occupation count of the bin comprises:

determining whether the page preexists in the cache memory;

in response to determining the page does not preexist in the cache memory, determining whether the incoming request causes one or more prefetched pages in the cache memory;

in response to determining the incoming request does not cause prefetched pages in the cache memory, determining whether one or more evicted pages are associated with the incoming request; and

in response to determining one or more evicted pages are associated with the incoming request, decrementing the occupation count of the bin and occupation counts corresponding to each of a remaining evicted pages of the evicted pages.

3. The method of claim 1 , wherein determining whether to update the occupation count of the bin further comprising:

determining whether the page preexists in the cache memory;

in response to determining the page preexists in the cache memory, avoiding incrementing the occupation count of the bin; and

in response to determining the page does not preexist in the cache memory, incrementing the occupation count of the bin.

4. The method of claim 1 , wherein determining whether to update the occupation count of the bin further comprising:

determining whether the page preexists in the cache memory;

in response to determining the page does not preexist in the cache memory, determining whether the incoming request causes one or more prefetched pages in the cache memory;

in response to determining the incoming request causes the prefetched pages in the cache memory, avoiding incrementing the occupation count of the bin and occupation counts corresponding to each of a remaining prefetched pages of the prefetched pages associated with the page of the incoming request; and

in response to determining the incoming request does not cause the prefetched pages in the cache memory, incrementing the occupation count of the bin.

5. The method of claim 1 , wherein determining whether to update the occupation count of the bin further comprising:

determining whether the page preexists in the cache memory;

in response to determining the page does not preexist in the cache memory, determining whether the incoming request causes one or more prefetched pages in the cache memory;

in response to determining the incoming request does not cause prefetched pages in the cache memory, determining whether one or more evicted pages are associated with the incoming request;

in response to determining the evicted pages are associated with the incoming request, avoiding decrementing the occupation count of the bin and occupation counts corresponding to each of a remaining evicted pages of the evicted pages; and

in response to determining no evicted pages are associated with the incoming request, avoiding decrementing the occupation count of the bin.

6. The method of claim 1 , wherein the memory with the bin resides in the cache memory.

7. The method of claim 1 , wherein the memory with the bin resides externally to the cache memory.

8. The method of claim 1 , further comprising:

generating the heuristics table prior to receiving the incoming request.

9. The method of claim 1 , wherein the policy is a cache management policy or a cache optimization policy.

10. The method of claim 9 , wherein the policy is a prefetch policy or a promotion policy.

11. A device, comprising:

a processor; and

memory comprising instructions which, when executed by the processor, perform assessing sequentiality of a data stream, the method comprising:

receiving an incoming request to access a page in a cache memory, wherein the page is identified by a page address of an address space in a main memory;

identifying, in a memory, a bin corresponding to an address range including the page address of the page of the incoming request, wherein the bin includes k address ranges of the address space of the main memory;

determining whether to update an occupation count of the bin in the memory;

locating the bin in a heuristics table to obtain an estimated total number of expected proximal accesses based on an updated occupation count of the bin; and

determining, based on the estimated total number of expected proximal accesses, sequentiality of the data stream to device in order to generate a policy for the cache memory.

12. The device of claim 11 , wherein determining whether to update the occupation count of the bin comprises:

determining whether the page preexists in the cache memory;

in response to determining the page does not preexist in the cache memory, determining whether the incoming request causes one or more prefetched pages in the cache memory;

in response to determining the incoming request does not cause prefetched pages in the cache memory, determining whether one or more evicted pages are associated with the incoming request; and

in response to determining one or more evicted pages are associated with the incoming request, decrementing the occupation count of the bin and occupation counts corresponding to each of a remaining evicted pages of the evicted pages.

13. The device of claim 11 , wherein determining whether to update the occupation count of the bin further comprising:

determining whether the page preexists in the cache memory;

in response to determining the page preexists in the cache memory, avoiding incrementing the occupation count of the bin; and

in response to determining the page does not preexist in the cache memory, incrementing the occupation count of the bin.

14. The device of claim 11 , wherein determining whether to update the occupation count of the bin further comprising:

determining whether the page preexists in the cache memory;

in response to determining the page does not preexist in the cache memory, determining whether the incoming request causes one or more prefetched pages in the cache memory;

in response to determining the incoming request causes the prefetched pages in the cache memory, avoiding incrementing the occupation count of the bin and occupation counts corresponding to each of a remaining prefetched pages of the prefetched pages associated with the page of the incoming request; and

in response to determining the incoming request does not cause the prefetched pages in the cache memory, incrementing the occupation count of the bin.

15. The device of claim 11 , wherein determining whether to update the occupation count of the bin further comprising:

determining whether the page preexists in the cache memory;

in response to determining the page does not preexist in the cache memory, determining whether the incoming request causes one or more prefetched pages in the cache memory;

in response to determining the incoming request does not cause prefetched pages in the cache memory, determining whether one or more evicted pages are associated with the incoming request;

in response to determining the evicted pages are associated with the incoming request, avoiding decrementing the occupation count of the bin and occupation counts corresponding to each of a remaining evicted pages of the evicted pages; and

in response to determining no evicted pages are associated with the incoming request, avoiding decrementing the occupation count of the bin.

16. The device of claim 11 , wherein the memory with the bin resides in the cache memory.

17. The device of claim 11 , wherein the memory with the bin resides externally to the cache memory.

18. The device of claim 11 , further comprising:

generating the heuristics table prior to receiving the incoming request.

19. The device of claim 11 , wherein the policy is a cache management policy or a cache optimization policy.

20. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for assessing sequentiality of a data stream, the method comprising:

receiving an incoming request to access a page in a cache memory, wherein the page is identified by a page address of an address space in a main memory;

identifying, in a memory, a bin corresponding to an address range including the page address of the page of the incoming request, wherein the bin includes k address ranges of the address space of the main memory;

determining whether to update an occupation count of the bin in the memory;

locating the bin in a heuristics table to obtain an estimated total number of expected proximal accesses based on an updated occupation count of the bin; and

determining, based on the estimated total number of expected proximal accesses, sequentiality of the data stream to device in order to generate a policy for the cache memory.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2021
From: GOTTIN, VINICIUS MICHEL; CALMON, TIAGO SALVIANO; FERREIRA, PAULO ABELHA; BARBALHO, HUGO DE OLIVEIRA; TEIXEIRA DE ABREU PINHO, RÔMULO
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055111/0840 →
Continuity (1)
Related Publication 20220237124A1 · Jul 28, 2022