Multi-Port SRAM Memory Pools for Scalable Low-Latency Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge in high-performance computing architectures is bridging the performance gap between diverse memory types and processors, particularly in Non-Uniform Memory Access (NUMA) systems, which hinder scalability due to memory access latency and heterogeneous data flows.

Innovation Solution

A high-performance SRAM cache system with multiple ports is introduced, supporting various caching algorithms to optimize performance across heterogeneous systems, and a distributed memory pool architecture with flexible SRAM configurations to handle different memory cycles, enabling unified memory access for CPUs, GPUs, and NPUs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If Non-Uniform Memory Access (NUMA) architecture is adopted to assign memory locally to each processing cluster, then memory access speed for local processors is improved, but scalability is hindered due to inter-cluster communication bottlenecks

Engineering Contradiction:
Improvememory access speedVSAvoidscalability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The memory system is segmented into multiple independent memory pools, each associated with a processing cluster. Each memory pool contains SRAM blocks that can be independently configured and managed, allowing the system to scale by adding more memory pools without creating inter-cluster bottlenecks while maintaining fast local access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

SRAM blocks serve as intermediary structures between processors and main memory (DRAM/NVRAM). They buffer data transfers and handle memory operations locally, reducing the need for slow inter-cluster communication while maintaining system scalability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a distributed memory pool is used to improve scalability, then system expandability is enhanced, but memory access latency increases due to distributed architecture

Engineering Contradiction:
ImprovescalabilityVSAvoidmemory access latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The memory hierarchy is organized with SRAM blocks nested within memory pools, which are in turn nested within the distributed memory system. This nested structure allows fast local access to SRAM while providing pathways to larger distributed memory resources, maintaining low latency for frequently accessed data while enabling system scalability.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

Data is pre-loaded into SRAM blocks from main memory before processing occurs. The system anticipates memory access patterns and prepares data in advance in the faster SRAM, reducing actual access latency while maintaining the benefits of distributed memory architecture.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple processor types (CPUs, GPUs, NPUs) are integrated to increase parallel processing capability, then computational performance is improved, but system complexity increases due to heterogeneous data flows

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory pool and SRAM blocks are designed as universal structures that can serve multiple processor types (CPUs, GPUs, NPUs) simultaneously. The same memory infrastructure handles diverse data flows and access patterns from different processor types, reducing overall system complexity while maintaining high parallel processing capability.

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

Solution Approach 2:

The memory system dynamically adapts to different processor types and their specific data flow requirements. Configuration parameters and access patterns can be adjusted on-the-fly based on which processors are active and what operations they are performing, allowing the system to handle heterogeneity without fixed complex routing.

Inventive Principle:
Principle #15Dynamics

4Speed

If SRAM cache is used to reduce memory access latency, then speed is improved, but power consumption increases

Engineering Contradiction:
Improvememory access speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

SRAM blocks are deployed locally at each memory pool and processing cluster rather than using a centralized cache system. This local placement reduces the energy required for data transfer while providing fast access where it is needed most, optimizing the speed-power tradeoff for each local subsystem.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

Not all data is cached in SRAM - only the most frequently accessed data portions are kept in the faster memory. The system uses partial caching strategies that maintain SRAM for hot data while allowing less frequently accessed data to remain in main memory, reducing unnecessary power consumption from maintaining large SRAM capacities.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12430270B1Multi-port SRAM system for a distributed memory pool
Publication Date: 2025.09.30 TEXAS MILKYWAY INC
  • US12430270B1 patent drawing
  • US12430270B1 patent drawing
  • US12430270B1 patent drawing

AI summary

Multiple examples are disclosed of a multi-port SRAM system for a distributed memory pool and associated methods. In one example, a system comprises a memory bus switch coupled to a plurality of memory buses; a memory pool switch coupled to one or more memory arrays; and one or more SRAM blocks coupled to the memory bus switch and the memory pool switch to convert a first transaction received on one of the plurality of memory buses to a second transaction performed on the one or more memory arrays.