IP Library › Granted Patent US 12,282,682
Granted Patent B2
US 12,282,682 · App. 18/415,285 · Granted Apr 22, 2025

Redundant computing across planes

Inventors: Sean S. Eilert (Penryn, CA); Kenneth M. Curewitz (Cameron Park, CA); Helena Caminal (Ithaca, NY); Ameen D. Akel (Rancho Cordova, CA)
Assignee: Micron Technology, Inc.
G06F3/0655G06F3/0604G06F3/0679
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,282,682
App. No.
18/415,285
Granted
Apr 22, 2025
Kind
B2
Abstract

Methods, systems, and devices for redundant computing across planes are described. A device may perform a computational operation on first data that is stored in a first plane that includes content-addressable memory cells. The first data may be representative of a set of contiguous bits of a vector. The device may perform, concurrent with performing the computational operation on the first data, the computational operation on second data that is stored in a second plane. The second data may be representative of the set of contiguous bits of the vector. The device may read from the first plane and write to the second plane, third data representative of a result of the computational operation on the first data.

Claims (40)

1. An apparatus, comprising:

a memory die comprising a first memory plane and a second memory plane each comprising content-addressable memory cells; and

logic coupled with the memory die and configured to:

perform, based at least in part on sensing first data representative of a first set of contiguous bits of a vector from first content-addressable memory cells in the first memory plane, a computational operation on the first data stored in the first memory plane, wherein the computational operation is based at least in part on a first value, that is assigned to the first memory plane, for a bit that represents an arithmetic output associated with a second set of contiguous bits of the vector; and

perform, based at least in part on sensing second data representative of the first set of contiguous bits of the vector from second content-addressable memory cells in the second memory plane, the computational operation on the second data stored in the second memory plane, wherein the computational operation is based at least in part on a second value, that is assigned to the second memory plane, for the bit that represents the arithmetic output associated with the second set of contiguous bits of the vector.

2. The apparatus of claim 1 , wherein the second set of contiguous bits of the vector comprise bits of lesser significance than the first set of contiguous bits.

3. The apparatus of claim 1 , wherein the computational operation on the first data and the computational operation on the second data at least partially overlap in time.

4. The apparatus of claim 1 , wherein the logic is further configured to:

copy, from the first memory plane and to the second memory plane, third data representative of a result of the computational operation on the first data.

5. The apparatus of claim 4 , wherein the logic is further configured to:

determine, based at least in part on performing the computational operation on the second set of contiguous bits, that a value of an output bit from the computational operation on the second set of contiguous bits is equal to the first value, wherein the third data is copied from the first memory plane to the second memory plane based at least in part on the value being equal to the first value.

6. The apparatus of claim 1 , wherein the logic is further configured to:

determine, based at least in part on performing the computational operation on the second set of contiguous bits, that a value of an output bit from the computational operation on the second set of contiguous bits is equal to the second value; and

copy, from the second memory plane to the first memory plane based at least in part on the value being equal to the second value, third data representative of a result of the computational operation on the second data.

7. The apparatus of claim 1 , wherein the computational operation on the first data is performed based at least in part on sensing third content-addressable cells storing a truth table for the computational operation.

8. The apparatus of claim 7 , wherein the computational operation on the second data is performed based at least in part on sensing the third content-addressable cells storing the truth table for the computational operation.

9. The apparatus of claim 1 , wherein the logic is further configured to:

perform, based at least in part on the first value and at least partially overlapping in time with performing the computational operation on the first data, the computational operation on third data representative of a second set of contiguous bits of the vector; and

perform, based at least in part on the second value and at least partially overlapping in time with performing the computational operation on the second data, the computational operation on fourth data representative of the second set of contiguous bits of the vector.

10. The apparatus of claim 9 , wherein the second set of contiguous bits comprise bits of greater significance than the first set of contiguous bits.

11. A method, comprising:

performing, based at least in part on sensing first data representative of a first set of contiguous bits of a vector from first content-addressable memory cells in a first memory plane of a memory die, a computational operation on the first data stored in the first memory plane, wherein the computational operation is based at least in part on a first value, that is assigned to the first memory plane, for a bit that represents an arithmetic output associated with a second set of contiguous bits of the vector; and

performing, based at least in part on sensing second data representative of the first set of contiguous bits of the vector from second content-addressable memory cells in a second memory plane of the memory die, the computational operation on the second data stored in a second memory plane, wherein the computational operation is based at least in part on a second value, that is assigned to the second memory plane, for the bit that represents the arithmetic output associated with the second set of contiguous bits of the vector.

12. The method of claim 11 , wherein the second set of contiguous bits of the vector comprise bits of lesser significance than the first set of contiguous bits.

13. The method of claim 11 , wherein the computational operation on the first data and the computational operation on the second data are performed at least partially overlapping in time.

14. The method of claim 11 , further comprising:

