IP Library Granted Patent US 12,596,798
Granted Patent B2
US 12,596,798 · App. 18/545,845 · Granted Apr 7, 2026

Probabilistic tracker management for memory attack mitigation

Inventors: Aamer Jaleel (Northborough, MA); Gururaj Saileshwar (Seattle, WA)
Assignee: NVIDIA CORPORATION
G06F21/554G06F12/1458G06F21/52G06F21/79G06F12/145G06F2212/1052G06F2221/034G11C11/40615
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 12,596,798
App. No.
18/545,845
Granted
Apr 7, 2026
Kind
B2
Abstract

Rowhammer attacks, which are malicious processes that rapidly issue access requests to memory, can impose serious security threats including being used to tamper data, take control of entire systems, and even breach confidentiality. Current solutions to defend against these attacks are limited, as they typically employ a deterministic tracker to track the portions of memory accessed and to mitigate potential attacks accordingly. However, the deterministic nature of these trackers results in their own vulnerability. The present disclosure provides probabilistic tracker management for mitigation of rowhammer attacks and/or other memory attacks in which a row (or other defined portion of memory) is maliciously targeted to disturb contents of neighboring rows, which can prevent these types of attacks that otherwise take advantage of the determinism in prior used tracker designs.

Claims (65)

1 . A method, comprising:

at a device:

pseudo-randomly or randomly sampling a subset of memory access requests from a stream of memory access requests issued to a memory; and

updating a data structure configured to track memory access requests for the memory, based on the subset of memory access requests sampled from the stream, wherein updating the data structure includes, for each memory access request in the subset of memory access requests:

determining whether the data structure includes an existing entry tracking accesses for a portion of the memory associated with the memory access request;

when the data structure includes the existing entry for the portion of the memory associated with the memory access request, updating an access counter included in the existing entry; and

when the data structure does not include the existing entry for the portion of the memory associated with the memory access request:

when the data structure is occupied above a threshold or is full, evicting from the data structure an existing entry tracking accesses for another portion of the memory, and

inserting a new entry in the data structure for the portion of the memory associated with the memory access request;

causing one or more attack mitigation actions to be performed, using the updated data structure.

2 . The method of claim 1 , wherein the memory is dynamic random access memory (DRAM).

3 . The method of claim 1 , wherein the stream of memory access requests is generated by monitoring the memory access requests access issued to the memory.

4 . The method of claim 1 , wherein a number of memory access requests included in the subset is preconfigured.

5 . The method of claim 1 , wherein a rate at which the stream is sampled is static.

6 . The method of claim 5 , wherein the rate at which the stream is sampled matches a rate at which memory refreshes are issued to update a state of the memory.

7 . The method of claim 1 , wherein the rate at which the data structure is updated matches a rate at which memory refreshes are issued to update a state of the memory.

8 . The method of claim 7 , wherein the rate at which the attack mitigation actions are performed is dynamic.

9 . The method of claim 1 , wherein the data structure stores a plurality of entries each indicating a different portion of the memory and a counter of a number of accesses made to the portion of the memory.

10 . The method of claim 9 , wherein a size of the data structure is preconfigured.

11 . The method of claim 9 , wherein each portion of the memory is a row in the memory.

12 . The method of claim 1 , wherein the existing entry evicted from the data structure is selected randomly.

13 . The method of claim 1 , wherein the existing entry evicted from the data structure is a function of the access counter included in the data structure.

14 . The method of claim 1 , wherein causing the one or more attack mitigation actions to be performed, using the updated data structure, includes:

selecting, based on the updated data structure, one or more portions of the memory on which to perform the one or more attack mitigation actions.

15 . The method of claim 14 , wherein the one or more portions of the memory are neighbors to at least one portion of the memory identified from the updated data structure in accordance with a policy.

16 . The method of claim 15 , wherein the at least one portion of the memory identified from the updated data structure in accordance with a policy includes a preconfigured number of portions of the memory.

17 . The method of claim 16 , wherein the policy is to identify the preconfigured number of most frequently used (MFU) portions of memory.

18 . The method of claim 14 , wherein the one or more attack mitigation actions include refreshing the one or more portions of the memory.

19 . The method of claim 1 , wherein the method is performed at least once during each memory refresh period.

20 . The method of claim 19 , wherein the one or more attack mitigation actions are a single attack mitigation action performed during the memory refresh period.

21 . The method of claim 19 , wherein one or more attack mitigation actions are two or more attack mitigation actions performed during the memory refresh period.

22 . The method of claim 1 , wherein the one or more attack mitigation actions are performed to mitigate rowhammer attacks.

23 . The method of claim 1 , wherein the one or more attack mitigation actions are performed to mitigate rowpress attacks.

24 . The method of claim 1 , wherein the device is the memory.

