Patents by Inventor John R. Feehrer

John R. Feehrer 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: 10963295
    Abstract: A method and system for processing data are disclosed. A processor, in response to executing a software program, may write an entry in a work queue. The entry may include an operation, and a location of data stored in an input buffer, and a location in an output buffer to write processed data. The processor may also generate a notification that at least one entry in the work queue is ready to be processed. The data transformation unit may assign the entry to a data transformation circuit, and retrieve the data from the input buffer using the location. The data transformation unit may also perform to the operation on the retrieved data to generate updated data, generate a completion message in response to completion of the operation, and store the updated data in an output buffer. An interface unit may relay transactions between the processor and the data transformation unit.
    Type: Grant
    Filed: September 8, 2017
    Date of Patent: March 30, 2021
    Assignee: Oracle International Corporation
    Inventors: John R. Feehrer, Milton Shih, Matthew Cohen, Kenneth Chan, Ramaswamy Sivaramakrishnan, Julia Harper, Peter Dunlap
  • Patent number: 10860520
    Abstract: A system that allows access to a virtualized device is disclosed. The system may include a device, a processor, and a communication unit coupled to the device via a communication link. The device may include hardware resources configured to be shared by multiple threads executing on the processor. The communication unit may be configured to detect a request to access the device by the processor. In response to the detection of the request, the communication unit may send one or more instructions to the device via the communication link using a communication protocol.
    Type: Grant
    Filed: November 18, 2015
    Date of Patent: December 8, 2020
    Assignee: Oracle International Corporation
    Inventors: Rahoul Puri, Rick C. Hetherington, Harry Stuimer, Hongping Li, John R. Feehrer
  • Patent number: 10853303
    Abstract: An apparatus and method for controlling a virtualized endpoint device are disclosed. A processor may be configured to execute instructions included in multiple execution threads. A first device may be configured to perform multiple command and data functions, and a communication unit may include a first port coupled to the first device via a first link and be configured to send instructions from the processor to the first device via the first link using a first communication protocol. The processor may be further configured to execute first and second sets of commands included in respective execution threads. The first set of commands may be associated with the plurality of command functions and the second set of commands may be associated with the plurality of data functions.
    Type: Grant
    Filed: November 18, 2015
    Date of Patent: December 1, 2020
    Assignee: Oracle International Corporation
    Inventors: John R. Feehrer, Matthew Cohen, Rahoul Puri, John Johnson, Alan Adamson, Julia Harper
  • Patent number: 10817456
    Abstract: An apparatus and method for controlling a device with shared hardware resources to provide separate execution environments for control and data functions are disclosed. A processor may be configured to generate a first request to access control functions of the device in response to execution of a first thread, and generate a second request to access data functions of the device in response to execution of a second thread. A communication unit may send first indicative of the first request and second data indicative of the second request to the device via first and second ports, respectively.
    Type: Grant
    Filed: June 21, 2017
    Date of Patent: October 27, 2020
    Assignee: Oracle International Corporation
    Inventors: John R. Feehrer, Matthew Cohen, Rahoul Puri, Tayfun Kocaoglu, John Johnson, David Kahn, Alan Adamson, Sriram Jayakumar, Julia Harper, Robert G. Sheldon, Mark Kanda, Aruna Jayakumar
  • 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
  • Patent number: 10296356
    Abstract: An apparatus and method for resetting a virtualized device are disclosed. The virtualized device may be coupled to a first port on a communication unit via a first link. The first port may send one or more instructions to the virtualized device via the first link using a first communication protocol. A processor may be configured to detect a reset condition for the virtualized device. In response to the detection of the reset condition for the virtualized device, the first port may disregard one or more transaction requests made by the virtualized device. The first port may further send an error message to the processor in response to receiving a Programmed Input/Output (PIO) request from the processor after the detection of the reset condition.
    Type: Grant
    Filed: November 18, 2015
    Date of Patent: May 21, 2019
    Assignee: Oracle International Corporations
    Inventors: John R. Feehrer, Sriram Jayakumar, Rahoul Puri, Matthew Cohen, Julia Harper, Alan Adamson, John Johnson
  • Publication number: 20190079795
    Abstract: A method and system for processing data are disclosed. A processor, in response to executing a software program, may write an entry in a work queue. The entry may include an operation, and a location of data stored in an input buffer, and a location in an output buffer to write processed data. The processor may also generate a notification that at least one entry in the work queue is ready to be processed. The data transformation unit may assign the entry to a data transformation circuit, and retrieve the data from the input buffer using the location. The data transformation unit may also perform to the operation on the retrieved data to generate updated data, generate a completion message in response to completion of the operation, and store the updated data in an output buffer. An interface unit may relay transactions between the processor and the data transformation unit.
    Type: Application
    Filed: September 8, 2017
    Publication date: March 14, 2019
    Inventors: John R. Feehrer, Milton Shih, Matthew Cohen, Kenneth Chan, Ramaswamy Sivaramakrishnan, Julia Harper, Peter Dunlap
  • Patent number: 10078543
    Abstract: A switched fabric hierarchy (e.g., a PCIe hierarchy) may utilize hardware, firmware, and/or software for filtering duplicative or otherwise undesirable correctable error messages from reaching a root complex. An operating system of the root complex may detect a persistent stream or storm of correctable errors from a particular endpoint and activate filtering of correctable errors from that endpoint. A filtering device may receive filtering commands and parameters from the operating system, implement the filtering, and monitor further correctable errors from the offending device. While an offending device is being filtered, correctable error messages from the offending device may be masked from the operating system, while correctable error messages from other devices in the switched fabric hierarchy may be transmitted.
    Type: Grant
    Filed: May 27, 2016
    Date of Patent: September 18, 2018
    Assignee: Oracle International Corporation
    Inventors: John E. Watkins, Joseph R. Wright, John R. Feehrer
  • 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: 20170344419
    Abstract: A switched fabric hierarchy (e.g., a PCIe hierarchy) may utilize hardware, firmware, and/or software for filtering duplicative or otherwise undesirable correctable error messages from reaching a root complex. An operating system of the root complex may detect a persistent stream or storm of correctable errors from a particular endpoint and activate filtering of correctable errors from that endpoint. A filtering device may receive filtering commands and parameters from the operating system, implement the filtering, and monitor further correctable errors from the offending device. While an offending device is being filtered, correctable error messages from the offending device may be masked from the operating system, while correctable error messages from other devices in the switched fabric hierarchy may be transmitted.
    Type: Application
    Filed: May 27, 2016
    Publication date: November 30, 2017
    Inventors: John E. Watkins, Joseph R. Wright, John R. Feehrer
  • Publication number: 20170286354
    Abstract: An apparatus and method for controlling a device with shared hardware resources to provide separate execution environments for control and data functions are disclosed. A processor may be configured to generate a first request to access control functions of the device in response to execution of a first thread, and generate a second request to access data functions of the device in response to execution of a second thread. A communication unit may send first indicative of the first request and second data indicative of the second request to the device via first and second ports, respectively.
    Type: Application
    Filed: June 21, 2017
    Publication date: October 5, 2017
    Inventors: John R. Feehrer, Matthew Cohen, Rahoul Puri, Tayfun Kocaoglu, John Johnson, David Kahn, Alan Adamson, Sriram Jayakumar, Julia Harper, Robert G. Sheldon, Mark Kanda
  • Publication number: 20170139799
    Abstract: A system that allows access to a virtualized device is disclosed. The system may include a device, a processor, and a communication unit coupled to the device via a communication link. The device may include hardware resources configured to be shared by multiple threads executing on the processor. The communication unit may be configured to detect a request to access the device by the processor. In response to the detection of the request, the communication unit may send one or more instructions to the device via the communication link using a communication protocol.
    Type: Application
    Filed: November 18, 2015
    Publication date: May 18, 2017
    Inventors: Rahoul Puri, Rick C. Hetherington, Harry Stuimer, Hongping Li, John R. Feehrer
  • Publication number: 20170139721
    Abstract: An apparatus and method for resetting a virtualized device are disclosed. The virtualized device may be coupled to a first port on a communication unit via a first link. The first port may send one or more instructions to the virtualized device via the first link using a first communication protocol. A processor may be configured to detect a reset condition for the virtualized device. In response to the detection of the reset condition for the virtualized device, the first port may disregard one or more transaction requests made by the virtualized device. The first port may further send an error message to the processor in response to receiving a Programmed Input/Output (PIO) request from the processor after the detection of the reset condition.
    Type: Application
    Filed: November 18, 2015
    Publication date: May 18, 2017
    Inventors: John R. Feehrer, Sriram Jayakumar, Rahoul Puri, Matthew Cohen, Julia Harper, Alan Adamson, John Johnson
  • Publication number: 20170139873
    Abstract: An apparatus and method for controlling a virtualized endpoint device are disclosed. A processor may be configured to execute instructions included in multiple execution threads. A first device may be configured to perform multiple command and data functions, and a communication unit may include a first port coupled to the first device via a first link and be configured to send instructions from the processor to the first device via the first link using a first communication protocol. The processor may be further configured to execute first and second sets of commands included in respective execution threads. The first set of commands may be associated with the plurality of command functions and the second set of commands may be associated with the plurality of data functions.
    Type: Application
    Filed: November 18, 2015
    Publication date: May 18, 2017
    Inventors: John R. Feehrer, Matthew Cohen, Rahoul Puri, John Johnson, Alan Adamson, Julia Harper
  • 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: 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