IP Library Granted Patent US 12710875
Granted Patent B2
US 12710875 · App. 18/957,427 · Granted Aug 18, 2026

Hot data detection for disaggregated memory using bloom filters

Inventors: Guy Bonneau (Pierrefonds, CA); Larrie Carr (Kelowna, CA)
Assignee: Rambus Inc.
G06F3/0611G06F3/0653G06F3/0679
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 12710875
App. No.
18/957,427
Granted
Aug 18, 2026
Kind
B2
Abstract

A system includes a memory system comprising a near memory component and a far memory component, and a processing device coupled to the memory system. The processing device is configured to track, using a plurality of Bloom filters, respective access requests directed to a plurality of memory pages stored in the memory system. The processing device is further configured to identify, based on weighted results of respective queries of the plurality of Bloom filters, a subset of the plurality of memory pages having a data temperature that satisfies a threshold condition, and cause the subset of the plurality of memory pages to be stored in the near memory component. The identified subset can optionally be applied to a second stage of Bloom filters to further refine the result.

Claims (67)

1 . A system comprising:

a memory system comprising a near memory component and a far memory component; and

a processing device coupled to the memory system and configured to:

track, using a plurality of Bloom filters, respective access requests directed to a plurality of memory pages stored in the memory system;

identify, based on a combination of weighted results of concurrent respective queries of the plurality of Bloom filters, a subset of the plurality of memory pages having a data temperature that satisfies a threshold condition; and

cause the subset of the plurality of memory pages to be stored in the near memory component.

2 . The system of claim 1 , wherein to track the respective access requests directed to the plurality of memory pages, the processing device is to:

receive, from a host system, an access request directed to a first memory page of the plurality of memory pages;

apply a plurality of hash functions to an identifier of the first memory page to generate a plurality of hash results; and

update one or more values in the plurality of Bloom filters from a default state to a set state, wherein the one or more values have respective index values that match the plurality of hash results.

3 . The system of claim 2 , wherein to track the respective access requests directed to the plurality of memory pages, the processing device is further to:

update one or more values in a second plurality of Bloom filters from the default state to the set state, wherein the one or more values have respective index values that match the plurality of hash results representing the subset of the plurality of memory pages identified using the plurality of Bloom filters.

4 . The system of claim 1 , wherein to identify the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition, the processing device is to:

receive, from a host system, an access request directed to a first memory page of the plurality of memory pages;

apply a plurality of hash functions to an identifier of the first memory page to generate a plurality of hash results; and

execute respective queries of the plurality of Bloom filters to determine whether respective one or more values in the respective Bloom filters are in a set state, wherein the one or more values have respective index values that match the plurality of hash results.

5 . The system of claim 4 , wherein to identify the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition, the processing device is further to:

responsive to the respective one or more values in the respective Bloom filters being in the set state, determine respective affirmative match results for the respective Bloom filters;

apply respective weighting values to the respective affirmative match results to determine the weighted results of the respective queries;

logically combine the weighted results of the respected queries to determine a combined result; and

compare the combined result to a threshold value.

6 . The system of claim 5 , wherein the combined result meeting or exceeding the threshold value indicates that the first memory page is part of the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition.

7 . The system of claim 1 , wherein the processing device is further to:

responsive to determining that the subset of the plurality of memory pages have the data temperature that satisfies the threshold condition, filter the subset of the plurality of memory pages using a second plurality of Bloom filters.

8 . The system of claim 1 , wherein the near memory component provides lower access latency than the far memory component, and wherein the near memory component has a smaller storage capacity than the far memory component.

9 . The system of claim 1 , wherein the processing device is further to:

perform at least one of a move operation or a reset operation on the plurality of Bloom filters in response to an occurrence of a clock-based time event.

10 . A method comprising:

tracking, using a plurality of Bloom filters, respective access requests directed to a plurality of memory pages stored in a memory system comprising a near memory component and a far memory component;

identifying, based on a combination of weighted results of concurrent respective queries of the plurality of Bloom filters, a subset of the plurality of memory pages having a data temperature that satisfies a threshold condition; and

causing the subset of the plurality of memory pages to be stored in the near memory component.

