Modified Bit Array for Cache Coherence Status

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 adding multiple ports to cache memory arrays, and replicating tag arrays while updating cache line status consumes bandwidth and power.

Innovation Solution

A microprocessor design that includes a data cache with a modified bit array to indicate cache line modifications, allowing the second functional unit to read this status without updating the tag array, thereby reducing traffic and simplifying floor-planning and power management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If multiple ports are added to cache memory arrays to allow simultaneous access by multiple functional units, then access performance is improved, but array size and power consumption increase significantly

Engineering Contradiction:
Improveaccess performanceVSAvoidarray size
Core Design Contradiction:
SpeedVSArea of stationary object

Solution Approach 1:

The tag array is segmented into multiple replicated instances (first tag array, second tag array, etc.), each accessible by a specific functional unit. This allows simultaneous access without requiring a single large multi-ported array, thus improving access performance while controlling array size.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each tag array instance serves multiple purposes: it stores tags for cache lines accessible by its associated functional unit, and collectively they provide the functionality of a single large tag array. This multi-functionality approach improves access performance while managing array size.

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

2Speed

If multiple ports are added to cache memory arrays to allow simultaneous access by multiple functional units, then access performance is improved, but power consumption increases significantly

Engineering Contradiction:
Improveaccess performanceVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by stationary object

Solution Approach 1:

The tag array is segmented into multiple replicated instances, each accessible by a specific functional unit. This allows simultaneous access without requiring a single large multi-ported array, thus improving access performance while controlling power consumption through selective activation of only needed array instances.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each functional unit has its own dedicated tag array instance, eliminating the need for complex arbitration and control logic that would consume power in a shared multi-ported array. The system serves itself through this decentralized architecture.

Inventive Principle:
Principle #25Self-service

3Ease of manufacture

If tag arrays are replicated to allow single-ported access by each functional unit, then floor-planning and power management are simplified, but bandwidth consumption increases when updating cache line status

Engineering Contradiction:
Improvefloor-planningVSAvoidbandwidth consumption
Core Design Contradiction:
Ease of manufactureVSLoss of energy

Solution Approach 1:

The modified bit status information is extracted from the tag array and stored separately in a dedicated modified bit array. This allows functional units to read status information without consuming bandwidth on the tag array, thus simplifying floor-planning while reducing bandwidth consumption for status updates.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A separate modified bit array acts as an intermediary between the data array and tag arrays, providing status information without requiring access to the tag arrays. This mediator approach simplifies floor-planning and reduces bandwidth consumption on tag arrays.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Use of energy by stationary object

If tag arrays are replicated to allow single-ported access by each functional unit, then power management is simplified, but bandwidth consumption increases when updating cache line status

Engineering Contradiction:
Improvepower managementVSAvoidbandwidth consumption
Core Design Contradiction:
Use of energy by stationary objectVSLoss of energy

Solution Approach 1:

The modified bit status information is extracted from the tag array and stored separately in a dedicated modified bit array. This allows functional units to read status information without consuming bandwidth on the tag array, thus simplifying power management while reducing bandwidth consumption for status updates.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A separate modified bit array acts as an intermediary, providing status information without requiring access to the tag arrays. This mediator approach simplifies power management and reduces bandwidth consumption on tag arrays.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8108624B2Data cache with modified bit array
Publication Date: 2012.01.31 VIA TECH INC
  • US8108624B2 patent drawing
  • US8108624B2 patent drawing
  • US8108624B2 patent drawing

AI summary

A microprocessor includes first and second functional units and a data cache having a data array having a write port, a modified bit array having a read port and a write port, and a tag array having a read port, each array having the corresponding predetermined organization. The first functional unit writes data to a cache line of the data array. The first functional unit sets a modified bit in the modified bit array to indicate that the corresponding cache line in the data array has been modified. The second functional unit reads the modified bit from the modified bit array to determine whether or not the cache line has been modified. The second functional unit reads a partial status of the corresponding cache line from the tag array. The partial status does not indicate whether the cache line has been modified. The tag array does not include a port by which the first functional unit may update the partial status of the corresponding cache line.