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).

  • Patent number: 10015104
    Abstract: 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: Grant
    Filed: March 25, 2016
    Date of Patent: July 3, 2018
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven Pope, David Riddoch
  • Patent number: 9800513
    Abstract: 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: Grant
    Filed: March 24, 2015
    Date of Patent: October 24, 2017
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David Riddoch, Dmitri Kitariev
  • Patent number: 9778963
    Abstract: 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: Grant
    Filed: March 31, 2014
    Date of Patent: October 3, 2017
    Assignee: Solarflare Communications, Inc.
    Inventors: Steve Pope, David Riddoch, Kieran Mansley, Sian Cathryn James
  • Publication number: 20160212058
    Abstract: 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: Application
    Filed: March 25, 2016
    Publication date: July 21, 2016
    Inventors: Steven Pope, David Riddoch
  • Patent number: 9319340
    Abstract: 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: Grant
    Filed: October 2, 2012
    Date of Patent: April 19, 2016
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven Pope, David Riddoch
  • Patent number: 9304825
    Abstract: 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: Grant
    Filed: February 4, 2009
    Date of Patent: April 5, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve Pope, David Riddoch
  • Patent number: 9256560
    Abstract: 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: Grant
    Filed: January 14, 2010
    Date of Patent: February 9, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David Riddoch, Derek Roberts
  • Patent number: 9210140
    Abstract: 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: Grant
    Filed: August 17, 2010
    Date of Patent: December 8, 2015
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David Riddoch
  • Publication number: 20150277997
    Abstract: 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: Application
    Filed: March 31, 2014
    Publication date: October 1, 2015
    Applicant: Solarflare Communications, Inc.
    Inventors: Steve Pope, David Riddoch, Kieran Mansley, Sian Cathryn James
  • Patent number: 9124539
    Abstract: 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: Grant
    Filed: April 24, 2014
    Date of Patent: September 1, 2015
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts
  • Publication number: 20150200866
    Abstract: 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 po
    Type: Application
    Filed: March 24, 2015
    Publication date: July 16, 2015
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID RIDDOCH, DMITRI KITARIEV
  • Patent number: 9043671
    Abstract: 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: Grant
    Filed: March 21, 2011
    Date of Patent: May 26, 2015
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Derek Roberts, David Riddoch, David Clarke
  • Patent number: 9008113
    Abstract: 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 po
    Type: Grant
    Filed: March 24, 2011
    Date of Patent: April 14, 2015
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David Riddoch, Dmitri Kitariev
  • Publication number: 20140233571
    Abstract: 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: Application
    Filed: April 24, 2014
    Publication date: August 21, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts
  • Patent number: 8743877
    Abstract: 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: Grant
    Filed: January 12, 2010
    Date of Patent: June 3, 2014
    Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts
  • Patent number: 8543729
    Abstract: A method for receiving packet data by means of a data processing system having a plurality of processing cores and supporting a network interface device and a set of at least two software domains, each software domain carrying a plurality of data flows and each supporting at least two delivery channels, the method comprising: receiving at the network interface device packet data that is part of a particular data flow; selecting in dependence on one or more characteristics of the packet data a delivery channel of a particular one of the software domains, said delivery channel being associated with a particular one of the processing cores of the system; and mapping the incoming packet data into said selected delivery channel such that receive processing of the packet is performed by the same processing core that performed receive processing for preceding packets of that data flow.
    Type: Grant
    Filed: November 18, 2008
    Date of Patent: September 24, 2013
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven Pope, David Riddoch
  • Patent number: 8447904
    Abstract: Roughly described, a data processing system comprises a memory addressable by a range of physical memory addresses; a plurality of non-privileged software domains each having a virtual memory address space; a privileged software domain; a memory management unit operable to perform virtual address translation of a virtual memory address into a physical memory address; and an I/O device supporting virtualised interfaces each associated with a respective non-privileged software domain, the I/O device comprising an operation management unit operable to perform virtual address translation in one or more of the virtual memory address spaces; wherein, for I/O operations requested by a virtualised interface, the I/O device invokes the operation management unit to perform virtual address translation for those I/O operations meeting first criteria and to invoke the memory management unit to perform virtual address translation for those I/O operations which do not meet the first criteria.
    Type: Grant
    Filed: December 14, 2009
    Date of Patent: May 21, 2013
    Assignee: Solarflare Communications, Inc.
    Inventor: David Riddoch
  • Patent number: 8423639
    Abstract: A network interface device for a data processing system comprising: one or more network connection ports for connection to a network; a routing table supported at a memory of the network interface device; a controller operable to modify the routing table; and a control plane interface of the controller arranged to receive routing table update instructions carried in one or more control packets received at the said ports; wherein the control plane interface is configured to, on receiving a routing table update instruction, cause the controller to update the routing table in accordance with the routing table update instruction.
    Type: Grant
    Filed: October 7, 2010
    Date of Patent: April 16, 2013
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David Riddoch
  • Patent number: 8286193
    Abstract: A computer system comprising hardware including a data interface for interfacing between the computer system and a data source; a memory; a first operating system capable of communicating with the hardware; and a second operating system capable of supporting a user-level application and being configured to communicate with the hardware via the first operating system, the second operating system being capable of allocating a region of the memory for use as a buffer by such a user-level application. The data interface is configurable to associate a predetermined data format with a region of the memory that has been allocated for use as a buffer by a user-level application supported by the second operating system and to, on receiving from the data source a data message of that format, automatically store data of that message in that region of the memory without it passing via the first or second operating systems.
    Type: Grant
    Filed: June 26, 2008
    Date of Patent: October 9, 2012
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven Pope, David Riddoch
  • Patent number: 8219712
    Abstract: A network interface device for providing an interface between a network and a data processing device, the network interface device having: a plurality of resources of different types for supporting the interface, and a bus interface for interfacing with the data processing device by means of a bus over which data can be sent by addressing to a address on the bus, the network interface device being arranged so that each resource may be addressed by a respective address on the bus.
    Type: Grant
    Filed: September 2, 2005
    Date of Patent: July 10, 2012
    Assignee: Solarflare Communications, Inc.
    Inventors: David Riddoch, Steven Pope