IP Library Granted Patent US 7,430,737
Granted Patent B2
US 7,430,737 · App. 10/727,477 · Granted Sep 30, 2008

Processor and method for supporting compiler directed multithreading management

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,430,737
App. No.
10/727,477
Granted
Sep 30, 2008
Kind
B2
Abstract

In one embodiment, a processor includes an execution unit configured to execute one or more threads and a detection unit coupled to detect whether a given thread includes an identifier. The execution unit is further configured to selectively continue execution of the given thread depending upon whether the detection unit detects the identifier.

Claims (47)

1. A processor comprising:

an execution unit configured to execute one or more threads; and

a detection unit coupled to the execution unit and configured to detect whether a given thread includes a specific identifier;

wherein said execution unit is further configured to selectively continue execution of said given thread depending upon whether said detection unit detects said specific identifier;

wherein said execution unit is configured to suspend execution of said given thread and to execute a different thread in response to receiving a global execution parameter;

wherein in response to said detection unit detecting said specific identifier, said execution unit is configured to override said global execution parameter and to continue execution of said given thread; and

a priority designation unit coupled to said detection unit and configured to assign a priority level to said given thread depending upon an execution environment in response to said detection unit detecting said specific identifier.

2. The processor of claim 1 , wherein in response to said detection unit detecting a different identifier, said execution unit is configured to suspend execution of said given thread and to execute a different thread.

3. The processor of claim 2 , wherein in response to said detection unit detecting that said given thread does not include said different identifier, said executing unit is configured to continue execution of said given thread.

4. The processor of claim 1 , wherein in response to said given thread having a priority level lower than said different thread, said execution unit is configured to suspend execution of said given thread and to execute said different thread with a higher priority level.

5. The processor of claim 4 , wherein in response to said given thread having a priority level the same as or higher than said different thread, said execution unit is configured to continue execution of said given thread.

6. The processor of claim 1 , wherein said specific identifier is a unique instruction.

7. The processor of claim 1 , wherein said specific identifier is a flag including one or more unused bits of any instruction of said given thread.

8. The processor of claim 1 , wherein said specific identifier is information associated with any instruction of said given thread.

9. A method comprising:

executing one or more threads;

detecting whether a given thread includes a specific identifier;

selectively continuing execution of said given thread depending upon whether said specific identifier is detected;

suspending execution of said given thread and executing a different thread in response to receiving a global execution parameter;

overriding said global execution parameter and continuing execution of said given thread in response to detecting said specific identifier; and

assigning a priority level to said given thread depending upon an execution environment in response to detecting said specific identifier.

10. The method of claim 9 , wherein in response to detecting a different identifier, suspending execution of said given thread and executing a different thread.

11. The method of claim 10 , wherein in response to detecting that said given thread does not include said different identifier, continuing execution of said given thread.

12. A method of generating low-level instructions executable by a processor, said method comprising:

providing a computer program including high-level programming instructions;

detecting whether an indicator is included within said computer program; and

in response to detecting said indicator, generating a low-level instruction having a specific identifier corresponding to said indicator, wherein said low-level identifier is configured to cause said processor to selectively continue execution of a given thread by:

suspending execution of said given thread and executing a different thread in response to receiving a global execution parameter;

overriding said global execution parameter and continuing execution of said given thread in response to detecting said specific identifier; and

assigning a priority level to said given thread depending upon an execution environment in response to detecting said specific identifier.

13. The method of claim 12 , wherein said indicator is a compiler directive.

14. The method of claim 12 , wherein said indicator is an assembly language subroutine.

15. The method of claim 12 , wherein said indicator is a unique high-level instruction.

16. A machine-readable medium comprising program instructions, wherein said program instructions are executable by a processor to:

execute one or more threads;

detect whether a given thread includes a specific identifier;

selectively continue execution of said given thread depending upon whether said identifier is detected;

suspend execution of said given thread and executing a different thread in response to receiving a global execution parameter;

override said global execution parameter and continuing execution of said given thread in response to detecting said specific identifier; and

assign a priority level to said given thread depending upon an execution environment in response to detecting said specific identifier.

17. A processor comprising:

means for executing one or more threads;

means for detecting whether a given thread includes a specific identifier;

means for selectively continuing execution of said given thread depending upon whether said specific identifier is detected;

means for suspending execution of said given thread and executing a different thread in response to receiving a global execution parameter;

means for overriding said global execution parameter and continuing execution of said given thread in response to detecting said specific identifier; and

means for assigning a priority level to said given thread depending upon an execution environment in response to detecting said specific identifier.

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 037303/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2003
From: WELBON, EDWARD HUGH; GALLEGOS, JOSE MARIO
To: SUN MICROSYSTEMS, INC.
Reel/Frame 014778/0528 →