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: 9075735Abstract: 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: GrantFiled: August 27, 2012Date of Patent: July 7, 2015Assignee: Breakingpoint Systems, Inc.Inventors: Alexander I. Tomlinson, Brent Aaron Cook, Rodney S. Canion
-
Patent number: 8996533Abstract: 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: GrantFiled: July 3, 2012Date of Patent: March 31, 2015Assignee: BreakingPoint Systems, Inc.Inventors: Alexander I. Tomlinson, Brent Aaron Cook
-
Patent number: 8959325Abstract: 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 systeType: GrantFiled: June 21, 2012Date of Patent: February 17, 2015Assignee: BreakingPoint Systems, Inc.Inventors: Brent Aaron Cook, Jonathan Stroud
-
Patent number: 8929379Abstract: 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: GrantFiled: June 21, 2012Date of Patent: January 6, 2015Assignee: Breakingpoint Systems, Inc.Inventors: Jonathan Stroud, Michael Moriarty, Brent Aaron Cook
-
Patent number: 8891392Abstract: 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: GrantFiled: June 21, 2012Date of Patent: November 18, 2014Assignee: Breakingpoint Systems, Inc.Inventors: Brent Aaron Cook, Ryan Clifton, Kristopher Len Raney, Mark Veteikis, Michael Moriarty
-
Patent number: 8869157Abstract: 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: GrantFiled: June 21, 2012Date of Patent: October 21, 2014Assignee: Breakingpoint Systems, Inc.Inventors: Kristopher Len Raney, Eric David Goff, Brent Aaron Cook, Ryan Clifton
-
Patent number: 8848741Abstract: 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: GrantFiled: June 21, 2012Date of Patent: September 30, 2014Assignee: BreakingPoint Systems, Inc.Inventors: Brent Aaron Cook, Michael Moriarty
-
Patent number: 8824508Abstract: 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: GrantFiled: June 21, 2012Date of Patent: September 2, 2014Assignee: Breakingpoint Systems, Inc.Inventors: Jonathan Stroud, Brent Aaron Cook
-
Patent number: 8811401Abstract: 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: GrantFiled: June 21, 2012Date of Patent: August 19, 2014Assignee: BreakingPoint Systems, Inc.Inventors: Jonathan Stroud, Brent Aaron Cook
-
Publication number: 20130343387Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Jonathan Stroud, Michael Moriarty, Brent Aaron Cook
-
Publication number: 20130346415Abstract: 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: ApplicationFiled: July 3, 2012Publication date: December 26, 2013Inventors: Alexander I. Tomlinson, Brent Aaron Cook
-
Publication number: 20130343388Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Jonathan Stroud, Brent Aaron Cook
-
Publication number: 20130346628Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Rodney S. Canion, Brent Aaron Cook, Jonathan Stroud
-
Publication number: 20130343377Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Jonathan Stroud, Brent Aaron Cook
-
Publication number: 20130346987Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Kristopher Len Raney, Eric David Goff, Brent Aaron Cook, Ryan Clifton
-
Publication number: 20130343408Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Brent Aaron Cook, Michael Moriarty
-
Publication number: 20130343207Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Brent Aaron Cook, Ryan Clifton, Kristopher Len Raney, Mark Veteikis, Michael Moriarty
-
Publication number: 20130346700Abstract: 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: ApplicationFiled: August 28, 2012Publication date: December 26, 2013Inventors: Alexander I. Tomlinson, Brent Aaron Cook, Rodney S. Canion
-
Publication number: 20130343181Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Jonathan Stroud, Brent Aaron Cook
-
Publication number: 20130346736Abstract: 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 systeType: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Inventors: Brent Aaron Cook, Jonathan Stroud