Patents by Inventor Gregg Bouchard
Gregg Bouchard 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).
-
Publication number: 20130036284Abstract: A method and corresponding apparatus of managing transport operations between a first memory cluster and one or more other memory clusters, include selecting, at a clock cycle in the first memory cluster, at least one transport operation destined to at least one destination memory cluster, from one or more transport operations, based at least in part on priority information associated with the one or more transport operations or current states of available processing resources allocated to the first memory cluster in each of a subset of the one or more other memory clusters, and initiating the transport of the selected at least one transport operation.Type: ApplicationFiled: August 2, 2012Publication date: February 7, 2013Applicant: Cavium, Inc.Inventors: Najeeb I. Ansari, Gregg A. Bouchard, Rajan Goyal, Jeffrey A. Pangborn
-
Publication number: 20130036152Abstract: A packet processor provides for rule matching of packets in a network architecture. The packet processor includes a lookup cluster complex having a number of lookup engines and respective on-chip memory units. The on-chip memory stores rules for matching against packet data. A lookup front-end receives lookup requests from a host, and processes these lookup requests to generate key requests for forwarding to the lookup engines. As a result of the rule matching, the lookup engine returns a response message indicating whether a match is found. The lookup front-end further processes the response message and provides a corresponding response to the host.Type: ApplicationFiled: August 2, 2012Publication date: February 7, 2013Applicant: Cavium, Inc.Inventors: Rajan Goyal, Gregg A. Bouchard, Jeffrey R. Hardesty, Troy S. Dahlmann, Karen A. Szypulski
-
Publication number: 20130036477Abstract: In one embodiment, a method includes encoding a key matching rule having at least one dimension by storing in a memory (i) a header of the key matching rule that has at least one header field, and (ii) at least one rule value field of the key matching rule corresponding to one of the dimensions.Type: ApplicationFiled: August 2, 2012Publication date: February 7, 2013Applicant: Cavium, Inc.Inventors: Rajan Goyal, Satyanarayana Lakshmipathi Billa, Gregg A. Bouchard, Gregory E. Lund
-
Publication number: 20130036185Abstract: A method and corresponding apparatus of managing transport operations between a first memory cluster and one or more other memory clusters, include receiving, in the first cluster, information related to one or more transport operations with related data buffered in an interface device, the interface device coupling the first cluster to the one or more other clusters, selecting at least one transport operation, from the one or more transport operations, based at least in part on the received information, and executing the selected at least one transport operation.Type: ApplicationFiled: August 2, 2012Publication date: February 7, 2013Applicant: Cavium, Inc.Inventors: Najeeb I. Ansari, Gregg A. Bouchard, Rajan Goyal, Jeffrey A. Pangborn
-
Publication number: 20130034106Abstract: A packet processor provides for rule matching of packets in a network architecture. The packet processor includes a lookup cluster complex having a number of lookup engines and respective on-chip memory units. The on-chip memory stores rules for matching against packet data. Each of the lookup engines receives a key request associated with a packet and determines a subset of the rules to match against the packet data. As a result of the rule matching, the lookup engine returns a response message indicating whether a match is found.Type: ApplicationFiled: August 2, 2012Publication date: February 7, 2013Applicant: Cavium, Inc.Inventors: Rajan Goyal, Gregg A. Bouchard
-
Patent number: 8301788Abstract: A computer-readable instruction is described for traversing deterministic finite automata (DFA) graphs to perform a pattern search in the in-coming packet data in real-time. The instruction includes one or more pre-defined fields. One of the fields includes a DFA graph identifier for identifying one of several previously-stored DFA graphs. Another one of the fields includes an input reference for identifying input data to be processed using the identified DFA graphs. Yet another one of the fields includes an output reference for storing results generated responsive to the processed input data. The instructions are forwarded to a DFA engine adapted to process the input data using the identified DFA graph and to provide results as instructed by the output reference.Type: GrantFiled: September 7, 2005Date of Patent: October 30, 2012Assignee: Cavium, Inc.Inventors: Gregg A. Bouchard, David A. Carlson, Richard E. Kessler, Muhammad R. Hussain
-
Patent number: 7895431Abstract: 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: GrantFiled: December 6, 2004Date of Patent: February 22, 2011Assignee: Cavium Networks, Inc.Inventors: Gregg A. Bouchard, Thomas F. Hummel, Richard E. Kessler, Muhammed R. Hussain, Yen Lee
-
Patent number: 7814310Abstract: A method and apparatus for optimizing IPsec processing by providing execution units with windowing data during prefetch and managing coherency of security association data by management of security association accesses. Providing execution units with windowing data allows initial parallel processing of IPsec packets. The security association access ordering apparatus serializes access to the dynamic section of security association data according to packet order arrival while otherwise allowing parallel processing of the IPsec packet by multiple execution units in a security processor.Type: GrantFiled: April 12, 2003Date of Patent: October 12, 2010Assignee: Cavium NetworksInventors: Gregg A. Bouchard, Richard E. Kessler, Muhammad R. Hussain
-
Patent number: 7594081Abstract: 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: GrantFiled: December 28, 2004Date of Patent: September 22, 2009Assignee: Cavium Networks, Inc.Inventors: Gregg A. Bouchard, David A. Carlson, Richard E. Kessler, Muhammad R. Hussain
-
Patent number: 7558925Abstract: Methods and apparatus are provided for selectively replicating a data structure in a low-latency memory. The memory includes multiple individual memory banks configured to store replicated copies of the same data structure. Upon receiving a request to access the stored data structure, a low-latency memory access controller selects one of the memory banks, then accesses the stored data from the selected memory bank. Selection of a memory bank can be accomplished using a thermometer technique comparing the relative availability of the different memory banks. Exemplary data structures that benefit from the resulting efficiencies include deterministic finite automata (DFA) graphs and other data structures that are loaded (i.e., read) more often than they are stored (i.e., written).Type: GrantFiled: January 18, 2006Date of Patent: July 7, 2009Assignee: Cavium Networks, Inc.Inventors: Gregg A. Bouchard, David A. Carlson, Richard E. Kessler
-
Patent number: 7535907Abstract: A network transport layer accelerator accelerates processing of packets so that packets can be forwarded at wire-speed. To accelerate processing of packets, the accelerator performs pre-processing on a network transport layer header encapsulated in a packet for a connection and performs in-line network transport layer checksum insertion prior to transmitting a packet. A timer unit in the accelerator schedules processing of the received packets. The accelerator also includes a free pool allocator which manages buffers for storing the received packets and a packet order unit which synchronizes processing of received packets for a same connection.Type: GrantFiled: September 2, 2005Date of Patent: May 19, 2009Assignee: Oavium Networks, Inc.Inventors: Muhammad R. Hussain, Imran Badr, Faisal Masood, Philip H. Dickinson, Richard E. Kessler, Daniel A. Katz, Michael S. Bertone, Robert A. Sanzone, Thomas F. Hummel, Gregg A. Bouchard
-
Publication number: 20070038798Abstract: Methods and apparatus are provided for selectively replicating a data structure in a low-latency memory. The memory includes multiple individual memory banks configured to store replicated copies of the same data structure. Upon receiving a request to access the stored data structure, a low-latency memory access controller selects one of the memory banks, then accesses the stored data from the selected memory bank. Selection of a memory bank can be accomplished using a thermometer technique comparing the relative availability of the different memory banks. Exemplary data structures that benefit from the resulting efficiencies include deterministic finite automata (DFA) graphs and other data structures that are loaded (i.e., read) more often than they are stored (i.e., written).Type: ApplicationFiled: January 18, 2006Publication date: February 15, 2007Inventors: Gregg Bouchard, David Carlson, Richard Kessler
-
Publication number: 20060227811Abstract: A network transport layer accelerator accelerates processing of packets so that packets can be forwarded at wire-speed. To accelerate processing of packets, the accelerator performs pre-processing on a network transport layer header encapsulated in a packet for a connection and performs in-line network transport layer checksum insertion prior to transmitting a packet. A timer unit in the accelerator schedules processing of the received packets. The accelerator also includes a free pool allocator which manages buffers for storing the received packets and a packet order unit which synchronizes processing of received packets for a same connection.Type: ApplicationFiled: September 2, 2005Publication date: October 12, 2006Inventors: Muhammad Hussain, Imran Badr, Faisal Masood, Philip Dickinson, Richard Kessler, Daniel Katz, Michael Bertone, Robert Sanzone, Thomas Hummel, Gregg Bouchard
-
Publication number: 20060085533Abstract: An improved content search mechanism uses a graph that includes intelligent nodes avoids the overhead of post processing and improves the overall performance of a content processing application. An intelligent node is similar to a node in a DFA graph but includes a command. The command in the intelligent node allows additional state for the node to be generated and checked. This additional state allows the content search mechanism to traverse the same node with two different interpretations. By generating state for the node, the graph of nodes does not become exponential. It also allows a user function to be called upon reaching a node, which can perform any desired user tasks, including modifying the input data or position.Type: ApplicationFiled: September 12, 2005Publication date: April 20, 2006Inventors: Muhammad Hussain, David Carlson, Gregg Bouchard, Trent Parker
-
Publication number: 20060075206Abstract: A computer-readable instruction is described for traversing deterministic finite automata (DFA) graphs to perform a pattern search in the in-coming packet data in real-time. The instruction includes one or more pre-defined fields. One of the fields includes a DFA graph identifier for identifying one of several previously-stored DFA graphs. Another one of the fields includes an input reference for identifying input data to be processed using the identified DFA graphs. Yet another one of the fields includes an output reference for storing results generated responsive to the processed input data. The instructions are forwarded to a DFA engine adapted to process the input data using the identified DFA graph and to provide results as instructed by the output reference.Type: ApplicationFiled: September 7, 2005Publication date: April 6, 2006Inventors: Gregg Bouchard, David Carlson, Richard Kessler, Muhammad Hussain
-
Patent number: 7024533Abstract: A computer system has a memory controller that includes read buffers coupled to a plurality of memory channels. The memory controller advantageously eliminates the inter-channel skew caused by memory modules being located at different distances from the memory controller. The memory controller preferably includes a channel interface and synchronization logic circuit for each memory channel. This circuit includes read and write buffers and load and unload pointers for the read buffer. Unload pointer logic generates the unload pointer and load pointer logic generates the load pointer. The pointers preferably are free-running pointers that increment in accordance with two different clock signals. The load pointer increments in accordance with a clock generated by the memory controller but that has been routed out to and back from the memory modules.Type: GrantFiled: May 20, 2003Date of Patent: April 4, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Richard E. Kessler, Peter J. Bannon, Maurice B. Steinman, Scott E. Breach, Allen J. Baum, Gregg A. Bouchard
-
Publication number: 20060069872Abstract: A processor for traversing deterministic finite automata (DFA) graphs with incoming packet data in real-time. The processor includes at least one processor core and a DFA module operating asynchronous to the at least one processor core for traversing at least one DFA graph stored in a non-cache memory with packet data stored in a cache-coherent memory.Type: ApplicationFiled: September 7, 2005Publication date: March 30, 2006Inventors: Gregg Bouchard, David Carlson, Richard Kessler, Muhammad Hussain
-
Publication number: 20060059316Abstract: 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: ApplicationFiled: January 5, 2005Publication date: March 16, 2006Applicant: Cavium NetworksInventors: David Asher, Gregg Bouchard, Richard Kessler, Robert Sanzone
-
Publication number: 20060056406Abstract: 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: ApplicationFiled: December 6, 2004Publication date: March 16, 2006Applicant: Cavium NetworksInventors: Gregg Bouchard, Thomas Hummel, Richard Kessler, Muhammed Hussain, Yen Lee
-
Publication number: 20060059314Abstract: 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: ApplicationFiled: December 28, 2004Publication date: March 16, 2006Applicant: Cavium NetworksInventors: Gregg Bouchard, David Carlson, Richard Kessler, Muhammad Hussain