Partial Cache Line Operations for Interconnect Traffic Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional symmetric multiprocessor systems experience inefficiencies due to memory accesses that require entire cache lines, leading to significant traffic on the system interconnect and undesirable cross-invalidation of cached data.

Innovation Solution

Implementing a method that allows for partial cache line operations, where a processing unit can initiate interconnect operations requesting a variable amount of data, with a snooper selecting and transmitting only the necessary data, reducing the amount of cached data subject to cross-invalidation and increasing local cache servicing of memory requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If entire cache lines are accessed in conventional SMP systems, then data coherency is maintained, but system interconnect traffic increases and cache invalidation overhead increases

Engineering Contradiction:
Improvedata coherencyVSAvoidsystem efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the cache line into multiple granules (e.g., 32-byte granules within a 128-byte cache line). Instead of accessing the entire cache line, the system can now access individual granules or subsets of granules. This segmentation allows selective invalidation of only the accessed granules rather than the entire cache line, reducing unnecessary memory traffic and invalidation overhead while maintaining data coherency for the specific accessed portions.

Inventive Principle:
Principle #1Segmentation

2Productivity

If partial cache line operations are implemented, then interconnect traffic is reduced, but system complexity increases

Engineering Contradiction:
Improvesystem efficiencyVSAvoidinterconnect operation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements partial action by allowing memory access requests to specify a subset of granules within a cache line rather than requiring access to the entire cache line. The interconnect operation includes a granule identifier field that enables selective addressing of specific granules. This partial action approach reduces the amount of data transferred over the interconnect and the scope of invalidation operations, improving system efficiency without requiring fundamental changes to the memory hierarchy architecture.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If full cache lines are transmitted, then data availability is ensured, but memory access latency increases

Engineering Contradiction:
Improvedata availabilityVSAvoidmemory access latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts only the necessary granules from the cache line for transmission over the interconnect. Instead of transmitting the entire cache line when a portion is needed, the system extracts and transmits only the specific granules identified in the memory access request. This extraction mechanism reduces the volume of data transmitted, thereby reducing memory access latency while ensuring that the required data is available to the requesting processor core.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8117401B2Interconnect operation indicating acceptability of partial data delivery
Publication Date: 2012.02.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8117401B2 patent drawing
  • US8117401B2 patent drawing
  • US8117401B2 patent drawing

AI summary

According to at least one embodiment, a method of data processing in a multiprocessor data processing system includes a requesting processing unit initiating an interconnect operation including a memory access request that indicates an acceptability of a variable amount of data to service the interconnect request for data. In response to snooping the memory access request on an interconnect, a snooper selects an amount of data to supply to the requesting processing unit and transmits the selected amount of data to the requesting processing unit. The requesting processing unit receives the selected amount of data and utilizes at least some of the selected amount of data to service a processor request.