IP Library Granted Patent US 12,405,752
Granted Patent B2
US 12,405,752 · App. 18/373,234 · Granted Sep 2, 2025

Migrating data between byte-addressable and block-addressable storage devices in processor-based devices

Inventor: Andrew Mills (Coto de Caza, CA)
Assignee: SMART Modular Technologies, Inc.
G06F3/0664G06F3/0619G06F3/0653G06F3/0659G06F3/0673
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,405,752
App. No.
18/373,234
Granted
Sep 2, 2025
Kind
B2
Abstract

Migrating data between byte-addressable and block-addressable storage devices in processor-based devices is disclosed. In this regard, a processor of a processor-based device is communicatively coupled to both a byte-addressable storage device and a block-addressable storage device. The processor is configured to present the byte-addressable storage device and the block-addressable storage device as a single virtual storage device (i.e., as either a byte-addressable virtual device or a block-addressable virtual storage device). The processor is further configured to identify a low-activity region in the byte-addressable storage device, and to also identify a high-activity region in the block-addressable storage device. The processor then exchanges a first storage region corresponding to the low-activity region and comprising a memory address region of the byte-addressable storage device with a second storage region corresponding to the high-activity region and comprising a block region of the block-addressable storage device.

Claims (75)

1. A processor-based device, comprising a virtualization circuit communicatively coupled to a byte-addressable storage device and a block-addressable storage device;

the virtualization circuit configured to:

present, to a processor of the processor-based device, the byte-addressable storage device and the block-addressable storage device as a single virtual storage device;

generate a usage statistic for each of the byte-addressable storage device and the block-addressable storage device;

identify a low-activity region in the byte-addressable storage device based on the usage statistic for the byte-addressable storage device;

identify a high-activity region in the block-addressable storage device based on the usage statistic for the block-addressable storage device; and

exchange a first storage region corresponding to the low-activity region and comprising a memory address region of the byte-addressable storage device with a second storage region corresponding to the high-activity region and comprising a block region of the block-addressable storage device;

wherein:

the single virtual storage device is configurably presented as one of a byte-addressable virtual storage device and a block-addressable virtual storage device;

the high-activity region comprises a block-addressable storage region for which the corresponding usage statistic exceeds a value of a promotion threshold; and

the low-activity region comprises a byte-addressable storage region for which the corresponding usage statistic is lower than the usage statistic for the high-activity region.

2. The processor-based device of claim 1 , wherein:

the virtualization circuit comprises a translation table; and

the virtualization circuit is configured to exchange the first storage region with the second storage region by being configured to:

copy the low-activity region to a first reserved section located in the block-addressable storage device using a byte-based read command to read from the byte-addressable storage device and a block-based write command to write to the block-addressable storage device;

update a physical address of the low-activity region in the translation table;

copy the high-activity region to a second reserved section located in the byte-addressable storage device using a block-based read command to read from the block-addressable storage device and a byte-based write command to write to the byte-addressable storage device; and

update a physical address of the high-activity region in the translation table.

3. The processor-based device of claim 2 , wherein:

the virtualization circuit is configured to copy the low-activity region by being configured to convert from a byte format to a block format without losing data; and

the virtualization circuit is configured to copy the high-activity region by being configured to convert from a block format to a byte format without losing data.

4. The processor-based device of claim 1 , wherein:

the virtualization circuit is further configured to receive, from the processor, a data access command to access the high-activity region; and

the virtualization circuit is configured to identify the low-activity region, identify the high-activity region, and exchange the first storage region with the second storage region responsive to receiving the data access command.

5. The processor-based device of claim 4 , wherein:

the virtual storage device comprises a byte-addressable virtual device; and

the data access command comprises a byte-based storage command.

6. The processor-based device of claim 4 , wherein:

the virtual storage device comprises a block-addressable virtual device; and

the data access command comprises a block-based storage command.

7. The processor-based device of claim 1 , wherein the virtualization circuit is configured to identify the low-activity region, identify the high-activity region, and exchange the first storage region with the second storage region at periodic time intervals.

8. The processor-based device of claim 1 , wherein the promotion threshold comprises one or more of an access frequency threshold, a data access latency threshold, an endurance threshold, and an access request size threshold.

9. A method, comprising:

presenting, by a processor of a processor-based device, a byte-addressable storage device and a block-addressable storage device as a single virtual storage device;

generating a usage statistic for each of the byte-addressable storage device and the block-addressable storage device;

identifying, by the processor, a low-activity region in the byte-addressable storage device based on the usage statistic for the byte-addressable storage device;

identifying, by the processor, a high-activity region in the block-addressable storage device based on the usage statistic for the block-addressable storage device; and

exchanging, by the processor, a first storage region corresponding to the low-activity region and comprising a memory address region of the byte-addressable storage device with a second storage region corresponding to the high-activity region and comprising a block region of the block-addressable storage device;

