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).

  • Patent number: 7849287
    Abstract: In one embodiment, an input/output memory management unit (IOMMU) comprises a control register configured to store a base address of a set of translation tables and control logic coupled to the control register. The control logic is configured to respond to an input/output (I/O) device-initiated request having an address within an address range of an address space corresponding to a peripheral interconnect. One or more operations other than a memory operation are associated with the address range, and the control logic is configured to translate the address to a second address outside of the address range if the translation tables specify a translation from the address to the second address, whereby a memory operation is performed in response to the request instead of the one or more operations associated with the address range.
    Type: Grant
    Filed: November 13, 2006
    Date of Patent: December 7, 2010
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mark D. Hummel, Andrew W. Lueck, Andrew G. Kegel
  • Patent number: 7809923
    Abstract: In an embodiment, an input/output (I/O) memory management unit (IOMMU) comprises at least one memory configured to store translation data; and control logic coupled to the memory and configured to translate an I/O device-generated memory request using the translation data. The translation data corresponds to one or more device table entries in a device table stored in a memory system of a computer system that includes the IOMMU, wherein the device table entry for a given request is selected by an identifier corresponding to the I/O device that generates the request. The translation data further corresponds to one or more I/O page tables, wherein the selected device table entry for the given request includes a pointer to a set of I/O page tables to be used to translate the given request.
    Type: Grant
    Filed: December 10, 2009
    Date of Patent: October 5, 2010
    Assignee: GLOBALFOUNDRIES Inc.
    Inventors: Mark D. Hummel, Geoffrey S. Strongin, Mitchell Alsup, Michael Haertel, Andrew W. Lueck
  • Patent number: 7793067
    Abstract: In an embodiment, a system memory stores a set of input/output (I/O) translation tables. One or more I/O devices initiate direct memory access (DMA) requests including virtual addresses. An I/O memory management unit (IOMMU) is coupled to the I/O devices and the system memory, wherein the IOMMU is configured to translate the virtual addresses in the DMA requests to physical addresses to access the system memory according to an I/O translation mechanism implemented by the IOMMU. The IOMMU comprises one or more caches, and is configured to read translation data from the I/O translation tables responsive to a prefetch command that specifies a first virtual address. The reads are responsive to the first virtual address and the I/O translation mechanism, and the IOMMU is configured to store data in the caches responsive to the read translation data.
    Type: Grant
    Filed: April 30, 2008
    Date of Patent: September 7, 2010
    Assignee: Globalfoundries Inc.
    Inventors: Andrew G. Kegel, Mark D. Hummel, Erich S. Boleyn
  • Publication number: 20100191888
    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: Application
    Filed: November 3, 2009
    Publication date: July 29, 2010
    Inventors: Benjamin C. Serebrin, John F. Wiederhirn, Elizabeth M. Cooper, Mark D. Hummel
  • Publication number: 20100122062
    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: Application
    Filed: January 11, 2010
    Publication date: May 13, 2010
    Inventors: Mark D. Hummel, Geoffrey S. Strongin, Andrew W. Lueck
  • Publication number: 20100095085
    Abstract: In an embodiment, an input/output (I/O) memory management unit (IOMMU) comprises at least one memory configured to store translation data; and control logic coupled to the memory and configured to translate an I/O device-generated memory request using the translation data. The translation data corresponds to one or more device table entries in a device table stored in a memory system of a computer system that includes the IOMMU, wherein the device table entry for a given request is selected by an identifier corresponding to the I/O device that generates the request. The translation data further corresponds to one or more I/O page tables, wherein the selected device table entry for the given request includes a pointer to a set of I/O page tables to be used to translate the given request.
    Type: Application
    Filed: December 10, 2009
    Publication date: April 15, 2010
    Inventors: Mark D. Hummel, Geoffrey S. Strongin, Mitchell Alsup, Michael Haertel, Andrew W. Lueck
  • Patent number: 7673116
    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 16, 2007
    Date of Patent: March 2, 2010
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mark D. Hummel, Geoffrey S. Strongin, Andrew W. Lueck
  • Patent number: 7653803
    Abstract: In an embodiment, an input/output (I/O) memory management unit (IOMMU) comprises at least one memory configured to store translation data; and control logic coupled to the memory and configured to translate an I/O device-generated memory request using the translation data. The translation data corresponds to one or more device table entries in a device table stored in a memory system of a computer system that includes the IOMMU, wherein the device table entry for a given request is selected by an identifier corresponding to the I/O device that generates the request. The translation data further corresponds to one or more I/O page tables, wherein the selected device table entry for the given request includes a pointer to a set of I/O page tables to be used to translate the given request.
    Type: Grant
    Filed: January 16, 2007
    Date of Patent: January 26, 2010
    Assignee: GLOBALFOUNDRIES Inc.
    Inventors: Mark D. Hummel, Geoffrey S. Strongin, Mitchell Alsup, Michael Haertel, Andrew W. Lueck
  • Publication number: 20100011147
    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: Application
    Filed: September 18, 2009
    Publication date: January 14, 2010
    Inventors: Mark D. Hummel, Andrew W. Lueck, Geoffrey S. Strongin, Mitchell Alsup, Michael Haertel
  • Patent number: 7640315
    Abstract: A messaging scheme to synchronize processes within a distributed memory multiprocessing computer system having two or more processing nodes interconnected using an interconnect structure of dual-unidirectional links. Each unidirectional link forms a point-to-point interconnect to transfer packetized information between two processing nodes. A lock acquisition request from a lock requesting node is placed into service by an arbitrating node when no previous lock requests are pending for service. The arbitrating node transmits a broadcast message to all nodes in the system, which, in turn, respond with a corresponding probe response message to inform the arbitrating node of cessation of issuance of new requests by the node sending the probe response message. The arbitrating node informs the lock requesting node of the requesting node's lock ownership by transmitting a target done message thereto.
    Type: Grant
    Filed: August 4, 2000
    Date of Patent: December 29, 2009
    Assignees: Advanced Micro Devices, Inc., Alpha Processor, Inc.
    Inventors: Derrick R. Meyer, Jonathan M. Owen, Mark D. Hummel, James B. Keller
  • Patent number: 7613898
    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: January 16, 2007
    Date of Patent: November 3, 2009
    Assignee: GLOBALFOUNDRIES Inc.
    Inventors: Michael Haertel, Mark D. Hummel, Geoffrey S. Strongin, Andrew W. Lueck, Mitchell Alsup
  • Patent number: 7548999
    Abstract: In one embodiment, an input/output (I/O) node comprises an I/O memory management unit (IOMMU) configured to translate memory requests. The I/O node is configured to couple to an interconnect and to operate as a tunnel on the interconnect, and wherein the IOMMU is configured translate memory requests passing through the tunnel in the upstream direction. In another embodiment, a system comprises another I/O node configured to bridge another interconnect to the interconnect, wherein the I/O node is the tunnel for the other I/O node.
    Type: Grant
    Filed: January 16, 2007
    Date of Patent: June 16, 2009
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Michael Haertel, Mark D. Hummel, Geoffrey S. Strongin, Andrew W. Lueck, Mitchell Alsup
  • Patent number: 7543131
    Abstract: In an embodiment, a computer system comprises a processor; a memory management module comprising a plurality of instructions executable on the processor; a memory coupled to the processor; and an input/output memory management unit (IOMMU) coupled to the memory. The IOMMU is configured to implement address translation and memory protection for memory operations sourced by one or more input/output (I/O) devices. The memory stores a command queue during use. The memory management module is configured to write one or more control commands to the command queue, and the IOMMU is configured to read the control commands from the command queue and execute the control commands.
    Type: Grant
    Filed: August 11, 2006
    Date of Patent: June 2, 2009
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mark D. Hummel, Andrew W. Lueck, Geoffrey S. Strongin, Mitchell Alsup, Michael J. Haertel
  • Patent number: 7516247
    Abstract: In an embodiment, an input/output memory management unit (IOMMU) is configured to receive a completion wait command defined to ensure that one or more preceding invalidation commands are completed by the IOMMU prior to a completion of the completion wait command. The IOMMU is configured to respond to the completion wait command by delaying completion of the completion wait command until: (1) a read response corresponding to each outstanding memory read operation that depends on a translation entry that is invalidated by the preceding invalidation commands is received; and (2) the control unit transmits one or more operations upstream to ensure that each memory write operation that depends on the translation table entry that is invalidated by the preceding invalidation commands has at least reached a bridge to a coherent fabric in the computer system and has become visible to the system.
    Type: Grant
    Filed: August 11, 2006
    Date of Patent: April 7, 2009
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mark D. Hummel, Andrew W. Lueck, Geoffrey S. Strongin, Mitchell Alsup, Michael J. Haertel
  • Patent number: 7480784
    Abstract: In one embodiment, an input/output memory management unit (IOMMU) comprises a cache to cache translation data from memory; and a control unit coupled to the cache. The control unit is configured to implement address translation and memory protection for memory requests sourced by one or more input/output (I/O) devices. The memory requests sourced by the I/O devices travel in one or more first virtual channels, and the control unit is configured to transmit memory requests sourced by the control unit in at least a second virtual channel separate from the first virtual channels.
    Type: Grant
    Filed: August 11, 2006
    Date of Patent: January 20, 2009
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mark D. Hummel, Michael J. Haertel, Andrew W. Lueck, Mitchell Alsup, William Alexander Hughes, Geoffrey S. Strongin
  • Publication number: 20080288805
    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: Application
    Filed: May 18, 2007
    Publication date: November 20, 2008
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Michael J. Osborn, Mark D. Hummel, Denis Rystsov
  • Patent number: 7421525
    Abstract: A system including a host coupled to a serially connected chain of memory modules. In one embodiment, each of the memory modules includes a memory control hub for controlling access to a plurality of memory chips on the memory module. The memory modules are coupled serially in a chain to the host via a plurality of memory links. Each memory link may include an uplink for conveying transactions toward the host and a downlink for conveying transactions originating at the host to a next memory module in the chain. The uplink and the downlink may convey transactions using packets that include control and configuration packets and memory access packets. The memory control hub may convey a transaction received on a first downlink of a first memory link on a second downlink of a second memory link independent of decoding the transaction.
    Type: Grant
    Filed: May 10, 2004
    Date of Patent: September 2, 2008
    Assignee: Advanced Micro Devices, Inc.
    Inventors: R. Stephen Polzin, Frederick D. Weber, Gerald R. Talbot, Larry D. Hewitt, Richard W. Reeves, Shwetal A. Patel, Ross V. La Fetra, Dale E. Gulick, Mark D. Hummel, Paul C. Miranda
  • Publication number: 20080209130
    Abstract: In an embodiment, a system memory stores a set of input/output (I/O) translation tables. One or more I/O devices initiate direct memory access (DMA) requests including virtual addresses. An I/O memory management unit (IOMMU) is coupled to the I/O devices and the system memory, wherein the IOMMU is configured to translate the virtual addresses in the DMA requests to physical addresses to access the system memory according to an I/O translation mechanism implemented by the IOMMU. The IOMMU comprises one or more caches, and is configured to read translation data from the I/O translation tables responsive to a prefetch command that specifies a first virtual address. The reads are responsive to the first virtual address and the I/O translation mechanism, and the IOMMU is configured to store data in the caches responsive to the read translation data.
    Type: Application
    Filed: April 30, 2008
    Publication date: August 28, 2008
    Inventors: Andrew G. Kegel, Mark D. Hummel, Erich S. Boleyn
  • Publication number: 20080114916
    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: Application
    Filed: November 13, 2006
    Publication date: May 15, 2008
    Inventors: Mark D. Hummel, Andrew W. Lueck, Andrew G. Kegel
  • Publication number: 20080114906
    Abstract: In one embodiment, an input/output memory management unit (IOMMU) comprises a control register configured to store a base address of a set of translation tables and control logic coupled to the control register. The control logic is configured to respond to an input/output (I/O) device-initiated request having an address within an address range of an address space corresponding to a peripheral interconnect. One or more operations other than a memory operation are associated with the address range, and the control logic is configured to translate the address to a second address outside of the address range if the translation tables specify a translation from the address to the second address, whereby a memory operation is performed in response to the request instead of the one or more operations associated with the address range.
    Type: Application
    Filed: November 13, 2006
    Publication date: May 15, 2008
    Inventors: Mark D. Hummel, Andrew W. Lueck, Andrew G. Kegel