Patents by Inventor Robert Hathaway
Robert Hathaway 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: 20260067235Abstract: Examples described herein relate to a network interface device comprising a host interface; a direct memory access (DMA) circuitry; a network interface; and circuitry to: based on at least partial processing of packets by a transmit packet processing pipeline, perform reordering of the packets based on associated egress time stamps, wherein the partial processing of the packets by the transmit packet processing pipeline comprises at least packet parsing and provide the packets for egress from a port based on the associated egress time stamps.Type: ApplicationFiled: November 5, 2025Publication date: March 5, 2026Inventors: Sarig LIVNE, Robert HATHAWAY, Nizan MIRON
-
Patent number: 12160369Abstract: A compute device can access local or remote accelerator devices for use in processing a received packet. The received packet can be processed by any combination of local accelerator devices and remote accelerator devices. In some cases, the received packet can be encapsulated in an encapsulating packet and sent to a remote accelerator device for processing. The encapsulating packet can indicate a priority level for processing the received packet and its associated processing task. The priority level can override a priority level that would otherwise be assigned to the received packet and its associated processing task. The remote accelerator device can specify a fullness of an input queue to the compute device. Other information can be conveyed by packets transmitted between and among compute devices and remote accelerator devices to assist in determining an accelerator to use or other uses.Type: GrantFiled: February 15, 2019Date of Patent: December 3, 2024Assignee: Intel CorporationInventors: Chih-Jen Chang, Daniel Christian Biederman, Matthew James Webb, Wing Cheung, Jose Niell, Robert Hathaway
-
Publication number: 20210288910Abstract: Examples described herein relate to a network interface device and in some examples, the network interface device includes an Ethernet interface, a host interface, circuitry to be configured to copy a packet payload from a host device through the host interface, form a packet based on the packet payload, and transmit the packet through the Ethernet interface, and circuitry to be configured to apply rate limiting and/or traffic shaping for packets received through the Ethernet interface based on hierarchical quality of service (H-QoS).Type: ApplicationFiled: May 27, 2021Publication date: September 16, 2021Inventors: Daniel DALY, Anjali Singhai JAIN, Chih-Jen CHANG, Edmund CHEN, Robert HATHAWAY, Naru Dames SUNDAR, Pawel SZYMANSKI, John MANGAN
-
Patent number: 10747457Abstract: Technologies for processing network packets in an agent-mesh architecture include a network interface controller (NIC) of a computing device configured to write, by a network fabric interface of a memory fabric of the NIC, a received network packet to the memory fabric in a distributed fashion. The network fabric interface is configured to send an event message indicating the received network packet to a packet processor communicatively coupled to the memory fabric. The packet processor is configured to read, in response to having received the generated event message, at least a portion of the received network packet from the memory fabric, identify an agent of the NIC for additional processing of the received network packet, generate a network packet received event message indicating the received network packet is available for processing, and transmit the network packet received event message to the identified agent. Other embodiments are described herein.Type: GrantFiled: September 29, 2017Date of Patent: August 18, 2020Assignee: Intel CorporationInventors: Brad Burres, Ronen Chayat, Alain Gravel, Robert Hathaway, Amit Y. Kumar, Jose Niell, Nadav Turbovich
-
Publication number: 20190207868Abstract: A compute device can access local or remote accelerator devices for use in processing a received packet. The received packet can be processed by any combination of local accelerator devices and remote accelerator devices. In some cases, the received packet can be encapsulated in an encapsulating packet and sent to a remote accelerator device for processing. The encapsulating packet can indicate a priority level for processing the received packet and its associated processing task. The priority level can override a priority level that would otherwise be assigned to the received packet and its associated processing task. The remote accelerator device can specify a fullness of an input queue to the compute device. Other information can be conveyed by packets transmitted between and among compute devices and remote accelerator devices to assist in determining an accelerator to use or other uses.Type: ApplicationFiled: February 15, 2019Publication date: July 4, 2019Inventors: Chih-Jen CHANG, Daniel Christian BIEDERMAN, Matthew James WEBB, Wing CHEUNG, Jose NIELL, Robert HATHAWAY
-
Publication number: 20180152383Abstract: Technologies for processing network packets in an agent-mesh architecture include a network interface controller (NIC) of a computing device configured to write, by a network fabric interface of a memory fabric of the NIC, a received network packet to the memory fabric in a distributed fashion. The network fabric interface is configured to send an event message indicating the received network packet to a packet processor communicatively coupled to the memory fabric. The packet processor is configured to read, in response to having received the generated event message, at least a portion of the received network packet from the memory fabric, identify an agent of the NIC for additional processing of the received network packet, generate a network packet received event message indicating the received network packet is available for processing, and transmit the network packet received event message to the identified agent. Other embodiments are described herein.Type: ApplicationFiled: September 29, 2017Publication date: May 31, 2018Inventors: Brad Burres, Ronen Chayat, Alain Gravel, Robert Hathaway, Amit Y. Kumar, Jose Niell, Nadav Turbovich
-
Patent number: 9419911Abstract: A method for packet job scheduler in data processing based on workload self-learning is disclosed. In response to receiving an incoming packet, the packet processor checks workload usage of an isolation group (IG) associated with the incoming packet, the IG being a classification of packets defined for the purpose of processing the incoming packet. The packet processor then determines whether the workload usage of the IG associated with the incoming packet exceeds a predetermined threshold. In response to the workload usage of the IG associated with the incoming packet not exceeding the predetermined threshold, the packet processor forwards the incoming packet to be executed by a packet execution unit, and then it updates the workload usage of the IG associated with the incoming packet based on execution of the incoming packet by the packet execution unit.Type: GrantFiled: December 28, 2012Date of Patent: August 16, 2016Assignee: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)Inventors: Edward Ho, Robert Hathaway, Michael Feng, Edmund C. Chen, Stephan Meier, Jayaram Beladakere
-
Patent number: 9317289Abstract: A method for processing data packets in a pipeline and executed by a network processor. The pipeline includes a plurality of logical blocks, each logical block configured to process one stage of the pipeline. Each data packet includes a descriptor and a data. The network processor is coupled to a resource for storing the data. The method reduces latency and enables non-blocking processing of data packets by forwarding a unique identification of a write request from a first logical block to a subsequent second logical block in the pipeline, the write request to modify the data in the resource. The method includes receiving the descriptor for processing at the first logical block, generating the write request and the unique identification for the write request, transmitting the write request to the resource, and transmitting the unique identification towards the second logical block before an acknowledgement is returned by the resource.Type: GrantFiled: December 28, 2012Date of Patent: April 19, 2016Assignee: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)Inventors: Michael Feng, Edward Ho, Edmund C. Chen, Robert Hathaway
-
Patent number: 9311148Abstract: Methods and apparatus for pseudo-random hardware resource allocation through a plurality of hardware elements. In an embodiment, resource list entries are configured to each identify one hardware element of the plurality of hardware elements. Index list entries are configured to each identify one resource list entry. An index list pointer is set to identify a first index list entry of the plurality of index list entries, and hardware resources are requested from a first hardware element of the plurality of hardware elements by identifying, using the index list pointer, the first index list entry; identifying, using the first index list entry, a first resource list entry; selecting the hardware element identified by the first resource list entry as the first hardware element; and sending a request for hardware resources to the first hardware element.Type: GrantFiled: December 20, 2012Date of Patent: April 12, 2016Assignee: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)Inventors: Robert Hathaway, Yaw Fann, Ricky See
-
Patent number: 9083628Abstract: A network content service apparatus includes a set of compute elements adapted to perform a set of network services; and a switching fabric coupling compute elements in said set of compute elements. The set of network services includes firewall protection, Network Address Translation, Internet Protocol forwarding, bandwidth management, Secure Sockets Layer operations, Web caching, Web switching, and virtual private networking. Code operable on the compute elements enables the network services, and the compute elements are provided on blades which further include at least one input/output port.Type: GrantFiled: February 4, 2013Date of Patent: July 14, 2015Assignee: Juniper Networks, Inc.Inventors: Mark Bryers, Elango Ganesan, Frederick Gruner, David Hass, Robert Hathaway, Ramesh Panwar, Ricardo Ramirez, Abbas Rashid, Mark Vilas, Nazar Zaidi, Yen Lee, Chau Anh Ngoc Nguyen, John Phillips, Yuhong Zhou, Gregory G. Spurrier, Sankar Ramanoorthi, Michael Freed
-
Patent number: 8914581Abstract: A request for reading data from a memory location of a main memory is received, the memory location being identified by a physical memory address. In response to the request, a cache memory is accessed based on the physical memory address to determine whether the cache memory contains the data being requested. The data associated with the request is returned from the cache memory without accessing the memory location if there is a cache hit. The data associated is returned from the main memory if there is a cache miss. In response to the cache miss, it is determined whether there have been a number of accesses within a predetermined period of time. A cache entry is allocated from the cache memory to cache the data if there have been a predetermined number of accesses within the predetermined period of time.Type: GrantFiled: May 20, 2010Date of Patent: December 16, 2014Assignee: Telefonaktiebolaget L M Ericsson (Publ)Inventors: Robert Hathaway, Evan Gewirtz
-
Publication number: 20140189083Abstract: A method for packet job scheduler in data processing based on workload self-learning is disclosed. In response to receiving an incoming packet, the packet processor checks workload usage of an isolation group (IG) associated with the incoming packet, the IG being a classification of packets defined for the purpose of processing the incoming packet. The packet processor then determines whether the workload usage of the IG associated with the incoming packet exceeds a predetermined threshold. In response to the workload usage of the IG associated with the incoming packet not exceeding the predetermined threshold, the packet processor forwards the incoming packet to be executed by a packet execution unit, and then it updates the workload usage of the IG associated with the incoming packet based on execution of the incoming packet by the packet execution unit.Type: ApplicationFiled: December 28, 2012Publication date: July 3, 2014Applicant: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)Inventors: EDWARD HO, ROBERT HATHAWAY, MICHAEL FENG, EDMUND C. CHEN, STEPHAN MEIER, JAYARAM BELADAKERE
-
Publication number: 20140181474Abstract: Methods and apparatus for performing an atomic hardware operation (HWOP) instruction. According to a method in a computer processor coupled to a memory, the method includes fetching, decoding, and executing the atomic HWOP instruction. The instruction includes a source operand indicating a source location and a destination operand indicating a destination location, wherein each of the source location and the destination location is either a register of the computer processor or an address of the memory. Executing the atomic HWOP instruction includes sending a message to an external agent to cause the external agent to atomically access a set of one or more memory locations of the memory based upon a value stored at the source location, and return a result obtained from said atomic access of the set of memory locations to the destination location. The external agent is external to the computer processor.Type: ApplicationFiled: December 26, 2012Publication date: June 26, 2014Applicant: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)Inventors: EVAN GEWIRTZ, ROBERT HATHAWAY, EDWARD HO, STEPHAN MEIER
-
Publication number: 20140181829Abstract: Methods and apparatus for pseudo-random hardware resource allocation through a plurality of hardware elements. In an embodiment, resource list entries are configured to each identify one hardware element of the plurality of hardware elements. Index list entries are configured to each identify one resource list entry. An index list pointer is set to identify a first index list entry of the plurality of index list entries, and hardware resources are requested from a first hardware element of the plurality of hardware elements by identifying, using the index list pointer, the first index list entry; identifying, using the first index list entry, a first resource list entry; selecting the hardware element identified by the first resource list entry as the first hardware element; and sending a request for hardware resources to the first hardware element.Type: ApplicationFiled: December 20, 2012Publication date: June 26, 2014Applicant: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)Inventors: ROBERT HATHAWAY, YAW FANN, RICKY SEE
-
Patent number: 8700874Abstract: A method performed in a memory controller for maintaining segmented counters split into primary and secondary memories, the primary memory faster. Events occur that require incrementing one of the segmented counters and the memory controller responds by incrementing a corresponding primary part in the primary memory. Each time a primary part is rolling over the memory controller determines that a secondary part should be updated. Also, the memory controller periodically determines that the secondary part of a segmented counter should be opportunistically updated. The opportunistic update is based on a probability function and a random number. The secondary part includes at least all of bits of the segmented counter not in the primary part and is stored in the secondary memory. Each time an update to the secondary part occurs, both the secondary part and primary part of the segmented counter must be updated.Type: GrantFiled: September 24, 2010Date of Patent: April 15, 2014Assignee: Telefonaktiebolaget L M Ericsson (Publ)Inventors: Edmund G. Chen, Brian Alleyne, Robert Hathaway, Ranjit J. Rozario, Todd D. Basso
-
Digital processor for processing long and short pointers and converting each between a common format
Patent number: 8656139Abstract: A digital processor stores pointers of different sizes in memory. The processor, specifically, executes instructions to store a long or short pointer. Long pointers reference any address in the memory's logical address space, while short pointers merely reference any address in a subset of that space. However, short pointers are smaller in size as stored in memory than long pointers. Long pointers thus support relatively large address range capabilities, while short pointers use less memory. The processor also executes instructions to load a long or short pointer into the register file, and does so in a way that does not require the processor to distinguish between the different pointers when executing other instructions. Specifically, the processor converts long and short pointers into a common format for loading into the register file, and converts pointers in the common format back into long or short pointers for storing in the memory.Type: GrantFiled: March 11, 2011Date of Patent: February 18, 2014Assignee: Telefonaktiebolaget L M Ericsson (publ)Inventors: Stephan Meier, John G. Favor, Evan Gewirtz, Robert Hathaway, Eric Trehus -
Patent number: 8402248Abstract: A network element that includes multiple memory types and memory sizes translates a logical memory address into a physical memory address. A memory access request is received for a data structure with a logical memory address that includes a region identifier that identifies a region that is mapped to one or more memories and is associated with a set of one or more region attributes whose values are based on processing requirements provided by a software programmer and the available memories of the network element. The network element accesses the region mapping table entry corresponding to the region identifier and, using the region attributes that are associated with the region, determines an access target for the request, determines a physical memory address offset within the access target, and generates a physical memory address. The access target includes a target class of memory, an instance within the class of memory, and a particular physical address space of the instance within the class of memory.Type: GrantFiled: December 31, 2010Date of Patent: March 19, 2013Assignee: Telefonaktiebolaget L M Ericsson (Publ)Inventors: Stephan Meier, Robert Hathaway, Evan Gewirtz, Brian Alleyne, Edward Ho
-
Patent number: 8370528Abstract: A network content service apparatus includes a set of compute elements adapted to perform a set of network services; and a switching fabric coupling compute elements in said set of compute elements. The set of network services includes firewall protection, Network Address Translation, Internet Protocol forwarding, bandwidth management, Secure Sockets Layer operations, Web caching, Web switching, and virtual private networking. Code operable on the compute elements enables the network services, and the compute elements are provided on blades which further include at least one input/output port.Type: GrantFiled: July 26, 2010Date of Patent: February 5, 2013Assignee: Juniper Networks, Inc.Inventors: Mark Bryers, Elango Ganesan, Frederick Gruner, David Hass, Robert Hathaway, Ramesh Panwar, Ricardo Ramirez, Abbas Rashid, Mark Vilas, Yen Lee, John Phillips, Yuhong Andy Zhou, Gregory G. Spurrier, Sankar Ramanoorthi, Michael Freed
-
Publication number: 20120233414Abstract: A digital processor stores pointers of different sizes in memory. The processor, specifically, executes instructions to store a long or short pointer. Long pointers reference any address in the memory's logical address space, while short pointers merely reference any address in a subset of that space. However, short pointers are smaller in size as stored in memory than long pointers. Long pointers thus support relatively large address range capabilities, while short pointers use less memory. The processor also executes instructions to load a long or short pointer into the register file, and does so in a way that does not require the processor to distinguish between the different pointers when executing other instructions. Specifically, the processor converts long and short pointers into a common format for loading into the register file, and converts pointers in the common format back into long or short pointers for storing in the memory.Type: ApplicationFiled: March 11, 2011Publication date: September 13, 2012Inventors: Stephan Meier, John G. Favor, Evan Gewirtz, Robert Hathaway, Eric Trehus
-
Publication number: 20120173841Abstract: A network element that includes multiple memory types and memory sizes translates a logical memory address into a physical memory address. A memory access request is received for a data structure with a logical memory address that includes a region identifier that identifies a region that is mapped to one or more memories and is associated with a set of one or more region attributes whose values are based on processing requirements provided by a software programmer and the available memories of the network element. The network element accesses the region mapping table entry corresponding to the region identifier and, using the region attributes that are associated with the region, determines an access target for the request, determines a physical memory address offset within the access target, and generates a physical memory address. The access target includes a target class of memory, an instance within the class of memory, and a particular physical address space of the instance within the class of memory.Type: ApplicationFiled: December 31, 2010Publication date: July 5, 2012Inventors: Stephan Meier, Robert Hathaway, Evan Gewirtz, Brian Alleyne, Edward Ho