Cache Control Circuitry Operand Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In out-of-order processors, the result cache is often too small and simple to efficiently manage source operands for instructions, leading to evictions that reduce its effectiveness and increase access times to the register bank, which can limit processor performance.

Innovation Solution

Implementing a data value cache with two regions: a first cache region for storing result data values and a second cache region that stores source data values required by oldest pending operations and inhibits eviction until the associated operation is executed, allowing for more efficient management of operands and reducing the need for direct access to the register bank.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the result cache is implemented as a simple FIFO structure to keep it small and simple, then the device complexity is reduced, but the productivity decreases because instructions must wait longer for operands

Engineering Contradiction:
Improvecache structure complexityVSAvoidinstruction execution throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The result cache is divided into two separate regions: a first region that operates as a simple FIFO structure for general result storage, and a second region specifically dedicated to storing source operands for oldest pending operations. This segmentation allows each region to be optimized for its specific function while maintaining overall system simplicity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second cache region proactively stores source data values needed by oldest pending operations before they are executed. By anticipating future operand requirements and pre-loading them into the second region, the system reduces waiting time for instruction execution without requiring complex real-time decision-making.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If the result cache size is kept small to maintain simplicity, then the device complexity is reduced, but the loss of time increases due to more frequent register bank accesses

Engineering Contradiction:
Improvecache management complexityVSAvoidoperand access time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The second cache region acts as an intermediary buffer between the execution units and the register bank. It specifically holds source operands for oldest pending operations, providing a fast access path that eliminates the need for time-consuming register bank accesses while maintaining simple cache management in the first region.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If simple FIFO eviction policy is used to keep the cache simple, then the ease of manufacture is improved, but the reliability of operand availability decreases

Engineering Contradiction:
Improvecache control logic simplicityVSAvoidoperand availability for pending operations
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

Different eviction policies are applied to different regions of the cache. The first region uses a simple FIFO policy for general result storage, while the second region implements a specialized policy that prevents eviction of source operands needed by oldest pending operations. This local differentiation ensures operand availability where critical while maintaining overall system simplicity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11132202B2Cache control circuitry and methods
Publication Date: 2021.09.28 ARM LTD
  • US11132202B2 patent drawing
  • US11132202B2 patent drawing
  • US11132202B2 patent drawing

AI summary

An apparatus comprises execution circuitry to perform operations on source data values and to generate result data values; issue circuitry comprising one or more issue queues identifying pending operations awaiting performance by the execution circuitry, and selection circuitry to select pending operations to issue to the execution circuitry; data value cache storage comprising first and second cache regions; and cache control circuitry to control the storing to the first cache region of result data values generated by the execution circuitry and the eviction of stored result data values from the first cache region in response to newly generated result data values being stored in the first cache region; the cache control circuitry being configured to store to the second cache region result data values required as source data values for one or more oldest pending operations identified by the one or more issue queues and to inhibit eviction of a given result data value stored in the second cache region until initiation of execution of a pending operation which requires that given result data value as a source data value.