IP Library › Granted Patent US 12,223,174
Granted Patent B2
US 12,223,174 · App. 18/250,476 · Granted Feb 11, 2025

Modulating credit allocations in memory subsystems

Inventors: Nagaraj Ashok Putti (Bangalore, IN); Abhra Bagchi (Bangalore, IN); Vyagrheswarudu Durga Nainala (Bangalore, IN); Venkateswaran Ananthanarayanan (Bangalore, IN)
Assignee: Google LLC
G06F3/0613G06F3/0631G06F3/0673G06F3/0683
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,223,174
App. No.
18/250,476
Granted
Feb 11, 2025
Kind
B2
Abstract

This document describes systems and techniques for modulating credit allocations in memory subsystems. The described systems and techniques can provide a feedback mechanism to a credit controller to improve the bandwidth at a memory interface. The memory controller monitors statistics associated with transaction requests served to one or more random access memories (RAMs) of the memory subsystem. The memory controller can then provide suggestions to the credit controller or to the one or more clients to modulate the number of credits allocated to one or more clients. In this way, the described systems and techniques can improve the efficiency of the memory controller in managing the transaction requests and the bandwidth at the memory interface.

Claims (49)

1. A memory subsystem of a system on chip (SoC) comprising:

a memory controller operably connected to a credit controller, the memory controller comprising a buffer configured to store transaction requests, from one or more clients, to access data in one or more random-access memories (RAMs), the memory controller configured to:

monitor, for each client of the one or more clients, statistics of the transaction requests served by the memory controller, the statistics comprising at least two of a number of page hits in the one or more RAMs, a number of conflicts that require closing a page of the one or more RAMs before another page can be opened, or a respective number of credits allocated to the client;

determine, based on the statistics, whether memory throughput would be increased by increasing or decreasing the respective number of credits allocated to at least one client of the one or more clients; and

generate, based on a determination that the memory throughput would be increased, an output signal, the output signal configured to indicate to the credit controller that the respective number of credits allocated to the at least one client of the one or more clients should be increased or decreased.

2. The memory subsystem of claim 1 , wherein:

the credit controller is operably connected to the one or more clients via respective virtual channels, the virtual channels associated with a respective virtual channel identification (VCID); and

the memory controller is further configured to associate the statistics for each client to the respective VCID.

3. The memory subsystem of claim 1 , wherein:

the memory controller is further configured to transmit the output signal to the credit controller via a side channel.

4. The memory subsystem of claim 1 , wherein the memory controller is further configured to:

define, for each client of the one or more clients, a disparity metric that represents the number of page hits minus the number of conflicts; and

define, for each client of the one or more clients, an occupancy metric that represents the respective number of credits allocated to the client,

wherein the output signal to modulate the respective number of credits allocated to the at least one client of the one or more clients is based on a respective comparison of the occupancy metric to the disparity metric for the one or more clients.

5. The memory subsystem of claim 4 , wherein the disparity metric comprises:

a maximum threshold that represents a maximum value for the disparity metric; and

a default threshold that represents an initial offset value for the disparity metric.

6. The memory subsystem of claim 5 , wherein the disparity metric further comprises a decay factor that causes the disparity metric to regress to the default threshold after a time period without any transaction requests.

7. The memory subsystem of claim 4 , wherein the memory controller determines the occupancy metric based on a number of entries in the buffer used by each client of the one or more clients.

8. The memory subsystem of claim 1 , wherein the one or more RAMs comprise low-power double data rate synchronous dynamic random-access memories (LPDDR SDRAMs).

9. The memory subsystem of claim 1 , wherein the memory controller comprises an application-specific integrated circuit (ASIC) memory controller.

10. The memory subsystem of claim 1 , wherein the SoC is embedded in a user device, a mobile phone, a laptop, a tablet, a portable video game console, or a wearable device.

11. A credit controller, the credit controller configured to:

allocate a respective number of credits to one or more clients of a memory subsystem of a system on chip (SoC), the one or more clients configured to send transaction requests to a memory controller of the memory subsystem for access data in one or more RAMs of the memory subsystem, the memory controller configured to monitor statistics of the transaction requests of the one or more clients, the statistics comprising at least two of a number of page hits in the one or more RAMs, a number of conflicts that require closing a page of the one or more RAMs before another page can be opened, or a respective number of credits allocated to the client;

receive, from the memory controller and based on the statistics monitored by the memory controller, a signal indicating that the respective number of credits allocated to the one or more clients should be increased or decreased; and

dynamically change, based on the signal, the respective number of credits allocated to the one or more clients.

12. The credit controller of claim 11 , wherein:

the credit controller is operably connected to the one or more clients via respective virtual channels, the virtual channels associated with a respective virtual channel identification (VCID); and

the statistics monitored by the memory controller for each client of the one or more clients are associated to the respective VCID.

13. The credit controller of claim 11 , wherein the credit controller receives the signal from the memory controller via a side channel.

14. A method comprising:

receiving, by a memory controller operably connected to a credit controller, transaction requests from one or more clients to access data of one or more random-access memories (RAMs) associated with the memory controller;

storing the transaction requests received from the one or more clients in a buffer of the memory controller;

