Patents by Inventor Curtis Glenn DUNHAM

Curtis Glenn DUNHAM 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: 10467159
    Abstract: A memory node controller for a node of a data processing network, the network including at least one computing device and at least one data resource, each data resource addressed by a physical address. The node is configured to couple the at least one computing device with the at least one data resource. Elements of the data processing network are addressed via a system address space. The memory node controller includes a first interface to the at least one data resource, a second interface to the at least one computing device, and a system to physical address translator cache configured to translate a system address in the system address space to a physical address in the physical address space of the at least one data resource.
    Type: Grant
    Filed: July 14, 2017
    Date of Patent: November 5, 2019
    Assignee: Arm Limited
    Inventors: Jonathan Curtis Beard, Roxana Rusitoru, Curtis Glenn Dunham
  • Publication number: 20190303143
    Abstract: A method and apparatus are provided for dynamically determining when an operation, specified by one or more instructions in a data processing system, is suitable for accelerated execution. Data indicators are maintained, for data registers of the system, that indicate when data-flow from a register derives from a restricted source. In addition, instruction predicates are provided for instructions to indicate which instructions are capable of accelerated execution. From the data indicators and the instruction predicates, the microarchitecture of the data processing system determines, dynamically, when the operation is a thread-restricted function and suitable for accelerated execution in a hardware accelerator. The thread-restricted function may be executed on a hardware processor, such as a vector, neuromorphic or other processor.
    Type: Application
    Filed: March 29, 2018
    Publication date: October 3, 2019
    Applicant: Arm Limited
    Inventors: Jonathan Curtis Beard, Curtis Glenn Dunham, Alejandro Rico Carro
  • Patent number: 10423446
    Abstract: Data processing apparatus comprises one or more interconnected processing elements each configured to execute processing instructions of a program task; coherent memory circuitry storing one or more copies of data accessible by each of the processing elements, so that data written to a memory address in the coherent memory circuitry by one processing element is consistent with data read from that memory address in the coherent memory circuitry by another of the processing elements; the coherent memory circuitry comprising a memory region to store data, accessible by the processing elements, defining one or more attributes of a program task and context data associated with a most recent instance of execution of that program task; the apparatus comprising scheduling circuitry to schedule execution of a task by a processing element in response to the one or more attributes defined by data stored in the memory region corresponding to that task; and each processing element which executes a program task is configur
    Type: Grant
    Filed: November 28, 2016
    Date of Patent: September 24, 2019
    Assignee: ARM Limited
    Inventors: Curtis Glenn Dunham, Jonathan Curtis Beard, Roxana Rusitoru
  • Patent number: 10353826
    Abstract: A data processing system includes a memory system, a first processing element, a first address translator that maps virtual addresses to system addresses, a second address translator that maps system address to physical addresses, and a task management unit. A first program task uses a first virtual memory space that is mapped to a first system address range using a first table. The context of the first program task includes an address of the first table and is cloned by creating a second table indicative of a mapping from a second virtual address space to a second range of system addresses, where the second range is mapped to the same physical addresses as the first range until a write occurs, at which time memory is allocated and the mapping of the second range is updated. The cloned context includes an address of the second table.
    Type: Grant
    Filed: July 14, 2017
    Date of Patent: July 16, 2019
    Assignee: Arm Limited
    Inventors: Jonathan Curtis Beard, Roxana Rusitoru, Curtis Glenn Dunham
  • Patent number: 10324727
    Abstract: A data processing apparatus executes a stream of instructions. Memory access circuitry accesses a memory in response to control signals associated with a memory access instruction that is executed in the stream of instructions. Branch prediction circuitry predicts the outcome of branch instructions in the stream of instructions based on a branch prediction table. Processing circuitry performs a determination of whether out-of-order execution of memory access instructions is to be performed based on memory prediction data, and selectively enables out-of-order execution of the memory access instructions in dependence on the determination. The memory prediction data is stored in the branch prediction table.
    Type: Grant
    Filed: August 17, 2016
    Date of Patent: June 18, 2019
    Assignee: ARM Limited
    Inventors: Curtis Glenn Dunham, Mitchell Bryan Hayenga
  • Publication number: 20190102388
    Abstract: An apparatus has processing circuitry for processing instructions from multiple threads. A storage structure is shared between the threads and has a number of entries. Indexing circuitry generates a target index value identifying an entry of the storage structure to be accessed in response to a request from the processing circuitry specifying a requested index value corresponding to information to be accessed from the storage structure. The indexing circuitry generates the target index value as a function of the requested index value and a key value selected depending on which of the threads trigger the request. The key value for at least one of the threads is updated from time to time.
    Type: Application
    Filed: December 3, 2018
    Publication date: April 4, 2019
    Inventors: Mitchell Bryan HAYENGA, Curtis Glenn DUNHAM, Dam SUNWOO
  • Patent number: 10185731
    Abstract: An apparatus has processing circuitry for processing instructions from multiple threads. A storage structure is shared between the threads and has a number of entries. Indexing circuitry generates a target index value identifying an entry of the storage structure to be accessed in response to a request from the processing circuitry specifying a requested index value corresponding to information to be accessed from the storage structure. The indexing circuitry generates the target index value as a function of the requested index value and a key value selected depending on which of the threads trigger the request. The key value for at least one of the threads is updated from time to time.
    Type: Grant
    Filed: March 31, 2016
    Date of Patent: January 22, 2019
    Assignee: ARM Limited
    Inventors: Mitchell Bryan Hayenga, Curtis Glenn Dunham, Dam Sunwoo
  • Publication number: 20190018794
    Abstract: A data processing system includes a memory system, a first processing element, a first address translator that maps virtual addresses to system addresses, a second address translator that maps system address to physical addresses, and a task management unit. A first program task uses a first virtual memory space that is mapped to a first system address range using a first table. The context of the first program task includes an address of the first table and is cloned by creating a second table indicative of a mapping from a second virtual address space to a second range of system addresses, where the second range is mapped to the same physical addresses as the first range until a write occurs, at which time memory is allocated and the mapping of the second range is updated. The cloned context includes an address of the second table.
    Type: Application
    Filed: July 14, 2017
    Publication date: January 17, 2019
    Applicant: ARM LTD
    Inventors: Jonathan Curtis BEARD, Roxana RUSITORU, Curtis Glenn DUNHAM
  • Publication number: 20190018790
    Abstract: A system, apparatus and method are provided in which a range of virtual memory addresses and a copy of that range are mapped to the same first system address range in a data processing system until an address in the virtual memory address range, or its copy, is written to. The common system address range includes a number of divisions. Responsive to a write request to an address in a division of the common address range, a second system address range is generated. The second system address range is mapped to the same physical addresses as the first system address range, except that the division containing the address to be written to and its corresponding division in the second system address range are mapped to different physical addresses. First layer mapping data may be stored in a range table buffer and updated when the second system address range is generated.
    Type: Application
    Filed: July 14, 2017
    Publication date: January 17, 2019
    Applicant: ARM LTD
    Inventors: Jonathan Curtis BEARD, Roxana RUSITORU, Curtis Glenn DUNHAM
  • Publication number: 20190018787
    Abstract: A host machine uses a range-based address translation system rather than a conventional page-based system. This enables address translation to be performed with improved efficiency, particularly when nest virtual machines are used. A data processing system utilizes range-based address translation to provide fast address translation for virtual machines that use virtual address space.
    Type: Application
    Filed: November 21, 2017
    Publication date: January 17, 2019
    Applicant: Arm Limited
    Inventors: Roxana Rusitoru, Jonathan Curtis Beard, Curtis Glenn Dunham
  • Publication number: 20190018785
    Abstract: A data processing network includes a network of devices addressable via a system address space, the network including a computing device configured to execute an application in a virtual address space. A virtual-to-system address translation circuit is configured to translate a virtual address to a system address. A memory node controller has a first interface to a data resource addressable via a physical address space, a second interface to the computing device, and a system-to-physical address translation circuit, configured to translate a system address in the system address space to a corresponding physical address in the physical address space of the data resource. The virtual-to-system mapping may be a range table buffer configured to retrieve a range table entry comprising an offset address of a range together with a virtual address base and an indicator of the extent of the range.
    Type: Application
    Filed: November 21, 2017
    Publication date: January 17, 2019
    Applicant: Arm Limited
    Inventors: Jonathan Curtis BEARD, Roxana RUSITORU, Curtis Glenn DUNHAM
  • Publication number: 20190018808
    Abstract: A memory node controller for a node of a data processing network, the network including at least one computing device and at least one data resource, each data resource addressed by a physical address. The node is configured to couple the at least one computing device with the at least one data resource. Elements of the data processing network are addressed via a system address space. The memory node controller includes a first interface to the at least one data resource, a second interface to the at least one computing device, and a system to physical address translator cache configured to translate a system address in the system address space to a physical address in the physical address space of the at least one data resource.
    Type: Application
    Filed: July 14, 2017
    Publication date: January 17, 2019
    Applicant: ARM LTD
    Inventors: Jonathan Curtis BEARD, Roxana RUSITORU, Curtis Glenn DUNHAM
  • Publication number: 20190018789
    Abstract: Memory address translation apparatus comprises a translation data store to store one or more instances of translation data providing address range boundary values defining a range of virtual memory addresses between respective virtual memory address boundaries in a virtual memory address space, and indicating a translation between a virtual memory address in the range of virtual memory addresses and a corresponding output memory address in an output address space; detector circuitry to detect whether a given virtual memory address to be translated lies in the range of virtual memory addresses defined by an instance of the translation data in the translation data store; in which the detector circuitry is configured, when the given virtual memory address to be translated lies outside the ranges of virtual memory addresses defined by any instances of the translation data stored by the translation data store, to retrieve one or more further instances of the translation data; and translation circuitry to apply the
    Type: Application
    Filed: July 14, 2017
    Publication date: January 17, 2019
    Applicant: ARM LTD
    Inventors: Jonathan Curtis BEARD, Roxana RUSITORU, Curtis Glenn DUNHAM
  • Publication number: 20180150315
    Abstract: Data processing apparatus comprises one or more interconnected processing elements; each processing element being configured to execute processing instructions of program tasks; each processing element being configured to save context data relating to a program task following execution of that program task by that processing element; and to load context data, previously saved by that processing element or another of the processing elements, at resumption of execution of a program task; each processing element having respective associated format definition data to define one or more sets of data items for inclusion in the context data; the apparatus comprising format selection circuitry to communicate the format definition data of each of the processing elements with others of the processing elements and to determine, in response to the format definition data for each of the processing elements, a common set of data items for inclusion in the context data.
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Curtis Glenn DUNHAM, Jonathan Curtis BEARD, Roxana RUSITORU
  • Publication number: 20180150322
    Abstract: Data processing apparatus comprises one or more interconnected processing elements each configured to execute processing instructions of a program task; coherent memory circuitry storing one or more copies of data accessible by each of the processing elements, so that data written to a memory address in the coherent memory circuitry by one processing element is consistent with data read from that memory address in the coherent memory circuitry by another of the processing elements; the coherent memory circuitry comprising a memory region to store data, accessible by the processing elements, defining one or more attributes of a program task and context data associated with a most recent instance of execution of that program task; the apparatus comprising scheduling circuitry to schedule execution of a task by a processing element in response to the one or more attributes defined by data stored in the memory region corresponding to that task; and each processing element which executes a program task is configur
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Curtis Glenn DUNHAM, Jonathan Curtis BEARD, Roxana RUSITORU
  • Publication number: 20180150321
    Abstract: Data processing apparatus comprises a group of two or more processing elements configured to execute processing instructions of a program task; the processing elements being configured to provide context data relating to a program task following execution of that program task by that processing element; and to receive context data, provided by that processing element or another processing element, at resumption of execution of a program task; in which a next processing element of the group to execute a program task is configured to receive a first subset of the context data from a previous processing element to execute that program task and to start to execute the program task using the first subset of the context data; and in which the next processing element is configured to receive one or more items of a second, remaining, subset of the context data during execution of the program task by that processing element.
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Curtis Glenn DUNHAM, Jonathan Curtis BEARD, Roxana RUSITORU
  • Publication number: 20180052691
    Abstract: A data processing apparatus executes a stream of instructions. Memory access circuitry accesses a memory in response to control signals associated with a memory access instruction that is executed in the stream of instructions. Branch prediction circuitry predicts the outcome of branch instructions in the stream of instructions based on a branch prediction table. Processing circuitry performs a determination of whether out-of-order execution of memory access instructions is to be performed based on memory prediction data, and selectively enables out-of-order execution of the memory access instructions in dependence on the determination. The memory prediction data is stored in the branch prediction table.
    Type: Application
    Filed: August 17, 2016
    Publication date: February 22, 2018
    Inventors: Curtis Glenn DUNHAM, Mitchell Bryan HAYENGA
  • Publication number: 20170286421
    Abstract: An apparatus has processing circuitry for processing instructions from multiple threads. A storage structure is shared between the threads and has a number of entries. Indexing circuitry generates a target index value identifying an entry of the storage structure to be accessed in response to a request from the processing circuitry specifying a requested index value corresponding to information to be accessed from the storage structure. The indexing circuitry generates the target index value as a function of the requested index value and a key value selected depending on which of the threads trigger the request. The key value for at least one of the threads is updated from time to time.
    Type: Application
    Filed: March 31, 2016
    Publication date: October 5, 2017
    Inventors: Mitchell Bryan HAYENGA, Curtis Glenn DUNHAM, Dam SUNWOO