Multi-Mode Compute-in-Memory Circuit for Mixed-Precision MAC
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing compute-in-memory (CIM) circuits are inefficient in processing both integer and floating-point data types, requiring dedicated hardware components and occupying valuable substrate space, which lowers hardware utilization rates.
Innovation Solution
A multi-mode CIM circuit that can switch between modes for processing integer and floating-point data types using the same hardware components, enabling MAC operations on input and weight data elements of varying types, including INT8, INT4, FP16, and BF16.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If dedicated hardware components are used for processing different data types (integer and floating-point), then processing capability for each data type is improved, but device complexity and substrate space occupation increase
Solution Approach 1:
The patent implements a universal CIM circuit architecture where the same hardware components can process both integer and floating-point data types by dynamically reconfiguring the circuit based on the input data type. The local computing cells are designed to adapt their operation mode according to the data type, eliminating the need for separate dedicated hardware for each data type while maintaining full processing capability for both formats.
Solution Approach 2:
The patent employs dynamic reconfiguration of the CIM circuit where the circuit can switch between different operational modes (integer mode and floating-point mode) based on the input data type. This dynamic adaptation allows the same hardware to optimize its processing behavior for different data types, improving versatility without increasing hardware complexity.
2Reliability
If dedicated hardware components are used for processing different data types, then processing capability is improved, but substrate space occupied increases
Solution Approach 1:
The patent implements a universal CIM circuit architecture where the same hardware components can process both integer and floating-point data types by dynamically reconfiguring the circuit based on the input data type. The local computing cells are designed to adapt their operation mode according to the data type, eliminating the need for separate dedicated hardware for each data type while maintaining full processing capability for both formats.
3Productivity
If separate hardware components are used for integer and floating-point processing, then processing efficiency for each type is improved, but hardware utilization rate decreases
Solution Approach 1:
The patent employs dynamic reconfiguration of the CIM circuit where the circuit can switch between different operational modes (integer mode and floating-point mode) based on the input data type. This dynamic adaptation allows the same hardware to optimize its processing behavior for different data types, improving versatility without increasing hardware complexity.
Solution Approach 2:
The patent ensures that the CIM circuit maintains continuous useful action by seamlessly switching between processing modes without requiring idle hardware components. The same hardware resources are continuously utilized regardless of the data type being processed, maximizing hardware utilization rate while maintaining processing efficiency through mode-specific optimization.
Data Source
AI summary
A circuit includes local computing cells. Each of the local computing cells can provide, in response to identifying that the input data elements and weight data elements are in a first data type, a first sum including (i) a first product of a first input data element and a first weight data element; and (ii) a second product of a second input data element and a second weight data element. Each of the local computing cells can provide, in response to identifying that the input data elements and weight data elements are in a second data type, (i) a second sum of a first portion of a third input data element and a first portion of a third weight data element; and (ii) a third product of a second portion of the third input data element and a second portion of the third weight data element.


