Processing device for performing convolution operations

US9613001B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9613001-B2
Application numberUS-201314136302-A
CountryUS
Kind codeB2
Filing dateDec 20, 2013
Priority dateDec 20, 2013
Publication dateApr 4, 2017
Grant dateApr 4, 2017

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.

Systems and methods for performing convolution operations. An example processing system comprises: a processing core; and a convolver unit to apply a convolution filter to a plurality of input data elements represented by a two-dimensional array, the convolver unit comprising a plurality of multipliers coupled to two or more sets of latches, wherein each set of latches is to store a plurality of data elements of a respective one-dimensional section of the two-dimensional array.

First claim

Opening claim text (preview).

What is claimed is: 1. A processing system, comprising: a processing core; and a convolver unit to apply a convolution filter to a plurality of input data elements represented by a two-dimensional array, the convolver unit comprising a plurality of multipliers coupled to two or more sets of latches, wherein each set of latches is to store a plurality of data elements of a respective one-dimensional section of the two-dimensional array; wherein the convolution filter is provided by a rectangular matrix of pre-defined binary values, and wherein each set of latches comprises a number of latches which is equal to a dimension of the convolution filter. 2. The processing system of claim 1 , wherein the two or more sets of latches are provided by a first set of latches and a second set of latches, wherein the first set of latches is to store a first plurality of data elements of a first one-dimensional section of the two dimensional array and the second set of latches is to store a second plurality of data elements of a second one-dimensional section of the two-dimensional array. 3. The processing system of claim 1 , wherein the first one-dimensional section is provided by a first row the and second one-dimensional section is provided by a second row that is adjacent to the first row in the two-dimensional array. 4. The processing system of claim 1 , wherein each multiplier of the plurality of multipliers is to apply a convolution filter element to an input data element. 5. The processing system of claim 1 , wherein the convolver unit further comprises a subsampling circuit to perform at least one of: averaging a plurality of convolution results or determining a maximum value of convolution results. 6. The processing system of claim 1 , wherein the convolver unit further comprises a plurality of multiplexers, each multiplexer to select one of: a first latch output, a second latch output, or an external memory input to be supplied to a multiplier. 7. The processing system of claim 1 , wherein a latch of the first plurality of latches is connected in series with a latch of a second plurality of latches. 8. A method, comprising: setting, by a processing device, an initial position of an input window in a two-dimensional array of input data elements; applying a convolution filter to a plurality of input data elements referenced by the input window, wherein the convolution filter is provided by a rectangular matrix of pre-defined binary values, and wherein each set of latches comprises a number of latches which is equal to a dimension of the convolution filter; shifting the input window, relatively to its previous position, by one or more positions along a one-dimensional section of the two-dimensional array; and iteratively repeating the applying and shifting operations for a pre-defined number of times, wherein at least one of the applying operations comprises receiving an input data element from one of: an external memory or an internal latch of two or more sets of latches, each set of latches corresponding to a respective one-dimensional section of the two-dimensional array. 9. The method of claim 8 , wherein the applying and shifting operations comprise: applying a convolution filter to a first plurality of input data elements referenced by the input window; shifting the input window, relatively to its previous position, by one position along a first one-dimensional section of the two-dimensional array; applying the convolution filter to a second plurality of input data elements referenced by the input window; shifting the input window, relatively to the initial position, by one position along a second one-dimensional section of the two-dimensional array; applying the convolution filter to a third plurality of input data elements referenced by the input window; shifting the input window, relatively to its previous position, by one position along a first one-dimensional section of the two-dimensional array; and applying the convolution filter to a fourth plurality of input data elements referenced by the input window. 10. The method of claim 9 , further comprising: repeating, a pre-defined number of times, at least one of sequences of the shifting and applying operations, wherein the number of times is determined as a pooling sample dimension reduced by one. 11. The method of claim 8 , wherein the first one-dimensional section is provided by a first row the and second one-dimensional section is provided by a second row that is adjacent to the first row in the two-dimensional array. 12. The method of claim 8 , further comprising: performing a subsampling operation of convolution operation results. 13. The method of claim 8 , wherein the receiving further comprises storing the input data element in an internal latch. 14. A system-on-chip (SoC), comprising: a plurality of convolver units, each convolver unit to apply a convolution filter to a plurality of input data elements represented by a two-dimensional array, each convolver unit comprising a plurality of multipliers coupled to two or more sets of latches, wherein each set of latches is to store a plurality of data elements of a respective one-dimensional section of the two-dimensional array; wherein each convolver unit further comprises a plurality of multiplexers, each multiplexer to select one of: a first latch output, a second latch output, or an external memory input to be supplied to a multiplier of the plurality of multipliers. 15. The SoC of claim 14 , wherein the two or more sets of latches are provided by a first set of latches and a second set of latches, wherein the first set of latches is to store a first plurality of data elements of a first one-dimensional section of the two-dimensional array and the second set of latches is to store a second plurality of data elements of a second one dimensional section of the two-dimensional array. 16. The SoC of claim 14 , wherein the first one-dimensional section is provided by a first row the and second one-dimensional section is provided by a second row that is adjacent to the first row in the two-dimensional array. 17. The SoC of claim 14 , wherein each multiplier is to apply a convolution filter element to an input data element. 18. The SoC of claim 14 , further comprising a subsampling circuit to perform at least one of: averaging a plurality of convolution results or determining a maximum value of convolution results.

Assignees

Inventors

Classifications

  • Correlation function computation {including computation of convolution operations (arithmetic circuits for sum of products per se, e.g. multiply-accumulators G06F7/5443; digital filters, e.g. FIR, IIR, adaptive filters H03H17/00)} · CPC title

  • G06V10/82Primary

    using neural networks · CPC title

  • using classification, e.g. of video objects · CPC title

  • based on distances to training or reference patterns · CPC title

  • Combinations of networks · 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 US9613001B2 cover?
Systems and methods for performing convolution operations. An example processing system comprises: a processing core; and a convolver unit to apply a convolution filter to a plurality of input data elements represented by a two-dimensional array, the convolver unit comprising a plurality of multipliers coupled to two or more sets of latches, wherein each set of latches is to store a plurality o…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06V10/82. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 04 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).