25 . The method of claim 1 , wherein the device is a memory controller.

26 . A memory, comprising:

a hardware buffer to track memory access requests that have been pseudo-randomly or randomly sampled from a stream of memory access requests issued to the memory; and

logic to:

(a) update the hardware buffer based on the memory access requests sampled from the stream including, for each of the memory access requests:

determining whether the hardware buffer includes an existing entry tracking accesses for a portion of the memory associated with the memory access request;

when the hardware buffer includes the existing entry for the portion of the memory associated with the memory access request, updating an access counter included in the existing entry; and

when the hardware buffer does not include the existing entry for the portion of the memory associated with the memory access request:

when the hardware buffer is occupied above a threshold or is full, evicting from the hardware buffer an existing entry tracking accesses for another portion of the memory, and

inserting a new entry in the hardware buffer for the portion of the memory associated with the memory access request, and

(b) perform one or more attack mitigation actions, using the updated hardware buffer.

27 . The memory of claim 26 , wherein the memory is DRAM.

28 . The memory of claim 26 , wherein the logic:

selects, based on the updated hardware buffer, one or more portions of the memory on which to perform the one or more attack mitigation actions, and

performs the one or more attack mitigation actions on the one or more portions of the memory.

29 . The memory of claim 28 , wherein the one or more portions of the memory are neighbors to at least one portion of the memory identified from the updated hardware buffer in accordance with a policy.

30 . The memory of claim 29 , wherein the policy is to identify a preconfigured number of most frequently used (MFU) portions of the memory.

31 . The memory of claim 26 , wherein the sampling and the performing of one or more attack mitigation actions is repeated for each refresh period configured for the memory.

32 . A memory controller that interfaces a memory, comprising:

a hardware buffer to track memory access requests that have been pseudo-randomly or randomly sampled from a stream of memory access requests issued to the memory; and

logic that:

(a) updates the hardware buffer based on the memory access requests sampled from the stream including, for each of the memory access requests:

determining whether the hardware buffer includes an existing entry tracking accesses for a portion of the memory associated with the memory access request;

when the hardware buffer includes the existing entry for the portion of the memory associated with the memory access request, updating an access counter included in the existing entry; and

when the hardware buffer does not include the existing entry for the portion of the memory associated with the memory access request:

when the hardware buffer is occupied above a threshold or is full, evicting from the hardware buffer an existing entry tracking accesses for another portion of the memory, and

inserting a new entry in the hardware buffer for the portion of the memory associated with the memory access request, and

(b) uses the updated hardware buffer to cause the memory to perform one or more attack mitigation actions.

33 . The memory controller of claim 32 , wherein the hardware buffer is implemented in static random access memory (SRAM).

34 . The memory controller of claim 32 , wherein causing the memory to perform one or more attack mitigation actions includes issuing a refresh management (RFM) command to the memory that indicates one or more portions of the memory identified from the updated hardware buffer based on a policy, wherein the memory is configured to respond to the RFM command by performing the one or more attack mitigation actions in association with the one or more portions of the memory indicated in the RFM command.

