IP Library Granted Patent US 12,346,249
Granted Patent B2
US 12,346,249 · App. 18/329,251 · Granted Jul 1, 2025

Memory wear leveling

Inventors: Gary Smerdon (Los Gatos, CA); Isaac R. Nassi (Los Gatos, CA); David P. Reed (Los Gatos, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F12/023
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,346,249
App. No.
18/329,251
Granted
Jul 1, 2025
Kind
B2
Abstract

In some examples, based on the information relating to the wear of physical memories in computer nodes of the distributed system, a system initiates a migration of a memory page from a first physical memory in a first computer node to a second physical memory in a second computer node. As part of the migration, the system updates a mapping between a first address space accessible by programs in the distributed system and a physical address space comprising memory locations in the physical memories.

Claims (34)

1. A non-transitory machine-readable storage medium comprising instructions that upon execution cause a distributed system to:

receive information relating to wear of physical memories in computer nodes of the distributed system, wherein each of the computer nodes comprise a corresponding set of hardware resources, including processing resources, remote from hardware resources of other computer nodes;

based on the information relating to the wear, initiate a migration of a memory page from a first physical memory in a first computer node to a second physical memory in a second computer node, wherein the second physical memory is remote from the first physical memory; and

as part of the migration, update a mapping between a first address space accessible by programs in the distributed system and a physical address space comprising memory locations in the physical memories.

2. The non-transitory machine-readable storage medium of claim 1 , wherein the first address space is a virtual address space comprising virtual addresses in a virtual memory.

3. The non-transitory machine-readable storage medium of claim 1 , wherein the first address space is a guest physical memory address space of a guest physical memory accessible by one or more guest operating systems (OSes) in a virtualized environment.

4. The non-transitory machine-readable storage medium of claim 1 , wherein the information relating to the wear comprises information relating to correctable errors in the physical memories.

5. The non-transitory machine-readable storage medium of claim 1 , wherein the information relating to the wear comprises information relating to cumulative access of the physical memories.

6. The non-transitory machine-readable storage medium of claim 1 , wherein the information relating to the wear comprises information relating to intensity of access of the physical memories.

7. The non-transitory machine-readable storage medium of claim 1 , wherein the information relating to the wear is from hardware in the computer nodes.

8. The non-transitory machine-readable storage medium of claim 1 , wherein the information relating to the wear is from a program that samples virtual memory addresses accessed and determines physical memory addresses corresponding to the virtual memory addresses.

9. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the distributed system to:

migrate a virtual processor from the first computer node to the second computer node in conjunction with the migration of the memory page.

10. The non-transitory machine-readable storage medium of claim 1 , wherein the initiating of the migration of the memory page is by a hyper-kernel in the first computer node.

11. The non-transitory machine-readable storage medium of claim 10 , wherein the mapping is updated by the hyper-kernel.

12. The non-transitory machine-readable storage medium of claim 1 , wherein the initiating of the migration of the memory page is by a hypervisor in the first computer node.

13. The non-transitory machine-readable storage medium of claim 12 , wherein the mapping is updated by the hypervisor.

14. A distributed system comprising:

a plurality of computer nodes, wherein each computer node of the plurality of computer nodes comprises a physical memory and a corresponding set of hardware resources, including processing resources, remote from hardware resources of other computer nodes,

wherein a first computer node of the plurality of computer nodes comprises:

memory wear-leveling instructions executable in the first computer node to:

receive information relating to wear of a first physical memory in the first computer node,

based on the information relating to the wear, initiate a migration of a memory page from the first physical memory in the first computer node to a second physical memory in a second computer node, wherein the second physical memory is remote from the first physical memory, and

as part of the migration, update a mapping between a first address space accessible by a program and a physical address space comprising memory locations in the physical memories.

15. The distributed system of claim 14 , wherein the updating of the mapping changes a mapping between a first virtual address of the memory page from a first physical address of the first physical memory to a second physical address of the second physical memory.

16. The distributed system of claim 14 , wherein the updating of the mapping changes a mapping between a first guest memory address of the memory page from a first physical address of the first physical memory to a second physical address of the second physical memory.

17. The distributed system of claim 14 , wherein the plurality of computer nodes comprise respective hyper-kernels that collectively form a distributed hypervisor, wherein the program is executable in a virtual machine distributed across the plurality of computer nodes.

18. The distributed system of claim 14 , wherein the information relating to the wear comprises information relating to correctable errors in the first physical memory.

19. A method of a distributed system comprising a plurality of computer nodes, comprising:

receiving, by a memory wear-leveling engine in a first computer node of the plurality of computer nodes, information relating to wear of a first physical memory in the first computer node, wherein each of the computer nodes comprise a corresponding set of hardware resources, including processing resources, remote from hardware resources of other computer nodes;

based on the information relating to the wear, initiating a migration of a memory page from the first physical memory in the first computer node to a second physical memory in a second computer node, wherein the second physical memory is remote from the first physical memory; and

as part of the migration, updating a mapping between a first address space accessible by programs in a virtual machine and a physical address space comprising memory locations in the physical memories.

20. The method of claim 19 , further comprising:

migrating a virtual processor from the first computer node to the second computer node in conjunction with the migration of the memory page.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2023
From: TIDALSCALE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 063861/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2023
From: SMERDON, GARY; NASSI, ISAAC R.
To: TIDALSCALE, INC.
Reel/Frame 063856/0050 →
Continuity (3)
Provisional Application 63345695 · May 25, 2022
Provisional Application 63298581 · Jan 11, 2022
Related Publication 20240354243A1 · Oct 24, 2024
References Cited (16)
US 10623479B2 · Nassi · 2020 [cited by applicant]
US 10788994B1 · Harwood · 2020 [cited by examiner]
US 20170286176A1 · Artman et al. · 2017 [cited by applicant]
US 20180189189A1 · Jain · 2018 [cited by examiner]
US 20190171387A1 · Willhalm · 2019 [cited by examiner]
US 20200201757A1 · Diep · 2020 [cited by examiner]
US 20210011777A1 · Nassi et al. · 2021 [cited by applicant]
US 20210397471A1 · Duarte Cardoso et al. · 2021 [cited by applicant]
US 20220229688A1 · Dang et al. · 2022 [cited by applicant]
WO 2019099358A1 · 2019 [cited by applicant]
Fan et al., WL-Reviver: A Framework for Reviving any Wear-Leveling Techniques in the Face of Failures on Phase Change Memory, Sep. 2014 (12 pages). [cited by applicant]
Infineon, AN98521, Wear Leveling Mar. 19, 2021 (9 pages). [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2023/060465, mailed on May 15, 2023, 3 pages. [cited by applicant]
Jung et al., A Group-Based Wear-Leveling Algorithm for Large-Capacity Flash Memory Storage Systems, 2007 (5 pages). [cited by applicant]
Micron, TN-29-42: Wear-Leveling Techniques in NAND Flash Devices Introduction, Wear-Leveling Techniques in NAND Flash Devices, 2008 (8 pages). [cited by applicant]
Wikipedia, Wear leveling last edited Oct. 21, 2022 (5 pages). [cited by applicant]