Claims
- 1. A computer system having multiple processors for parallel execution of a process, comprising:
- a plurality of communication register sets, each set comprising a plurality of communication registers,
- at least one respective semaphore register associated with one register in each of said communication register sets,
- a respective communication index register associated with each of said processors, each of said communication index registers for storing a process-independent communication index register value therein which comprises a first address segment and serves to address one of said communication register sets, wherein said communication index register values are not set or read by instructions in said process,
- a respective logic circuit associated with each of said processors for producing a second address segment which is derived form the execution of instructions in said process, wherein said second address segment serves as an address for one of the registers in each of said communication register sets,
- bus circuits connected to said communication registers, said semaphore registers, said communication index registers and said logic circuits for conveying addresses and data associated with said communication registers and said semaphore registers,
- an address circuit connected via one or more of said bus circuits to said communication index registers and said logic circuits for receiving said first and second address segments and producing therefrom a composite address which corresponds to one of the registers within one of said communication register sets, wherein a first of said processors when encountering a parallelization instruction during execution of said process communicates via one or more of said bus circuits with a selected one of said communication register sets by use of at least said process-independent first address segment to store process state information therein and to set a state of the associated semaphore register, and
- a second of said processors is connected via one or more of said bus circuits to communicate with said selected one communication register set by use of at least said process-independent first address segment to scan the state of the associated semaphore register and to read said process state information therefrom when the semaphore register is set so that said first and second processors can execute said process in parallel.
- 2. A computer system having multiple processors as recited in claim 1 wherein said logic circuit comprises an arithmetic logic unit which responds to said process instructions to generate said second address segment therefrom.
- 3. A computer system having multiple processors for parallel execution of a process, comprising:
- a plurality of communication register sets, each set comprising a plurality of communication registers,
- at least one respective semaphore register associated with one register in each of said communication register sets,
- a respective communication index register associated with each of said processors, each of said communication index registers for storing a process-independent communication index register value therein which comprises a first address segment and serves to address one of said communication register sets, wherein said communication index register values are not set or read by instructions in said process,
- a respective logic circuit associated with each of said processors for producing a second address segment which is derived form the execution of instructions in said process, wherein said second address segment serves as an address for one of the registers in each of said communication register sets,
- bus circuits connected to said communication registers, said semaphore registers, said communication index registers and said logic circuits for conveying addresses and data associated with said communication registers and said semaphore registers,
- an address circuit connected via one or more of said bus circuits to said communication index registers and said logic circuits for receiving said first and second address segments and producing therefrom a composite address which corresponds to one of the registers within one of said communication register sets, wherein a first of said processors when encountering a parallelization instruction during execution of said process communicates via one or more of said bus circuits with a selected one of said communication register sets by use of at least said process-independent first address segment to store process state information therein and to set a state of the associated semaphore register, and
- a respective microcode operation circuit associated with each of said processors, said microcode operation circuit connected to the communication index register for the corresponding processor to periodically increment the value stored therein when the corresponding processor is in an idle state, and said microcode operation circuit is further connected to read said semaphore registers by use of at least said first address segment, and
- a second of said processors is connected via one of more of said bus circuits to communicate with said selected one communication register set by use of at least said process-independent first address segment to scan the state of the associated semaphore register and to read said processor state information therefrom when the semaphore register is set so that said first and second processors can execute said process in parallel.
- 4. A computer system having multiple processors as recited in claim 3 including at least a second semaphore register associated with each of said communication register sets and connected via one or more of said bus circuits so that said second semaphore register can be set by one of said processors to prevent access to the corresponding communication register set by other of said processors.
- 5. A computer system having multiple processors as recited in claim 3 wherein said logic circuit comprises an arithmetic logic unit which responds to said process instructions to generate said second address segment therefrom.
Parent Case Info
This is a division of application Ser. No. 161,768, filed Feb. 29, 1988, now U.S. Pat. No. 5,050,070.
US Referenced Citations (87)
Non-Patent Literature Citations (1)
Entry |
P. Carnevali, et al., "Microtasking on IBM Multiprocessors", Aug. 1986, p. 42, Lines 21-25; p. 42, Line 35-p. 43, Line 8; p. 43, Lines 20-45. |
Divisions (1)
|
Number |
Date |
Country |
Parent |
161768 |
Feb 1988 |
|