EP1526446A2

Extensible RISC microprocessor architecture

Abstract

The high-performance, RISC core based microprocessor architecture includes an instruction fetch unit for fetching instruction sets from an instruction store and an execution unit that implements the concurrent execution of a plurality of instructions through a parallel array of functional units. The fetch unit generally maintains a predetermined number of instructions in an instruction buffer. The execution unit includes an instruction selection unit, coupled to the instruction buffer, for selecting instructions for execution, and a plurality of functional units for performing instruction specified functional operations. A unified instruction scheduler, within the instruction selection unit, initiates the processing of instructions through the functional units when instructions are determined to be available for execution and for which at least one of the functional units implementing a necessary computational function is available. Unified scheduling is performed across multiple execution data paths, where each execution data path, and corresponding functional units, is generally optimized for the type of computational function that is to be performed on the data: integer, floating point, and boolean. The number, type and computational specifics of the functional units provided in each data path, and as between data paths, are mutually independent.

EP1526446A2, drawing sheet 1
Sheet 1 of 15

Term

Term ended

Projected expiry passed 7 July 2012, 14.2 years ago.

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

4 claims: 2 independent, 2 dependent

  1. 1
    A superscalar microprocessor having a register file which can be used by plural functional units (478) that can execute instructions simultaneously, the superscalar microprocessor comprising:a fetch unit (102) to fetch plural instructions from a memory (132) in a predetermined program order, the plural instructions fetched before execution of the plural instructions by the functional units (478);a buffer (264) placed to buffer plural fetched instructions;a decoder (490) to simultaneously decode two or more instructions from the buffered plural instructions;a register file (472) used in executing the decoded instructions by the functional units (478), the register file (472) having plural registers for storing out of order execution results from the functional units (478) and a mechanism to avoid concurrent reference to one register by the plural functional units (478) that execute plural instructions simultaneously;a dependency check unit (494) to determine a dependency among the decoded ones of the plural instructions based on service conditions of the register file (472);and a dispatch circuit (498) to allocate out of order execution of at least one of the plural instructions when there is no restriction on executing the at least one instruction based on a dependency check by the dependency check unit (494) and on at least one flag in a state register of the microprocessor.
  2. 4
    A data processing unit comprising:the superscalar microprocessor according to claims 1, 2 or 3;and memory (112) whose data is accessed by the superscalar microprocessor through a system bus memory (162) for execution of said set of instructions.