Techniques for reducing the rate of instruction issuance
First Claim
1. A method in a computer for reducing the rate at which a program executes instructions by determining when the rate of execution should be reduced, and when it is determined that the rate of execution should be reduced executing an instruction to access data in memory, the data pointed to by a chain of forwarding words, so that subsequent instructions are not executed until a memory subsystem resolves the chain of forwarding words.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system in a multithreaded processor for processing events without interrupt notifications. In one aspect of the present invention, an operating system creates a thread to execute on a stream of the processor. During execution of the thread, the thread executes a loop that determines whether an event has occurred and, in response to determining whether an event has occurred, assigns a different thread to process the event so that multiple events can be processed in parallel and so that interrupts are not needed to signal that the event has occurred. Another aspect of the present invention provides a method and system for processing asynchronously occurring events without interrupt notifications. To achieve this processing, a first thread is executed to generate a notification that the event has occurred upon receipt of the asynchronously occurring event. A second thread is also executed that loops determining whether a notification has been generated and, in response to determining that a notification has been generated, performing the processing necessary for the event.
58 Citations
49 Claims
- 1. A method in a computer for reducing the rate at which a program executes instructions by determining when the rate of execution should be reduced, and when it is determined that the rate of execution should be reduced executing an instruction to access data in memory, the data pointed to by a chain of forwarding words, so that subsequent instructions are not executed until a memory subsystem resolves the chain of forwarding words.
- 9. A method in a computer system for reducing the rate at which a program executes instructions by determining when the rate of execution should be reduced, and when it is determined that the rate of execution should be reduced executing an operation to perform a synchronized access to a word of memory that will eventually fail so that the issuing of new instructions is deferred until after receiving notification of the failure.
-
13. A method in a computer system for decreasing a rate of issuing instructions of a program, the computer system supporting simultaneous execution of more than one program, each program having instructions, the method comprising:
-
determining when the rate of execution should be decreased; when it is determined that the rate of execution should be decreased, issuing an instruction of the program whose rate of issued instructions is to be decreased, the instruction for accessing memory of the computer system wherein the accessing is for decreasing the rate of issued instructions for the program; while the memory is being accessed during execution of the issued instruction of the program, issuing an instruction of an other program; and when the access to the memory is complete, issuing another instruction of the program wherein the instruction for accessing memory accesses a chain of forwarding words so that access to memory is not complete until resolution of the chain of forwarding words. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method in a computer system for decreasing a rate of issuing instructions of a program, the computer system supporting simultaneous execution of more than one program, each program having instructions, the method comprising:
-
determining when the rate of execution should be decreased; when it is determined that the rate of execution should be decreased, issuing an instruction of the program whose rate of issued instructions is to be decreased, the instruction for accessing memory of the computer system wherein the accessing is for decreasing the rate of issued instructions for the program; while the memory is being accessed during execution of the issued instruction of the program, issuing an instruction of an other program; and when the access to the memory is complete, issuing another instruction of the program wherein the instruction is for synchronized access to a word of memory and the access to memory is not complete until the synchronized access is determined to have failed. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. A computer system for decreasing a rate of issuing instructions of a program, the computer system supporting simultaneous execution of more than one program, comprising:
-
means for determining when the rate of execution should be decreased; means for issuing an instruction of the program whose rate of issued instructions is to be decreased, the instruction including a memory operation so that another program can have its instructions issued at an increased rate during execution of the memory operation; and means for issuing instructions of another program while memory is being accessed during execution of the issued instruction of the program wherein the memory operation accesses a chain of forwarding words so that access to memory is not complete until resolution of the chain of forwarding words. - View Dependent Claims (25, 26, 27)
-
-
28. A computer system for decreasing a rate of issuing instructions of a program, the computer system supporting simultaneous execution of more than one program, comprising:
-
means for determining when the rate of execution should be decreased; means for issuing an instruction of the program whose rate of issued instructions is to be decreased, the instruction including a memory operation so that another program can have its instructions issued at an increased rate during execution of the memory operation; and means for issuing instructions of another program while memory is being accessed during execution of the issued instruction of the program wherein the memory operation is for synchronized access to a word of memory and the access to memory is not complete until the synchronized access is determined to have failed. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. A computer-readable medium containing instructions for controlling a computer system to decrease a rate of issuing instructions of a program, by a method comprising:
-
determining when the rate of execution should be decreased; when it is determined that the rate of execution should be decreased, issuing an instruction of the program whose rate of issued instructions is to be decreased, the instruction for accessing memory of the computer system wherein the accessing is for the purpose of decreasing the rate of issued instructions for the program; and while the memory is being accessed during execution of the issued instruction of the program, issuing instructions for other programs to effect increasing the rate of issuing instructions of those other program wherein the instruction for accessing memory accesses a chain of forwarding words so that access to memory is not complete until resolution of the chain of forwarding words. - View Dependent Claims (35, 36, 37)
-
-
38. A computer-readable medium containing instructions for controlling a computer system to decrease a rate of issuing instructions of a program, by a method comprising:
-
determining when the rate of execution should be decreased; when it is determined that the rate of execution should be decreased, issuing an instruction of the program whose rate of issued instructions is to be decreased, the instruction for accessing memory of the computer system wherein the accessing is for the purpose of decreasing the rate of issued instructions for the program; and while the memory is being accessed during execution of the issued instruction of the program, issuing instructions for other programs to effect increasing the rate of issuing instructions of those other program wherein the instruction is for synchronized access to a word of memory and the access to memory is not complete until the synchronized access is determined to have failed. - View Dependent Claims (39, 40, 41, 42, 43)
-
-
44. A method in a computing system for implementing an interrupt-free operating system comprising:
-
checking for an occurrence of an event; determining that the event will not occur frequently relative to the time it takes to process the event and that the rate of issuing instructions should be reduced; when the determination is made, executing an instruction for accessing memory that will reduce the rate of issuing instructions; and after executing the instruction, checking for the occurrence of the event wherein the instruction for accessing memory accesses a chain of forwarding words so that access to memory is not complete until resolution of the chain of forwarding words. - View Dependent Claims (45)
-
-
46. A method in a computing system for implementing an interrupt-free operating system comprising:
-
checking for an occurrence of an event; determining that the event will not occur frequently relative to the time it takes to process the event and that the rate of issuing instructions should be reduced; when the determination is made, executing an instruction for accessing memory that will reduce the rate of issuing instructions; and after executing the instruction, checking for the occurrence of the event wherein the instruction is for synchronized access to a word of memory and the access to memory does not complete until the synchronized access is determined to have failed. - View Dependent Claims (47, 48, 49)
-
Specification