Instruction Cache With Predecoder For Variable Length Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor designs face inefficiencies in handling variable length instructions, leading to increased power consumption and performance degradation due to the need to determine instruction boundaries and manage misaligned instructions within the instruction cache.

Innovation Solution

Storing a fixed number of variable-length instructions per cache line, aligned along predetermined boundaries, with a predecoder calculating and storing the next fetch address to simplify instruction fetching and reduce computational overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If variable length instructions are stored in the instruction cache in compact form, then cache space utilization is improved, but instruction boundary detection complexity increases and power consumption increases

Engineering Contradiction:
Improvecache space utilizationVSAvoidinstruction boundary detection complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing the addresses of subsequent instructions in the cache line metadata during the cache write operation. This eliminates the need for complex boundary detection during instruction fetch, as the next instruction address is already provided. The predecoder circuit prepares the next address in advance, resolving the contradiction between compact storage and detection complexity.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If instructions are fetched from misaligned cache lines, then cache space utilization is improved, but the number of cache accesses increases and performance decreases

Engineering Contradiction:
Improvecache space utilizationVSAvoidinstruction fetch performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent ensures that the predecoder calculates and provides the correct next instruction address in advance, even when instructions are misaligned within cache lines. This allows the fetch mechanism to directly access the required instruction without needing to perform additional aligned accesses, thus maintaining high performance while allowing flexible cache storage utilization.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If variable length instructions are stored without alignment, then cache line capacity is improved, but power consumption increases due to frequent boundary detection

Engineering Contradiction:
Improvecache line capacityVSAvoidpower consumption
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

The patent extracts the boundary detection function from the main instruction fetch path and replaces it with pre-stored address information in the cache line metadata. By taking out the complex boundary detection task and replacing it with simple address retrieval, the system achieves both high cache line capacity and low power consumption, as the detection complexity is eliminated from the critical path.

Inventive Principle:
Principle #2Taking out (Extraction)

4Ease of operation

If pre-decoding is performed to store boundary information, then instruction boundary detection is simplified, but additional computational burden is placed on the decode task

Engineering Contradiction:
Improveinstruction boundary detection easeVSAvoiddecode task complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent performs the pre-decoding and boundary calculation in advance during the cache write operation, storing the results in the cache line metadata. This shifts the computational burden from the decode task to the cache write path, which is not on the critical instruction execution path. The decode task then only needs to retrieve pre-calculated boundary information, significantly reducing its complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7568070B2Instruction cache having fixed number of variable length instructions
Publication Date: 2009.07.28 QUALCOMM INC
  • US7568070B2 patent drawing
  • US7568070B2 patent drawing
  • US7568070B2 patent drawing

AI summary

A fixed number of variable-length instructions are stored in each line of an instruction cache. The variable-length instructions are aligned along predetermined boundaries. Since the length of each instruction in the line, and hence the span of memory the instructions occupy, is not known, the address of the next following instruction is calculated and stored with the cache line. Ascertaining the instruction boundaries, aligning the instructions, and calculating the next fetch address are performed in a predecoder prior to placing the instructions in the cache.