Techniques for balancing write commands on solid state storage devices (SSDs)

US12530150B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12530150-B2
Application numberUS-202418639614-A
CountryUS
Kind codeB2
Filing dateApr 18, 2024
Priority dateApr 5, 2021
Publication dateJan 20, 2026
Grant dateJan 20, 2026

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Disclosed herein are techniques for balancing write commands directed to a non-volatile memory. According to some embodiments, a method may include caching a plurality of write commands into a write cache, and, in response to determining that an available capacity of the write cache satisfies a first threshold value: performing at least one write operation by directing data associated with the write commands in the write cache to the first partition of the non-volatile memory in response to determining that an available capacity of a first partition of the non-volatile memory satisfies a second threshold value; and performing at least one write operation by directing data associated with the write commands in the write cache to a second partition of the non-volatile memory in response to determining that the available capacity of the first partition of the non-volatile memory does not satisfy the second threshold value.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method, comprising, by a computing device: during performance of a replay operation: reading, by a host controller of the computing device, namespace mapping data stored in a first persistent memory partition of the computing device, and reading namespace data stored in a storage device of the computing device using the namespace mapping data, wherein the namespace data includes information corresponding to applications or other data required during a reboot and/or rebuild of the computing device; after performance of the replay operation: determining whether indirection data stored in a second persistent memory partition of computing device is synchronized with the namespace mapping data; and in response to a determination that the indirection data is not synchronized with the namespace mapping data: traversing memory blocks corresponding to the namespace mapping data, wherein traversing the memory blocks comprises defragmenting, by the host controller, of the namespace mapping data, performing a namespace mapping data synchronization, wherein the namespace mapping data synchronization comprises updating the indirection data using the namespace mapping data, and reading, by the host controller, the namespace data stored in the storage device using the indirection data. 2 . The method of claim 1 , further comprising: performing, by the host controller, a commit command on the namespace mapping data. 3 . The method of claim 1 , wherein the namespace mapping data includes logical block addresses and block sizes corresponding to the namespace data stored in the storage device. 4 . The method of claim 1 , wherein the first persistent memory partition includes a single-level cell partition and wherein the second persistent memory partition includes one of a single-level cell partition or a multi-level cell partition. 5 . The method of claim 1 , wherein the host controller reads the namespace data stored in the storage device using a flash translation layer of the storage device. 6 . The method of claim 1 , wherein the first persistent memory partition includes a utility region of the computing device. 7 . The method of claim 1 , wherein the namespace data is cycled according to a cycle rate of corresponding memory blocks of the storage device. 8 . A non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor included in a computing device, cause the computing device to carry out steps that include: during performance of a the replay operation: reading, by a host controller of the computing device, namespace mapping data stored in a first persistent memory partition of the computing device, and reading namespace data stored in a storage device of the computing device using the namespace mapping data, wherein the namespace data includes information corresponding to applications or other data required during a reboot and/or rebuild of the computing device; after performance of the replay operation: determining whether indirection data stored in a second persistent memory partition of computing device is synchronized with the namespace mapping data; and in response to a determination that the indirection data is not synchronized with the namespace mapping data: traversing memory blocks corresponding to the namespace mapping data, wherein traversing the memory blocks comprises defragmenting, by the host controller, of the namespace mapping data, performing a namespace mapping data synchronization, wherein the namespace mapping data synchronization comprises updating the indirection data using the namespace mapping data, and reading, by the host controller, the namespace data stored in the storage device using the indirection data. 9 . The non-transitory computer readable storage medium of claim 8 , wherein the steps further include: performing, by the host controller, a commit command on the namespace mapping data. 10 . The non-transitory computer readable storage medium of claim 8 , wherein the namespace mapping data includes logical block addresses and block sizes corresponding to the namespace data stored in the storage device. 11 . The non-transitory computer readable storage medium of claim 8 , wherein the first persistent memory partition includes a single-level cell partition and wherein the second persistent memory partition includes one of a single-level cell partition or a multi-level cell partition. 12 . The non-transitory computer readable storage medium of claim 8 , wherein the host controller reads the namespace data stored in the storage device using a flash translation layer of the storage device. 13 . The non-transitory computer readable storage medium of claim 8 , wherein the first persistent memory partition includes a utility region of the computing device. 14 . The non-transitory computer readable storage medium of claim 8 , wherein the namespace data is cycled according to a cycle rate of corresponding memory blocks of the storage device. 15 . A computing device, comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the computing device to carry out steps that include: during performance of a replay operation: reading, by a host controller of the computing device, namespace mapping data stored in a first persistent memory partition of the computing device, and reading namespace data stored in a storage device of the computing device using the namespace mapping data; after performance of the replay operation: determining whether indirection data stored in a second persistent memory partition of computing device is synchronized with the namespace mapping data; and in response to a determination that the indirection data is not synchronized with the namespace mapping data: traversing memory blocks corresponding to the namespace mapping data, wherein traversing the memory blocks comprises defragmenting, by the host controller, of the namespace mapping data, performing a namespace mapping data synchronization, wherein the namespace mapping data synchronization comprises updating the indirection data using the namespace mapping data, and reading, by the host controller, the namespace data stored in the storage device using the indirection data. 16 . The computing device of claim 15 , wherein the steps further include: performing, by the host controller, a commit command on the namespace mapping data. 17 . The computing device of claim 15 , wherein the namespace mapping data includes logical block addresses and block sizes corresponding to the namespace data stored in the storage device. 18 . The computing device of claim 15 , wherein the first persistent memory partition includes a single-level cell partition and wherein the second persistent memory partition includes one of a single-level cell partition or a multi-level cell partition. 19 . The computing device of claim 15 , wherein the host controller reads the namespace data stored in the storage device using a flash translation layer of the storage device. 20 . The computing device of claim 15 , wherein the first persistent memory partition includes a utility region of the computing device.

Assignees

Inventors

Classifications

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Management of space entities, e.g. partitions, extents, pools · CPC title

  • with dedicated cache, e.g. instruction or stack · CPC title

  • Performance improvement · CPC title

  • Improving I/O performance · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12530150B2 cover?
Disclosed herein are techniques for balancing write commands directed to a non-volatile memory. According to some embodiments, a method may include caching a plurality of write commands into a write cache, and, in response to determining that an available capacity of the write cache satisfies a first threshold value: performing at least one write operation by directing data associated with the …
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0659. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 20 2026 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).