Patents by Inventor Hugh R. Kurth

Hugh R. Kurth 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: 10489317
    Abstract: Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structure responsive to a request from a given one of the communication units. The interface unit may be further configured to stored data in a second data structure responsive to updating the first pointer, reading a second pointer and the first pointer, and sending an interrupt responsive to a determination that the first and second pointers are equal.
    Type: Grant
    Filed: April 23, 2018
    Date of Patent: November 26, 2019
    Assignee: Oracle International Corporation
    Inventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
  • Publication number: 20180246826
    Abstract: Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structure responsive to a request from a given one of the communication units. The interface unit may be further configured to stored data in a second data structure responsive to updating the first pointer, reading a second pointer and the first pointer, and sending an interrupt responsive to a determination that the first and second pointers are equal.
    Type: Application
    Filed: April 23, 2018
    Publication date: August 30, 2018
    Inventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
  • Patent number: 9952989
    Abstract: Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structure responsive to a request from a given one of the communication units. The interface unit may be further configured to stored data in a second data structure responsive to updating the first pointer, reading a second pointer and the first pointer, and sending an interrupt responsive to a determination that the first and second pointers are equal.
    Type: Grant
    Filed: September 27, 2016
    Date of Patent: April 24, 2018
    Assignee: Oracle International Corporation
    Inventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
  • Publication number: 20170017589
    Abstract: Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structure responsive to a request from a given one of the communication units. The interface unit may be further configured to stored data in a second data structure responsive to updating the first pointer, reading a second pointer and the first pointer, and sending an interrupt responsive to a determination that the first and second pointers are equal.
    Type: Application
    Filed: September 27, 2016
    Publication date: January 19, 2017
    Inventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
  • Patent number: 9507740
    Abstract: Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structure responsive to a request from a given one of the communication units. The interface unit may be further configured to stored data in a second data structure responsive to updating the first pointer, reading a second pointer and the first pointer, and sending an interrupt responsive to a determination that the first and second pointers are equal.
    Type: Grant
    Filed: June 10, 2014
    Date of Patent: November 29, 2016
    Assignee: Oracle International Corporation
    Inventors: John R Feehrer, Patrick Stabile, Hugh R Kurth, David M Kahn
  • Patent number: 9396142
    Abstract: An input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive interrupts or messages from a corresponding endpoint device. A given communication unit may be further configured to synthesize a virtual address from the received message, translate the synthesized virtual address to a real address, and then translate the real address to a physical address. The interface unit may be configured to send an interrupt dependent upon the physical address.
    Type: Grant
    Filed: June 10, 2014
    Date of Patent: July 19, 2016
    Assignee: Oracle International Corporation
    Inventors: John R Feehrer, Patrick Stabile, Hugh R Kurth, David M Kahn, Robert Dickson
  • Patent number: 9280290
    Abstract: A system may include a processor which may include a cache memory and a Direct Memory Access (DMA) controller, a peripheral device on an I/O expansion bus, and a bus interface coupled to the I/O expansion bus and the processor. The bus controller may determine if data packets sent from the peripheral device to the processor include a DMA write instruction to the cache memory with an optional desired cache location. Upon determining a DMA write instruction to the cache memory is included in the data packet, the bus controller may format the data in the data packet for storage in the cache and either receive the desired cache location or determine an appropriate location within the cache to store the formatted data. The bus controller may determine an alternate location within the cache if the desired location within the cache cannot accept more data from the peripheral device.
    Type: Grant
    Filed: February 12, 2014
    Date of Patent: March 8, 2016
    Assignee: Oracle International Corporation
    Inventors: John R Feehrer, Hugh R Kurth, Aron J Silverton, Patrick Stabile
  • Publication number: 20150356036
    Abstract: Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structure responsive to a request from a given one of the communication units. The interface unit may be further configured to stored data in a second data structure responsive to updating the first pointer, reading a second pointer and the first pointer, and sending an interrupt responsive to a determination that the first and second pointers are equal.
    Type: Application
    Filed: June 10, 2014
    Publication date: December 10, 2015
    Inventors: John R Feehrer, Patrick Stabile, Hugh R Kurth, David M Kahn
  • Publication number: 20150356038
    Abstract: Embodiments of input/output hub unit are disclosed for virutalizing an input/output subsystem. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive interrups or messages from a corresponding endpoint device. A given communication unit may be further configured to synthesize a virtual address from the received message, translate the synthesized virtual address to a real address, and then translate the real address to a physical address. The interface unit may be configured to send an interrupt dependent upon the physical address.
    Type: Application
    Filed: June 10, 2014
    Publication date: December 10, 2015
    Inventors: John R Feehrer, Patrick Stabile, Hugh R Kurth, David M Kahn, Robert Dickson
  • Publication number: 20150227312
    Abstract: A system may include a processor which may include a cache memory and a Direct Memory Access (DMA) controller, a peripheral device on an I/O expansion bus, and a bus interface coupled to the I/O expansion bus and the processor. The bus controller may determine if data packets sent from the peripheral device to the processor include a DMA write instruction to the cache memory with an optional desired cache location. Upon determining a DMA write instruction to the cache memory is included in the data packet, the bus controller may format the data in the data packet for storage in the cache and either receive the desired cache location or determine an appropriate location within the cache to store the formatted data. The bus controller may determine an alternate location within the cache if the desired location within the cache cannot accept more data from the peripheral device.
    Type: Application
    Filed: February 12, 2014
    Publication date: August 13, 2015
    Applicant: Oracle International Corporation
    Inventors: John R. Feehrer, Hugh R. Kurth, Aron J. Silverton, Patrick Stabile
  • Patent number: 8631181
    Abstract: The disclosed embodiments provide a system that validates message-signaled interrupts. During operation, the system receives a message-signaled interrupt from a requesting device. This message-signaled interrupt includes an interrupt vector that identifies an interrupt, and is accompanied by an identification tag that identifies the source of the interrupt. The system uses the interrupt vector to access a stored tag from a tracking mechanism that associates source devices with their assigned interrupt vector(s). The system then compares the identification tag and the stored tag to validate the message-signaled interrupt.
    Type: Grant
    Filed: September 26, 2011
    Date of Patent: January 14, 2014
    Assignee: Oracle International Corporation
    Inventors: John R. Feehrer, Hugh R. Kurth, Carl F. Humphreys, David M. Kahn, John G. Johnson, Tayfun Kocaoglu, Gregory C. Onufer
  • Publication number: 20130080673
    Abstract: The disclosed embodiments provide a system that validates message-signaled interrupts. During operation, the system receives a message-signaled interrupt from a requesting device. This message-signaled interrupt includes an interrupt vector that identifies an interrupt, and is accompanied by an identification tag that identifies the source of the interrupt. The system uses the interrupt vector to access a stored tag from a tracking mechanism that associates source devices with their assigned interrupt vector(s). The system then compares the identification tag and the stored tag to validate the message-signaled interrupt.
    Type: Application
    Filed: September 26, 2011
    Publication date: March 28, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: John R. Feehrer, Hugh R. Kurth, Carl F. Humphreys, David M. Kahn, John G. Johnson, Tayfun Kocaoglu, Gregory C. Onufer
  • Patent number: 7496713
    Abstract: In data processing systems that use a snoopy based cache coherence protocol and which contain a read only cache memory with a bounded range of addresses, a cache line hit is detected by assuming that, if an address contained in a request falls within the bounded range, the cache line is present in the cache memory for snoop results. This is equivalent to assuming that the cache line is marked as shared when it might not be so marked.
    Type: Grant
    Filed: July 21, 2004
    Date of Patent: February 24, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Kenneth A. Ward, Hugh R. Kurth
  • Patent number: 7269172
    Abstract: A method and device for managing a data buffer that stores packets for transmission. Packets are loaded into the data buffer, which is managed as a first-in-first-out (FIFO) circular queue, at the tail of the queue. Three sequence numbers index a pointer array addressing the buffer. These sequence numbers correspond to the tail of the queue, the point in the queue from which the next packet is to be transmitted and the head of the queue, corresponding to the last packet acknowledged as correctly received plus one. When a packet is negatively acknowledged, the sequence number corresponding to the next packet to be transmitted is reset to the head of the queue.
    Type: Grant
    Filed: January 7, 2003
    Date of Patent: September 11, 2007
    Assignee: Sun Microsystems, Inc.
    Inventor: Hugh R. Kurth
  • Publication number: 20040131074
    Abstract: A method and device for managing a data buffer that stores packets for transmission. Packets are loaded into the data buffer, which is managed as a first-in-first-out (FIFO) circular queue, at the tail of the queue. Three sequence numbers index a pointer array addressing the buffer. These sequence numbers correspond to the tail of the queue, the point in the queue from which the next packet is to be transmitted and the head of the queue, corresponding to the last packet acknowledged as correctly received plus one. When a packet is negatively acknowledged, the sequence number corresponding to the next packet to be transmitted is reset to the head of the queue.
    Type: Application
    Filed: January 7, 2003
    Publication date: July 8, 2004
    Inventor: Hugh R. Kurth
  • Publication number: 20030145012
    Abstract: A method for sharing buffers among a plurality of queues. A pointer array contains a a linked list of free buffers. Buffers are allocated to a virtual queue by delinking a pointer from the free buffer linked list and adding the pointer to a linked list associated with the queue. When a buffer is no longer needed, the process is reversed.
    Type: Application
    Filed: January 31, 2002
    Publication date: July 31, 2003
    Inventor: Hugh R. Kurth