Multiply-accumulate circuits

US10180820B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10180820-B2
Application numberUS-201615282021-A
CountryUS
Kind codeB2
Filing dateSep 30, 2016
Priority dateSep 30, 2016
Publication dateJan 15, 2019
Grant dateJan 15, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In some examples, a method may be performed by a multiply-accumulate circuit. As part of the method a row driver of the multiply-accumulate circuit may drive a row value line based on an input vector bit of an input vector received by the row driver. The row driver may also drive a row line that controls a corresponding memristor according to the input vector bit. The corresponding memristor may store a weight value bit of a weight value to apply to the input vector for a multiply-accumulate operation. The method may further include a sense amplifier generating an output voltage based on a current output from the corresponding memristor and counter circuitry adjusting a counter value that represents a running total of the multiply-accumulate operation based on the row value line, the output voltage generated by the sense amplifier, or a combination of both.

First claim

Opening claim text (preview).

The invention claimed is: 1. A multiply-accumulate circuit comprising: a set of row driver circuits, each row driver of the row driver circuits comprising a shift register that is initialized to a ‘0’ value, wherein each row driver receives an input vector bit of an input vector; a token propagation unit configured to propagate a ‘1’ value through the set of row driver circuits; a set of memristor circuits linked to the set of row driver circuits, wherein each memristor stores a weight value bit of a weight value to apply to the input vector for a multiply-accumulate operation; a sense amplifier linked to the set of memristor circuits to apply an output voltage based on a current output from a memristor of the set of memristor circuits, the current output representative of the weight value bit stored by the memristor; and counter circuitry to store a counter value and to adjust the counter value based on a row value output from the set of row driver circuits, the output voltage of the sense amplifier, or both, wherein a particular row is activated when the shift register of the row driver of the particular row stores a ‘1’ value. 2. The circuit of claim 1 , wherein a particular row driver and a corresponding memristor are active at a particular time; and wherein the counter circuitry adjusts the counter value by incrementing, decrementing, or taking no action based on the row value output from the particular row driver and the output voltage applied by the sense amplifier based on the current output of the corresponding memristor circuit. 3. The circuit of claim 2 , wherein the counter circuitry is to: increment the counter value when the input vector bit received by the particular row driver is a ‘1’ value and the corresponding memristor stores a ‘1’ value for the weight value bit; decrement the counter value when the input vector bit received by the particular row driver is a ‘1’ value and the corresponding memristor stores a ‘0’ value for the weight value bit; and take no action when the input vector bit received by the particular row driver is a ‘0’ value. 4. The circuit of claim 1 , wherein the counter circuitry stores the result of the multiply-accumulate operation between the input vector and the weight value after each row driver and corresponding memristor have been activated. 5. The circuit of claim 1 , wherein each memristor stores a ‘1’ value for the weight value bit when the memristor circuit is programmed to a low resistive state and stores a ‘0’ value for the weight bit when the memristor is programmed to a high resistive state. 6. The circuit of claim 5 , wherein: the ‘0’ value for the weight value bit represents an actual weight value of ‘−1’; and the ‘1’ value for the weight value bit represents an actual weight value of ‘1’. 7. The circuit of claim 1 , wherein each row driver comprises bypass circuitry to bypass activation of the row driver when the input vector bit received by the row driver is a ‘0’ value. 8. The circuit of claim 7 , wherein the counter circuitry stores the result of the multiply-accumulate operation between the input vector and the weight value after activation of each row driver that receives an input vector bit having a ‘1’ value and corresponding memristor. 9. The circuit of claim 1 , wherein: a ‘0’ value for the input vector bit represents an actual input vector value of ‘−1’; and a ‘1’ value for the input vector bit represents an actual input vector value of ‘1’; and wherein the counter circuitry is to adjust the counter value when a particular row is activated by: incrementing the counter value when: both the row value output by a row driver of the particular row and the output voltage applied by the sense amplifier is a ‘0’ value; or both the row value output by the row driver of the particular row and the output voltage applied by the sense amplifier is a ‘1’ value; and decrementing the counter value when: the row value output by the row driver of the particular row is a ‘0’ value and the output voltage applied by the sense amplifier is a ‘1’ value; or the row value output by the row driver of the particular row is a ‘1’ value and the output voltage applied by the sense amplifier is a ‘0’ value. 10. A method comprising: driving, by a row driver of a multiply-accumulate circuit, a row value onto a row value line based on an input vector bit of an input vector received by the row driver, the row driver comprising a shift register that is initialized to a ‘0’ value, and the driving by the row driver being response to the shift register storing a ‘1’ value propagated by a token propagation unit; driving, by the row driver, a row line that controls a corresponding memristor according to the input vector bit, the corresponding memristor storing a weight value bit of a weight value to apply to the input vector for a multiply-accumulate operation; generating, by a sense amplifier, an output voltage based on a current output from the corresponding memristor; and adjusting, by counter circuitry, a counter value that represents a running total of the multiply-accumulate operation based on the row value line, the output voltage generated by the sense amplifier, or a combination of both. 11. The method of claim 10 , wherein driving the row line comprises driving the row line high when the input vector bit has a value of ‘1’ and driving the row line low when the input vector bit has a value of ‘0’. 12. The method of claim 10 , further comprising: receiving, by the row driver, an activation token from a previous row driver in the multiply-accumulate circuit, the activation token corresponding to the ‘1’ value propagated by the token propagation unit; and driving the row line and the row value line responsive to receiving the activation token. 13. The method of claim 10 , wherein adjusting the counter value by the counter circuitry comprises: incrementing the counter value when the input vector bit received by the row driver is a ‘1’ value and the corresponding memristor stores a ‘1’ value for the weight value bit; decrementing the counter value when the input vector bit received by the particular row driver is a ‘1’ value and the corresponding memristor stores a ‘0’ value for the weight value bit; and taking no action when the input vector bit received by the particular row driver is a ‘0’ value. 14. The method of claim 10 , wherein: a ‘0’ value for the input vector bit represents an actual input vector value of ‘−1’; and a ‘1’ value for the input vector bit represents an actual input vector value of ‘1’; and wherein the adjusting the counter value by the counter circuitry comprises: incrementing the counter value when: both the row value driven by the row driver and the output voltage generated by the sense amplifier is a ‘0’ value; or both the row value driven by the row driver and the output voltage generated by the sense amplifier is a ‘1’ value; and decrementing the counter value when: the row value driven by the row driver is a ‘0’ value and the output voltage generated by the sense amplifier is a ‘1’ value; or the row value driven by the row driver is a ‘1’ value and the output voltage generated by the sense amplifier is a ‘0’ value. 15. The method of claim 10 , wherein driving the row line according to the input vector bit comprises: driving the row line high with a memristor read voltage when the input vector bit is a ‘1’ value and an activation token propagated through the multiply-accumulate circuit is latched by a shift register of the row driver; and causing the row line to float otherwise.

Assignees

Inventors

Classifications

  • Reading or sensing circuits or methods · CPC title

  • Word-line or row circuits · CPC title

  • Special implementations · CPC title

  • comprising metal oxide memory material, e.g. perovskites · CPC title

  • G06F7/5443Primary

    Sum of products (for applications thereof, see the relevant places, e.g. G06F17/10, H03H17/00) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10180820B2 cover?
In some examples, a method may be performed by a multiply-accumulate circuit. As part of the method a row driver of the multiply-accumulate circuit may drive a row value line based on an input vector bit of an input vector received by the row driver. The row driver may also drive a row line that controls a corresponding memristor according to the input vector bit. The corresponding memristor ma…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp, Hewlett Packard Enterprlse Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F7/5443. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 15 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).