IP Library Granted Patent US 10,015,104
Granted Patent B2
US 10,015,104 · App. 15/081,719 · Granted Jul 3, 2018

Processing received data

Inventors: Steven Pope (Costa Mesa, CA); David Riddoch (Fenstanton, GB)
Assignee: Solarflare Communications, Inc.
H04L47/62G06F9/45533G06F9/544H04L29/06H04L47/27H04L47/30H04L69/16
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 10,015,104
App. No.
15/081,719
Granted
Jul 3, 2018
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 (36)

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 the data processor;

starting a timer, said timer running separately to an application of the data processor; and

in response to the timer indicating that a time interval has passed since the start of the timer,

determining whether processing of the received data by the application of said data processor in accordance with a data transfer protocol has begun, and,

in response to determining that the application has not begun the processing of the received data in accordance with the data transfer protocol,

triggering a protocol processing element of an operating system of said data processor to perform the processing of the received data in accordance with the data transfer protocol;

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.

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 the timer resides on the interface.

4. A method according to claim 2 further comprising the step of in response to receiving the data, sending an instruction 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 via a memory mapping.

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

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

8. A method according to claim 1 wherein the step of triggering the protocol processing element to perform the processing comprises issuing an interrupt.

9. A method according to claim 8 wherein the step of triggering the protocol processing element to perform the processing comprises issuing an interrupt to the operating system of the data processor.

10. The method according to claim 1 further comprising:

in response to a modification of the size of the receive window, setting with the data processor the time interval in dependence on the size of the buffer space allocated to the data link and a new size of the receive window.

11. A method according to claim 10 wherein the step of setting the time interval comprises:

in response to determining that the new size of the receive window indicates an increase in data rate of the data link, reducing the time interval.

12. A method according to claim 10 wherein the step of setting the interval comprises:

in response to determining that the size of the buffer space allocated to the data link is greater than the new size of the receive window, reducing the time interval.

13. A method according to claim 10 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.

14. A method according to claim 13 wherein the consumer is the application.

15. A method according to claim 10 further comprising sensing presence in a transmit buffer of data to be transmitted over the data link.

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

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

18. The method of claim 1 , wherein the timer is a periodic timer.

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 executing on the processor to perform the steps:

receiving data at the data processor;

starting a timer, said timer running separately to an application of the data processor; and

in response to the timer indicating that a time interval has passed since the start of the timer,

determining whether processing of the received data by the application of said data processor in accordance with a data transfer protocol has begun, and,

in response to determining that the application has not begun the processing of the received data in accordance with the data transfer protocol,

triggering a protocol processing element of an operating system of said data processor to perform the processing of the received data in accordance with the data transfer protocol;

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.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2017
From: POPE, STEVEN; RIDDOCH, DAVID
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 043727/0532 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
Priority Claims (1)
GB 0526519.4 · Dec 28, 2005 · national
Continuity (4)
Continuation 13633830 · Oct 2, 2012
Continuation 12215437 · Jun 26, 2008
Continuation PCTGB2006004946 · Dec 28, 2006
Related Publication 20160212058A1 · Jul 21, 2016
Cited By (1)
US 12,218,860