Patent US4943915A successfully refreshed from Google Patents.
← Back to Patent Explorer
US4943915A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit

Assignee: Hewlett Packard Development Co LP
•
Filing: 1987-09-29
•
Granted: 1990-07-24
•
Expires: 2007-09-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a data processing system with a central processing unit having a pipelined mode of operation, apparatus and method are disclosed for synchronizing the operation of a coprocessor unit with the remainder of the central processing unit, the remainder of the central processing unit being implemented for pipelined execution of instructions. Because the coprocessor unit performs manipulations of logic signal groups that require a longer time for execution than the manipulation contemplated by the requirements of pipelined instruction execution, the coprocessor unit must be synchronized with an instruction stream adapted to use the rigidly controlled pipelined implementation. In order to synchronize the coprocessor unit with the remainder of the central processing unit, the instructions controlling the operation of the coprocessor unit have two portions. A first portion of a coprocessor instruction designates the storage location into which the result of the previous operation is to be stored, while the second portion of the coprocessor instruction defines the operation to be performed on the operand in a designated location.

Inventors

  • 👤 Neil C. Wilhelm
  • 👤 Judson S. Leonard

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 11:12
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F9/3889

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 300 words
A pipelined central processing unit capable of executing a first set of instructions and a plurality of special instructions, said central processing unit comprising: an instruction cache memory unit for storing instructions to be executed; an instruction register for processing an executing instruction from said instruction cache memory unit, said executing instruction being a next instruction to be executed by said central processing unit, said instruction register including means for determining when an executing instruction is a special instruction; an operand cache memory unit for storing operands to be processed; at least one operand register for storing an operand to be processed in response to said executing instruction, wherein said operand to be processed is transferred from said operand cache memory unit to said operand register in response to said executing instruction; an arithmetic logic unit coupled to said instruction register and to said operand register for performing an operation on said operand to be processed in a manner determined by said executing instruction when said executing instruction is selected from said first set of instructions; a coprocessor unit coupled to said instruction register and to said operand register for performing an operation on said operand to be processed in a manner determined by said executing instruction when said executing instruction is a one of said special instructions; storage means coupled to said coprocessor unit for storing a resulting operand provided by said coprocessor unit; first means coupled to said storage means and responsive to a presence of said resulting operand stored in said storage means for applying a first signal to said instruction register; and second means coupled to said instruction register and responsive to said first signal for preventing processing of an executing instruction when said executing instruction is a special instruction until said first signal is present.
Claim 2
Dependent Claim 300 words
A pipelined central processing unit capable of executing a first set of instructions and a plurality of special instructions, said central processing unit comprising: an instruction cache memory unit for storing instructions to be executed; an instruction register for processing an executing instruction from said instruction cache memory unit, said executing instruction being a next instruction to be executed by said central processing unit, said instruction register including means for determining when an executing instruction is a special instruction; an operand cache memory unit for storing operands to be processed; at least one operand register for storing an operand to be processed in response to said executing instruction, wherein said operand to be processed is transferred from said operand cache memory unit to said operand register in response to said executing instruction; an arithmetic logic unit coupled to said instruction register and to said operand register for performing an operation on said operand to be processed in a manner determined by said executing instruction when said executing instruction is selected from said first set of instructions; a coprocessor unit coupled to said instruction register and to said operand register for performing an operation on said operand to be processed in a manner determined by said executing instruction when said executing instruction is a one of said special instructions; storage means coupled to said coprocessor unit for storing a resulting operand provided by said coprocessor unit; first means coupled to said storage means and responsive to a presence of said resulting operand stored in said storage means for applying a first signal to said instruction register; and second means coupled to said instruction register and responsive to said first signal for preventing processing of an executing instruction when said executing instruction is a special instruction until said first signal is present.
Claim 3
Dependent Claim 46 words
The pipelined central processing unit of claim 1 wherein said executing instruction is processed in a manner determined by said executing instruction when said first signal is applied to said second means and said executing instruction is an instruction selected from said first set of instructions.
Claim 4
Dependent Claim 49 words
The pipelined central processing unit of claim 2 wherein an operand to be processed is stored in two locations of said operand cache memory unit and an associated executing special instruction performs an operation selected from the group consisting of a floating point operation and a double precision operation.
Claim 5
Dependent Claim 33 words
The pipelined central processing unit of claim 1 wherein said coprocessor unit executes a one of said special instructions providing an arithmetic operation involving operands and a quantity stored in said coprocessor unit.
Claim 6
Dependent Claim 44 words
The pipelined central processing unit of claim 1 wherein said coprocessor unit executes a special instruction resulting in an operation selected from a group consisting of an integer multiplication operation, integer division operation, a floating point processing operation, and a double precision operation operation.
Claim 7
Dependent Claim 44 words
The pipelined central processing unit of claim 1 wherein said storage means is an accumulator register, said second means preventing processing activity by said coprocessor unit when said resulting operand resulting from a previous sequential special instruction is not stored in said accumulator register.
Claim 8
Dependent Claim 43 words
The pipelined central processing unit of claim 1 wherein said operand cache memory unit is coupled to said instruction register and said operand register, said operand cache memory unit and said instruction register forming a pipeline stage of said pipelined central processing unit.
Claim 9
Dependent Claim 47 words
The pipelined central processing unit of claim 7 wherein a resulting operand stored in said coprocessor unit, provided as a result of a first special instruction being an executing instruction, is stored in said operand cache unit at a location determined by a next sequential special instruction.
Claim 10
Dependent Claim 69 words
The pipelined central processing unit of claim 8 further comprising a multiplexor coupled to said arithmetic logic unit and said coprocessor unit for selecting a resulting operand to be stored in said operand cache memory unit, said resulting operand from said coprocessor unit being stored in said operand cache memory unit when said first signal is present and said executing instruction in said instruction register is a special instruction.
Claim 11
Independent Claim 241 words
A method of executing regular instructions and special instructions in a pipelined central processing unit, said special instructions requiring time intervals greater than a pipeline time interval for a processing operation executed thereby, said method comprising the steps of: transferring an executing instruction from an instruction cache memory unit to an instruction register, said executing instruction including an address of at least one operand to be processed and an operation code determining an operation to be performed on said at least one operand to be processed, said instruction further including an address for a resulting operand resulting from said operation to be performed; processing an executing regular instruction by an arithmetic unit with said operation to performed on said at least one operand to be processed, said at least one operand to be processed having an address included in said executing regular instruction stored in an operand register; processing an executing special instruction by a coprocessor unit with said operation to be performed on said at least one operand to be processed included in said executing special instruction in said operand register; and storing a resulting operand resulting from said operation to be performed identified in said executing special instruction in an output register of said coprocessor unit, wherein an executing special instruction in said instruction register performs said operation to be performed only when a resulting operand derived from a previous executing special instruction is stored in said output register.
Claim 12
Independent Claim 241 words
A method of executing regular instructions and special instructions in a pipelined central processing unit, said special instructions requiring time intervals greater than a pipeline time interval for a processing operation executed thereby, said method comprising the steps of: transferring an executing instruction from an instruction cache memory unit to an instruction register, said executing instruction including an address of at least one operand to be processed and an operation code determining an operation to be performed on said at least one operand to be processed, said instruction further including an address for a resulting operand resulting from said operation to be performed; processing an executing regular instruction by an arithmetic unit with said operation to performed on said at least one operand to be processed, said at least one operand to be processed having an address included in said executing regular instruction stored in an operand register; processing an executing special instruction by a coprocessor unit with said operation to be performed on said at least one operand to be processed included in said executing special instruction in said operand register; and storing a resulting operand resulting from said operation to be performed identified in said executing special instruction in an output register of said coprocessor unit, wherein an executing special instruction in said instruction register performs said operation to be performed only when a resulting operand derived from a previous executing special instruction is stored in said output register.
Claim 13
Dependent Claim 40 words
The method of executing regular and special instructions of claim 10 further including the step of formatting each special instruction wherein said address for a resulting operand designates an address for a resulting operand currently stored in said output register.
Claim 14
Dependent Claim 48 words
The method of executing regular and special instructions of claim 11 further comprising the step of preventing activity in response to an executing special instruction in said instruction register when a resulting operand resulting from a next previous executing special instruction is not stored in said output register.
Claim 15
Dependent Claim 48 words
The method of executing regular and special instructions of claim 12 further comprising the step of resuming said activity in response to said executing special instruction in said instruction register when said resulting operand resulting from said next previous executing special instruction is stored in said output register.
Claim 16
Dependent Claim 59 words
The method of executing regular and special instructions of claim 13 further comprising the step selected from the group of steps consisting of performing integer multiplication operations, performing integer division operations, performing floating point operations, and performing double precision operations in said coprocessor unit, each of said steps performed in response to an operation code of each special instruction.
Claim 17
Dependent Claim 349 words
A pipelined central processing unit wherein execution of each instruction is partitioned into a plurality of operations, each operation capable of being completed within a predetermined time interval, said central processing unit comprising: an instruction memory unit; `an instruction register for distributing signals from an executing instruction, said executing instruction being transferred from said instruction memory unit; an operand memory unit; at least one operand register coupled to said operand memory unit for receiving operands from said operand memory unit in response to initial operand address signals in said executing instruction; an arithmetic logic unit coupled to said instruction register and said operand register for performing processing operations on initial operands stored in said operand register in response to operation code signals from said executing instruction in said instruction register, said processing operations by said arithmetic unit capable of being completed within said predetermined time interval; a first set of instructions controlling processing operations in said arithmetic unit, each of said first set of instructions having operation code signals and initial operand and resulting operand address signals, said resulting operand address signals being an address in said operand memory unit into which an operand processed by said arithmetic logic unit in response to said executing instruction in said instruction register is stored; a coprocessor unit coupled to said instruction register and to said operand register for performing processing operations on initial operands stored in said operand register not capable of being completed within said predetermined time interval, said processing operations performed in response to said operation code signals of said executing instruction in said instruction register; and a second set of instructions controlling processing operations of said coprocessor unit, each of said second set of instructions having operation code signals and initial and resulting operand address signals, wherein said second set instructions resulting operand address signals identify a location in said operand memory unit into which an initial operand processed by said coprocessor unit as a result of a processing operation determined by an operation code of a previous executing instruction in said instruction register is to be stored.
Claim 18
Dependent Claim 349 words
A pipelined central processing unit wherein execution of each instruction is partitioned into a plurality of operations, each operation capable of being completed within a predetermined time interval, said central processing unit comprising: an instruction memory unit; `an instruction register for distributing signals from an executing instruction, said executing instruction being transferred from said instruction memory unit; an operand memory unit; at least one operand register coupled to said operand memory unit for receiving operands from said operand memory unit in response to initial operand address signals in said executing instruction; an arithmetic logic unit coupled to said instruction register and said operand register for performing processing operations on initial operands stored in said operand register in response to operation code signals from said executing instruction in said instruction register, said processing operations by said arithmetic unit capable of being completed within said predetermined time interval; a first set of instructions controlling processing operations in said arithmetic unit, each of said first set of instructions having operation code signals and initial operand and resulting operand address signals, said resulting operand address signals being an address in said operand memory unit into which an operand processed by said arithmetic logic unit in response to said executing instruction in said instruction register is stored; a coprocessor unit coupled to said instruction register and to said operand register for performing processing operations on initial operands stored in said operand register not capable of being completed within said predetermined time interval, said processing operations performed in response to said operation code signals of said executing instruction in said instruction register; and a second set of instructions controlling processing operations of said coprocessor unit, each of said second set of instructions having operation code signals and initial and resulting operand address signals, wherein said second set instructions resulting operand address signals identify a location in said operand memory unit into which an initial operand processed by said coprocessor unit as a result of a processing operation determined by an operation code of a previous executing instruction in said instruction register is to be stored.
Claim 19
Dependent Claim 41 words
The pipelined central processing unit of claim 15 wherein said arithmetic logic unit can process a first set executing instruction in said instruction register while said coprocessor unit is processing a second set executing instruction previously stored in said instruction register.
Claim 20
Dependent Claim 73 words
The pipelined central processing unit of claim 16 wherein said coprocessor unit includes an output register, said pipelined central processing unit further comprising a signal means for providing a signal when a resulting operand is stored in said output register, said processing of a second set executing instruction in said instruction register being suspended when a resulting operand from a next previous second set instruction has not been stored in said output register.
Claim 21
Dependent Claim 47 words
The pipelined central processing unit of claim 17 wherein operation codes of said second set instructions designate a processing operation for said coprocessor unit selected from the group consisting of an integer division operation, an integer multiplication operation, a floating point operation, and a double precision operation.
Claim 22
Dependent Claim 37 words
The pipelined central processing unit of claim 17 wherein second set instruction processing suspended when said resulting operand is not stored in said output register is resumed when a resulting operand is stored in said output register.
Claim 23
Dependent Claim 27 words
The pipelined central processing unit of claim 15 wherein said second set instruction address signals can identify locations in said operand memory unit for two initial operands.
Claim 24
Dependent Claim 44 words
The pipelined central processing unit of claim 15 wherein said second set of instructions include at least one special instruction, said special instruction transferring an initial operand to said coprocessor unit, said initial operand being stored in two locations of said operand memory unit.

References Cited (Backward Citations)

US3787673A Cited
US4104720A Cited
US4128876A Cited
US4149243A Cited
US4249248A Cited
US4449196A Cited
US4438488A Cited
US4530050A Cited
US4594655A Cited
US4648034A Cited
US4763242A Cited
US4777613A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1993-07-23 1994-01-22 1994-07-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1997-07-23 1998-01-22 1998-07-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2001-07-23 2002-01-22 2002-07-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag