SPACE Directory Decouples Sharing Patterns for Multicore Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current multicore processor coherence protocols face challenges in scalability and efficiency due to bandwidth and energy overheads, particularly with increasing core counts, as they require a one-to-one correspondence between directory entries and cache lines, leading to significant area and energy consumption.

Innovation Solution

The SPACE system decouples sharing patterns from cache lines and stores them in a separate directory table, using a set-associative organization that dynamically collates similar patterns, reducing the number of directory entries and pointers, thus minimizing area overhead and improving scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a full map sharer directory with P-bit vector is associated with every cache line, then coherence information for all processors is maintained, but the directory size becomes O(M*P) which is too large for scalability

Engineering Contradiction:
Improvecoherence information accuracyVSAvoiddirectory size
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent merges identical sharing patterns into a single directory entry. Multiple cache lines with the same sharing pattern (same set of sharers) share a common directory entry, reducing the total number of entries from O(M*P) to O(M) in the worst case, and significantly less in practice where many cache lines have identical sharing patterns.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The directory entry serves multiple cache lines simultaneously. A single directory entry can represent the sharing pattern for multiple different cache lines that happen to have the same sharer configuration, making the directory structure universal and efficient.

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

2Adaptability or versatility

If directory-based protocols are used to support scalable coherence, then coherence can be maintained with more cores, but the directory itself adds significant area and energy overheads

Engineering Contradiction:
Improvescalability to more coresVSAvoiddirectory area overhead
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

By merging cache lines with identical sharing patterns into a single directory entry, the patent reduces the directory area overhead while maintaining the ability to support scalable coherence. The directory no longer needs separate entries for every cache line, only for unique sharing patterns.

Inventive Principle:
Principle #5Merging (Combining)

3Measurement precision

If directory entries are associated one-to-one with cache lines, then precise sharing information is maintained, but the number of directory entries becomes too large for practical implementation

Engineering Contradiction:
Improvesharing pattern precisionVSAvoidnumber of directory entries
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent combines multiple cache lines with identical sharing patterns into a single directory entry. This maintains precise sharing information for all cache lines while significantly reducing the number of directory entries, as entries are shared rather than duplicated.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9411733B2Sharing pattern-based directory coherence for multicore scalability (“SPACE”)
Publication Date: 2016.08.09 UNIVERSITY OF ROCHESTER
  • US9411733B2 patent drawing
  • US9411733B2 patent drawing
  • US9411733B2 patent drawing

AI summary

A method and directory system that recognizes and represents the subset of sharing patterns present in an application is provided. As used herein, the term sharing pattern refers to a group of processors accessing a single memory location in an application. The sharing pattern is decoupled from each cache line and held in a separate directory table. The sharing pattern of a cache block is the bit vector representing the processors that share the block. Multiple cache lines that have the same sharing pattern point to a common entry in the directory table. In addition, when the table capacity is exceeded, patterns that are similar to each other are dynamically collated into a single entry.