Selective Instruction Sequence Buffer for Processor Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional micro-op caches consume high area and power to store micro-ops for complex instruction sequences, while micro-op buffers are limited to simple sequences, lacking an efficient solution for storing micro-ops of frequently-called complex sequences without excessive resource usage.

Innovation Solution

A selective instruction sequence buffer controller is introduced to store previously decoded micro-operations of frequently-called instruction sequences, determining their frequency of use and storing them in a buffer to reduce re-fetching and re-decoding, thereby disabling fetch and decode circuits and conserving power.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a micro-op cache is used to store micro-ops for complex instruction sequences, then the processor can efficiently retrieve previously decoded micro-ops, but the area and power consumption increase significantly

Engineering Contradiction:
Improveinstruction retrieval efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The patent applies local quality by creating different types of storage structures with different characteristics: a fully associative micro-op cache for complex instruction sequences and a set-associative buffer for simpler sequences. This allows the system to optimize power consumption by using the lower-power buffer for common cases while maintaining the high-performance cache for when it's truly needed, rather than using the high-power cache for all micro-ops.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the micro-op storage system into two distinct parts: a micro-op cache and a micro-op buffer. The buffer handles frequently accessed micro-ops from simple instruction sequences, while the cache handles more complex cases. This segmentation allows the system to reduce overall power consumption by avoiding full cache operations for routine micro-ops while maintaining high retrieval efficiency for frequently accessed sequences.

Inventive Principle:
Principle #1Segmentation

2Use of energy by stationary object

If a micro-op buffer is used instead of a micro-op cache, then area and power consumption are reduced, but the buffer can only store micro-ops for simple instruction sequences

Engineering Contradiction:
Improvepower consumptionVSAvoidinstruction sequence complexity handling
Core Design Contradiction:
Use of energy by stationary objectVSAdaptability or versatility

Solution Approach 1:

The patent makes the system universal by designing it to handle multiple types of instruction sequences through different storage paths. The micro-op buffer is designed to handle simple sequences efficiently, while the micro-op cache provides backup capability for complex sequences that don't fit the buffer's constraints. This multi-functional approach allows the system to adapt to varying instruction sequence complexities without sacrificing power efficiency for the common case.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces an intermediary classification mechanism that determines whether a micro-op sequence should be stored in the buffer or the cache. This intermediary layer analyzes the instruction sequence characteristics and routes them to the appropriate storage structure, enabling the system to maintain both power efficiency and versatility by matching the right storage type to the right instruction sequence.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If frequently-called instruction sequences are stored in dedicated storage, then re-fetching and re-decoding are avoided, but the fetch and decode circuits must be temporarily disabled

Engineering Contradiction:
Improveinstruction processing timeVSAvoidfetch and decode circuit availability
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent applies dynamics by making the storage system adaptive rather than static. The micro-op buffer dynamically learns which instruction sequences are frequently accessed and automatically stores them, while the system can dynamically switch between buffer and cache based on the current instruction sequence characteristics. This dynamic behavior allows the system to optimize for speed when patterns are recognized while maintaining circuit availability for handling new or varying instruction sequences.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9830152B2Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor
Publication Date: 2017.11.28 QUALCOMM INC
  • US9830152B2 patent drawing
  • US9830152B2 patent drawing
  • US9830152B2 patent drawing

AI summary

Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor is disclosed. In one aspect, a selective instruction sequence buffer controller is configured to selectively store previously decoded instructions for an instruction sequence by determining if a received instruction address corresponds to an instruction sequence captured in an instruction sequence buffer. If the received instruction address corresponds to a captured instruction sequence, the selective instruction sequence buffer controller provides corresponding micro-operations stored in the instruction sequence buffer for execution. If the received instruction address does not correspond to the captured instruction sequence, the selective instruction sequence buffer controller reduces a frequency indicator of the instruction sequence. The selective instruction sequence buffer controller may also increase the frequency indicator of the instruction sequence when the instruction sequence is accessed, capturing the instruction sequence once the frequency indicator meets a threshold.