IP Library Granted Patent US 7,831,745
Granted Patent B1
US 7,831,745 · App. 11/137,140 · Granted Nov 9, 2010

Scalable direct memory access using validation of host and scatter gather engine (SGE) generation indications

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 7,831,745
App. No.
11/137,140
Granted
Nov 9, 2010
Kind
B1
Abstract

A host station and a scatter gather engine (SGE) station communicate with each other. In the host station, a host generation indication is maintained. In the SGE station, an SGE generation indication is maintained. Information, including the host generation indication maintained in the host station, is written into an entry of a data structure in a memory associated with the host station. In the SGE station, information is received from each of at least one of the entries of the data structure. The received information is processed, including comparing the SGE generation indication maintained in the SGE station to the host generation indication in the entry to determine whether the information in that entry includes valid information.

Claims (105)

1. A method of communicating among a producer station and a consumer station in a computer system, comprising:

in the producer station, maintaining a producer generation indication;

in the consumer station, maintaining a consumer generation indication;

in the producer station, writing information, including the producer generation indication maintained in the producer station, into each of at least one entry of a data structure in a memory associated with the computer system; and

in the consumer station,

receiving information from each of at least one of the entries of the data structure, and

processing the received information, including comparing the consumer generation indication maintained in the consumer station to the producer generation indication in that entry to determine whether the information in that entry includes valid information.

2. The method of claim 1 , further comprising:

in the consumer station, consuming information determined to be valid.

3. The method of claim 1 , wherein:

the producer station sequences the producer generation indication such that the producer generation indication written into each particular entry of the data structure a current time is different from the producer generation indication written into that particular entry of the data structure an immediately previous time; and

the consumer station sequences the consumer generation indication such that the consumer generation indication to which the producer generation indication for each particular entry is compared is different from a previous time valid data is consumed from that particular entry.

4. The method of claim 3 , wherein:

the consumer station sequences the consumer generation indication according to a first predetermined sequence and the producer station sequences the producer generation indication according to a second predetermined sequence.

5. The method of claim 4 , wherein:

the first predetermined sequence corresponds to the second predetermined sequence.

6. The method of claim 5 , wherein:

the first predetermined sequence is identical to the second predetermined sequence.

7. The method of claim 1 , wherein the data structure is a queue.

8. The method of claim 2 , wherein:

consuming information determined to be valid includes causing a data transfer of payload data among the producer station and the consumer station based on the information.

9. The method of claim 8 , wherein:

consuming information includes:

processing the information determined to be valid to determine parameters of the data transfer.

10. The method of claim 9 , wherein:

the data transfer is a direct memory access data transfer; and

the determined parameters are determined parameters associated with the direct memory access data transfer.

11. The method of claim 10 , wherein:

the determined parameters associated with the direct memory access data transfer include parameters associated with addresses of memory locations involved in the direct memory access data transfer.

12. The method of claim 8 , wherein:

the data transfer of payload data among the producer station and the consumer station based on the information is a data transfer of payload data from the producer station to the consumer station.

13. The method of claim 12 , further comprising:

transferring the payload data from the consumer station to a peer station.

14. The method of claim 8 , wherein:

the data transfer of payload data among the producer station and the consumer station based on the information is a data transfer of payload data from the consumer station to the producer station.

15. The method of claim 14 , further comprising:

transferring the payload data from a peer station to the consumer station.

16. The method of claim 2 , further comprising:

providing consumption information from the consumer station to the producer station.

17. The method of claim 16 , further comprising:

in the producer station, regulating the step of writing information based on the consumption information provided from the consumer station.

18. The method of claim 1 , wherein:

receiving information from each of at least one of the entries of the data structure includes receiving the information via a direct memory access.

19. The method of claim 1 , further comprising:

in the consumer station, entering a sleep mode if none of the received information is determined to be valid.

20. The method of claim 19 , further comprising:

providing an indication of the sleep mode from the consumer station to the host station.

21. The method of claim 20 , further comprising:

in the producer station, when the consumer station is in sleep mode, causing a wakeup indication to be provided to the consumer station in correspondence with writing the information into the data structure in the memory.

22. The method of claim 21 , wherein:

providing a wakeup indication includes the producer station writing to a register to cause the wakeup indication to be provided to the consumer station.

23. The method of claim 21 , further comprising:

in the consumer station, upon receiving the wakeup indication, again receiving information from each of at least one of the entries of the data structure, and processing the received information.

24. A method of communicating among a host station and a scatter gather engine (SGE) station, comprising:

in the host station, maintaining a host generation indication;

in the SGE station, maintaining an SGE generation indication;

in the host station, writing information, including the host generation indication maintained in the host station, into an entry of a data structure in a memory associated with the host station; and

in the SGE station,

receiving information from each of at least one of the entries of the data structure, and

processing the received information, including comparing the SGE generation indication maintained in the SGE station to the host generation indication in the entry to determine whether the information in that entry includes valid information.

25. The method of claim 24 , further comprising:

in the SGE station, consuming information determined to be valid.

