Patents by Inventor Brent Aaron Cook

Brent Aaron Cook 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).

  • Patent number: 9075735
    Abstract: A computer-implemented method of accessing data comprises resetting the value of a register of a first processing core of a multi-core processor, copying the bits of a compressed pointer into the lowest order bits of the register, left shifting the register a predetermined number of bits, and executing on the first processing core a first instruction referencing memory at a virtual address specified by the register.
    Type: Grant
    Filed: August 27, 2012
    Date of Patent: July 7, 2015
    Assignee: Breakingpoint Systems, Inc.
    Inventors: Alexander I. Tomlinson, Brent Aaron Cook, Rodney S. Canion
  • Patent number: 8996533
    Abstract: A computer-implemented method of storing data for fast lookup comprises forming a first and a second array of pointers, forming a record to store, the record comprising fields for, a first list pointer, a second list pointer, which is not the first field in the record, a first key, and a second key. The method further comprises determining a first index based at least in part the first key, setting the value of the pointer at the first index in the first array to the location of the first pointer field of the record, determining a second index based at least in part the second key, and setting the value of the pointer at the second index in the second array to the location of the second pointer field of the record.
    Type: Grant
    Filed: July 3, 2012
    Date of Patent: March 31, 2015
    Assignee: BreakingPoint Systems, Inc.
    Inventors: Alexander I. Tomlinson, Brent Aaron Cook
  • Patent number: 8959325
    Abstract: A method for booting devices in a multi-card computing system comprising a plurality of cards connected to a shared backplane may include: dynamically generating a Media Access Control (MAC) addresses for at least some of the devices in the computing system, the dynamically generated MAC address for each device including information regarding the location of that device within the multi-card computing system; a boot management system receiving a boot-related information request from a particular device in the multi-card system, the boot-related information request comprising a request for particular boot-related information for facilitating a boot process for the requesting device, and including the MAC address of the requesting device; and the boot management system determining whether to send a response to the requesting device with the requested boot-related information based at least on the information in the MAC address regarding the location of the requesting device within the multi-card computing syste
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: February 17, 2015
    Assignee: BreakingPoint Systems, Inc.
    Inventors: Brent Aaron Cook, Jonathan Stroud
  • Patent number: 8929379
    Abstract: A method of routing internal network traffic within a computing system comprises receiving a network packet at a configurable logic device (CLD), parsing the network packet to obtain a destination address, searching a predetermined range of a routing table wherein each row of the routing table specifies a range of possible destination addresses and routing information, identifying a matching row of the routing table wherein the destination address falls within the range of possible destination addresses of the matching row, and routing the packet according to the routing information.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: January 6, 2015
    Assignee: Breakingpoint Systems, Inc.
    Inventors: Jonathan Stroud, Michael Moriarty, Brent Aaron Cook
  • Patent number: 8891392
    Abstract: An automated method for analyzing a plurality of network messages received by a network testing device is disclosed. The method may comprise, during a current window of time, receiving from a target network device a network message associated with an original network message determining a latency value for the received network message comparing the determined latency value with the threshold latency value; and incrementing either the first counter or the second counter based on the comparison of the determined latency value with a threshold latency value. The method may further comprise, at the end of the current window of time, storing the first and second counter values resulting from the analysis of the plurality of original network messages.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: November 18, 2014
    Assignee: Breakingpoint Systems, Inc.
    Inventors: Brent Aaron Cook, Ryan Clifton, Kristopher Len Raney, Mark Veteikis, Michael Moriarty
  • Patent number: 8869157
    Abstract: A method is provided for managing the execution of tasks by a system having multiple processors, each having multiple types of resources. The method may include receiving from a user a task configuration specifying one or more performance parameters for a proposed task, automatically determining for each type of resource a quantity of that resource corresponding to the performance parameters for the proposed task, automatically determining for each processor a quantity of each type of resource available to that processor, automatically comparing for processor (a) the quantity of each type of resource available to that processor with (b) the quantity of each type of resource corresponding to the performance parameters for the proposed task, automatically determining based on the comparisons whether any processor has capacity to perform the proposed task, and automatically determining whether to perform the proposed task based at least on whether any processor has capacity to perform the task.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: October 21, 2014
    Assignee: Breakingpoint Systems, Inc.
    Inventors: Kristopher Len Raney, Eric David Goff, Brent Aaron Cook, Ryan Clifton
  • Patent number: 8848741
    Abstract: A method of offloading data intensive tasks from a processor, comprises, at a processor, preparing a TCP packet comprising a TCP header and a data payload, transmitting the TCP packet to a configurable logic device (CLD); and at the CLD, receiving the TCP packet, generating set of TCP segment packets containing, a copy of the TCP header, an incrementing segment sequence identifier, and a portion of the data payload, and transmitting the set of TCP segment packets on an external network interface.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: September 30, 2014
    Assignee: BreakingPoint Systems, Inc.
    Inventors: Brent Aaron Cook, Michael Moriarty
  • Patent number: 8824508
    Abstract: A method offloading data intensive tasks from a processor comprises receiving at a configurable logic device (CLD) a network packet, parsing the network packet to determine that the packet is a TCP segment, searching a partially assembled packet table to locate an associated partially assembled packet data structure, inserting the network packet into the associated partially assembled packet data structure, recognizing that the partially assembled packet data structure contains every segment produced from an original TCP packet, assembling a fully assembled TCP packet from the data in the partially assembled packet data structure, and transmitting the fully assembled TCP packet to a processor in the same computer system as the CLD.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: September 2, 2014
    Assignee: Breakingpoint Systems, Inc.
    Inventors: Jonathan Stroud, Brent Aaron Cook
  • Patent number: 8811401
    Abstract: A method of routing internal network traffic within a computing system, comprises receiving a network packet at a configurable logic device (CLD), parsing the network packet to obtain a source address and a destination address, searching a predetermined range of a routing table wherein each row of the routing table specifies a range of possible destination addresses and a thread group identifier, identifying a matching row of the routing table wherein the destination address falls within the range of possible destination addresses of the matching row, calculating a hash value based at least in part on the source and destination addresses, and determining a thread identifier based at least in part on the hash value and the thread group identifier.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: August 19, 2014
    Assignee: BreakingPoint Systems, Inc.
    Inventors: Jonathan Stroud, Brent Aaron Cook
  • Publication number: 20130343387
    Abstract: A method of routing internal network traffic within a computing system comprises receiving a network packet at a configurable logic device (CLD), parsing the network packet to obtain a destination address, searching a predetermined range of a routing table wherein each row of the routing table specifies a range of possible destination addresses and routing information, identifying a matching row of the routing table wherein the destination address falls within the range of possible destination addresses of the matching row, and routing the packet according to the routing information.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Jonathan Stroud, Michael Moriarty, Brent Aaron Cook
  • Publication number: 20130346415
    Abstract: A computer-implemented method of storing data for fast lookup comprises forming a first and a second array of pointers, forming a record to store, the record comprising fields for, a first list pointer, a second list pointer, which is not the first field in the record, a first key, and a second key. The method further comprises determining a first index based at least in part the first key, setting the value of the pointer at the first index in the first array to the location of the first pointer field of the record, determining a second index based at least in part the second key, and setting the value of the pointer at the second index in the second array to the location of the second pointer field of the record.
    Type: Application
    Filed: July 3, 2012
    Publication date: December 26, 2013
    Inventors: Alexander I. Tomlinson, Brent Aaron Cook
  • Publication number: 20130343388
    Abstract: A method of routing internal network traffic within a computing system, comprises receiving a network packet at a configurable logic device (CLD), parsing the network packet to obtain a source address and a destination address, searching a predetermined range of a routing table wherein each row of the routing table specifies a range of possible destination addresses and a thread group identifier, identifying a matching row of the routing table wherein the destination address falls within the range of possible destination addresses of the matching row, calculating a hash value based at least in part on the source and destination addresses, and determining a thread identifier based at least in part on the hash value and the thread group identifier.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Jonathan Stroud, Brent Aaron Cook
  • Publication number: 20130346628
    Abstract: A method for assigning Media Access Control (MAC) addresses to devices of a computing system includes: for each of a plurality of devices of the computing system, determining particular information regarding that device during a boot process for that device, and dynamically generating a MAC address for each device that indicates the determined particular information regarding that device. The particular information regarding each device may include, for example, information regarding the location of the device in the system (e.g., slot information), device type information, device number information, etc.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Rodney S. Canion, Brent Aaron Cook, Jonathan Stroud
  • Publication number: 20130343377
    Abstract: A method for distributing packets across multiple parallel interfaces between a first instruction executing device and a second instruction executing device may include: the first instruction executing device receiving a stream of data packets, each data packet including header information regarding that data packet; and for each data packet, the first instruction executing device executing instructions to identify one or more particular information elements in the data packet; execute a hash function to the one or more particular information elements to calculate a hash value for the data packet; select a particular one of the multiple parallel communication interfaces based on the calculated hash value for the data packet; and forward the data packet to the second instruction executing device via the selected communication interface. Such method may provide traffic load balancing across the multiple parallel interfaces.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Jonathan Stroud, Brent Aaron Cook
  • Publication number: 20130346987
    Abstract: A method is provided for managing the execution of tasks by a system having multiple processors, each having multiple types of resources. The method may include receiving from a user a task configuration specifying one or more performance parameters for a proposed task, automatically determining for each type of resource a quantity of that resource corresponding to the performance parameters for the proposed task, automatically determining for each processor a quantity of each type of resource available to that processor, automatically comparing for processor (a) the quantity of each type of resource available to that processor with (b) the quantity of each type of resource corresponding to the performance parameters for the proposed task, automatically determining based on the comparisons whether any processor has capacity to perform the proposed task, and automatically determining whether to perform the proposed task based at least on whether any processor has capacity to perform the task.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Kristopher Len Raney, Eric David Goff, Brent Aaron Cook, Ryan Clifton
  • Publication number: 20130343408
    Abstract: A method of offloading data intensive tasks from a processor, comprises, at a processor, preparing a TCP packet comprising a TCP header and a data payload, transmitting the TCP packet to a configurable logic device (CLD); and at the CLD, receiving the TCP packet, generating set of TCP segment packets containing, a copy of the TCP header, an incrementing segment sequence identifier, and a portion of the data payload, and transmitting the set of TCP segment packets on an external network interface.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Brent Aaron Cook, Michael Moriarty
  • Publication number: 20130343207
    Abstract: An automated method for analyzing a plurality of network messages received by a network testing device is disclosed. The method may comprise, during a current window of time, receiving from a target network device a network message associated with an original network message determining a latency value for the received network message comparing the determined latency value with the threshold latency value; and incrementing either the first counter or the second counter based on the comparison of the determined latency value with a threshold latency value. The method may further comprise, at the end of the current window of time, storing the first and second counter values resulting from the analysis of the plurality of original network messages.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Brent Aaron Cook, Ryan Clifton, Kristopher Len Raney, Mark Veteikis, Michael Moriarty
  • Publication number: 20130346700
    Abstract: A method of accessing data in a shared-memory, parallel-processing computing system, comprises, on a first processing unit, receiving a reference for a data structure stored in a memory and a first value of a generation attribute associated with the data structure, waiting to receive an exclusive lock on the data structure, obtaining an exclusive lock on the data structure, receiving a second value of a second generation attribute associated with the data structure; and accessing the data structure only if the first generation attribute value and the second generation attribute value are identical.
    Type: Application
    Filed: August 28, 2012
    Publication date: December 26, 2013
    Inventors: Alexander I. Tomlinson, Brent Aaron Cook, Rodney S. Canion
  • Publication number: 20130343181
    Abstract: A method for processing data packets in a computer system may include receiving a data packet at a configurable logic device (e.g., an FPGA), each packet including header information regarding the data packet, the configurable logic device automatically identifying particular information elements in the header information of the data packet, the configurable logic device automatically executing a hash function programmed on the configurable logic device to calculate a hash value for the data packet based on the particular information elements, and processing the data packet based on the calculated hash value for the data packet. The calculate hash value may be used for various purposes, e.g., routing and/or load balancing of traffic across multiple interfaces. The configurable logic device may be able to execute the hash function at line rate, thus freeing up processor cycles in one or more related processors.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Jonathan Stroud, Brent Aaron Cook
  • Publication number: 20130346736
    Abstract: A method for booting devices in a multi-card computing system comprising a plurality of cards connected to a shared backplane may include: dynamically generating a Media Access Control (MAC) addresses for at least some of the devices in the computing system, the dynamically generated MAC address for each device including information regarding the location of that device within the multi-card computing system; a boot management system receiving a boot-related information request from a particular device in the multi-card system, the boot-related information request comprising a request for particular boot-related information for facilitating a boot process for the requesting device, and including the MAC address of the requesting device; and the boot management system determining whether to send a response to the requesting device with the requested boot-related information based at least on the information in the MAC address regarding the location of the requesting device within the multi-card computing syste
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Inventors: Brent Aaron Cook, Jonathan Stroud