Layered Memory Architecture for Neural Network Data Exchange

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory architectures for deep neural network processing, such as centralized shared memory and distributed shared memory, face issues like bank confliction, increased memory access latency, and high costs due to exponential growth in cross-bar connections, which hinder efficient data exchange between SIMD lanes.

Innovation Solution

A layered-mixed architecture with a centralized data hub that utilizes a two-layer data-sharing design, where each processing element has a local memory connected to a global data hub, allowing for efficient and scalable data exchange between SIMD lanes through full and narrow ports, and a swizzle function for data reshuffling, reducing hardware resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If centralized shared memory architecture is used, then data exchange between SIMD lanes is enabled, but bank confliction and memory access latency increase

Engineering Contradiction:
Improvedata exchange capabilityVSAvoidmemory access latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent divides the centralized shared memory into multiple memory banks (first memory bank, second memory bank, etc.) that can be accessed independently by different SIMD lanes. This segmentation allows parallel memory access operations, reducing bank conflicts and lowering access latency while maintaining data exchange capability between lanes.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If distributed shared memory architecture is used, then memory access latency is reduced, but hardware cost increases due to exponential growth in cross-bar connections

Engineering Contradiction:
Improvememory access latencyVSAvoidhardware cost
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces a memory controller as an intermediary between SIMD lanes and memory banks. The memory controller manages memory access requests, allocates banks to different lanes, and coordinates read/write operations. This intermediary enables efficient memory access with reduced latency while avoiding the need for expensive exponential cross-bar connections, as the controller serializes and manages access to shared memory resources.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If more memory banks are added to reduce bank confliction, then data exchange efficiency improves, but hardware resource consumption increases

Engineering Contradiction:
Improvedata exchange efficiencyVSAvoidhardware resource consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent designs memory banks with multi-functional capabilities where each bank can serve multiple SIMD lanes dynamically. The memory controller implements bank allocation strategies that assign different banks to different lanes based on access patterns, allowing fewer physical memory banks to serve the function of handling conflicts that would otherwise require many more dedicated banks. This universal approach improves data exchange efficiency while controlling hardware resource consumption.

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

Data Source

PatentEP3729261B1A centralized-distributed mixed organization of shared memory for neural network processing
Publication Date: 2022.09.14 ALIBABA GROUP HOLDING LTD
  • EP3729261B1 patent drawingFigure 1
  • EP3729261B1 patent drawingFigure 2
  • EP3729261B1 patent drawingFigure 3

AI summary

The present disclosure provides a processor providing a memory architecture having M-number of processing elements each having at least N-number of processing units and a local memory. The processor comprises a first processing element of the M-number of processing elements comprising a first set of N-number of processing units configured to perform a computing operation, and a first local memory configured to store data utilized by the N-number of processing units. The processor further comprises a data hub configured to receive data from the M-number of processing elements and to provide shared data to each processing element of the M-number of processing elements.