copying, from the first memory plane and to the second memory plane, third data representative of a result of the computational operation on the first data.

15. The method of claim 14 , further comprising:

determining, based at least in part on performing the computational operation on the second set of contiguous bits, that a value of an output bit from the computational operation on the second set of contiguous bits is equal to the first value, wherein the third data is copied from the first memory plane to the second memory plane based at least in part on the value being equal to the first value.

16. The method of claim 11 , further comprising:

determining, based at least in part on performing the computational operation on the second set of contiguous bits, that a value of an output bit from the computational operation on the second set of contiguous bits is equal to the second value; and

copying, from the second memory plane to the first memory plane based at least in part on the value being equal to the second value, third data representative of a result of the computational operation on the second data.

17. The method of claim 11 , wherein the computational operation on the first data is performed based at least in part on sensing third content-addressable cells storing a truth table for the computational operation.

18. The method of claim 17 , wherein the computational operation on the second data is performed based at least in part on sensing the third content-addressable cells storing the truth table for the computational operation.

19. The method of claim 11 , further comprising:

performing, based at least in part on the first value and at least partially overlapping in time with performing the computational operation on the first data, the computational operation on third data representative of a second set of contiguous bits of the vector; and

performing, based at least in part on the second value and at least partially overlapping in time with performing the computational operation on the second data, the computational operation on fourth data representative of the second set of contiguous bits of the vector.

20. A non-transitory computer-readable medium storing code for operating a memory system, the code comprising instructions executable by a processor to:

perform, based at least in part on sensing first data representative of a first set of contiguous bits of a vector from first content-addressable memory cells in a first memory plane of the memory system, a computational operation on the first data stored in the first memory plane, wherein the computational operation is based at least in part on a first value, that is assigned to the first memory plane, for a bit that represents an arithmetic output associated with a second set of contiguous bits of the vector; and

perform, based at least in part on sensing second data representative of the first set of contiguous bits of the vector from second content-addressable memory cells in a second memory plane of the memory system, the computational operation on the second data stored in a second memory plane, wherein the computational operation is based at least in part on a second value, that is assigned to the second memory plane, for the bit that represents the arithmetic output associated with the second set of contiguous bits of the vector.

Continuity (3)
Continuation 17652229 · Feb 23, 2022
Provisional Application 63266216 · Dec 30, 2021
Related Publication 20240152292A1 · May 9, 2024
References Cited (18)
US 6467020B1 · Stilkol · 2002 [cited by examiner]
US 8332580B2 · Akerib et al. · 2012 [cited by applicant]
US 9997212B1 · Finkbeiner et al. · 2018 [cited by applicant]
US 11216189B2 · Li · 2022 [cited by examiner]
US 11740899B2 · Eilert · 2023 [cited by examiner]
US 20090303767A1 · Akerib · 2009 [cited by examiner]
US 20170242902A1 · Crawford et al. · 2017 [cited by applicant]
US 20220066777A1 · Finkbeiner et al. · 2022 [cited by applicant]
US 20220244959A1 · Ilan · 2022 [cited by applicant]
A E. Slade and H. 0. McMahon, “A cryotron catalog memory system,” in Eastern Joint Computer Conference: New Developments in Computers, 1957. [cited by applicant]
A Morad, L. Yavits, S. Kvatinsky, and R. Ginosar, “Resistive GP-SIMD processing-in-memory,” ACM Trans. Archil. Code Optim., 2016. [cited by applicant]
C C. Foster, Content Addressable Parallel Processors. John Wiley & Sons, Inc., 1976 (233 pages). [cited by applicant]
G E. Sayre, “Slaran: An associative approach to multiprocessor architecture,” in Computer Architecture. Springer Berlin Heidelberg, 1976. [cited by applicant]
Helena Caminal, Kailin Yang, Srivatsa Srinivasa, Akshay Ramanathan, Khalid Al-Hawaj, Tianshu, Wu, Vijay Narayanan, Christopher Batten, Jos e Mart nez, \CAPE: A Content-Addressable Processing Engine, The 27th IEEE nterna… [cited by applicant]
K. Pagiamtzis and A. Sheikholeslami, “Content-addressable memory (CAM) circuits and architectures: a tutorial and survey,” IEEE Journal of Solid-Slate Circuits, 2006. [cited by applicant]
L Yavits, A. Morad, and R. Ginosar, “Computer architecture with associative processor replacing last-level cache and imd accelerator,” IEEE Transactions on Computers, 2015. [cited by applicant]
S. Jeloka, N. B. Akesh, D. Sylvester, and D. Blaauw, “A 28 nm configurable memory (TCAM/BCAM/SRAM) using push-rule 61bit cell enabling logic-in-memory,” IEEE Journal of Solid-Slate Circuits, 2016. [cited by applicant]
Y-Zha and J_Li, “Hyper-AP: Enhancing associative processing through a full-stack optimization,” in 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture, 2020. [cited by applicant]