Boundary Byte Predictor for Variable Length Instruction Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Decoding variable length instructions in multi-issue microarchitectures is challenging due to the need to accurately predict instruction boundaries, with existing methods being inefficient and prone to errors.

Innovation Solution

A processor architecture that includes an instruction fetch unit, an instruction cache, a boundary byte predictor, and an instruction decoder with boundary byte logic, utilizing an array of filters to generate a prediction vector for determining instruction boundaries, which improves the accuracy of decoding by forming an initial prediction of a boundary byte based on the prediction vector.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If speculating an instruction boundary at each consecutive byte of the fetched line is used, then instruction boundary detection coverage is improved, but decoding complexity and processing time increase

Engineering Contradiction:
Improveinstruction boundary detection accuracyVSAvoiddecoding complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing instruction boundary information in the instruction cache alongside instruction data. When instructions are fetched, the boundary information is already available, eliminating the need for speculative detection at each byte during decoding. This resolves the contradiction by preparing boundary data in advance, achieving high detection accuracy without increasing real-time decoding complexity.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If searching for decoded instructions in parallel is used, then decoding speed is improved, but error rate increases

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoding accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism - a dedicated boundary information storage structure within the instruction cache that holds pre-determined instruction boundary data. This intermediary provides authoritative boundary information to the parallel decoding units, enabling them to operate in parallel without propagating errors. The intermediary acts as a reference that guides parallel decoding, maintaining both high speed and high accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If utilizing error-correcting code memory bits of the cache is used, then storage efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvecache storage efficiencyVSAvoidcache structure complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies universality by designing the instruction cache to serve multiple functions: storing instruction data, storing instruction boundary information, and providing both to the decoding unit simultaneously. The cache structure is enhanced to include boundary information fields that work alongside traditional cache data, allowing the same cache infrastructure to support both data storage and boundary detection without requiring separate dedicated structures, thus avoiding excessive complexity while improving storage efficiency.

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

Data Source

PatentUS9223714B2Instruction boundary prediction for variable length instruction set
Publication Date: 2015.12.29 INTEL CORP
  • US9223714B2 patent drawing
  • US9223714B2 patent drawing
  • US9223714B2 patent drawing

AI summary

A system, processor, and method to predict with high accuracy and retain instruction boundaries for previously executed instructions in order to decode variable length instructions is disclosed. In at least one embodiment, a disclosed processor includes an instruction fetch unit, an instruction cache, a boundary byte predictor, and an instruction decoder. In some embodiments, the instruction fetch unit provides an instruction address and the instruction cache produces an instruction tag and instruction cache content corresponding to the instruction address. The instruction decoder, in some embodiments, includes boundary byte logic to determine an instruction boundary in the instruction cache content.