IP Library Granted Patent US 9,319,340
Granted Patent B2
US 9,319,340 · App. 13/633,830 · Granted Apr 19, 2016

Processing received data

Inventors: Steven Pope (Cambridges, GB); David Riddoch (Huntingdon, GB)
Assignee: Solarflare Communications, Inc.
H04L47/62G06F9/45533G06F9/544H04L29/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,319,340
App. No.
13/633,830
Granted
Apr 19, 2016
Kind
B2
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.

Claims (32)

1. A method for controlling the processing of data in a data processor, the data processor being connectable to a further device over a data link, the method comprising the steps of:

receiving data at an element of the data processor;

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;

wherein a buffer space having a size is allocated to the data link for storing data received at the data processor over the data link, the data link having a protocol that employs a receive window in accordance with which a transmitter of data according to the protocol will transmit no further traffic data once an amount of data defined by the receive window has been transmitted and is unacknowledged by the data processor such that a size of the receive window is modified to a new size during operation;

sensing the size of the buffer space allocated to the data link relative to the new size of the receive window; and

setting the interval in dependence on the sensed size of the buffer space allocated to the data link relative to the new size of the receive window.

2. A method according to claim 1 wherein the data processor is connectable to the data link by means of an interface.

3. A method according to claim 2 wherein a timer resides on the interface, and said interval is measured by the timer.

4. A method according to claim 2 further comprising the step of in response to receiving the data, sending an instruction from the said element to the timer.

5. A method according to claim 4 wherein the step of sending an instruction to the timer comprises triggering the timer directly from said element via a memory mapping onto said interface.

6. A method according to claim 1 wherein the step of determining comprises determining whether processing of the received data by code at user level has begun.

7. A method according to claim 1 wherein said protocol processing element is an operating system.

8. A method according to claim 1 wherein the received data comprises data received at the data processor by means of an asynchronous transmission over the data link.

9. A method according to claim 1 wherein the received data comprises data to be transmitted by means of an asynchronous transmission over the data link.

10. A method according to claim 1 wherein the step of triggering processing comprises issuing an interrupt.

11. A method according to claim 10 wherein the step of triggering processing comprises issuing an interrupt to an operating system of the data processor.

12. A method according to claim 1 wherein the step of setting the interval comprises reducing the interval if the buffer space allocated to the data link relative to the new size of the receive window is indicative of an increase in data rate over the data link.

13. A method according to claim 1 , wherein the step of setting the interval comprises reducing the interval in response to sensing that the size of the buffer space allocated to the data link is greater than the new size of the receive window.

14. A method according to claim 1 , further comprising a step of varying the size of the buffer space allocated to the data link in response to a request from a consumer of the traffic data.

15. A method according to claim 14 wherein the consumer is an application running on the data processor.

16. A method according to claim 1 wherein the step of sensing conditions comprises sensing the presence in a transmit buffer of data to be transmitted over the data link.

17. A method according to claim 16 wherein the step of setting the interval comprises reducing the interval in response to sensing in a transmit buffer data to be transmitted over the data link.

18. A method according to claim 1 wherein the step of setting the interval comprises reducing the interval in response to sensing that a congestion mode of the protocol is in operation over the data link.

19. A memory storing non-transitory machine readable code, the machine readable code executable by a data processor and configured to control processing of data in the data processor, the data processor being connectable to a further device over a data link, the machine readable code comprising:

an element arranged to receive data; and

a control entity arranged to, if a set interval has elapsed following the receipt of data, determine, using the data processor, whether processing of the received data in accordance with a data transfer protocol has begun, and, if it has not, trigger such processing of the received data by a protocol processing element;

wherein a buffer space having a size is allocated to the data link for storing data received at the data processor over the data link, the data link having a protocol that employs a receive window, the receive window having a size that is modified to a new size during operation, in accordance with which a transmitter of data according to the protocol will transmit no further traffic data once an amount of data defined by the receive window has been transmitted and is unacknowledged by the data processor; and

wherein the control entity is further arranged to sense the size of the buffer space allocated to the data link relative to the new size of the receive window and set the interval in dependence on the sensed size of the buffer space allocated to the data link relative to the new size of the receive window.

20. A memory storing machine readable code in a non-transitory state for use with a data processor, the data processor being connectable to a further device over a data link, and machine readable code comprising an element arranged to receive data and a control entity arranged to:

if a set interval has elapsed following the receipt of data by said element, determine, using the data processor, whether processing of the received data in accordance with a data transfer protocol has begun, and, if it has not, trigger such processing of the received data by a protocol processing element;

wherein a buffer space having a size is allocated to the data link for storing data received at the data processor over the data link, the data link having a protocol that employs a receive window in accordance with which a transmitter of data according to the protocol will transmit no further traffic data once an amount of data defined by the receive window has been transmitted and is unacknowledged by the data processor, such that a size of the receive window is modified to a new size during operation; and

wherein said control entity is further arranged to sense the size of the buffer space allocated to the data link relative to the new size of the receive window and set the interval in dependence on the sensed size of the buffer space allocated to the data link relative to the new size of the receive window.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2013
From: POPE, STEVEN; RIDDOCH, DAVID
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 029649/0124 →
Priority Claims (1)
GB 0526519.4 · Dec 28, 2005 · national
Continuity (3)
Continuation 12215437 · Jun 26, 2008
Continuation PCTGB2006004946 · Dec 28, 2006
Related Publication 20130117465A1 · May 9, 2013