Banked L1 Cache Partial Store Writes for Load-Store Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern out-of-order processors face performance degradation due to delayed store operations conflicting with load operations, leading to increased hardware requirements, timing impacts, and power utilization, especially in multi-processor environments with weakly-ordered memory consistency models.

Innovation Solution

A processor pipeline with a load-store unit (LSU) that includes a level-one data cache and separate queues for loads and stores, allowing partial store operations to be written concurrently with loads, using a store mask to track written data and retrying unwritten portions in subsequent cycles, thereby optimizing store operations without stalling writes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If loads take precedence over stores in conflict resolution, then load operations are executed efficiently, but store operations are delayed and accumulate in the store queue

Engineering Contradiction:
Improveload operation throughputVSAvoidstore operation latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the cache into multiple banks, allowing store operations to be divided into partial writes that can proceed concurrently with load operations in different banks. This segmentation enables the store queue to drain faster without blocking load operations, resolving the contradiction between load throughput and store latency.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If the store queue size is increased to accommodate more stores, then store buffering capacity is improved, but hardware requirements and power utilization increase

Engineering Contradiction:
Improvestore buffering capacityVSAvoidhardware requirements
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent implements dynamic partial store writes where the store queue entries are processed in a dynamic manner based on cache bank availability. Instead of a static large queue, the system dynamically performs partial writes to multiple banks concurrently, reducing the effective queue depth needed while maintaining high store throughput.

Inventive Principle:
Principle #15Dynamics

3Reliability

If store operations wait for cache availability, then data consistency is maintained, but processor performance degrades due to stalling

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary partial store writes to available cache banks before all stores are complete. By initiating store operations in advance to banks that are ready, the system maintains data consistency while preventing processor stalling, as stores proceed concurrently with loads rather than waiting for complete cache availability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9448936B2Concurrent store and load operations
Publication Date: 2016.09.20 APPLE INC
  • US9448936B2 patent drawing
  • US9448936B2 patent drawing
  • US9448936B2 patent drawing

AI summary

Systems, processors, and methods for efficiently handling concurrent store and load operations within a processor. A processor comprises a load-store unit (LSU) with a banked level-one (L1) data cache. When a store operation is ready to write data to the L1 data cache, the store operation will skip the write to any banks that have a conflict with a concurrent load operation. A partial write of the store operation will be performed to those banks of the L1 data cache that do not have a conflict with a concurrent load operation. For every attempt to write the store operation, a corresponding store mask will be updated to indicate which portions of the store operation were successfully written to the L1 data cache.