Nova Patents
EP0459232A2

Partially decoded instruction cache.

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.

EP0459232A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 16 May 2011, 15.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

6 claims: 4 independent, 2 dependent

  1. 1
    A processor that executes instructions retrieved from a main memory external to the processor from an internal instruction cache memory, the processor comprising:(a) means for retrieving an encoded instruction from the main memory;(b) means for decoding the encoded instruction retrieved from main memory;(c) internal cache memory storage means for storing the decoded instruction;and (d) means for retrieving the decoded instruction from the internal cache memory storage means for execution by the processor.
  2. 2
    A microprocessor that executes instructions retrieved from a main memory external to the microprocessor or from an internal instruction cache memory, the microprocessor comprising:(a) a plurality of functional units for executing instructions;(b) means for retrieving encoded instructions from main memory;(c) means for decoding the encoded instructions retrieved from main memory;(d) internal cache memory storage means comprising a plurality of storage locations, each storage location comprising a plurality of storage slots, each of the storage slots comprising means for storing a decoded instruction;and (e) means for simultaneously retrieving a plurality of decoded instructions from the storage slots of a selected cache memory storage location for parallel execution by the plurality of functional units.
  3. 4
    A method of executing instructions by a processor that retrieves instructions from a main memory external to the processor or from an internal instruction cache memory, the method comprising:(a) retrieving an encoded instruction from the main memory;(b) decoding the encoded instruction retrieved from main memory;(c) storing the decoded instruction in an internal cache memory;and (d) retrieving the decoded instruction from the internal cache memory for execution by the processor.
  4. 5
    A method of executing instructions by a microprocessor that retrieves instructions from a main memory external to the microprocessor or from an internal instruction cache memory, the microprocessor including a plurality of functional units for executing instruction, the method comprising:(a) retrieving encoded instructions from main memory;(b) decoding the instructions retrieved from main memory;(c) storing the decoded instructions in an internal cache memory storage means comprising a plurality of storage locations, each storage location comprising a plurality of storage slots, each of the storage slots comprising means for storing a decoded instruction;and (d) simultaneously retrieving a plurality of decoded instructions from the storage slots of a selected cache memory storage locatio for parallel execution by the plurality of functional units.