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

Concurrent task and instruction processor and method

Assignee: BEHR VENTURE PARTNERS LTD- 1983
•
Filing: 1978-10-16
•
Granted: 1980-10-21
•
Expires: 1998-10-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A processor and method for concurrent processing of tasks and instructions are disclosed. The processor is basically a multiple instruction, multiple data stream (MIMD) digital computer that utilizes pipelining for control and function units, but avoids precedence constraint penalties. Task and instruction processing is carried on concurrently through the use of a snapshot taken of the next process status words (PSWs) to be serviced for each active task, the pointers for which are stored in task first in-first out buffers (task FIFOs). The PSWs, along with their parent task status words (TSWs), are placed into the control pipeline one at a time and serviced, after which each PSW pointer is placed back in the task FIFO from where it was taken. After all process status words of the snapshot have been entered into the control pipeline, a new snapshot is taken and the PSWs processed in the same manner. Instruction execution is carried out as the TSW/PSW pair proceeds through the control pipeline, during which time the required data operations are carried out by pulling operands from a memory unit, as required for execution of that particular instruction, and causing the same to be sent to the function units after which the results are placed in the memory unit. For interprocess data transfers, synchronization is accomplished through use of hardware implemented semaphores called a scoreboard. In addition, passage of data between processors and memories other than those associated, or local, memories, is through a memory switch.

Inventors

  • 👤 Maxwell C. Gilliland
  • 👤 Burton J. Smith
  • 👤 Gary L. Ferguson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 15:04
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4812; G06F9/4825; G06F9/30; G06F9/38; G06F9/3836; G06F9/3838; G06F9/3851; G06F9/461; G06F9/462; G06F9/4843; G06F9/4881

Claims Analysis

