Patents by Inventor Mark D. Hummel

Mark D. Hummel 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: 20140040560
    Abstract: An input/output memory management unit (IOMMU) having an “invalidate all” command available to clear the contents of cache memory is presented. The cache memory provides fast access to address translation data that has been previously obtained by a process. A typical cache memory includes device tables, page tables and interrupt remapping entries. Cache memory data can become stale or be compromised from security breaches or malfunctioning devices. In these circumstances, a rapid approach to clearing cache memory content is provided.
    Type: Application
    Filed: July 31, 2012
    Publication date: February 6, 2014
    Inventors: Andrew G. Kegel, Mark D. Hummel, Anthony Asaro
  • Patent number: 8635385
    Abstract: A page service request is received from a peripheral device requesting that a memory page be loaded into system memory. Page service request information corresponding to the received page service request is written as a queue entry into a queue structure in system memory. The processor is notified that the page request is present in the queue. The processor may be notified with an interrupt of a new queue entry. The processor processes the page service request and the peripheral device is notified of the completion of the processing of the request.
    Type: Grant
    Filed: July 16, 2010
    Date of Patent: January 21, 2014
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mark D. Hummel, Andrew G. Kegel
  • Publication number: 20130275638
    Abstract: In an embodiment, a device interrupt manager may be configured to receive an interrupt from a device that is assigned to a guest. The device interrupt manager may be configured to transmit an operation targeted to a memory location in a system memory to record the interrupt for a virtual processor within the guest, wherein the interrupt is to be delivered to the targeted virtual processor. In an embodiment, a virtual machine manager may be configured to detect that an interrupt has been recorded by the device interrupt manager for a virtual processor that is not currently executing. The virtual machine manager may be configured to schedule the virtual processor for execution on a hardware processor, or may prioritize the virtual processor for scheduling, in response to the interrupt.
    Type: Application
    Filed: June 13, 2013
    Publication date: October 17, 2013
    Inventors: Benjamin C. Serebrin, Rodney W. Schmidt, David A. Kaplan, Mark D. Hummel
  • Patent number: 8489789
    Abstract: In an embodiment, a device interrupt manager may be configured to receive an interrupt from a device that is assigned to a guest. The device interrupt manager may be configured to transmit an operation targeted to a memory location in a system memory to record the interrupt for a virtual processor within the guest, wherein the interrupt is to be delivered to the targeted virtual processor. In an embodiment, a virtual machine manager may be configured to detect that an interrupt has been recorded by the device interrupt manager for a virtual processor that is not currently executing. The virtual machine manager may be configured to schedule the virtual processor for execution on a hardware processor, or may prioritize the virtual processor for scheduling, in response to the interrupt.
    Type: Grant
    Filed: December 6, 2010
    Date of Patent: July 16, 2013
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Benjamin C. Serebrin, Rodney W. Schmidt, David A. Kaplan, Mark D. Hummel
  • Publication number: 20130173837
    Abstract: Methods and apparatus are provided for implementing a lightweight notification (LN) protocol in the PCI Express base specification which allows an endpoint function associated with a PCI Express device to register interest in one or more cachelines in host memory, and to request an LN notification message from the CPU/memory complex when the content of a registered cacheline changes. The LN notification message can be unicast to a single endpoint using ID-based routing, or broadcast to all devices on a given root port. The LN protocol may be implemented in the CPU complex by configuring a queue or other data structure in system memory for LN use. An endpoint registers a notification request by setting the LN bit in a “read” request of an LN configured cacheline.
    Type: Application
    Filed: December 30, 2011
    Publication date: July 4, 2013
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Stephen D. Glaser, Mark D. Hummel
  • Publication number: 20130173834
    Abstract: Methods and apparatus are provided for implementing transaction layer processing (TLP) hint (TPH) protocols in the context of the peripheral component interconnect express (PCIe) base specification. The method allows an endpoint function associated with a PCI Express device to configure a steering tag header in the open systems interconnect (OSI) transaction layer to identify a particular processing resource that the requester desires to target, such as a specific processor or cache location within the execution core. A bit mask may be implemented by the hardware or operating system, for example, by embedding the bit mask in the steering tag header. The bit mask provides administrative oversight of the steering tag header configuration, to thereby mitigate unintended denial of service attacks or cache misses occasioned by aggressive steering tag configuration strategies employed by endpoint functions.
    Type: Application
    Filed: December 30, 2011
    Publication date: July 4, 2013
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Stephen D. Glaser, Mark D. Hummel
  • Publication number: 20130159576
    Abstract: A method and apparatus are provided for controlling system management interrupts is disclosed. An interrupt filter comprises a memory, a comparator and a logic circuit. The memory is adapted to contain a list indicating one or more devices with permission associated with an interrupt signal. The comparator is adapted to receive an interrupt signal containing type information from the one or more devices. The comparator is adapted to compare the interrupt type against the list to determine if the one or more devices is permitted to send the interrupt signal. The logic circuit blocks or passes the interrupt signal in response to the result of the comparison.
    Type: Application
    Filed: December 19, 2011
    Publication date: June 20, 2013
    Inventors: Andrew G. Kegel, Mark D. Hummel
  • Patent number: 8386745
    Abstract: An input/output memory management unit (IOMMU) configured to control requests by an I/O device to a system memory includes control logic that may perform a two-level guest translation to translate an address associated with an I/O device-generated request using translation data stored in the system memory. The translation data includes a device table having a number of entries. The control logic may select the device table entry for a given request by the using a device identifier that corresponds to the I/O device that generates the request. The translation data may also include a first set of I/O page tables including a set of guest page tables and a set of nested page tables. The selected device table entry for the given request may include a pointer to the set of guest translation tables, and a last guest translation table includes a pointer to the set of nested page tables.
    Type: Grant
    Filed: July 24, 2009
    Date of Patent: February 26, 2013
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Andrew G. Kegel, Mark D. Hummel
  • Publication number: 20120124297
    Abstract: A method includes bypassing a global coherence operation that maintains global memory coherence between a plurality of local memories associated with a plurality of corresponding processors. The bypassing is in response to an address of a memory request being associated with a local memory coherence domain. The method includes accessing a memory location associated with the local memory coherence domain according to the memory request in response to the address being associated with the local memory coherence domain.
    Type: Application
    Filed: November 12, 2010
    Publication date: May 17, 2012
    Inventors: Jaewoong Chung, Steven K. Reinhardt, David E. Mayhew, Mark D. Hummel
  • Patent number: 8180944
    Abstract: In an embodiment, a system comprises a memory system and a guest interrupt manager. The guest interrupt manager is configured to receive an interrupt message corresponding to an interrupt that is targeted at a guest executable on the system. The guest interrupt manager is configured to record the interrupt in a data structure in the memory system to ensure that the interrupt is delivered to the guest even if the guest is not active in the system at a time that the interrupt message is received.
    Type: Grant
    Filed: November 3, 2009
    Date of Patent: May 15, 2012
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Benjamin C. Serebrin, John F Wiederhirn, Elizabeth M. Cooper, Mark D. Hummel
  • Publication number: 20120017063
    Abstract: A page service request is received from a peripheral device requesting that a memory page be loaded into system memory. Page service request information corresponding to the received page service request is written as a queue entry into a queue structure in system memory. The processor is notified that the page request is present in the queue. The processor may be notified with an interrupt of a new queue entry. The processor processes the page service request and the peripheral device is notified of the completion of the processing of the request.
    Type: Application
    Filed: July 16, 2010
    Publication date: January 19, 2012
    Inventors: Mark D. Hummel, Andrew G. Kegel
  • Publication number: 20110208505
    Abstract: A processor may include a floating-point unit (FPU) and an arithmetic logic unit (ALU). Instructions to the processor may include greater or lesser amounts of floating-point operations and integer operations. In a circumstance where instructions include predominantly integer operations, power to the FPU may be reduced or turned completely off. In such a circumstance, occasional floating-point operations may be emulated and performed by the ALU. If the processor subsequently determines that incoming instructions include a greater proportion of floating-point operations, the FPU may be powered back on and used to perform the floating-point operations.
    Type: Application
    Filed: February 24, 2010
    Publication date: August 25, 2011
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: David E. Mayhew, Mark D. Hummel
  • Patent number: 8001409
    Abstract: A device includes different clock domains. Each clock domain is synchronized to a different clock signal, and the data transfer between clock domains occurs through a FIFO memory. It is determined which clock domain has a slower clock frequency, and the clock domain associated with the slower clock is selected to generate pointers used to access the FIFO memory in both clock domains. Therefore, the pointers are used to read and write data at the FIFO memory resulting in a transfer of the data between the clock domains. Because the pointers used for data transfer are generated and provided by the clock domain associated with the slower clock, the latency resulting from transferring the pointer between the clock domains is reduced.
    Type: Grant
    Filed: May 18, 2007
    Date of Patent: August 16, 2011
    Inventors: Michael J. Osborn, Mark D. Hummel, Denis Rystsov
  • Publication number: 20110197004
    Abstract: In an embodiment, a guest interrupt control unit in a hardware processor may be configured to detect that an interrupt has been recorded in a memory location corresponding to a virtual processor, wherein the interrupt is targeted at the virtual processor. In response to the virtual processor being active on the hardware processor, the guest interrupt control unit is configured to provide the interrupt to the guest that includes the virtual processor. In an embodiment, a processor is configured to execute instructions from a guest, wherein the processor is configured to detect an instruction that accesses interrupt controller state data associated with a virtual processor in the guest, and wherein the processor is configured to access a memory location that stores interrupt controller state data corresponding to the virtual processor in response to the instruction.
    Type: Application
    Filed: December 6, 2010
    Publication date: August 11, 2011
    Inventors: Benjamin C. Serebrin, Rodney W. Schmidt, David A. Kaplan, Mark D. Hummel
  • Publication number: 20110197003
    Abstract: In an embodiment, a device interrupt manager may be configured to receive an interrupt from a device that is assigned to a guest. The device interrupt manager may be configured to transmit an operation targeted to a memory location in a system memory to record the interrupt for a virtual processor within the guest, wherein the interrupt is to be delivered to the targeted virtual processor. In an embodiment, a virtual machine manager may be configured to detect that an interrupt has been recorded by the device interrupt manager for a virtual processor that is not currently executing. The virtual machine manager may be configured to schedule the virtual processor for execution on a hardware processor, or may prioritize the virtual processor for scheduling, in response to the interrupt.
    Type: Application
    Filed: December 6, 2010
    Publication date: August 11, 2011
    Inventors: Benjamin C. Serebrin, Rodney W. Schmidt, David A. Kaplan, Mark D. Hummel
  • Patent number: 7917726
    Abstract: In one embodiment, an input/output (I/O) memory management unit (IOMMU) comprises at least one memory and control logic coupled to the memory. The memory is configured to store translation data corresponding to one or more I/O translation tables stored in a memory system of a computer system that includes the IOMMU. The control logic is configured to translate an I/O device-generated memory request using the translation data. The translation data includes a type field indicating one or more attributes of the translation, and the control logic is configured to control the translation responsive to the type field.
    Type: Grant
    Filed: January 11, 2010
    Date of Patent: March 29, 2011
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mark D. Hummel, Geoffrey S. Strongin, Andrew W. Lueck
  • Patent number: 7882330
    Abstract: In one embodiment, a system comprises one or more input/output (I/O) devices; an I/O memory management unit (IOMMU) coupled to receive memory requests sourced by the I/O devices and configured to provide address translation for the memory requests; and a virtual machine monitor (VMM) configured to manage one or more virtual machines on the system, wherein the VMM is configured to virtualize the IOMMU, providing one or more virtual IOMMUs for use by one or more virtual machines.
    Type: Grant
    Filed: September 18, 2009
    Date of Patent: February 1, 2011
    Assignee: GLOBALFOUNDRIES Inc.
    Inventors: Michael Haertel, Mark D. Hummel, Andrew W. Lueck, Geoffrey S. Strongin, Mitchell Alsup
  • Publication number: 20110022818
    Abstract: An IOMMU for controlling requests by an I/O device to a system memory of a computer system includes control logic and a cache memory. The control logic may translate an address received in a request from the I/O device. If the request includes a transaction layer protocol (TLP) packet with a process address space identifier (PASID) prefix, the control logic may perform a two-level guest translation. Accordingly, the control logic may access a set of guest page tables to translate the address received in the request. A pointer in a last guest page table points to a first table in a set of nested page tables. The control logic may use the pointer in a last guest page table to access the set of nested page tables to obtain a system physical address (SPA) that corresponds to a physical page in the system memory. The cache memory stores completed translations.
    Type: Application
    Filed: July 24, 2009
    Publication date: January 27, 2011
    Inventors: Andrew G. Kegel, Mark D. Hummel, Stephen D. Glaser
  • Publication number: 20110023027
    Abstract: An input/output memory management unit (IOMMU) configured to control requests by an I/O device to a system memory includes control logic that may perform a two-level guest translation to translate an address associated with an I/O device-generated request using translation data stored in the system memory. The translation data includes a device table having a number of entries. The control logic may select the device table entry for a given request by the using a device identifier that corresponds to the I/O device that generates the request. The translation data may also include a first set of I/O page tables including a set of guest page tables and a set of nested page tables.
    Type: Application
    Filed: July 24, 2009
    Publication date: January 27, 2011
    Inventors: Andrew G. Kegel, Mark D. Hummel
  • Patent number: 7873770
    Abstract: In one embodiment, an input/output memory management unit (IOMMU) comprises a control register and control logic coupled to the control register. The control register is configured to store a base address of a device table, wherein a given input/output (I/O) device has an associated device identifier that selects a first entry in the device table. The first entry comprises a pointer to an interrupt remapping table. The control logic is configured to remap an interrupt specified by an interrupt request received by the IOMMU from the given I/O device if the interrupt remapping table includes an entry for the interrupt.
    Type: Grant
    Filed: November 13, 2006
    Date of Patent: January 18, 2011
    Assignee: GLOBALFOUNDRIES Inc.
    Inventors: Mark D. Hummel, Andrew W. Lueck, Andrew G. Kegel