Dynamic Cache Line Size Control for Multi-Core Semiconductor Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current semiconductor devices with multiple cores and shared caches lack an effective method to improve access efficiency by dynamically switching cache line sizes, which is essential for optimizing data access in varying memory usage patterns.

Innovation Solution

The semiconductor device incorporates a cache control circuit that collects instruction execution data to calculate execution frequencies for different instruction types and adjusts cache line sizes in each cache based on these frequencies, allowing each core to select an optimal cache line size for improved access efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cache line size is fixed, then device complexity is reduced, but cache access efficiency deteriorates under varying memory usage patterns

Engineering Contradiction:
Improvecache access efficiencyVSAvoidcache control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache line size is made dynamically adjustable rather than fixed. The cache control circuit receives instructions to switch between different cache line sizes (first cache line size and second cache line size) based on the type of memory access requested, allowing the system to adapt to varying memory usage patterns and improve cache access efficiency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The cache line size parameter is changed based on the type of memory access instruction. The cache control circuit identifies whether a access is a global access or local access and switches the cache line size accordingly, optimizing cache performance for different access patterns without requiring complex structural changes

Inventive Principle:
Principle #35Parameter changes

2Productivity

If cache line size is increased, then data transfer efficiency is improved, but cache memory usage efficiency deteriorates for scattered data access

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidcache memory usage efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The cache line size is dynamically switched between a first cache line size for global accesses and a second cache line size for local accesses. This dynamic adjustment allows the system to use larger cache line sizes only when beneficial for data transfer efficiency, while using smaller cache line sizes for scattered data access patterns to maintain cache memory usage efficiency

Inventive Principle:
Principle #15Dynamics

3Loss of energy

If cache line size is decreased, then cache memory usage efficiency is improved, but data transfer efficiency deteriorates for sequential access patterns

Engineering Contradiction:
Improvecache memory usage efficiencyVSAvoiddata transfer efficiency
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The cache line size parameter is switched based on the access pattern. For local accesses where data is accessed sequentially or in a localized pattern, a second cache line size is used to improve data transfer efficiency. For global accesses with scattered data patterns, a first cache line size is used to maintain cache memory usage efficiency

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11442861B2Semiconductor device and cache control method
Publication Date: 2022.09.13 FUJITSU LTD
  • US11442861B2 patent drawing
  • US11442861B2 patent drawing
  • US11442861B2 patent drawing

AI summary

A semiconductor device includes a plurality of cores, each including an instruction execution circuit and a first cache, and a second cache shared by the plurality of cores. In each of the cores, a number of completed instructions for each type of the instructions executed by the instruction execution circuit are counted, and an execution frequency for each type of instructions are calculated. Based on the execution frequencies, a cache line size preferable for use in the first cache in the core is selected. Based on the selected preferable cache line sizes for the cores, a cache line size used in the first caches and the second cache is determined.