Patents Assigned to Cavium Networks, In.
  • Patent number: 7035889
    Abstract: A method and apparatus for Montgomery multiplication comprising adding at least one multiplicand bit from a first multiplicand add multiplexer in a main array of a Montgomery multiplier with at least one modulus bit from a first modulus-add multiplexer in the main array; adding at least one modulus bit from a first modulus-add multiplexer in a quotient pre-calculation array with at least one modulus bit from a second modulus-add multiplexer in the quotient pre-calculation array; pre-calculating the quotient during a first cycle; and sending at least one value to control the first modulus-add multiplexer in the main array, the first modulus-add multiplexer in the quotient pre-calculation array, and the second modulus-add multiplexer in the quotient pre-calculation array so that the value of the quotient is evenly divisible by the radix during a second cycle through the Montgomery multiplier.
    Type: Grant
    Filed: February 6, 2002
    Date of Patent: April 25, 2006
    Assignee: Cavium Networks, Inc.
    Inventors: David A. Carlson, Vishnu V. Yalala
  • Publication number: 20060059221
    Abstract: A method and apparatus for increasing performance of a multiplication operation in a processor. The processor's instruction set includes multiply instructions that can be used to accelerate modular exponentiation. Prior to issuing a sequence of multiply instructions for the multiplication operation, a multiplier register in a multiply unit in the processor is loaded with the value of the multiplier. The multiply unit stores intermediate results of the multiplication operation in redundant format. The intermediate results are shifted and stored in the product register in the multiply unit so that carries between intermediate results are handled within the multiply unit.
    Type: Application
    Filed: January 27, 2005
    Publication date: March 16, 2006
    Applicant: Cavium Networks
    Inventor: David Carlson
  • Publication number: 20060059310
    Abstract: A RISC-type processor includes a main register file and a data cache. The data cache can be partitioned to include a local memory, the size of which can be dynamically changed on a cache block basis while the processor is executing instructions that use the main register file. The local memory can emulate as an additional register file to the processor and can reside at a virtual address. The local memory can be further partitioned for prefetching data from a non-cacheable address to be stored/loaded into the main register file.
    Type: Application
    Filed: December 17, 2004
    Publication date: March 16, 2006
    Applicant: Cavium Networks
    Inventors: David Asher, David Carlson, Richard Kessler
  • Publication number: 20060059314
    Abstract: A content aware application processing system is provided for allowing directed access to data stored in a non-cache memory thereby bypassing cache coherent memory. The processor includes a system interface to cache coherent memory and a low latency memory interface to a non-cache coherent memory. The system interface directs memory access for ordinary load/store instructions executed by the processor to the cache coherent memory. The low latency memory interface directs memory access for non-ordinary load/store instructions executed by the processor to the non-cache memory, thereby bypassing the cache coherent memory. The non-ordinary load/store instruction can be a coprocessor instruction. The memory can be a low-latency type memory. The processor can include a plurality of processor cores.
    Type: Application
    Filed: December 28, 2004
    Publication date: March 16, 2006
    Applicant: Cavium Networks
    Inventors: Gregg Bouchard, David Carlson, Richard Kessler, Muhammad Hussain
  • Publication number: 20060059316
    Abstract: A network services processor includes an input/output bridge that avoids unnecessary updates to memory when cache blocks storing processed packet data are no longer required. The input/output bridge monitors requests to free buffers in memory received from cores and 10 units in the network services processor. Instead of writing the cache block back to the buffer in memory that will be freed, the input/output bridge issues don't write back commands to a cache controller to clear the dirty bit for the selected cache block, thus avoiding wasteful write-backs from cache to memory. After the dirty bit is cleared, the buffer in memory is freed, that is, made available for allocation to store data for another packet.
    Type: Application
    Filed: January 5, 2005
    Publication date: March 16, 2006
    Applicant: Cavium Networks
    Inventors: David Asher, Gregg Bouchard, Richard Kessler, Robert Sanzone
  • Publication number: 20060059286
    Abstract: In a multi-core processor, a high-speed interrupt-signal interconnect allows more than one of the processors to be interrupted at substantially the same time. For example, a global signal interconnect is coupled to each of the multiple processors, each processor being configured to selectively provide an interrupt signal, or pulse thereon. Preferably, each of the processor cores is capable of pulsing the global signal interconnect during every clock cycle to minimize delay between a triggering event and its respective interrupt signal. Each of the multiple processors also senses, or samples the global signal interconnect, preferably during the same cycle within which the pulse was provided, to determine the existence of an interrupt signal. Upon sensing an interrupt signal, each of the multiple processors responds to it substantially simultaneously. For example, an interrupt signal sampled by each of the multiple processors causes each processor to invoke a debug handler routine.
    Type: Application
    Filed: January 25, 2005
    Publication date: March 16, 2006
    Applicant: Cavium Networks
    Inventors: Michael Bertone, David Carlson, Richard Kessler, Philip Dickinson, Muhammad Hussain, Trent Parker
  • Publication number: 20060056406
    Abstract: A method and apparatus for ordering, synchronizing and scheduling work in a multi-core network services processor is provided. Each piece of work is identified by a tag that indicates how the work is to be synchronized and ordered. Throughput is increased by processing work having different tags in parallel on different processor cores. Packet processing can be broken up into different phases, each phase having a different tag dependent on ordering and synchronization constraints for the phase. A tag switch operation initiated by a core switches a tag dependent on the phase. A dedicated tag switch bus minimizes latency for the tag switch operation.
    Type: Application
    Filed: December 6, 2004
    Publication date: March 16, 2006
    Applicant: Cavium Networks
    Inventors: Gregg Bouchard, Thomas Hummel, Richard Kessler, Muhammed Hussain, Yen Lee
  • Patent number: 6954770
    Abstract: A random number generator comprising an oscillator with an output signal dependant upon a random source, a sampling device to sample the output signal from the oscillator to obtain a sampled oscillator output, and a fixed frequency clock driven linear feedback shift register (LFSR) communicatively coupled to the sampling device via a digital gate to receive the sampled oscillator output, and to provide a random number at an output of the LFSR. Additionally, the random number generator may comprise an optional mixing function communicatively coupled to the LFSR to read the random number, and to insert the random number into an algorithm to obtain a robust random number.
    Type: Grant
    Filed: August 23, 2001
    Date of Patent: October 11, 2005
    Assignee: Cavium Networks
    Inventors: David A. Carlson, Gregg A. Bouchard, Anand Varadharajan, Derek S. Brasili
  • Patent number: 6861865
    Abstract: An apparatus is described comprising: a set of logic blocks configured to perform designated data processing functions; a set of redundant logic blocks also configured to perform the designated data processing functions; and a logic block selector module to replace one or more of the set of logic blocks with one or more of the set of redundant logic blocks according to specified logic block replacement conditions.
    Type: Grant
    Filed: March 11, 2003
    Date of Patent: March 1, 2005
    Assignee: Cavium Networks
    Inventor: David A. Carlson
  • Patent number: 6789147
    Abstract: A method and apparatus for processing security operations are described. In one embodiment, a processor includes a number of execution units to process a number of requests for security operations. The number of execution units are to output the results of the number of requests to a number of output data structures associated with the number of requests within a remote memory based on pointers stored in the number of requests. The number of execution units can output the results in an order that is different from the order of the requests in a request queue. The processor also includes a request unit coupled to the number of execution units. The request unit is to retrieve a portion of the number of requests from the request queue within the remote memory and associated input data structures for the portion of the number of requests from the remote memory.
    Type: Grant
    Filed: December 19, 2001
    Date of Patent: September 7, 2004
    Assignee: Cavium Networks
    Inventors: Richard E. Kessler, David A. Carlson, Muhammad Raghib Hussain, Robert A. Sanzone, Khaja E. Ahmed, Michael D. Varga