Patents by Inventor Ian Rudolf Bratt

Ian Rudolf Bratt 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: 11948069
    Abstract: A processor arranged to compress neural network activation data comprising an input module for obtaining neural network activation data. The processor also comprises a block creation module arranged to split the neural network activation data into a plurality of blocks; and a metadata generation module for generating metadata associated with at least one of the plurality of blocks. Based on the metadata generated a selection module selects a compression scheme for each of the plurality of blocks, and a compression module for applying the selected compression scheme to the corresponding block to produce compressed neural network activation data. An output module is also provided for outputting the compressed neural network activation data.
    Type: Grant
    Filed: July 22, 2019
    Date of Patent: April 2, 2024
    Assignee: Arm Limited
    Inventors: Lingchuan Meng, John Wakefield Brothers, III, Jens Olson, Jared Corey Smolens, Eric Kunze, Ian Rudolf Bratt
  • Patent number: 11449729
    Abstract: The present disclosure advantageously provides a system and a method for convolving data in a quantized convolutional neural network (CNN). The method includes selecting a set of complex interpolation points, generating a set of complex transform matrices based, at least in part, on the set of complex interpolation points, receiving an input volume from a preceding layer of the quantized CNN, performing a complex Winograd convolution on the input volume and at least one filter, using the set of complex transform matrices, to generate an output volume, and sending the output volume to a subsequent layer of the quantized CNN.
    Type: Grant
    Filed: November 7, 2019
    Date of Patent: September 20, 2022
    Assignee: Arm Limited
    Inventors: Lingchuan Meng, Danny Daysang Loh, Ian Rudolf Bratt, Alexander Eugene Chalfin, Tianmu Li
  • Patent number: 11249908
    Abstract: An apparatus and method are disclosed for managing cache coherency. The apparatus has a plurality of agents with cache storage for caching data, and coherency control circuitry for acting as a point of coherency for the data by implementing a cache coherency protocol. In accordance with the cache coherency protocol the coherency control circuitry responds to certain coherency events by issuing coherency messages to one or more of the agents. A given agent is arranged, prior to entering a given state in which its cache storage is unused, to perform a flush operation in respect of its cache storage that may cause one or more evict messages to be issued to the coherency control circuitry. Further, once all evict messages resulting from performance of the flush operation has been issued, the given agent issues an evict barrier message to the coherency control circuitry.
    Type: Grant
    Filed: September 17, 2020
    Date of Patent: February 15, 2022
    Assignee: Arm Limited
    Inventors: Ole Henrik Jahren, Ian Rudolf Bratt, Sigurd Røed Scheistrøen
  • Patent number: 11188814
    Abstract: A circuit and method are provided for performing convolutional neural network computations for a neural network. The circuit includes a transposing buffer configured to receive actuation feature vectors along a first dimension and to output feature component vectors along a second dimension, a weight buffer configured to store kernel weight vectors along a first dimension and further configured to output kernel component vectors along a second dimension, and a systolic array configured to receive the kernel weight vectors along a first dimension and to receive the feature component vectors along a second dimension. The systolic array includes an array of multiply and accumulate (MAC) processing cells. Each processing cell is associated with an output value. The actuation feature vectors may be shifted into the transposing buffer along the first dimension and output feature component vectors may shifted out of the transposing buffer along the second dimension, providing efficient dataflow.
    Type: Grant
    Filed: April 5, 2018
    Date of Patent: November 30, 2021
    Assignee: Arm Limited
    Inventors: Paul Nicholas Whatmough, Ian Rudolf Bratt, Matthew Mattina
  • Patent number: 11170555
    Abstract: When processing graphics primitives in a graphics processing system, the render output is divided into a plurality of regions (40) for rendering, each region (40) comprising a respective area of the render output; and for sets of one or more primitives to be rendered, it is determined for which of the plurality of regions of the render output (40) the primitive(s) should be rendered; and for each region of the render output (40) it is determined the primitive(s) should be rendered for, geometry data for the primitive(s) is stored in memory in a respective data structure (42) along with an indication of state data that is to be used for rendering the primitive(s) for the region, such that the geometry data for the primitive(s) to be rendered is stored in a respective, different data structure (42) for each different region of the render output (40) it is determined the primitive(s) should be rendered for.
    Type: Grant
    Filed: November 27, 2019
    Date of Patent: November 9, 2021
    Assignee: Arm Limited
    Inventors: Ian Rudolf Bratt, Andreas Due Engh-Halstvedt, Alexander Eugene Chalfin, Andreas Loeve Selvik, Olof Henrik Uhrenholt, Thomas J. Olson
  • Patent number: 11127187
    Abstract: When processing graphics primitives in a graphics processing system, the render output is divided into a plurality of regions (40) for rendering, each region (40) comprising a respective area of the render output; and for sets of one or more primitives to be rendered, it is determined for which of the plurality of regions of the render output (40) the primitive(s) should be rendered; and for each region of the render output (40) it is determined the primitive(s) should be rendered for, geometry data for the primitive(s) is stored in memory in a respective data structure (42) along with an indication of state data that is to be used for rendering the primitive(s) for the region, such that the geometry data for the primitive(s) to be rendered is stored in a respective, different data structure (42) for each different region of the render output (40) it is determined the primitive(s) should be rendered for.
    Type: Grant
    Filed: November 27, 2019
    Date of Patent: September 21, 2021
    Assignee: Arm Limited
    Inventors: Ian Rudolf Bratt, Andreas Due Engh-Halstvedt, Alexander Eugene Chalfin, Andreas Loeve Selvik, Olof Henrik Uhrenholt, Thomas J. Olson
  • Patent number: 11127110
    Abstract: A display controller 93 in a data processing system includes a timewarp module (transformation circuitry) 100 that is operable to perform timewarp processing of a rendered frame 92 generated by a graphics processor (GPU) 91 for provision to a display panel 94. The timewarp module (transformation circuitry) 100 operates to transform an input surface 92 read by the display controller 93 based on received view orientation data to provide an appropriately “timewarped” transformed version of the input surface as an output transformed surface for display on the display 94.
    Type: Grant
    Filed: March 1, 2017
    Date of Patent: September 21, 2021
    Assignees: Arm Limited, Apical Limited
    Inventors: Ian Rudolf Bratt, Alexander Eugene Chalfin, Eric Kunze, Paul Stanley Hughes, Alex Kornienko, Damian Piotr Modrzyk, Metin Gokhan Ünal, Jonathan Adam Lawton
  • Publication number: 20210158598
    Abstract: When processing graphics primitives in a graphics processing system, the render output is divided into a plurality of regions (40) for rendering, each region (40) comprising a respective area of the render output; and for sets of one or more primitives to be rendered, it is determined for which of the plurality of regions of the render output (40) the primitive(s) should be rendered; and for each region of the render output (40) it is determined the primitive(s) should be rendered for, geometry data for the primitive(s) is stored in memory in a respective data structure (42) along with an indication of state data that is to be used for rendering the primitive(s) for the region, such that the geometry data for the primitive(s) to be rendered is stored in a respective, different data structure (42) for each different region of the render output (40) it is determined the primitive(s) should be rendered for.
    Type: Application
    Filed: November 27, 2019
    Publication date: May 27, 2021
    Applicant: Arm Limited
    Inventors: Ian Rudolf Bratt, Andreas Due Engh-Halstvedt, Alexander Eugene Chalfin, Andreas Loeve Selvik, Olof Henrik Uhrenholt, Thomas J. Olson
  • Patent number: 10956045
    Abstract: An apparatus and method are provided for issuing access requests to a memory controller for a memory device whose memory structure consists of a plurality of sub-structures. The apparatus has a request interface for issuing access requests to the memory controller, each access request identifying a memory address. Within the apparatus static abstraction data is stored providing an indication of one or more of the sub-structures of the memory device, and the apparatus also stores an indication of outstanding access requests issued from the request interface. Next access request selection circuitry is then arranged to select from a plurality of candidate access requests a next access request to issue from the request interface. That selection is dependent on sub-structure indication data that is derived from application of an abstraction data function, using the static abstraction data, to the memory addresses of the candidate access requests and the outstanding access requests.
    Type: Grant
    Filed: December 15, 2015
    Date of Patent: March 23, 2021
    Assignee: ARM Limited
    Inventors: Andreas Hansson, Ian Rudolf Bratt
  • Publication number: 20210027148
    Abstract: A processor arranged to compress neural network activation data comprising an input module for obtaining neural network activation data. The processor also comprises a block creation module arranged to split the neural network activation data into a plurality of blocks; and a metadata generation module for generating metadata associated with at least one of the plurality of blocks. Based on the metadata generated a selection module selects a compression scheme for each of the plurality of blocks, and a compression module for applying the selected compression scheme to the corresponding block to produce compressed neural network activation data. An output module is also provided for outputting the compressed neural network activation data.
    Type: Application
    Filed: July 22, 2019
    Publication date: January 28, 2021
    Inventors: Lingchuan MENG, John Wakefield BROTHERS, III, Jens OLSON, Jared Corey SMOLENS, Eric KUNZE, Ian Rudolf BRATT
  • Patent number: 10664399
    Abstract: A filter comprises interface circuitry, to intercept coherency protocol transactions exchanged between a master device comprising a first cache and an interconnect for managing coherency between the first cache and at least one other cache or other master device. The filter has filtering circuitry for filtering the coherency protocol transactions in dependence on memory access permission data defining which regions of an address space the master device is allowed to access.
    Type: Grant
    Filed: November 29, 2017
    Date of Patent: May 26, 2020
    Assignee: ARM Limited
    Inventors: Håkan Lars-Göran Persson, Ian Rudolf Bratt, Andrew Brookfield Swaine, Bruce James Mathewson
  • Publication number: 20200151541
    Abstract: The present disclosure advantageously provides a system and a method for convolving data in a quantized convolutional neural network (CNN). The method includes selecting a set of complex interpolation points, generating a set of complex transform matrices based, at least in part, on the set of complex interpolation points, receiving an input volume from a preceding layer of the quantized CNN, performing a complex Winograd convolution on the input volume and at least one filter, using the set of complex transform matrices, to generate an output volume, and sending the output volume to a subsequent layer of the quantized CNN.
    Type: Application
    Filed: November 7, 2019
    Publication date: May 14, 2020
    Inventors: Lingchuan Meng, Danny Daysang Loh, Ian Rudolf Bratt, Alexander Eugene Chalfin, Tianmu Li
  • Publication number: 20190311243
    Abstract: A circuit and method are provided for performing convolutional neural network computations for a neural network. The circuit includes a transposing buffer configured to receive actuation feature vectors along a first dimension and to output feature component vectors along a second dimension, a weight buffer configured to store kernel weight vectors along a first dimension and further configured to output kernel component vectors along a second dimension, and a systolic array configured to receive the kernel weight vectors along a first dimension and to receive the feature component vectors along a second dimension. The systolic array includes an array of multiply and accumulate (MAC) processing cells. Each processing cell is associated with an output value. The actuation feature vectors may be shifted into the transposing buffer along the first dimension and output feature component vectors may shifted out of the transposing buffer along the second dimension, providing efficient dataflow.
    Type: Application
    Filed: April 5, 2018
    Publication date: October 10, 2019
    Applicant: Arm Limited
    Inventors: Paul Nicholas Whatmough, Ian Rudolf Bratt, Matthew Mattina
  • Patent number: 10282338
    Abstract: A plurality of processor tiles are provided, each processor tile including a processor core. An interconnection network interconnects the processor cores and enables transfer of data among the processor cores. An extension network connects input/output ports of the interconnection network to input/output ports of one or more peripheral devices, each input/output port of the interconnection network being associated with one of the processor tiles such that each input/output port of the interconnection network sends input data to the corresponding processor tile and receives output data from the corresponding processor tile. The extension network is configurable such that a mapping between input/output ports of the interconnection network and input/output ports of the one or more peripheral devices is configurable.
    Type: Grant
    Filed: July 5, 2016
    Date of Patent: May 7, 2019
    Assignee: Mellanox Technologies, Ltd.
    Inventors: Liewei Bao, Ian Rudolf Bratt
  • Patent number: 10210092
    Abstract: Managing data in a computing system comprising one or more cores includes: providing a cache in each of one or more of the cores that includes multiple storage locations; storing data of a first type of multiple types of data in a selected storage location of a first cache of a first core that is selected according to status information associated with the first cache, and updating the status information; and storing data of a second type of the multiple types of data in a storage location within a subset of fewer than all of the storage locations of the first cache and managing the status information to ensure that subsequent data of the second type received by the first core for storage in the first cache is stored in the storage location within the subset.
    Type: Grant
    Filed: December 14, 2015
    Date of Patent: February 19, 2019
    Assignee: Mellanox Technologies, Ltd.
    Inventors: Chyi-Chang Miao, Christopher D. Metcalf, Ian Rudolf Bratt, Carl G. Ramey
  • 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: 10073778
    Abstract: A multicore processor comprises a plurality of cache memories, and a plurality of processor cores, each associated with one of the cache memories. Each of at least some of the cache memories is configured to maintain at least a portion of the cache memory in which each cache line is dynamically managed as either local to the associated processor core or shared among multiple processor cores.
    Type: Grant
    Filed: December 5, 2016
    Date of Patent: September 11, 2018
    Assignee: Mellanox Technologies Ltd.
    Inventors: Ian Rudolf Bratt, Matthew Mattina
  • Publication number: 20180253868
    Abstract: A display controller 93 in a data processing system includes a timewarp module (transformation circuitry) 100 that is operable to perform timewarp processing of a rendered frame 92 generated by a graphics processor (GPU) 91 for provision to a display panel 94. The timewarp module (transformation circuitry) 100 operates to transform an input surface 92 read by the display controller 93 based on received view orientation data to provide an appropriately “timewarped” transformed version of the input surface as an output transformed surface for display on the display 94.
    Type: Application
    Filed: March 1, 2017
    Publication date: September 6, 2018
    Applicants: ARM Limited, APICAL LIMITED
    Inventors: Ian Rudolf Bratt, Alexander Eugene Chalfin, Eric Kunze, Paul Stanley Hughes, Alex Kornienko, Damian Piotr Modrzyk, Metin Gokhan Ünal, Jonathan Adam Lawton
  • Publication number: 20180157590
    Abstract: A filter unit comprises interface circuitry, to intercept coherency protocol transactions exchanged between a master device comprising a first cache and an interconnect for managing coherency between the first cache and at least one other cache or other master device. The filter unit has filtering circuitry for filtering the coherency protocol transactions in dependence on memory access permission data defining which regions of an address space the master device is allowed to access.
    Type: Application
    Filed: November 29, 2017
    Publication date: June 7, 2018
    Inventors: Håkan Lars-Göran PERSSON, Ian Rudolf BRATT, Andrew Brookfield SWAINE, Bruce James MATHEWSON
  • Patent number: 9514050
    Abstract: A multicore processor comprises a plurality of cache memories, and a plurality of processor cores, each associated with one of the cache memories. Each of at least some of the cache memories is configured to maintain at least a portion of the cache memory in which each cache line is dynamically managed as either local to the associated processor core or shared among multiple processor cores.
    Type: Grant
    Filed: October 7, 2013
    Date of Patent: December 6, 2016
    Assignee: Tilera Corporation
    Inventors: Anant Agarwal, Ian Rudolf Bratt, Matthew Mattina