Dynamic Cache Line Allocation via Store Instruction Specifiers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems employ static cache line allocation policies, which fail to optimize system performance as they either never or always allocate a new cache line on write misses, leading to suboptimal performance.

Innovation Solution

Implementing a dynamic cache line allocation policy through the use of an allocation policy specifier within processor store instructions, allowing for per-access control of cache line allocation, enabling override of static policies and specifying whether to allocate a new cache line or write directly to memory on cache misses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a static cache line allocation policy is used (either always allocate or never allocate on write miss), then the system structure is simple and easy to implement, but system performance is suboptimal

Engineering Contradiction:
Improvesystem performanceVSAvoidallocation policy complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent transforms the static cache allocation policy into a dynamic one by introducing an allocation policy specifier field in store instructions. This allows the allocation behavior (allocate or do not allocate cache line) to be dynamically selected on a per-instruction basis, enabling the system to adapt to different access patterns while maintaining implementation simplicity through hardware-supported instruction encoding.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the allocation policy parameter from a fixed system-wide setting to a per-instruction variable. The allocation policy specifier field in the store instruction encodes different allocation policies, allowing the system to switch between allocation and non-allocation behaviors based on the specific instruction characteristics and access patterns, thereby optimizing performance without excessive complexity.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If cache line allocation is always performed on write miss, then subsequent accesses to the same data may benefit from cache hits, but unnecessary cache allocations increase memory usage and reduce cache effectiveness

Engineering Contradiction:
Improvecache hit rateVSAvoidcache memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies different allocation behaviors to different store instructions based on their local characteristics. The allocation policy specifier in each instruction allows the system to make localized decisions about cache allocation, allocating cache lines only for instructions that benefit from temporal locality while avoiding allocation for instructions that do not, thus optimizing both cache hit rate and memory usage.

Inventive Principle:
Principle #3Local quality

3Quantity of substance

If cache line allocation is never performed on write miss, then cache memory is preserved for other uses, but subsequent accesses to the same data cannot benefit from cache hits

Engineering Contradiction:
Improvecache memory availabilityVSAvoidcache hit rate
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent enables selective cache allocation at the instruction level through the allocation policy specifier. This allows the system to allocate cache lines locally for specific instructions that exhibit temporal locality patterns, while leaving cache memory available for other uses in instructions that do not require allocation, thus balancing cache hit rate improvement with cache memory availability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7409502B2Selective cache line allocation instruction execution and circuitry
Publication Date: 2008.08.05 APPLE INC
  • US7409502B2 patent drawing
  • US7409502B2 patent drawing
  • US7409502B2 patent drawing

AI summary

A processing system and method performs allocation of memory cache lines in response to a cache write miss. A processor receives a plurality of data processing instructions. A first store instruction for storing data in a system memory at a predetermined address is decoded by decoding a first specifier within the first store instruction. The first specifier determines an allocation policy for the first store instruction wherein the allocation policy determines whether to store data within the cache when the predetermined address is not within the cache. Additional store instructions are decoded. For example, a second specifier determines an allocation policy for a second store instruction. The specifier in each of the store instructions may be implemented in various forms to provide a policy indicator for each store instruction. No allocation policy may also be established on a per-access basis.