Patent US5669011A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5669011A Expired / Lapsed US ⏱️ 0.0 years remaining

Partially decoded instruction cache

Assignee: National Semiconductor Corp
•
Filing: 1996-06-18
•
Granted: 1997-09-16
•
Expires: 2016-06-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A microprocessor partially decodes instructions retrieved from main memory before placing them into the microprocessor's integrated instruction cache. Each storage location in the instruction cache includes two slots for decoded instructions. One slot controls one of the microprocessor's integer pipelines and a port to the microprocessor's data cache. A second slot controls the second integer pipeline or one of the microprocessor's floating point units. The instructions retrieved from main memory are decoded by a loader unit which decodes the instructions from the compact form as stored in main memory and places them into the two slots of the instruction cache entry according to their functions. In addition, auxiliary information is placed in the cache entry along with the instruction to control parallel execution as well as emulation of complex instructions. A bit in each instruction cache entry indicates whether the instructions in the two slots are independent, so that they can be executed in parallel, or dependent, so that they must be executed sequentially. Using a single bit for this purpose allows two dependent instructions to be stored in the slots of the single cache entry.

Inventors

  • 👤 Donald B. Alpert
  • 👤 Dror Avnon
  • 👤 Amos Ben-Meir
  • 👤 Ran Talmudi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 17:23
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3818; G06F9/382; G06F9/3017; G06F9/30174; G06F9/3802; G06F9/3822; G06F9/3836; G06F9/3853; G06F9/3877; G06F9/3885

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 240 words
A microprocessor that includes at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate of greater than one instruction per system clock cycle, encoded instructions being retrieved from a main memory that is external to the microprocessor and that is connectable to the microprocessor via a system bus, the microprocessor comprising: an instruction cache that includes a plurality of individual instruction cache entries, each individual instruction cache entry including a first storage slot for storing a first partially-decoded instruction and a second storage slot for storing a second partially-decoded instruction; a bus interface unit connected to the system bus for sequentially retrieving first and second encoded instructions from the external main memory, the first encoded instruction having a length different than the length of the second encoded instruction, and an instruction loader that is connected to the bus interface unit for sequentially translating the first encoded instruction to a first partially-decoded instruction and the second encoded instruction to a second partially-decoded instruction, the instruction loader being connected to the instruction cache for sequentially storing the first and second partially-decoded instructions in the first and second storage slots, respectively, of a selected instruction cache entry.
Claim 2
Dependent Claim 240 words
A microprocessor that includes at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate of greater than one instruction per system clock cycle, encoded instructions being retrieved from a main memory that is external to the microprocessor and that is connectable to the microprocessor via a system bus, the microprocessor comprising: an instruction cache that includes a plurality of individual instruction cache entries, each individual instruction cache entry including a first storage slot for storing a first partially-decoded instruction and a second storage slot for storing a second partially-decoded instruction; a bus interface unit connected to the system bus for sequentially retrieving first and second encoded instructions from the external main memory, the first encoded instruction having a length different than the length of the second encoded instruction, and an instruction loader that is connected to the bus interface unit for sequentially translating the first encoded instruction to a first partially-decoded instruction and the second encoded instruction to a second partially-decoded instruction, the instruction loader being connected to the instruction cache for sequentially storing the first and second partially-decoded instructions in the first and second storage slots, respectively, of a selected instruction cache entry.
Claim 3
Dependent Claim 42 words
A microprocessor as in claim 1 and wherein the selected instruction cache entry includes auxiliary storage space for storing auxiliary information received from the instruction loader and indicative of the length of the first encoded instruction and of the second encoded instruction.
Claim 4
Dependent Claim 69 words
A microprocessor as in claim 1 and wherein the first execution unit is connected to receive the first partially-decoded instruction from the first storage slot of the selected instruction cache entry and the second execution unit is connected to receive the second partially-decoded instruction from the second storage slot of the selected instruction cache entry in parallel with receipt by the first execution unit of the first partially-decoded instruction.
Claim 5
Dependent Claim 75 words
A microprocessor as in claim 1 wherein the instructions stored in the external main memory include encoded core instructions and encoded non-core instructions and the microprocessor further comprises an instruction emulator that is connected to the system bus and that responds to an encoded non-core instruction retrieved from the external main memory by generating a corresponding sequence of partially decoded core instructions for execution by a selected one of the first and second instruction units.
Claim 6
Dependent Claim 54 words
A microprocessor as in claim 1 and wherein the instruction loader includes a comparison mechanism that determines whether the first and second partially-decoded instruction are independent such that the first and second partially-decoded instructions may be executed in parallel, or are dependent such that the first and second partially-decoded instructions may be executed sequentially.
Claim 7
Dependent Claim 39 words
A microprocessor as in claim 5 wherein the selected instruction cache entry includes auxiliary storage space for storing auxiliary information received from the instruction loader and indicative of whether the first and second partially-decoded instructions are independent or dependent.
Claim 8
Dependent Claim 19 words
A microprocessor as in claim 6 and wherein the auxiliary information indicates the length of the associated encoded instruction.
Claim 9
Dependent Claim 19 words
A microprocessor as in claim 1 and wherein the first and second partially decoded instructions are the same length.
Claim 10
Dependent Claim 201 words
A microprocessor-implemented method of executing instructions, the microprocessor including at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate greater than one instruction per system clock cycle, encoded instructions being retrieved from a main memory that is external to the microprocessor and that is connectable to the microprocessor via a system bus, the microprocessor further including a plurality of instruction cache entries, each instruction cache entry including a first storage slot for storing a first partially-decoded instruction and a second storage slot for storing a second partially-decoded instruction, the method comprising: retrieving first and second encoded instructions from the external main memory, the first encoded instruction having a length different than the length of the second encoded instruction; sequentially decoding the first and second encoded instructions to provide first and second partially-decoded instructions; sequentially storing the first and second partially-decoded instructions in the first and second storage slots, respectively, of a selected instruction cache entry.
Claim 11
Dependent Claim 201 words
A microprocessor-implemented method of executing instructions, the microprocessor including at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate greater than one instruction per system clock cycle, encoded instructions being retrieved from a main memory that is external to the microprocessor and that is connectable to the microprocessor via a system bus, the microprocessor further including a plurality of instruction cache entries, each instruction cache entry including a first storage slot for storing a first partially-decoded instruction and a second storage slot for storing a second partially-decoded instruction, the method comprising: retrieving first and second encoded instructions from the external main memory, the first encoded instruction having a length different than the length of the second encoded instruction; sequentially decoding the first and second encoded instructions to provide first and second partially-decoded instructions; sequentially storing the first and second partially-decoded instructions in the first and second storage slots, respectively, of a selected instruction cache entry.
Claim 12
Dependent Claim 88 words
A method as in claim 9 and further comprising: determining whether the first and second partially-decoded instructions are independent such that the first and second partially-decoded instructions may be executed in parallel, or are dependent such that the first and second partially-decoded instructions must be executed sequentially; and in the event that the first and second partially-decoded instructions are determined to be independent, simultaneously retrieving the first and second partially-decoded instructions from the selected instruction cache entry for parallel execution by the first and second execution units, respectively.
Claim 13
Dependent Claim 34 words
A method as in claim 10 and including the further step of storing auxiliary information in the selected instruction cache entry indicative of whether the first and second partially-decoded instructions are independent or dependent.
Claim 14
Dependent Claim 29 words
A method as in claim 11 and further comprising storing additional information in the selected instruction cache entry indicative of the lengths of the first and second encoded instructions.
Claim 15
Dependent Claim 18 words
A method as in claim 9 and wherein the first and second partially-decoded instructions are the same length.
Claim 16
Dependent Claim 324 words
A microprocessor-implemented method of executing instructions, the microprocessor including at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate greater than one instruction per system clock cycle, the microprocessor further including an instruction cache having a plurality of instruction cache entries, each instruction cache entry including a first storage slot for storing a first-partially decoded instruction and a second storage slot for storing a second partially-decoded instruction, the method comprising: retrieving first and second encoded instructions from a main memory that is external to the microprocessor, the first encoded instruction having a length different than the length of the second encoded instruction; determining whether the first encoded instruction will be executed by the first execution unit or by the second execution unit; decoding the first and second encoded instructions to provide first and second partially-decoded instructions, respectively; in the event that the determining step determines that the first encoded instruction will be executed by the first execution unit, storing the first partially-decoded instruction in the first storage slot of a selected instruction cache entry and the second partially-decoded instruction in the second storage slot of the selected instruction cache entry and, in the event that the determining step determines that the first encoded instruction will be executed by the second execution unit, storing the first partially-decoded instruction in the second storage slot of the selected instruction cache entry and the second-partially decoded instruction in the first storage slot of the selected instruction cache entry; and providing the partially-decoded instruction stored in the first storage slot to the first execution unit in parallel with providing the partially-decoded instruction stored in the second storage slot to the second execution unit.
Claim 17
Dependent Claim 324 words
A microprocessor-implemented method of executing instructions, the microprocessor including at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate greater than one instruction per system clock cycle, the microprocessor further including an instruction cache having a plurality of instruction cache entries, each instruction cache entry including a first storage slot for storing a first-partially decoded instruction and a second storage slot for storing a second partially-decoded instruction, the method comprising: retrieving first and second encoded instructions from a main memory that is external to the microprocessor, the first encoded instruction having a length different than the length of the second encoded instruction; determining whether the first encoded instruction will be executed by the first execution unit or by the second execution unit; decoding the first and second encoded instructions to provide first and second partially-decoded instructions, respectively; in the event that the determining step determines that the first encoded instruction will be executed by the first execution unit, storing the first partially-decoded instruction in the first storage slot of a selected instruction cache entry and the second partially-decoded instruction in the second storage slot of the selected instruction cache entry and, in the event that the determining step determines that the first encoded instruction will be executed by the second execution unit, storing the first partially-decoded instruction in the second storage slot of the selected instruction cache entry and the second-partially decoded instruction in the first storage slot of the selected instruction cache entry; and providing the partially-decoded instruction stored in the first storage slot to the first execution unit in parallel with providing the partially-decoded instruction stored in the second storage slot to the second execution unit.
Claim 18
Dependent Claim 29 words
A method as in claim 14 and further comprising storing additional information in the selected instruction cache entry indicative of the lengths of the first and second encoded instructions.
Claim 19
Dependent Claim 390 words
A microprocessor-implemented method of executing instructions, the microprocessor including at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate greater than one instruction per system clock cycle, encoded instructions being retrieved from a main memory that is external to the microprocessor and that is connectable to the microprocessor via a system bus, the encoded instructions including encoded core instructions and encoded non-core instructions, the microprocessor further including a plurality of instruction cache entries, each instruction cache entry including a first storage slot for storing a first partially-decoded instruction and a second storage slot for storing a second partially-decoded instruction, the method comprising: (a) retrieving first and second encoded instructions from the external main memory on sequential cycles of the system clock signal, the first encoded instruction having a length different than the length of the second encoded instruction; (b) determining whether the first and second encoded instructions are encoded core instructions or encoded non-core instructions; (c) in the event that both the first encoded instruction and the second encoded instruction are core instructions; (i) sequentially decoding the first and second encoded core instructions to provide first and second partially-decoded core instructions; (ii) sequentially storing the first and second partially-decoded core instructions in the first and second storage slots, respectively, of a selected instruction cache entry; (iii) determining whether the first and second partially-decoded core instructions are independent such that the first and second partially-decoded core instructions may be executed in parallel, or are dependent such that the first and second partially-decoded core instructions must be executed sequentially; and (iv) in the event that the first and second partially-decoded core instructions are determined to be independent, simultaneously retrieving the first and second partially-decoded core instructions from the selected instruction cache entry for parallel execution by the first and second execution units, respectively; and (d) in the event that either the first encoded instruction or the second encoded instruction is an encoded non-core instruction, generating a corresponding sequence of partially-decoded core instructions for sequential execution by a selected one of the first and second execution units.
Claim 20
Dependent Claim 390 words
A microprocessor-implemented method of executing instructions, the microprocessor including at least first and second parallel-operating execution units such that each of the first and second execution units responds to periodic cycles of a system clock signal by executing instructions in parallel with the execution of instructions by the other of the first and second execution units such that the microprocessor executes instructions at a rate greater than one instruction per system clock cycle, encoded instructions being retrieved from a main memory that is external to the microprocessor and that is connectable to the microprocessor via a system bus, the encoded instructions including encoded core instructions and encoded non-core instructions, the microprocessor further including a plurality of instruction cache entries, each instruction cache entry including a first storage slot for storing a first partially-decoded instruction and a second storage slot for storing a second partially-decoded instruction, the method comprising: (a) retrieving first and second encoded instructions from the external main memory on sequential cycles of the system clock signal, the first encoded instruction having a length different than the length of the second encoded instruction; (b) determining whether the first and second encoded instructions are encoded core instructions or encoded non-core instructions; (c) in the event that both the first encoded instruction and the second encoded instruction are core instructions; (i) sequentially decoding the first and second encoded core instructions to provide first and second partially-decoded core instructions; (ii) sequentially storing the first and second partially-decoded core instructions in the first and second storage slots, respectively, of a selected instruction cache entry; (iii) determining whether the first and second partially-decoded core instructions are independent such that the first and second partially-decoded core instructions may be executed in parallel, or are dependent such that the first and second partially-decoded core instructions must be executed sequentially; and (iv) in the event that the first and second partially-decoded core instructions are determined to be independent, simultaneously retrieving the first and second partially-decoded core instructions from the selected instruction cache entry for parallel execution by the first and second execution units, respectively; and (d) in the event that either the first encoded instruction or the second encoded instruction is an encoded non-core instruction, generating a corresponding sequence of partially-decoded core instructions for sequential execution by a selected one of the first and second execution units.

References Cited (Backward Citations)

US4933837A Cited
US5202967A Cited
US5233694A Cited
US5129067A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-09-15 2001-03-17 2001-09-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-09-15 2005-03-17 2005-09-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-09-15 2009-03-17 2009-09-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag