In-Memory Computing Circuit for Accelerated MAC Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current in-memory computing (IMC) systems face challenges in efficiently performing multiply-accumulate (MAC) operations, which are crucial for machine learning and inferencing, due to the need for frequent data movement between memory and arithmetic units, leading to performance and power limitations.

Innovation Solution

The implementation of an IMC circuit with a plurality of memory banks, each containing a bit cell and an operator that performs logic operations, including NAND operations, and an adder to facilitate MAC operations directly within the memory, utilizing transistors to output signal results, and a controller to manage input values and clock signals across multiple devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is frequently moved between memory and arithmetic units for MAC operations, then computation can be performed, but performance and power efficiency deteriorate

Engineering Contradiction:
ImproveMAC operation performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent combines memory storage and computation operations into a single integrated structure. Memory banks contain bit cells that store weight values and simultaneously perform logic operations (NAND, AND) with input values. This merging eliminates the need for separate data movement between memory and arithmetic units, directly resolving the contradiction between computation performance and power consumption.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If data is frequently moved between memory and arithmetic units for MAC operations, then computation can be performed, but speed deteriorates

Engineering Contradiction:
ImproveMAC operation throughputVSAvoidoperation speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The integration of memory and computation units allows MAC operations to be performed in-place without data transfer delays. The logic gates (NAND gates) are directly connected to bit cells within memory banks, enabling immediate processing of stored weight values with input values, thereby significantly improving operation speed.

Inventive Principle:
Principle #5Merging (Combining)

3Loss of energy

If logic operations are performed within memory banks using operators and logic gates, then data movement is reduced, but device complexity increases

Engineering Contradiction:
Improvepower efficiencyVSAvoidcircuit complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The bit cells in memory banks are designed to serve multiple functions: storing weight values and performing logic operations. The operators connected to bit cells can perform various logic operations (NAND, AND) depending on the configuration of logic gates. This multi-functionality reduces the need for separate computation units while maintaining relatively simple circuit architecture.

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

Solution Approach 2:

The memory system is divided into multiple memory banks, each capable of independent logic operations. This segmentation allows parallel processing of different data sets while keeping each individual bank's circuit complexity manageable. Each bank contains bit cells, operators, and logic gates that work together as a self-contained computation unit.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240069867A1Apparatus and method with in-memory computing (IMC)
Publication Date: 2024.02.29 SAMSUNG ELECTRONICS CO LTD
  • US20240069867A1 patent drawing
  • US20240069867A1 patent drawing
  • US20240069867A1 patent drawing

AI summary

An apparatus and method with in-memory computing (IMC) are provided. An in-memory computing (IMC) circuit includes a plurality of memory banks, each memory bank including a bit cell configured to store a weight value and an operator configured to receive an input value, the operator being connected to the bit cell such that the operator upon receiving the input value outputs a logic operation result between the input value and the weight value, and a logic gate configured to receive the logic operation result of each of the memory banks.