Patents Assigned to Cavium, Inc.
-
Patent number: 10013357Abstract: 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: GrantFiled: September 19, 2016Date of Patent: July 3, 2018Assignee: Cavium, Inc.Inventors: Shubhendu Sekhar Mukherjee, David Albert Carlson, Srilatha Manne
-
Patent number: 10013385Abstract: 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: GrantFiled: November 13, 2014Date of Patent: July 3, 2018Assignee: Cavium, Inc.Inventors: Robert A. Sanzone, Wilson P. Snyder, II, Richard E. Kessler
-
Patent number: 10006963Abstract: 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: GrantFiled: March 27, 2015Date of Patent: June 26, 2018Assignee: Cavium, Inc.Inventors: Harish Krishnamoorthy, Nimalan Siva, Vadana Desai
-
Patent number: 10007614Abstract: 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: GrantFiled: February 2, 2016Date of Patent: June 26, 2018Assignee: Cavium, Inc.Inventors: Xiaodong Wang, Srilatha Manne, Bryan Wai Chin, Isam Akkawi, David Asher
-
Patent number: 10007524Abstract: 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: GrantFiled: November 14, 2014Date of Patent: June 26, 2018Assignee: Cavium, Inc.Inventor: David Albert Carlson
-
Patent number: 10009273Abstract: 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: GrantFiled: May 27, 2016Date of Patent: June 26, 2018Assignee: Cavium, Inc.Inventors: Anh T. Tran, Gerald Schmidt, Tsahi Daniel, Harish Krishnamoorthy
-
Patent number: 10002326Abstract: 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: GrantFiled: April 14, 2014Date of Patent: June 19, 2018Assignee: Cavium, Inc.Inventors: Rajan Goyal, Satyanarayana Lakshmipathi Billa
-
Patent number: 10003676Abstract: 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: GrantFiled: February 20, 2015Date of Patent: June 19, 2018Assignee: Cavium, Inc.Inventors: Anh Tran, Tsahi Daniel, Gerald Schmidt
-
Patent number: 10002216Abstract: 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: GrantFiled: October 12, 2016Date of Patent: June 19, 2018Assignee: Cavium, Inc.Inventors: Shahid Ikram, James Ellis
-
Patent number: 10002099Abstract: 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: GrantFiled: November 13, 2014Date of Patent: June 19, 2018Assignee: Cavium, Inc.Inventors: Robert A. Sanzone, Wilson P. Snyder, II, Richard E. Kessler
-
Patent number: 10001999Abstract: 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: GrantFiled: March 13, 2015Date of Patent: June 19, 2018Assignee: Cavium, Inc.Inventors: Anh Tran, Gerald Schmidt, Harish Krishnamoorthy
-
Patent number: 10003551Abstract: 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: GrantFiled: March 30, 2015Date of Patent: June 19, 2018Assignee: Cavium, Inc.Inventor: Enrique Musoll
-
Patent number: 10002218Abstract: 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: GrantFiled: March 9, 2016Date of Patent: June 19, 2018Assignee: Cavium, Inc.Inventors: Shahid Ikram, Isam Akkawi, Richard Eugene Kessler, James Ellis, David Asher
-
Patent number: 9990324Abstract: 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: GrantFiled: October 22, 2014Date of Patent: June 5, 2018Assignee: Cavium Inc.Inventors: Guy Townsend Hutchison, Harish Krishnamoorthy, Gerald Schmidt, Vishal Anand
-
Patent number: 9985887Abstract: 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: GrantFiled: August 27, 2015Date of Patent: May 29, 2018Assignee: Cavium Inc.Inventors: Francisco J. Roncero Izquierdo, Gorka Garcia Rodriguez
-
Patent number: 9977737Abstract: 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: GrantFiled: December 25, 2013Date of Patent: May 22, 2018Assignee: Cavium, Inc.Inventors: Wilson Parkhurst Snyder, II, Anna Karen Kujtkowski
-
Patent number: 9966964Abstract: 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: GrantFiled: May 23, 2017Date of Patent: May 8, 2018Assignee: Cavium, Inc.Inventors: Scott E. Meninger, JingDong Deng
-
Patent number: 9961167Abstract: 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: GrantFiled: June 19, 2014Date of Patent: May 1, 2018Assignee: Cavium, Inc.Inventors: Chirinjeev Singh, Vishal Anand, Tsahi Daniel, Gerald Schmidt
-
Patent number: 9952800Abstract: 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: GrantFiled: March 1, 2017Date of Patent: April 24, 2018Assignee: Cavium, Inc.Inventors: Anh T. Tran, Gerald Schmidt, Tsahi Daniel, Saurabh Shrivastava
-
Patent number: 9954551Abstract: 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: GrantFiled: March 31, 2015Date of Patent: April 24, 2018Assignee: Cavium, Inc.Inventors: Premshanth Theivendran, Weihuang Wang, Sowmya Hotha, Srinath Alturi