35 . The memory controller of claim 34 , wherein the one or more attack mitigation actions include refreshing one or more other portions of the memory that are neighbors to one or more portions of the memory indicated in the RFM command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2024
From: JALEEL, AAMER; SAILESHWAR, GURURAJ
To: NVIDIA CORPORATION
Reel/Frame 066720/0024 →
Continuity (2)
Provisional Application 63471224 · Jun 5, 2023
Related Publication 20240403417A1 · Dec 5, 2024
References Cited (59)
US 11152050B2 · Morohashi · 2021 [cited by examiner]
US 11631448B1 · Lee · 2023 [cited by examiner]
US 11961548B2 · Kim · 2024 [cited by examiner]
US 12300304B2 · Agarwal · 2025 [cited by examiner]
US 12511190B1 · Xu · 2025 [cited by examiner]
US 20190278508A1 · Pepper · 2019 [cited by examiner]
US 20200089611A1 · Gandhi · 2020 [cited by examiner]
US 20240112722A1 · Brandl · 2024 [cited by examiner]
US 20240355375A1 · Joo · 2024 [cited by examiner]
US 20240428845A1 · Song · 2024 [cited by examiner]
US 20250078904A1 · Ayyapureddi · 2025 [cited by examiner]
CN 116340094A · 2023 [cited by examiner]
CN 117116319A · 2023 [cited by examiner]
DE 202017106508U1 · 2018 [cited by examiner]
Machine translation of Liu, CN 117116319 A, pp. 1-2 (Year: 2023). [cited by examiner]
Aweke et al., “ANVIL: Software-Based Protection Against Next-Generation Rowhammer Attacks,” ASPLOS '16, Apr. 2016, 13 pages. [cited by applicant]
Bakiri, M., “Hardware Implementation of Pseudo Random Number Generator Based on Chaotic Iteration,” Thesis, University of Bourgogne Franche-Comté, 2018, 140 pages. [cited by applicant]
Bennett et al., “Panopticon: A Complete In-DRAM Rowhammer Mitigation,” Workshop on DRAM Security (DRAMSec), 2021, 7 pages, retrieved from https://dramsec.ethz.ch/papers/panopticon.pdf. [cited by applicant]
Brasser et al., “CAn't Touch This: Software-only Mitigation against Rowhammer Attacks targeting Kernel Memory,” Proceedings of the 26th USENIX Security Symposium, Aug. 2017, pp. 117-130. [cited by applicant]
Cojocar et al., “Exploiting Correcting Codes: On the Effectiveness of ECC Memory Against Rowhammer Attacks,” IEEE Symposium on Security and Privacy, 2019, pp. 55-71. [cited by applicant]
De Ridder et al., “SMASH: Synchronized Many-sided Rowhammer Attacks from JavaScript,” SMASH: Synchronized Many-sided Rowhammer Attacks from JavaScript, Aug. 2021, pp. 1001-1018. [cited by applicant]
Fakhrzadehgan et al., “SafeGuard: Reducing the Security Risk from Row-Hammer via Low-Cost Integrity Protection,” IEEE International Symposium on High Performance Computer Architecture (HPCA), 2022, 14 pages, retrieved f… [cited by applicant]
Frigo et al., “TRRespass: Exploiting the Many Sides of Target Row Refresh,” IEEE Symposium on Security and Privacy, 2020, pp. 747-762. [cited by applicant]
Gruss et al., “Another Flip in the Wall of Rowhammer Defenses,” IEEE Symposium on Security and Privacy, 2018, pp. 245-261. [cited by applicant]
Gruss et al., “Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript,” International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment, 2016, 21 pages, retrieved from https://w… [cited by applicant]
Hassan et al., “CROW: A Low-Cost Substrate for Improving DRAM Performance, Energy Efficiency, and Reliability,” Proceedings of the 46th International Symposium on Computer Architecture (ISCA), 2019, pp. 1-14. [cited by applicant]
Hassan et al., “Uncovering In-DRAM RowHammer Protection Mechanisms: A New Methodology, Custom RowHammer Patterns, and Implications,” MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture, 2021, pp.… [cited by applicant]
Hong et al., “DSAC: Low-Cost Rowhammer Mitigation Using In-DRAM Stochastic and Approximate Counting Algorithm,” arXiv, 2023, pp. 1-15, retrieved from https://arxiv.org/abs/2302.03591. [cited by applicant]
Jattke et al., “Blacksmith: Scalable Rowhammering in the Frequency Domain,” IEEE Symposium on Security and Privacy (SP), 2022, 20 pages. [cited by applicant]
Juffinger et al., “CSI: Rowhammer—Cryptographic Security and Integrity against Rowhammer,” in 2023 IEEE Symposium on Security and Privacy (SP), 2023, 17 pages, retrieved from https://gruss.cc/files/csirowhammer.pdf. [cited by applicant]
Kim et al., “Architectural Support for Mitigating Row Hammering in DRAM Memories,” IEEE Computer Architecture Letters, vol. 14, No. 1, 2015, pp. 9-12. [cited by applicant]
Kim et al., “Revisiting RowHammer: An Experimental Analysis of Modern DRAM Devices and Mitigation Techniques,” Proceedings of the ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA), 2020, pp. 1… [cited by applicant]
Kim et al., “Mithril: Cooperative Row Hammer Protection on Commodity DRAM Leveraging Managed Refresh,” 2022 IEEE International Symposium on High-Performance Computer Architecture (HPCA), 2022, pp. 1-16, retrieved from h… [cited by applicant]
Kim et al., “Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors,” IEEE International Symposium on Computer Architecture (ISCA), 2014, pp. 1-12. [cited by applicant]
Kogler et al., “Half-Double: Hammering From the Next Row Over,” Proceedings of the 31st USENIX Security Symposium, Aug. 2022, pp. 3801-3824. [cited by applicant]
Kwong et al., “Rambleed: Reading Bits in Memory Without Accessing Them,” IEEE Symposium on Security and Privacy, 2020, pp. 695-711. [cited by applicant]
Lee et al., “TWiCe: Preventing Row-hammering by Exploiting Time Window Counters,” IEEE International Symposium on Computer Architecture (ISCA), Jun. 2019, pp. 384-395. [cited by applicant]
Lowe-Power et al., “The gem5 Simulator: Version 20.0+,” arXiv, 2020, 21 pages, retrieved from https://arxiv.org/abs/2007.03152. [cited by applicant]
Luo et al., “RowPress: Amplifying Read Disturbance in Modern DRAM Chips,” Proceedings of the 50th Annual International Symposium on Computer Architecture, Jun. 2023, pp. 1-18. [cited by applicant]
Marazzi et al., “PROTRR: Principled yet Optimal In-DRAM Target Row Refresh,” IEEE Symposium on Security and Privacy (SP), 2022, pp. 735-753. [cited by applicant]
Marazzi et al., “REGA: Scalable Rowhammer Mitigation with Refresh-Generating Activations,” IEEE Symposium on Security and Privacy (SP), 2023, 19, pages, retrieved from https://comsec.ethz.ch/wp-content/files/rega_sp23.p… [cited by applicant]
Misra et al., “Finding Repeated Elements,” Science of Computer Programming 2, 1982, pp. 143-152. [cited by applicant]
Park et al., “Graphene: Strong yet Lightweight Row Hammer Protection,” 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2020, pp. 1-13. [cited by applicant]
Qureshi et al., “Hydra: Enabling Low-Overhead Mitigation of Row-Hammer at Ultra-Low Thresholds via Hybrid Tracking,” Proceedings of the 49th Annual International Symposium on Computer Architecture, Jun. 2022, 12 pages. [cited by applicant]
Qureshi et al., “Adaptive Insertion Policies for High Performance Caching,” Proceedings of the 34th Annual International Symposium on Computer Architecture, Jun. 2007, 12 pages. [cited by applicant]
Saileshwar et al., “Randomized Row-Swap: Mitigating Row Hammer by Breaking Spatial Correlation between Aggressor and Victim Rows,” Proceedings of the 27th ACM International Conference on Architectural Support for Progra… [cited by applicant]
Saxena et al., “PT-Guard: Integrity-Protected Page Tables to Defend Against Breakthrough Rowhammer Attacks,” IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), 2023, pp. 1-14, retrieved from ht… [cited by applicant]
Saxena et al., “AQUA: Scalable Rowhammer Mitigation by Quarantining Aggressor Rows at Runtime,” 55th IEEE/ACM International Symposium on Microarchitecture (Micro), 2022, 16 pages, retrieved from https://memlab.ece.gatec… [cited by applicant]
Seyedzadeh et al., “Mitigating Wordline Crosstalk using Adaptive Trees of Counters,” International Symposium on Computer Architecture, Jun. 2018, pp. 1-12. [cited by applicant]
SPEC, “SPEC CPU 2017,” SPEC, 2022, 3 pages, retrieved from https://www.spec.org/cpu2017/. [cited by applicant]
Van Der Veen et al., “Drammer: Deterministic Rowhammer Attacks on Mobile Platforms,” ACM SIGSAC Conference on Computer and Communications Security, 2016, 15 pages. [cited by applicant]
Woo et al., “Scalable and Secure Row-Swap: Efficient and Safe Row Hammer Mitigation in Memory Systems,” The 29th IEEE International Symposium on High-Performance Computer Architecture (HPCA), 2022, 17 pages, retrieved f… [cited by applicant]
Yagliker et al., “BlockHammer: Preventing RowHammer at Low Cost by Blacklisting Rapidly-Accessed DRAM Rows,” IEEE International Symposium on High-Performance Computer Architecture (HPCA), 2021, 15 pages, retrieved from … [cited by applicant]
You et al., “MRLoc: Mitigating Row-hammering based on memory Locality,” 2019 56th ACM/IEEE Design Automation Conference (DAC), 2019, 6 pages. [cited by applicant]
Zhang et al., “PThammer: Cross-User-Kernel-Boundary Rowhammer through Implicit Accesses,” 53rd Annual IEEE/ACM International Symposium on Microarchitecture (Micro), 2020, pp. 28-41. [cited by applicant]
Kim et al., “A 1.1V 16Gb DDR5 DRAM with Probabilistic-Aggressor Tracking, Refresh-Management Functionality, Per-Row Hammer Tracking, a Multi-Step Precharge, and Core-Bias Modulation for Security and Reliability Enhancem… [cited by applicant]
Wi et al., “Shadow: Preventing Row Hammer in DRAM with Intra-Subarray Row Shuffling,” IEEE International Symposium on High-Performance Computer Architecture (HPCA), 2023, pp. 333-346. [cited by applicant]
Son et al., “Making DRAM Stronger Against Row Hammering,” Proceedings of the 54th Annual Design Automation Conference, Jun. 2017, pp. 1-6. [cited by applicant]
Seaborn et al., “Exploiting the DRAM rowhammer bug to gain kernel privileges,” Project Zero blog, Mar. 9, 2015, 15 pages, retrieved from https://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-ga… [cited by applicant]