Patent US4295193A successfully refreshed from Google Patents.
US4295193A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Machine for multiple instruction execution
Assignee: International Business Machines Corp
•
Filing: 1979-06-29
•
Granted: 1981-10-13
•
Expires: 1999-06-29
Abstract
Abstract A computing machine for concurrently executing instructions that have been compiled into a multi-instruction word comprised of a group of n instructions, where n is an integer. The group must not demand more than a predetermined number of data and instruction fetches, or more than one store operation. If a branch instruction occurs, it must always be at the end of the group. Each instruction utilizes a different set of data for purposes of instruction execution.
Inventors
- 👤 James H. Pomerene
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-29 04:49
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F9/3889; G06F9/3836; G06F9/3853
Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
156 words
A method of concurrently executing n instructions in parallel, where n is an integer >1, on different sets of data, said method comprising the steps of: compiling said instructions into groups of n different instructions for storage in a memory device, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group; storing one group at a time of said instructions in a first storage device; storing different sets of data in a second storage device; retrieving said one group of instructions from said first storage devices; and executing in parallel each of the retrieved n instructions in said one group concurrently in n different execution devices, with each of said n instructions utilizing a different set of the stored data in said second storage device for purposes of instruction execution.
Claim 2
Independent Claim
156 words
A method of concurrently executing n instructions in parallel, where n is an integer >1, on different sets of data, said method comprising the steps of: compiling said instructions into groups of n different instructions for storage in a memory device, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group; storing one group at a time of said instructions in a first storage device; storing different sets of data in a second storage device; retrieving said one group of instructions from said first storage devices; and executing in parallel each of the retrieved n instructions in said one group concurrently in n different execution devices, with each of said n instructions utilizing a different set of the stored data in said second storage device for purposes of instruction execution.
Claim 3
Independent Claim
118 words
A method of executing instructions in a computing machine, said method comprising the steps of: compiling said instructions into groups of n, where n is an integer >1, for storage in a memory device, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group; fetching one group of instructions at a time from said memory device; storing said one group of fetched instructions in a first storage device; executing said n instructions concurrently in n different execution logic devices in response to retrieving the n stored instructions from said first storage device.
Claim 4
Independent Claim
118 words
A method of executing instructions in a computing machine, said method comprising the steps of: compiling said instructions into groups of n, where n is an integer >1, for storage in a memory device, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group; fetching one group of instructions at a time from said memory device; storing said one group of fetched instructions in a first storage device; executing said n instructions concurrently in n different execution logic devices in response to retrieving the n stored instructions from said first storage device.
Claim 5
Independent Claim
161 words
A method of concurrently executing instructions of a given type in a computing machine, said method comprising the steps of: compiling said instructions into groups of n, where n is an integer >1, instructions, for storage in a memory device, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group, with no more than one of said instructions in a group being other than said given type; fetching one group of instructions at a time from said memory device; storing said one group of fetched instructions in a storage device, with any one of said instructions in the group that is other than said given type being stored in a fixed location; retrieving the stored group of instructions from said storage device; and executing concurrently the said n instructions that are of said given type.
Claim 6
Independent Claim
161 words
A method of concurrently executing instructions of a given type in a computing machine, said method comprising the steps of: compiling said instructions into groups of n, where n is an integer >1, instructions, for storage in a memory device, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group, with no more than one of said instructions in a group being other than said given type; fetching one group of instructions at a time from said memory device; storing said one group of fetched instructions in a storage device, with any one of said instructions in the group that is other than said given type being stored in a fixed location; retrieving the stored group of instructions from said storage device; and executing concurrently the said n instructions that are of said given type.
Claim 7
Independent Claim
148 words
A method of executing instructions of a given type in a computing machine, said method comprising the steps of: compiling said instructions into groups of n, where n is an integer >1, instructions, with each group of instructions being defined as a unit of work, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group; storing one group of instructions at a time in a first storage device; responding to the stored group of n instructions in said first storage device to determine if any data or branch instruction fetches are called for; and executing concurrently said n instructions in n different execution logic devices in response to fetching the stored instructions in said first storage device, and fetched data, if any.
Claim 8
Independent Claim
148 words
A method of executing instructions of a given type in a computing machine, said method comprising the steps of: compiling said instructions into groups of n, where n is an integer >1, instructions, with each group of instructions being defined as a unit of work, with no more than a fixed number of data and instruction fetches, and a fixed number of store operations being permitted in a group, and any branch instruction always being the last instruction in the group; storing one group of instructions at a time in a first storage device; responding to the stored group of n instructions in said first storage device to determine if any data or branch instruction fetches are called for; and executing concurrently said n instructions in n different execution logic devices in response to fetching the stored instructions in said first storage device, and fetched data, if any.
Claim 9
Dependent Claim
265 words
In apparatus for computing instructions compiled into groups of n, where n is an integer >1, instructions, with no more than a fixed number of data and branch instruction fetches and a fixed number of store operations being permitted in a group, and any branch instruction being the last instruction in the group, the combination comprising: an instruction cache in which said groups of n instructions and said branch instructions are stored; a data cache in which data to be used in the execution of said instructions is stored; a group of general purpose registers in which data read from said data cache is stored; an n stage register in which a group of n instructions at a time read from said instruction cache is stored; an instruction address generator for generating branch instruction fetches in response to a branch instruction being stored in said n stage register; at least one data address generator for generating data fetches from said general purpose registers in response to a data fetch instruction being stored in said n stage register; a switching and logic unit responsive to said n instructions in said n stage register for routing any instruction or data fetches to said instruction and data address generators, respectively, with said address generators being operative with said instruction cache, data cache and general purpose registers; and n execution logic means for responding to each of said n instructions and said switching and logic units and address generators for concurrently executing each of said n instructions, and performing said store operation in said data cache when called for.
Claim 10
Dependent Claim
265 words
In apparatus for computing instructions compiled into groups of n, where n is an integer >1, instructions, with no more than a fixed number of data and branch instruction fetches and a fixed number of store operations being permitted in a group, and any branch instruction being the last instruction in the group, the combination comprising: an instruction cache in which said groups of n instructions and said branch instructions are stored; a data cache in which data to be used in the execution of said instructions is stored; a group of general purpose registers in which data read from said data cache is stored; an n stage register in which a group of n instructions at a time read from said instruction cache is stored; an instruction address generator for generating branch instruction fetches in response to a branch instruction being stored in said n stage register; at least one data address generator for generating data fetches from said general purpose registers in response to a data fetch instruction being stored in said n stage register; a switching and logic unit responsive to said n instructions in said n stage register for routing any instruction or data fetches to said instruction and data address generators, respectively, with said address generators being operative with said instruction cache, data cache and general purpose registers; and n execution logic means for responding to each of said n instructions and said switching and logic units and address generators for concurrently executing each of said n instructions, and performing said store operation in said data cache when called for.
Claim 11
Dependent Claim
413 words
In apparatus for computing instructions of a given type compiled into groups of n, where n is an integer ≧4, instructions, with no more than one instruction being other than said given type and said one instruction being at a fixed position from one group to the next, with two data fetches and one branch instruction fetch and one store operation being permitted in a group, with any branch instruction fetch being the last instruction in the group, the combination comprising: an instruction cache wherein said groups of n instructions including branch instructions are stored; a data cache containing data necessary to perform said instructions; an n stage register in which a group of n instructions at a time is stored from said instruction cache, with any instruction other than said given type being stored in a predetermined one of said n stages; a first gating means responsive to the instruction stored in said predetermined one of said n stages for determining if the instruction is of said given type, and if so permitting same to be processed by said apparatus; a second gating means responsive to each of said n instructions for determining which instructions, if any, contains a branch instruction fetch; a third gating means responsive to each of said n instructions for determining which instruction, if any, contains a first data fetch; a fourth gating means responsive to each of said n instructions for determining which instruction, if any, contains a second data fetch; a group of general purpose registers in which addresses and data needed for executing said instructions are stored; an instruction address generation means operative with said general purpose registers and responsive to said second gating means for initiating a branch instruction fetch from said instruction cache; a first data address generation means operative with said data cache and general purpose registers and responsive to said third gating means for fetching addresses and data; a second data address generation means operative with said data cache and general purpose registers and responsive to said fourth gating means for fetching addresses and data; and n execution logic means, each operative with one of said n stages of said n stage register and said first and second data and address generators for concurrently executing the called for valid instructions of said given type including called for data fetches and store operations, if any, with the address and data called for by said store operation being provided to said data cache.
Claim 12
Dependent Claim
413 words
In apparatus for computing instructions of a given type compiled into groups of n, where n is an integer ≧4, instructions, with no more than one instruction being other than said given type and said one instruction being at a fixed position from one group to the next, with two data fetches and one branch instruction fetch and one store operation being permitted in a group, with any branch instruction fetch being the last instruction in the group, the combination comprising: an instruction cache wherein said groups of n instructions including branch instructions are stored; a data cache containing data necessary to perform said instructions; an n stage register in which a group of n instructions at a time is stored from said instruction cache, with any instruction other than said given type being stored in a predetermined one of said n stages; a first gating means responsive to the instruction stored in said predetermined one of said n stages for determining if the instruction is of said given type, and if so permitting same to be processed by said apparatus; a second gating means responsive to each of said n instructions for determining which instructions, if any, contains a branch instruction fetch; a third gating means responsive to each of said n instructions for determining which instruction, if any, contains a first data fetch; a fourth gating means responsive to each of said n instructions for determining which instruction, if any, contains a second data fetch; a group of general purpose registers in which addresses and data needed for executing said instructions are stored; an instruction address generation means operative with said general purpose registers and responsive to said second gating means for initiating a branch instruction fetch from said instruction cache; a first data address generation means operative with said data cache and general purpose registers and responsive to said third gating means for fetching addresses and data; a second data address generation means operative with said data cache and general purpose registers and responsive to said fourth gating means for fetching addresses and data; and n execution logic means, each operative with one of said n stages of said n stage register and said first and second data and address generators for concurrently executing the called for valid instructions of said given type including called for data fetches and store operations, if any, with the address and data called for by said store operation being provided to said data cache.
References Cited (Backward Citations)
US3346851A
Cited
US3544973A
Cited
US3704448A
Cited
US3771138A
Cited
US3771141A
Cited
US3815095A
Cited
US3932845A
Cited
US3893084A
Cited
US3886523A
Cited
US4025771A
Cited
US4112489A
Cited
US4128880A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1984-10-12 | 1985-04-13 | 1985-10-13 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1988-10-12 | 1989-04-13 | 1989-10-13 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 1992-10-12 | 1993-04-13 | 1993-10-13 | $7700.00 | Window Closed / Lapsed |