IP Library Granted Patent US 12,663,964
Granted Patent B2
US 12,663,964 · App. 17/693,406 · Granted Jun 23, 2026

Memory device with in-memory computing architecture and computing method thereof

Inventors: Johnny Chan (Fremont, CA); Chi-Shun Lin (Fremont, CA)
Assignee: Winbond Electronics Corp.
G06F7/5443G06F17/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,663,964
App. No.
17/693,406
Granted
Jun 23, 2026
Kind
B2
Abstract

A memory device and a computing method are provided. The memory device includes a memory array, comprising a first and second memory blocks, and a comparator. The first memory block performs a multiplication and accumulation (MAC) operation according to a first weight matrix and a first input matrix to generate a first sum. The second memory block performs the MAC operation according to a second weight matrix and a second input matrix to generate a second sum. The comparator compares the first and second sums. In a first configuration, each value of the input and second input matrixes are the same and each value of the first and second weight matrixes are complements. In a second configuration, each value of the first and second input matrixes are complements and each value of the first and second weight matrixes are the same.

Claims (46)

1 . A memory device, comprising:

a memory array, comprising:

a first memory block, storing a first weight matrix, receiving a first input matrix, and performing a multiplication and accumulation (MAC) operation according to the first weight matrix and the first input matrix to generate a first sum; and

a second memory block, storing a second weight matrix, receiving a second input matrix, and performing the MAC operation according to the second weight matrix and the second input matrix to generate a second sum; and

a comparator, configured to compare the first sum and the second sum to generate a comparison result,

wherein in a first configuration, each value of the first input matrix and the second input matrix are the same and each value of the first weight matrix and the second weight matrix are complements,

wherein in a second configuration, each value of the first input matrix and the second input matrix are complements and each value of the first weight matrix and the second weight matrix are the same.

2 . The memory device of claim 1 , wherein the first memory block and the second memory are coupled to the comparator respectively through a first bit line and a second bit line,

wherein the first sum corresponds to total current drained from the first bit line and the second sum corresponds to total current drained from the second bit line,

wherein the comparator generates the comparison result by subtracting the second sum from the first sum.

3 . The memory device of claim 1 , wherein in the first configuration and the second configuration, the first memory block performs an AND operation on each value of the first input matrix and the first weight matrix, the second memory block performs the AND operation on each value of the second input matrix and the second weight matrix,

wherein the comparator generates the comparison result to compare each value of the first input matrix with the first weight matrix through the AND operation.

4 . The memory device of claim 1 , wherein in the first configuration, each value of the first input matrix provided to the first memory block and the second memory block are complements to each value of a third input matrix, and the first memory block performs a NOR operation on each value of the third input matrix and the second weight matrix, the second memory block performs the NOR operation on each value of the third input matrix and the first weight matrix.

5 . The memory device of claim 1 , wherein in the first configuration, the first input matrix comprises a first input sub-matrix and a second input sub-matrix, and the first weight matrix comprises a first weight sub-matrix and a second weight sub-matrix, wherein each value of the first input sub-matrix and the second input sub-matrix are complements, each value of the first weight sub-matrix and the second weight sub-matrix are complements.

6 . The memory device of claim 5 , wherein the first memory block comprises:

a first memory sub-block, configured to store the first weight sub-matrix and receive the first input sub-matrix; and

a second memory sub-block, configured to store the second weight sub-matrix and receive the second input sub-matrix, wherein the first memory block performs an XOR operation on each value of the second input sub-matrix and the first weight sub-matrix,

wherein the second memory block comprises:

a third memory sub-block, configured to store the second weight sub-matrix and receive the first input sub-matrix; and

a fourth memory sub-block, configured to store the first weight sub-matrix and receive the second input sub-matrix, wherein the second memory block performs an XNOR operation on each value of the second input sub-matrix and the first weight sub-matrix.

7 . The memory device of claim 1 , wherein the memory array comprises a plurality of memory function blocks, for performing different logic operations on each value of the first input matrix and the first weight matrix.

8 . The memory device of claim 2 , further comprising a first load and a second load, respectively coupled to the first bit line and the second bit line,

wherein a first ratio between voltage of the first bit line and the total current drained from the first bit line is adjusted according to the first load,

wherein a second ratio between voltage of the second bit line and the total current drained from the second bit line is adjusted according to the second load.

9 . The memory device of claim 8 , wherein the first load and the second load are pull up loads or capacitors.

10 . A computing method, comprising:

providing a memory array comprising a first memory block and a second memory block respectively storing a first weight matrix and a second weight matrix;

performing, by the first memory block, a multiplication and accumulation (MAC) operation according to the first weight matrix and a first input matrix to generate a first sum;

performing, by the second memory block, the MAC operation according to the second weight matrix and a second input matrix to generate a second sum;

comparing, by a comparator, the first sum and the second sum to generate a comparison result,

wherein in a first configuration, each value of the first input matrix and the second input matrix are the same and each value of the first weight matrix and the second weight matrix are complements,

wherein in a second configuration, each value of the first input matrix and the second input matrix are complements and each value of the first weight matrix and the second weight matrix are the same.

11 . The computing method of claim 10 , wherein the first memory block and the second memory are coupled to the comparator respectively through a first bit line and a second bit line,

wherein the first sum corresponds to total current drained from the first bit line and the second sum corresponds to total current drained from the second bit line,

wherein the comparator generates the comparison result by subtracting the second sum from the first sum.

12 . The computing method of claim 10 , wherein in the first configuration and the second configuration, the first memory block performs an AND operation on each value of the first input matrix and the first weight matrix, the second memory block performs the AND operation on each value of the second input matrix and the second weight matrix,

wherein the comparator generates the comparison result to compare each value of the first input matrix with the first weight matrix through the AND operation.

13 . The computing method of claim 10 , wherein in the first configuration, each value of the first input matrix provided to the first memory block and the second memory block are complements to each value of a third input matrix, and the first memory block performs a NOR operation on each value of the third input matrix and the second weight matrix, the second memory block performs the NOR operation on each value of the third input matrix and the first weight matrix.

14 . The computing method of claim 10 , wherein in the first configuration, the first input matrix comprises a first input sub-matrix and a second input sub-matrix, and the first weight matrix comprises a first weight sub-matrix and a second weight sub-matrix, wherein each value of the first input sub-matrix and the second input sub-matrix are complements, each value of the first weight sub-matrix and the second weight sub-matrix are complements.

15 . The computing method of claim 14 , comprising:

storing, by a first memory sub-block of the first memory block, the first weight sub-matrix and receiving the first input sub-matrix;

storing, by a second memory sub-block of the first memory block, the second weight sub-matrix and receiving the second input sub-matrix, wherein the first memory block performs an XOR operation on each value of the second input sub-matrix and the first weight sub-matrix;

storing, by a third memory sub-block of the second memory block, the second weight sub-matrix and receiving the first input sub-matrix; and

storing, a fourth memory sub-block of the second memory block, the first weight sub-matrix and receiving the second input sub-matrix, wherein the second memory block performs an XNOR operation on each value of the second input sub-matrix and the first weight sub-matrix.

16 . The computing method of claim 10 , further comprising performing, by a plurality of memory function blocks of the memory array, different logic operations on each value of the first input matrix and the first weight matrix.

17 . The computing method of claim 11 , wherein a first load and a second load are, respectively coupled to the first bit line and the second bit line, wherein a first ratio between voltage of the first bit line and the total current drained from the first bit line is adjusted according to the first load, wherein a second ratio between voltage of the second bit line and the total current drained from the second bit line is adjusted according to the second load.