Performing stencil computations

US9870227B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9870227-B2
Application numberUS-201214352870-A
CountryUS
Kind codeB2
Filing dateNov 8, 2012
Priority dateNov 11, 2011
Publication dateJan 16, 2018
Grant dateJan 16, 2018

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 method and apparatus for performing stencil computations efficiently are disclosed. In one embodiment, a processor receives an offset, and in response, retrieves a value from a memory via a single instruction, where the retrieving comprises: identifying, based on the offset, one of a plurality of registers of the processor; loading an address stored in the identified register; and retrieving from the memory the value at the address.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving, by a processor, an offset from a cell of a multidimensional grid, wherein the offset corresponds to an index of one of a plurality of registers of the processor; and retrieving by the processor, via a single instruction, a value from a memory address associated with the offset in response to the receiving of the offset, wherein the retrieving comprises: identifying, based on the offset, the one of the plurality of registers of the processor, wherein the identified register corresponds to a dimension and a polarity of the multidimensional grid; loading the memory address stored in the identified register; and retrieving the value from the memory address. 2. The method of claim 1 further comprising: determining, by the processor, a first address of the memory based on: a second address of the memory corresponding to the cell of the multidimensional grid, a first stride value for a first dimension of the multidimensional grid, and a first polarity; and storing, by the processor, the first address in a first register of the processor that is associated with the first dimension and with the first polarity. 3. The method of claim 2 further comprising: determining, by the processor, a third address of the memory based on: the second address, the first stride value, and a second polarity that is the opposite of the first polarity; and storing, by the processor, the third address in a second register of the processor that is associated with the first dimension and with the second polarity. 4. The method of claim 2 further comprising: determining, by the processor, a third address of the memory based on: the second address, a second stride value for a second dimension of the multidimensional grid, and a second polarity; and storing, by the processor, the third address in a second register of the processor that is associated with the second dimension and with the second polarity. 5. The method of claim 4 wherein the second polarity equals the first polarity. 6. The method of claim 4 wherein the second stride value is different than the first stride value. 7. The method of claim 2 wherein the first stride value is a positive integer greater than one. 8. The method of claim 2 further comprising: retrieving, by the processor, a value stored at the first address of the memory; and computing, by the processor, an updated value of the cell of the multidimensional grid based on the value retrieved from the first address of the memory. 9. The method of claim 8 wherein the computing is also based on a current value of the cell of the multidimensional grid. 10. A non-transitory computer readable storage medium including instructions that, when executed by a processor, cause the processor to perform operations comprising: predetermining, by the processor, a first address of a memory based on: a second address of the memory corresponding to a cell of a multidimensional grid, a first stride value for a first dimension of the multidimensional grid, and a first polarity; storing, by the processor, the first address in a first register of the processor that is associated with the first dimension and with the first polarity; predetermining, by the processor, a third address of the memory based on: the second address, a second stride value for a second dimension of the multidimensional grid, and a second polarity; and storing, by the processor, the third address in a second register of the processor that is associated with the second dimension and with the second polarity. 11. The non-transitory computer readable storage medium of claim 10 , wherein the operations further comprise: receiving, by the processor, an offset; and retrieving by the processor, via a single instruction, a value from a memory in response to the receiving of the offset, wherein the retrieving comprises: identifying, based on the offset, one of a plurality of registers of the processor, loading an address stored in the identified register, and retrieving from the memory the value at the address. 12. The non-transitory computer readable storage medium of claim 10 wherein the first stride value is a positive integer greater than one. 13. The non-transitory computer readable storage medium of claim 10 wherein the second stride value is a positive integer greater than one and is different than the first stride value. 14. The non-transitory computer readable storage medium of claim 10 wherein the multidimensional grid is a two-dimensional grid. 15. The non-transitory computer readable storage medium of claim 10 wherein the multidimensional grid is a three-dimensional grid. 16. A system comprising: a plurality of registers to store data; an arithmetic logic unit (ALU); and a coprocessor to: receive from the ALU an offset from a cell of a multidimensional grid wherein the offset corresponds to an index of one of a plurality of registers of the coprocessor, and retrieve a value from a memory address associated with the offset via a single instruction, wherein to retrieve the value from memory via a single instruction the coprocessor is further to: identify, based on the offset, the one of the plurality of registers of the coprocessor, wherein the identified register is associated with a dimension and a polarity of the multidimensional grid; load the memory address stored in the identified register; and retrieve the value from the memory address. 17. The system of claim 16 , wherein the coprocessor is further to: determine a first address of the memory based on: a second address of the memory corresponding to the cell of the multidimensional grid, a first stride value for a first dimension of the multidimensional grid, and a first polarity; and store the first address in a first register of the plurality of registers that is associated with the first dimension and with the first polarity. 18. The system of claim 17 , wherein the coprocessor is further to: determine a third address of the memory based on: the second address, the first stride value, and a second polarity that is the opposite of the first polarity; and store the third address in a second register of the plurality of registers that is associated with the first dimension and with the second polarity. 19. The system of claim 17 , wherein the coprocessor is further to: determine a third address of the memory based on: the second address, a second stride value for a second dimension of the multidimensional grid, and a second polarity; and store the third address in a second register of the plurality of registers that is associated with the second dimension and with the second polarity. 20. The system of claim 16 wherein the ALU is further to perform a stencil computation based on the value retrieved from the memory.

Assignees

Inventors

Classifications

  • to perform operations on data operands · CPC title

  • G06F9/3455Primary

    using stride · CPC title

  • Complex mathematical operations {(function generation by table look-up G06F1/03; evaluation of elementary functions by calculation G06F7/544)} · CPC title

  • using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12) · 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 US9870227B2 cover?
A method and apparatus for performing stencil computations efficiently are disclosed. In one embodiment, a processor receives an offset, and in response, retrieves a value from a memory via a single instruction, where the retrieving comprises: identifying, based on the offset, one of a plurality of registers of the processor; loading an address stored in the identified register; and retrieving …
Who is the assignee on this patent?
Univ California
What technology area does this patent fall under?
Primary CPC classification G06F9/30007. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 16 2018 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).