Systolic Array Processor Core Matrix with Dynamic Multiplexer Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processors specialized for convolutional operations in deep learning often face inefficiencies due to systolic arrays of fixed sizes, which can lead to reduced processing efficiency when handling large amounts of data, and require data division and multiple loading cycles.

Innovation Solution

A processor architecture featuring multiple processing cores with arithmetic unit arrays, each equipped with first and second memories, and multiplexers to connect input data and weight data from local memories or adjacent processing cores, allowing for dynamic reconfiguration of the systolic array and efficient data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a fixed-size systolic array is used, then the processor structure is simple, but processing efficiency decreases when handling large amounts of data

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprocessor structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic reconfiguration of the systolic array by allowing processing cores to be dynamically added or removed based on data size requirements. The multiplexer dynamically switches between different input sources (local memory or adjacent processing core) depending on the operational mode, enabling the system to adapt its structure to match the processing workload and maintain high efficiency across varying data volumes.

Inventive Principle:
Principle #15Dynamics

2Productivity

If data is divided and loaded multiple times, then the fixed-size systolic array can process data, but processing efficiency is reduced

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidtime for data loading cycles
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-loading data into local memories of multiple processing cores before the actual convolution operation begins. This allows the systolic array to receive data continuously from multiple sources simultaneously, eliminating the need for repeated data loading cycles and maintaining continuous processing flow, thereby reducing time loss and improving overall processing efficiency.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If input data is output from buffer sequentially, then memory usage is optimized, but additional storage is required when stride value changes

Engineering Contradiction:
Improvememory usageVSAvoidstride value adaptability
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent implements universality by designing the multiplexer to handle multiple input sources (local memory and adjacent processing core output) and multiple output destinations. This multi-functional design allows the same hardware structure to accommodate different stride values and data access patterns without requiring additional storage, as the multiplexer can dynamically route data flows to match various processing requirements.

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

Data Source

PatentUS12327114B2Processing cores and information transfer circuits arranged in matrix
Publication Date: 2025.06.10 PREFERRED NETWORKS INC
  • US12327114B2 patent drawing
  • US12327114B2 patent drawing
  • US12327114B2 patent drawing

AI summary

A processor having a systolic array that can perform operations efficiently is provided. The processor includes multiple processing cores aligned in a matrix, and each of the processing cores includes an arithmetic unit array including multiple arithmetic units that can form a systolic array. Each of the processing cores includes a first memory that stores first data, a second memory that stores second data, a first multiplexer that connects a first input for receiving the first data at the arithmetic unit array to an output of the first memory in the processing core or an output of the arithmetic unit array in an adjacent processing core, and a second multiplexer that connects a second input for receiving the second data at the arithmetic unit array to an output of the second memory in the processing core or an output of the arithmetic unit array in an adjacent processing core.