Hierarchical Memory Structure for Neural Network Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current neural network processing methods face inefficiencies due to the complexities of massive layers and data operations, which are exacerbated by the need for distributed/parallel processing and effective memory management in deep learning applications.

Innovation Solution

A device and method utilizing a hierarchical memory structure comprising SRAM, DRAM, and NAND flash memory, where weights for different layers of a neural network are prefetched and stored based on their read latency characteristics to optimize processing time, allowing for adaptive memory configuration and efficient inference operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a hierarchical memory structure with multiple memory types is used, then memory capacity and cost-effectiveness are improved, but memory access time increases

Engineering Contradiction:
Improvememory capacityVSAvoidmemory access time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary actions by prefetching weights from lower-level memories (NAND flash, DRAM) into upper-level memories (SRAM) before they are actually needed for computation. This is achieved through the weight prefetcher that operates in parallel with the processing units, and the compiler that generates prefetch instructions based on the execution schedule. By preparing data in advance, the system eliminates idle waiting time during inference operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory system is segmented into multiple hierarchical levels (SRAM, DRAM, NAND flash) with different characteristics. Each level serves specific purposes: SRAM for frequently accessed weights, DRAM for intermediate storage, and NAND flash for bulk storage. This segmentation allows the system to optimize access patterns by directing different types of memory operations to appropriate levels, balancing capacity and access speed.

Inventive Principle:
Principle #1Segmentation

2Speed

If weights for multiple layers are stored in fast memory, then processing speed is improved, but device complexity and cost increase

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory configuration complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The memory configuration is made dynamic through the compiler's execution schedule generation. The system determines at compile time which weights should be loaded into which memory levels based on the specific neural network model and inference workload. This dynamic allocation allows the same hardware to be optimized for different models without requiring manual reconfiguration, reducing device complexity while maintaining processing speed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system introduces intermediary components including a weight prefetcher, memory controller, and compiler that mediate between the neural network computation requirements and the hierarchical memory structure. These intermediaries manage the complexity of coordinating multiple memory levels by handling prefetching, caching, and allocation automatically, allowing the processing units to focus on computation while the intermediary layer manages memory complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If distributed/parallel processing is implemented, then processing capacity is improved, but coordination overhead and control complexity increase

Engineering Contradiction:
Improveprocessing capacityVSAvoidcontrol complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory subsystem is designed with universal functionality to serve multiple processing units simultaneously. The weight prefetcher and memory controller can service multiple operation units in parallel, and the hierarchical structure allows any processing unit to access any memory level. This universal design reduces coordination overhead by providing a common memory interface that all units share, rather than requiring dedicated memory controllers for each unit.

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

Data Source

PatentUS20230229899A1Neural network processing method and device therefor
Publication Date: 2023.07.20 FURIOSAAI CO LTD
  • US20230229899A1 patent drawing
  • US20230229899A1 patent drawing
  • US20230229899A1 patent drawing

AI summary

According to an embodiment of the present invention, a device for artificial neural network (ANN) may comprise: memories for read/write (R/W) of data related to an ANN model; and at least one operation unit which performs, based on the data, operations for multiple layers included in the ANN model, wherein the memories include at least one memory-subsystem corresponding to a combination of different types of multiple memories, and each operation unit performs R/W of the data through a memory-subsystem associated with the each operation unit among the at least one memory-subsystem.