IP Library Granted Patent US 12,210,873
Granted Patent B2
US 12,210,873 · App. 18/298,278 · Granted Jan 28, 2025

Compute-in-memory systems and methods

Inventors: Eriko Nurvitadhi (Hillsboro, OR); Scott J. Weber (Piedmont, CA); Ravi Prakash Gutala (San Jose, CA); Aravind Raghavendra Dasu (Milpitas, CA)
Assignee: Altera Corporation
G06F9/30036G05B19/056G06F9/3001G06F9/3004G06F15/7821G06F30/34G06F30/343G06F30/347G06F30/39G06N3/02G05B2219/21109
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,210,873
App. No.
18/298,278
Granted
Jan 28, 2025
Kind
B2
Abstract

An integrated circuit device may include programmable logic circuitry on a first integrated circuit die and memory that includes compute-in-memory circuitry on a second die. The programmable logic circuitry may be programmed with a circuit design that operates on a first set of data. The compute-in-memory circuitry of the memory may perform an arithmetic operation using the first set of data from the programmable logic circuitry and a second set of data stored in the memory.

Claims (40)

1. An integrated circuit device comprising:

a first die configurable to be programmed by a configuration bitstream comprising a circuit design for an artificial intelligence (AI) application that operates on input data to generate output data; and

a second die comprising memory to store computational data, wherein the memory comprises compute-in-memory circuitry configurable to perform an arithmetic operation using the output data and the computational data, and wherein the first die is configurable to broadcast data to the compute-in-memory circuitry.

2. The integrated circuit device of claim 1 , wherein the computational data comprises AI predictors, AI weights, or AI forecasts.

3. The integrated circuit device of claim 1 , wherein the compute-in-memory circuitry comprises a controller configurable to set a sequence of the arithmetic operation.

4. The integrated circuit device of claim 1 , wherein the first die is configurable to access the memory of the second die.

5. The integrated circuit device of claim 4 , wherein the memory of the second die comprises vertically stacked memory.

6. The integrated circuit device of claim 1 , wherein the first die comprises second memory to store the output data.

7. The integrated circuit device of claim 1 , wherein the arithmetic operation comprises a dot product operation, an accumulation operation, a matrix operation, a vector operation, a convolution operation, or a combination thereof.

8. The integrated circuit device of claim 1 , wherein the compute-in-memory circuitry is configurable to operate on the input data in a pattern based on a type of arithmetic computation.

9. The integrated circuit device of claim 1 , wherein the first die is stacked on top of the second die in a three-dimensional (3D) configuration.

10. A method, comprising:

implementing, via processing circuitry, a circuit design comprising an artificial intelligence (AI) application on a first die via a configuration bitstream; and

initializing, via the processing circuitry, compute-in-memory circuitry on a second die based on loading computational data associated with the circuit design;

transmitting, via the processing circuitry, data from the first die to the second die based on broadcasting the data to the compute-in-memory circuitry on the second die; and

causing, via the processing circuitry, an arithmetic operation to be performed by the compute-in-memory circuitry of the second die using the computational data and the data to generate output data.

11. The method of claim 10 , wherein initializing, via the processing circuitry, the compute-in-memory circuitry comprises:

retrieving the computational data from first memory of the first die or second memory of the second die.

12. The method of claim 11 , comprising transmitting, via the processing circuitry, the output data from the second die to the first die comprises gathering the output data from a plurality of compute-in-memory circuitry units of the compute-in-memory circuitry.

13. The method of claim 11 , wherein the arithmetic operation comprises a dot product operation, an accumulation operation, a matrix operation, a vector operation, a convolution operation, or a combination thereof.

14. The method of claim 10 , wherein:

the AI application comprises an artificial neural network function; and

the computational data associated with the circuit design comprises one or more neural network weights.

15. The method of claim 10 , wherein:

the circuit design comprises a filtering function; and

the computational data associated with the circuit design comprises one or more filter coefficients.

16. One or more tangible, non-transitory, machine-readable media comprising machine-readable instructions executable by one or more processors, wherein the instructions comprise instructions to:

receive a circuit design comprising an artificial intelligence (AI) application to be programmed onto a first die; and

generate a configuration bitstream to implement the circuit design comprising the AI application on the first die, wherein the configuration bitstream is to implement the AI application at least in part by:

