US 12,086,461 B2
Systems and methods of compensating degradation in analog compute-in-memory (ACIM) modules
Chao Sun, San Jose, CA (US); Tung Thanh Hoang, San Jose, CA (US); and Dejan Vucinic, San Jose, CA (US)
Assigned to Sandisk Technologies, Inc., Milpitas, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Jun. 14, 2021, as Appl. No. 17/347,472.
Prior Publication US 2022/0398037 A1, Dec. 15, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01); G06N 20/00 (2019.01)
CPC G06F 3/0659 (2013.01) [G06F 3/0616 (2013.01); G06F 3/0673 (2013.01); G06N 20/00 (2019.01)] 18 Claims
OG exemplary drawing
 
18. A system for performing compute in memory (CIM) computations, comprising:
means for applying a plurality of analog weights to input data using at least one multiply-accumulate operation to generate an output;
means for storing a plurality of digital weight references, wherein a digital weight reference of the plurality of digital weight references corresponds to an analog weight of the plurality of analog weights applied by the means for applying;
means for programming the plurality of analog weights to the means for applying based on the plurality of digital weight references, wherein the means for programming is configured to program the plurality of analog weights to the means for storing a plurality of digital weight references by converting the digital weight references to analog values for storage in the means for storing a plurality of digital weight references, wherein the means for storing a plurality of digital weight references is configured to send the analog values to the means for applying a plurality of analog weights for storage; and
means for reprogramming one or more analog weights of the plurality of analog weights that are degraded based on corresponding digital weight references stored in the means for storing without further reference to a host processing device serving as a source of the digital weight references, wherein the degraded analog weights comprise a weight that causes a digital result of a mathematical operation based on the weight and a defined input to diverge from an expected digital result by a threshold amount, and wherein the means for reprogramming comprises means for detecting an error based on a check bit changing state for a corresponding digital weight reference and means for correcting the error based on nulling the corresponding digital weight reference.