Result Bypass Cache Operand Access Pipeline

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face inefficiencies in accessing operands, leading to increased power consumption and reduced battery life, particularly in SIMD cores where large RAM and banking logic result in high energy usage and pipeline stalls due to conflicts.

Innovation Solution

Implementing a data operand register file and an operand cache that stores results from the final stage of the execution pipeline, along with control logic to determine the availability of source operands in the cache or pipeline stages, allowing for reduced reads from the register file and interleaving multiple threads to hide instruction latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a large RAM and banking logic are used to store data operands in SIMD cores, then the capacity to store operands is improved, but power consumption increases

Engineering Contradiction:
Improveoperand storage capacityVSAvoidpower consumption
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

The operand storage system is segmented into multiple banks, allowing parallel access to different portions of stored data. This segmentation enables the system to maintain large storage capacity while reducing the power required for any single access operation, as only the relevant bank needs to be activated at any given time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Data operands are pre-loaded into the RAM and organized in banks before execution. This preliminary action allows the execution pipeline to access operands quickly without requiring large amounts of power during actual computation, as the data is already positioned and ready for retrieval.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If a large RAM and banking logic are used to store data operands, then operand storage capacity is improved, but pipeline stalls increase due to conflicts

Engineering Contradiction:
Improveoperand storage capacityVSAvoidpipeline stall time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

By dividing the operand storage into multiple banks, the system allows simultaneous access to different banks without conflict. This segmentation eliminates pipeline stalls that would occur if all operands were stored in a single location, as multiple read/write operations can proceed in parallel across different banks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the organizational parameter of operand storage from a single monolithic structure to a multi-bank structure. This parameter change fundamentally alters how access conflicts are resolved, allowing the system to maintain high storage capacity while enabling concurrent accesses that prevent pipeline stalls.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If general-purpose processors are designed to exploit parallelism in instruction stream, then instruction-level parallelism is improved, but performance on computational intensive tasks deteriorates

Engineering Contradiction:
Improveinstruction throughputVSAvoidperformance on computational tasks
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The processor design dynamically adapts to different computational patterns by implementing both instruction-level parallelism mechanisms and SIMD capabilities. This dynamic approach allows the system to optimize for computational intensive tasks when needed, rather than being locked into a single parallelism model that would compromise performance on specific workloads.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9600288B1Result bypass cache
Publication Date: 2017.03.21 APPLE INC
  • US9600288B1 patent drawing
  • US9600288B1 patent drawing
  • US9600288B1 patent drawing

AI summary

A system and method for efficiently accessing operands in a datapath. An apparatus includes a data operand register file and an execution pipeline with multiple stages. In addition, the apparatus includes a result bypass cache configured to store data results conveyed by at least the final stage of the execution pipeline stage. Control logic is included which is configured to determine whether source operands for an instruction entering the pipeline are available in the last stage of the pipeline or in the result bypass cache. If the source operands are available in the last stage of the pipeline or the result bypass cache, they may be obtained from one of those locations rather than reading from the register file. If the source operands are not available from the last stage or the result bypass cache, then they may be obtained from the data operand register file.