Modified Bit Array for Cache Coherence Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern microprocessors face challenges in cache line coherence status management due to increased size and power consumption when multiple functional units access cache memory, and replicating tag arrays while reducing bandwidth and power consumption issues.

Innovation Solution

A cache memory system with three arrays: one for storing cache lines, another for the first partial status, and a third for indicating modification status, allowing only the modification status to be updated in the third array, thereby reducing the need to access all tag arrays for status updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple tag arrays are replicated for each functional unit, then each functional unit can access the tag array simultaneously, but the total space required increases and power consumption increases

Engineering Contradiction:
Improvesimultaneous access capabilityVSAvoidtag array space
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The tag array is segmented into multiple single-ported arrays, with each functional unit having its own dedicated tag array. This segmentation allows simultaneous access by different functional units while keeping each individual tag array smaller, thus reducing the complexity of accessing a single large multi-ported array.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple tag arrays are replicated for each functional unit, then each functional unit can access the tag array simultaneously, but power consumption increases because all tag arrays must consume power during updates

Engineering Contradiction:
Improvesimultaneous access capabilityVSAvoidtag array power consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The modified bit storage function is extracted from the tag arrays and placed in a separate dedicated array. This allows the tag arrays to remain read-only during modification operations, eliminating the need for them to consume power during write operations, while the separate modified bit array handles the write operations independently.

Inventive Principle:
Principle #2Taking out (Extraction)

3Area of stationary object

If a single multi-ported tag array is used, then space is saved, but the size becomes very large making floor-planning difficult and access bandwidth is limited

Engineering Contradiction:
Improvetag array spaceVSAvoidfloor-planning complexity
Core Design Contradiction:
Area of stationary objectVSDevice complexity

Solution Approach 1:

The large single tag array is divided into multiple smaller single-ported tag arrays, each accessible by a specific functional unit. This segmentation makes floor-planning easier as each smaller array can be independently placed and managed, while still providing the required simultaneous access capability through the multiple arrays.

Inventive Principle:
Principle #1Segmentation

4Reliability

If all tag arrays are accessed to update status when cache line is modified, then coherence is maintained, but precious access bandwidth is consumed

Engineering Contradiction:
Improvecache line coherenceVSAvoidtag array access bandwidth
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The modification status tracking is extracted from the tag arrays and stored in a separate modified bit array. When a cache line is modified, only the corresponding bit in the modified bit array needs to be updated, not the entire tag arrays. This maintains coherence information while preserving tag array bandwidth for other operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8108621B2Data cache with modified bit array
Publication Date: 2012.01.31 VIA TECH INC
  • US8108621B2 patent drawing
  • US8108621B2 patent drawing
  • US8108621B2 patent drawing

AI summary

A cache memory system includes a first array of storage elements each configured to store a cache line, a second array of storage elements corresponding to the first array of storage elements each configured to store a first partial status of the cache line in the corresponding storage element of the first array, and a third array of storage elements corresponding to the first array of storage elements each configured to store a second partial status of the cache line in the corresponding storage element of the first array. The second partial status indicates whether or not the cache line has been modified. When the cache memory system modifies the cache line within a storage element of the first array, it writes only the second partial status in the corresponding storage element of the third array to indicate that the cache line has been modified but refrains from writing the first partial status in the corresponding storage element of the second array. The cache memory system reads both the first partial status and the second partial status to determine the full status.