Distributed Temporal Cache for SoC Memory Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, particularly artificial reality systems, there is a challenge in efficiently sharing on-die memory distributed among compute elements as local memory, leading to issues with latency and energy consumption when sharing memory across different subsystems, especially when some subsystems are not continuously powered on.

Innovation Solution

Implementing a set-associative cache system that maps cacheable memory locations to multiple local memories, allowing data blocks to be fetched from either the cache or the memory based on availability, and using a TAG memory to manage data storage and retrieval efficiently, thereby reducing the need for frequent data copying and minimizing energy expenditure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If on-die SRAM is distributed as local memory close to compute elements, then bandwidth and latency are improved, but memory sharing capability deteriorates

Engineering Contradiction:
Improvememory access latencyVSAvoidmemory sharing capability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The SRAM is segmented into multiple distributed local memory banks, each associated with specific compute elements. This segmentation allows each local memory to serve its nearby compute elements with low latency while the cache controller manages sharing across subsystems by selecting appropriate local memories for cache operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A cache controller is introduced as an intermediary between the distributed local memories and compute elements. The cache controller receives memory requests, determines which local memory contains the requested data, and retrieves data from the appropriate local memory or system memory, enabling efficient sharing without compromising local access performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If distributed local memory is shared with remote compute elements, then memory sharing capability is improved, but latency increases

Engineering Contradiction:
Improvememory sharing capabilityVSAvoidmemory access latency
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

Different quality levels of memory access are provided based on location: local compute elements access their associated local memory with low latency, while remote compute elements access the same local memory through the cache controller with higher latency. This local quality approach allows memory sharing while maintaining optimal performance for local accesses.

Inventive Principle:
Principle #3Local quality

3Use of energy by moving object

If narrow connections are used to share distributed memory, then energy consumption is reduced, but bandwidth decreases

Engineering Contradiction:
Improveenergy consumptionVSAvoidmemory bandwidth
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The connection width and activation of memory sharing pathways are made dynamic. When a local memory is not being used by its associated compute elements, the cache controller activates connections to share that memory with remote compute elements. The connection width is adjusted based on the current usage state, providing high bandwidth when needed and low energy consumption when memory is idle.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11681627B1Distributed temporal cache for Systems on a Chip
Publication Date: 2023.06.20 META PLATFORMS TECHNOLOGIES LLC
  • US11681627B1 patent drawing
  • US11681627B1 patent drawing
  • US11681627B1 patent drawing

AI summary

A system and method for accessing cache lines of an N-way set associative cache distributed across local memory of compute elements. The set associative cache includes a plurality of sets, with each location in cacheable local memory mapped to one of the sets and each set including N locations for caching data blocks read from the cacheable memory. Each set is mapped to one of the local memories, when that local memory is not in use by local compute elements. A cache controller is configured to receive a read request, to identify a data block in the cacheable memory associated with the address, to determine if the identified data block is in cache in one of the local memories, and, if the identified data block is in cache in one of the local memories, to fetch the identified data block from the cache.