Moving average processing in processor and processor

US9436465B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9436465-B2
Application numberUS-201414246757-A
CountryUS
Kind codeB2
Filing dateApr 7, 2014
Priority dateMay 23, 2013
Publication dateSep 6, 2016
Grant dateSep 6, 2016

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.

A processor, which executes m number of arithmetic operations in parallel, executes a partial sum instruction which takes an i-th to (i+m−1)-th elements of an input data series as input elements, so as to obtain first vector data, executes the partial sum instruction which takes a (i+x)-th to (i+x+m−1)-th elements of the input data series as the input elements, so as to obtain second vector data, and performs operations to subtract the p-th element of the first vector data and add the p-th element of the second vector data from and to a sum of the i-th to (i+x−1)-th elements of the input data series in parallel for each of the 0-th to (m−1)-th elements, so as to calculate sums of elements for m sections different from each other in parallel, and moving average processing to calculate a moving average from the sums of elements of the sections.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory computer readable recording medium storing a program for causing a processor, which executes m number of arithmetic operations in parallel, m being an integer of 2 or more, and executes based on 0-th to (m−1)-th input elements a partial sum instruction which calculates a sum of the 0-th to p-th input elements and returns each as a p-th resultant element, p being an integer of 0 to m−1, to execute a moving average process comprising: executing the partial sum instruction which takes an i-th to (i+m−1)-th elements of an input data series as the 0-th to (m−1)-th input elements, so as to obtain first vector data, i being an arbitrary number among 0 and natural numbers; executing the partial sum instruction which takes a (i+x)-th to (i+x+m−1)-th elements of the input data series as the 0-th to (m−1)-th input elements, so as to obtain second vector data, x being a natural number; performing operations to subtract the p-th element of the first vector data and add the p-th element of the second vector data from and to a sum of the i-th to (i+x−1)-th elements of the input data series in parallel for each of the 0-th to (m−1)-th elements, so as to calculate sums of elements for m sections different from each other in parallel; and calculating a moving average of the input data series from the calculated sums of elements of the sections. 2. The computer readable recording medium according to claim 1 , wherein the executing the partial sum instruction to obtain the first vector data, the executing the partial sum instruction to obtain the second vector data, the performing operations to calculate sums of elements for m sections, and the calculating a moving average of the input data series are executed as one group repeatedly while increasing the value i by m at a time; and the sum of the (i+m)-th to (i+x+m−1)-th elements in the performing operations to calculate sums of elements for m sections of a previous group is taken as the sum of the i-th to (i+x−1)-th elements of the input data series in the performing operations to calculate sums of elements for m sections of a next group, so as to perform the arithmetic operations. 3. The computer readable recording medium according to claim 2 , wherein the input data series includes 0-th to (n−1)-th elements, n being an integer of 2 or more, and the input data series is expanded so that the number of elements in each section is x, so as to calculate the moving average. 4. The computer readable recording medium according to claim 3 , wherein a mask bit corresponding to the 0-th to (n−1)-th elements of the input data series is generated, and load processing and store processing of data of the elements corresponding to the mask bit are performed. 5. The computer readable recording medium according to claim 4 , wherein the input data series is expanded to an (−x)-th element, and the load processing of elements is suppressed by the mask bit for the (−x)-th to (−1)-th elements of the input data series. 6. The computer readable recording medium according to claim 4 , wherein when the number of elements of a last section for which the moving average is obtained is b, b being an arbitrary integer of x or less, the input data series is expanded to a (n+x−b−1)-th element, and the load processing of the n-th to (n+x−b−1)-th elements of the input data series is suppressed. 7. The computer readable recording medium according to claim 4 , wherein when the number of elements of an initial section for which the moving average is obtained is c, c being an arbitrary integer of x or less, a series of the output buffer is expanded to the (−c+1)-th element, and the store processing of (−c+1)-th to (−1)-th elements of the series of the output buffer is suppressed. 8. The computer readable recording medium according to claim 4 , wherein the processor is a SIMD type processor. 9. The computer readable recording medium according to claim 3 , wherein an output buffer storing calculated moving averages is expanded according to the expansion of the input data series. 10. The computer readable recording medium according to claim 1 , wherein a moving average is calculated by multiplying a result of the performing operations to calculate sums of elements for m sections and an inverse number obtained by referring to a coefficient table storing inverse numbers of numbers of effective elements of each section for which the moving average is calculated in the calculating a moving average of the input data series. 11. A processor comprising: an arithmetic operation unit which calculates moving averages of an input data series in parallel for a plurality of sections, wherein the arithmetic operation unit executes: a first arithmetic operation to calculate, for each element of a first SIMD register, a sum of an i-th to (i+p)-th elements of the input data series and store the sum as a p-th element in the first SIMD register, i being an arbitrary number among 0 and natural numbers, p being an integer of 0 to m−1, and m being an integer of 2 or more; a second arithmetic operation to calculate, for each element of a second SIMD register, a sum of an (i+x)-th to (i+x+p)-th elements of the input data series and store the sum as a p-th element in the second SIMD register, x being a natural number; and a third arithmetic operation to perform operations to add the p-th element of the second SIMD register and subtract the p-th element of the first SIMD register to and from a sum of i-th to (i+x−1)-th elements of the input data series, and store the result as a p-th element in a third SIMD register, in parallel for each of a 0-th to (m−1)-th elements, so as to calculate sums of elements for m sections different from each other in parallel; and averaging processing to calculate an average value from the sums of elements stored in the third SIMD register. 12. The processor according to claim 11 , wherein the input data series includes 0-th to (n−1)-th elements, n being an integer of 2 or more, and the input data series is expanded so that the number of elements in each section is x, so as to calculate the average value. 13. The processor according to claim 12 , wherein a mask bit corresponding to the 0-th to (n−1)-th elements of the input data series is generated, and load processing and store processing of data of the elements corresponding to the mask bit are performed. 14. The processor according to claim 11 , further comprising a coefficient table storing inverse numbers of numbers of effective elements of each section for which the moving average is calculated, wherein in the averaging processing, a moving average is calculated by multiplying a result of the third arithmetic operation and an inverse number obtained by referring to the coefficient table. 15. The processor according to claim 11 , wherein the processor is a SIMD type processor.

Assignees

Inventors

Classifications

  • G06F9/3001Primary

    Arithmetic instructions · CPC title

  • Bit or string instructions · CPC title

  • Instructions to perform operations on packed data, e.g. vector, tile or matrix operations · CPC title

  • for evaluating functions by calculation {(G06F7/4824 takes precedence)} · CPC title

  • using a mask · 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 US9436465B2 cover?
A processor, which executes m number of arithmetic operations in parallel, executes a partial sum instruction which takes an i-th to (i+m−1)-th elements of an input data series as input elements, so as to obtain first vector data, executes the partial sum instruction which takes a (i+x)-th to (i+x+m−1)-th elements of the input data series as the input elements, so as to obtain second vector dat…
Who is the assignee on this patent?
Fujitsu Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/3001. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 06 2016 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).