11 . The method of claim 10 , wherein tracking the respective access requests directed to the plurality of memory pages comprises:

receiving, from a host system, an access request directed to a first memory page of the plurality of memory pages;

applying a plurality of hash functions to an identifier of the first memory page to generate a plurality of hash results; and

updating one or more values in a first Bloom filter of the plurality of Bloom filters from a default state to a set state, wherein the one or more values have respective index values that match the plurality of hash results.

12 . The method of claim 11 , wherein tracking the respective access requests directed to the plurality of memory pages further comprises:

updating one or more values in a second plurality of Bloom filters from the default state to the set state, wherein the one or more values have respective index values that match the plurality of hash results representing the subset of the plurality of memory pages identified using the plurality of Bloom filters.

13 . The method of claim 10 , wherein identifying the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition comprises:

receiving, from a host system, an access request directed to a first memory page of the plurality of memory pages;

applying a plurality of hash functions to an identifier of the first memory page to generate a plurality of hash results; and

executing respective queries of the plurality of Bloom filters to determine whether respective one or more values in the respective Bloom filters are in a set state, wherein the one or more values have respective index values that match the plurality of hash results.

14 . The method of claim 13 , wherein identifying the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition further comprises:

responsive to the respective one or more values in the respective Bloom filters being in the set state, determining respective affirmative match results for the respective Bloom filters;

applying respective weighting values to the respective affirmative match results to determine the weighted results of the respective queries;

logically combining the weighted results of the respected queries to determine a combined result; and

comparing the combined result to a threshold value.

15 . The method of claim 14 , wherein the combined result meeting or exceeding the threshold value indicates that the first memory page is part of the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition, the method further comprising:

responsive to determining that the subset of the plurality of memory pages have the data temperature that satisfies the threshold condition, filter the subset of the plurality of memory pages using a second plurality of Bloom filters.

16 . A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:

track, using a plurality of Bloom filters, respective access requests directed to a plurality of memory pages stored in a memory system comprising a near memory component and a far memory component;

identify, based on a combination of weighted results of concurrent respective queries of the plurality of Bloom filters, a subset of the plurality of memory pages having a data temperature that satisfies a threshold condition; and

cause the subset of the plurality of memory pages to be stored in the near memory component.

17 . The non-transitory computer-readable storage medium of claim 16 , wherein to track the respective access requests directed to the plurality of memory pages, the instructions cause the processing device to:

receive, from a host system, an access request directed to a first memory page of the plurality of memory pages;

apply a plurality of hash functions to an identifier of the first memory page to generate a plurality of hash results; and

update one or more values in a first Bloom filter of the plurality of Bloom filters from a default state to a set state, wherein the one or more values have respective index values that match the plurality of hash results.

18 . The non-transitory computer-readable storage medium of claim 17 , wherein to track the respective access requests directed to the plurality of memory pages, the instructions cause the processing device to:

update one or more values in a second plurality of Bloom filters from the default state to the set state, wherein the one or more values have respective index values that match the plurality of hash results representing the subset of the plurality of memory pages identified using the plurality of Bloom filters.

19 . The non-transitory computer-readable storage medium of claim 16 , wherein to identify the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition, the instructions cause the processing device to:

receive, from a host system, an access request directed to a first memory page of the plurality of memory pages;

apply a plurality of hash functions to an identifier of the first memory page to generate a plurality of hash results; and

execute respective queries of the plurality of Bloom filters to determine whether respective one or more values in the respective Bloom filters are in a set state, wherein the one or more values have respective index values that match the plurality of hash results.

20 . The non-transitory computer-readable storage medium of claim 19 , wherein to identify the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition, the processing device is further to:

responsive to the respective one or more values in the respective Bloom filters being in the set state, determine respective affirmative match results for the respective Bloom filters;

apply respective weighting values to the respective affirmative match results to determine the weighted results of the respective queries;

logically combine the weighted results of the respected queries to determine a combined result; and

compare the combined result to a threshold value, wherein the combined result meeting or exceeding the threshold value indicates that the first memory page is part of the subset of the plurality of memory pages having the data temperature that satisfies the threshold condition.