IP Library Granted Patent US 7,337,303
Granted Patent B2
US 7,337,303 · App. 11/524,822 · Granted Feb 26, 2008

Thread instruction issue pool counter decremented upon execution and incremented at desired issue rate

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 7,337,303
App. No.
11/524,822
Granted
Feb 26, 2008
Kind
B2
Abstract

A method and apparatus for controlling issue rate of instructions for an instruction thread to be executed by a processor is provided. The rate at which instructions are to be executed for an instruction thread are stored and requests are issued to cause instructions to execute in response to the stored rate. The rate at which instruction requests are issued is reduced in response to instruction executions and is increased in the absence of instruction executions. In a multi-threaded processor, instruction rate is controlled by storing the average rate at which each thread should execute instructions. A value representative of the number of instructions available and not yet issued is monitored and is decreased in response to instruction executions. Execution of instructions is prevented on a thread if the number of instructions available but not yet issued falls below a defined value. A ranking order is assigned to a plurality of instructions threads for execution on a multi-threaded processor. A plurality of metrics related to the threads and required for establishment of the rank order are provided. Each metric is assigned to a set of bits and these are assembled in a composite metric being assigned to the most significant bits and the least important metric being assigned to the least significant bits. A ranking order is then assigned to the composite metrics in dependence on their values.

Claims (28)

1. A method adjusting a value representative of not yet issued instructions for threads executing on a multithreaded processor comprising the steps of:

storing an average rate at which each thread is intended to issue instructions;

monitoring the value representative of the number of instructions not yet issued for a thread;

increasing the value representative of the number of instructions not yet issued at a rate dependent upon the stored average rate for each thread; and

decreasing the value representative of the number of instructions not yet issued for a thread each time an instruction is issued on the thread.

2. A method according to claim 1 including the step of accumulating the value representative of the number of instructions not yet issued for a thread in a pool count accumulator.

3. A method according to claim 2 including the step of setting a maximum value on the number of instructions that can be accumulated for a thread.

4. A method according to claim 2 in which a thread which builds up an accumulation of instructions not yet issued may be allocated a burst of execution time in which the instructions execute at a higher rate, the burst being bounded by the accumulated value.

5. Apparatus for adjusting a value representative of the number of instructions available but not yet issued for threads executing on a multithreaded processor comprising:

means for storing an average rate at which each thread is intended to issue instructions;

means for monitoring the value representative of the number of instructions available but not yet issued for a thread;

means for increasing the value representative of the number of instructions available but not yet issued at a rate dependent upon the stored average rate for each thread;

means for decreasing the value representative of the number of instructions available but not yet issued for a thread each time an instruction is issued on the thread; and

means for preventing issuance of instructions on a thread if the number of instructions available but not yet issued falls below a defined value.

6. Apparatus according to claim 5 including means for accumulating the average rate at which each thread is intended to issue instructions into the value representative of the number of instructions available but not yet issued for a thread in a pool count accumulator.

7. Apparatus according to claim 6 including means for setting a maximum value for the value representative of the number of instructions available but not yet issued for a thread.

8. Apparatus according to claim 6 in which a thread which builds up an accumulation of instructions available but not yet issued may be allocated a burst of execution time in which instructions execute at a rate higher than the average rate, the burst being bounded by the value of the number of instructions available but not yet issued.

9. A method for adjusting a value representative of not yet issued instructions for threads executing on a multi-threaded processor, comprising the steps of:

storing an average instruction issue rate for a thread in an average rate register when a program for executing on a thread is started;

monitoring a value in a pool count accumulator that represents the number of instructions not yet issued that a thread may require to complete its tasks;

incrementing the value of the number of instructions not yet issued in the pool count accumulator that a thread may require to complete its tasks based on the stored average instruction issue rate;

decrementing the value in the pool count accumulator each time an instruction is issued to the thread;

limiting the value in the pool count accumulator to a maximum number of instructions to be executed, the maximum number defining the number of instructions that a thread may build up to be executed later at a higher rate, wherein the limit on the value allows the duration of processor overload to be bound; and

executing the number of instructions built up in the pool count accumulator at a higher rate defined by a burst rate register than the average instruction issue rate.

10. The method according to claim 9 , wherein the pool count accumulator influences thread execution independently from a delay count accumulator.

11. The method according to claim 9 , wherein the pool count accumulator keeps track of the average processor load and limits the duration of processor overloads to ensure that no one thread can take over the processor.

12. The method according to claim 9 , wherein the average instruction issue rate is defined as AN=average issue rate*KR/processor clock rate.

13. The method according to claim 9 , including the step of setting a pool filled trigger when the pool count accumulator value equals a maximum value.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2018
From: MIPS TECH LIMITED
To: MIPS TECH, LLC
Reel/Frame 045348/0973 →
CHANGE OF NAME Recorded Mar 22, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 045314/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 045275/0491 →
CHANGE OF NAME Recorded Jan 26, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 045168/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 044712/0386 →