Patents by Inventor Kathirgamar Aingaran
Kathirgamar Aingaran 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: 10223116Abstract: 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: GrantFiled: March 14, 2013Date of Patent: March 5, 2019Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Paul N. Loewenstein, John G. Johnson, Kathirgamar Aingaran, Zoran Radovic
-
Patent number: 10180913Abstract: An apparatus includes an arbiter circuit and a translation circuit. The arbiter circuit may be configured to generate a first address signal in a virtual memory space by arbitrating among a plurality of clients to access a physical memory space. The clients may be classified as either privileged clients or non-privileged clients. The physical memory space may comprise at least one secure space. The translation circuit may be configured to generate a second address signal by translating a page in the virtual memory space into the physical memory space based on the first address signal. The page may corresponds to a particular one of the clients that won the arbitration. The page may be translated (a) into the secure space if the particular client is one of the privileged clients and (b) outside the secure space otherwise.Type: GrantFiled: February 22, 2017Date of Patent: January 15, 2019Assignee: Ambarella, Inc.Inventors: Kathirgamar Aingaran, Leslie D. Kohn, Robert C. Kunz, Jenn-Yuan Tsai
-
Patent number: 10055224Abstract: A method and apparatus for reconfiguring hardware structures to pipeline the execution of multiple special purpose hardware implemented functions, without saving intermediate results to memory, is provided. Pipelining functions in a program is typically performed by a first function saving its results (the “intermediate results”) to memory, and a second function subsequently accessing the memory to use the intermediate results as input. Saving and accessing intermediate results stored in memory incurs a heavy performance penalty, requires more power, consumes more memory bandwidth, and increases the memory footprint. Due to the ability to redirect the input and output of the hardware structures, intermediate results are passed directly from one special purpose hardware implemented function to another without storing the intermediate results in memory.Type: GrantFiled: December 10, 2015Date of Patent: August 21, 2018Assignee: Oracle International CorporationInventors: Kathirgamar Aingaran, Garret F. Swart
-
Patent number: 10007629Abstract: A system is disclosed in which the system may include multiple bus switches, and multiple processors. Each processor may be coupled to each bus switch. Each processor may be configured to initiate a transfer of data to a given bus switch, and detect if a respective link to the given bus switch is inoperable. In response to detecting an inoperable link to a first bus switch, a given processor may be further configured to send a notification message to at least one other processor via at least a second bus switch and to remove routing information corresponding to the inoperable link from a first register. The at least one other processor may be configured to remove additional routing information corresponding to the inoperable link from a second register in response to receiving the notification message from the given processor.Type: GrantFiled: January 16, 2015Date of Patent: June 26, 2018Assignee: Oracle International CorporationInventors: Thomas Wicki, David Smentek, Sumti Jairath, Kathirgamar Aingaran, Ali Vahidsafa, Paul Loewenstein
-
Patent number: 9836326Abstract: A method and system for allocating data streams that includes receiving, at an allocator, a data stream. The data stream includes a memory address and data associated with the memory address. The method also includes examining, by the allocator, the data stream to make a determination that the data stream is a soft allocating data stream, and then sending, from the allocator based on the determination, a plurality of write probes to a plurality of caches, wherein each write probe of the plurality of write probes includes at least part of the memory address. Additionally, the method includes receiving, at the allocator in response to a write probe of the plurality of write probes, a cache line present acknowledgement from a cache of the plurality of caches, and directing, by the allocator in response to the cache line present acknowledgement, the data of the data stream to the cache.Type: GrantFiled: March 31, 2015Date of Patent: December 5, 2017Assignee: Oracle International CorporationInventors: David Richard Smentek, Kathirgamar Aingaran, Sumti Jairath, Manling Yang, Serena Wing Yee Leung, Paul N. Loewenstein
-
Patent number: 9600412Abstract: An arbiter circuit and a translation circuit. The arbiter circuit may be configured to generate a first address signal in a virtual memory space by arbitrating among a plurality of clients to access a physical memory space. The clients may be classified as either privileged clients or non-privileged clients. The physical memory space may comprise at least one secure space. The secure space may be used to protect data of the privileged clients from being accessed by the non-privileged clients. The translation circuit may be configured to generate a second address signal by translating a page in the virtual memory space into the physical memory space. The page may correspond to a particular one of the clients that won the arbitration. The page may translate into the secure space if the particular client is one of the privileged clients. The page may also translate outside the secure space if the particular client is one of the non-privileged clients.Type: GrantFiled: January 18, 2011Date of Patent: March 21, 2017Assignee: Ambarella, Inc.Inventors: Kathirgamar Aingaran, Leslie D. Kohn, Robert C. Kunz, Jenn-Yuan Tsai
-
Patent number: 9571408Abstract: A method and system for dynamic flow control using credit sharing that includes allocating portions of credits to senders, wherein each of the credits is for communicating with a receiver; transmitting, by a first sender of the senders, a first message to the receiver using a first credit of a first portion of the credits; decrementing, in response to transmitting the first message, a credit balance of the first sender by one; and determining that the credit balance of the first sender is zero. The method also includes sending to a second sender of the senders, by the first sender, in response to the credit balance being zero, a first request for a second credit; receiving from the second sender, in response to the first request, a first response comprising the second credit; and transmitting, by the first sender, a second message to the receiver using the second credit.Type: GrantFiled: March 4, 2015Date of Patent: February 14, 2017Assignee: Oracle International CorporationInventors: Kathirgamar Aingaran, Manling Yang, David Richard Smentek
-
Patent number: 9542443Abstract: 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: GrantFiled: May 11, 2015Date of Patent: January 10, 2017Assignee: Oracle International CorporationInventors: Kathirgamar Aingaran, Garret F Swart, Sanjiv Kapil
-
Publication number: 20160261513Abstract: A method and system for dynamic flow control using credit sharing that includes allocating portions of credits to senders, wherein each of the credits is for communicating with a receiver; transmitting, by a first sender of the senders, a first message to the receiver using a first credit of a first portion of the credits; decrementing, in response to transmitting the first message, a credit balance of the first sender by one; and determining that the credit balance of the first sender is zero. The method also includes sending to a second sender of the senders, by the first sender, in response to the credit balance being zero, a first request for a second credit; receiving from the second sender, in response to the first request, a first response comprising the second credit; and transmitting, by the first sender, a second message to the receiver using the second credit.Type: ApplicationFiled: March 4, 2015Publication date: September 8, 2016Inventors: Kathirgamar Aingaran, Manling Yang, David Richard Smentek
-
Publication number: 20160210255Abstract: A system is disclosed in which the system may include multiple bus switches, and multiple processors. Each processor may be coupled to each bus switch. Each processor may be configured to initiate a transfer of data to a given bus switch, and detect if a respective link to the given bus switch is inoperable. In response to detecting an inoperable link to a first bus switch, a given processor may be further configured to send a notification message to at least one other processor via at least a second bus switch and to remove routing information corresponding to the inoperable link from a first register. The at least one other processor may be configured to remove additional routing information corresponding to the inoperable link from a second register in response to receiving the notification message from the given processor.Type: ApplicationFiled: January 16, 2015Publication date: July 21, 2016Inventors: Thomas Wicki, David Smentek, Sumti Jairath, Kathirgamar Aingaran, Ali Vahidsafa, Paul Loewenstein
-
Publication number: 20160098364Abstract: A method and apparatus for reconfiguring hardware structures to pipeline the execution of multiple special purpose hardware implemented functions, without saving intermediate results to memory, is provided. Pipelining functions in a program is typically performed by a first function saving its results (the “intermediate results”) to memory, and a second function subsequently accessing the memory to use the intermediate results as input. Saving and accessing intermediate results stored in memory incurs a heavy performance penalty, requires more power, consumes more memory bandwidth, and increases the memory footprint. Due to the ability to redirect the input and output of the hardware structures, intermediate results are passed directly from one special purpose hardware implemented function to another without storing the intermediate results in memory.Type: ApplicationFiled: December 10, 2015Publication date: April 7, 2016Inventors: Kathirgamar Aingaran, Garret F. Swart
-
Patent number: 9292569Abstract: 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: GrantFiled: February 26, 2013Date of Patent: March 22, 2016Assignee: Oracle International CorporationInventors: Kathirgamar Aingaran, Garret F Swart
-
Patent number: 9251272Abstract: A method and apparatus for reconfiguring hardware structures to pipeline the execution of multiple special purpose hardware implemented functions, without saving intermediate results to memory, is provided. Pipelining functions in a program is typically performed by a first function saving its results (the “intermediate results”) to memory, and a second function subsequently accessing the memory to use the intermediate results as input. Saving and accessing intermediate results stored in memory incurs a heavy performance penalty, requires more power, consumes more memory bandwidth, and increases the memory footprint. Due to the ability to redirect the input and output of the hardware structures, intermediate results are passed directly from one special purpose hardware implemented function to another without storing the intermediate results in memory.Type: GrantFiled: March 7, 2013Date of Patent: February 2, 2016Assignee: Oracle International CorporationInventors: Kathirgamar Aingaran, Garret F. Swart
-
Patent number: 9158810Abstract: 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: GrantFiled: February 27, 2013Date of Patent: October 13, 2015Assignee: Oracle International CorporationInventors: Kathirgamar Aingaran, William H. Bridge, Jr., Garret F. Swart, Sumti Jairath, John G. Johnson
-
Publication number: 20150278092Abstract: A method and system for allocating data streams that includes receiving, at an allocator, a data stream. The data stream includes a memory address and data associated with the memory address. The method also includes examining, by the allocator, the data stream to make a determination that the data stream is a soft allocating data stream, and then sending, from the allocator based on the determination, a plurality of write probes to a plurality of caches, wherein each write probe of the plurality of write probes includes at least part of the memory address. Additionally, the method includes receiving, at the allocator in response to a write probe of the plurality of write probes, a cache line present acknowledgement from a cache of the plurality of caches, and directing, by the allocator in response to the cache line present acknowledgement, the data of the data stream to the cache.Type: ApplicationFiled: March 31, 2015Publication date: October 1, 2015Inventors: David Richard Smentek, Kathirgamar Aingaran, Sumti Jairath, Manling Yang, Serena Wing Yee Leung, Paul N. Loewenstein
-
Patent number: 9146879Abstract: An apparatus comprising an arbiter circuit, a translation circuit and a controller circuit. The arbiter circuit may be configured to generate one or more first control signals and a data write signal in response to an input signal and a read data signal. The translation circuit may be configured to generate a one or more second control signals in response to the one or more first control signals and the write address signal. The controller circuit may be configured to generate an address signal in response to the one or more second control signals.Type: GrantFiled: September 25, 2014Date of Patent: September 29, 2015Assignee: Ambarella, Inc.Inventors: Kathirgamar Aingaran, Leslie D. Kohn, Robert C. Kunz, Jenn-Yuan Tsai
-
Publication number: 20150261871Abstract: 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: ApplicationFiled: May 11, 2015Publication date: September 17, 2015Inventors: Kathirgamar Aingaran, Garret F. Swart, Sanjiv Kapil
-
Patent number: 9063974Abstract: 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: GrantFiled: February 26, 2013Date of Patent: June 23, 2015Assignee: Oracle International CorporationInventors: Kathirgamar Aingaran, Garret F. Swart, Sanjiv Kapil
-
Patent number: 8868883Abstract: An apparatus comprising an arbiter circuit, a translation circuit and a controller circuit. The arbiter circuit may be configured to generate one or more first control signals and a data write signal in response to an input signal and a read data signal. The translation circuit may be configured to generate a one or more second control signals in response to the one or more first control signals and the write address signal. The controller circuit may be configured to generate an address signal in response to the one or more second control signals.Type: GrantFiled: March 10, 2014Date of Patent: October 21, 2014Assignee: Ambarella, Inc.Inventors: Kathirgamar Aingaran, Leslie D. Kohn, Robert C. Kunz, Jenn-Yuan Tsai
-
Patent number: 8756605Abstract: An apparatus and method for scheduling execution of multiple threads on a shared processor resource is described in connection with a multithreaded multiprocessor chip. Using a thread selection policy that switches between available threads every cycle to give priority to the least recently executed or scheduled threads, different threads are able to operate in a way that ensures no deadlocks or livelocks while maximizing aggregate performance and fairness between threads. Prioritization is accomplished by monitoring and sorting thread status information for each thread, including speculative states in which a thread may be speculatively scheduled, thereby improving usage of the execution pipeline by switching a thread in with a lower priority.Type: GrantFiled: December 17, 2004Date of Patent: June 17, 2014Assignee: Oracle America, Inc.Inventors: Kathirgamar Aingaran, Hong-Men Su