IP Library Granted Patent US 8,195,903
Granted Patent B2
US 8,195,903 · App. 11/477,733 · Granted Jun 5, 2012

System and method for metering requests to memory

Assignee: Oracle America, Inc.
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 8,195,903
App. No.
11/477,733
Granted
Jun 5, 2012
Kind
B2
Abstract

A memory controller including a control unit for limiting the number of memory requests that are executed within a predetermined time period to regulate power consumption. The control unit may determine a memory request limit indicating the maximum number of memory requests that are allowed to be executed during the predetermined time period based on at least a carry-over limit and a new request limit. The carry-over limit may indicate the maximum number of carry-over memory requests that are allowed during the predetermined time period. The new request limit may indicate the maximum number of new memory requests that are allowed during the predetermined time period. The control unit may further control the number of memory requests that are executed in each of a sequence of predetermined time periods.

Claims (32)

1. A memory controller comprising:

a memory interface configured to couple to a memory; and

a control unit coupled to the memory interface, wherein the control unit is configured to store a first parameter indicating a maximum number of carry-over memory requests that are allowed to be executed during a predetermined time period, and a second parameter indicating a maximum number of new memory requests that are allowed to be executed during the predetermined time period;

wherein the control unit is further configured to determine a memory request limit indicating a maximum number of memory requests that are allowed to be executed during the predetermined time period based on at least the first parameter and the second parameter;

wherein the control unit is configured to determine the memory request limit for the predetermined time period based on the first parameter, the second parameter, and an updated memory request limit from a previous predetermined time period indicating the number of memory requests that are available to be carried over from the previous predetermined time period; and

wherein the memory request limit for the predetermined time period is equal to the minimum of the updated memory request limit from the previous predetermined time period and the first parameter, plus the second parameter.

2. The memory controller of claim 1 , wherein, if the predetermined time period is the first time period of a sequence of predetermined time periods for executing memory requests, the memory request limit for the predetermined time period is equal to the second parameter.

3. The memory controller of claim 1 , wherein control unit is configured to decrement the memory request limit for each memory request that is executed during the predetermined time period to update the memory request limit during the predetermined time period.

4. The memory controller of claim 3 , wherein, after executing each memory request and decrementing the memory request limit to update the memory request limit, the control unit is configured to determine whether the updated memory request limit is equal to zero.

5. The memory controller of claim 4 , wherein, if the updated memory request limit is equal to zero, the control unit is configured to prevent additional memory requests from executing during the predetermined time period.

6. The memory controller of claim 4 , wherein, if the updated memory request limit is greater than zero, the control unit is configured to allow execution of at least one additional memory request.

7. The memory controller of claim 1 , wherein, after executing each memory request, the control unit is configured to determine whether the predetermined time period has elapsed.

8. The memory controller of claim 1 , wherein the control unit is configured to limit the number of memory requests that are executed within each of a sequence of predetermined time periods, wherein, after a predetermined time period of the sequence of predetermined time periods elapses, the control unit is configured to determine a new memory request limit for a subsequent predetermined time period of the sequence of predetermined time periods.

9. The memory controller of claim 1 , wherein the control unit is configured to limit the number of memory requests that are executed within each of a sequence of predetermined time periods to regulate peak and average power consumption.

10. A system comprising:

a memory; and

a control unit coupled to the memory and configured to limit the number of memory requests that are executed within a predetermined time period to regulate power consumption;

wherein the control unit is configured to determine a memory request limit indicating a maximum number of memory requests that are allowed to be executed during the predetermined time period based on at least a first parameter indicating a maximum number of carry-over memory requests that are allowed to be executed during the predetermined time period and a second parameter indicating a maximum number of new memory requests that are allowed to be executed during the predetermined time period;

wherein the memory request limit for the predetermined time period is equal to the minimum of an updated memory request limit from a previous predetermined time period and the first parameter, plus the second parameter.

11. The system of claim 10 , wherein control unit is configured to decrement the memory request limit for each memory request that is executed during the predetermined time period to update the memory request limit during the predetermined time period.

12. A method for limiting the number of memory requests that are executed within a predetermined time period, the method comprising:

storing a first parameter indicating a maximum number of carry-over memory requests that are allowed to be executed during the predetermined time period;

storing a second parameter indicating a maximum number of new memory requests that are allowed to be executed during the predetermined time period; and

determining a memory request limit indicating a maximum number of memory requests that are allowed to be executed during the predetermined time period based on at least the first parameter and the second parameter, wherein said determining the memory request limit for the predetermined time period includes:

determining the minimum of an updated memory request limit from a previous predetermined time period and the first parameter; and

summing the minimum and the second parameter to generate the memory request limit for the predetermined time period.

13. The method of claim 12 , wherein, if the predetermined time period is the first time period of a sequence of predetermined time periods for executing memory requests, the memory request limit for the predetermined time period is equal to the second parameter.

14. The method of claim 12 , further comprising decrementing the memory request limit for each memory request that is executed during the predetermined time period to update the memory request limit during the predetermined time period.

15. The method of claim 14 , further comprising, after executing each memory request and decrementing the memory request limit to update the memory request limit, determining whether the updated memory request limit is equal to zero.

16. The method of claim 15 , further comprising:

if the updated memory request limit is equal to zero, preventing additional memory requests from executing during the predetermined time period; and

if the updated memory request limit is greater than zero, allowing execution of at least one additional memory request.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0171 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2006
From: LAUDON, JAMES P.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018069/0865 →
Continuity (1)
Related Publication 20080005511A1 · Jan 3, 2008