US2022357879A1PendingUtilityA1
Memory Bank Hotspotting
Est. expiryMay 6, 2041(~14.8 yrs left)· nominal 20-yr term from priority
Inventors:Gregory S. MathewsKai Lun HsiungLakshmi Narasimha Murthy NukalaShane J. KeilThejasvi Magudilu VijayarajYanzhe LiuTao Zhang
G06F 13/1605G06F 3/0644G06F 3/0673G06F 3/0611G06F 3/0659G06F 3/0688G06F 3/061
60
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Systems, apparatuses, and methods for addressing bank hotspotting are described. A computing system includes a memory controller with an arbiter for determining how to arbitrate access to one or more memory device(s) for received requests. The arbiter categorizes each request in a manner that helps to ensure fair virtual channel distribution across the banks of the memory device(s). The category system includes bank hotspotting functions to give banks that have more requests more chances to go over banks with fewer requests. The category system is implemented proportionally with more category credits given to banks with higher bank depths within the virtual channel.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A memory controller comprising:
allocation circuitry configured to:
determine, for one or more banks of a plurality of banks of a memory device, a number of pending requests that target the one or more banks;
grant, to a given bank of the one or more banks, a number of credits in proportion to a number of pending requests targeting the given bank; and
arbitration circuitry configured to forward requests to banks that have a credit available.
2 . The memory controller as recited in claim 1 , wherein the allocation circuitry is further configured to assign, at an initialization event, an initial amount of credits to the one or more banks, and wherein the proportion is determined for read requests which target the one or more banks while ignoring write requests.
3 . The memory controller as recited in claim 1 , wherein the arbitration circuitry is further configured to arbitrate between requests to the one or more banks and deduct a credit from the given bank for a request serviced by the given bank.
4 . The memory controller as recited in claim 1 , wherein the granting of credits is performed on a per virtual channel (VC) basis.
5 . The memory controller as recited in claim 1 , wherein the allocation circuitry is configured to grant a fractional amount of credits to the given bank.
6 . The memory controller as recited in claim 5 , wherein the fractional amount of credits granted to the given bank by the allocation circuitry is disregarded by the arbitration circuitry for request forwarding purposes.
7 . The memory controller as recited in claim 6 , wherein the allocation circuitry is configured to accumulate the fractional amount of credits with one or more subsequent fractional grants of credits to yield at least a whole number of credits.
8 . A method comprising:
determining, by allocation circuitry, a number of pending requests that target one or more banks of a plurality of banks of a memory device; granting, by the allocation circuitry, a number of credits in proportion to a number of pending requests targeting a given bank of the one or more banks; and forwarding, by arbitration circuitry, requests to banks that have a credit available.
9 . The method as recited in claim 8 , further comprising assigning, by the allocation circuitry, an initial amount of credits to the one or more banks at an initialization event, and wherein the proportion is determined for read requests which target the one or more banks while ignoring write requests.
10 . The method as recited in claim 8 , further comprising arbitrating, by the arbitration circuitry, between requests to the one or more banks and deducting a credit from the given bank for a request serviced by the given bank.
11 . The method as recited in claim 8 , wherein the granting of credits is performed on a per virtual channel (VC) basis.
12 . The method as recited in claim 8 , further comprising granting, by the allocation circuitry, a fractional amount of credits to the given bank.
13 . The method as recited in claim 12 , wherein the fractional amount of credits granted to the given bank by the allocation circuitry is disregarded by the arbitration circuitry for request forwarding purposes.
14 . The method as recited in claim 13 , further comprising accumulating, by the allocation circuitry, the fractional amount of credits with one or more subsequent fractional grants of credits to yield at least a whole number of credits.
15 . A system comprising:
a memory device comprising a plurality of banks; and a memory controller configured to:
determine, for one or more banks of the plurality of banks, a number of pending requests that target the one or more banks;
grant, to a given bank of the one or more banks, a number of credits in proportion to a number of pending requests targeting the given bank; and
forward requests to banks that have a credit available.
16 . The system as recited in claim 15 , wherein the memory controller is further configured to assign, at an initialization event, an initial amount of credits to the one or more banks, and wherein the proportion is determined for read requests which target the one or more banks while ignoring write requests.
17 . The system as recited in claim 15 , wherein the memory controller is further configured to arbitrate between requests to the one or more banks and deduct a credit from the given bank for a request serviced by the given bank.
18 . The system as recited in claim 15 , wherein the granting of credits is performed on a per virtual channel (VC) basis.
19 . The system as recited in claim 15 , wherein the memory controller is configured to grant a fractional amount of credits to the given bank.
20 . The system as recited in claim 19 , wherein the fractional amount of credits granted to the given bank is disregarded for request forwarding purposes.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.