MxN Systolic Array Mode Switching for Processing Element Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Systolic arrays often have low utilization due to inefficient use of processing elements, leading to reduced performance and unnecessary current consumption during matrix multiplication operations in convolution neural networks.

Innovation Solution

A processing system with a systolic array that includes row and column buffers to dynamically switch the direction of input data and weights based on operational modes, ensuring maximum utilization of processing elements by optimizing the matrix multiplication process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a systolic array uses a fixed configuration for matrix multiplication, then the structure is simple, but the utilization of processing elements is low

Engineering Contradiction:
Improvesystolic array structureVSAvoidprocessing element utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic mode switching between row-major and column-major configurations. The systolic array can switch its operational mode based on the dimensions of input matrices, allowing processing elements to be dynamically reassigned. This is achieved through configurable data flow paths that can be redirected via mode selection signals, enabling the same hardware to adapt to different computational requirements and maintain high utilization across varying workloads.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If the systolic array processes only square matrices, then the data flow is simple, but the adaptability to different matrix dimensions is limited

Engineering Contradiction:
Improvedata flow managementVSAvoidmatrix dimension compatibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal systolic array that can handle both row-major and column-major matrix multiplications using the same hardware infrastructure. By implementing dual data flow paths and mode selection logic, the system achieves multi-functionality where a single array configuration can process various matrix dimensions (M×N where M≠N) by switching between operational modes, eliminating the need for separate specialized arrays for different matrix types.

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

3Device complexity

If the systolic array operates in a single mode, then the control logic is simple, but the performance efficiency varies with different input sizes

Engineering Contradiction:
Improvecontrol logicVSAvoidperformance efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic mode switching between row-major and column-major configurations. The systolic array can switch its operational mode based on the dimensions of input matrices, allowing processing elements to be dynamically reassigned. This is achieved through configurable data flow paths that can be redirected via mode selection signals, enabling the same hardware to adapt to different computational requirements and maintain high utilization across varying workloads.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10949380B2MxN systolic array and processing system that inputs weights to rows or columns based on mode to increase utilization of processing elements
Publication Date: 2021.03.16 SK HYNIX INC
  • US10949380B2 patent drawing
  • US10949380B2 patent drawing
  • US10949380B2 patent drawing

AI summary

A processing system may include a systolic array including a plurality of processing elements (PEs) arrayed in M rows and N columns, where M and N are natural numbers and M is not equal to N. The processing system may further include a row buffer configured to transmit row data to the systolic array in a row direction, and a column buffer configured to transmit column data to the systolic array in a column direction. When the processing system is in a first mode, the row data is input data and the columns data is weights. When the processing system is in a second mode the row data is the weights and the column data is the input data.