Quality of service control of logical devices for a memory sub-system
US-2021200703-A1 · Jul 1, 2021 · US
US2023195365A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2023195365-A1 |
| Application number | US-202318166574-A |
| Country | US |
| Kind code | A1 |
| Filing date | Feb 9, 2023 |
| Priority date | Sep 1, 2021 |
| Publication date | Jun 22, 2023 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Resources of an electronic device are partitioned into a plurality of resource portions to be utilized by a plurality of clients. Each resource portion is assigned to a respective client, has a respective partition identifier (ID), and corresponds to a plurality of memory bandwidth usage states tracked for a plurality of memory blocks. For each resource portion, each of the memory bandwidth usage states is associated with a respective memory block and indicates at least how much of a memory access bandwidth assigned to the respective partition ID to access the respective memory block is used. A usage level is determined for each resource partition based on the memory bandwidth usage states, and applied to adjust a credit count. When the credit count is adjusted beyond a request issue threshold, a next data access request is issued from a memory access request queue for the respective partition ID.
Opening claim text (preview).
What is claimed is: 1 . A method for tracking memory usage at a memory system coupled to one or more processing clusters via a first memory in an electronic device, the memory system including a memory block, comprising: receiving a set of data access requests associated with a plurality of clients to the memory block, wherein resources are partitioned to a plurality of resource portions to be utilized by the plurality of clients, each resource portion being assigned to a respective client and having a respective partition identifier (ID); and for each resource portion having the respective partition ID: identifying a subset of data access requests associated with the respective partition ID for accessing the memory block; tracking a memory bandwidth usage state associated with the respective partition ID, wherein the memory bandwidth usage state indicates at least how much of a memory access bandwidth assigned to the respective partition ID to access the memory block is used; and in response to each data access request of the set of data access requests, reporting the memory bandwidth usage state to the one or more processing clusters. 2 . The method of claim 1 , wherein reporting the memory bandwidth usage state to the one or more processing clusters further comprises: in response to receiving a read request, reporting the memory bandwidth usage state to the one or more processing clusters directly with a data item requested by the read request or indirectly via the first memory; and in response to receiving a write request, reporting the memory bandwidth usage state to the one or more processing clusters indirectly via the first memory. 3 . The method of claim 1 , wherein the memory bandwidth usage state associated with the respective partition ID is also tracked based on an alternative current congestion level of the memory block and/or whether a predefined memory access bandwidth is enforced. 4 . The method of claim 1 , wherein tracking the memory bandwidth usage state associated with the respective partition ID further comprises, for the respective partition ID: determining whether an average data access level to the memory block has exceeded a predefined threshold portion of a predefined memory access bandwidth assigned to the respective partition ID to access the memory block. 5 . The method of claim 4 , wherein tracking the memory bandwidth usage state associated with the respective partition ID further comprises: monitoring a second total number of data access requests that are waiting in a second request queue of the memory system; and determining an alternative current congestion level indicating whether the second total number of data access requests exceeds an alternative predefined portion of an external memory capacity. 6 . The method of claim 5 , further comprising: determining a second current congestion level indicating whether the second total number of data access requests exceeds a second predefined portion of the external memory capacity, wherein the second current congestion level is used to control throttling or qualities of prefetch requests of the one or more processing clusters. 7 . The method of claim 5 , wherein the memory bandwidth usage state includes a flag configured to indicate a heavy memory bandwidth usage state, further comprising: enabling the flag in accordance with (a) a determination that the average data access level to the memory block has exceeded the predefined threshold portion of the predefined memory access bandwidth and (b) a determination that the predefined memory access bandwidth is enforced or that the alternative current congestion level of the memory block is high. 8 . The method of claim 1 , wherein for each partition ID, the memory bandwidth usage state associated with the respective partition ID includes a multibit state number, and further comprising: increasing a magnitude of the multibit state number with how much of the memory access bandwidth assigned to the respective partition ID to access the memory block is used. 9 . A memory system for tracking memory usage coupled to one or more processing clusters via a first memory in an electronic device, the memory system comprising: a memory block, the memory system configured to: receive a set of data access requests associated with a plurality of clients to the memory block, wherein resources are partitioned to a plurality of resource portions to be utilized by the plurality of clients, each resource portion being assigned to a respective client and having a respective partition identifier (ID); and for each resource portion having the respective partition ID, the memory system further configured to: identify a subset of data access requests associated with the respective partition ID for accessing the memory block; track a memory bandwidth usage state associated with the respective partition ID, wherein the memory bandwidth usage state indicates at least how much of a memory access bandwidth assigned to the respective partition ID to access the memory block is used; and in response to each data access request of the set of data access requests, report the memory bandwidth usage state to the one or more processing clusters. 10 . The memory system of claim 9 , wherein the memory system is further configured to: in response to receiving a read request, report the memory bandwidth usage state to the one or more processing clusters directly with a data item requested by the read request or indirectly via the first memory; and in response to receiving a write request, report the memory bandwidth usage state to the one or more processing clusters indirectly via the first memory. 11 . The memory system of claim 9 , wherein the memory system is further configured to: track the memory bandwidth usage state associated with the respective partition ID based on an alternative current congestion level of the memory block and/or whether a predefined memory access bandwidth is enforced. 12 . The memory system of claim 9 , wherein the memory system is further configured, for the respective partition ID, to: determine whether an average data access level to the memory block has exceeded a predefined threshold portion of a predefined memory access bandwidth assigned to the respective partition ID to access the memory block. 13 . The memory system of claim 12 , wherein the memory system is further configured to: monitor a second total number of data access requests that are waiting in a second request queue of the memory system; and determine an alternative current congestion level indicating whether the second total number of data access requests exceeds an alternative predefined portion of an external memory capacity. 14 . The memory system of claim 13 , further configured to: determine a second current congestion level indicating whether the second total number of data access requests exceeds a second predefined portion of the external memory capacity, wherein the second current congestion level is used to control throttling or qualities of prefetch requests of the one or more processing clusters. 15 . The memory system of claim 13 , wherein the memory bandwidth usage state includes a flag configured to indicate a heavy memory bandwidth usage state, the memory system is further configured to: enable the flag in accordance with (a) a determination that the average data access level to the memory block has exceeded the predefined threshold portion of the predefined memory access bandwidth and (b) a determination that the predefined memory access bandwidth i
Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Virtualized environment, e.g. logically partitioned system · CPC title
Controller construction arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.