Patents by Inventor Andreas Due Engh-Halstvedt

Andreas Due Engh-Halstvedt has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10580113
    Abstract: A tile-based graphics processing system comprises a graphics processing pipeline comprising a plurality of processing stages, including at least a rasteriser that rasterises input primitives to generate graphics fragments to be processed, and a renderer that processes fragments generated by the rasteriser to generate rendered fragment data, and a tile buffer configured to store data locally to the graphics processing pipeline. The graphics processing system is operable to cause data for use when performing graphics processing operations for each tile of a set of plural tiles of a plurality of tiles to be loaded into the tile buffer before causing graphics processing operations to be performed for any of the tiles of the set of plural tiles.
    Type: Grant
    Filed: October 5, 2018
    Date of Patent: March 3, 2020
    Assignee: Arm Limited
    Inventors: Lars Oskar Flordal, Toni Viki Brkic, Christian Vik Grovdal, Andreas Due Engh-Halstvedt, Frode Heggelund
  • Publication number: 20200057636
    Abstract: Processing circuitry performs processing operations specified by program instructions. An instruction decoder decodes an atomic-add-with-carry instruction AADDC to control the processing circuitry to perform an atomic operation of an add of an addend operand value and a data value stored in a memory to generate a result value stored in the memory and a carry value indicative of whether or not the add generated a carry out. The atomic-add-with-carry instructions may be used within systems which accumulate a local sum value prior to a data value being returned into a local cache memory at which time the local sum value is added to the return data value. The atomic-add-with-carry instructions may also be used in embodiments comprising a coalescing tree of respective processing apparatus where the carry out values generated from local sums produced at each node are returned early to higher nodes within the hierarchy thereby releasing them to commence other processing.
    Type: Application
    Filed: October 23, 2019
    Publication date: February 20, 2020
    Inventor: Andreas Due ENGH-HALSTVEDT
  • Patent number: 10430099
    Abstract: A data array to be stored is first divided into a plurality of blocks. Each block is further sub-divided into a set of sub-blocks. Data representing sub-blocks of the data array is stored, together with a header data block for each block that the data array has been divided into. For each block, it is determined whether all the data positions for the block have the same data value associated with them, and, if so, an indication that all of the data positions within the block have the same data value associated with them, and an indication of the same data value that is associated with each of the data positions in the block, is stored in the header data block for that block of the data array.
    Type: Grant
    Filed: March 29, 2017
    Date of Patent: October 1, 2019
    Assignee: Arm Limited
    Inventors: Quinn Carter, Lars Oskar Flordal, Jakob Axel Fries, Andreas Due Engh-Halstvedt
  • Patent number: 10388057
    Abstract: In a graphics processing system, when using a graphics texture that is stored in memory as YUV texture data, the YUV texture data is stored in the texture cache from which it is to be read when generating a render output such that the data values for a chrominance data element and its associated set of one or more luminance data elements of the texture are stored together as a group in the cache. The group of data in the cache is tagged with an identifier for the data values of the chrominance data element and its associated set of one or more luminance data elements that is useable to identify the chrominance data element and its associated set of one or more luminance data elements in the cache, and that is indicative of a position in the YUV graphics texture.
    Type: Grant
    Filed: July 8, 2018
    Date of Patent: August 20, 2019
    Assignee: Arm Limited
    Inventors: Edvard Fielding, Jorn Nystad, Andreas Due Engh-Halstvedt
  • Patent number: 10331404
    Abstract: Apparatus for processing data includes processing circuitry 16, 18, 20, 22, 24, 26 and decoder circuitry 14 for decoding program instructions. The program instructions decoded include a floating point pre-conversion instruction which performs round-to-nearest ties to even rounding upon the mantissa field of an input floating number to generate an output floating point number with the same mantissa length but with the mantissa rounded to a position corresponding to a shorter mantissa field. The output mantissa field includes a suffix of zero values concatenated the rounded value. The decoder for circuitry 14 is also responsive to an integer pre-conversion instruction to quantise and input integer value using round-to-nearest ties to even rounding to form an output integer operand with a number of significant bits matched to the mantissa size of a floating point number to which the integer is later to be converted using an integer-to-floating point conversion instruction.
    Type: Grant
    Filed: December 29, 2014
    Date of Patent: June 25, 2019
    Assignee: ARM Limited
    Inventors: Jorn Nystad, Andreas Due Engh-Halstvedt, Simon Alex Charles
  • Publication number: 20190138458
    Abstract: When writing data to memory via a write buffer including a write cache containing a plurality of lines for storing data to be written to memory and an address-translation cache that stores a list of virtual address to physical address translations, a record of a set of lines of the write cache that are available to be evicted to the memory is maintained, and the evictable lines in the record of evictable lines are processed by requesting from the address-translation cache a respective physical address for each virtual address associated with an evictable line. The address-translation cache returns a hit or a miss status to the write buffer for each evictable line that is checked, and the write buffer writes out to memory at least one of the evictable lines for which a hit status was returned.
    Type: Application
    Filed: November 7, 2017
    Publication date: May 9, 2019
    Applicant: Arm Limited
    Inventors: Andreas Due Engh-Halstvedt, Frank Langtind, Shareef Justin Jalloq
  • Publication number: 20190108610
    Abstract: A tile-based graphics processing system comprises a graphics processing pipeline comprising a plurality of processing stages, including at least a rasteriser that rasterises input primitives to generate graphics fragments to be processed, and a renderer that processes fragments generated by the rasteriser to generate rendered fragment data, and a tile buffer configured to store data locally to the graphics processing pipeline. The graphics processing system is operable to cause data for use when performing graphics processing operations for each tile of a set of plural tiles of a plurality of tiles to be loaded into the tile buffer before causing graphics processing operations to be performed for any of the tiles of the set of plural tiles.
    Type: Application
    Filed: October 5, 2018
    Publication date: April 11, 2019
    Applicant: Arm Limited
    Inventors: Lars Oskar Flordal, Toni Viki Brkic, Christian Vik Grovdal, Andreas Due Engh-Halstvedt, Frode Heggelund
  • Patent number: 10255718
    Abstract: A graphics processing pipeline includes position shading circuitry, a tiler, varying-only vertex shading circuitry and fragment (frontend) shading circuitry. The tiler reads a list of indices defining a set of vertices to be processed by the graphics processing pipeline and determines whether or not vertex shading is required for the positional attributes of the vertices. If vertex shading is required, the tiler sends a position shading request for the vertices to the position shading circuitry. The tiler uses the vertex shaded position data to identify primitives that should be processed further to generate the render output and that accordingly should be subjected to a second, varying shading, vertex shading operation. When the tiler determines that a vertex (or group of vertices) should be subjected to the second, varying shading, vertex shading operation, the tiler sends a varying shading request for the vertex (or vertices) to the varying shading circuitry.
    Type: Grant
    Filed: December 28, 2016
    Date of Patent: April 9, 2019
    Assignee: Arm Limited
    Inventors: Frank Langtind, Andreas Due Engh-Halstvedt, Sandeep Kakarlapudi
  • Publication number: 20190079867
    Abstract: Cache storage comprising cache lines, each configured to store respective data entries. The cache storage is configured to store a tag in the form of: an individual tag portion which is individual to a cache line; a shareable tag portion which is shareable between cache lines; and pointer data which associates an individual tag portion with a shareable tag portion.
    Type: Application
    Filed: September 12, 2018
    Publication date: March 14, 2019
    Inventors: Antonio GARCÍA GUIRADO, Andreas Due ENGH-HALSTVEDT
  • Patent number: 10216479
    Abstract: An apparatus and method are provided for performing arithmetic operations to accumulate floating-point numbers. The apparatus comprises execution circuitry to perform arithmetic operations, and decoder circuitry to decode a sequence of instructions. A convert and accumulate instruction is provided, and the decoder circuitry is responsive to decoding the convert and accumulate instruction to generate one or more control signals to control the execution circuitry to convert at least one floating-point operand identified by the convert and accumulate instruction into a corresponding N-bit fixed-point operand having M fraction bits, where M is less than N and M is dependent on a format of the floating-point operand. The execution circuitry accumulates each corresponding N bit fixed-point operand and a P bit fixed-point operand identified by the convert and accumulate instruction in order to generate a P bit fixed-point result value, where P is greater than N and also has M fraction bits.
    Type: Grant
    Filed: December 6, 2016
    Date of Patent: February 26, 2019
    Assignee: ARM LIMITED
    Inventors: David Raymond Lutz, Neil Burgess, Christopher Neal Hinds, Andreas Due Engh-Halstvedt
  • Patent number: 10186069
    Abstract: A graphics processing system groups plural initial pilot shader programs into a set of initial pilot shader programs and associates the set of initial pilot shader programs with a set of indexes. The initial pilot shader programs each contain constant program expressions to be executed on behalf of an original shader program. The index for an initial pilot shader program is then used to obtain the instructions contained in the initial pilot shader program for executing the constant program expressions of the initial pilot shader program. The threads for executing a subset of the initial pilot shader programs are also grouped into a thread group and the threads of the thread group are executed in parallel. The graphics processing system provides for efficient preparation and execution of plural initial pilot shader programs.
    Type: Grant
    Filed: February 15, 2017
    Date of Patent: January 22, 2019
    Assignee: Arm Limited
    Inventors: Alexander Galazin, Jörg Wagner, Andreas Due Engh-Halstvedt
  • Publication number: 20190019323
    Abstract: In a graphics processing system, when using a graphics texture that is stored in memory as YUV texture data, the YUV texture data is stored in the texture cache from which it is to be read when generating a render output such that the data values for a chrominance data element and its associated set of one or more luminance data elements of the texture are stored together as a group in the cache. The group of data in the cache is tagged with an identifier for the data values of the chrominance data element and its associated set of one or more luminance data elements that is useable to identify the chrominance data element and its associated set of one or more luminance data elements in the cache, and that is indicative of a position in the YUV graphics texture.
    Type: Application
    Filed: July 8, 2018
    Publication date: January 17, 2019
    Applicant: Arm Limited
    Inventors: Edvard Fielding, Jorn Nystad, Andreas Due Engh-Halstvedt
  • Publication number: 20190012829
    Abstract: A graphics processing pipeline includes: a position shader, a tiler, a pool of memory for storing primitive lists and vertex shaded attributes data for vertices, a varying-only vertex shader, and a fragment frontend and shader. The position shader performs vertex shading for the positional attributes of the vertices of a set of vertices to be processed by the graphics processing pipeline. The tiler uses the vertex shaded position data to identify primitives that should be processed further to generate the render output. When the tiler determines that a vertex should be processed further to generate the render output, it allocates memory space in the memory pool for storing vertex shaded attributes data for the vertex. Vertex shaded attributes data for the vertex is then stored in the allocated space in the memory pool for later use, e.g., by the fragment frontend and shader.
    Type: Application
    Filed: July 3, 2018
    Publication date: January 10, 2019
    Applicant: Arm Limited
    Inventors: Andreas Due Engh-Halstvedt, Frank Klaeboe Langtind
  • Patent number: 10157132
    Abstract: A method of operating a data processing system comprises maintaining record of a set of processing passes to be performed by processing pass circuitry of the data processing system. The method comprises performing cycles of operation in which it is considered whether or not the data required for a subset of processing passes is stored in a local cache. The subset of processing passes that is considered in a subsequent scan of the record comprises at least one processing pass that was not considered in the previous scan of the record, regardless of whether or not the data considered in the previous scan is determined as being stored in the cache. The method provides an efficient way to identify processing passes that are ready to be performed.
    Type: Grant
    Filed: July 27, 2017
    Date of Patent: December 18, 2018
    Assignee: Arm Limited
    Inventors: Edvard Fielding, Andreas Due Engh-Halstvedt, Jorn Nystad, Antonio Garcia Guirado, William Robert Stoye, Ian Rudolf Bratt
  • Patent number: 10089709
    Abstract: A graphics processing unit 3 includes a rasterizer 25, a thread spawner 40, a programmable execution unit 41, a varying interpolator 42, a texture mapper 43, and a blender 29. The programmable execution unit 41 is able to communicate with the varying interpolator 42, the texture mapper 43 and the blender 29 to request processing operations by those graphic specific accelerators. In addition to this, these graphics-specific accelerators are also able to communicate directly with each other and with the thread spawner 40, independently of the programmable execution unit 41. This allows for certain graphics processing operations to be performed using direct communication between the graphics-specific accelerators of the graphics processing unit, instead of executing instructions in the programmable execution unit to trigger the performance of those operations by the graphics-specific accelerators.
    Type: Grant
    Filed: July 12, 2016
    Date of Patent: October 2, 2018
    Assignee: Arm Limited
    Inventors: Andreas Due Engh-Halstvedt, David James Bermingham, Amir Kleen, Jørn Nystad, Kenneth Edvard Østby
  • Publication number: 20180232935
    Abstract: A graphics processing system groups plural initial pilot shader programs into a set of initial pilot shader programs and associates the set of initial pilot shader programs with a set of indexes. The initial pilot shader programs each contain constant program expressions to be executed on behalf of an original shader program. The index for an initial pilot shader program is then used to obtain the instructions contained in the initial pilot shader program for executing the constant program expressions of the initial pilot shader program. The threads for executing a subset of the initial pilot shader programs are also grouped into a thread group and the threads of the thread group are executed in parallel. The graphics processing system provides for efficient preparation and execution of plural initial pilot shader programs.
    Type: Application
    Filed: February 15, 2017
    Publication date: August 16, 2018
    Applicant: ARM Limited
    Inventors: Alexander Galazin, Jörg Wagner, Andreas Due Engh-Halstvedt
  • Publication number: 20180217934
    Abstract: When a data processing operation requires data that is stored in a first cache and the fetching of the data into the first cache is dependent upon data stored in another cache, and an attempt to read the data from the first cache “misses”, the data processing operation is added to a record of data processing operations that have missed in the first cache and the data that is required for the data processing operation is fetched into the first cache by reading the data that is required to fetch the data into the first cache from the another cache and then using that data from the another cache to fetch the required data into the first cache. When the data that is required for the data processing operation has been fetched into the first cache, the data processing operation is performed using the fetched data.
    Type: Application
    Filed: February 2, 2017
    Publication date: August 2, 2018
    Applicant: ARM Limited
    Inventors: Andreas Due Engh-Halstvedt, Edvard Fielding
  • Patent number: 10013790
    Abstract: In a graphics processing system, a driver for the graphics processing pipeline can include conditional graphics processing tasks in the graphics processing tasks that are to be executed by the graphics processing pipeline to generate a render output required by an application. Each such conditional task has associated with it a condition to be used by the graphics processing pipeline to determine whether to execute processing for the task or not and a region of the render output over which the processing for the task will be executed when the condition for the task is met. The graphics processing pipeline determines whether the condition associated with the task has been met, and only executes the processing for the task if the condition associated with the task has been met.
    Type: Grant
    Filed: February 12, 2016
    Date of Patent: July 3, 2018
    Assignee: Arm Limited
    Inventors: Sandeep Kakarlapudi, Andreas Due Engh-Halstvedt, Lars Oskar Flordal, Arne Bergene Fossaa
  • Publication number: 20180157464
    Abstract: An apparatus and method are provided for performing arithmetic operations to accumulate floating-point numbers. The apparatus comprises execution circuitry to perform arithmetic operations, and decoder circuitry to decode a sequence of instructions in order to generate control signals to control the arithmetic operations performed by the execution circuitry. A convert and accumulate instruction is provided, and the decoder circuitry is responsive to decoding such a convert and accumulate instruction within the sequence of instructions to generate one or more control signals to control the execution circuitry. In particular, the execution circuitry is responsive to such control signals to convert at least one floating-point operand identified by the convert and accumulate instruction into a corresponding N-bit fixed-point operand having M fraction bits, where M is less than N and M is dependent on a format of the floating-point operand.
    Type: Application
    Filed: December 6, 2016
    Publication date: June 7, 2018
    Inventors: David Raymond LUTZ, Neil BURGESS, Christopher Neal HINDS, Andreas Due ENGH-HALSTVEDT
  • Patent number: 9953444
    Abstract: A graphics processing apparatus and method of performing graphics processing are provided. The graphics processing apparatus comprises a sequence of processing stages capable of performing graphics processing to generate a frame of display data. The graphics processing is performed on a tile-by-tile basis. The graphics processing apparatus is capable of determining if a current tile subject to the graphics processing is empty. At least one processing stage of the sequence of processing stages is omitted for graphics processing of the current tile in dependence on whether the current tile is empty.
    Type: Grant
    Filed: October 5, 2015
    Date of Patent: April 24, 2018
    Assignee: ARM Limited
    Inventors: Isidoros Sideris, Michel Patrick Gabriel Emil Iwaniec, Andrew Burdass, Nebojsa Makljenovic, Andreas Due Engh-Halstvedt