IP Library › Granted Patent US 12,638,995
Granted Patent B2
US 12,638,995 · App. 17/962,371 · Granted May 26, 2026

Machine learning-enabled management of storage media access

Inventors: Simeng Zheng (San Diego, CA); Nedeljko Varnica (San Jose, CA); Erich F. Haratsch (San Jose, CA)
Assignee: Marvell Asia Pte, Ltd.
G06F3/064G06F3/0604G06F3/0673G06F12/0246G06N3/045G06N3/08G06F2212/7202
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,638,995
App. No.
17/962,371
Granted
May 26, 2026
Kind
B2
Abstract

The present disclosure describes apparatuses and methods for machine learning-enabled (ML-enabled) management of storage media access. In some aspects, an ML-enabled storage controller obtains features of available blocks of storage media of a storage media system. The controller can receive, from a host system, a request to write data and determine features of the data to be written to the storage media. The controller provides the respective features of the available blocks and the data to a neural network and receives, from the neural network, a selected block of the available blocks for writing of the data. The selected block may include an ML-optimized selection from the available blocks based on the features of both the available blocks and the data. The controller then writes the data of the request to the ML-selected block of storage media of the storage media system, which may improve storage media performance.

Claims (107)

1 . A method for machine learning-enabled management of storage media access, comprising:

obtaining, by a machine learning-enabled (ML-enabled) controller of a storage media controller, features of available blocks of storage media of a storage media system, the storage media controller operably coupled with the storage media of the storage media system via a media interface of the storage media controller, the ML-enabled controller implemented by a hardware-based processor executing instructions from hardware-based memory of the storage media controller;

encoding, with the ML-enabled controller of the storage media controller, block identifiers of the available blocks of the storage media with respective metrics of the features of the available blocks to provide, for each of the available blocks, a first vector representative of a block identifier and a bit-error rate metric of the available block and a second vector representative of the block identifier and a program erase cycle metric of the available block;

receiving, by the storage media controller, a write request from a host system to write data to the storage media, the host system operably coupled to the storage media controller via a host interface of the storage media controller;

determining, by the ML-enabled controller, features of the data of the write request based on metrics of the data of the write request;

selecting, using a neural network of the ML-enabled controller, a block of the available blocks of the storage media for writing the data of the write request based on the first vectors representative of the block identifiers and the bit-error rate metric of the available blocks, the second vectors representative of the block identifiers and the program erase cycle metrics of the available blocks, and the features of the data of the write request; and

writing, by the storage media controller, the data of the write request to the selected block of the storage media of the storage media system to complete the write request from the host system to write the data to the storage media.

2 . The method of claim 1 , further comprising:

receiving, by the ML-enabled controller, an indication of the available blocks of the storage media; and

determining, by the ML-enabled controller, the features of the available blocks of the storage media of the storage media system.

3 . The method of claim 2 , wherein the features obtained for one of the available blocks comprise one of:

a read history of the available block;

a write history of the available block;

an erase history of the available block;

a program erase cycle count of the available block;

a bit-error rate of the available block; or

a health rating of the available block.

4 . The method of claim 1 , wherein the features determined for the data of the write request comprise one of:

a garbage collection policy applied to the data of the write request;

a data-hotness of the data of the write request;

a frequency of access of the data of the write request;

an age of the data of the write request;

a write history of the data of the write request; or

an origin of the data of the write request.

5 . The method of claim 1 , wherein the neural network is a first neural network of the ML-enabled controller that is configured to manage block-level access, and the method further comprises:

obtaining features of available storage drives of the storage media system;

selecting, using a second neural network of the ML-enabled controller that is configured to manage storage drive-level access, a storage drive of the storage media for writing the data of the write request based the features of the available storage drives and the features of the data of the write request; and

writing the data of the write request to the selected block of the selected storage drive of the storage media system.

6 . The method of claim 1 , wherein the neural network is a first neural network of the ML-enabled controller that is configured to manage block-level access, and the method further comprises:

