Managing quality of service by allocating die parallelism with variable queue depth

US2026032091A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2026032091-A1
Application numberUS-202519340104-A
CountryUS
Kind codeA1
Filing dateSep 25, 2025
Priority dateJun 23, 2021
Publication dateJan 29, 2026
Grant date

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.

Systems, apparatuses and methods provide for a memory controller to manage quality of service enforcement. For example, a memory controller includes logic to determine a plurality of projected bandwidth levels and a plurality of projected quality of service levels on a user-by-user basis. The projected bandwidth levels and the projected quality of service levels are determined for a plurality of device configurations based on one or more storage device parameters. A requested bandwidth level and a requested quality of service level is received from a host in response to the plurality of projected bandwidth levels and the plurality of projected quality of service levels.

First claim

Opening claim text (preview).

1 .- 20 . (canceled) 21 . A memory controller comprising logic to: determine a plurality of projected bandwidth levels and a plurality of projected quality of service levels on a user-by-user basis based on one or more storage device parameters; cause to be transmitted to a host the plurality of projected bandwidth levels and the plurality of projected quality of service levels; receive, from the host, a requested bandwidth level and a requested quality of service level that were determined based on the plurality of projected bandwidth levels and on the plurality of projected quality of service levels; based on the requested bandwidth level and on the requested quality of service level, select a target storage device from a plurality of storage devices, the plurality of storage devices comprising a first storage device of a first media type and a second storage device of a second media type, wherein the second storage device is to operate more slowly than the first storage device; and cause an incoming user command to be issued to the target storage device. 22 . The memory controller of claim 21 , wherein the one or more storage device parameters comprise one or more of a number of dies, an internal queue depth, a media operation speed, a per die read projection, a per die write projection, a program suspend projection, or an erase suspend projection. 23 . The memory controller of claim 21 , wherein the logic is further to: receive, from the host, a command priority in response to the plurality of projected bandwidth levels and the plurality of projected quality of service levels; and control an internal queue depth to maintain the requested quality of service level, wherein the internal queue depth is controlled based at least in part on dynamically reallocating the command priority. 24 . The memory controller of claim 23 , wherein the logic is further to: receive, from the host, permission to dynamically reallocate the command priority. 25 . The memory controller of claim 23 , wherein the logic is further to: receive, from the host, instructions on how to dynamically reallocate the command priority. 26 . The memory controller of claim 23 , wherein the dynamically reallocating of the command priority includes configuring a first percentage of user commands to be executed at a first priority and a second percentage of user commands to be executed at a second priority, and wherein the first priority is different from the second priority. 27 . The memory controller of claim 23 , wherein the dynamically reallocating of the command priority is based at least in part on one or more of a change in the internal queue depth, a change in media type among the plurality of storage devices, a change in power management per user, or a change in defragment policy. 28 . The memory controller of claim 23 , wherein the logic is further to: receive, from the host, a request for a current priority of a user; and report the current priority of the user to the host based on the dynamically reallocating of the command priority. 29 . The memory controller of claim 21 , wherein the logic is further to: receive, from the host, a requested garbage collection frequency for a garbage collection timer; and configure the garbage collection timer based on the requested garbage collection frequency. 30 . The memory controller of claim 21 , wherein the logic is further to: receive, from the host, a request to activate a write aggregation and de-staging timer; and send, to the host, a report of completion when ready to accept de-staged writes in response to the write aggregation and de-staging timer. 31 . A method comprising: determining a plurality of projected bandwidth levels and a plurality of projected quality of service levels on a user-by-user basis based on one or more storage device parameters; causing to be transmitted to a host the plurality of projected bandwidth levels and the plurality of projected quality of service levels; receiving, from the host, a requested bandwidth level and a requested quality of service level that were determined based on the plurality of projected bandwidth levels and on the plurality of projected quality of service levels; based on the requested bandwidth level and on the requested quality of service level, selecting a target storage device from a plurality of storage devices, the plurality of storage devices comprising a first storage device of a first media type and a second storage device of a second media type, wherein the second storage device is to operate more slowly than the first storage device; and causing an incoming user command to be issued to the target storage device. 32 . The method of claim 31 , wherein the one or more storage device parameters comprises one or more of a number of dies, an internal queue depth, a media operation speed, a per die read projection, a per die write projection, a program suspend projection, or an erase suspend projection. 33 . The method of claim 31 , wherein the method further comprises: receiving, from the host, a command priority in response to the plurality of projected bandwidth levels and the plurality of projected quality of service levels; and controlling an internal queue depth to maintain the requested quality of service level, wherein the internal queue depth is controlled based at least in part on dynamically reallocating the command priority. 34 . The method of claim 33 , wherein the method further comprises: receiving, from the host, permission to dynamically reallocate the command priority. 35 . The method of claim 33 , wherein the method further comprises: receiving, from the host, instructions on how to dynamically reallocate the command priority. 36 . The method of claim 33 , wherein the dynamically reallocating of the command priority includes configuring a first percentage of user commands to be executed at a first priority and a second percentage of user commands to be executed at a second priority, and wherein the first priority is different from the second priority. 37 . The method of claim 33 , wherein the dynamically reallocating of the command priority is based at least in part on one or more of a change in the internal queue depth, a change in media type among the plurality of storage devices, a change in power management per user, or a change in defragment policy. 38 . The method of claim 33 , wherein the method further comprises: receiving, from the host, a request for a current priority of a user; and reporting the current priority of the user to the host based on the dynamically reallocating of the command priority. 39 . The method of claim 31 , wherein the method further comprises: receiving, from the host, a requested garbage collection frequency for a garbage collection timer; and configuring the garbage collection timer based on the requested garbage collection frequency. 40 . The method of claim 31 , wherein the method further comprises: receiving, from the host, a request to activate a write aggregation and de-staging timer, and sending, to the host, a report of completion when ready to accept de-staged writes in response to the write aggregation and de-staging timer.

Assignees

Inventors

Classifications

  • H04L47/24Primary

    Traffic characterised by specific attributes, e.g. priority or QoS · CPC title

  • based on usage prediction · CPC title

  • QOS or priority aware · CPC title

  • Centralised allocation of resources · 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 US2026032091A1 cover?
Systems, apparatuses and methods provide for a memory controller to manage quality of service enforcement. For example, a memory controller includes logic to determine a plurality of projected bandwidth levels and a plurality of projected quality of service levels on a user-by-user basis. The projected bandwidth levels and the projected quality of service levels are determined for a plurality o…
Who is the assignee on this patent?
Sk Hynix Nand Product Solutions Corp Dba Solidigm
What technology area does this patent fall under?
Primary CPC classification H04L47/24. Mapped technology areas include Electricity.
When was this patent published?
Publication date Thu Jan 29 2026 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).