CPC G06F 3/0659 (2013.01) [G06F 3/0616 (2013.01); G06F 3/0673 (2013.01); G06N 20/00 (2019.01)] | 18 Claims |
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.
|