obtaining features of available dies of a storage drive of the storage media system;

selecting, using a second neural network of the ML-enabled controller that is configured to manage die-level access, a die of the storage media for writing the data of the write request based the features of the available dies and the features of the data of the write request; and

writing the data of the write request to the selected block of the selected die of the storage media system.

7 . The method of claim 1 , further comprising;

generating, by the ML-enabled controller, a dataset of multiple entries that comprise a block identifier with respective feature metrics associated with the block identifier;

iteratively, by the ML-enabled controller, labeling entries of the dataset to provide labels for the dataset based on the respective feature metrics of the block identifiers;

comparing, by the ML-enabled controller, an output of the neural network with the labels generated for the dataset; and

updating, by the ML-enabled controller, weights of the neural network based on the comparing of the output of the neural network and the labels generated for the dataset.

8 . The method of claim 1 , wherein:

the storage media comprises one of solid-state storage media, NAND Flash memory, single-level cell (SLC) Flash memory, multi-level cell (MLC) Flash memory, triple-level cell (TLC) Flash, quad-level cell Flash (QLC), or NOR cell Flash.

9 . The method of claim 1 , wherein:

each of the first vectors comprises a binary vector of the block identifier encoded with the bit-error rate metric of the available block; or

each of the second vectors comprises a binary vector of the block identifier encoded with the program erase cycle metric of the available block.

10 . A System-on-Chip (SoC) comprising:

a media interface to access storage media of a storage media system;

a host interface to communicate with a host system;

a hardware-based processor; and

hardware-based memory storing a neural network and processor-executable instructions that, responsive to execution by the hardware-based processor, implement a machine learning-enabled (ML-enabled) controller to:

obtain features of available blocks of the storage media of the storage media system;

encode block identifiers of the available blocks with respective metrics of the features of the available blocks to provide, for each of the available blocks, a first vector representative of a block identifier and a bit-error rate metric of the available block and a second vector representative of the block identifier and a program erase cycle metric of the available block;

receive, from the host system, a write request to write data to the storage media of the storage media system;

determine features of the data of the write request based on metrics of the data of the write request;

select, using the neural network, a block of storage media from the available blocks of the storage media for writing the data of the write request based on the first vectors representative of the block identifiers and the bit-error rate metric of the available blocks, the second vectors representative of the block identifiers and the program erase cycle metrics of the available blocks, and the features of the data of the write request; and

write the data of the write request to the selected block of the storage media of the storage media system.

11 . The SoC of claim 10 , wherein the features obtained for one of the available blocks comprise at least two of:

a read history of the available block;

a write history of the available block;

an erase history of the available block;

a program erase cycle count of the available block;

a bit-error rate of the available block; or

a health rating of the available block.

12 . The SoC of claim 10 , wherein the features determined for the data of the write request comprise at least two of:

a garbage collection policy applied to the data of the write request;

a data-hotness of the data of the write request;

a frequency of access of the data of the write request;

an age of the data of the write request;

a write history of the data of the write request; or

an origin of the data of the write request.

13 . The SoC of claim 10 , wherein the ML-enabled controller is further implemented to:

receive an indication of the available blocks of the storage media; and

determine the features of the available blocks of the storage media of the storage media system.

14 . The SoC of claim 10 , wherein the neural network is a first neural network configured to manage block-level access, the hardware-based memory stores a second neural network configured to manage storage drive-level access, and the ML-enabled controller is further implemented to:

obtain features of available storage drives of the storage media system;

select, using the second neural network, a storage drive of the storage media for writing the data of the write request based the features of the available storage drives and the features of the data of the write request; and

writing the data of the write request to the selected block of the selected storage drive of the storage media system.

15 . The SoC of claim 10 , wherein the neural network is a first neural network configured to manage block-level access, the hardware-based memory stores a second neural network configured to manage storage die-level access, and the ML-enabled controller is further implemented to:

