Multi-Core Group Cache Architecture with Inter-Core-Group Buses

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increase in the number of CPU cores and cache capacity leads to prolonged latency due to increased distance between CPU cores and caches, resulting in a cache or memory latency bottleneck that hinders CPU performance improvement.

Innovation Solution

The implementation of multiple core groups with intra-core-group buses and inter-core-group buses between caches in different core groups allows for efficient data access and storage across memory spaces, reducing latency by enabling parallel processing and interleaved data storage in caches and memories.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of CPU cores or cache capacity is increased beyond the miniaturization rate of semiconductors, then the CPU performance is improved, but the distance between CPU core and caches relatively increases, prolonging and deteriorating the latency between CPU core and cache

Engineering Contradiction:
ImproveCPU performanceVSAvoidlatency between CPU core and cache
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system divides the cache hierarchy into multiple levels (L1, L2, L3 caches) and organizes CPU cores into groups, where each core group has dedicated caches. This segmentation allows shorter access paths for frequently accessed data while providing capacity for larger datasets, resolving the contradiction between increased cache capacity and access latency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to the cache hierarchy by adding L3 caches that are shared among core groups but physically closer than traditional L2 caches. This creates a multi-dimensional cache structure where data can be accessed through multiple paths (L1→L2→L3 or L1→L2→memory), reducing the effective distance and latency for cache misses.

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

2Reliability

If additional provision of one layer of caches to the CPU cores between the L1 caches and the L2 caches is made, then the cache miss rate in the CPU cores is reduced, but the number of cache pipelines increases, deteriorating the latency between the main memory and the CPU cores

Engineering Contradiction:
Improvecache miss rateVSAvoidlatency between main memory and CPU cores
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple L2 caches into shared L3 caches that serve multiple core groups. Instead of having separate L2 caches for each core group (which would increase pipeline complexity and latency), the L3 caches provide a unified caching layer that reduces the number of independent cache pipelines while maintaining low miss rates through larger capacity and shared access.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The L3 caches serve multiple functions: they act as an extended cache for individual core groups, provide a shared resource for inter-core-group communication, and function as a buffer between the cache hierarchy and main memory. This multi-functionality reduces the need for separate specialized structures, simplifying the overall system while improving reliability.

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

Data Source

PatentUS9606917B2Arithmetic processing apparatus and method for controlling same
Publication Date: 2017.03.28 FUJITSU LTD
  • US9606917B2 patent drawing
  • US9606917B2 patent drawing
  • US9606917B2 patent drawing

AI summary

An arithmetic processing apparatus includes: first and second core groups each including cores, a first to an Nth (N is plural) caches that process access requests from the cores, and an intra-core-group bus through which the access requests from the cores are provided to the first to Nth caches; and a first to an Nth inter-core-group buses each provided between the first to Nth caches in the first and second core groups respectively. The first to Nth caches in the first core group individually store data from a first to an Nth memory spaces in a memory, respectively. The first to Nth caches in the second core group individually store data from an N+1th to a 2Nth memory spaces, respectively. The first to Nth caches in the first core group access the data in the N+1th to 2Nth memory spaces, respectively, via the first to Nth inter-core-group buses.