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

Collector

Assignee: Bull HN Information Systems Inc
•
Filing: 1982-10-13
•
Granted: 1986-06-10
•
Expires: 2002-10-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A collector for the results of a pipelined central processing unit of a digital data processing system. The processor has a plurality of execution units, with each execution unit executing a different set of instructions of the instruction repertoire of the processor. The execution units execute instructions issued to them in order of issuance by the pipeline and in parallel. As instructions are issued to the execution units, the operation code identifying each instruction is also issued in program order to an instruction execution queue of the collector. The results of the execution of each instruction by an execution unit are stored in a result stack associated with each execution unit. Collector control causes the results of the execution of instructions to program visible registers to be stored in a master safe store register in program order which is determined by the order of instructions stored in the instruction execution stack on a first-in, first-out basis. The collector also issues write commands to write results of the execution of instructions into memory in program order.

Inventors

  • 👤 Russell W. Guenthner
  • 👤 Gregory C. Edgington
  • 👤 Leonard G. Trubisky
  • 👤 Joseph C. Circello

Bibliographic Details

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

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 321 words
A collector for a synchronous central processing unit (CPU) of a data processing system having program addressable registers, a memory, said CPU having a repertoire of instructions and a plurality of execution units, wherein each of said execution unit executes a different subset of the repertoire of instructions independently of and in parallel with the other execution units and each executes the instructions in the order in which instructions are received by each such execution unit, said CPU having means for issuing in program order instructions to the collector and to the execution unit capable of executing the issued instruction; each execution unit that executes any instructions that requires more than one clock period having associated with it an input stack for storing instructions awaiting execution by its associated execution unit in the order received, the number of clock periods required to execute each instruction differing such that the results of the execution of instructions of a given program by the instruction execution units are not produced in program order; the collector comprising: means for storing in program order instructions issued by the means for issuing instructions to the collector; result means associated with each of said execution units for storing a plurality of results of the execution of instructions by its associated execution unit in the order executed; a master safe store and a store stack for storing the results in program order of the execution of each instruction executed by the execution units; and collector control means responsive to the order in which instructions are stored in the means for storing in program order instructions for causing results stored in the result means associated with each execution unit to be stored in program order in the master safe store if the results change the contents of an addressable register and to be stored in the store stack in program order if the results are to be written into memory.
Claim 2
Dependent Claim 321 words
A collector for a synchronous central processing unit (CPU) of a data processing system having program addressable registers, a memory, said CPU having a repertoire of instructions and a plurality of execution units, wherein each of said execution unit executes a different subset of the repertoire of instructions independently of and in parallel with the other execution units and each executes the instructions in the order in which instructions are received by each such execution unit, said CPU having means for issuing in program order instructions to the collector and to the execution unit capable of executing the issued instruction; each execution unit that executes any instructions that requires more than one clock period having associated with it an input stack for storing instructions awaiting execution by its associated execution unit in the order received, the number of clock periods required to execute each instruction differing such that the results of the execution of instructions of a given program by the instruction execution units are not produced in program order; the collector comprising: means for storing in program order instructions issued by the means for issuing instructions to the collector; result means associated with each of said execution units for storing a plurality of results of the execution of instructions by its associated execution unit in the order executed; a master safe store and a store stack for storing the results in program order of the execution of each instruction executed by the execution units; and collector control means responsive to the order in which instructions are stored in the means for storing in program order instructions for causing results stored in the result means associated with each execution unit to be stored in program order in the master safe store if the results change the contents of an addressable register and to be stored in the store stack in program order if the results are to be written into memory.
Claim 3
Dependent Claim 20 words
A collector as defined in claim 1 in which result means associated with each execution unit is a fifo stack.
Claim 4
Dependent Claim 28 words
A collector as defined in claim 2 in which the means for storing in program order instructions issued by the means for issuing instructions is a fifo stack.
Claim 5
Dependent Claim 20 words
A collector as defined in claim 3 in which the master safe store and store stack is a fifo stack.
Claim 6
Dependent Claim 326 words
In a central processing unit (CPU) of a synchronous digital data processing system having a memory, said CPU having program addressable registers, a repertoire of instructions, a plurality of execution units, wherein each of said execution unit executes a different subset of the repertoire of instructions independently of and in parallel with the other execution units and each executes the instructions in the order received, at least one of said execution units executing a subset of the instructions that can be executed in one clock period, the number of clock periods required to execute each instruction differing such that the results of the execution of instructions of a give program by the instruction execution units are not produced in program order, said CPU having means for issuing instructions in program order, said means for issuing instructions in program order issuing instructions to the execution unit capable of executing the issued instruction, the improvements comprising: an instruction execution queue (IEQ) for storing the operation code of each instruction issued by said means for issuing instructions in program order; an input stack associated with each execution unit except the unit which executes the subset of instruction repertoire that is executable within one clock period; a results stack associated with each execution unit for storing the results of the execution of instructions by its associated execution unit in the order executed; a master safe store and a store stack for storing the results in program order of the execution of each instruction executed by the execution units; and collector control means responsive to the order in which instructions are received by the instruction execution queue for causing results stored in the result stacks associated with each execution unit to be stored in program order in the master safe store if the results change the contents of an addressable register and to be stored in the store stack in program order if the results are to be written into memory.
Claim 7
Dependent Claim 326 words
In a central processing unit (CPU) of a synchronous digital data processing system having a memory, said CPU having program addressable registers, a repertoire of instructions, a plurality of execution units, wherein each of said execution unit executes a different subset of the repertoire of instructions independently of and in parallel with the other execution units and each executes the instructions in the order received, at least one of said execution units executing a subset of the instructions that can be executed in one clock period, the number of clock periods required to execute each instruction differing such that the results of the execution of instructions of a give program by the instruction execution units are not produced in program order, said CPU having means for issuing instructions in program order, said means for issuing instructions in program order issuing instructions to the execution unit capable of executing the issued instruction, the improvements comprising: an instruction execution queue (IEQ) for storing the operation code of each instruction issued by said means for issuing instructions in program order; an input stack associated with each execution unit except the unit which executes the subset of instruction repertoire that is executable within one clock period; a results stack associated with each execution unit for storing the results of the execution of instructions by its associated execution unit in the order executed; a master safe store and a store stack for storing the results in program order of the execution of each instruction executed by the execution units; and collector control means responsive to the order in which instructions are received by the instruction execution queue for causing results stored in the result stacks associated with each execution unit to be stored in program order in the master safe store if the results change the contents of an addressable register and to be stored in the store stack in program order if the results are to be written into memory.
Claim 8
Dependent Claim 20 words
In a central processing unit as defined in claim 5 in which the instruction execution queue is a fifo stack.
Claim 9
Dependent Claim 24 words
In a central processing unit as defined in claim 6 in which the input stack associated with an execution unit is a fifo stack.
Claim 10
Dependent Claim 25 words
In a central processing unit as defined in claim 7 in which the result stack of each of the execution units is a fifo stack.
Claim 11
Dependent Claim 19 words
In a central processing unit as defined in claim 8 in which the store stack is a fifo stack.
Claim 12
Dependent Claim 21 words
In a central processing unit as defined in claim 9 in which each of the fifo stacks is a sixteen-level stack.
Claim 13
Dependent Claim 312 words
A collector for a synchronous central processor unit (CPU) having program addressable registers, a memory, a repertoire of instructions, said CPU having a plurality of execution units, wherein each of said execution unit executes a different predetermined set of operation codes of the instruction repertoire independently of and in parallel with the other execution units and each executes the instructions in the order in which instructions are received by each such execution unit, the number of clock periods required to execute each instruction differing such that the results of the execution of instructions of a given program by the instruction execution units are not produced in program order, said CPU having means for issuing in program order instructions to the execution unit capable of executing the operation code of each instruction so issued, and means for issuing in program order instruction execution queue words which include the operation code of each instruction issued to the execution unit; said collector comprising: an instruction execution queue (IEQ) for receiving instruction execution queue words from the means for issuing instruction execution queue words; a plurality of result stacks, one result stack being associated with each execution unit; each execution unit results stack receiving the results of the execution of each operation code by its associate execution unit; a master safe store and a store stack for storing the results in program order of the execution of each instruction executed by the execution units; and collector control means responsive to the order in which instructions are received by the instruction executin queue for causing results stored in the result stacks associated with each execution unit to be stored in program order in the master safe store if the results change the contents of an addressable register and to be stored in the store stack in program order if the results are to be written into memory.
Claim 14
Dependent Claim 312 words
A collector for a synchronous central processor unit (CPU) having program addressable registers, a memory, a repertoire of instructions, said CPU having a plurality of execution units, wherein each of said execution unit executes a different predetermined set of operation codes of the instruction repertoire independently of and in parallel with the other execution units and each executes the instructions in the order in which instructions are received by each such execution unit, the number of clock periods required to execute each instruction differing such that the results of the execution of instructions of a given program by the instruction execution units are not produced in program order, said CPU having means for issuing in program order instructions to the execution unit capable of executing the operation code of each instruction so issued, and means for issuing in program order instruction execution queue words which include the operation code of each instruction issued to the execution unit; said collector comprising: an instruction execution queue (IEQ) for receiving instruction execution queue words from the means for issuing instruction execution queue words; a plurality of result stacks, one result stack being associated with each execution unit; each execution unit results stack receiving the results of the execution of each operation code by its associate execution unit; a master safe store and a store stack for storing the results in program order of the execution of each instruction executed by the execution units; and collector control means responsive to the order in which instructions are received by the instruction executin queue for causing results stored in the result stacks associated with each execution unit to be stored in program order in the master safe store if the results change the contents of an addressable register and to be stored in the store stack in program order if the results are to be written into memory.
Claim 15
Dependent Claim 21 words
A collector for a central processor as defined in claim 11 in which the instruction execution queue is a fifo stack.
Claim 16
Dependent Claim 24 words
A collector for a central processor as defined in claim 12 in which each of the plurality of result stacks is a fifo stack.
Claim 17
Dependent Claim 28 words
A collector for a central processor as defined inn claim 13 in which the control means comprises store processing logic, collector sequence control, and results stack unload control.
Claim 18
Dependent Claim 417 words
A collector for a synchronous central processor unit (CPU) of a data processing system having a system memory, said CPU having a repertoire of instructions, the CPU having a plurality of execution units, each execution unit having program addressable registers, wherein each execution unit executes a different predetermined subset of operation codes of the repertoire of instructions, each instruction requiring a number of clock periods to execute, the minimum number of clock periods to execute an instruction being one, the subset of instructions executed by one of said execution units being limited to those that can be executed in one clock period, The number of clock periods required to execute each instruction differing such that the results of the execution of a given program by the instruction execution units are not produced in program, order, said CPU having means for issuing in program order instructions to the execution unit capable of executing each operation code issued to it, and means for issuing in program order instruction execution queue (IEQ) words which include the operation code of each instruction issued to an execution unit; an input stack associated with each execution unit other than said one unit which executes the subset of instructions which require only one clock period to execute, said input stacks storing instructions issued to its associated execution unit in the order received and holding said instructions until executed, said collector comprising: an instruction execution queue adapted to receive and store IEQ words from the means for issuing IEQ words in the order issued; a plurality of result stacks, one such result stack being associated with each execution unit, each execution unit result stack receiving the results of the execution of operation codes by the execution unit with which it is associated in the order executed; a master safe store for storing changes to the contents of program addressable registers in program order; a store stack for storing the results in program order of the execution of each operation code that changes data to be stored in system memory; and collector control means responsive to the order in which operation codes are received by the instruction execution queue for causing results stored in the result stacks associated with the execution units to be stored in program order in the master safe store if the result changes the contents of a programmable addressable register and in the store stack in program order if the results change the data stored in a memory location in system memory.
Claim 19
Dependent Claim 417 words
A collector for a synchronous central processor unit (CPU) of a data processing system having a system memory, said CPU having a repertoire of instructions, the CPU having a plurality of execution units, each execution unit having program addressable registers, wherein each execution unit executes a different predetermined subset of operation codes of the repertoire of instructions, each instruction requiring a number of clock periods to execute, the minimum number of clock periods to execute an instruction being one, the subset of instructions executed by one of said execution units being limited to those that can be executed in one clock period, The number of clock periods required to execute each instruction differing such that the results of the execution of a given program by the instruction execution units are not produced in program, order, said CPU having means for issuing in program order instructions to the execution unit capable of executing each operation code issued to it, and means for issuing in program order instruction execution queue (IEQ) words which include the operation code of each instruction issued to an execution unit; an input stack associated with each execution unit other than said one unit which executes the subset of instructions which require only one clock period to execute, said input stacks storing instructions issued to its associated execution unit in the order received and holding said instructions until executed, said collector comprising: an instruction execution queue adapted to receive and store IEQ words from the means for issuing IEQ words in the order issued; a plurality of result stacks, one such result stack being associated with each execution unit, each execution unit result stack receiving the results of the execution of operation codes by the execution unit with which it is associated in the order executed; a master safe store for storing changes to the contents of program addressable registers in program order; a store stack for storing the results in program order of the execution of each operation code that changes data to be stored in system memory; and collector control means responsive to the order in which operation codes are received by the instruction execution queue for causing results stored in the result stacks associated with the execution units to be stored in program order in the master safe store if the result changes the contents of a programmable addressable register and in the store stack in program order if the results change the data stored in a memory location in system memory.
Claim 20
Dependent Claim 17 words
A collector as defined in claim 15 in which the instruction execution queue is a fifo stack.
Claim 21
Dependent Claim 18 words
A collector as defined in claim 16 in which each of the result stacks is a fifo stack.
Claim 22
Dependent Claim 16 words
A collector as defined in claim 17 in which the store stack is a fifo stack.
Claim 23
Dependent Claim 25 words
A collector as defined in claim 18 in which the collector control means comprises store processing logic, collector sequence control, and results stack unload control.

References Cited (Backward Citations)

US3346851A Cited
US3449722A Cited
US4145755A Cited
US4365311A Cited
US4393465A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1989-06-09 1989-12-09 1990-06-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1993-06-09 1993-12-09 1994-06-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1997-06-09 1997-12-09 1998-06-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag