Patents by Inventor John G Johnson

John G Johnson 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: 20240139666
    Abstract: A filter element includes a construction of pleated filter media defining an interior volume. First and second opposite end caps are secured to opposite ends of the filter media. A support structure supports the filter media and is operably oriented in the interior volume. The support structure extends from the first opposing interior face to the second opposing interior face. The support structure is provided to extend less than a full extension between the first end cap and second end cap.
    Type: Application
    Filed: June 30, 2023
    Publication date: May 2, 2024
    Inventors: Philip Edward Johnson, Jonathan G. Parsons, John K. Falk, III
  • Patent number: 10223116
    Abstract: A method and apparatus are disclosed for enabling nodes in a distributed system to share one or more memory portions. A home node makes a portion of its main memory available for sharing, and one or more sharer nodes mirrors that shared portion of the home node's main memory in its own main memory. To maintain memory coherency, a memory coherence protocol is implemented. Under this protocol, load and store instructions that target the mirrored memory portion of a sharer node are trapped, and store instructions that target the shared memory portion of a home node are trapped. With this protocol, valid data is obtained from the home node and updates are propagated to the home node. Thus, no “dirty” data is transferred between sharer nodes. As a result, the failure of one node will not cause the failure of another node or the failure of the entire system.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: March 5, 2019
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Paul N. Loewenstein, John G. Johnson, Kathirgamar Aingaran, Zoran Radovic
  • Patent number: 9898414
    Abstract: Nodes in a distributed node system are configured to support memory corruption detection when memory is shared between the nodes. Nodes in the distributed node system share data in units of memory referred to herein as “shared cache lines.” A node associates a version value with data in a shared cache line. The version value and data may be stored in a shared cache line in the node's main memory. When the node performs a memory operation, it can use the version value to determine whether memory corruption has occurred. For example, a pointer may be associated with a version value. When the pointer is used to access memory, the version value of the pointer may indicate the expected version value at the memory location. If the version values do not match, then memory corruption has occurred.
    Type: Grant
    Filed: October 31, 2014
    Date of Patent: February 20, 2018
    Assignee: Oracle International Corporation
    Inventors: Zoran Radovic, Paul Loewenstein, John G. Johnson
  • Patent number: 9372813
    Abstract: A system and method implementing revocable secure remote keys is disclosed. A plurality of indexed base secrets is stored in a register of a coprocessor of a local node coupled with a local memory. When it is determined that a selected base secret expired, the base secret stored in the register based on the base secret index is changed, thereby invalidating remote keys generated based on the expired base secret. A remote key with validation data and a base secret index is received from a node requesting access to the local memory. A validation base secret is obtained from the register based on the base secret index. The coprocessor performs hardware validation on the validation data based on the validation base secret. Hardware validation fails if the base secret associated with the base secret index has been changed in the register of the selected coprocessor.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: June 21, 2016
    Assignee: Oracle International Corporation
    Inventors: Sanjiv Kapil, Garret F. Swart, Aings Aingaran, William H. Bridge, Jr., Sumti Jairath, John G. Johnson
  • Patent number: 9158810
    Abstract: A method and apparatus for sending and receiving messages between nodes on a compute cluster is provided. Communication between nodes on a compute cluster, which do not share physical memory, is performed by passing messages over an I/O subsystem. Typically, each node includes a synchronization mechanism, a thread ready to receive connections, and other threads to process and reassemble messages. Frequently, a separate queue is maintained in memory for each node on the I/O subsystem sending messages to the receiving node. Such overhead increases latency and limits message throughput. Due to a specialized coprocessor running on each node, messages on an I/O subsystem are sent, received, authenticated, synchronized, and reassembled at a faster rate and with lower latency. Additionally, the memory structure used may reduce memory consumption by storing messages from multiple sources in the same memory structure, eliminating the need for per-source queues.
    Type: Grant
    Filed: February 27, 2013
    Date of Patent: October 13, 2015
    Assignee: Oracle International Corporation
    Inventors: Kathirgamar Aingaran, William H. Bridge, Jr., Garret F. Swart, Sumti Jairath, John G. Johnson
  • Publication number: 20150278103
    Abstract: Nodes in a distributed node system are configured to support memory corruption detection when memory is shared between the nodes. Nodes in the distributed node system share data in units of memory referred to herein as “shared cache lines.” A node associates a version value with data in a shared cache line. The version value and data may be stored in a shared cache line in the node's main memory. When the node performs a memory operation, it can use the version value to determine whether memory corruption has occurred. For example, a pointer may be associated with a version value. When the pointer is used to access memory, the version value of the pointer may indicate the expected version value at the memory location. If the version values do not match, then memory corruption has occurred.
    Type: Application
    Filed: October 31, 2014
    Publication date: October 1, 2015
    Inventors: Zoran Radovic, Paul Loewenstein, John G. Johnson
  • Patent number: 8732430
    Abstract: The disclosed embodiments provide a system that uses unused bits in a memory pointer. During operation, the system determines a set of address bits in a address space that will not be needed for addressing purposes during program operation. Subsequently, the system stores data associated with the memory pointer in this set of address bits. The system masks this set of address bits when using the memory pointer to access the memory address associated with the memory pointer. Storing additional data in unused pointer bits can reduce the number of memory accesses for a program and improve program performance and/or reliability.
    Type: Grant
    Filed: March 22, 2011
    Date of Patent: May 20, 2014
    Assignee: Oracle International Corporation
    Inventors: Zoran Radovic, Graham Ricketson Murphy, Paul J. Jordan, John G. Johnson
  • Publication number: 20140095805
    Abstract: A system and method implementing revocable secure remote keys is disclosed. A plurality of indexed base secrets is stored in a register of a coprocessor of a local node coupled with a local memory. When it is determined that a selected base secret expired, the base secret stored in the register based on the base secret index is changed, thereby invalidating remote keys generated based on the expired base secret. A remote key with validation data and a base secret index is received from a node requesting access to the local memory. A validation base secret is obtained from the register based on the base secret index. The coprocessor performs hardware validation on the validation data based on the validation base secret. Hardware validation fails if the base secret associated with the base secret index has been changed in the register of the selected coprocessor.
    Type: Application
    Filed: March 15, 2013
    Publication date: April 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: SANJIV KAPIL, GARRET F. SWART, AINGS AINGARAN, WILLIAM H. BRIDGE, JR., SUMTI JAIRATH, JOHN G. JOHNSON
  • Publication number: 20140095810
    Abstract: A method and apparatus are disclosed for enabling nodes in a distributed system to share one or more memory portions. A home node makes a portion of its main memory available for sharing, and one or more sharer nodes mirrors that shared portion of the home node's main memory in its own main memory. To maintain memory coherency, a memory coherence protocol is implemented. Under this protocol, load and store instructions that target the mirrored memory portion of a sharer node are trapped, and store instructions that target the shared memory portion of a home node are trapped. With this protocol, valid data is obtained from the home node and updates are propagated to the home node. Thus, no “dirty” data is transferred between sharer nodes. As a result, the failure of one node will not cause the failure of another node or the failure of the entire system.
    Type: Application
    Filed: March 14, 2013
    Publication date: April 3, 2014
    Applicant: Oracle International Corporation
    Inventors: PAUL N. LOEWENSTEIN, John G. Johnson, Kathirgamar Aingaran, Zoran Radovic
  • Publication number: 20140096145
    Abstract: A method and apparatus for sending and receiving messages between nodes on a compute cluster is provided. Communication between nodes on a compute cluster, which do not share physical memory, is performed by passing messages over an I/O subsystem. Typically, each node includes a synchronization mechanism, a thread ready to receive connections, and other threads to process and reassemble messages. Frequently, a separate queue is maintained in memory for each node on the I/O subsystem sending messages to the receiving node. Such overhead increases latency and limits message throughput. Due to a specialized coprocessor running on each node, messages on an I/O subsystem are sent, received, authenticated, synchronized, and reassembled at a faster rate and with lower latency. Additionally, the memory structure used may reduce memory consumption by storing messages from multiple sources in the same memory structure, eliminating the need for per-source queues.
    Type: Application
    Filed: February 27, 2013
    Publication date: April 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Kathirgamar Aingaran, William H. Bridge, JR., Garret F. Swart, Sumti Jairath, John G. Johnson
  • 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
  • Publication number: 20120246437
    Abstract: The disclosed embodiments provide a system that uses unused bits in a memory pointer. During operation, the system determines a set of address bits in a address space that will not be needed for addressing purposes during program operation. Subsequently, the system stores data associated with the memory pointer in this set of address bits. The system masks this set of address bits when using the memory pointer to access the memory address associated with the memory pointer. Storing additional data in unused pointer bits can reduce the number of memory accesses for a program and improve program performance and/or reliability.
    Type: Application
    Filed: March 22, 2011
    Publication date: September 27, 2012
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Zoran Radovic, Graham Ricketson Murphy, Paul J. Jordan, John G. Johnson
  • Patent number: 7444503
    Abstract: A method and apparatus for delivering a device driver to an operating system without user intervention. One or more operating systems (e.g., different operating system programs, different versions of one operating system) execute on a computer platform. During booting of an operating system a device is identified for which a driver is needed. The driver is requested from a service processor of the platform, which includes memory or storage for storing multiple device drivers (or multiple versions of one driver, for different operating systems). The driver is retrieved from the service processor's storage and delivered to the operating system.
    Type: Grant
    Filed: January 11, 2006
    Date of Patent: October 28, 2008
    Assignee: Sun Microsystems, Inc
    Inventors: Ashley N. Saulsbury, David J. Redman, Gregory C. Onufer, John G. Johnson
  • Patent number: 7178005
    Abstract: A method and mechanism for managing timers in a multithreaded processing system. A storage device stores a plurality of count values corresponding to a plurality of timers. A read address generator is coupled to convey a read address to the storage device. The read address generator is configured to maintain and increment a first counter. In response to determining the counter does not equal a predetermined value, the mechanism conveys a first read address for use in accessing a count value in the storage device. In response to determining the count equals the predetermined value, the mechanism conveys a second read address for use in accessing a count value in the storage device. The predetermined value is utilized to repeat accesses to a given count value a predetermined number of times.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: February 13, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Paul J. Jordan, Ashley N. Saulsbury, John G. Johnson
  • Patent number: 7139942
    Abstract: A system maintains a copy of data stored in a first memory device in a redundant distinct second memory device. Upon detecting an uncorrectable error in the first memory device, the system then relies on the copy of the data in the second memory device. The system, once it starts relying on the data in the second memory device, may then test the first memory device to determine if the uncorrectable error was due to a physical problem or a transient event. If the first memory device is then found to be working correctly, it may, in turn, become a redundant memory device for the second memory device.
    Type: Grant
    Filed: July 21, 2003
    Date of Patent: November 21, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Srinivasan Subramanian, John G. Johnson, Gregory C. Onufer
  • Patent number: 7062646
    Abstract: A method and system to allow user applications can access hardware platform-specific configuration information in a generic way. A platform independent framework lies on a layer that interfaces with the operating system layer. Accordingly, when a platform is changed, the operating system layer is notified of the change to facilitate informing the user of the change. This framework also has a plug-in publishing interface that is used to develop platform-specific modules to publish or export hardware configurations to other users. In another embodiment, this framework has a user interface that allows the user to make the necessary changes to the system management and hardware diagnostic tools whenever the platform is changed to ensure that the tools function correctly.
    Type: Grant
    Filed: September 25, 2002
    Date of Patent: June 13, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Srinivasan Sabramanian, John G Johnson, Gregory C Onufer, Richard A Zatorski
  • Publication number: 20040030879
    Abstract: A method and system to allow user applications can access hardware platform-specific configuration information in a generic way. A platform independent framework lies on a layer that interfaces with the operating system layer. Accordingly, when a platform is changed, the operating system layer is notified of the change to facilitate informing the user of the change. This framework also has a plug-in publishing interface that is used to develop platform-specific modules to publish or export hardware configurations to other users. In another embodiment, this framework has a user interface that allows the user to make the necessary changes to the system management and hardware diagnostic tools whenever the platform is changed to ensure that the tools function correctly.
    Type: Application
    Filed: September 25, 2002
    Publication date: February 12, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Srinivasan Subramanian, John G. Johnson, Gregory C. Onufer, Richard A. Zatorski
  • Patent number: 4344656
    Abstract: A system for preventing damage to cargo shipped in air-ride suspension semi-trailers loaded on railroad flat cars which comprise at least part of a freight train is provided. The system comprises a coupling element connected to the air brake line of the freight train. The coupling element is connected to an air reservoir mounted on the flat car or on the semi-trailer and supplies compressed air to the reservoir from the brake line of the train. The coupling element includes a valve to prevent air from flowing from the train brake line to the air reservoir when the air pressure in the brake line drops below a predetermined safety level to prevent unwanted activation of the train's brakes. The air reservoir is connected to the air line of the semi-trailer and provides compressed air to the air bags which comprise the air suspension system of the semi-trailer.
    Type: Grant
    Filed: February 4, 1980
    Date of Patent: August 17, 1982
    Assignee: Air Rail, Inc.
    Inventors: Robert C. Masterson, Jr., R. Gordon Thomas, John G. Johnson