Patents Assigned to Cavium, LLC
  • Patent number: 10303626
    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: Grant
    Filed: March 31, 2015
    Date of Patent: May 28, 2019
    Assignee: Cavium, LLC.
    Inventors: Weihuang Wang, Premshanth Theivendran, Nikhil Jayakumar, Gerald Schmidt, Srinath Atluri
  • Patent number: 10303514
    Abstract: In an embodiment, a method of providing quality of service (QoS) to at least one resource of a hardware processor includes providing, in a memory of the hardware processor, a context including at least one quality of service parameter and allocating access to the at least one resource of the hardware processor based on the quality of service parameter of the context, a device identifier, a virtual machine identifier, and the context.
    Type: Grant
    Filed: November 13, 2015
    Date of Patent: May 28, 2019
    Assignee: Cavium, LLC
    Inventors: Wilson P. Snyder, II, Varada Ogale, Anna Kujtkowski, Albert Ma
  • Patent number: 10291386
    Abstract: A circuit and method enables multiple serializer/deserializer (SerDes) data lanes of a physical layer device (PHY) to operate across a broad range of diversified data rates that are independent from lane to lane. The multiple SerDes data lanes may operate at data rates independent from one another. A single low frequency clock is input to the PHY. A frequency of the single low frequency clock is increased via a common integer-N phase-locked loop (PLL) on the PHY to produce a higher frequency clock. Each of the SerDes data lanes is operated, independently, as a fractional-N PLL that employs the higher frequency clock. Use of the common integer-N PLL enables modulation noise of the fractional-N PLLs to be suppressed by moving the modulation noise to higher frequencies where a level of the modulation noise is filtered, avoiding use of high risk noise cancellation techniques.
    Type: Grant
    Filed: September 29, 2017
    Date of Patent: May 14, 2019
    Assignee: Cavium, LLC
    Inventor: Scott E. Meninger
  • Patent number: 10291540
    Abstract: A computer-implemented medium using a scheduler for processing requests by receiving packet data from multiple source ports and then classifying, the received packet data based upon the source port received and a destination port the data being sent. Next, sorting, the classified packet data into multiple queues in a buffer, and updating, a static component of one or more of the multiple queues upon the queue receiving the sorted classified data packet. Further, scheduling, using the scheduler based upon the destination port availability and a set of fairness factors including priority weights and positions, for selecting a dequeuing of data packets from a set of corresponding queues of the multiple queues, and then updating the static of the dequeued queue upon the data packet being outputted from the dequeued queue.
    Type: Grant
    Filed: November 14, 2014
    Date of Patent: May 14, 2019
    Assignee: Cavium, LLC
    Inventors: Vamsi Panchagnula, Heeloo Chung
  • Patent number: 10289575
    Abstract: A packet processing system having each of a plurality of hierarchical clients and a packet memory arbiter serially communicatively coupled together via a plurality of primary interfaces thereby forming a unidirectional client chain. This chain is then able to be utilized by all of the hierarchical clients to write the packet data to or read the packet data from the packet memory.
    Type: Grant
    Filed: February 16, 2017
    Date of Patent: May 14, 2019
    Assignee: Cavium, LLC
    Inventors: Enrique Musoll, Tsahi Daniel
  • Patent number: 10284690
    Abstract: A method for parsing network packets via one or more clusters configured to parse network packets comprises receiving one or more packets to be parsed; determining a candidate cluster of the one or more clusters for parsing the one or more packets; transmitting the one or more packets to the candidate cluster; launching the candidate cluster to parse the one or more packets when a launch condition is met; and receiving parse results for the one or more packets from the candidate cluster. The launch condition may be met after transmitting the one or more packets meets a fraction of a parsing capacity of the candidate cluster. The fraction may be one such that the transmitting the one or more packets meets a parsing capacity of the candidate cluster. The launch condition may also be met when a time elapsed since a previous cluster was launched reaches a delay limit.
    Type: Grant
    Filed: January 8, 2014
    Date of Patent: May 7, 2019
    Assignee: Cavium, LLC
    Inventors: Wilson Parkhurst Snyder, II, Daniel Adam Katz
  • Patent number: 10282299
    Abstract: Partition information includes entries that each include an entity identifier and associated cache configuration information. A controller manages memory requests originating from processor cores, including: comparing at least a portion of an address included in a memory request with tags stored in a cache to determine whether the memory request results in a hit or a miss, and comparing an entity identifier included in the memory request with stored entity identifiers to determine a matched entry. The cache configuration information associated with the entity identifier in a matched entry is updated based at least in part on a hit or miss result. The associated cache configuration information includes cache usage information that tracks usage of the cache by an entity associated with the particular entity identifier, and partition descriptors that each define a different group of one or more of the regions.
    Type: Grant
    Filed: June 23, 2017
    Date of Patent: May 7, 2019
    Assignee: Cavium, LLC
    Inventors: Shubhendu Sekhar Mukherjee, David Asher, Wilson P. Snyder, II
  • Patent number: 10282315
    Abstract: A software and hardware co-validation for SDN SoC method and system are able to be used to test software and hardware using PCIe (or another implementation) utilizing sockets and messages as the communication medium. An entire software stack as well as hardware are able to be tested. Additionally, multiple chips (SoCs) are able to be programmed at the same time, not just one, as in previous implementations.
    Type: Grant
    Filed: March 27, 2015
    Date of Patent: May 7, 2019
    Assignee: Cavium, LLC
    Inventors: Nimalan Siva, Premshanth Theivendran, Kishore Badari Atreya
  • Patent number: 10275261
    Abstract: Methods and systems for a computing device and an adapter are provided. One method includes allocating a memory location at the adapter for storing messages logged by a driver during a pre-boot operation of an operating system of the computing device coupled to the driver; generating a variable by the driver executed by the computing device, the variable includes an address of the memory location and is identified by a unique identifier; using a first application programming interface (API) by the driver for enabling message logging at the memory location during the pre-boot operation; retrieving the address of the memory location by a second API using the unique identifier of the variable; and obtaining by the second API on behalf of an application executed by the computing device, a message logged at the memory location by the driver during the pre-boot operation.
    Type: Grant
    Filed: November 29, 2016
    Date of Patent: April 30, 2019
    Assignee: Cavium, LLC
    Inventor: Lohith Anusuya Rangappa
  • Patent number: 10277510
    Abstract: In one embodiment, a system includes a data navigation unit configured to navigate through a data structure stored in a first memory to a first representation of at least one rule. The system further includes at least one rule processing unit configured to a) receive the at least one rule based on the first representation of the at least one rule from a second memory to one of the rule processing unit, and b) processing a key using the at least one rule.
    Type: Grant
    Filed: August 2, 2012
    Date of Patent: April 30, 2019
    Assignee: Cavium, LLC
    Inventors: Rajan Goyal, Gregg A. Bouchard
  • Patent number: 10263759
    Abstract: In some embodiments, the circuits (and methods) may include a reference generator configured to generate a reference signal. The circuits (and methods) may also include a signal presence detection module configured to perform calibration on itself, during a calibration phase, based upon the reference signal. The signal presence detection module may be further configured to receive an input signal. The signal presence detection module may be further configured to perform detection, during a signal amplitude detection phase, of a state of the input signal. According to some embodiments, the circuits (and methods) may include a peak detector of the signal presence detection module shared by the calibration and the detection. In some embodiments of the circuits (and methods), the reference generator may be unpowered during the signal amplitude detection phase. The calibration and the detection may share the peak detector based upon time division multiplexing.
    Type: Grant
    Filed: April 26, 2017
    Date of Patent: April 16, 2019
    Assignee: Cavium, LLC
    Inventors: Lu Wang, Scott E. Meninger
  • Patent number: 10250571
    Abstract: A new approach is proposed that contemplates systems and methods to support a mechanism to offload IPSec/IKE processing of virtual machines (VMs) running on a host to an embedded networking device, which serves as a hardware accelerator for the VMs that need to have secured communication with a remote device/server over a network. By utilizing a plurality of its software and hardware features, the embedded networking device is configured to perform all offloaded IPSec operations on data packets transferred between the host and the remote device over the network as required for the secured communication before the data packets can be transmitted over the network. The embedded networking device, in effect, acts as a proxy on behalf of the VMs running on the host to perform the offloaded IPSec operations as well as serving as the network interface for the secured communication between the VMs and the remote device.
    Type: Grant
    Filed: August 24, 2016
    Date of Patent: April 2, 2019
    Assignee: Cavium, LLC
    Inventors: Ram Kumar Manapragada, Venkat Koppula, Manojkumar Panicker
  • Patent number: 10248420
    Abstract: Managing instructions on a processor includes: executing threads having access to a stored library of operations. For a first thread executing on the first processor core, for each instruction included in the first thread and identified as being associated with a lock operation corresponding to a particular lock, the managing includes determining if the particular lock has already been acquired for another thread executing on a processor core other than the first processor core, and if so, continuing to perform the lock operation for multiple attempts using a hardware lock operation different from the lock operation in the stored library, and if not, acquiring the particular lock for the first thread. The hardware lock operation performs a modified atomic operation that changes a result of the hardware lock operation for failed attempts to acquire the particular lock relative to a result of the lock operation in the stored library.
    Type: Grant
    Filed: May 31, 2017
    Date of Patent: April 2, 2019
    Assignee: Cavium, LLC
    Inventors: Shubhendu Sekhar Mukherjee, Isam Wadih Akkawi, David Asher, Michael Bertone, David Albert Carlson, Bradley Dobbie, Richard Eugene Kessler
  • Patent number: 10235211
    Abstract: A processor device comprises a plurality of virtual systems on chip, configured to utilize resources of a plurality of resources in accordance with a resource alignment between the plurality of virtual systems on chip and the plurality of resources. The processor device may further comprises a resource aligning unit configured to modify the resource alignment, dynamically, responsive to at least one event. Modifying the resource alignment, dynamically, may prevent a loss in throughput otherwise effectuated by the at least one event.
    Type: Grant
    Filed: April 22, 2016
    Date of Patent: March 19, 2019
    Assignee: Cavium, LLC
    Inventors: Rajan Goyal, Muhammad Raghib Hussain, Richard E. Kessler
  • Patent number: 10229139
    Abstract: A system, apparatus, and method are provided for receiving one or more incremental updates including adding, deleting, or modifying rules of a Rule Compiled Data Structure (RCDS) used for packet classification. Embodiments disclosed herein may employ at least one heuristic for maintaining quality of the RCDS. At a given one of the one or more incremental updates received, a section of the RCDS may be identified and recompilation of the identified section may be triggered, altering the RCDS shape or depth in a manner detected by the at least one heuristic employed. The at least one heuristic employed enables performance and functionality of an active search process using the RCDS to be improved by advantageously determining when and where to recompile one or more sections of the RCDS being searched.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: March 12, 2019
    Assignee: CAVIUM, LLC
    Inventors: Rajan Goyal, Kenneth A. Bullis, Satyanarayana Lakshmipathi Billa
  • Patent number: 10230381
    Abstract: A frequency divider circuit comprises a first divider chain including at least one first divider cell and a second divider chain coupled to the first divider chain to form an extendable divider chain. The second divider chain includes at least one second divider cell with a respective reset control. An effective length of the extendable divider chain may be altered, dynamically, via the respective reset control. Altering the effective length, dynamically, enables a division ratio of the frequency divider circuit to be changed, dynamically. The frequency divider circuit may be advantageously employed by applications that rely upon a dynamic division ratio, such as a fractional-N (frac-N) phase-locked loop (PLL).
    Type: Grant
    Filed: May 4, 2017
    Date of Patent: March 12, 2019
    Assignee: Cavium, LLC
    Inventors: JingDong Deng, Omer O. Yildirim
  • Patent number: 10229144
    Abstract: In an embodiment, a method of updating a memory with a plurality of memory lines, the memory storing a tree, a plurality of buckets, and a plurality of rules, can include maintaining a copy of the memory with a plurality of memory lines. The method can further include writing a plurality of changes to at least one of the tree, the plurality of buckets, and the plurality of rules to the copy. The method can additionally include determining whether each of the plurality of changes is an independent write or a dependent write. The method can further include merging independent writes to the same line of the copy. The method further includes transferring updates from the plurality of lines of the copy to the plurality of lines of the memory.
    Type: Grant
    Filed: March 13, 2014
    Date of Patent: March 12, 2019
    Assignee: Cavium, LLC
    Inventors: Satyanarayana Lakshmipathi Billa, Rajan Goyal
  • Patent number: 10222817
    Abstract: A bandgap reference (BGR) circuit and method generates a constant voltage reference that is stable over temperature variations. The BGR circuit is composed of a proportional to absolute temperature (PTAT) stage, a complementary to absolute temperature (CTAT) stage, and an output stage interposed between the PTAT stage and the CTAT stage. The PTAT stage is configured to produce a PTAT current and the CTAT stage is configured to produce a CTAT current. The BGR circuit is configured to mirror the PTAT current and mirror the CTAT current to produce a mirrored PTAT current and a mirrored CTAT current in the output stage and the output stage is configured to combine the mirrored PTAT current and the mirrored CTAT current to generate the constant voltage reference.
    Type: Grant
    Filed: September 29, 2017
    Date of Patent: March 5, 2019
    Assignee: Cavium, LLC
    Inventor: JingDong Deng
  • Patent number: 10223279
    Abstract: A translation lookaside buffer stores information indicating respective page sizes for different translations. A virtual-address cache module manages entries, where each entry stores a memory block in association with a virtual address and a code representing at least one page size of a memory page on which the memory block is located. The managing includes: receiving a translation lookaside buffer invalidation instruction for invalidating at least one translation lookaside buffer entry in the translation lookaside buffer, where the translation lookaside buffer invalidation instruction includes at least one invalid virtual address; comparing selected bits of the invalid virtual address with selected bits of each of a plurality of virtual addresses associated with respective entries in the virtual-address cache module, based on the codes; and invalidating one or more entries in the virtual-address cache module based on the comparing.
    Type: Grant
    Filed: June 27, 2016
    Date of Patent: March 5, 2019
    Assignee: Cavium, LLC
    Inventors: Shubhendu Sekhar Mukherjee, Michael Bertone, David Albert Carlson
  • Patent number: 10216780
    Abstract: Embodiments of the present invention relate to a centralized table aging module that efficiently and flexibly utilizes an embedded memory resource, and that enables and facilitates separate network controllers. The centralized table aging module performs aging of tables in parallel using the embedded memory resource. The table aging module performs an age marking process and an age refreshing process. The memory resource includes age mark memory and age mask memory. Age marking is applied to the age mark memory. The age mask memory provides per-entry control granularity regarding the aging of table entries.
    Type: Grant
    Filed: August 11, 2017
    Date of Patent: February 26, 2019
    Assignee: Cavium, LLC
    Inventors: Weihuang Wang, Gerald Schmidt, Tsahi Daniel, Mohan Balan