Systolic Storage Tile for Cache Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cache memory systems face a trade-off between access time and the number of frequently-accessed values, with larger L1 caches increasing access time and smaller caches increasing the number of misses, leading to slower higher-order caches and inefficient request handling.

Innovation Solution

A storage array tile design that supports systolic move-to-front and push-backward operations without global control, using a spiral cache architecture with distributed control logic to dynamically reorganize values and reduce worst-case access latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the L1 cache size is increased to store more frequently-accessed values, then the number of frequently-accessed values available at short access times is improved, but the access time increases due to physical wiring constraints and signal propagation speed limits

Engineering Contradiction:
Improvenumber of frequently-accessed valuesVSAvoidaccess time
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The cache is divided into multiple independent tiles that can operate in parallel. Each tile is a self-contained unit with its own storage locations and control logic, allowing the system to handle multiple access requests simultaneously without increasing the access time for individual tiles.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a traditional single-cache-hierarchy model to a two-dimensional tiled array architecture. This spatial reorganization allows values to be distributed across multiple tiles, enabling parallel access operations and reducing the effective access time through dimensional expansion of the cache structure.

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

2Speed

If the L1 cache size is reduced to decrease access time, then the access time is improved, but the number of frequently-accessed values that can be stored decreases, leading to more cache misses

Engineering Contradiction:
Improveaccess timeVSAvoidnumber of frequently-accessed values
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

By segmenting the cache into multiple smaller tiles, each tile can maintain fast access times while the collective array of tiles provides increased total storage capacity for frequently-accessed values.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements replication of cache functionality across multiple tiles, where each tile contains duplicate control logic and storage structures. This allows the system to serve multiple values simultaneously through parallel tile operations, effectively increasing capacity without proportionally increasing access time.

Inventive Principle:
Principle #26Copying

3Device complexity

If traditional cache control algorithms are used to handle one outstanding request at a time, then the control logic is simple, but the productivity decreases due to stalled pipelines and severe performance penalties

Engineering Contradiction:
Improvecontrol logic complexityVSAvoidrequest handling throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The control logic is segmented and distributed across individual tiles rather than centralized. Each tile independently handles its own access requests, enabling parallel processing of multiple requests simultaneously without requiring complex centralized arbitration or stalling mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each tile is self-sufficient with embedded control logic that autonomously manages its own storage locations and access requests. This self-service capability eliminates the need for complex global control algorithms and allows simultaneous independent handling of multiple requests across different tiles.

Inventive Principle:
Principle #25Self-service

4Quantity of substance

If higher-order cache levels are used to store values not in L1 cache, then the storage capacity is improved, but the access time increases by 10-100 times due to propagation speed constraints

Engineering Contradiction:
Improvestorage capacityVSAvoidaccess time
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent creates a parallel cache structure through tiled arrays that operates at the same hierarchical level as traditional L1 cache, providing extended capacity without the latency penalty of higher-order cache levels. This dimensional approach allows fast access to a larger set of frequently-used values.

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

Solution Approach 2:

By dividing the extended cache into multiple tiles with local control logic, the system provides large storage capacity distributed across many small, fast-access units, avoiding the need for a single large slow cache or multiple hierarchical levels.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8015357B2Storage array tile supporting systolic movement operations
Publication Date: 2011.09.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8015357B2 patent drawing
  • US8015357B2 patent drawing
  • US8015357B2 patent drawing

AI summary

A tile for use in a tiled storage array provides re-organization of values within the tile array without requiring sophisticated global control. The tiles operate to move a requested value to a front-most storage element of the tile array according to a global systolic clock. The previous occupant of the front-most location is moved or swapped backward according to the systolic clock, and the new occupant is moved forward according to the systolic clock, according to the operation of the tiles, while providing for multiple in-flight access requests within the tile array. The placement heuristic that moves the values is determined according to the position of the tiles within the array and the behavior of the tiles. The movement of the values can be performed via only next-neighbor connections of adjacent tiles within the tile array.