Patents by Inventor Weihuang Wang

Weihuang Wang 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: 9652171
    Abstract: A packet processing system having a control path memory of a control path subsystem and a datapath memory of a datapath subsystem. The datapath subsystem stores packet data of incoming packets and the control path subsystem performs matches of a subset of packet data, or a hash of the packet data, against the contents of a the control path memory in order to process the packets. The packet processing system enabling a portion of the datapath memory to be used by the control subsystem if needed or a portion of the control path memory to be used by the datapath subsystem if needed.
    Type: Grant
    Filed: March 30, 2015
    Date of Patent: May 16, 2017
    Assignee: Cavium, Inc.
    Inventors: Enrique Musoll, Weihuang Wang
  • Patent number: 9612950
    Abstract: A packet processing system having a control path memory of a control path subsystem and a datapath memory of a datapath subsystem. The datapath subsystem stores packet data of incoming packets and the control path subsystem performs matches of a subset of packet data, or a hash of the packet data, against the contents of a the control path memory in order to process the packets. The packet processing system enabling a portion of the datapath memory to be used by the control subsystem if needed or a portion of the control path memory to be used by the datapath subsystem if needed.
    Type: Grant
    Filed: March 30, 2015
    Date of Patent: April 4, 2017
    Assignee: Cavium, Inc.
    Inventors: Enrique Musoll, Weihuang Wang
  • Patent number: 9600614
    Abstract: System and method of automatically performing flip-flop insertions for each net in a logic interface by using the RTL-estimated maximum count as a limit. Based on the timing analysis on the physical layout, a flip-flop insertion count needed for each net is derived and candidate locations for insertions are automatically detected. A set of constraints is applied to identify ineligible locations for flip-flop insertions. If more flip-flop insertions than the count limit are needed to satisfy the timing requirements for a net, timing-related variables are iteratively adjusted using the current layout until the timing requirements can be satisfied using the RTL count limit. If all the nets in the interface need fewer flip-flop insertions than the RTL count limit, the information can be fed back to update the RTL count limit. Each net is then parsed and flip-flops are inserted at appropriated locations.
    Type: Grant
    Filed: February 27, 2015
    Date of Patent: March 21, 2017
    Assignee: XPLIANT
    Inventors: Nikhil Jayakumar, Weihuang Wang, Weinan Ma, Daman Ahluwalia, Chirinjeev Singh
  • Publication number: 20170075754
    Abstract: A cyclic redundancy check (CRC) device configured to support parallel calculation of a CRC value for a data frame comprises a plurality of CRC processing units each configured to accept one of a plurality of data segments of the data frame of a variable size that can be unknown to the CRC device beforehand and generate one of plurality of partial CRC values in parallel with rest of the CRC processing units over multiple clock cycles/iterations. The CRC device further comprises an integration component configured to integrate the plurality of partial CRC values from the plurality of CRC processing units into one final CRC value for the data frame, wherein the final CRC value is attached to the data frame for error checking during storage or transmission of the data frame.
    Type: Application
    Filed: September 10, 2015
    Publication date: March 16, 2017
    Inventor: Weihuang Wang
  • Publication number: 20170068769
    Abstract: System and method of determining flip-flop counts of interconnects of a physical layout during integrated circuit (IC) design. The outputs of each logic block are defined as primary inputs, and the inputs of each logic block are defined as primary outputs. Each interconnect is traversed from a primary input a primary output to identify the flip-flops and determine the flip-flop count. If an interconnect has a greater flip-flop count than an RTL estimated count, measures are taken to reduce the need for flip-flops with the current routing design. If the interconnect has a smaller flip-flop count than an RTL estimated count, additional flip-flops are inserted.
    Type: Application
    Filed: March 31, 2015
    Publication date: March 9, 2017
    Inventors: Chirinjeev SINGH, Nikhil JAYAKUMAR, Weihuang WANG, Weinan MA, Daman AHLUWALIA
  • Patent number: 9584635
    Abstract: A packet processing system having a barrel compactor that extracts a desired data subset from an input dataset (e.g. an incoming packet). The barrel compactor is able to selectively shift one or more of the input data units of the input dataset based on individual shift values for those data units. Additionally, in some embodiments one or more of the data units are able to be logically combined to produce a desired logical output unit.
    Type: Grant
    Filed: March 31, 2015
    Date of Patent: February 28, 2017
    Assignee: Cavium, Inc.
    Inventors: Premshanth Theivendran, Weihuang Wang, Sowmya Hotha, Srinath Alturi
  • Patent number: 9582215
    Abstract: A packet processing system having a control path memory of a control path subsystem and a datapath memory of a datapath subsystem. The datapath subsystem stores packet data of incoming packets and the control path subsystem performs matches of a subset of packet data, or a hash of the packet data, against the contents of a the control path memory in order to process the packets. The packet processing system enabling a portion of the datapath memory to be used by the control subsystem if needed or a portion of the control path memory to be used by the datapath subsystem if needed.
    Type: Grant
    Filed: March 30, 2015
    Date of Patent: February 28, 2017
    Assignee: Cavium, Inc.
    Inventors: Enrique Musoll, Weihuang Wang
  • Publication number: 20170024346
    Abstract: An on-chip crossbar of a network switch comprising a central arbitration component configured to allocate packet data requests received from destination port groups to memory banks. The on-chip crossbar further comprises a Benes routing network comprising a forward network having a plurality of pipelined forward routing stages and a reverse network, wherein the Benes routing network retrieves the packet data from the memory banks coupled to input of the Benes routing network and route the packet data to the port groups coupled to output of the Benes routing network. The on-chip crossbar further comprises a plurality of stage routing control units each associated with one of the forward routing stages and configured to generate and provide a plurality of node control signals to control routing of the packet data through the forward routing stages to avoid contention between the packet data retrieved from different memory banks at the same time.
    Type: Application
    Filed: July 23, 2015
    Publication date: January 26, 2017
    Inventors: Weihuang Wang, Dan Tu, Guy Hutchison, Prasanna Vetrivel
  • Patent number: 9553829
    Abstract: A network switch comprises a plurality of packet processing units configured to process a received packet through multiple packet processing stages based on search result of a table. The network switch further comprises one or more memory units configured to maintain the table to be searched and provide the search result to the packet processing units. The network switch further comprises a table managing unit configured to accept a plurality of rules on bulk update to the table specified by a control unit, and perform the bulk update on the table based on the rules specified by the control unit without the control unit accessing the table directly for the bulk update.
    Type: Grant
    Filed: November 13, 2014
    Date of Patent: January 24, 2017
    Assignee: CAVIUM, INC.
    Inventors: Weihuang Wang, Mohan Balan, Srinath Atluri
  • Patent number: 9485179
    Abstract: A network switch comprises a packet processing pipeline including a plurality of packet processing clusters configured to process a received packet through multiple packet processing stages based on table search/lookup results. The network switch further includes a plurality of search logic units each corresponding one of the plurality of packet processing clusters, wherein each of the search logic units is configured to convert a unified search request of a table from its corresponding packet processing cluster to a plurality table search commands specific to one or more memory clusters that maintain the table, provide the plurality table search commands specific to the memory clusters in parallel and collect and provide the table search results from the memory clusters to the corresponding packet processing cluster.
    Type: Grant
    Filed: November 13, 2014
    Date of Patent: November 1, 2016
    Assignee: Cavium, Inc.
    Inventors: Weihuang Wang, Srinath Atluri
  • Publication number: 20160315622
    Abstract: Embodiments of the present invention relate to an architecture that uses hierarchical statistically multiplexed counters to extend counter life by orders of magnitude. Each level includes statistically multiplexed counters. The statistically multiplexed counters includes P base counters and S subcounters, wherein the S subcounters are dynamically concatenated with the P base counters. When a row overflow in a level occurs, counters in a next level above are used to extend counter life. The hierarchical statistically multiplexed counters can be used with an overflow FIFO to further extend counter life.
    Type: Application
    Filed: July 5, 2016
    Publication date: October 27, 2016
    Inventors: Weihuang Wang, Gerald Schmidt, Srinath Atluri, Weinan Ma, Shrikant Sundaram Lnu
  • Publication number: 20160291932
    Abstract: Systems and methods for inserting flops at the chip-level to produce a signal delay for preventing buffer overflow are disclosed herein. Shells of modules described in an RTL description and their connections are analyzed to determine a signal latency between a sender block and a receiver block. The logical interfaces of the shells are grouped in a structured document with associated rules. Flops are inserted between the sender block and the receiver block to introduce a flop delay to meet physical design timing requirement and prevent a buffer of the receiver block from overflowing due to data that is already in-flight when a flow control signal is sent by the receiver block. The sum of a delay on a data line and a delay on a flow control line measured in clock cycles must be less than a depth of the buffer.
    Type: Application
    Filed: March 31, 2015
    Publication date: October 6, 2016
    Inventors: Weihuang WANG, Premshanth THEIVENDRAN, Nikhil JAYAKUMAR, Gerald SCHMIDT, Srinath ATLURI
  • Publication number: 20160292070
    Abstract: A packet processing system having a control path memory of a control path subsystem and a datapath memory of a datapath subsystem. The datapath subsystem stores packet data of incoming packets and the control path subsystem performs matches of a subset of packet data, or a hash of the packet data, against the contents of a the control path memory in order to process the packets. The packet processing system enabling a portion of the datapath memory to be used by the control subsystem if needed or a portion of the control path memory to be used by the datapath subsystem if needed.
    Type: Application
    Filed: March 30, 2015
    Publication date: October 6, 2016
    Inventors: Enrique Musoll, Weihuang Wang
  • Publication number: 20160294408
    Abstract: A packet processing system having a barrel compactor that extracts a desired data subset from an input dataset (e.g. an incoming packet). The barrel compactor is able to selectively shift one or more of the input data units of the input dataset based on individual shift values for those data units. Additionally, in some embodiments one or more of the data units are able to be logically combined to produce a desired logical output unit.
    Type: Application
    Filed: March 31, 2015
    Publication date: October 6, 2016
    Inventors: Premshanth Theivendran, Weihuang Wang, Sowmya Hotha, Srinath Alturi
  • Publication number: 20160291895
    Abstract: A packet processing system having a control path memory of a control path subsystem and a datapath memory of a datapath subsystem. The datapath subsystem stores packet data of incoming packets and the control path subsystem performs matches of a subset of packet data, or a hash of the packet data, against the contents of a the control path memory in order to process the packets. The packet processing system enabling a portion of the datapath memory to be used by the control subsystem if needed or a portion of the control path memory to be used by the datapath subsystem if needed.
    Type: Application
    Filed: March 30, 2015
    Publication date: October 6, 2016
    Inventors: Enrique Musoll, Weihuang Wang
  • Publication number: 20160291896
    Abstract: A packet processing system having a control path memory of a control path subsystem and a datapath memory of a datapath subsystem. The datapath subsystem stores packet data of incoming packets and the control path subsystem performs matches of a subset of packet data, or a hash of the packet data, against the contents of a the control path memory in order to process the packets. The packet processing system enabling a portion of the datapath memory to be used by the control subsystem if needed or a portion of the control path memory to be used by the datapath subsystem if needed.
    Type: Application
    Filed: March 30, 2015
    Publication date: October 6, 2016
    Inventors: Enrique Musoll, Weihuang Wang
  • Publication number: 20160292330
    Abstract: Systems and methods for generating an RTL description based on logical signal groupings are described. Logical interfaces are declared in a compressed form, and logical signal grouping is defined in a markup document. The definitions from the markup document are used by expansion scripts to populate RTL modules and encapsulate block connectivity and functionality. Multiple interfaces can be created instantly, and interface definitions for common interfaces may be easily re-defined. Default values may be assigned to module outputs for testing purposes, allowing for multi-module simulations where certain modules are shelled-out.
    Type: Application
    Filed: March 31, 2015
    Publication date: October 6, 2016
    Inventors: Premshanth THEIVENDRAN, Weihuang WANG, Guy Hutchison, Gerald Schmidt
  • Publication number: 20160294988
    Abstract: A packet processing system having a barrel compactor that extracts a desired data subset from an input dataset (e.g. an incoming packet). The barrel compactor is able to selectively shift one or more of the input data units of the input dataset based on individual shift values for those data units. Additionally, in some embodiments one or more of the data units are able to be logically combined to produce a desired logical output unit.
    Type: Application
    Filed: March 31, 2015
    Publication date: October 6, 2016
    Inventors: Premshanth Theivendran, Weihuang Wang, Sowmya Hotha, Srinath Alturi
  • Publication number: 20160241473
    Abstract: A network switch includes a memory configurable to store alternate table representations of an individual trie in a hierarchy of tries. A prefix table processor accesses in parallel, using an input network address, the alternate table representations of the individual trie and searches for a longest prefix match in each alternate table representation to obtain local prefix matches. The longest prefix match from the local prefix matches is selected. The longest prefix match has an associated next hop index base address and offset value. A next hop index processor accesses a next hop index table in the memory utilizing the next hop index base address and offset value to obtain a next hop table pointer. A next hop processor accesses a next hop table in the memory using the next hop table pointer to obtain a destination network address.
    Type: Application
    Filed: April 27, 2016
    Publication date: August 18, 2016
    Applicant: Xpliant, Inc.
    Inventors: Weihuang Wang, Mohan Balan, Nimalan Siva, Zubin Shah
  • Patent number: 9413357
    Abstract: Embodiments of the present invention relate to an architecture that uses hierarchical statistically multiplexed counters to extend counter life by orders of magnitude. Each level includes statistically multiplexed counters. The statistically multiplexed counters includes P base counters and S subcounters, wherein the S subcounters are dynamically concatenated with the P base counters. When a row overflow in a level occurs, counters in a next level above are used to extend counter life. The hierarchical statistically multiplexed counters can be used with an overflow FIFO to further extend counter life.
    Type: Grant
    Filed: June 11, 2014
    Date of Patent: August 9, 2016
    Assignee: Cavium, Inc.
    Inventors: Weihuang Wang, Gerald Schmidt, Srinath Alturi, Weinan Ma, Shrikant Sundaram Lnu