Total Claims: 53
Claim 1
Independent Claim 229 words
A concurrent task and instruction processing device, comprising: task processing means including control pipeline means and sequencing means connected with said control pipeline means to control the input thereto for sequentially processing tasks by components thereof through said control pipeline means, said sequencing means including memory means and component selection means connected with said memory means to cause selected components to be withdrawn from said memory means and sequenced through said control pipeline means, said memory means including at least one of a task status word memory and a process status word memory, and said component selection means including indicator storage means and selector means connected with said indicator storage means for selecting indicators and coupling the same to said at least one of said task status word memory and said process status word memory for causing an output therefrom to said control pipeline means, whereby said control pipeline means provides multiple sequential output instructions determined by said task components processed therethrough; and data processing means including data storage means and function execution means, said data processing means being controlled by said output instructions from said task processing means so that said function execution means, responsive to said output instructions, causes data in said data storage means to be withdrawn therefrom and acted upon by said function execution means concurrently with task component processing through said control pipeline means.
Claim 2
Dependent Claim 229 words
A concurrent task and instruction processing device, comprising: task processing means including control pipeline means and sequencing means connected with said control pipeline means to control the input thereto for sequentially processing tasks by components thereof through said control pipeline means, said sequencing means including memory means and component selection means connected with said memory means to cause selected components to be withdrawn from said memory means and sequenced through said control pipeline means, said memory means including at least one of a task status word memory and a process status word memory, and said component selection means including indicator storage means and selector means connected with said indicator storage means for selecting indicators and coupling the same to said at least one of said task status word memory and said process status word memory for causing an output therefrom to said control pipeline means, whereby said control pipeline means provides multiple sequential output instructions determined by said task components processed therethrough; and data processing means including data storage means and function execution means, said data processing means being controlled by said output instructions from said task processing means so that said function execution means, responsive to said output instructions, causes data in said data storage means to be withdrawn therefrom and acted upon by said function execution means concurrently with task component processing through said control pipeline means.
Claim 3
Dependent Claim 21 words
The processing device of claim 1 wherein said control pipeline means includes memory means for providing instructions and addresses as needed.
Claim 4
Dependent Claim 16 words
The processing device of claim 2 wherein said memory means includes at least one address calculator.
Claim 5
Dependent Claim 77 words
The processing device of claim 1 wherein said memory means includes both a task status word memory and a process status word memory, wherein said indicator storage means is a task component indicator storage means, and wherein said selector means is connected with said task component indicator storage means for selecting indicators and coupling the same to said task status word memory and said process status word memory for causing outputs therefrom to said control pipeline means.
Claim 6
Dependent Claim 42 words
The processing device of claim 1 wherein said task component indicator storage means includes a plurality of task first-in, first-out buffers having process data word pointers therein, and wherein said selection means includes snapshot circuitry connected to said task first-in, first-out buffers.
Claim 7
Dependent Claim 19 words
The processing device of claim 1 wherein said data storage means includes a register memory and a constant memory.
Claim 8
Dependent Claim 17 words
The processing device of claim 1 wherein said function execution means includes a plurality of function units.
Claim 9
Dependent Claim 36 words
The processing device of claim 7 wherein said function units include a create function unit, an integer function unit, a scheduler function unit, an add/subtract function unit, a multiplier function unit, and a divider function unit.
Claim 10
Dependent Claim 55 words
The processing device of claim 1 wherein said device includes scoreboarding means connected with said data processing means and said task processing means for regulating access to said data storage means so that data can be written into and read out of said data storage unit only at preselected states of said data storage means.
Claim 11
Dependent Claim 226 words
A concurrent task and instruction processing device, comprising: a plurality of task first-in first-out buffers each of which is adapted to receive process data word pointers for storage therein; snapshot circuitry connected with task first-in, first-out buffers to sequentially withdraw said pointers therefrom and provide indications thereof; a process status word memory connected with said snapshot circuitry to receive said pointers therefrom and responsive thereto coupling process status words from said process status memory; a task status word memory connected with said snapshot circuitry to receive said indications therefrom and responsive thereto coupling task status words associated with said process status word from said task status word memory; a control pipeline for receiving said process status words and said task status words from said process status word memory and said status word memory and processing the same through said control pipeline, said control pipeline responsive to said received process status words and said task status words providing sequential instruction outputs; memory means for storing data to be processed; a plurality of function units connected with said memory means; and coupling means for coupling said instruction outputs from said control pipeline to said memory means and said plurality of function units for controlling withdrawal of data from said memory means and causing the same to be processed by said function units concurrently with processing of said tasks.
Claim 12
Dependent Claim 226 words
A concurrent task and instruction processing device, comprising: a plurality of task first-in first-out buffers each of which is adapted to receive process data word pointers for storage therein; snapshot circuitry connected with task first-in, first-out buffers to sequentially withdraw said pointers therefrom and provide indications thereof; a process status word memory connected with said snapshot circuitry to receive said pointers therefrom and responsive thereto coupling process status words from said process status memory; a task status word memory connected with said snapshot circuitry to receive said indications therefrom and responsive thereto coupling task status words associated with said process status word from said task status word memory; a control pipeline for receiving said process status words and said task status words from said process status word memory and said status word memory and processing the same through said control pipeline, said control pipeline responsive to said received process status words and said task status words providing sequential instruction outputs; memory means for storing data to be processed; a plurality of function units connected with said memory means; and coupling means for coupling said instruction outputs from said control pipeline to said memory means and said plurality of function units for controlling withdrawal of data from said memory means and causing the same to be processed by said function units concurrently with processing of said tasks.
Claim 13
Dependent Claim 30 words
The processing device of claim 10 wherein said task first-in, first-out buffers includes process status word pointers for several tasks and can also include different parts of the same task.
Claim 14
Dependent Claim 40 words
The processing device of claim 10 wherein said snapshot circuitry includes means for sequentially selecting a pointer from each of said task first-in, first-out buffers on a round-robin basis until all of with said pointers in said snapshot are selected.
Claim 15
Dependent Claim 40 words
The processing device of claim 10 wherein said device includes a create function unit for causing relinking of said pointers into said task first-in, first-out buffers after said process status and task status words are processed through said control pipeline.
Claim 16
Dependent Claim 30 words
The processing device of claim 13 wherein the time required for relinking a said pointer is the same as the time required for executing instructions whereby said device operates synchronously.
Claim 17
Dependent Claim 29 words
The processing device of claim 13 wherein the time required for relinking a said pointer is different from the time required for executing instructions whereby said device operates asynchronously.
Claim 18
Dependent Claim 18 words
The processing device of claim 10 wherein said memory means includes a register memory and a constant memory.
Claim 19
Dependent Claim 37 words
The processing device of claim 16 wherein said device includes scoreboard means connected with said register memory for regulating access to said register memory whereby said register memory can be accessed only when in certain preselected states.
Claim 20
Dependent Claim 37 words
The processing device of claim 17 wherein said scoreboard means regulates access so that READ access is provided only when said register means is full and WRITE access is permitted only when said register means is empty.
Claim 21
Dependent Claim 160 words
An instruction processing device, comprising: at least one first-in, first-out buffer adapted to receive process data word pointers for storage therein; snapshot circuitry connected with said first-in, first-out buffer to sequentially draw said pointers therefrom and provide indications thereof; a process status word memory connected with said snapshot circuitry to receive said pointers therefrom and responsive thereto coupling process status words from said process status memory; a control pipeline receiving said process status words from said process status word memory and processing the same through said control pipeline, said control pipeline responsive to said received process status words providing sequential instruction outputs; memory means for storing data to be processed; at least one function unit connected with said memory means; and coupling means for coupling said instruction outputs from said control pipeline to said memory means and said function unit for controlling withdrawal of data from said memory means and causing the same to be processed by said function unit.
Claim 22
Dependent Claim 160 words
An instruction processing device, comprising: at least one first-in, first-out buffer adapted to receive process data word pointers for storage therein; snapshot circuitry connected with said first-in, first-out buffer to sequentially draw said pointers therefrom and provide indications thereof; a process status word memory connected with said snapshot circuitry to receive said pointers therefrom and responsive thereto coupling process status words from said process status memory; a control pipeline receiving said process status words from said process status word memory and processing the same through said control pipeline, said control pipeline responsive to said received process status words providing sequential instruction outputs; memory means for storing data to be processed; at least one function unit connected with said memory means; and coupling means for coupling said instruction outputs from said control pipeline to said memory means and said function unit for controlling withdrawal of data from said memory means and causing the same to be processed by said function unit.
Claim 23
Dependent Claim 18 words
The processing device of claim 19 wherein said memory means includes a register memory and a constant memory.
Claim 24
Dependent Claim 37 words
The processing device of claim 20 wherein said device includes scoreboard means connected with said register memory for regulating access to said register memory whereby said register memory can be accessed only when in certain preselected states.
Claim 25
Dependent Claim 37 words
The processing device of claim 21 wherein said scoreboard means regulates access so that READ access is provided only when said register means is full and WRITE access is permitted only when said register means is empty.
Claim 26
Dependent Claim 258 words
A concurrent task and instruction processing device, comprising: a plurality of task first-in, first-oout buffers each of which is adapted to receive process status word pointers for storage therein; snapshot control circuitry connected with said plurality of first-in, first-out buffers for causing a snapshot to be made of the next pointer to be withdrawn from each of said task first-in, first-out buffers having pointers therein; pointer selection means connected with said plurality of task first-in, first-out buffers and said snapshot control circuitry for sequentially selecting each pointer in said task snapshot and coupling the same from said buffers; a process status word memory connected with said pointer selection means for providing process status word outputs therefrom is response to receipt of a said pointer from said pointer selection means; a task status word memory connected with said snapshot control circuitry for providing a task status word output associated with said process status word output coupled from said process status word memory; a memory address calculator connected with said process status word memory and said task status word memory to receive said outputs therefrom; an address calculator connected with said task status word memory; a decoder providing an output; a program memory connected with said memory address calculator and providing an output to said address calculator and said decoder; data memory means including a register memory and a constant memory connected with said program memory; and function units connected with said data memory means and said decoder for executing instruction with respect to data withdrawn from said memory means.
Claim 27
Dependent Claim 258 words
A concurrent task and instruction processing device, comprising: a plurality of task first-in, first-oout buffers each of which is adapted to receive process status word pointers for storage therein; snapshot control circuitry connected with said plurality of first-in, first-out buffers for causing a snapshot to be made of the next pointer to be withdrawn from each of said task first-in, first-out buffers having pointers therein; pointer selection means connected with said plurality of task first-in, first-out buffers and said snapshot control circuitry for sequentially selecting each pointer in said task snapshot and coupling the same from said buffers; a process status word memory connected with said pointer selection means for providing process status word outputs therefrom is response to receipt of a said pointer from said pointer selection means; a task status word memory connected with said snapshot control circuitry for providing a task status word output associated with said process status word output coupled from said process status word memory; a memory address calculator connected with said process status word memory and said task status word memory to receive said outputs therefrom; an address calculator connected with said task status word memory; a decoder providing an output; a program memory connected with said memory address calculator and providing an output to said address calculator and said decoder; data memory means including a register memory and a constant memory connected with said program memory; and function units connected with said data memory means and said decoder for executing instruction with respect to data withdrawn from said memory means.
Claim 28
Dependent Claim 23 words
The processing device of claim 23 wherein said decoder is an op code decoder connected between said program memory and said function units.
Claim 29
Dependent Claim 40 words
The processing device of claim 23 wherein said function units include a scheduler function unit connected with said task status word memory and said process status word memory, and a create function unit connected with said task first-in, first-out buffers.
Claim 30
Dependent Claim 35 words
The processing device of claim 25 wherein said device includes an out-of-range address detector connected with said task status word memory and said calculators, said out-of-range detector providing an output to said create function unit.
Claim 31
Dependent Claim 41 words
The processing device of claim 26 wherein said device includes a scoreboard, user trap, and parity function unit connected with said create function unit, and an asynchronous distribution address snapshot unit connected with said scheduler function unit for interprocess data transfers.
Claim 32
Dependent Claim 25 words
The processing device of claim 27 wherein said register memory of said data memory means includes scoreboard means for regulating access to said register memory.
Claim 33
Dependent Claim 115 words
A process for concurrently processing task and instructions, said process comprising: providing task components to be processed; providing indicators of said task components, said indicators of said task components being status word pointers; storing said pointers in buffers; sequentially processing said task components including withdrawing said indicators from said storage and utilizing said withdrawn indicators to concurrently generate multiple instructions for data processing by passing said components through a control pipeline to generate said multiple instructions; providing at least one function unit for acting upon data to be processed; and executing said instructions concurrently with processing of said task components to thereby cause said function unit to act upon said data to process the same.
Claim 34
Dependent Claim 115 words
A process for concurrently processing task and instructions, said process comprising: providing task components to be processed; providing indicators of said task components, said indicators of said task components being status word pointers; storing said pointers in buffers; sequentially processing said task components including withdrawing said indicators from said storage and utilizing said withdrawn indicators to concurrently generate multiple instructions for data processing by passing said components through a control pipeline to generate said multiple instructions; providing at least one function unit for acting upon data to be processed; and executing said instructions concurrently with processing of said task components to thereby cause said function unit to act upon said data to process the same.
Claim 35
Dependent Claim 28 words
The process of claim 29 wherein said indicators of said task components are process status word pointers, and wherein said pointers are stored in task first-in, first-out buffers.
Claim 36
Dependent Claim 43 words
The process of claim 29 wherein said sequential processing of said task components includes taking a snapshot of the pointers in said buffers next to be processed, and wherein said sequential withdrawal of said indicators includes sequentially selecting said pointers in said snapshot.
Claim 37
Dependent Claim 32 words
The process of claim 30 wherein said process includes relinking of said process status word pointers in said first-in, first-out buffers after said task components have been passed through said control pipeline.
Claim 38
Dependent Claim 26 words
The process of claim 29 wherein passing of said task components through said control pipeline causes generation of addresses for instruction execution by said function unit.
Claim 39
Dependent Claim 61 words
The process of claim 29 wherein providing of said task components includes providing task status words and process status words, and wherein processing of said task components includes storing of said task status words and said process status words in a task status word memory and a process status word memory, respectively, for withdrawal therefrom for generation of said multiple instructions.
Claim 40
Dependent Claim 18 words
The process of claim 29 wherein said processing of said task components is synchronous with said instruction execution.
Claim 41
Dependent Claim 25 words
The process of claim 29 wherein said processing of said task components is asynchronous with respect to instruction execution but precedence restraint penalties are avoided.
Claim 42
Dependent Claim 62 words
The process of claim 29 wherein said process includes storing said data in memory units and withdrawing said data therefrom for acting upon by said function units, and wherein said process also includes checking the status of said memory units prior to execution of said instructions with said execution being delayed unless said memory unit then involved is in a predetermined state.
Claim 43
Dependent Claim 47 words
The process of claim 37 wherein said process includes delaying execution of said instructions unless said memory unit is full when data is to be read from said memory unit, and unless said memory unit is empty when data is to be written into said memory unit.
Claim 44
Independent Claim 126 words
A method for generating and processing of instructions, said method comprising: providing process components; providing indicators of said process components, said indicators being status word pointers; providing process component indicator storage including storing said pointers in at least one buffer; sequentially processing said process components to generate multiple instructions for data processing by sequentially withdrawing said indicators from said storage and utilizing said withdrawn indicators to cause said sequential processing of said process components by passing said components through a control pipeline to generate said multiple instructions; providing at least one function unit for acting upon data to be processed; and executing said instructions concurrently with processing of said process components to thereby cause said function unit to act upon said data to process the same.
Claim 45
Independent Claim 126 words
A method for generating and processing of instructions, said method comprising: providing process components; providing indicators of said process components, said indicators being status word pointers; providing process component indicator storage including storing said pointers in at least one buffer; sequentially processing said process components to generate multiple instructions for data processing by sequentially withdrawing said indicators from said storage and utilizing said withdrawn indicators to cause said sequential processing of said process components by passing said components through a control pipeline to generate said multiple instructions; providing at least one function unit for acting upon data to be processed; and executing said instructions concurrently with processing of said process components to thereby cause said function unit to act upon said data to process the same.
Claim 46
Dependent Claim 31 words
The process of claim 39 wherein said indicators of said process components are process status word pointers, and wherein said pointers are stored in at least one task first-in, first-out buffer.
Claim 47
Dependent Claim 43 words
The process of claim 39 wherein said sequential processing of said process components includes taking a snapshot of the pointers in said buffer next to be processed, and wherein said sequential withdrawal of said indicators includes sequentially selecting said pointers in said snapshot.
Claim 48
Dependent Claim 32 words
The process of claim 40 wherein said process includes relinking of said process status word pointers in said first-in, first-out buffer after said process components have been passed through said control pipeline.
Claim 49
Dependent Claim 26 words
The process of claim 39 wherein passing of said process components through said control pipeline causes generation of addresses for instruction execution by said function unit.
Claim 50
Dependent Claim 132 words
A process for concurrently processing task and instructions, said process comprising: storing process status word pointers in buffers; storing process status words and task status words in word memories; withdrawing said pointers in sequence from said buffers and utilizing the same to cause withdrawal of process status words and an associated task status word from said word memories; passing said process status words and associated task status words through a control pipeline to generate multiple instructions; storing data in a data storage memory; providing a plurality of function units to act upon data; and utilizing said instructions to cause data to be withdrawn from said data storage memory and acted upon by said function unit concurrently with processing of said process status words and associated task status word through said control pipeline.
Claim 51
Dependent Claim 132 words
A process for concurrently processing task and instructions, said process comprising: storing process status word pointers in buffers; storing process status words and task status words in word memories; withdrawing said pointers in sequence from said buffers and utilizing the same to cause withdrawal of process status words and an associated task status word from said word memories; passing said process status words and associated task status words through a control pipeline to generate multiple instructions; storing data in a data storage memory; providing a plurality of function units to act upon data; and utilizing said instructions to cause data to be withdrawn from said data storage memory and acted upon by said function unit concurrently with processing of said process status words and associated task status word through said control pipeline.
Claim 52
Dependent Claim 61 words
The process of claim 44 wherein said storing of said pointers includes storing said pointers in a plurality of first-in, first-out buffers, and wherein withdrawing said pointers includes periodically taking a snapshot of the next pointer in each buffer to be withdrawn therefrom, with each pointer in said snapshot being sequentially withdrawn from said buffer before the next snapshot is taken.
Claim 53
Dependent Claim 31 words
The process of claim 44 wherein said process includes checking of said data storage memory to assure that said memory is in a predetermined state prior to execution of an instruction.

References Cited (Backward Citations)

US3728692A Cited
US3787673A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1983-10-21 1984-04-21 1984-10-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1987-10-21 1988-04-21 1988-10-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1991-10-21 1992-04-21 1992-10-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag