Patents by Inventor David Riddoch
David Riddoch 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: 20250211546Abstract: Described herein are systems and methods for scalable communications. A circuit can receive a request from an application to communicate with a destination over a network. The circuit can identify the destination from information included in the request. In a first case that resources have been allocated for communicating with the destination identified from the request, the circuit can communicate data to the destination over the network using the resources that have been allocated. In a second case that resources have not been allocated for communicating with the destination identified from the request, the circuit can allocate resources for communicating the data with the destination. The circuit can communicate the data to the destination over the network using the resources that have been allocated.Type: ApplicationFiled: December 22, 2023Publication date: June 26, 2025Applicant: Xilinx, Inc.Inventors: Ripduman Sohan, David Riddoch, Steven Pope
-
Publication number: 20250147799Abstract: A computer-implemented method for task management can include managing performance of a task on a message by a plurality of circuits. In some aspects, the task can comprise a sequence of processings to be performed on the message and each circuit of the plurality of circuits performing a processing of the sequence of processings. In some aspects, the method can include routing, based on the sequence, a first information regarding the task to a first circuit of the plurality of circuits to perform a first processing of the sequence of processings on the message; receiving, from the first circuit, an output of the first processing; and routing, based on the sequence of processings identified for the task, a second information regarding the task to a second circuit of the plurality of circuits to perform a second processing that follows the first processing in the sequence of processings.Type: ApplicationFiled: November 3, 2023Publication date: May 8, 2025Applicant: Xilinx, Inc.Inventors: Thomas Calvert, Ripduman Sohan, Dmitri Kitariev, Kimon Karras, Stephan Diestelhorst, Neil Turton, David Riddoch, Derek Roberts, Kieran Mansley, Steven Pope
-
Publication number: 20250112933Abstract: Described herein are systems and methods for managing error detection in a message. A circuit can identify, based on an error detection configuration of the at least one circuit, a first portion of the message to be checked for errors before a second portion of the message is available to the at least one circuit, the first portion being less than all of the message to be checked for one or more errors. A circuit can analyze a number of bits of the first portion of the message using the at least one circuit and based on the error detection configuration. A circuit can, based on analyzing the first portion, determine whether the message includes the one or more errors. Various other methods, systems, and computer-readable media are also disclosed.Type: ApplicationFiled: September 29, 2023Publication date: April 3, 2025Applicant: Xilinx, Inc.Inventors: David Andrews, David Lawrie, Victor Wu, Po-Ching Sun, Dmitri Kitariev, David Riddoch
-
Publication number: 20250004941Abstract: A computer-implemented method for memory management can include identifying a set of one or more memory blocks of virtual memory to be allocated for storage of a content into a plurality of memory banks that subdivide physical memory. The method can include storing the content in the set of one or more memory blocks of virtual memory. The method can include assigning an identifier to the set of one or more memory blocks of virtual memory that store the content. The method can include outputting the identifier for the set of one or more memory blocks of virtual memory. Various other methods, systems, and computer-readable media are also disclosed.Type: ApplicationFiled: June 30, 2023Publication date: January 2, 2025Applicant: Xilinx, Inc.Inventors: Duncan Andrew Cockburn, David James Fraser, Inaki Ormaetxea, Gareth David Edwards, Dmitri Kitariev, David Riddoch, Victor Wu
-
Publication number: 20250004782Abstract: A computer-implemented method for managing processing order for a plurality of commands can include in response to receiving each command of a plurality of commands in a receipt order, assigning each respective command of the plurality of commands to a respective processing queue of a plurality of processing queues to be processed, and setting, for each of the plurality of commands and in the receipt order, an identifier based on the respective queue assigned to each of the plurality of commands, and managing, based on the identifiers for each of the plurality of commands in the receipt order, an order of processing of each of the plurality of commands from the respective processing queue of the plurality of processing queues. Various other methods, systems, and computer-readable media are also disclosed.Type: ApplicationFiled: June 30, 2023Publication date: January 2, 2025Applicant: Xilinx, Inc.Inventors: Mark Richard Nethercot, Martin Rhodes, Ricardo Gonzalez Toral, Colin Stirling, Dmitri Kitariev, David Riddoch
-
Publication number: 20250007684Abstract: A computer-implemented method for managing channel accessibility can include detecting, by a first circuit, a transmit request from the first circuit to transmit a message into a communication channel connecting the first circuit to second circuit. The method can include determining, by the first circuit, whether to approve the transmit request based on an evaluation of a first number associated with messages previously transmitted by the first circuit to the second circuit over the communication channel and a second number associated with processing by the second circuit of the messages previously transmitted by the first circuit. The method can include, in response to determining to approve the transmit request, transmitting, by the first circuit, the message into the communication channel. Various other methods, systems, and computer-readable media are also disclosed.Type: ApplicationFiled: June 30, 2023Publication date: January 2, 2025Applicant: Xilinx, Inc.Inventors: Mark Richard Nethercot, Martin Rhodes, David Riddoch, Connor Hughes, Gareth David Edwards
-
Patent number: 10015104Abstract: A method for controlling the processing of data in a data processor such that the data processor is connectable to a further device over a data link. The method comprising the steps of receiving data at an element of the data processor and if a set interval has elapsed following the receipt of the data, determining whether processing of the received data in accordance with a data transfer protocol has begun, and, if it has not, triggering such processing of the received data by a protocol processing element. The method then senses conditions pertaining to the data link and sets the interval in dependence on the sensed conditions.Type: GrantFiled: March 25, 2016Date of Patent: July 3, 2018Assignee: Solarflare Communications, Inc.Inventors: Steven Pope, David Riddoch
-
Patent number: 9800513Abstract: A network interface device for connection between a network and a data processing system, the network interface device comprising: a plurality of ports for receiving data packets directed to the data processing system. An interface services the ports in a predetermined order and writes the data packets to buffers of a common memory. Each buffer is part of one of a set of linked logical sequence of buffers forming virtual queues in the common memory. Each virtual queue is associated with a port. A memory manager selects buffers of the common memory so as to cause the interface to populate the plurality of virtual queues with data packets.Type: GrantFiled: March 24, 2015Date of Patent: October 24, 2017Assignee: Solarflare Communications, Inc.Inventors: Steven L. Pope, David Riddoch, Dmitri Kitariev
-
Patent number: 9778963Abstract: A method and data processing system are provided. The data processing system comprises an application associated with a plurality of sockets and a sub-system for making data available to the application via the plurality of sockets. The sub-system is configured to provide in response to a request from the application: an indication of events that have occurred on one or more of the plurality of sockets; and an indication of an order in which the events should be processed.Type: GrantFiled: March 31, 2014Date of Patent: October 3, 2017Assignee: Solarflare Communications, Inc.Inventors: Steve Pope, David Riddoch, Kieran Mansley, Sian Cathryn James
-
Publication number: 20160212058Abstract: A method for controlling the processing of data in a data processor such that the data processor is connectable to a further device over a data link. The method comprising the steps of receiving data at an element of the data processor and if a set interval has elapsed following the receipt of the data, determining whether processing of the received data in accordance with a data transfer protocol has begun, and, if it has not, triggering such processing of the received data by a protocol processing element. The method then senses conditions pertaining to the data link and sets the interval in dependence on the sensed conditions.Type: ApplicationFiled: March 25, 2016Publication date: July 21, 2016Inventors: Steven Pope, David Riddoch
-
Patent number: 9319340Abstract: A method for controlling the processing of data in a data processor such that the data processor is connectable to a further device over a data link. The method comprising the steps of receiving data at an element of the data processor and if a set interval has elapsed following the receipt of the data, determining whether processing of the received data in accordance with a data transfer protocol has begun, and, if it has not, triggering such processing of the received data by a protocol processing element. The method then senses conditions pertaining to the data link and sets the interval in dependence on the sensed conditions.Type: GrantFiled: October 2, 2012Date of Patent: April 19, 2016Assignee: Solarflare Communications, Inc.Inventors: Steven Pope, David Riddoch
-
Patent number: 9304825Abstract: A data processing system supporting a network interface device and comprising: a plurality of sets of one or more data processing cores; and an operating system arranged to support at least one socket operable to accept data received from the network, the data belonging to one of a plurality of data flows; wherein the socket is configured to provide an instance of at least some of the state associated with the data flows per said set of data processing cores.Type: GrantFiled: February 4, 2009Date of Patent: April 5, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve Pope, David Riddoch
-
Patent number: 9256560Abstract: Roughly described, a data processing system comprises a central processing unit and a split network interface functionality, the split network interface functionality comprising: a first sub-unit collocated with the central processing unit and configured to at least partially form a series of network data packets for transmission to a network endpoint by generating data link layer information for each of those packets; and a second sub-unit external to the central processing unit and coupled to the central processing unit via an interconnect, the second sub-unit being configured to physically signal the series of network data packets over a network.Type: GrantFiled: January 14, 2010Date of Patent: February 9, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David Riddoch, Derek Roberts
-
Patent number: 9210140Abstract: A network interface device providing a set of functions in hardware and being operable in first and second modes: in a first mode, the network interface device being configured to operate with a selected configuration of the set of functions; and in a second mode, the network interface device being operable to select a particular configuration of the set of functions in accordance with configuration instructions received at the network interface device; the network interface device being configured to, on receiving a network message having one or more predetermined characteristics and comprising an authentication key and one or more configuration instructions defining a particular configuration of the set of functions: verify the authentication key; and if the authentication key is successfully verified, select the particular configuration of the set of functions defined in the configuration instructions of the network message.Type: GrantFiled: August 17, 2010Date of Patent: December 8, 2015Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David Riddoch
-
Publication number: 20150277997Abstract: A method and data processing system are provided. The data processing system comprises an application associated with a plurality of sockets and a sub-system for making data available to the application via the plurality of sockets. The sub-system is configured to provide in response to a request from the application: an indication of events that have occurred on one or more of the plurality of sockets; and an indication of an order in which the events should be processed.Type: ApplicationFiled: March 31, 2014Publication date: October 1, 2015Applicant: Solarflare Communications, Inc.Inventors: Steve Pope, David Riddoch, Kieran Mansley, Sian Cathryn James
-
Patent number: 9124539Abstract: Roughly described, a header processing engine for a network interface device has a header recognizer to parse the headers of a data packet stored at a buffer to identify the type and position of each header in the packet; a constructor unit; and a processor including an execution pipeline. The header recognizer is configured to, for each header: select in dependence on the header type commands stored at a command memory; and form one or more messages for the constructor unit identifying the selected commands and the position of the header in the data packet. The commands selected for the packet headers are collectively such as to, if executed by the constructor unit, cause the constructor unit to generate a data structure which operates to cause the processor to process of the packet headers without accessing the data packet at the buffer.Type: GrantFiled: April 24, 2014Date of Patent: September 1, 2015Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts
-
Publication number: 20150200866Abstract: A network interface device for connection between a network and a data processing system, the network interface device comprising: an I/O interface for connection to a data processing system; a set of physical data ports for connection to a network; a unified memory comprising a plurality of buffers; a plurality of ingress ports operable to receive data packets for buffering at the unified memory, a first subset of the plurality of ingress ports being configured to receive data packets on a transmit path from said I/O interface, and a second subset of the plurality of ingress ports being configured to receive data packets on a receive path from said set of physical data ports; a memory manager configured to store representations of a plurality of virtual queues held in the unified memory, each virtual queue being a linked logical sequence of buffers of the unified memory; and an ingress interface configured to service the ingress ports in a predetermined order and write data packets received at the ingress poType: ApplicationFiled: March 24, 2015Publication date: July 16, 2015Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVEN L. POPE, DAVID RIDDOCH, DMITRI KITARIEV
-
Patent number: 9043671Abstract: A method of transmitting data according to a data transmission protocol wherein the data is transmitted as a plurality of data frames and each data frame includes an error checking field comprising at least two sub-fields, the data of the first sub-field being formed by a first error checking method performed on data of the frame and the data of the second sub-field being formed by a second error checking method performed on the said data of the frame, the first and second methods being such that the data of the first sub-field has different error checking properties from those of the data of the second sub-field.Type: GrantFiled: March 21, 2011Date of Patent: May 26, 2015Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Derek Roberts, David Riddoch, David Clarke
-
Patent number: 9008113Abstract: A network interface device for connection between a network and a data processing system, the network interface device comprising: an I/O interface for connection to a data processing system; a set of physical data ports for connection to a network; a unified memory comprising a plurality of buffers; a plurality of ingress ports operable to receive data packets for buffering at the unified memory, a first subset of the plurality of ingress ports being configured to receive data packets on a transmit path from said I/O interface, and a second subset of the plurality of ingress ports being configured to receive data packets on a receive path from said set of physical data ports; a memory manager configured to store representations of a plurality of virtual queues held in the unified memory, each virtual queue being a linked logical sequence of buffers of the unified memory; and an ingress interface configured to service the ingress ports in a predetermined order and write data packets received at the ingress poType: GrantFiled: March 24, 2011Date of Patent: April 14, 2015Assignee: Solarflare Communications, Inc.Inventors: Steven L. Pope, David Riddoch, Dmitri Kitariev
-
Publication number: 20140233571Abstract: Roughly described, a header processing engine for a network interface device has a header recognizer to parse the headers of a data packet stored at a buffer to identify the type and position of each header in the packet; a constructor unit; and a processor including an execution pipeline. The header recognizer is configured to, for each header: select in dependence on the header type commands stored at a command memory; and form one or more messages for the constructor unit identifying the selected commands and the position of the header in the data packet. The commands selected for the packet headers are collectively such as to, if executed by the constructor unit, cause the constructor unit to generate a data structure which operates to cause the processor to process of the packet headers without accessing the data packet at the buffer.Type: ApplicationFiled: April 24, 2014Publication date: August 21, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts