Patents by Inventor David J Williamson

David J Williamson 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: 11221962
    Abstract: A system and method for efficiently transferring address mappings and data access permissions corresponding to the address mappings. A computing system includes at least one processor and memory for storing a page table. In response to receiving a memory access operation comprising a first address, the address translation unit is configured to identify a data access permission based on a permission index corresponding to the first address, and access data stored in a memory location of the memory identified by a second address in a manner defined by the retrieved data access permission. The address translation unit is configured to access a table to identify the data access permission, and is configured to determine the permission index and the second address based on the first address. A single permission index may correspond to different permissions for different entities within the system.
    Type: Grant
    Filed: May 15, 2020
    Date of Patent: January 11, 2022
    Assignee: Apple Inc.
    Inventors: Jeffry E. Gonion, Bernard Joseph Semeria, Michael J. Swift, Pradeep Kanapathipillai, David J. Williamson
  • Publication number: 20210064539
    Abstract: A system and method for efficiently transferring address mappings and data access permissions corresponding to the address mappings. A computing system includes at least one processor and memory for storing a page table. In response to receiving a memory access operation comprising a first address, the address translation unit is configured to identify a data access permission based on a permission index corresponding to the first address, and access data stored in a memory location of the memory identified by a second address in a manner defined by the retrieved data access permission. The address translation unit is configured to access a table to identify the data access permission, and is configured to determine the permission index and the second address based on the first address. A single permission index may correspond to different permissions for different entities within the system.
    Type: Application
    Filed: May 15, 2020
    Publication date: March 4, 2021
    Inventors: Jeffry E. Gonion, Bernard Joseph Semeria, Michael J. Swift, Pradeep Kanapathipillai, David J. Williamson
  • Patent number: 10922232
    Abstract: An apparatus includes a control circuit and a cache memory with a plurality of regions. The control circuit receives a first and a second access request to access the cache memory. In response to determining that the first access request is from a particular processor core, and that the first access request is associated with a particular cache line in the cache memory, the control circuit stores the first access request in a cache access queue. In response to a determination that the second access request is received from a functional circuit, and that the second access request is associated with a range of a memory address space mapped to a subset of the plurality of regions, the control circuit stores the second access request in a memory access queue. The control circuit arbitrates access to the cache memory circuit between the first access request and the second access request.
    Type: Grant
    Filed: May 1, 2019
    Date of Patent: February 16, 2021
    Assignee: Apple Inc.
    Inventors: Brett S. Feero, David E. Kroesche, David J. Williamson
  • Patent number: 10402326
    Abstract: A system that includes circuitry to access memories in both coherent and non-coherent domains is disclosed. The circuitry may receive a command to access a memory included in the coherent domain and generate one or more commands to access a memory in the non-coherent domain dependent upon the received command. The circuitry may send the generated one or more commands to the memory in the non-coherent domain via communication bus.
    Type: Grant
    Filed: April 26, 2016
    Date of Patent: September 3, 2019
    Assignee: Apple Inc.
    Inventors: Ronald P. Hall, Mahesh K. Reddy, David J. Williamson
  • Patent number: 10401945
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, and another core may be implemented at a lower maximum performance, but may be optimized for efficiency. Additionally, in some embodiments, some features of the instruction set architecture implemented by the processor may be implemented in only one of the cores that make up the processor. If such a feature is invoked by a code sequence while a different core is active, the processor may swap cores to the core the implements the feature. Alternatively, an exception may be taken and an exception handler may be executed to identify the feature and activate the corresponding core.
    Type: Grant
    Filed: March 26, 2018
    Date of Patent: September 3, 2019
    Assignee: Apple Inc.
    Inventors: David J. Williamson, Gerard R. Williams, III, James N. Hardage, Jr., Richard F. Russo
  • Publication number: 20190220417
    Abstract: In an embodiment, a processor may include a register file including one or more sets of registers for one or more data types specified by the ISA implemented by the processor. The processor may have a processor mode in which the context is reduced, as compared to the full context. For example, for at least one of the data types, the registers included in the reduced context exclude one or more of the registers defined in the ISA for that data type. In an embodiment, one half or more of the registers for the data type may be excluded. When the processor is operating in a reduced context mode, the processor may detect instructions that use excluded registers, and may signal an exception for such instructions to prevent use of the excluded registers.
    Type: Application
    Filed: January 18, 2018
    Publication date: July 18, 2019
    Inventors: David J. Williamson, Deepak Limaye, James N. Hardage
  • Patent number: 10289191
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, but may have higher minimum voltage at which it operates correctly. Another core may be implemented at a lower maximum performance, but may be optimized for efficiency and may operate correctly at a lower minimum voltage. The processor may support multiple processor states (PStates). Each PState may specify an operating point and may be mapped to one of the processor cores. During operation, one of the cores is active: the core to which the current PState is mapped. If a new PState is selected and is mapped to a different core, the processor may automatically context switch the processor state to the newly-selected core and may begin execution on that core.
    Type: Grant
    Filed: January 9, 2018
    Date of Patent: May 14, 2019
    Assignee: Apple Inc.
    Inventors: David J. Williamson, Gerard R. Williams, III
  • Publication number: 20180217659
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, and another core may be implemented at a lower maximum performance, but may be optimized for efficiency. Additionally, in some embodiments, some features of the instruction set architecture implemented by the processor may be implemented in only one of the cores that make up the processor. If such a feature is invoked by a code sequence while a different core is active, the processor may swap cores to the core the implements the feature. Alternatively, an exception may be taken and an exception handler may be executed to identify the feature and activate the corresponding core.
    Type: Application
    Filed: March 26, 2018
    Publication date: August 2, 2018
    Inventors: David J. Williamson, Gerard R. Williams, III, James N. Hardage, JR., Richard F. Russo
  • Patent number: 10007616
    Abstract: In an embodiment, an apparatus includes a cache memory and a control circuit. The control circuit may be configured to pre-fetch and store a first quantity of instruction data in response to a determination that a first pre-fetch operation request is received after a reset and prior to a first end condition. The first end condition may depend on an amount of unused storage in the cache memory. The control circuit may be further configured to pre-fetch and store a second quantity of instruction data in response to a determination that a second pre-fetch operation request is received after the first end condition. The second quantity may be less than the first quantity.
    Type: Grant
    Filed: March 7, 2016
    Date of Patent: June 26, 2018
    Assignee: Apple Inc.
    Inventors: Brett S. Feero, David J. Williamson, Jonathan J. Tyler, Mary D. Brown
  • Publication number: 20180129271
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, but may have higher minimum voltage at which it operates correctly. Another core may be implemented at a lower maximum performance, but may be optimized for efficiency and may operate correctly at a lower minimum voltage. The processor may support multiple processor states (PStates). Each PState may specify an operating point and may be mapped to one of the processor cores. During operation, one of the cores is active: the core to which the current PState is mapped. If a new PState is selected and is mapped to a different core, the processor may automatically context switch the processor state to the newly-selected core and may begin execution on that core.
    Type: Application
    Filed: January 9, 2018
    Publication date: May 10, 2018
    Inventors: David J. Williamson, Gerard R. Williams, III
  • Patent number: 9958932
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, and another core may be implemented at a lower maximum performance, but may be optimized for efficiency. Additionally, in some embodiments, some features of the instruction set architecture implemented by the processor may be implemented in only one of the cores that make up the processor. If such a feature is invoked by a code sequence while a different core is active, the processor may swap cores to the core the implements the feature. Alternatively, an exception may be taken and an exception handler may be executed to identify the feature and activate the corresponding core.
    Type: Grant
    Filed: November 20, 2014
    Date of Patent: May 1, 2018
    Assignee: Apple Inc.
    Inventors: David J. Williamson, Gerard R. Williams, III, James N. Hardage, Jr., Richard F. Russo
  • Patent number: 9898071
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, but may have higher minimum voltage at which it operates correctly. Another core may be implemented at a lower maximum performance, but may be optimized for efficiency and may operate correctly at a lower minimum voltage. The processor may support multiple processor states (PStates). Each PState may specify an operating point and may be mapped to one of the processor cores. During operation, one of the cores is active: the core to which the current PState is mapped. If a new PState is selected and is mapped to a different core, the processor may automatically context switch the processor state to the newly-selected core and may begin execution on that core.
    Type: Grant
    Filed: November 20, 2014
    Date of Patent: February 20, 2018
    Assignee: Apple Inc.
    Inventors: David J. Williamson, Gerard R. Williams, III
  • Patent number: 9852084
    Abstract: Systems, apparatuses, and methods for modifying access permissions in a processor. A processor may include one or more permissions registers for managing access permissions. A first permissions register may be utilized to override access permissions embedded in the page table data. A plurality of bits from the page table data may be utilized as an index into the first permissions register for the current privilege level. An attribute field may be retrieved from the first permissions register to determine the access permissions for a given memory request. A second permissions register may also be utilized to set the upper and lower boundary of a region in physical memory where the kernel is allowed to execute. A lock register may prevent any changes from being made to the second permissions register after the second permissions register has been initially programmed.
    Type: Grant
    Filed: February 5, 2016
    Date of Patent: December 26, 2017
    Assignee: Apple Inc.
    Inventors: Peter G. Soderquist, Pradeep Kanapathipillai, Bernard J. Semeria, Joshua P. de Cesare, David J. Williamson, Gerard R. Williams, III
  • Patent number: 9524011
    Abstract: Techniques are disclosed relating to power reduction during execution of instruction loops. Multiple different power saving modes may be used by a processor, such as a first power saving mode after only a few loop iterations (e.g., 2-3) and a second, deeper power saving mode after a greater number of loop iterations. The first power saving mode may include keeping a branch predictor and/or other structures active, but the second power saving mode may include reducing power to the branch predictor and/or other structures. An observation mode and an instruction capture mode may also be used by a processor prior to entering a power saving mode for loop execution. Power saving modes may also be achieved during execution of complex loops having multiple backward branches (e.g., nested loops).
    Type: Grant
    Filed: April 11, 2014
    Date of Patent: December 20, 2016
    Assignee: Apple Inc.
    Inventors: Ronald P. Hall, Michael L. Karm, Ian D. Kountanis, David J. Williamson
  • Publication number: 20160147289
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, but may have higher minimum voltage at which it operates correctly. Another core may be implemented at a lower maximum performance, but may be optimized for efficiency and may operate correctly at a lower minimum voltage. The processor may support multiple processor states (PStates). Each PState may specify an operating point and may be mapped to one of the processor cores. During operation, one of the cores is active: the core to which the current PState is mapped. If a new PState is selected and is mapped to a different core, the processor may automatically context switch the processor state to the newly-selected core and may begin execution on that core.
    Type: Application
    Filed: November 20, 2014
    Publication date: May 26, 2016
    Inventors: David J. Williamson, Gerard R. Williams, III
  • Publication number: 20160147290
    Abstract: In an embodiment, an integrated circuit may include one or more processors. Each processor may include multiple processor cores, and each core has a different design/implementation and performance level. For example, a core may be implemented for high performance, and another core may be implemented at a lower maximum performance, but may be optimized for efficiency. Additionally, in some embodiments, some features of the instruction set architecture implemented by the processor may be implemented in only one of the cores that make up the processor. If such a feature is invoked by a code sequence while a different core is active, the processor may swap cores to the core the implements the feature. Alternatively, an exception may be taken and an exception handler may be executed to identify the feature and activate the corresponding core.
    Type: Application
    Filed: November 20, 2014
    Publication date: May 26, 2016
    Inventors: David J. Williamson, Gerard R. Williams, III, James N. Hardage, Jr., Richard F. Russo
  • Publication number: 20150293577
    Abstract: Techniques are disclosed relating to power reduction during execution of instruction loops. Multiple different power saving modes may be used by a processor, such as a first power saving mode after only a few loop iterations (e.g., 2-3) and a second, deeper power saving mode after a greater number of loop iterations. The first power saving mode may include keeping a branch predictor and/or other structures active, but the second power saving mode may include reducing power to the branch predictor and/or other structures. An observation mode and an instruction capture mode may also be used by a processor prior to entering a power saving mode for loop execution. Power saving modes may also be achieved during execution of complex loops having multiple backward branches (e.g., nested loops).
    Type: Application
    Filed: April 11, 2014
    Publication date: October 15, 2015
    Applicant: Apple Inc.
    Inventors: Ronald P. Hall, Michael L. Karm, Ian D. Kountanis, David J. Williamson
  • Patent number: 7197671
    Abstract: A trace module traces changes in a subset of architectural state of a data processing apparatus. A trace generation unit receives input signals from components of the data processing apparatus indicative of a change in the subset of architectural state and generates a number of trace elements indicative of the change to enable a recipient of the trace elements to subsequently reconstruct the subset of architectural state. A table maintained by the trace generation unit identifies an architectural state derivable from previously generated trace elements. The trace generation unit references the table to determine which trace elements to generate. The table reduces the number of trace elements that need to be generated by providing a record of the architectural state which has already been provided to the recipient. Only those trace elements relating to changes in architectural state which are not derivable by the recipient need be generated.
    Type: Grant
    Filed: June 3, 2003
    Date of Patent: March 27, 2007
    Assignee: Arm Limited
    Inventors: Andrew B Swaine, David J Williamson
  • Patent number: 7003699
    Abstract: The present invention provides a data processing apparatus and method for generating trace signals. The data processing apparatus comprises a component whose behaviour is to be traced, and a trace generation unit for receiving input signals from the component indicative of the behaviour, and for generating from the input signals high priority and low priority trace signals for outputting to a trace receiving device. The trace generation unit is responsive to assertion of a suppression signal from the trace receiving device to suppress generation of the low priority trace signals, with the aim of avoiding overflow of the trace receiving device.
    Type: Grant
    Filed: July 29, 2002
    Date of Patent: February 21, 2006
    Assignee: ARM Limited
    Inventors: Andrew B Swaine, David J Williamson
  • Publication number: 20040030962
    Abstract: The present invention relates to the generation of trace elements within a data processing apparatus having one or more components whose behaviour is to be traced. A trace module is disclosed which is operable to trace changes in a subset of architectural state of a data processing apparatus with which the trace module is coupled. The trace module comprises a trace generation unit operable to receive input signals from one or more components of the data processing apparatus indicative of a change in the subset of architectural state and to generate from one or more of the input signals a number of trace elements indicative of the change so as to enable a recipient of the trace elements to subsequently reconstruct the subset of architectural state.
    Type: Application
    Filed: June 3, 2003
    Publication date: February 12, 2004
    Applicant: ARM LIMITED
    Inventors: Andrew B. Swaine, David J. Williamson