implementing the circuit design comprising the AI application on the first die;

initializing compute-in-memory circuitry on a second die based on loading computational data associated with the circuit design;

transmitting data from the first die to the second die based on broadcasting the data from the first die to the compute-in-memory circuitry on the second die; and

causing an arithmetic operation to be performed by the compute-in-memory circuitry of the second die using the computational data and the data to generate output data.

17. The machine-readable media of claim 16 , wherein the configuration bitstream comprises an accelerator function configurable to perform machine learning, video processing, voice recognition, or image recognition.

18. The machine-readable media of claim 16 , wherein the instructions comprise instructions to:

cause the second die to transmit the output data to the first die.

19. The machine-readable media of claim 16 , wherein the instructions comprise instructions to:

generate a sequence of the arithmetic operation based on the circuit design; and

transmit an additional configuration bitstream comprising the sequence of the arithmetic operation to the second die.

20. The machine-readable media of claim 16 , wherein the compute-in-memory circuitry is configurable to operate as a dot product engine, and wherein the computational data comprises vectors and matrices.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: INTEL CORPORATION
To: ALTERA CORPORATION
Reel/Frame 066353/0886 →
Continuity (2)
Continuation 16146586 · Sep 28, 2018
Related Publication 20230244485A1 · Aug 3, 2023
References Cited (34)
US 6802026B1 · Patterson et al. · 2004 [cited by applicant]
US 6912164B1 · Chong et al. · 2005 [cited by applicant]
US 9091727B1 · Lupu · 2015 [cited by examiner]
US 9761300B1 · Willcock · 2017 [cited by applicant]
US 9959078B2 · Shah · 2018 [cited by examiner]
US 10073733B1 · Jain et al. · 2018 [cited by applicant]
US 10374608B1 · Ross · 2019 [cited by applicant]
US 10528613B2 · Zhang · 2020 [cited by applicant]
US 20040268286A1 · New · 2004 [cited by examiner]
US 20050223118A1 · Tucker · 2005 [cited by examiner]
US 20050248036A1 · Kelly · 2005 [cited by examiner]
US 20070112901A1 · Niktash · 2007 [cited by examiner]
US 20090063821A1 · Nakajima · 2009 [cited by examiner]
US 20100271071A1 · Bartley et al. · 2010 [cited by applicant]
US 20110145547A1 · Vorbach · 2011 [cited by examiner]
US 20160092234A1 · Vasudevan · 2016 [cited by examiner]
US 20160104517A1 · Park et al. · 2016 [cited by applicant]
US 20160329975A1 · Jurisch · 2016 [cited by applicant]
US 20160363626A1 · How · 2016 [cited by examiner]
US 20170344301A1 · Ryu et al. · 2017 [cited by applicant]
US 20180074958A1 · Jayasena et al. · 2018 [cited by applicant]
US 20180075339A1 · Ma · 2018 [cited by examiner]
US 20180081583A1 · Breternitz et al. · 2018 [cited by applicant]
US 20190087708A1 · Goulding et al. · 2019 [cited by applicant]
US 20190096453A1 · Shin · 2019 [cited by examiner]
US 20190156187A1 · Dasari · 2019 [cited by examiner]
US 20190180170A1 · Huang et al. · 2019 [cited by applicant]
US 20200074202A1 · Kim · 2020 [cited by examiner]
US 20200089506A1 · Power · 2020 [cited by examiner]
G. H. Loh, “3D-Stacked Memory Architectures for Multi-core Processors,” International Symposium on Computer Architecture, 2008. [cited by applicant]
D. H. Kim, et al., “3D-MAPS: 3D Massively parallel processor with stacked memory,” International Solid-State Circuits Conference, 2012. [cited by applicant]
Q. Zhu, et al., ss“A 3D-stacked logic-in-memory accelerator for application-specific data intensive computing,” IEEE International 3D Systems Integration Conference, 2013. [cited by applicant]
J. Aydonat, et al., “An OpenCLTM Deep Learning Accelerator on Arria 10,” International Symposium on Field-Programmable Gate Arrays, 2017. [cited by applicant]
E. Chung, et al., “Serving DNNs in Real Time at Datacenter Scale with Project Brainwave,” IEEE Micro, 2018. [cited by applicant]
Cited By (1)
US 12,642,071