wherein:

the single virtual storage device is configurably presented as one of a byte-addressable virtual storage device and a block-addressable virtual storage device;

the high-activity region comprises a block-addressable storage region for which the corresponding usage statistic exceeds a value of a promotion threshold; and

the low-activity region comprises a byte-addressable storage region for which the corresponding usage statistic is lower than the usage statistic for the high-activity region.

10. The method of claim 9 , wherein exchanging the first storage region with the second storage region comprises:

copying the low-activity region to a first reserved section located in the block-addressable storage device using a byte-based read command to read from the byte-addressable storage device and a block-based write command to write to the block-addressable storage device;

updating a physical address of the low-activity region in a translation table;

copying the high-activity region to a second reserved section located in the byte-addressable storage device using a block-based read command to read from the block-addressable storage device and a byte-based write command to write to the byte-addressable storage device; and

updating a physical address of the high-activity region in the translation table.

11. The method of claim 10 , wherein:

copying the low-activity region comprises converting from a byte format to a block format without losing data; and

copying the high-activity region comprises converting from a block format to a byte format without losing data.

12. The method of claim 9 , further comprising receiving, by the processor, a data access command to access the high-activity region;

wherein the method comprises identifying the low-activity region, identifying the high-activity region, and exchanging the first storage region with the second storage region responsive to receiving the data access command.

13. The method of claim 12 , wherein:

the virtual storage device comprises a byte-addressable virtual device; and

the data access command comprises a byte-based storage command.

14. The method of claim 12 , wherein:

the virtual storage device comprises a block-addressable virtual device; and

the data access command comprises a block-based storage command.

15. The method of claim 9 , comprising identifying the low-activity region, identifying the high-activity region, and exchanging the first storage region with the second storage region at periodic time intervals.

16. The method of claim 9 , wherein the promotion threshold comprises one or more of an access frequency threshold, a data access latency threshold, an endurance threshold, and an access request size threshold.

17. A non-transitory computer-readable medium, having stored thereon computer-executable instructions that, when executed, cause a processor of a processor-based device to:

present a byte-addressable storage device and a block-addressable storage device as a single virtual storage device;

generate a usage statistic for each of the byte-addressable storage device and the block-addressable storage device;

identify a low-activity region in the byte-addressable storage device based on the usage statistic for the byte-addressable storage device;

identify a high-activity region in the block-addressable storage device based on the usage statistic for the block-addressable storage device; and

exchange a first storage region corresponding to the low-activity region and comprising a memory address region of the byte-addressable storage device with a second storage region corresponding to the high-activity region and comprising a block region of the block-addressable storage device;

wherein:

the single virtual storage device is configurably presented as one of a byte-addressable virtual storage device and a block-addressable virtual storage device;

the high-activity region comprises a block-addressable storage region for which the corresponding usage statistic exceeds a value of a promotion threshold; and

the low-activity region comprises a byte-addressable storage region for which the corresponding usage statistic is lower than the usage statistic for the high-activity region.

18. The non-transitory computer-readable medium of claim 17 , wherein the computer-executable instructions cause the processor to exchange the first storage region with the second storage region by causing the processor to:

copy the low-activity region to a first reserved section located in the block-addressable storage device using a byte-based read command to read from the byte-addressable storage device and a block-based write command to write to the block-addressable storage device;

update a physical address of the low-activity region in a translation table;

copy the high-activity region to a second reserved section located in the byte-addressable storage device using a block-based read command to read from the block-addressable storage device and a byte-based write command to write to the byte-addressable storage device; and

update a physical address of the high-activity region in the translation table.

