US4807115A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Instruction issuing mechanism for processors with multiple functional units
Assignee: Cornell Research Foundation Inc
•
Filing: 1987-10-14
•
Granted: 1989-02-21
•
Expires: 2007-10-14
Abstract
Abstract An instruction issuing mechanism for boosting throughput of processors with multiple functional units. A Dispatch Stack (DS) and a Precedence Count Memory (PCM) are employed which allow multiple instructions to be issued per machine cycle. Additionally, instructions do no have to be issued according to their order in the instruction stream, so that non-sequential instruction issuance occurs. In this system, multiple instruction issuance and non-sequential instruction issuance policies enhance the throughput of processors with multiple functional units.
Inventors
- 👤 Hwa C. Torng
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-25 23:09
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F9/3889; G06F15/00; G06F15/76; G06F15/80; G06F15/8053; G06F9/3836; G06F9/3838
Claims Analysis
Total Claims: 23
Claim 1
Independent Claim
95 words
An instruction issuing system for a processor including an execution unit having multiple functional units comprising: an instruction issuing unit receiving instructions from a memory, operating on instructions and forwarding instructions to said execution unit, said instruction issuing unit including means for detecting the existence of concurrencies in said instructions received from said memory; and said instruction issuing unit further including means for issuing multiple instructions and non-sequential instructions to said execution unit within a single processor cycle when a concurrency is detected by said means for detecting the existence of concurrencies in said instructions.
Claim 2
Dependent Claim
95 words
An instruction issuing system for a processor including an execution unit having multiple functional units comprising: an instruction issuing unit receiving instructions from a memory, operating on instructions and forwarding instructions to said execution unit, said instruction issuing unit including means for detecting the existence of concurrencies in said instructions received from said memory; and said instruction issuing unit further including means for issuing multiple instructions and non-sequential instructions to said execution unit within a single processor cycle when a concurrency is detected by said means for detecting the existence of concurrencies in said instructions.
Claim 3
Dependent Claim
90 words
The instruction issuing system of claim 1 wherein said means for detecting the existence of concurrencies comprises a dispatch stack receiving instructions from saaid memory and operating in a first-in first-out manner, said dispatch stack receiving instructions having instruction fields of OP, S1, S2, D, where: OP is the arithmetic/logic operation to be performed, S1 specifies a register which provides the first of two or the only operand called for, S2 specifies a register yielding the second operand, and, D specifies a register receiving the result of the arithmetic/logic operation.
Claim 4
Dependent Claim
90 words
The instruction issuing system of claim 2, wherein said means for detecting the existence of concurrencies in said instruction issuing unit further comprises a precedent count memory, said precedent count memory providing fields of a first value (α) to instruction fields S1 and S2 indicative of the number of times a register S1(S2) is used as destination register in preceding, uncompleted instructions and, a second value (β) to register field D indicative of the number of times that register D is designated as a source register in preceding, uncompleted instructions.
Claim 5
Dependent Claim
54 words
The instruction issuing system of claim 2 wherein said means for detecting the existence of concurrencies includes a precedent count memory for providing values to each instruction loaded into said dispatch stack indicative of the number of times a register for a particular field is designated as a source register in preceding, uncompleted instructions.
Claim 6
Dependent Claim
71 words
The instruction issuing system of claim 3 wherein said means for detecting the existence of concurrencies determines an issue index (I 2 ) for each instruction in said dispatch stack wherein: I 2 =α(S1)+α(S2)+β(D) such that when an instruction having I 2 =0 is encountered by said means for detecting the existence of concurrencies, said means for issuing multiple instructions reserves an available functional unit and issues said instruction to it.
Claim 7
Independent Claim
116 words
A method of issuing instructions for a processor having multiple functional units comprising the steps of: reading in and storing instructions from an instruction stream into a dispatch stack, said instructions having an instruction formate of OP, S1, S2, D, where: OP is the arithmetic/logic operation to be performed; S1 is the register which provides the first of two or the only operand called for; S2 is the register yielding the second operand, and D is the register receiving the result of the arithmetic/logic operation; detecting the existence of concurrencies in instructions stored in said dispatch stack and; issuing multiple instructions and non-sequential instructions within a given processor cycle when the existence of concurrencies is detected.
Claim 8
Independent Claim
116 words
A method of issuing instructions for a processor having multiple functional units comprising the steps of: reading in and storing instructions from an instruction stream into a dispatch stack, said instructions having an instruction formate of OP, S1, S2, D, where: OP is the arithmetic/logic operation to be performed; S1 is the register which provides the first of two or the only operand called for; S2 is the register yielding the second operand, and D is the register receiving the result of the arithmetic/logic operation; detecting the existence of concurrencies in instructions stored in said dispatch stack and; issuing multiple instructions and non-sequential instructions within a given processor cycle when the existence of concurrencies is detected.
Claim 9
Dependent Claim
73 words
The method of claim 6 wherein said step of detecting further comprises the steps of; determining the number of times that individual registers in said processor are used as destination registers in preceding, uncompleted instructions, determining the number of times the individual registers in said processor are used as source registers in preceding uncompleted instructions, and providing an indication of the determination in said instruction format for each instruction in said dispatch stack.
Claim 10
Dependent Claim
50 words
The method of claim 7 wherein said step of issuing multiple instructions further comprises the step of immediately issuing a first instruction from said dispatch stack to an available functional unit when said instruction does not have any data dependencies with preceding issued instructions which have not yet been completed.
Claim 11
Dependent Claim
30 words
The method of claim 8 wherein an instruction is data dependent upon a preceding, uncompleted instruction if one of its source registers is the destination register of the uncompleted instruction.
Claim 12
Dependent Claim
28 words
The method of claim 8 wherein an instruction is data dependent upon a preceding, uncompleted instruction if its destination register is a source register of the uncompleted instruction.
Claim 13
Dependent Claim
65 words
The method of claim 7 wherein said step of determining comprises providing first values (α) to register fields S1(S2) indicative of the number of times register S1(S2) is used as destination registers in preceding, uncompleted instructions and a second value (β) to register field D indicative of the number of times that register D is designated as a source register in to preceding, uncompleted instructions.
Claim 14
Dependent Claim
64 words
The method of claim 11 further comprising the steps of content addressing the S1,S2 and D fields following the completion of an issued instruction and, appropriately decrementing the values of α's, the values of β's and updating the dispatch stack by advancing subsequent instructions stored therein and adding new instructions from said instruction stream occupy empty portions at the bottom of said dispatch stack.
Claim 15
Dependent Claim
112 words
The method of claim 11 further comprising the steps of updating the values of α and β such that when a register is assigned to an instruction as a source register its present α value is used as α(S1) or α(S2) and its β value is incremented by 1 and, when a register is assigned to an instruction as its destination register, its present β value is used as the β(D) field and its α-value is incremented by 1 and further when an issued instruction is completed the β values of each of its source registers is decremented by 1 and the α value of its destination register is decremented by 1.
Claim 16
Dependent Claim
106 words
An instruction issuing system for a processor including an execution unit having multiple functional units comprising: an instruction issuing unit receiving instructions from a memory, said instruction issuing unit operating on instructions and forwarding instructions to said execution unit, said instruction issuing unit including means for detecting the existence of a plurality of instructions received from said memory which are concurrently executable; and said instruction issuing unit further including means for issuing multiple instructions and non-sequential instructions to said execution unit within a single processor cycle when concurrently executable instructions are detected by said means for detecting the existence of concurrently executable instructions in said instructions.
Claim 17
Dependent Claim
106 words
An instruction issuing system for a processor including an execution unit having multiple functional units comprising: an instruction issuing unit receiving instructions from a memory, said instruction issuing unit operating on instructions and forwarding instructions to said execution unit, said instruction issuing unit including means for detecting the existence of a plurality of instructions received from said memory which are concurrently executable; and said instruction issuing unit further including means for issuing multiple instructions and non-sequential instructions to said execution unit within a single processor cycle when concurrently executable instructions are detected by said means for detecting the existence of concurrently executable instructions in said instructions.
Claim 18
Independent Claim
73 words
A method of issuing instructions for a processor having an execution unit with multiple functional units comprising the steps of: reading in and storing instructions from an instruction stream into a dispatch stack; detecting the existence of plurality of instructions which are concurrently executable from those instructions stored in said dispatch stack; and issuing multiple instructions and non-sequential instructions within a given processor cycle when said plurality of concurrently executable instructions are detected.
Claim 19
Independent Claim
73 words
A method of issuing instructions for a processor having an execution unit with multiple functional units comprising the steps of: reading in and storing instructions from an instruction stream into a dispatch stack; detecting the existence of plurality of instructions which are concurrently executable from those instructions stored in said dispatch stack; and issuing multiple instructions and non-sequential instructions within a given processor cycle when said plurality of concurrently executable instructions are detected.
Claim 20
Dependent Claim
73 words
The method of claim 15 wherein said step of detecting further comprises the steps of; determining the number of times that individual registers in said processor are used as destination registers in preceding, uncompleted instructions, determining the number of times the individual registers in said processor are used as source registers in preceding uncompleted instructions, and providing an indication of the determination in said instruction format for each instruction in said dispatch stack.
Claim 21
Dependent Claim
50 words
The method of claim 16 wherein said step of issuing multiple instructions further comprises the step of immediately issuing a first instruction from said dispatch stack to an available functional unit when said instruction does not have any data dependencies with preceding issued instructions which have not yet been completed.
Claim 22
Dependent Claim
30 words
The method of claim 15 wherein an instruction is data dependent upon a preceding, uncompleted instruction if one of its source registers is the destination register of the uncompleted instruction.
Claim 23
Dependent Claim
28 words
The method of claim 15 wherein an instruction is data dependent upon a preceding, uncompleted instruction if its destination register is a source register of the uncompleted instruction.
References Cited (Backward Citations)
US3297999A
Cited
US3346851A
Cited
US3462744A
Cited
US3718912A
Cited
US4050058A
Cited
US3962706A
Cited
US4128880A
Cited
US4179734A
Cited
US4197589A
Cited
US4466061A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1992-02-21 | 1992-08-22 | 1993-02-21 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1996-02-21 | 1996-08-22 | 1997-02-21 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2000-02-21 | 2000-08-22 | 2001-02-21 | $7700.00 | Window Closed / Lapsed |