# US 7,080,217 B2 · Cycle type based throttling

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,080,217 B2
- Document ID: US7080217B2
- Status: Granted
- Kind: B2
- Application number: 10/404,773
- Filed: 2003-03-31
- Published: 2004-09-30
- Granted: 2006-07-18
- Earliest claimed: 2003-03-31
- Assignees: Intel Corporation
- Inventors: Suryaprasad Kareenhalli; Zohar B. Bogin; Gautam Loonawat
- Web page: https://patentgrep.com/patent/US7080217B2

## CPC

- G06F 1/324: by lowering clock frequency
- G06F 1/3203: Power management, i.e. event-based initiation of a power-saving mode
- G06F 1/3275: {Power saving in memory, e.g. RAM, cache}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Machine-readable media, methods, and apparatus are described to monitor and throttle issuance of transactions. In some embodiments, transactions are monitored during a monitoring window based upon cycle type. In response to determining that a threshold has been exceeded during the monitoring window, issuance of transactions during a throttling window are limited to a budget. Further, transactions issued during the throttling window consume a portion of the budget that based upon their cycle type.

## Claims

### Claim 1

A method comprising
updating a first value based upon cycle types of transactions during a monitoring window;
entering a throttling window in response to the first value and a threshold having a predetermined relationship, and
limiting transactions based upon a budget during the throttling window,
wherein updating the first value based upon cycle types comprises updating the first value based upon whether each transaction during the monitoring window is a page hit, a page empty, or a page miss.

### Claim 2 (depends on 1)

The method of claim 1 further comprising determining whether the first value and the threshold have the predetermined relationship after the monitoring window has expired.

### Claim 3 (depends on 1)

The method of claim 1, wherein limiting comprises updating a second value based upon cycle types of transactions during the throttling window.

### Claim 4 (depends on 1)

The method of claim 1 wherein updating the first value based upon cycle types comprises updating the first value based upon whether each transaction during the monitoring window is a read page hit, a read page empty, a read page miss, a write page hit, a write page empty, or a write page miss.

### Claim 5 (depends on 4)

The method of claim 4 wherein updating the first value is further based upon cycle length.

### Claim 6 (depends on 5)

The method of claim 5 further comprising
programming an update value for each cycle type and cycle length combination, and
updating the first value by the appropriate update value for each transaction during the monitoring window.

### Claim 7

An apparatus comprising
a buffer to store transactions,
an interface to service transactions of the buffer,
an arbiter to select transactions from the buffer for the interface to service, and
throttling logic to monitor thermal characteristics during a monitoring window based upon cycle types of transactions serviced by the interface during the monitoring time and to limit transactions serviced by the interface during a throttling window,
wherein each of the cycle types of transactions comprise a read page hit, a read page empty, a read page miss, a write page hit, a write page empty, or a write page miss.

### Claim 8 (depends on 7)

The apparatus of claim 7 wherein the throttling logic updates a count during the monitoring window based upon cycle types of transactions serviced by the interface.

### Claim 9 (depends on 8)

The apparatus of claim 8 wherein the throttling logic transitions to the throttling window in response to the count and a threshold having a predetermined relationship.

### Claim 10 (depends on 8)

The apparatus of claim 8 wherein the throttling logic transitions to the throttling window after the monitoring window in response to determining that the count achieved during the monitoring window has a predetermined relationship to a threshold.

### Claim 11 (depends on 7)

The apparatus of claim 7 wherein the throttling logic prevents the interface from issuing further transactions during a throttling window of the throttling window in response to exhausting a budget assigned to the throttling window.

### Claim 12 (depends on 11)

The apparatus of claim 11 wherein the throttling logic updates a count during the throttling window based upon cycle types of transactions issued by the interface and determines that the budget has been exhausted in response to the count and the budget having a predetermined relationship.

### Claim 13 (depends on 12)

The apparatus of claim 12 wherein the throttling logic updates the count based upon programmable values assigned to cycle types.

### Claim 14 (depends on 12)

The apparatus of claim 12 wherein the throttling logic further updates upon programmable values assigned to cycle type and cycle length combinations.

### Claim 15

A system comprising
a processor to issue read and write memory transactions,
volatile memory to retrieve data for read memory transactions and to store data for write memory transactions, and
a memory controller to receive the read and write memory transactions issued by the processor, to monitor issuance of the read and write memory transactions to the volatile memory based upon cycle types of the read and write memory transactions, and to throttle issuance of the read and write memory transactions in response to determining a threshold was exceeded,
wherein the memory controller updates a threshold count based upon each issued read and write transaction during the monitoring window based upon whether each issued read and write transaction is a page miss, a page empty, or a page hit.

### Claim 16 (depends on 15)

The system of claim 15 wherein the memory controller further updates a threshold count during a monitoring window based upon cycle types of the read and write memory transactions, and enters a throttling window in response to determining that the threshold count and a threshold have a predetermined relationship.

### Claim 17 (depends on 15)

The system of claim 15 wherein the memory controller further updates a budget count during the threshold window based upon cycle types of the read and write memory transactions issued to the volatile memory, and prevents further issuance of read and write memory transactions to the volatile memory in response to determining that the budget count and a programmable budget have a predetermined relationship.

### Claim 18 (depends on 15)

The system of claim 15 wherein the memory controller further monitors issuance of the read and write transactions to the volatile memory based upon cycle length.

### Claim 19

A machine-readable medium comprising a plurality of instructions that in response to being executed result in a computing device
determining based upon cycle types of transactions issued during a monitoring window whether to enter a throttling window, and
limiting issuance of transactions during the throttling window based upon a budget and cycle types of the transactions,
wherein each of the cycle types of transactions comprise a read page hit, a read page empty, a read page miss, a write page hit, a write page empty, or a write page miss.

### Claim 20 (depends on 19)

The machine-readable medium of claim 19 wherein the plurality of instructions further result in the computing device
updating a threshold count during the monitoring window based values assigned to the cycle types of the transactions issued during the monitoring window, and
determining based upon the threshold count whether to enter the throttling window.

### Claim 21 (depends on 19)

The machine-readable medium of claim 19 wherein the plurality of instructions further result in the computing device
updating a budget count during the throttling window based upon the values assigned to the cycle types of the transactions issued during the throttling window, and
determining whether to prevent further issuance of transactions during the throttling window based upon the budget count.
