IP Library Granted Patent US 7,818,747
Granted Patent B1
US 7,818,747 · App. 11/265,814 · Granted Oct 19, 2010

Cache-aware scheduling for a chip multithreading processor

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 7,818,747
App. No.
11/265,814
Granted
Oct 19, 2010
Kind
B1
Abstract

A chip multithreading processor schedules and assigns threads to its processing cores dependent on estimated miss rates in a shared cache memory of the threads. A cache miss rate of a thread is estimated by measuring cache miss rates of one or more groups of executing threads, where at least one of the groups includes the thread of interest. Using a determined estimated cache miss rate of the thread, the thread is scheduled with other threads to achieve a relatively low cache miss rate in the shared cache memory.

Claims (37)

1. A method of performing computer system operations, comprising:

concurrently executing a first thread and a second thread, wherein the second thread comprises a known shared cache miss rate;

measuring a combined shared cache miss rate of the first thread and the second thread;

calculating a shared cache miss rate of the first thread based on the combined shared cache miss rate and the known shared cache miss rate;

identifying, in a chip multithreading processor, a plurality of hardware contexts comprising a plurality of maximum shared cache miss rates, wherein the plurality of hardware contexts is located on a single processing core;

identifying a minimum shared cache miss rate from the plurality of maximum shared cache miss rates, wherein each of the plurality of maximum shared cache miss rates exceeds the shared cache miss rate of the first thread;

selecting a hardware context of the plurality of hardware contexts corresponding to the minimum shared cache miss rate; and

assigning the first thread to the hardware context.

2. The method of claim 1 , further comprising:

calculating, prior to identifying the minimum shared cache miss rate, a projected shared cache miss rate by averaging at least the plurality of maximum shared cache miss rates; and

decreasing, in response to the projected shared cache miss rate exceeding a threshold shared cache miss rate, a maximum shared cache miss rate of the plurality of maximum shared cache miss rates.

3. A computer-readable storage medium storing a plurality of instructions for performing computer operations, the plurality of instructions comprising functionality to:

concurrently execute a first thread and a second thread, wherein the second thread comprises a known shared cache miss rate;

measure a combined shared cache miss rate of the first thread and the second thread;

calculate a shared cache miss rate of the first thread based on the combined shared cache miss rate and the known shared cache miss rate;

identify, in a chip multithreading processor, a plurality of hardware contexts comprising a plurality of maximum shared cache miss rates, wherein the plurality of hardware contexts is located on a single processing core;

identify a minimum shared cache miss rate of the plurality of maximum shared cache miss rates, wherein each of the plurality of maximum shared cache miss rates exceeds the shared cache miss rate of the first thread;

select a hardware context of the plurality of hardware contexts corresponding to the minimum shared cache miss rate; and

assign the first thread to the hardware context.

4. The computer-readable storage medium of claim 3 , wherein the plurality of instructions further comprise functionality to:

calculate, prior to identifying the minimum shared cache miss rate, a projected shared cache miss rate by averaging at least the plurality of maximum shared cache miss rates; and

decrease, in response to the projected shared cache miss rate exceeding a threshold shared cache miss rate, a maximum shared cache miss rate of the plurality of maximum shared cache miss rates.

5. A computer system, comprising:

a chip multithreading processor comprising a plurality of processing cores having a plurality of hardware contexts;

a cache memory shared by the plurality of processing cores; and

a memory comprising a plurality of instructions for performing computer operations, the plurality of instructions comprising functionality to:

concurrently execute a first thread and a second thread, wherein the second thread comprises a known shared cache miss rate,

measure a combined shared cache miss rate of the first thread and the second thread,

calculate a shared cache miss rate of the first thread based on the combined shared cache miss rate and the known shared cache miss rate,

identify a plurality of maximum shared cache miss rates corresponding to the plurality of hardware contexts, wherein the plurality of hardware contexts is located on a single processing core,

identify a minimum shared cache miss rate of the plurality of maximum shared cache miss rates, wherein each of the plurality of maximum shared cache miss rates exceeds the shared cache miss rate of the first thread,

select a hardware context of the plurality of hardware contexts corresponding to the minimum shared cache miss rate, and

assign the first thread to the hardware context.

6. The computer system of claim 5 , wherein the cache memory is a level two cache memory.

7. The system of claim 5 , wherein the plurality of instructions further comprise functionality to:

calculate, prior to identifying the minimum shared cache miss rate, a projected shared cache miss rate by averaging at least the plurality of maximum shared cache miss rates; and

decrease, in response to the projected shared cache miss rate exceeding a threshold shared cache miss rate, a maximum shared cache miss rate of the plurality of maximum shared cache miss rates.

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 037306/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2005
From: FEDOROVA, ALEXANDRA; SMALL, CHRISTOPHER A.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017191/0899 →