Patents Assigned to Cavium, Inc.
  • Patent number: 10013357
    Abstract: Managing memory access requests to a cache system including one or more cache levels that are configured to store cache lines that correspond to memory blocks in a main memory includes: storing stream information identifying recognized streams that were recognized based on previously received memory access requests, where one or more of the recognized streams comprise strided streams that each have an associated strided prefetch result corresponding to a stride that is larger than or equal to a size of a single cache line; and determining whether or not a next cache line prefetch request corresponding to a particular memory access request will be made based at least in part on whether or not the particular memory access request matches a strided prefetch result for at least one strided stream, and a history of past next cache line prefetch requests.
    Type: Grant
    Filed: September 19, 2016
    Date of Patent: July 3, 2018
    Assignee: Cavium, Inc.
    Inventors: Shubhendu Sekhar Mukherjee, David Albert Carlson, Srilatha Manne
  • Patent number: 10013385
    Abstract: A data processor includes an input/output bridge that provides enforcement of a security status on transactions between devices across the bridge. The bridge includes circuitry to parse a received request to obtain one or more identifiers, and compare the identifiers against one or more programmable lookup tables. Based on this comparison, the bridge can determine the security status of the transaction, as well as selectively forward the transaction based on the security status.
    Type: Grant
    Filed: November 13, 2014
    Date of Patent: July 3, 2018
    Assignee: Cavium, Inc.
    Inventors: Robert A. Sanzone, Wilson P. Snyder, II, Richard E. Kessler
  • Patent number: 10006963
    Abstract: A testbench, including a verification environment, tests a device under test (DUT). A packet tracking module, which is verification environment agnostic, is configured to track packets in the verification environment. The packet tracking module maintains an associative data structure of packet identifiers that are indexed by a unique value, a counter for identifying the packets in the verification environment, and a set of routines for tracking the packets in the verification environment during different stages of the testing.
    Type: Grant
    Filed: March 27, 2015
    Date of Patent: June 26, 2018
    Assignee: Cavium, Inc.
    Inventors: Harish Krishnamoorthy, Nimalan Siva, Vadana Desai
  • Patent number: 10007614
    Abstract: System and method determining metric for selective caching, comprising determining a result of an access to a cache for at least one tracked attribute; determining a count value for the at least one tracked attribute in a translation look-aside buffer entry corresponding to the access to the cache in accordance with the determined result; comparing the count value for the at least one tracked attribute with a threshold associated with the at least one tracked attribute; assigning the metric of sticky property to a cache line corresponding to the translation look-aside buffer entry when the count value for at least one of the at least one tracked attribute exceeds the threshold. Selective caching then assigns different protection status to the cache lines with and without sticky property; and evicting a cache line in accordance with a cache eviction policy starting with the cache lines with the lowest protection status.
    Type: Grant
    Filed: February 2, 2016
    Date of Patent: June 26, 2018
    Assignee: Cavium, Inc.
    Inventors: Xiaodong Wang, Srilatha Manne, Bryan Wai Chin, Isam Akkawi, David Asher
  • Patent number: 10007524
    Abstract: Branch history information characterizes results of branch instructions previously executed by a processor. A count is stored of a number of consecutive branch instructions previously executed by the processor whose results all indicate a not taken branch. In a first pipeline stage, a predicted branch result is provided based on at least a portion of the branch history information, and one or more of the branch history information, and the count, is updated based on the predicted branch result. In a second pipeline stage an actual branch result is provided based on an executed branch instruction, and the branch history information is updated based on the actual branch result. If the predicted branch result indicates a taken branch, the branch history information is updated based on the count, and if the predicted branch result indicates a not taken branch, the count is updated but not the branch history information.
    Type: Grant
    Filed: November 14, 2014
    Date of Patent: June 26, 2018
    Assignee: Cavium, Inc.
    Inventor: David Albert Carlson
  • Patent number: 10009273
    Abstract: Embodiments of the present invention relate to a Lookup and Decision Engine (LDE) for generating lookup keys for input tokens and modifying the input tokens based on contents of lookup results. The input tokens are parsed from network packet headers by a Parser, and the tokens are then modified by the LDE. The modified tokens guide how corresponding network packets will be modified or forwarded by other components in a software-defined networking (SDN) system. The design of the LDE is highly flexible and protocol independent. Conditions and rules for generating lookup keys and for modifying tokens are fully programmable such that the LDE can perform a wide variety of reconfigurable network features and protocols in the SDN system.
    Type: Grant
    Filed: May 27, 2016
    Date of Patent: June 26, 2018
    Assignee: Cavium, Inc.
    Inventors: Anh T. Tran, Gerald Schmidt, Tsahi Daniel, Harish Krishnamoorthy
  • Patent number: 10002326
    Abstract: At least one per-pattern non-deterministic finite automaton (NFA) may be generated for a single regular expression pattern and may include a respective set of nodes. Nodes of the respective set of nodes of each per-pattern NFA generated may be distributed for storing in a plurality of memories based on hierarchical levels mapped to the plurality of memories and per-pattern NFA storage allocation settings configured for the hierarchical levels, optimizing run time performance for matching regular expression patterns in an input stream.
    Type: Grant
    Filed: April 14, 2014
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventors: Rajan Goyal, Satyanarayana Lakshmipathi Billa
  • Patent number: 10003676
    Abstract: The invention describes a network lookup engine for generating parallel network lookup requests for input packets, where each packet header is parsed and represented by a programmable parser in a format, namely a token, which is understandable by the engine. Each token can require multiple lookups in parallel in order to speed up the packet processing time. The sizes of lookup keys varies depending on the content of the input token and the protocols programmed for the engine. The engine generates a super key per token, representing all parallel lookup keys wherein the content of each key can be extracted from the super key through an associated profile identification. The network lookup engine is protocol-independent which means the conditions and rules for generating super keys are full programmable so that the engine can be reprogrammed to perform a wide variety of network features and protocols in a software-defined networking (SDN) system.
    Type: Grant
    Filed: February 20, 2015
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventors: Anh Tran, Tsahi Daniel, Gerald Schmidt
  • Patent number: 10002216
    Abstract: A new approach is proposed that contemplates systems and methods to support dynamic regression test generation for an IC design based upon coverage-based clustering of RTL modules in the design. First, coverage data for code coverage by a plurality of RTL modules in the IC design are collected and a plurality of clusters of related RTL modules of the IC design are generated based on statistical analysis of the collected coverage data and hierarchal information of the RTL modules. When changes are made to the RTL modules during the IC design process, a plurality of affected RTL modules are identified based on the clusters of the RTL modules and a plurality of regression tests are generated dynamically for these affected RTL modules based on their corresponding coverage data. The dynamically generated regression tests are then run to verify the changes made in the IC design.
    Type: Grant
    Filed: October 12, 2016
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventors: Shahid Ikram, James Ellis
  • Patent number: 10002099
    Abstract: An arbiter circuit manages and enforces arbitration and quality of service (QOS) among multiple devices accessing a resource, such as a memory. The arbiter circuit receives requests from a number of devices to use resources of a bridge connecting to a memory, and maintains a count of bridge resources available on a per-device and per-bus basis. The arbiter circuit operates to select a next one of the requests to grant a bridge resource based on the device originating the request, a count of the per-device resources available, and a count of the resources available to the bus connecting the device to the bridge.
    Type: Grant
    Filed: November 13, 2014
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventors: Robert A. Sanzone, Wilson P. Snyder, II, Richard E. Kessler
  • Patent number: 10001999
    Abstract: A new approach is proposed which contemplates system and method for configuring a plurality of configurable registers in a programmable digital processing engine of a network device. Under the proposed approach, one or more slave configuration controllers (SCC) are utilized to configure a large number of configurable registers in a programmable engine, wherein each SCC is used to configure a plurality of configurable registers, which are organized in multiple configuration groups. The configurable registers in each configuration group are connected in a looped one-way daisy chain. During its operation, each of the slave configuration controllers is configured to receive instructions from a user via a master configuration controller (MCC), performs read or write operations on the configurable registers of one of the configuration groups as designated by the instructions from the user.
    Type: Grant
    Filed: March 13, 2015
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventors: Anh Tran, Gerald Schmidt, Harish Krishnamoorthy
  • Patent number: 10003551
    Abstract: A packet memory system for selectively outputting received packets on one or more output ports. The packet memory system including a controller for controlling the output ports. Specifically, for packets of multicast or broadcast traffic that needs to be output from a plurality of the ports, the controller designates one or more reader ports that read the packet data from a packet memory such that the remainder of the ports are able to simply listen for the read packet data without performing a read operation.
    Type: Grant
    Filed: March 30, 2015
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventor: Enrique Musoll
  • Patent number: 10002218
    Abstract: A system includes a formal verification engine running on a host and a protocol checking engine. The formal verification engine automatically generates and formally verifies a reference specification that includes a plurality of extended state tables for an integrated circuit (IC) design protocol of a chip at architectural level. The formal verification engine is further configured to automatically generate a plurality of self-contained services from the plurality of extended state tables. A self-contained service of the plurality of self-contained services is randomly and atomically executable. The self-contained service of the plurality of self-contained services changes responsive to the IC design protocol changing. The protocol checking engine checks and validates completeness and correctness of the self-contained service of the reference specification.
    Type: Grant
    Filed: March 9, 2016
    Date of Patent: June 19, 2018
    Assignee: Cavium, Inc.
    Inventors: Shahid Ikram, Isam Akkawi, Richard Eugene Kessler, James Ellis, David Asher
  • Patent number: 9990324
    Abstract: Embodiments of the present invention are directed to a configuration interface of a network ASIC. The configuration interface allows for two modes of traversal of nodes. The nodes form one or more chains. Each chain is in a ring or a list topology. A master receives external access transactions. Once received by the master, an external access transaction traverses the chains to reach a target node. A target node either is an access to a memory space or is a module. A chain can include at least one decoder. A decoder includes logic that determines which of its leaves to send an external access transaction to. In contrast, if a module is not the target node, then the module passes an external access transaction to the next node coupled thereto; otherwise, if the module is the target node, the transmission of the external access transaction stops at the module.
    Type: Grant
    Filed: October 22, 2014
    Date of Patent: June 5, 2018
    Assignee: Cavium Inc.
    Inventors: Guy Townsend Hutchison, Harish Krishnamoorthy, Gerald Schmidt, Vishal Anand
  • Patent number: 9985887
    Abstract: One aspect of the present invention discloses a network system capable of transmitting and processing audio video (“A/V”) data with enhanced quality of service (“QoS”). The network system includes a transmitter, a transmission channel, an adjustable decoder buffer, and a decoder. The transmitter contains an encoder able to encode A/V data in accordance with encoding bit rate recommendation from SQoS and packets loss notifications. The transmission channel, in one example, transmits A/V data from the transmitter or the receiver. The adjustable decoder buffer, in one aspect, is able to change its storage capacity or buffering size in response to the adaptive latency estimate. Upon fetching at least a portion of the A/V data from the adjustable decoder buffer, SQoS updates the adaptive latency estimate based on the quality of the decoded A/V data.
    Type: Grant
    Filed: August 27, 2015
    Date of Patent: May 29, 2018
    Assignee: Cavium Inc.
    Inventors: Francisco J. Roncero Izquierdo, Gorka Garcia Rodriguez
  • Patent number: 9977737
    Abstract: A method and a system embodying the method for a memory address alignment, comprising configuring one or more naturally aligned buffer structure(s); providing a return address pointer in a buffer of one of the one or more naturally aligned buffer structure(s); determining a configuration of the one of the one or more naturally aligned buffer structure(s); applying a modulo arithmetic to the return address and at least one parameter of the determined configuration; and providing a stacked address pointer determined in accordance with the applied modulo arithmetic, is disclosed.
    Type: Grant
    Filed: December 25, 2013
    Date of Patent: May 22, 2018
    Assignee: Cavium, Inc.
    Inventors: Wilson Parkhurst Snyder, II, Anna Karen Kujtkowski
  • Patent number: 9966964
    Abstract: An example embodiment disclosed herein enables at least one frequency divider chain of a multiphase divider circuit to ensure proper phase relations after multiple frequency divisions. Another example embodiment enables a unique reset sequence to maximize a timing margin for reset signals of the at least one frequency divider chain and, thus, maximizes a bandwidth of the multiphase divider circuit.
    Type: Grant
    Filed: May 23, 2017
    Date of Patent: May 8, 2018
    Assignee: Cavium, Inc.
    Inventors: Scott E. Meninger, JingDong Deng
  • Patent number: 9961167
    Abstract: Embodiments of the apparatus for modifying packet headers relate to a rewrite engine that represents each protocol header of packets in a generic format specific to that protocol to enable programmable modifications of packets, resulting in hardware and software flexibility in modifying packet headers. Software programs generic formats in a hardware table for various protocols. The rewrite engine is able to detect missing fields from a protocol header and is able to expand the protocol header to a maximum size such that the protocol header contains all possible fields of that protocol. Each of the fields has the same offset irrespective of which variation of the protocol the protocol header corresponds to. In a bit vector, all newly added fields are marked invalid (represented by 0), and all existing fields are marked valid (represented by 1). Software modification commands allow data to be replaced, removed and inserted.
    Type: Grant
    Filed: June 19, 2014
    Date of Patent: May 1, 2018
    Assignee: Cavium, Inc.
    Inventors: Chirinjeev Singh, Vishal Anand, Tsahi Daniel, Gerald Schmidt
  • Patent number: 9952800
    Abstract: Embodiments of the present invention relate to multiple parallel lookups using a pool of shared memories by proper configuration of interconnection networks. The number of shared memories reserved for each lookup is reconfigurable based on the memory capacity needed by that lookup. The shared memories are grouped into homogeneous tiles. Each lookup is allocated a set of tiles based on the memory capacity needed by that lookup. The tiles allocated for each lookup do not overlap with other lookups such that all lookups can be performed in parallel without collision. Each lookup is reconfigurable to be either hash-based or direct-access. The interconnection networks are programmed based on how the tiles are allocated for each lookup.
    Type: Grant
    Filed: March 1, 2017
    Date of Patent: April 24, 2018
    Assignee: Cavium, Inc.
    Inventors: Anh T. Tran, Gerald Schmidt, Tsahi Daniel, Saurabh Shrivastava
  • Patent number: 9954551
    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: April 24, 2018
    Assignee: Cavium, Inc.
    Inventors: Premshanth Theivendran, Weihuang Wang, Sowmya Hotha, Srinath Alturi