Multi-thread execution method and parallel processor system
First Claim
1. A multi-thread execution method in a parallel processor system, said parallel processor system including a plurality of thread execution units and a main memory, each thread execution unit of said plurality of thread execution units having a processor for executing threads, said parallel processor system allowing for execution of a plurality of threads of a program in parallel to each other by using the plurality of thread execution units, said multi-thread execution method comprising:
- executing, by a first thread execution unit of said plurality of thread execution units, a first thread of said plurality of threads, said first thread including a fork instruction to fork a second thread of said plurality of threads;
forking by said first thread execution unit, said second thread to a second thread execution unit of said plurality of thread execution units when said first thread execution unit executes said fork instruction; and
merging said first thread of the first thread execution unit, which thread is terminated and yet to be settled, into said second thread of said second thread execution unit to allow for forking of a new thread of said plurality of threads to said first thread execution unit.
1 Assignment
0 Petitions
Accused Products
Abstract
In a parallel processor system for executing a plurality of threads in parallel to each other by a plurality of thread execution units, the respective thread execution units allow for forking of a slave thread from an individual thread execution unit into another arbitrary thread execution unit. The respective thread execution units are managed in three states, a free state where fork is possible, a busy state where a thread is being executed, and a term state where a thread being terminated and yet to be settled exists. At the time of forking of a new thread, when there exists no thread execution unit at the free state, a thread that the thread execution unit at the term state has is merged into its immediately succeeding slave thread to bring the thread execution unit in question to the free state and conduct forking of a new thread.
56 Citations
16 Claims
-
1. A multi-thread execution method in a parallel processor system, said parallel processor system including a plurality of thread execution units and a main memory, each thread execution unit of said plurality of thread execution units having a processor for executing threads, said parallel processor system allowing for execution of a plurality of threads of a program in parallel to each other by using the plurality of thread execution units, said multi-thread execution method comprising:
-
executing, by a first thread execution unit of said plurality of thread execution units, a first thread of said plurality of threads, said first thread including a fork instruction to fork a second thread of said plurality of threads; forking by said first thread execution unit, said second thread to a second thread execution unit of said plurality of thread execution units when said first thread execution unit executes said fork instruction; and merging said first thread of the first thread execution unit, which thread is terminated and yet to be settled, into said second thread of said second thread execution unit to allow for forking of a new thread of said plurality of threads to said first thread execution unit. - View Dependent Claims (2, 3, 4)
-
-
5. A multi-thread execution method in a parallel processor system, said parallel processor system including a plurality of thread execution units, each thread execution unit of said plurality of thread execution units having a processor for executing threads, said parallel processor system allowing for execution of a plurality of threads of a program in parallel to each other by using the plurality of thread execution units, said multi-thread execution method comprising;
-
managing each respective thread execution unit of the plurality of thread execution units as being in one of three states, said three states including (i) a free state where a fork to said thread execution unit is possible, (ii) a busy state where a thread of said plurality of threads is being executed by said thread execution unit, and (iii) a term state where a particular thread of said plurality of threads that is terminated and yet to be settled exists; and merging, at a time of forking of a new thread of said plurality of threads when there exists no thread execution unit of said plurality of thread execution units at the free state, a specific thread of a specific thread execution unit at the term state into an immediately succeeding slave thread of the specific thread, said slave thread being executed on another thread execution unit of said plurality of thread execution units, whereby the specific thread execution unit is brought to the free state for permitting forking of the new thread to the specific thread execution unit. - View Dependent Claims (6, 7, 8)
-
-
9. A parallel processor system for executing a plurality of threads of a program in parallel to each other by a plurality of thread execution units, said parallel processor system comprising:
-
the plurality of thread execution units, each thread execution unit of said plurality of thread execution units having a processor for executing threads, a first thread execution unit of said plurality of thread execution units being configured to execute a first thread of said plurality of threads, said first thread including a fork instruction to fork a second thread of said plurality of threads, said first thread execution unit being configured to fork said second thread to a second thread execution unit of said plurality of thread execution units when said first thread execution unit executes said fork instruction; a communication path for connecting the plurality of thread execution units with each other; and means for merging said first thread of the first thread execution unit, when the first thread is terminated and yet to be settled, into said second thread of said second thread execution unit, so as to allow for forking of a new thread of said plurality of treads to said first thread execution unit. - View Dependent Claims (10, 11, 12)
-
-
13. A parallel processor system for executing a plurality of threads of a program in parallel to each other by a plurality of thread execution units, comprising:
-
the plurality of thread execution units, each thread execution unit of said plurality of thread execution units having a processor for executing threads; a communication path for connecting the plurality of thread execution units with each other; means for managing each respective thread execution unit of said plurality of thread execution units as being in one of three states , said three states including (i) a free state where a fork to said thread execution unit is possible, (ii) a busy state where a thread of said plurality of threads is being executed, and (iii) a term state where a particular thread of said plurality of threads that is terminated and yet to be settled exists; and means for, at a time of forking of a new thread of said plurality of threads when there exists no thread execution unit of said plurality of thread execution units at the free state, merging a specific thread of a specific thread execution unit at the term state into an immediately succeeding slave thread of the specific thread to bring the specific thread execution unit to the free state and to conduct forking of the new thread to the specific thread execution unit, said slave thread being executed on another thread execution unit of said plurality of thread execution units. - View Dependent Claims (14, 15, 16)
-
Specification