Patents by Inventor Thomas Christopher Grocutt

Thomas Christopher Grocutt 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: 10819736
    Abstract: A data processing apparatus comprises branch prediction circuitry adapted to store at least one branch prediction state entry in relation to a stream of instructions, input circuitry to receive at least one input to generate a new branch prediction state entry, wherein the at least one input comprises a plurality of bits; and coding circuitry adapted to perform an encoding operation to encode at least some of the plurality of bits based on a value associated with a current execution environment in which the stream of instructions is being executed. This guards against potential attacks which exploit the ability for branch prediction entries trained by one execution environment to be used by another execution environment as a basis for branch predictions.
    Type: Grant
    Filed: November 29, 2017
    Date of Patent: October 27, 2020
    Assignee: Arm Limited
    Inventors: Thomas Christopher Grocutt, Yasuo Ishii
  • Patent number: 10810098
    Abstract: A first processing component samples and lossily accumulates statistical activity data by generating at least one data bucket by segmenting a memory window in a memory and providing a map of the segmented memory window; sampling to detect activity in the data bucket and surjectively populating the map with statistical activity data; and responsive to a trigger, passing at least part of a population of the map to a second processing component. The second processing component receives and stores the at least part of the population of the surjective map, compares it with at least one previously stored map population; and on detecting anomalous patterning, performs an “anomaly detected” action.
    Type: Grant
    Filed: July 29, 2016
    Date of Patent: October 20, 2020
    Assignee: Arm IP Limited
    Inventors: Milosch Meriac, Thomas Christopher Grocutt, Jonathan Michael Austin, Geraint David Luff
  • Patent number: 10782972
    Abstract: An apparatus comprises processing circuitry (4) and an instruction decoder (6) which supports vector instructions for which multiple lanes of processing are performed on respective data elements of a vector value. In response to a vector predication instruction, the instruction decoder (6) controls the processing circuitry (4) to set control information based on the outcome of a number of element comparison operations each for determining whether a corresponding element passes or fails a test condition. The control information controls processing of a predetermined number of subsequent vector instructions after the vector predication instruction. The predetermined number is hard-wired or identified by the vector predication instruction. For one of the subsequent vector instructions, an operation for a given portion of a given lane of vector processing is masked based on the outcome indicated by the control information for a corresponding data element.
    Type: Grant
    Filed: March 17, 2017
    Date of Patent: September 22, 2020
    Assignee: ARM Limited
    Inventor: Thomas Christopher Grocutt
  • Patent number: 10768934
    Abstract: A data processing system supports a predicated-loop instruction that controls vectorised execution of a program loop body in respect of a plurality of vector elements. When the number of elements to be processed is not a whole number multiple of the number of lanes of processing supported for that element size, then the predicated-loop instruction controls suppression of processing in one or more lanes not required.
    Type: Grant
    Filed: March 21, 2017
    Date of Patent: September 8, 2020
    Assignee: ARM Limited
    Inventor: Thomas Christopher Grocutt
  • Patent number: 10768938
    Abstract: A data processing system provides a branch forward instruction (BF) which has programmable parameters specifying a branch target address to be branched to and a branch point identifying a program instruction following the branch forward instruction which, when reached, is followed by a branch to the branch target address.
    Type: Grant
    Filed: March 21, 2017
    Date of Patent: September 8, 2020
    Assignee: ARM Limited
    Inventors: Thomas Christopher Grocutt, Richard Roy Grisenthwaite, Simon John Craske, François Christopher Jacques Botman, Bradley John Smith
  • Patent number: 10747536
    Abstract: A data processing system provides a loop-end instruction for use at the end of a program loop body specifying an address of a beginning instruction of said program loop body. Loop control circuitry (1000) serves to control repeated execution of the program loop body upon second and subsequent passes through the program loop body using loop control data provided by the loop-end instruction without requiring the loop-end instruction to be explicitly executed upon each pass.
    Type: Grant
    Filed: March 21, 2017
    Date of Patent: August 18, 2020
    Assignee: ARM Limited
    Inventors: Alasdair Grant, Thomas Christopher Grocutt, Simon John Craske
  • Publication number: 20200167160
    Abstract: A data processing system includes processing circuitry for executing context-data-dependent-program instructions which are decoded by decoder circuitry. Such context-data-dependent program instructions perform processing which are dependent upon currently existing context data. As an example, the context-data-dependent program instructions may be floating point instructions and the context data may be rounding mode information. The decoder circuitry supports a context save instruction which saves context data when it is marked as having been used and saves default context data when the current context data is marked as not having been used. The decoder circuitry further supports a context restore instruction which restores context data when the current context data is marked as having been used and permits the current context data to continue for future use when it is marked as currently unused.
    Type: Application
    Filed: June 19, 2018
    Publication date: May 28, 2020
    Inventors: Thomas Christopher GROCUTT, François Christopher Jacques BOTMAN, Bradley John SMITH
  • Patent number: 10642710
    Abstract: An apparatus and method are provided for generating and processing a trace stream indicative of execution of predicated vector memory access instructions by processing circuitry. An apparatus has an input interface to receive execution information from the processing circuitry indicative of operations performed by that processing circuitry when executing a sequence of instructions. The sequence includes at least one predicated vector memory access instruction executed to perform a memory transfer operation in order to transfer data values of a vector between a vector register and addresses accessed in memory. The vector comprises a plurality of lanes, where the number of lanes is dependent on the size of the data values represented within the vector, and predicate information referenced when executing the predicated vector memory access instruction is used to determine which lanes are subjected to the memory transfer operation.
    Type: Grant
    Filed: December 12, 2017
    Date of Patent: May 5, 2020
    Assignee: ARM Limited
    Inventors: François Christopher Jacques Botman, Thomas Christopher Grocutt, John Michael Horley
  • Patent number: 10628155
    Abstract: First and second forms of a complex multiply instruction are provided for operating on first and second operand vectors comprising multiple data elements including at least one real data element for representing the real part of a complex number and at least one imaginary element for representing an imaginary part of the complex number. One of the first and second forms of the instruction targets at least one real element of the destination vector and the other targets at least one imaginary element. By executing one of each instruction, complex multiplications of the form (a+ib)*(c+id) can be calculated using relatively few instructions and with only two vector register read ports, enabling DSP algorithms such as FFTs to be calculated more efficiently using relatively low power hardware implementations.
    Type: Grant
    Filed: February 22, 2017
    Date of Patent: April 21, 2020
    Assignee: ARM Limited
    Inventor: Thomas Christopher Grocutt
  • Patent number: 10599428
    Abstract: Processing circuitry supports overlapped execution of vector instructions when at least one beat of a first vector instruction is performed in parallel with at least one beat of a second vector instruction. The processing circuitry also supports mixed-scalar-vector instructions for which one of a destination register and one or more source registers is a vector register and another is a scalar register. In a sequence including first and subsequent mixed-scalar-vector instructions, instances of relaxed execution which can potentially lead to uncertain and incorrect results are permitted by the processing circuitry when the instructions are separated by fewer than a predetermined number of intervening instructions. In practice the situations which lead to the uncertain results are very rare and so it is not justified providing relatively expensive dependency checking circuitry for eliminating such cases.
    Type: Grant
    Filed: March 23, 2016
    Date of Patent: March 24, 2020
    Assignee: ARM Limited
    Inventor: Thomas Christopher Grocutt
  • Publication number: 20200089559
    Abstract: An apparatus comprises a main processor to execute a main stream of program instructions, two or more checker processors to execute respective checker streams of program instructions in parallel with each other, the checker streams corresponding to different portions of the main stream executed by the main processor, and error detection circuitry to detect an error when a mismatch is detected between an outcome of a given portion of the main stream executed on the main processor and an outcome of the corresponding checker stream executed on one of the plurality of checker processors. This approach enables high performance main processors 4 to be checked for errors with lower circuit area and power consumption overhead than a dual-core lockstep technique.
    Type: Application
    Filed: October 20, 2017
    Publication date: March 19, 2020
    Inventors: Sam AINSWORTH, Thomas Christopher GROCUTT, Timothy Martin JONES
  • Publication number: 20200005640
    Abstract: An apparatus comprising an input to receive identifier parameters for one or more identifiers, where the identifiers are displayable at a display device mounted or mountable in a vehicle. The apparatus may comprise a storage device to store identifier parameters for at least one of the one or more identifiers. The apparatus may also comprise a locating module to determine a location parameter relating to the display device. Also the apparatus may comprise a processor to select an identifier for display at the display device based, at least in part, on the stored identifier parameters for one of the one or more identifiers matching the location parameter relating to the display device.
    Type: Application
    Filed: June 26, 2019
    Publication date: January 2, 2020
    Inventors: Francois Christopher Jacques Botman, Thomas Christopher Grocutt, Daryl Wayne Bradley, Marianne Crowder
  • Patent number: 10503932
    Abstract: A data processing apparatus is provided which uses flag circuitry (174) to set an access tracking flag (SFPA) to a first value when the processing circuitry (154) enters a secure mode in association with a function call and to switch the access tracking flag to a second value upon detection of a first access of at least one type to predetermined state data, such as floating point register data, by processing circuitry operating in the secure mode in association with that function call. This access tracking flag may then be used in association with a lazy-protection program instruction (VLSTM) and a lazy-load program instruction (VLLDM) to control whether or not push operations of the state data and restore operations of the state data are performed in order to prevent access in the non-secure mode to that state data.
    Type: Grant
    Filed: May 26, 2016
    Date of Patent: December 10, 2019
    Assignee: ARM Limited
    Inventors: Thomas Christopher Grocutt, Simon John Craske
  • Patent number: 10503472
    Abstract: An apparatus and method are provided for processing floating point values using an intermediate representation which has significand, exponent and shadow sections. A less significant portion of the exponent of the floating point value defines a range of positions within the significand section where the representation of the significand is to be held. The exponent section holds a representation of a more significant portion of the exponent indicating a selected window of multiple contiguous windows spanning a value range of a format of the floating point value. A first portion of the significand section corresponds to the selected window and a second portion corresponds to an overlap into a further window which is adjacent to and lower in the value range.
    Type: Grant
    Filed: May 17, 2016
    Date of Patent: December 10, 2019
    Assignee: ARM Limited
    Inventors: Daryl John Stewart, Thomas Christopher Grocutt
  • Publication number: 20190369995
    Abstract: An apparatus and method are provided for performing vector processing operations. In particular the apparatus has processing circuitry to perform the vector processing operations and an instruction decoder to decode vector instructions to control the processing circuitry to perform the vector processing operations specified by the vector instructions. The instruction decoder is responsive to a vector generating instruction identifying a scalar start value and wrapping control information, to control the processing circuitry to generate a vector comprising a plurality of elements. In particular, the processing circuitry is arranged to generate the vector such that the first element in the plurality is dependent on the scalar start value, and the values of the plurality of elements follow a regularly progressing sequence that is constrained to wrap as required to ensure that each value is within bounds determined from the wrapping control information.
    Type: Application
    Filed: November 8, 2017
    Publication date: December 5, 2019
    Inventors: François Christopher Jacques BOTMAN, Thomas Christopher GROCUTT, Neil BURGESS
  • Publication number: 20190370149
    Abstract: An apparatus and method are provided for generating and processing a trace stream indicative of instruction execution by processing circuitry. An apparatus has an input interface for receiving instruction execution information from the processing circuitry indicative of a sequence of instructions executed by the processing circuitry, and trace generation circuitry for generating from the instruction execution information a trace stream comprising a plurality of trace elements indicative of execution by the processing circuitry of instruction flow changing instructions within the sequence.
    Type: Application
    Filed: August 9, 2017
    Publication date: December 5, 2019
    Inventors: François Christopher Jacques BOTMAN, Thomas Christopher GROCUTT, John Michael HORLEY, Michael John WILLIAMS, Michael John GIBBS
  • Publication number: 20190339971
    Abstract: An apparatus and method are provided for performing a vector rearrangement operation as data elements are moved between memory and vector registers. The apparatus has processing circuitry for performing operations specified by a sequence of program instructions, and a set of vector registers, where each vector register is arranged to store a vector comprising a plurality of data elements. The processing circuitry includes access circuitry to move the data elements between memory and multiple vector registers of the set, and to perform a rearrangement operation as the data elements are moved so that the data elements are arranged in a first organisation in the memory and are arranged in a second, different, organisation in the vector registers. Decode circuitry is arranged to be responsive to a group of rearrangement instructions within the sequence of program instructions to produce control signals to control execution of each rearrangement instruction by the processing circuitry.
    Type: Application
    Filed: June 6, 2017
    Publication date: November 7, 2019
    Inventor: Thomas Christopher GROCUTT
  • Publication number: 20190310851
    Abstract: A data processing system supports a predicated-loop instruction that controls vectorised execution of a program loop body in respect of a plurality of vector elements. When the number of elements to be processed is not a whole number multiple of the number of lanes of processing supported for that element size, then the predicated-loop instruction controls suppression of processing in one or more lanes not required.
    Type: Application
    Filed: March 21, 2017
    Publication date: October 10, 2019
    Inventor: Thomas Christopher GROCUTT
  • Publication number: 20190310847
    Abstract: First and second forms of a complex multiply instruction are provided for operating on first and second operand vectors comprising multiple data elements including at least one real data element for representing the real part of a complex number and at least one imaginary element for representing an imaginary part of the complex number. One of the first and second forms of the instruction targets at least one real element of the destination vector and the other targets at least one imaginary element. By executing one of each instruction, complex multiplications of the form (a+ib)*(c+id) can be calculated using relatively few instructions and with only two vector register read ports, enabling DSP algorithms such as FFTs to be calculated more efficiently using relatively low power hardware implementations.
    Type: Application
    Filed: February 22, 2017
    Publication date: October 10, 2019
    Inventor: Thomas Christopher GROCUTT
  • Publication number: 20190250914
    Abstract: There is provided an apparatus that includes a set of vector registers, each of the vector registers being arranged to store a vector comprising a plurality of portions. The set of vector registers is logically divided into a plurality of columns, each of the columns being arranged to store a same portion of each vector. The apparatus also includes register access circuitry that comprises a plurality of access blocks. Each access block is arranged to access a portion in a different column when accessing one of the vector registers than when accessing at least one other of the vector registers. The register access circuitry is arranged to simultaneously access portions in any one of: the vector registers and the columns.
    Type: Application
    Filed: June 15, 2017
    Publication date: August 15, 2019
    Inventor: Thomas Christopher GROCUTT