Multi-Port Cache for Emulated Shared Memory Nodes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing emulated shared memory (ESM) architectures face challenges in optimizing data memory access, particularly in handling multi-threaded processors and supporting strong concurrent memory access and multi-prefix operations, with existing solutions being complex, power-hungry, and costly.

Innovation Solution

A data memory node with a multi-port cache and an active memory unit connected via an interconnection network, capable of processing multioperation references and returning results to processors, while utilizing cached data for efficient execution of multi-prefix operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If distributed shared memory architecture is used, then memory access bandwidth is improved, but cache coherency maintenance becomes expensive and latency increases

Engineering Contradiction:
Improvememory access bandwidthVSAvoidcache coherency maintenance time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system segments memory access into local cache operations and remote memory operations. Local operations are handled by step caches associated with each processor, while remote operations go through the interconnection network. This segmentation reduces the burden on the global coherence protocol and allows parallel processing of memory requests.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary actions by pre-loading data into step caches before they are needed, and by preparing multiple memory requests in advance. The system also uses prediction mechanisms to anticipate memory access patterns and prepare data accordingly, reducing coherence maintenance overhead.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If step caches with high associativity are used, then concurrent memory access performance is improved, but device complexity and power consumption increase

Engineering Contradiction:
Improveconcurrent memory access performanceVSAvoidstep cache structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies partial action by implementing step caches with moderate associativity rather than fully associative caches. This provides sufficient performance for concurrent memory access while avoiding the excessive complexity and power consumption of fully associative designs. The system achieves acceptable productivity with reduced resource requirements.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

Different step caches are configured with different associativity levels based on local access patterns and workload characteristics. Frequently accessed data structures have higher associativity, while less critical ones have lower associativity, optimizing the balance between performance and complexity locally.

Inventive Principle:
Principle #3Local quality

3Ease of operation

If multi-prefix operations are implemented, then programming ease is improved, but existing memory architecture complexity increases

Engineering Contradiction:
Improveprogramming easeVSAvoidmemory architecture complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements a universal memory architecture where step caches and the interconnection network can handle multiple operation types including single operations, multi-prefix operations, and concurrent read/write operations. The same hardware infrastructure supports all these operations through configurable memory controllers and flexible request handling, avoiding the need for separate specialized hardware for each operation type.

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

Solution Approach 2:

The system introduces an intermediary layer in the form of step caches and memory controllers that mediate between processors and main memory. These intermediaries handle the complexity of multi-prefix operations by buffering requests, managing coherence, and coordinating access patterns, thereby simplifying the programming model while containing architectural complexity in dedicated components.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11061817B2Memory node with cache for emulated shared memory computers
Publication Date: 2021.07.13 FLOW-COMPUTING OY
  • US11061817B2 patent drawing
  • US11061817B2 patent drawing
  • US11061817B2 patent drawing

AI summary

Data memory node (400) for ESM (Emulated Share Memory) architectures (100, 200), comprising a data memory module (402) containing data memory for storing input data therein and retrieving stored data therefrom responsive to predetermined control signals, a multi-port cache (404) for the data memory, said cache being provided with at least one read port (404A, 404B) and at least one write port (404C, 404D, 404E), said cache (404) being configured to hold recently and/or frequently used data stored in the data memory (402), and an active memory unit (406) at least functionally connected to a plurality of processors via an interconnection network (108), said active memory unit (406) being configured to operate the cache (404) upon receiving a multioperation reference (410) incorporating a memory reference to the data memory of the data memory module from a number of processors of said plurality, wherein responsive to the receipt of the multioperation reference the active memory unit (406) is configured to process the multioperation reference according to the type of the multioperation indicated in the reference, utilizing cached data in accordance with the memory reference and data provided in the multioperation reference. A method to be performed by the memory node is also presented.