Processor Microcode Memory for Instruction Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrated circuits (ICs) face challenges in efficiently processing complex instructions due to the increasing complexity of their design, where existing processors struggle to balance the execution of short and long instructions, leading to inefficiencies in code density and performance.

Innovation Solution

The development of processors that combine short instructions to decode and access long instructions, utilizing microcode memory with cycle offsets to enable 'fire-and-forget' instruction execution, allowing for custom instructions and improved performance by accessing and decoding a single long instruction into multiple sub-instructions, thereby enhancing code density and flexibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processors use long instructions to increase functionality, then performance improves, but code density decreases and processing complexity increases

Engineering Contradiction:
Improveprocessing performanceVSAvoidinstruction processing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments long complex instructions into multiple short microinstructions stored in microcode memory. When a long instruction is decoded, it is broken down into a sequence of simpler microinstructions that can be executed individually, reducing the processing complexity while maintaining the functionality of the original long instruction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces microcode memory as an intermediary between the instruction decoder and the execution units. The microcode memory stores pre-defined sequences of microinstructions that implement complex operations, acting as a mediator that translates high-level long instructions into executable microinstructions, thereby simplifying the processor's instruction processing logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If processors use short instructions to improve code density, then code density increases, but the ability to execute complex instructions efficiently decreases

Engineering Contradiction:
Improveinstruction format simplicityVSAvoidcomplex instruction execution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent uses preliminary action by pre-compiling complex instructions into sequences of microinstructions and storing them in microcode memory before execution. When a complex instruction is encountered, the processor simply retrieves the pre-prepared microinstruction sequence from memory, avoiding the need to complexly process the long instruction in real-time and maintaining high execution efficiency.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If processors execute instructions sequentially, then simplicity is maintained, but execution speed decreases

Engineering Contradiction:
Improveinstruction execution controlVSAvoidinstruction execution speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The patent introduces dynamic instruction execution by allowing the processor to dynamically retrieve and execute microinstruction sequences from microcode memory based on the decoded long instruction. This dynamic approach enables the processor to adaptively execute complex instructions through pre-optimized microinstruction sequences, improving execution speed while maintaining controlled complexity through the structured microcode format.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2531927B1Efficient processor apparatus and associated methods
Publication Date: 2018.05.16 ALTERA CORP
  • EP2531927B1 patent drawingFigure 1
  • EP2531927B1 patent drawingFigure 2
  • EP2531927B1 patent drawingFigure 3

AI summary

An apparatus includes a processor. The processor includes two memories. The first memory stores one set of instructions. The second memory stores another set of instructions that are longer than the set of instructions in the first memory. An instruction in the set of instructions in the first memory is used as a pointer to a corresponding instruction in the set of instructions in the second memory.