26. The method of claim 24 , wherein:

the host station sequences the host generation indication such that the host generation indication written into each particular entry of the data structure a current time is different from the host generation indication written into that particular entry of the data structure an immediately previous time; and

the SGE station sequences the SGE generation indication such that the SGE generation indication to which the host generation indication for each particular entry is compared is different from a previous time valid data is consumed from that particular entry.

27. The method of claim 26 , wherein:

the SGE station sequences the SGE generation indication according to a first predetermined sequence and the host station sequences the host generation indication according to a second predetermined sequence.

28. The method of claim 27 , wherein:

the first predetermined sequence corresponds to the second predetermined sequence.

29. The method of claim 28 , wherein:

the first predetermined sequence is identical to the second predetermined sequence.

30. The method of claim 24 , wherein the data structure is a queue.

31. The method of claim 25 , wherein:

consuming information determined to be valid includes causing a data transfer of payload data among the host station and the SGE station based on the information.

32. The method of claim 31 , wherein:

consuming information includes processing the information determined to be valid to determine parameters of the data transfer.

33. The method of claim 32 , wherein:

the data transfer is a direct memory access data transfer; and

the determined parameters are determined parameters associated with the direct memory access data transfer.

34. The method of claim 32 , wherein:

the determined parameters associated with the direct memory access data transfer include parameters associated with addresses of memory locations involved in the direct memory access data transfer.

35. The method of claim 31 , wherein:

the data transfer of payload data among the host station and the SGE station based on the information is a data transfer of payload data from the host station to the SGE station.

36. The method of claim 35 , further comprising:

transferring the payload data from the SGE station to a peer station.

37. The method of claim 31 , wherein:

the data transfer of payload data among the host station and the SGE station based on the information is a data transfer of payload data from the SGE station to the host station.

38. The method of claim 37 , further comprising:

transferring the payload data from a peer station to the SGE station.

39. The method of claim 25 , further comprising:

providing consumption information from the SGE station to the host station.

40. The method of claim 39 , further comprising:

in the host station, regulating the step of writing information based on the consumption information provided from the SGE station.

41. The method of claim 24 , wherein:

receiving information from each of at least one of the entries of the data structure includes receiving the information via a direct memory access.

42. The method of claim 24 , further comprising:

in the SGE station, entering a sleep mode if none of the received information is determined to be valid.

43. The method of claim 42 , further comprising:

providing an indication of the sleep mode from the SGE station to the host station.

44. The method of claim 43 , further comprising:

in the host station, when the SGE station is in sleep mode, causing a wakeup indication to be provided to the SGE station in correspondence with writing the information into the data structure in the memory.

45. The method of claim 44 , wherein:

providing a wakeup indication includes the host station writing to a register to cause the wakeup indication to be provided to the SGE station.

46. The method of claim 44 , further comprising:

in the SGE station, upon receiving the wakeup indication, again receiving information from each of at least one of the entries of the data structure, and processing the received information.

Assignments (12)
CHANGE OF NAME Recorded May 5, 2026
From: CHELSIO COMMUNICATIONS, INC.
To: SPEEDNIC LLC
Reel/Frame 075561/0001 →
RELEASE OF SECURITY INTEREST Recorded Dec 26, 2025
From: CSNK WORKING CAPITAL FINANCE CORP.
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 074070/0784 →
RELEASE OF SECURITY INTEREST Recorded Dec 18, 2025
From: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 073264/0525 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE FIRST PAGE OF THE INTELLECTUAL PROPERTY SECURITY AGREEMENT HAS AN INCORRECT DATE THAT NEEDS TO BE CORRECTED PREVIOUSLY RECORDED ON REEL 050050 FRAME 0396. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Aug 15, 2019
From: CHELSIO COMMUNICATIONS, INC.
To: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
Reel/Frame 050112/0234 →
SECURITY INTEREST Recorded Aug 14, 2019
From: CHELSIO COMMUNICATIONS, INC.
To: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
Reel/Frame 050050/0396 →
RELEASE OF SECURITY INTEREST Recorded Apr 25, 2017
From: NOVIRIAN CAPITAL
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 042142/0232 →
SECURITY INTEREST Recorded Jul 29, 2016
From: CHELSIO COMMUNICATIONS, INC.
To: NOVIRIAN CAPITAL
Reel/Frame 039296/0550 →
RELEASE OF SECURITY INTEREST Recorded Jul 15, 2016
From: EAST WEST BANK
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 039360/0596 →
SECURITY INTEREST Recorded Oct 21, 2014
From: CHELSIO COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 033990/0451 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2014
From: EAST WEST BANK
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 033989/0930 →
SECURITY AGREEMENT Recorded May 9, 2013
From: CHELSIO COMMUNICATIONS, INC.
To: EAST WEST BANK
Reel/Frame 030389/0982 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2005
From: EIRIKSSON, ASGEIR THOR; CHEN, SHENZE; KAPLAN, PATRICIO FERNANDO; SMITH, GEORGE E.
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 016488/0446 →