Patents by Inventor Matthew James HORSNELL

Matthew James HORSNELL 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).

  • Publication number: 20210103503
    Abstract: An apparatus and a method of operating a data processing apparatus, and simulators thereof, are disclosed. Data processing circuitry performs data processing operations in response to instructions, where some sets of instructions may be defined as a transaction which are to be performed atomically with respect to other operations performed by the data processing circuitry. When a synchronous exception occurs during a transaction the transaction is aborted and an exception counter is incremented. When the counter reaches a threshold value a transaction failure signal is generated, allowing, if appropriate a response to this number of exceptions causing transaction aborts to be carried out.
    Type: Application
    Filed: April 8, 2019
    Publication date: April 8, 2021
    Inventors: Matthew James HORSNELL, Grigorios MAGKLIS, Stephan DIESTELHORST
  • Patent number: 10922084
    Abstract: An apparatus has processing circuitry supporting vector load and store instructions. In response to a transaction start event, the processing circuitry executes one or more subsequent instructions speculatively. In response to a transaction end event, the processing circuitry commits speculative results of those instructions. Hazard detection circuitry detects whether an inter-element address hazard occurs between an address for data element J for an earlier vector load instruction and an address for data element K for a later vector store instruction, where K and J are not equal. In response to detecting the inter-element address hazard, the hazard detection circuitry triggers the processing circuitry to abort further processing of the instructions following the transaction start event and to prevent the speculative results being committed. This approach can provide faster performance for vectorised code.
    Type: Grant
    Filed: August 14, 2017
    Date of Patent: February 16, 2021
    Assignee: ARM Limited
    Inventors: Matthew James Horsnell, Mbou Eyole
  • Patent number: 10908944
    Abstract: An apparatus (2) with multiple processing elements (4, 6, 8) has shared transactional processing resources (10, 50, 75) for supporting processing of transactions, which comprise operations performed speculatively following a transaction start event whose results are committed following a transaction end event. The transactional processing resources may have a significant overhead and sharing these between the processing elements helps reduce energy consumption and circuit area.
    Type: Grant
    Filed: November 24, 2015
    Date of Patent: February 2, 2021
    Assignee: ARM LIMITED
    Inventors: Stephan Diestelhorst, Matthew James Horsnell, Guy Larri
  • Patent number: 10866805
    Abstract: An apparatus comprises processing circuitry to perform data processing and instruction decoding circuitry to decode instructions to control the processing circuitry to perform the data processing. The instruction decoding circuitry is responsive to a speculation barrier instruction to control the processing circuitry to prevent a subsequent operation, appearing in program order after the speculation barrier instruction, that has an address dependency on an earlier instruction preceding the speculation barrier instruction in the program order, from speculatively influencing allocations of entries in a cache. This provides protection against speculative cache-timing side-channel attacks.
    Type: Grant
    Filed: December 4, 2018
    Date of Patent: December 15, 2020
    Assignee: Arm Limited
    Inventors: Richard Roy Grisenthwaite, Giacomo Gabrielli, Matthew James Horsnell
  • Patent number: 10838730
    Abstract: A branch predictor is provided with a branch state buffer, branch prediction save circuitry responsive to a branch prediction save event associated with a given execution context to save at least a portion of the active branch prediction state associated with the given execution context to a branch state buffer; and branch prediction restore circuitry responsive to a branch prediction restore event associated with the given execution context to restore active branch prediction state based on previously saved branch prediction state stored in the branch state buffer for the given execution context. This is useful for reducing the performance impact of mitigating against speculative side-channel attacks.
    Type: Grant
    Filed: June 26, 2018
    Date of Patent: November 17, 2020
    Assignee: Arm Limited
    Inventors: Ilias Vougioukas, Andreas Lars Sandberg, Stephan Diestelhorst, Matthew James Horsnell
  • Patent number: 10810039
    Abstract: An apparatus (2) may have a processing element (4) for performing data access operations to access data from at least one storage device (10, 12, 14). The processing element may have at least one transactional processing resource (10, 18) supporting processing of a transaction in which data accesses are performed speculatively following a transaction start event and for which the speculative results are committed in response to a transaction end event. Monitoring circuitry (30) captures monitoring data indicating a degree of utilization of the transactional processing resource (10, 18) when processing the transaction.
    Type: Grant
    Filed: November 24, 2015
    Date of Patent: October 20, 2020
    Assignee: ARM Limited
    Inventors: Stephan Diestelhorst, Matthew James Horsnell
  • Publication number: 20200278882
    Abstract: A data processing apparatus has processing circuitry with transactional memory support circuitry to support execution of a transaction using transactional memory. In response to an exception mask updating instruction which updates exception mask information to enable at least one subset of exceptions which was disabled at the start of processing of a transaction, the processing circuitry permits un-aborted processing of one or more subsequent instruction of the transaction that follow the exception mask update instruction.
    Type: Application
    Filed: August 21, 2018
    Publication date: September 3, 2020
    Inventors: Matthew James HORSNELL, Grigorios MAGKLIS, Richard Roy GRISENTHWAITE, Stephan DIESTELHORST
  • Publication number: 20200272505
    Abstract: In an apparatus (2) with transactional memory support, a predetermined type of transaction start instruction or a subsequent instruction following the predetermined type of transaction start instruction triggers capture of a lock identifier which identifies a lock variable for controlling exclusive access to at least one resource. In response to a predetermined type of transaction end instruction which follows the predetermined type of transaction start instruction, the lock variable is checked and commitment of results of speculatively executed instructions of the transaction is prevented or deferred when the lock variable indicates that another thread holds the exclusive access to the target resource. This approach can improve performance when executing transactions in a transactional memory based system.
    Type: Application
    Filed: August 30, 2018
    Publication date: August 27, 2020
    Inventors: Matthew James HORSNELL, Stephan DIESTELHORST
  • Publication number: 20200257787
    Abstract: Briefly, example methods, apparatuses, and/or articles of manufacture are disclosed that may be implemented, in whole or in part, using one or more processing devices to facilitate and/or support one or more operations and/or techniques for authenticating an identity of a human subject. In particular, some embodiments are directed to techniques for authentication of an identity of a human subject as being an identity of a particular unique individual based, at least in part, on involuntary responses by the human subject to sensory stimuli.
    Type: Application
    Filed: February 8, 2019
    Publication date: August 13, 2020
    Inventors: Mbou Eyole, Matthew James Horsnell
  • Publication number: 20200257551
    Abstract: In a system providing transactional memory support, a transaction nesting depth testing instruction is provided for triggering processing circuitry to set at least one status value to one of a plurality of states depending on a transaction nesting depth indicative of a number of executed transaction start instructions of a given thread for which the corresponding transaction remains unaborted and uncommitted, the plurality of states including a first state selected when the transaction nesting depth is and at least one further state selected when the transaction nesting depth is greater than or less than. The ISA supported enables the setting of the at least one status value and a conditional branch conditional on the at least one status value being in the first state to be performed in response to a single transaction nesting depth testing instruction and a single conditional branch instruction.
    Type: Application
    Filed: August 21, 2018
    Publication date: August 13, 2020
    Inventors: Grigorios MAGKLIS, Matthew James HORSNELL, Stephan DIESTELHORST
  • Patent number: 10678595
    Abstract: A data processing apparatus comprises a plurality of data storage elements, each configured to store data. Mask storage circuitry stores a mask and processing circuitry executes one or more instructions. A data saver is configured, in response to a transactional start instruction, to select a subset of the data storage elements and to save a backup of the subset of the data storage elements. Mask control circuitry then updates the mask to indicate the subset of the data storage elements selected by the data saver. Finally, a monitor detects write or write attempts made to one of the data storage elements not indicated by the mask. Accordingly, a user need not save all data storage elements (e.g. registers) in a system or specify precisely which data storage elements must be saved in order to perform a transaction.
    Type: Grant
    Filed: June 11, 2015
    Date of Patent: June 9, 2020
    Assignee: ARM Limited
    Inventors: Matthew James Horsnell, Stephan Diestelhorst
  • Publication number: 20200167292
    Abstract: A data processing system (2) including one or more transaction buffers (16, 18, 20) storing address translation data executes translation buffer invalidation instructions TLBI within respective address translation contexts VMID, ASID, X. Translation buffer invalidation signals generated as a consequence of execution of the translation buffer invalidation instructions are broadcast to respective translation buffers and include signals which specify the address translation context of the translation buffer invalidation instruction that was executed. This address translation context specified within the translation buffer invalidation signals is used to gate whether or not those translation buffer invalidation signals when received by translation buffers which are potential targets for the invalidation are or are not flushed.
    Type: Application
    Filed: June 1, 2018
    Publication date: May 28, 2020
    Inventors: Matthew James HORSNELL, Grigorios MAGKLIS, Richard Roy GRISENTHWAITE
  • Patent number: 10572299
    Abstract: An apparatus (2) has processing circuitry (6) having access to a first processing resource (20-0) and a second processing resource (20-3). A first thread can be processed using the first processing resource. In a thread mode the second processing resource (20-3) can be used to process a second thread while in a transaction mode the second processing resource (20-3) can be used to process a transaction of the first thread comprising a number of speculatively performed operations for which results are committed at the end of the transaction. By sharing resources for supporting additional threads and supporting transactions, circuit area and power consumption can be reduced.
    Type: Grant
    Filed: November 24, 2015
    Date of Patent: February 25, 2020
    Assignee: ARM Limited
    Inventors: Stephan Diestelhorst, Matthew James Horsnell, Guy Larri
  • Patent number: 10523186
    Abstract: An apparatus is provided comprising receiving circuitry to receive a representation of a circuit comprising a plurality of flops. Categorisation circuitry determines data dependencies between the flops from the representation and generates a categorisation of the flops into one of at least: a vulnerable category, a conditional category, and an isolated category, in dependence on the data dependencies. The categorisation indicates the vulnerability of the flops to transient errors. Output circuitry outputs the categorisation of the flops. The conditional category comprises those of the flops whose change in value is indicated by a change in a value in a corresponding flop in the flops or corresponding signal.
    Type: Grant
    Filed: November 30, 2018
    Date of Patent: December 31, 2019
    Assignee: Arm Limited
    Inventors: Balaji Venu, Reiley Jeyapaul, Xabier Iturbe, Matthew James Horsnell, David Michael Gilday
  • Publication number: 20190361706
    Abstract: A branch predictor is provided with a branch state buffer, branch prediction save circuitry responsive to a branch prediction save event associated with a given execution context to save at least a portion of the active branch prediction state associated with the given execution context to a branch state buffer; and branch prediction restore circuitry responsive to a branch prediction restore event associated with the given execution context to restore active branch prediction state based on previously saved branch prediction state stored in the branch state buffer for the given execution context. This is useful for reducing the performance impact of mitigating against speculative side-channel attacks.
    Type: Application
    Filed: June 26, 2018
    Publication date: November 28, 2019
    Inventors: Ilias VOUGIOUKAS, Andreas Lars SANDBERG, Stephan DIESTELHORST, Matthew James HORSNELL
  • Patent number: 10394557
    Abstract: A data processing system supporting execution of transactions comprising one or more program instructions that execute to generate speculative updates is provided. The speculative updates are committed in normal operation if the transaction completes without a conflict. Start of execution of a transaction may be detected and execution diverted to be performed by software emulation rather than direct execution by the processing hardware. The software emulation may store data representing one or more versions of the speculative updates generated during the emulation. The software emulation may also detect conflicts with the transaction being emulated. In order to facilitate modifying the behaviour of other parts of the system interacting with a transaction under investigation, a non-standard response signal may be returned in response to a detected memory access request to a transaction being emulated.
    Type: Grant
    Filed: November 23, 2015
    Date of Patent: August 27, 2019
    Assignee: ARM Limited
    Inventors: Stephan Diestelhorst, Michael John Williams, Richard Roy Grisenthwaite, Matthew James Horsnell
  • Publication number: 20190258489
    Abstract: An apparatus has processing circuitry supporting vector load and store instructions. In response to a transaction start event, the processing circuitry executes one or more subsequent instructions speculatively. In response to a transaction end event, the processing circuitry commits speculative results of those instructions. Hazard detection circuitry detects whether an inter-element address hazard occurs between an address for data element J for an earlier vector load instruction and an address for data element K for a later vector store instruction, where K and J are not equal. In response to detecting the inter-element address hazard, the hazard detection circuitry triggers the processing circuitry to abort further processing of the instructions following the transaction start event and to prevent the speculative results being committed. This approach can provide faster performance for vectorised code.
    Type: Application
    Filed: August 14, 2017
    Publication date: August 22, 2019
    Inventors: Matthew James HORSNELL, Mbou EYOLE
  • Publication number: 20190205140
    Abstract: An apparatus comprises processing circuitry to perform data processing and instruction decoding circuitry to decode instructions to control the processing circuitry to perform the data processing. The instruction decoding circuitry is responsive to a speculation barrier instruction to control the processing circuitry to prevent a subsequent operation, appearing in program order after the speculation barrier instruction, that has an address dependency on an earlier instruction preceding the speculation barrier instruction in the program order, from speculatively influencing allocations of entries in a cache. This provides protection against speculative cache-timing side-channel attacks.
    Type: Application
    Filed: December 4, 2018
    Publication date: July 4, 2019
    Inventors: Richard Roy GRISENTHWAITE, Giacomo GABRIELLI, Matthew James HORSNELL
  • Patent number: 10241933
    Abstract: An asymmetric multiprocessor system includes a plurality of processor cores supporting transactional memory via controllers as well as one or more processor cores which do not support transactional memory via hardware. The controllers respond to receipt of a request for exclusive access to a lock address by determining whether or not their associated processors is currently executing a memory transaction guarded by a lock value stored at that lock address and if their processor is executing such a transaction, then delaying releasing the lock address for exclusive access until a predetermined condition is met. If the processor is not executing such a guarded memory transaction, then the lock address may be unconditionally released for exclusive access. The predetermined condition may be that a threshold delay has been exceeded since the request was received and/or that the request has previously been received and refused a threshold number of times.
    Type: Grant
    Filed: March 4, 2015
    Date of Patent: March 26, 2019
    Assignee: ARM Limited
    Inventors: Matthew James Horsnell, Richard Roy Grisenthwaite, Stuart David Biles
  • Patent number: 10002020
    Abstract: A data processing apparatus and method of data processing are provided, which relate to the operation of a processor which maintains a call stack in dependence on the data processing instructions executed. The processor is configured to operate in a transactional execution mode when the data processing instructions seek access to a stored data item which is shared with a further processor. When the processor enters its transactional execution mode it stores a copy of the current stack depth indication and thereafter, when operating in its transactional execution mode, further modifications to the call stack are compared to the copy of the stack depth indication stored. If the relative stacking position of the required modification is in a positive stack growth direction with respect to the copy stored, the modification to the call stack is labelled as non-speculative.
    Type: Grant
    Filed: June 9, 2015
    Date of Patent: June 19, 2018
    Assignee: ARM Limited
    Inventors: Matthew James Horsnell, Stephan Diestelhorst