← Back to Patent Explorer
US5159686A Expired / Lapsed US ⏱️ 0.0 years remaining

Multi-processor computer system having process-independent communication register addressing

Assignee: HP Inc
•
Filing: 1991-03-07
•
Granted: 1992-10-27
•
Expires: 2011-03-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system having a plurality of independent processors which can either execute a separate process for each processor, or execute parallel process operations across multiple processors for one process. The computer system includes a set of communication registers divided into a group of frames and a set of semaphores which correspond respectively to the registers. Typical processes have both serial and parallel code segments. During serial execution, a process is executed by a single processor, but when a parallelization instruction is encountered, which indicates that code can be executed in parallel, a semaphore is posted to invite other processors to join in parallel execution of the process. If any other processors in the system are idle, those processors detect the semaphore and accept a thread of process operation. Two or more processors may join in parallel operation if sufficient operations are available. However, if all processors are busy, then the processor conducting the serial operation will also execute all of the parallel operations. Thus, the processors are self-allocated, rather than being used on a demand or master-servant basis. This permits a greater throughput for the system because processors are not held idle when there is available process work to be done.

Inventors

  • 👤 David M. Chastain
  • 👤 James E. Mankovich
  • 👤 Gary B. Gostin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 22:10
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5061; G06F9/5066; G06F15/00; G06F15/16; G06F15/163; G06F15/167; G06F15/76; G06F15/80; G06F15/8053; G06F9/52

Claims Analysis

Total Claims: 7
Claim 1
Independent Claim 362 words
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.
Claim 2
Dependent Claim 362 words
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.
Claim 3
Dependent Claim 33 words
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.
Claim 4
Dependent Claim 426 words
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.
Claim 5
Dependent Claim 426 words
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.
Claim 6
Dependent Claim 64 words
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.
Claim 7
Dependent Claim 33 words
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.

References Cited (Backward Citations)

US3106698A Cited
US3229260A Cited
US3337854A Cited
US3346851A Cited
US3348210A Cited
US3374465A Cited
US3386082A Cited
US3541516A Cited
US3440611A Cited
US3480914A Cited
US3496551A Cited
US3593300A Cited
US3614742A Cited
US3611306A Cited
US3560934A Cited
US3643227A Cited
US3648253A Cited
US3810119A Cited
US4123795A Cited
US3876987A Cited
USRE27703E Cited
US3916383A Cited
US3833889A Cited
US4316245A Cited
US4073005A Cited
US4130865A Cited
US4034347A Cited
US4394730A Cited
US4318174A Cited
US4128880A Cited
US4356550A Cited
US4365295A Cited
US4672535A Cited
US4484275A Cited
US4229790A Cited
US4228495A Cited
US4288496A Cited
US4481580A Cited
US4412303A Cited
US4404628A Cited
US4590555A Cited
US4402045A Cited
US4318173A Cited
US4368514A Cited
US4514807A Cited
US4495562A Cited
US4484264A Cited
US4495570A Cited
US4462075A Cited
US4459664A Cited
US4494188A Cited
US4394727A Cited
US4445197A Cited
US4543627A Cited
US4507726A Cited
US4633389A Cited
US4646230A Cited
US4691280A Cited
US4539637A Cited
US4530051A Cited
US4654779A Cited
US4633472A Cited
US4482956A Cited
US4504906A Cited
US4543626A Cited
US4633387A Cited
US4692860A Cited
US4636942A Cited
US4661900A Cited
US4663708A Cited
US4591975A Cited
US4646231A Cited
US4589063A Cited
US4685076A Cited
US4663709A Cited
US4674033A Cited
US4639856A Cited
US4660141A Cited
US4635187A Cited
US4569017A Cited
US4683531A Cited
US4704680A Cited
US4658351A Cited
US4839798A Cited
US4674036A Cited
US4642756A Cited
US4829425A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-10-27 1996-04-27 1996-10-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-10-27 2000-04-27 2000-10-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-10-27 2004-04-27 2004-10-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag