Parallel Load Store Cache Merging for Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional approaches to accommodating multiple accesses in caches result in unsatisfactory latency penalties due to the need for additional banks, ports, and arbitration, which delay access to data and trigger critical Load Hit signals.

Innovation Solution

The method involves accessing a block of the load cache and its logically and physically paired block in a store coalescing cache in parallel, merging data on a per-byte basis, and providing access to the merged data, allowing for quicker access to multiple loads and stores by executing block access arbitrations and tag identification in parallel.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional multi-ported caches or caches with multiple tag and data banks are used to accommodate multiple accesses in a single cycle, then throughput is improved, but latency penalties increase due to serial arbitrations and additional access time

Engineering Contradiction:
ImprovethroughputVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The cache is segmented into multiple independent banks (first bank, second bank, third bank, fourth bank), each capable of handling requests independently. This segmentation allows parallel access to different cache banks, eliminating the need for serial arbitrations and reducing latency while maintaining high throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple cache banks are merged into a unified cache structure that can serve multiple requests simultaneously. The unified cache combines the capabilities of separate banks while enabling parallel operations, thus improving throughput without incurring latency penalties from serial arbitration.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If additional banks and ports are added to accommodate high throughput requests, then productivity is improved, but device complexity increases

Engineering Contradiction:
ImprovethroughputVSAvoidcache structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Each cache bank is designed with multi-functionality, capable of handling both load and store requests independently. This universal design allows the cache system to accommodate high throughput requests without requiring specialized structures for different request types, thereby reducing overall device complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The cache structure transitions from a single-dimension sequential access model to a multi-dimensional parallel access model. By organizing cache banks in a way that enables simultaneous access from multiple ports, the system achieves high throughput without proportionally increasing structural complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9229873B2Systems and methods for supporting a plurality of load and store accesses of a cache
Publication Date: 2016.01.05 INTEL CORP
  • US9229873B2 patent drawing
  • US9229873B2 patent drawing
  • US9229873B2 patent drawing

AI summary

Systems and methods for supporting a plurality of load and store accesses of a cache are disclosed. Responsive to a request of a plurality of requests to access a block of a plurality of blocks of a load cache, the block of the load cache and a logically and physically paired block of a store coalescing cache are accessed in parallel. The data that is accessed from the block of the load cache is overwritten by the data that is accessed from the block of the store coalescing cache by merging on a per byte basis. Access is provided to the merged data.