obtain features of available dies of a storage drive of the storage media system;

select, with the second neural network, a die of the storage media for writing the data of the write request based the features of the available dies and the features of the data of the write request; and

write the data of the write request to the selected block of the selected die of the storage media system.

16 . An apparatus comprising:

a host interface configured for communication with a host system;

storage media to store data of the host system;

a media interface configured to enable access to the storage media;

a hardware-based processor; and

hardware-based memory storing a neural network and processor-executable instructions that, responsive to execution by the hardware-based processor, implement a machine learning-enabled (ML-enabled) controller to:

obtain features of available blocks of the storage media of the apparatus;

encode block identifiers of the available blocks with respective metrics of the features of the available blocks to provide, for each of the available blocks, a first vector representative of a block identifier and a bit-error rate metric of the available block and a second vector representative of the block identifier and a program erase cycle metric of the available block;

receive, from the host system, a write request to write data to the storage media of the apparatus;

determine features of the data of the write request based on metrics of the data of the write request;

select, with the neural network, a block of the available blocks of the storage media for writing the data of the write request based on the first vectors representative of the block identifiers and the bit-error rate metric of the available blocks, the second vectors representative of the block identifiers and the program erase cycle metrics of the available blocks, and the features of the data of the write request; and

write the data of the write request to the selected block of the storage media of the apparatus.

17 . The apparatus of claim 16 , wherein the ML-enabled controller is further implemented to:

receive an indication of the available blocks of the storage media; and

determine the features of the available blocks of the storage media of the apparatus.

18 . The apparatus of claim 16 , wherein the features determined for the data of the write request comprise one of:

a garbage collection policy applied to the data of the write request;

a data-hotness of the data of the write request;

a frequency of access of the data of the write request;

an age of the data of the write request;

a write history of the data of the write request; or

an origin of the data of the write request.

19 . The apparatus of claim 16 , wherein the neural network is a first neural network configured to manage block-level access, the hardware-based memory stores a second neural network configured to manage storage die-level access, and the ML-enabled controller is further implemented to:

obtain features of available dies of a storage drive of the apparatus;

select, with the second neural network, a die of the storage media for writing the data of the write request based the features of the available dies and the features of the data of the write request; and

write the data of the write request to the selected block of the selected die of the apparatus.

20 . The apparatus of claim 19 , wherein the ML-enabled controller is further implemented to:

receive an indication of the available dies of a storage drive of the apparatus; and

determine the features of the available dies of the storage media of the apparatus.

Continuity (2)
Provisional Application 63254009 · Oct 8, 2021
Related Publication 20230110401A1 · Apr 13, 2023
References Cited (14)
US 20190079697A1 · Suzuki · 2019 [cited by examiner]
US 20190114078A1 · Oh · 2019 [cited by applicant]
US 20200110536A1 · Navon · 2020 [cited by examiner]
US 20200150892A1 · Kim · 2020 [cited by examiner]
US 20200393991A1 · Kachare · 2020 [cited by examiner]
US 20210223954A1 · Yang et al. · 2021 [cited by applicant]
US 20210373774A1 · Rangan · 2021 [cited by examiner]
US 20220188028A1 · Mesnier · 2022 [cited by examiner]
US 20220245670A1 · Cao · 2022 [cited by examiner]
CN 112051969A · 2020 [cited by examiner]
EP 3866015 · 2021 [cited by applicant]
Wikipedia, “System on a chip”, Dec. 25, 2020, the Internet Archive snapshot of the page from Dec. 25, 2020, pp. 1-16 https://web.archive.org/web/20201225015025/https://en.wikipedia.org/wiki/System_on_a_chip (Year: 2020). [cited by examiner]
“International Search Report and Written Opinion”, Application No. PCT/IB2022/059642, Jan. 16, 2023, 13 pages. [cited by applicant]
“International Preliminary Report on Patentability”, Application No. PCT/IB2022/059642, Apr. 9, 2024, 10 pages. [cited by applicant]