Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
93 words
A pipelined processor for performing imperative control flow instructions of multiple threads of computation comprising: token storage wherein tokens are stored, each token identifying a next instruction to be processed in a thread of computation; and at least one processing pipeline which successively receives tokens from token storage for processing of the next instruction identified therein, the processing pipeline processing a forking instruction identified by a token to generate two tokens, the tokens identifying respective instructions of different threads that are subsequently applied to the at least one processor pipeline and processed independently.
Claim 2
Dependent Claim
93 words
A pipelined processor for performing imperative control flow instructions of multiple threads of computation comprising: token storage wherein tokens are stored, each token identifying a next instruction to be processed in a thread of computation; and at least one processing pipeline which successively receives tokens from token storage for processing of the next instruction identified therein, the processing pipeline processing a forking instruction identified by a token to generate two tokens, the tokens identifying respective instructions of different threads that are subsequently applied to the at least one processor pipeline and processed independently.
Claim 3
Dependent Claim
32 words
A pipelined processor as recited in claim 1 wherein one of the two tokens generated by the forking instruction is a token of the thread in which the forking instruction is included.
Claim 4
Independent Claim
105 words
A method of performing a forking operation in a pipelined processor that executes imperative control flow instructions comprising the steps of: a) keeping in storage a plurality of tokens, each token identifying a next instruction to be processed in a thread of computation; b) placing a new token from storage into a processing pipeline every clock cycle; c) in the processing pipeline, processing a forking instruction to generate two tokens, the tokens identifying respective instructions of different threads that are subsequently applied to the at least one processor pipeline and processed; d) returning the two tokens into storage for subsequent processing in the processing pipeline.
Claim 5
Independent Claim
105 words
A method of performing a forking operation in a pipelined processor that executes imperative control flow instructions comprising the steps of: a) keeping in storage a plurality of tokens, each token identifying a next instruction to be processed in a thread of computation; b) placing a new token from storage into a processing pipeline every clock cycle; c) in the processing pipeline, processing a forking instruction to generate two tokens, the tokens identifying respective instructions of different threads that are subsequently applied to the at least one processor pipeline and processed; d) returning the two tokens into storage for subsequent processing in the processing pipeline.
Claim 6
Dependent Claim
88 words
A pipelined processor for performing instructions of multiple threads of computation comprising: token storage wherein tokens are stored, each token identifying a next instruction to be processed in a thread of computation and at least one processing pipeline which successively receives tokens from token storage for processing of the next instruction identified therein, the processing pipeline processing a joining instruction identified by tokens to generate only a single token to be stored in the storage in response to a joining instruction executed in each of two separate threads.
Claim 7
Dependent Claim
88 words
A pipelined processor for performing instructions of multiple threads of computation comprising: token storage wherein tokens are stored, each token identifying a next instruction to be processed in a thread of computation and at least one processing pipeline which successively receives tokens from token storage for processing of the next instruction identified therein, the processing pipeline processing a joining instruction identified by tokens to generate only a single token to be stored in the storage in response to a joining instruction executed in each of two separate threads.
Claim 8
Dependent Claim
31 words
A pipelined processor as recited in claim 4 wherein the generated token corresponds to one of the two separate threads in which the last to be executed joining instruction is executed.
Claim 9
Dependent Claim
110 words
In a pipelined data processing system, a method of joining two independently operating threads of computation, comprising the steps of: keeping in storage a plurality of tokens, each token identifying a next instruction to be processed in a thread of computation placing a new token from storage into a processing pipeline every clock cycle; in a processing pipeline, processing a join instruction of a first of two threads by marking a memory location and performing no further computations for the first thread; and in the processing pipeline, processing a join instruction of a second of two threads by reading the marked memory location and continuing processing for the second thread.
Claim 10
Dependent Claim
110 words
In a pipelined data processing system, a method of joining two independently operating threads of computation, comprising the steps of: keeping in storage a plurality of tokens, each token identifying a next instruction to be processed in a thread of computation placing a new token from storage into a processing pipeline every clock cycle; in a processing pipeline, processing a join instruction of a first of two threads by marking a memory location and performing no further computations for the first thread; and in the processing pipeline, processing a join instruction of a second of two threads by reading the marked memory location and continuing processing for the second thread.
Claim 11
Dependent Claim
171 words
In a data processing system, a method for one processing element to deliver a value to and initiate a thread in another processing element using a start instruction comprising the steps of: keeping in storage a plurality of tokens, each token identifying a next instruction to be processed in a thread of computation: placing a new token from storage into a processing pipeline every clock cycle: in a start instruction identified by a token and processed in the processing pipeline, specifying memory locations containing a data value, a token descriptor in the other processing element and the address of a location in the other processing element; as an output of the processing pipeline sending a start message to the other processing element, the message containing the data value, the token descriptor and the location address; and receiving the start message at the other processing element where the data value is stored at the designated location, and the token is supplied as an input to another processing pipeline to initiate a thread.
Claim 12
Dependent Claim
171 words
In a data processing system, a method for one processing element to deliver a value to and initiate a thread in another processing element using a start instruction comprising the steps of: keeping in storage a plurality of tokens, each token identifying a next instruction to be processed in a thread of computation: placing a new token from storage into a processing pipeline every clock cycle: in a start instruction identified by a token and processed in the processing pipeline, specifying memory locations containing a data value, a token descriptor in the other processing element and the address of a location in the other processing element; as an output of the processing pipeline sending a start message to the other processing element, the message containing the data value, the token descriptor and the location address; and receiving the start message at the other processing element where the data value is stored at the designated location, and the token is supplied as an input to another processing pipeline to initiate a thread.
Claim 13
Dependent Claim
125 words
A pipelined processor for performing imperative control flow instructions of multiple threads of computation comprising: token storage wherein tokens are stored, each token identifying a next instruction to be processed in a thread of computation; and at least one processing pipeline which successively receives tokens from token storage for processing the next instruction identified therein; the processing pipeline processing a forking instruction from a token to generate two tokens, the tokens identifying respective instructions of different threads that are subsequently applied to the at least one processor pipeline and processed; and the processing pipeline processing a joining instruction from a token to generate only a single token to be stored in storage in response to a joining instruction executed in each of two separate threads.
Claim 14
Dependent Claim
125 words
A pipelined processor for performing imperative control flow instructions of multiple threads of computation comprising: token storage wherein tokens are stored, each token identifying a next instruction to be processed in a thread of computation; and at least one processing pipeline which successively receives tokens from token storage for processing the next instruction identified therein; the processing pipeline processing a forking instruction from a token to generate two tokens, the tokens identifying respective instructions of different threads that are subsequently applied to the at least one processor pipeline and processed; and the processing pipeline processing a joining instruction from a token to generate only a single token to be stored in storage in response to a joining instruction executed in each of two separate threads.