monitoring, for each client of the one or more clients, statistics of the transaction requests received by the memory controller, the statistics comprising at least two of a number of page hits in the one or more RAMs, a number of conflicts that require closing a page of the one or more RAMs before another page can be opened, or a respective number of credits allocated to the client;

determining, based on the statistics, whether memory throughput would be increased by increasing or decreasing a respective number of credits allocated to at least one client of the one or more clients; and

generating, based on a determination that the memory throughput would be increased, an output signal, the output signal configured to indicate to the credit controller that the respective number of credits allocated to the at least one client of the one or more clients should be increased or decreased.

15. The method of claim 14 , wherein:

the credit controller is operably connected to the one or more clients via respective virtual channels, the virtual channels associated with a respective virtual channel identification (VCID), and the method further comprises:

associating the statistics for each client to the respective VCID of the virtual channel by which the credit controller is operably coupled to the client.

16. The method of claim 14 , further comprising transmitting the output signal to the credit controller via a side channel.

17. The method of claim 14 , further comprising:

defining, for each client of the one or more clients, a disparity metric that represents the number of page hits minus the number of conflicts; and

defining, for each client of the one or more clients, an occupancy metric that represents the respective number of credits allocated to the client,

wherein the output signal useful to modulate the respective number of credits allocated by the credit controller to the at least one client is based on a comparison of the occupancy metric to the disparity metric for the at least one client.

18. The method of claim 17 , wherein the disparity metric comprises at least one of:

a maximum threshold that represents a maximum value for the disparity metric; or

a default threshold that represents an initial offset value for the disparity metric.

19. The method of claim 18 , wherein the disparity metric further comprises a decay factor that causes the disparity metric to regress to the default threshold after a time period without any transaction requests.

20. The method of claim 17 , further comprising determining the occupancy metric based on a number of entries in the buffer used by each client of the one or more clients.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2023
From: PUTTI, NAGARAJ ASHOK; BAGCHI, ABHRA; NAINALA, VYAGRHESWARUDU DURGA; ANANTHANARAYANAN, VENKATESWARAN
To: GOOGLE LLC
Reel/Frame 063446/0264 →
Continuity (1)
Related Publication 20240004551A1 · Jan 4, 2024
References Cited (27)
US 7660247B2 · Beukema et al. · 2010 [cited by applicant]
US 10054451B2 · Xue · 2018 [cited by examiner]
US 20050254519A1 · Beukema et al. · 2005 [cited by applicant]
US 20140289439A1 · Mangano · 2014 [cited by examiner]
US 20150199134A1 · Mondal et al. · 2015 [cited by applicant]
US 20150293709A1 · Quach et al. · 2015 [cited by applicant]
US 20170192921A1 · Wang · 2017 [cited by examiner]
US 20170254650A1 · Xue · 2017 [cited by examiner]
US 20190196720A1 · Shen · 2019 [cited by examiner]
US 20190370073A1 · Behar · 2019 [cited by examiner]
EP 2431884 · 2012 [cited by applicant]
KR 20080026898 · 2008 [cited by applicant]
TW 201439771 · 2014 [cited by applicant]
TW 201539196 · 2015 [cited by applicant]
TW 201812565 · 2018 [cited by applicant]
WO 2016099819 · 2016 [cited by applicant]
WO 2022093165 · 2022 [cited by applicant]
Microsoft, “Computer Dictionary”, 5th Edition, 2002, pp. 326, 419, 437-438 (Year: 2002). [cited by examiner]
JEDEC Solid State Technology Association, “JESD209-2F”, Jun. 2013, pp. 1-284 (Year: 2013). [cited by examiner]
Anonymous, “7 ASIC Integration Benefits”, Feb. 4, 2019, pp. 1-5, https://sigenics.com/blog/7-asic-integration-benefits (Year: 2019). [cited by examiner]
Wikipedia, “LPDDR”, Oct. 11, 2019, pp. 1-10, https://en.wikipedia.org/w/index.php?title=LPDDR&oldid=920709630 (Year: 2019). [cited by examiner]
Anonymous, “Samsung LPDDR3 High-Performance Memory Enables Amazing Mobile Device in 2013, 2014”, Jun. 27, 2012, pp. 1-3, https://brightsideofnews.com/blog/samsung-lpddr3-high-performance-memory-enables-amazing-mobile-de… [cited by examiner]
“Foreign Office Action”, TW Application No. 111139575, Apr. 24, 2023, 8 pages. [cited by applicant]
“International Preliminary Report on Patentability”, Application No. PCT/US2020/057293, May 2, 2023, 11 pages. [cited by applicant]
“International Search Report and Written Opinion”, PCT Application No. PCT/US2020/057293, Aug. 19, 2021, 16 pages. [cited by applicant]
Thyagarajan, et al., “A Performance Architecture Exploration and Analysis Platform for Memory Sub-Systems”, Accessed online at: https://www.design-reuse.com/articles/30944/a-performance-architecture-exploration-and-anal… [cited by applicant]
“Foreign Office Action”, CN Application No. 202080106350.X, Sep. 25, 2024, 13 pages. [cited by applicant]