Non-Volatile Memory Array Solving Partial Differential Equations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for solving partial differential equations on Von-Neumann-based computing architectures face limitations in computing speed and energy efficiency due to data transfer bottlenecks and the large, sparse nature of iterative coefficient matrices, which are challenging for edge computing applications.

Innovation Solution

A method utilizing a non-volatile memory array to convert partial differential equations into iterative relations, where a reusable sub-matrix cell is stored and used for matrix-vector multiplication, optimizing memory usage and energy efficiency by segmenting the coefficient matrix into smaller sub-matrices and performing operations in a non-volatile memory array.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional Von-Neumann-based computing architecture is used to solve partial differential equations, then the solution can be obtained through standard numerical methods, but computing speed is greatly limited and huge energy consumption is required due to data transfer bottleneck between CPU and memory

Engineering Contradiction:
Improvecomputing speedVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments the large-scale sparse coefficient matrix into multiple smaller sub-matrices stored in the non-volatile memory array. This segmentation allows parallel processing of matrix-vector multiplication operations across different memory regions, significantly improving computing speed while reducing the energy consumption associated with data transfer between CPU and memory.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent replaces the traditional mechanical/electrical data transfer mechanism between CPU and memory with an in-memory computing approach. The non-volatile memory array performs matrix-vector multiplication operations directly within the memory structure, eliminating the need for continuous data movement and associated energy consumption.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If the iterative coefficient matrix is directly stored in memory, then the complete matrix data is available for computation, but huge hardware overhead is caused due to the very large scale and sparsity of the matrix

Engineering Contradiction:
Improvedata availabilityVSAvoidhardware overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the large-scale sparse coefficient matrix into multiple smaller sub-matrices that are stored in the non-volatile memory array. This segmentation reduces the hardware overhead required for storing and managing the entire matrix while maintaining data availability through organized sub-matrix structures that can be accessed as needed during iterative computations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by storing only the necessary sub-matrices in the non-volatile memory array rather than the entire coefficient matrix. Each sub-matrix is optimized for specific computational regions, reducing overall hardware overhead while ensuring that the required data is available locally when needed for matrix-vector multiplication operations.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20240289415A1Solver of partial differential equation based on non-volatile memory array and method of solving partial differential equation based on non-volatile memory array
Publication Date: 2024.08.29 PEKING UNIV
  • US20240289415A1 patent drawing
  • US20240289415A1 patent drawing
  • US20240289415A1 patent drawing

AI summary

A method of solving a partial differential equation based on a non-volatile memory array includes converting a to-be-solved partial differential equation into an iterative relation, selecting a reusable sub-matrix cell from the iterative coefficient matrix, and storing the sub-matrix cell in the memory array, extracting an input vector from the iteration vector, inputting the input vector into the memory array, updating a portion of the iteration vector by adding an obtained output vector to a portion of the constant vector, extracting the input vector from an updated iteration vector again, and inputting the input vector into the memory array until all elements of the iteration vector are updated to obtain an iteration vector for a next iteration, and ending the iteration when a preset number of iterations is reached or an error is less than a preset range.