Inventors list

Assignees list

Classification tree browser

Top 100 Inventors

Top 100 Assignees


David Riddoch, Cambridge GB

David Riddoch, Cambridge GB

Patent application numberDescriptionPublished
20080313655Processing received data - 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.12-18-2008
20100049876PACKET VALIDATION IN VIRTUAL NETWORK INTERFACE ARCHITECTURE - Roughly described, a network interface device receiving data packets from a computing device for transmission onto a network, the data packets having a certain characteristic, transmits the packet only if the sending queue has authority to send packets having that characteristic. The data packet characteristics can include transport protocol number, source and destination port numbers, source and destination IP addresses, for example. Authorizations can be programmed into the NIC by a kernel routine upon establishment of the transmit queue, based on the privilege level of the process for which the queue is being established. In this way, a user process can use an untrusted user-level protocol stack to initiate data transmission onto the network, while the NIC protects the remainder of the system or network from certain kinds of compromise.02-25-2010
20100161847VIRTUALISED INTERFACE FUNCTIONS - 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.06-24-2010
20100192163INTERRUPT MANAGEMENT FOR MULTIPLE EVENT QUEUES - Method of managing interaction between a host subsystem and a peripheral device. Roughly described, the peripheral device writes an event into an individual event queue, and in conjunction therewith, also writes a wakeup event into an intermediary event queue. The wakeup event identifies the individual event queue. The host subsystem, in response to retrieval of the wakeup event from the intermediary event queue, activates an individual event handler to consume events from the individual event queue.07-29-2010
20100333101VIRTUALISED RECEIVE SIDE SCALING - 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.12-30-2010
20110023042SCALABLE SOCKETS - 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.01-27-2011
20110029734Controller Integration - 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.02-03-2011
20110087774SWITCHING API - 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.04-14-2011
20110149966Header Processing Engine - 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.06-23-2011

Patent applications by David Riddoch, Cambridge GB