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: 10963295Abstract: 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: GrantFiled: September 8, 2017Date of Patent: March 30, 2021Assignee: Oracle International CorporationInventors: John R. Feehrer, Milton Shih, Matthew Cohen, Kenneth Chan, Ramaswamy Sivaramakrishnan, Julia Harper, Peter Dunlap
-
Patent number: 10860520Abstract: 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: GrantFiled: November 18, 2015Date of Patent: December 8, 2020Assignee: Oracle International CorporationInventors: Rahoul Puri, Rick C. Hetherington, Harry Stuimer, Hongping Li, John R. Feehrer
-
Patent number: 10853303Abstract: 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: GrantFiled: November 18, 2015Date of Patent: December 1, 2020Assignee: Oracle International CorporationInventors: John R. Feehrer, Matthew Cohen, Rahoul Puri, John Johnson, Alan Adamson, Julia Harper
-
Patent number: 10817456Abstract: 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: GrantFiled: June 21, 2017Date of Patent: October 27, 2020Assignee: Oracle International CorporationInventors: 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: 10489317Abstract: 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: GrantFiled: April 23, 2018Date of Patent: November 26, 2019Assignee: Oracle International CorporationInventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
-
Patent number: 10296356Abstract: 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: GrantFiled: November 18, 2015Date of Patent: May 21, 2019Assignee: Oracle International CorporationsInventors: John R. Feehrer, Sriram Jayakumar, Rahoul Puri, Matthew Cohen, Julia Harper, Alan Adamson, John Johnson
-
Publication number: 20190079795Abstract: 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: ApplicationFiled: September 8, 2017Publication date: March 14, 2019Inventors: John R. Feehrer, Milton Shih, Matthew Cohen, Kenneth Chan, Ramaswamy Sivaramakrishnan, Julia Harper, Peter Dunlap
-
Patent number: 10078543Abstract: 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: GrantFiled: May 27, 2016Date of Patent: September 18, 2018Assignee: Oracle International CorporationInventors: John E. Watkins, Joseph R. Wright, John R. Feehrer
-
Publication number: 20180246826Abstract: 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: ApplicationFiled: April 23, 2018Publication date: August 30, 2018Inventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
-
Patent number: 9952989Abstract: 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: GrantFiled: September 27, 2016Date of Patent: April 24, 2018Assignee: Oracle International CorporationInventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
-
Publication number: 20170344419Abstract: 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: ApplicationFiled: May 27, 2016Publication date: November 30, 2017Inventors: John E. Watkins, Joseph R. Wright, John R. Feehrer
-
Publication number: 20170286354Abstract: 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: ApplicationFiled: June 21, 2017Publication date: October 5, 2017Inventors: 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: 20170139799Abstract: 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: ApplicationFiled: November 18, 2015Publication date: May 18, 2017Inventors: Rahoul Puri, Rick C. Hetherington, Harry Stuimer, Hongping Li, John R. Feehrer
-
Publication number: 20170139721Abstract: 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: ApplicationFiled: November 18, 2015Publication date: May 18, 2017Inventors: John R. Feehrer, Sriram Jayakumar, Rahoul Puri, Matthew Cohen, Julia Harper, Alan Adamson, John Johnson
-
Publication number: 20170139873Abstract: 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: ApplicationFiled: November 18, 2015Publication date: May 18, 2017Inventors: John R. Feehrer, Matthew Cohen, Rahoul Puri, John Johnson, Alan Adamson, Julia Harper
-
Publication number: 20170017589Abstract: 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: ApplicationFiled: September 27, 2016Publication date: January 19, 2017Inventors: John R. Feehrer, Patrick Stabile, Hugh R. Kurth, David M. Kahn
-
Patent number: 9507740Abstract: 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: GrantFiled: June 10, 2014Date of Patent: November 29, 2016Assignee: Oracle International CorporationInventors: John R Feehrer, Patrick Stabile, Hugh R Kurth, David M Kahn
-
Patent number: 9396142Abstract: 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: GrantFiled: June 10, 2014Date of Patent: July 19, 2016Assignee: Oracle International CorporationInventors: John R Feehrer, Patrick Stabile, Hugh R Kurth, David M Kahn, Robert Dickson
-
Patent number: 9280290Abstract: 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: GrantFiled: February 12, 2014Date of Patent: March 8, 2016Assignee: Oracle International CorporationInventors: John R Feehrer, Hugh R Kurth, Aron J Silverton, Patrick Stabile
-
Publication number: 20150356038Abstract: 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: ApplicationFiled: June 10, 2014Publication date: December 10, 2015Inventors: John R Feehrer, Patrick Stabile, Hugh R Kurth, David M Kahn, Robert Dickson