Assignments (2)
PATENT SECURITY AGREEMENT Recorded Jun 30, 2025
From: CREELED, INC.; PENGUIN SOLUTIONS CORPORATION (DE); SMART EMBEDDED COMPUTING, INC.; SMART HIGH RELIABILITY SOLUTIONS LLC; SMART MODULAR TECHNOLOGIES, INC.; PENGUIN COMPUTING, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071755/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2023
From: MILLS, ANDREW
To: SMART MODULAR TECHNOLOGIES, INC.
Reel/Frame 065038/0415 →
Continuity (1)
Related Publication 20250103247A1 · Mar 27, 2025
References Cited (62)
US 6088766A · Bachmat et al. · 2000 [cited by applicant]
US 6286092B1 · Frank et al. · 2001 [cited by applicant]
US 7409515B2 · Hanai et al. · 2008 [cited by applicant]
US 8046537B2 · Carr et al. · 2011 [cited by applicant]
US 8082385B2 · Wong · 2011 [cited by applicant]
US 8103821B2 · Chang et al. · 2012 [cited by applicant]
US 8285758B1 · Bono et al. · 2012 [cited by applicant]
US 8627004B2 · Montgomery · 2014 [cited by applicant]
US 8627035B2 · Ambat et al. · 2014 [cited by applicant]
US 8639899B2 · Kawakami et al. · 2014 [cited by applicant]
US 10282291B2 · Mills et al. · 2019 [cited by applicant]
US 10956326B2 · Mills et al. · 2021 [cited by applicant]
US 20050262323A1 · Woo et al. · 2005 [cited by applicant]
US 20070088929A1 · Hanai et al. · 2007 [cited by applicant]
US 20080016308A1 · Bartley et al. · 2008 [cited by applicant]
US 20080168228A1 · Carr et al. · 2008 [cited by applicant]
US 20090089485A1 · Yeh · 2009 [cited by applicant]
US 20090276564A1 · Wong · 2009 [cited by applicant]
US 20100115186A1 · Chang et al. · 2010 [cited by applicant]
US 20110167217A1 · Montgomery · 2011 [cited by applicant]
US 20110197046A1 · Chiu · 2011 [cited by examiner]
US 20110271071A1 · Nakatogawa · 2011 [cited by applicant]
US 20120278569A1 · Kawakami et al. · 2012 [cited by applicant]
US 20130024650A1 · Ambat et al. · 2013 [cited by applicant]
US 20130124780A1 · Baderdinni et al. · 2013 [cited by applicant]
US 20180329643A1 · Kurjanowicz · 2018 [cited by examiner]
US 20200097182A1 · Volvovski · 2020 [cited by examiner]
US 20210328593A1 · Kesavan · 2021 [cited by examiner]
US 20220057954A1 · Cui · 2022 [cited by examiner]
US 20230043733A1 · Luo · 2023 [cited by examiner]
US 20240111429A1 · Vankamamidi · 2024 [cited by examiner]
CN 1280760C · 2006 [cited by applicant]
EP 2354919A2 · 2011 [cited by applicant]
FR 2833726A1 · 2003 [cited by applicant]
JP H0756691A · 1995 [cited by applicant]
JP H10187505A · 1998 [cited by applicant]
JP 2001067187A · 2001 [cited by applicant]
JP 2002207629A · 2002 [cited by applicant]
JP 2010191539A · 2010 [cited by applicant]
WO 2010085228A1 · 2010 [cited by applicant]
WO 2012020471A1 · 2012 [cited by applicant]
Storagereview Enterprise Lab, “MemVerge Memory Machine Review,” StorageReview.com, Jan. 14, 2021, available from the Internet: [URL: https://www.storagereview.com/review/memverge-memory-machine-review], 10 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 13/866,201, mailed Feb. 12, 2015, 17 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 13/866,201, mailed Jul. 17, 2015, 20 pages. [cited by applicant]
Advisory Action for U.S. Appl. No. 13/866,201, mailed Jan. 14, 2016, 3 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 13/866,201, mailed Sep. 16, 2016, 25 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 13/866,201, mailed Feb. 3, 2017, 26 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 13/866,201, mailed Jul. 27, 2017, 27 pages. [cited by applicant]
Advisory Action and Examiner-Initiated Interview Summary for U.S. Appl. No. 13/866,201, mailed Oct. 23, 2017, 4 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 13/866,201, mailed Mar. 1, 2018, 35 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 13/866,201, mailed Jul. 27, 2018, 34 pages. [cited by applicant]
Advisory Action, Examiner-Initiated Interview Summary, and AFCP 2.0 Decision for U.S. Appl. No. 13/866,201, mailed Oct. 12, 2018, 5 pages. [cited by applicant]
Notice of Allowance and Examiner-Initiated Interview Summary for U.S. Appl. No. 13/866,201, mailed Jan. 2, 2019, 17 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 16/359,230, mailed Jul. 28, 2020, 19 pages. [cited by applicant]
Applicant-Initiated Interview Summary for U.S. Appl. No. 16/359,230, mailed Oct. 28, 2020, 3 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 16/359,230, mailed Nov. 27, 2020, 9 pages. [cited by applicant]
First Office Action for Chinese Patent Application No. 201380020988.1, mailed Aug. 1, 2016, 15 pages. [cited by applicant]
Second Office Action for Chinese Patent Application No. 201380020988.1, mailed Mar. 30, 2017, 17 pages. [cited by applicant]
Extended European Search Report for European Patent Application No. 13778525.9, mailed Oct. 30, 2015, 3 pages. [cited by applicant]
Search Report for Japanese Patent Application No. 2015507238, mailed Sep. 28, 2015, 29 pages. [cited by applicant]
Notice of Reasons for Refusal for Japanese Patent Application No. 2015507238, mailed Oct. 6, 2015. [cited by applicant]
International Search Report and Written Opinion for International Patent Application No. PCT/US2013/037487, mailed Jul. 30, 2013. [cited by applicant]