Patents by Inventor Lakshmipathi Billa

Lakshmipathi Billa 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: 10771090
    Abstract: A highly programmable data processing unit includes multiple processing units for processing streams of information, such as network packets or storage packets. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. The data processing unit is configured to retrieve speculative probability values for range coding a plurality of bits with a single read instruction to an on-chip memory that stores a table of probability values. The data processing unit is configured to store state information used for context-coding packets of a data stream so that the state information is available after switching between data streams.
    Type: Grant
    Filed: December 12, 2019
    Date of Patent: September 8, 2020
    Assignee: Fungible, Inc.
    Inventors: Rajan Goyal, Satyanarayana Lakshmipathi Billa, Gurumani Senthil Nayakam
  • Publication number: 20200278866
    Abstract: An example integrated circuit includes a memory including a non-deterministic finite automata (NFA) buffer configured to store a plurality of instructions defining an ordered sequence of instructions of at least a portion of an NFA graph, the portion of the NFA graph comprising a plurality of nodes arranged along a plurality of paths. The NFA engine determines a current symbol and one or more subsequent symbols of a payload segment that satisfy a match condition specified by a subset of instructions of the plurality of instructions for a path of the plurality of paths and in response to determining the current symbol and the one or more subsequent symbols of the payload segment that satisfy the match condition, outputs an indication that the payload data has resulted in a match.
    Type: Application
    Filed: May 18, 2020
    Publication date: September 3, 2020
    Inventors: Satyanarayana Lakshmipathi Billa, Rajan Goyal, Abhishek Kumar Dikshit, Yi-Hua Edward Yang, Sandipkumar J. Ladhani
  • Patent number: 10727865
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a hardware-based programmable data compression accelerator for the data processing unit including a pipeline for performing string substitution. The disclosed string substitution pipeline, referred to herein as a “search block,” is configured to perform string search and replacement functions to compress an input data stream. In some examples, the search block is a part of a compression process performed by the data compression accelerator. The search block may support single and multi-thread processing, and multiple levels of compression effort.
    Type: Grant
    Filed: November 19, 2018
    Date of Patent: July 28, 2020
    Assignee: Fungible, Inc.
    Inventors: Edward David Beckman, Satyanarayana Lakshmipathi Billa, Rajan Goyal
  • Publication number: 20200228148
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a parallel decoding of codewords within input data stream based on a codeword type and position.
    Type: Application
    Filed: January 16, 2019
    Publication date: July 16, 2020
    Inventors: Philip A. Thomas, Edward David Beckman, Rajan Goyal, Satyanarayana Lakshmipathi Billa
  • Publication number: 20200169268
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data processing functions. This disclosure describes a programmable hardware-based data compression accelerator that includes a pipeline for performing static dictionary-based and dynamic history-based compression on streams of information, such as network packets. The search block may support single and multi-thread processing, and multiple levels of compression effort. To achieve high-compression, the search block may operate at a high level of effort that supports a single thread and use of both a dynamic history of the input data stream and a static dictionary of common words.
    Type: Application
    Filed: November 26, 2018
    Publication date: May 28, 2020
    Inventors: Satyanarayana Lakshmipathi Billa, Rajan Goyal, Edward David Beckman
  • Publication number: 20200162100
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a hardware-based programmable data compression accelerator for the data processing unit including a pipeline for performing string substitution. The disclosed string substitution pipeline, referred to herein as a “search block,” is configured to perform string search and replacement functions to compress an input data stream. In some examples, the search block is a part of a compression process performed by the data compression accelerator. The search block may support single and multi-thread processing, and multiple levels of compression effort.
    Type: Application
    Filed: November 19, 2018
    Publication date: May 21, 2020
    Inventors: Edward David Beckman, Satyanarayana Lakshmipathi Billa, Rajan Goyal
  • Publication number: 20200159859
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a hardware-based programmable data compression accelerator for the data processing unit including a pipeline for performing string substitution. The disclosed string substitution pipeline, referred to herein as a “search block,” is configured to perform string search and replacement functions to compress an input data stream. In some examples, the search block is a part of a compression process performed by the data compression accelerator. The search block may support single and multi-thread processing, and multiple levels of compression effort.
    Type: Application
    Filed: November 19, 2018
    Publication date: May 21, 2020
    Inventors: Edward David Beckman, Satyanarayana Lakshmipathi Billa, Rajan Goyal
  • Publication number: 20200159840
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a hardware-based programmable data compression accelerator for the data processing unit including a pipeline for performing string substitution. The disclosed string substitution pipeline, referred to herein as a “search block,” is configured to perform string search and replacement functions to compress an input data stream. In some examples, the search block is a part of a compression process performed by the data compression accelerator. The search block may support single and multi-thread processing, and multiple levels of compression effort.
    Type: Application
    Filed: November 19, 2018
    Publication date: May 21, 2020
    Inventors: Edward David Beckman, Satyanarayana Lakshmipathi Billa, Rajan Goyal, Sandipkumar J. Ladhani
  • Publication number: 20200159568
    Abstract: This disclosure describes techniques that include establishing a service chain of operations that are performed on a network packet as a sequence of operations. In one example, this disclosure describes a method that includes storing, by a data processing unit integrated circuit, a plurality of work unit frames in a work unit stack representing a plurality of service chain operations, including a first service chain operation, a second service chain operation, and a third service chain operation; executing, by the data processing unit integrated circuit, the first service chain operation, wherein executing the first service chain operation generates operation data; determining, by the data processing unit integrated circuit and based on the operation data, whether to perform the second service chain operation; and executing, by the data processing unit integrated circuit, the third service chain operation after skipping the second service chain operation.
    Type: Application
    Filed: November 21, 2018
    Publication date: May 21, 2020
    Inventors: Rajan Goyal, Satyanarayana Lakshmipathi Billa
  • Publication number: 20200162101
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a hardware-based programmable data compression accelerator for the data processing unit including a pipeline for performing string substitution. The disclosed string substitution pipeline, referred to herein as a “search block,” is configured to perform string search and replacement functions to compress an input data stream. In some examples, the search block is a part of a compression process performed by the data compression accelerator. The search block may support single and multi-thread processing, and multiple levels of compression effort.
    Type: Application
    Filed: November 19, 2018
    Publication date: May 21, 2020
    Inventors: Edward David Beckman, Satyanarayana Lakshmipathi Billa, Rajan Goyal
  • Publication number: 20200162584
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes a hardware-based programmable data compression accelerator for the data processing unit including a pipeline for performing string substitution. The disclosed string substitution pipeline, referred to herein as a “search block,” is configured to perform string search and replacement functions to compress an input data stream. In some examples, the search block is a part of a compression process performed by the data compression accelerator. The search block may support single and multi-thread processing, and multiple levels of compression effort.
    Type: Application
    Filed: November 19, 2018
    Publication date: May 21, 2020
    Inventors: Edward David Beckman, Satyanarayana Lakshmipathi Billa, Rajan Goyal
  • Patent number: 10656949
    Abstract: An example processing device includes a memory including a non-deterministic finite automata (NFA) buffer configured to store a plurality of instructions defining an ordered sequence of instructions of at least a portion of an NFA graph, the portion of the NFA graph comprising a plurality of nodes arranged along a plurality of paths. The NFA engine determines a current symbol and one or more subsequent symbols of a payload segment that satisfy a match condition specified by a subset of instructions of the plurality of instructions for a path of the plurality of paths and in response to determining the current symbol and the one or more subsequent symbols of the payload segment that satisfy the match condition, outputs an indication that the payload data has resulted in a match.
    Type: Grant
    Filed: July 13, 2018
    Date of Patent: May 19, 2020
    Assignee: Fungible, Inc.
    Inventors: Satyanarayana Lakshmipathi Billa, Rajan Goyal, Abhishek Kumar Dikshit, Yi-Hua Edward Yang, Sandipkumar J. Ladhani
  • Publication number: 20200145680
    Abstract: A device includes a memory configured to store image data and an image coding unit implemented in circuitry. The image coding unit is configured to code a first value of a first instance of a first syntax element of a first block of image data and determine a first context for coding a second value of a second instance of the first syntax element of a second block of the image data. The image coding unit is configured to context-based code the second value of the second instance of the first syntax element of the second block of the image data after coding the first value of the first instance of the first syntax element using the first context and code a third value of a first instance of a second syntax element of the first block in parallel with coding the second value or after coding the second value.
    Type: Application
    Filed: November 2, 2018
    Publication date: May 7, 2020
    Inventors: Abhishek Kumar Dikshit, Jorge Cruz-Rios, Rajan Goyal, Satyanarayana Lakshmipathi Billa
  • Publication number: 20200142642
    Abstract: A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes examples of retrieving speculative probability values for range coding a plurality of bits with a single read instruction to a on-chip memory that stores a table of probability values. This disclosure also describes examples of storing state information used for context-coding packets of a data stream so that the state information is available after switching between data streams.
    Type: Application
    Filed: November 1, 2018
    Publication date: May 7, 2020
    Inventors: Satyanarayana Lakshmipathi Billa, Gurumani Senthil Nayakam, Rajan Goyal
  • Publication number: 20200145020
    Abstract: A highly programmable data processing unit includes multiple processing units for processing streams of information, such as network packets or storage packets. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. The data processing unit is configured to retrieve speculative probability values for range coding a plurality of bits with a single read instruction to an on-chip memory that stores a table of probability values. The data processing unit is configured to store state information used for context-coding packets of a data stream so that the state information is available after switching between data streams.
    Type: Application
    Filed: December 12, 2019
    Publication date: May 7, 2020
    Inventors: Rajan Goyal, Satyanarayana Lakshmipathi Billa, Gurumani Senthil Nayakam
  • Patent number: 10645187
    Abstract: A DFA engine is described that determines whether a current symbol of a payload matches a label of any effective arcs or negative arcs associated with a current node of a DFA graph that are stored in a cache. Responsive to determining that the current symbol does not match a label of any effective or negative arcs associated with the current node of the DFA graph, the DFA engine determines whether the current symbol matches a label of any arc associated with the current node of the DFA graph that is stored in a memory. Responsive to determining that the current symbol matches a label of a particular arc associated with the current node of the DFA graph that is stored in the memory, the DFA engine stores the particular arc in the cache as a new effective arc and uses the particular arc to evaluate the current symbol.
    Type: Grant
    Filed: July 13, 2018
    Date of Patent: May 5, 2020
    Assignee: Fungible, Inc.
    Inventors: Rajan Goyal, Yi-Hua Edward Yang, Satyanarayana Lakshmipathi Billa, Eric Scot Swartzendruber
  • Patent number: 10635419
    Abstract: A compiler/loader unit for a RegEx accelerator is described that receives a first set of regular expression rules for implementing the RegEx accelerator, generates, based on the first set of regular expression rules, an initial deterministic finite automata (DFA) graph, and generates, an initial memory map for allocating the initial DFA graph to a memory of the RegEx accelerator. The compiler/loader unit receives receive, a second set of one or more new or modified regular expression rules for implementing the RegEx accelerator and in response performs incremental compilation of the second set of regular expressions. The compiler/loader unit generates, based on the second set of one or more regular expression rules, a supplemental DFA graph and reconciles the initial DFA graph with the supplemental DFA graph to generate an updated memory map for allocating the initial DFA graph and the supplemental DFA graph to the memory of the RegEx accelerator.
    Type: Grant
    Filed: July 13, 2018
    Date of Patent: April 28, 2020
    Assignee: Fungible, Inc.
    Inventors: Yi-Hua Edward Yang, Satyanarayana Lakshmipathi Billa, Rajan Goyal, Abhishek Kumar Dikshit
  • Publication number: 20200019391
    Abstract: A compiler/loader unit for a RegEx accelerator is described that receives a first set of regular expression rules for implementing the RegEx accelerator, generates, based on the first set of regular expression rules, an initial deterministic finite automata (DFA) graph, and generates, an initial memory map for allocating the initial DFA graph to a memory of the RegEx accelerator. The compiler/loader unit receives receive, a second set of one or more new or modified regular expression rules for implementing the RegEx accelerator and in response performs incremental compilation of the second set of regular expressions. The compiler/loader unit generates, based on the second set of one or more regular expression rules, a supplemental DFA graph and reconciles the initial DFA graph with the supplemental DFA graph to generate an updated memory map for allocating the initial DFA graph and the supplemental DFA graph to the memory of the RegEx accelerator.
    Type: Application
    Filed: July 13, 2018
    Publication date: January 16, 2020
    Inventors: Yi-Hua Edward Yang, Satyanarayana Lakshmipathi Billa, Rajan Goyal, Abhishek Kumar Dikshit
  • Publication number: 20200021664
    Abstract: A DFA engine is described that determines whether a current symbol of a payload matches a label of any effective arcs or negative arcs associated with a current node of a DFA graph that are stored in a cache. Responsive to determining that the current symbol does not match a label of any effective or negative arcs associated with the current node of the DFA graph, the DFA engine determines whether the current symbol matches a label of any arc associated with the current node of the DFA graph that is stored in a memory. Responsive to determining that the current symbol matches a label of a particular arc associated with the current node of the DFA graph that is stored in the memory, the DFA engine stores the particular arc in the cache as a new effective arc and uses the particular arc to evaluate the current symbol.
    Type: Application
    Filed: July 13, 2018
    Publication date: January 16, 2020
    Inventors: Rajan Goyal, Yi-Hua Edward Yang, Satyanarayana Lakshmipathi Billa, Eric Scot Swartzendruber
  • Publication number: 20200019404
    Abstract: An example processing device includes a memory including a non-deterministic finite automata (NFA) buffer configured to store a plurality of instructions defining an ordered sequence of instructions of at least a portion of an NFA graph, the portion of the NFA graph comprising a plurality of nodes arranged along a plurality of paths. The NFA engine determines a current symbol and one or more subsequent symbols of a payload segment that satisfy a match condition specified by a subset of instructions of the plurality of instructions for a path of the plurality of paths and in response to determining the current symbol and the one or more subsequent symbols of the payload segment that satisfy the match condition, outputs an indication that the payload data has resulted in a match.
    Type: Application
    Filed: July 13, 2018
    Publication date: January 16, 2020
    Inventors: Satyanarayana Lakshmipathi Billa, Rajan Goyal, Abhishek Kumar Dikshit, Yi-Hua Edward Yang, Sandipkumar J. Ladhani