← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag