Patents by Inventor Sanjiv Kapil

Sanjiv Kapil 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: 9817762
    Abstract: The disclosed embodiments relate to a computing system that facilitates performing prefetching for scatter/gather operations. During operation, the system receives a scatter/gather prefetch instruction at a processor core, wherein the scatter/gather prefetch instruction specifies a virtual base address, and a plurality of offsets. Next, the system performs a lookup in a translation-lookaside buffer (TLB) using the virtual base address to obtain a physical base address that identifies a physical page for the base address. The system then sends the physical base address and the plurality of offsets to a cache. This enables the cache to perform prefetching operations for the scatter/gather instruction by adding the physical base address to the plurality of offsets to produce a plurality of physical addresses, and then prefetching cache lines for the plurality of physical addresses into the cache.
    Type: Grant
    Filed: May 20, 2014
    Date of Patent: November 14, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Sanjiv Kapil, Darryl J. Gove
  • Patent number: 9542443
    Abstract: Techniques for processing a query are provided. One or more operations that are required to process a query are performed by a coprocessor that is separate from a general purpose microprocessor that executes query processing software. The query processing software receives a query, determines one or more operations that are required to be executed to fully process the query, and issues one or more commands to one or more coprocessors that are programmed to perform one of the operations, such as a table scan operation and/or a lookup operation. The query processing software obtains results from the coprocessor(s) and performs one or more additional operations thereon to generate a final result of the query.
    Type: Grant
    Filed: May 11, 2015
    Date of Patent: January 10, 2017
    Assignee: Oracle International Corporation
    Inventors: Kathirgamar Aingaran, Garret F Swart, Sanjiv Kapil
  • Patent number: 9400821
    Abstract: A system and method for transferring data and messages between nodes in a cluster is disclosed. Each node in the cluster is a separate physical domain but is connected to other nodes in the cluster through point-to-point high speed links. Each side of a link is coupled to a coprocessor which facilitates the movement of data between and among the nodes. Because each physical domain is separate from any other domain, the coprocessor in a physical domain uses a certificate, called and RKey, to obtain permission to transfer data to another physical domain. When an RKey is received from another physical domain, the coprocessor in the receiving domain validates the key and obtains the physical addresses associated with the key so that it can provide or accept the remote data. Data transfers between pairs of remote nodes in the cluster are permitted as well.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: July 26, 2016
    Assignee: Oracle International Corporation
    Inventors: Sanjiv Kapil, Zoran Radovic
  • 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: 9208084
    Abstract: A computer system with flash memory in the main memory hierarchy is disclosed. In an embodiment, the computer system includes at least one processor, a memory management unit coupled to the at least one processor, and a random access memory (RAM) coupled to the memory management unit. The computer system may also include a flash memory coupled to the memory management unit, wherein the computer system is configured to store at least a subset of a plurality of pages in the flash memory during operation. Responsive to a page fault, the memory management unit may determine, without invoking an I/O driver, if a requested page associated with the page fault is stored in the flash memory and further configured to, if the page is stored in the flash memory, transfer the page into RAM.
    Type: Grant
    Filed: June 29, 2009
    Date of Patent: December 8, 2015
    Assignee: Oracle America, Inc.
    Inventors: Sanjiv Kapil, Ricky C. Hetherington
  • Publication number: 20150339233
    Abstract: The disclosed embodiments relate to a computing system that facilitates performing prefetching for scatter/gather operations. During operation, the system receives a scatter/gather prefetch instruction at a processor core, wherein the scatter/gather prefetch instruction specifies a virtual base address, and a plurality of offsets. Next, the system performs a lookup in a translation-lookaside buffer (TLB) using the virtual base address to obtain a physical base address that identifies a physical page for the base address. The system then sends the physical base address and the plurality of offsets to a cache. This enables the cache to perform prefetching operations for the scatter/gather instruction by adding the physical base address to the plurality of offsets to produce a plurality of physical addresses, and then prefetching cache lines for the plurality of physical addresses into the cache.
    Type: Application
    Filed: May 20, 2014
    Publication date: November 26, 2015
    Inventors: Sanjiv Kapil, Darryl J. Gove
  • Patent number: 9180034
    Abstract: Devices and methods for assisting weight control where the device is inserted into the mouth of a patient between opposing rear molar teeth. The inserted devices cause an increase in resistance to chewing, which then slows eating by the person. The devices can include elastic bands, magnets, shock absorbers, combinations, thereof and sensors for detecting strength and frequency of chewing.
    Type: Grant
    Filed: January 3, 2013
    Date of Patent: November 10, 2015
    Inventor: Sanjiv Kapil
  • Publication number: 20150261871
    Abstract: Techniques for processing a query are provided. One or more operations that are required to process a query are performed by a coprocessor that is separate from a general purpose microprocessor that executes query processing software. The query processing software receives a query, determines one or more operations that are required to be executed to fully process the query, and issues one or more commands to one or more coprocessors that are programmed to perform one of the operations, such as a table scan operation and/or a lookup operation. The query processing software obtains results from the coprocessor(s) and performs one or more additional operations thereon to generate a final result of the query.
    Type: Application
    Filed: May 11, 2015
    Publication date: September 17, 2015
    Inventors: Kathirgamar Aingaran, Garret F. Swart, Sanjiv Kapil
  • Patent number: 9063974
    Abstract: Techniques for processing a query are provided. One or more operations that are required to process a query are performed by a coprocessor that is separate from a general purpose microprocessor that executes query processing software. The query processing software receives a query, determines one or more operations that are required to be executed to fully process the query, and issues one or more commands to one or more coprocessors that are programmed to perform one of the operations, such as a table scan operation and/or a lookup operation. The query processing software obtains results from the coprocessor(s) and performs one or more additional operations thereon to generate a final result of the query.
    Type: Grant
    Filed: February 26, 2013
    Date of Patent: June 23, 2015
    Assignee: Oracle International Corporation
    Inventors: Kathirgamar Aingaran, Garret F. Swart, Sanjiv Kapil
  • Patent number: 8819359
    Abstract: A memory system that interleaves storage of data across and within a plurality memory modules is described. The memory system includes a hybrid interleaving mechanism which maps physical addresses to locations within memory modules and ranks so that physical addresses for a given page all map to the same memory module, and physical addresses for the given page are interleaved across the plurality of ranks which comprise the same memory module.
    Type: Grant
    Filed: June 29, 2009
    Date of Patent: August 26, 2014
    Assignee: Oracle America, Inc.
    Inventors: Sanjiv Kapil, Blake Alan Jones
  • Publication number: 20140095651
    Abstract: A system and method for transferring data and messages between nodes in a cluster is disclosed. Each node in the cluster is a separate physical domain but is connected to other nodes in the cluster through point-to-point high speed links. Each side of a link is coupled to a coprocessor which facilitates the movement of data between and among the nodes. Because each physical domain is separate from any other domain, the coprocessor in a physical domain uses a certificate, called and RKey, to obtain permission to transfer data to another physical domain. When an RKey is received from another physical domain, the coprocessor in the receiving domain validates the key and obtains the physical addresses associated with the key so that it can provide or accept the remote data. Data transfers between pairs of remote nodes in the cluster are permitted as well.
    Type: Application
    Filed: March 15, 2013
    Publication date: April 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Sanjiv Kapil, Zoran Radovic
  • 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: 20140095468
    Abstract: Techniques for processing a query are provided. One or more operations that are required to process a query are performed by a coprocessor that is separate from a general purpose microprocessor that executes query processing software. The query processing software receives a query, determines one or more operations that are required to be executed to fully process the query, and issues one or more commands to one or more coprocessors that are programmed to perform one of the operations, such as a table scan operation and/or a lookup operation. The query processing software obtains results from the coprocessor(s) and performs one or more additional operations thereon to generate a final result of the query.
    Type: Application
    Filed: February 26, 2013
    Publication date: April 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Kathirgamar Aingaran, Garret F. Swart, Sanjiv Kapil
  • Patent number: 8208467
    Abstract: The described embodiments include a system that modulates the width of a high-speed link. The system includes a transmitter circuit coupled to a high-speed link that includes N serial lanes. During operation, while using a first number of lanes to transmit frames on the high-speed link, the transmitter circuit determines a second number of lanes to be used to transmit frames on the high-speed link based on a bandwidth demand on the high-speed link. The transmitter circuit then sends an indicator of the second number of lanes to a receiver on the high-speed link. Upon receiving an error-free acknowledgment of the indicator from the receiver, starting from a predetermined frame, the transmitter circuit transmits subsequent frames on the high-speed link using the second number of lanes.
    Type: Grant
    Filed: June 16, 2009
    Date of Patent: June 26, 2012
    Assignee: Oracle America, Inc.
    Inventors: Sanjiv Kapil, David J. Greenhill, Robert P. Masleid
  • Patent number: 8180981
    Abstract: System and method for using flash memory in a memory hierarchy. A computer system includes a processor coupled to a memory hierarchy via a memory controller. The memory hierarchy includes a cache memory, a first memory region of random access memory coupled to the memory controller via a first buffer, and an auxiliary memory region of flash memory coupled to the memory controller via a flash controller. The first buffer and the flash controller are coupled to the memory controller via a single interface. The memory controller receives a request to access a particular page in the first memory region. The processor detects a page fault corresponding to the request and in response, invalidates cache lines in the cache memory that correspond to the particular page, flushes the invalid cache lines, and swaps a page from the auxiliary memory region to the first memory region.
    Type: Grant
    Filed: May 15, 2009
    Date of Patent: May 15, 2012
    Assignee: Oracle America, Inc.
    Inventors: Sanjiv Kapil, Ricky C. Hetherington
  • Patent number: 8166316
    Abstract: In an embodiment, a system comprises a first memory module interface unit (MMIU) configured to couple to a first one or more memory modules, and a second MMIU configured to couple to a second one or more memory modules. The first MMIU is configured to operate the first one or more memory modules at a first frequency and the second MMIU is configured to concurrently operate the second one or more memory modules at a second operating frequency different from the first operating frequency.
    Type: Grant
    Filed: June 27, 2008
    Date of Patent: April 24, 2012
    Assignee: Oracle America, Inc.
    Inventor: Sanjiv Kapil
  • Patent number: 8127153
    Abstract: In an embodiment, an apparatus comprises one or more registers and a control unit coupled to the one or more registers. The control unit is configured to monitor a power state in one or more memory modules during execution of an application, and to store data generated during the monitoring in the one or more registers. In an embodiment, a system comprises a memory controller and a plurality of memory module interface units (MMIUs) coupled to the memory controller. Each of the plurality of MMIUs: is coupled to a respective plurality of memory modules; comprises one or more registers; is configured to monitor a power state in the respective plurality of memory modules during execution of an application; and is configured to store data generated during the monitoring in the one or more registers.
    Type: Grant
    Filed: July 29, 2008
    Date of Patent: February 28, 2012
    Assignee: Oracle America, Inc.
    Inventor: Sanjiv Kapil
  • Publication number: 20100332727
    Abstract: A computer system with flash memory in the main memory hierarchy is disclosed. In an embodiment, the computer system includes at least one processor, a memory management unit coupled to the at least one processor, and a random access memory (RAM) coupled to the memory management unit. The computer system may also include a flash memory coupled to the memory management unit, wherein the computer system is configured to store at least a subset of a plurality of pages in the flash memory during operation. Responsive to a page fault, the memory management unit may determine, without invoking an I/O driver, if a requested page associated with the page fault is stored in the flash memory and further configured to, if the page is stored in the flash memory, transfer the page into RAM.
    Type: Application
    Filed: June 29, 2009
    Publication date: December 30, 2010
    Inventors: Sanjiv Kapil, Ricky C. Hetherington
  • Publication number: 20100332775
    Abstract: A memory system that interleaves storage of data across and within a plurality memory modules is described. The memory system includes a hybrid interleaving mechanism which maps physical addresses to locations within memory modules and ranks so that physical addresses for a given page all map to the same memory module, and physical addresses for the given page are interleaved across the plurality of ranks which comprise the same memory module.
    Type: Application
    Filed: June 29, 2009
    Publication date: December 30, 2010
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Sanjiv Kapil, Blake Alan Jones
  • Publication number: 20100316065
    Abstract: The described embodiments include a system that modulates the width of a high-speed link. The system includes a transmitter circuit coupled to a high-speed link that includes N serial lanes. During operation, while using a first number of lanes to transmit frames on the high-speed link, the transmitter circuit determines a second number of lanes to be used to transmit frames on the high-speed link based on a bandwidth demand on the high-speed link. The transmitter circuit then sends an indicator of the second number of lanes to a receiver on the high-speed link. Upon receiving an error-free acknowledgment of the indicator from the receiver, starting from a predetermined frame, the transmitter circuit transmits subsequent frames on the high-speed link using the second number of lanes.
    Type: Application
    Filed: June 16, 2009
    Publication date: December 16, 2010
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Sanjiv Kapil, David J. Greenhill, Robert P. Masleid