Method and apparatus for dynamic bus request and burst-length control
First Claim
1. In a communication system, a method for transferring data between a host computer and a network medium coupled to the host computer, wherein the host computer includes an expansion bus and a network adapter device coupled to the expansion bus and to the network medium, the method comprising the steps of:
- transferring data between a buffer memory in the network adapter and the network medium;
generating a first buffer data signal in response to the amount of data present in the buffer memory;
generating a second buffer data signal in response to previous transfers of data between the host computer and the network medium, wherein the second buffer data signal represents the amount of data in the buffer at the time when the expansion bus should be requested by the network adapter device to optimize a data transfer between the network adapter and the host computer;
asserting a bus request signal to the host computer in response to the first and second buffer data signals; and
transferring data between the host computer and the buffer memory over the expansion bus.
5 Assignments
0 Petitions
Accused Products
Abstract
A network adapter is provided that controls the transfer of data between a host computer and a network medium in a manner which optimizes the amount of data transferred between the host computer and the buffer of the network adapter during a contemporaneous transfer of data between the network medium and the buffer. The network adapter optimizes the data transfer by dynamically determining when to make a bus request such that the buffer is capable of transferring a data packet of a particular target burst size at the end of an estimated latency period. The network adapter includes a buffer memory that transfers data between the host computer and the network medium and a buffer control logic that generates a first buffer data signal in response to the amount of data in the buffer memory. The adapter further includes a bus control logic that generates a second buffer data signal in response to previous transfers of data between the host computer and the network medium, and a dynamic bus request logic that asserts a bus request signal at a time responsive to the first and second buffer data signals to initiate an optimized data transfer between the host computer and the buffer memory during a contemporaneous transfer of data between the buffer memory and the network medium. In one instance, the target burst size is equal to the maximum amount of data transferred between the host computer and the buffer in a single transaction since the host computer has been powered on. Further, in one instance the estimated latency is set as the latency of the previous data transfer between the buffer and the host computer.
78 Citations
90 Claims
-
1. In a communication system, a method for transferring data between a host computer and a network medium coupled to the host computer, wherein the host computer includes an expansion bus and a network adapter device coupled to the expansion bus and to the network medium, the method comprising the steps of:
-
transferring data between a buffer memory in the network adapter and the network medium;
generating a first buffer data signal in response to the amount of data present in the buffer memory;
generating a second buffer data signal in response to previous transfers of data between the host computer and the network medium, wherein the second buffer data signal represents the amount of data in the buffer at the time when the expansion bus should be requested by the network adapter device to optimize a data transfer between the network adapter and the host computer;
asserting a bus request signal to the host computer in response to the first and second buffer data signals; and
transferring data between the host computer and the buffer memory over the expansion bus. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
providing the first and second buffer data signals to a dynamic bus request control logic;
comparing the first buffer data signal with the second buffer data signal; and
generating the bus request signal when the value of the first buffer data signal satisfies a logic relation to the value of the second buffer data signal.
-
-
3. The method of transferring data between a host computer and a network medium of claim 1 further comprising the steps of:
-
providing a priority threshold signal; and
asserting the bus request signal when the value of the first buffer data signal satisfies a logic relation to the priority threshold signal.
-
-
4. The method of transferring data between a host computer and a network medium of claim 3 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
5. The method of transferring data between a host computer and a network medium of claim 3 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
6. The method of transferring data between a host computer and a network medium of claim 3 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
7. The method of transferring data between a host computer and a network medium of claim 1 wherein generating the second buffer data signal is responsive to the size of data bursts transferred between the host computer and the buffer memory.
-
8. The method of transferring data between a host computer and a network medium of claim 7 wherein generating the second buffer data signal further comprises the steps of:
-
monitoring the size of each data burst transferred between the host computer and the buffer memory; and
updating the value of the second buffer data signal such that the second buffer data signal comprises a value representative of the size of the maximum sized data burst transferred between the host computer and the buffer memory since the host computer was powered on.
-
-
9. The method of transferring data between a host computer and a network medium of claim 7 wherein generating the second buffer data signal further comprises the steps of:
-
monitoring the size of each data burst transferred between the host computer and the buffer memory; and
updating the value of the second buffer data signal such that the second buffer data signal comprises a value representative of the size of previous bursts based on a statistical function.
-
-
10. The method of transferring data between a host computer and a network medium of claim 8 further comprising the steps of:
-
providing a priority threshold signal; and
asserting the bus request signal when the value of the first buffer data signal satisfies a logic relation to the priority threshold signal.
-
-
11. The method of transferring data between a host computer and a network medium of claim 10 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
12. The method of transferring data between a host computer and a network medium of claim 10 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
13. The method of transferring data between a host computer and a network medium of claim 10 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
14. The method of transferring data between a host computer and a network medium of claim 8 wherein asserting the bus request signal further comprises the steps of:
-
providing the first and second buffer data signals to a dynamic bus request control logic;
comparing the first buffer data signal with the second buffer data signal; and
generating the bus request signal when the value of the first buffer data signal satisfies a logic relation to the value of the second buffer data signal.
-
-
15. The method of transferring data between a host computer and a network medium of claim 7 wherein the buffer memory comprises a memory that is smaller than the maximum size data packet utilized in the communication system.
-
16. The method of transferring data between a host computer and a network medium of claim 1 wherein generating the second buffer data signal is responsive to an estimated latency signal.
-
17. The method of transferring data between a host computer and a network medium of claim 16 wherein the second buffer data signal comprises the difference of the estimated latency signal and an optimal burst length signal wherein the optimal burst length signal represents the length of a piece of data which will optimize an individual data transfer between the host computer and the buffer memory.
-
18. The method of transferring data between a host computer and a network medium of claim 17 wherein the estimated latency signal comprises an estimate of the amount of data transfer that would occur between the host computer and the buffer memory during a time period comprising the latency time determined by a function of one or more previous data transfers between the host computer and the buffer memory.
-
19. The method of claim 18, wherein said function comprises equality to a latency time of a previous transfer.
-
20. The method of claim 18, wherein said function comprises an average latency time of a plurality of previous transfers.
-
21. The method of claim 18, wherein said function comprises a function of latency times of a plurality of previous transfers which have a particular characteristic.
-
22. The method of transferring data between a host computer and a network medium of claim 18 wherein generating the optimal burst length signal further comprises the steps of:
-
monitoring the size of each data burst transferred between the host computer and the buffer memory; and
updating the value of the optimal burst length signal such that the optimal burst length signal comprises a value representative of the size of the maximum sized data burst transferred between the host computer and the buffer memory since the host computer was powered on.
-
-
23. The method of transferring data between a host computer and a network medium of claim 22 further comprising the steps of:
-
providing a priority threshold signal; and
asserting the bus request signal when the value of the first buffer data signal is one of greater than and less than the priority threshold signal.
-
-
24. The method of transferring data between a host computer and a network medium of claim 23 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
25. The method of transferring data between a host computer and a network medium of claim 23 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
26. The method of transferring data between a host computer and a network medium of claim 23 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
27. The method of transferring data between a host computer and a network medium of claim 22 wherein asserting the bus request signal further comprises the steps of:
-
providing the first and second buffer data signals to a dynamic bus request control logic;
comparing the first buffer data signal with the second buffer data signal; and
generating the bus request signal when the value of the first buffer data signal is one of greater than and less than the value of the second buffer data signal.
-
-
28. The method of transferring data between a host computer and a network medium of claim 16 wherein the buffer memory comprises a memory that is smaller than the maximum size data packet utilized in the communication system.
-
29. In a communication system, a network adapter apparatus for controlling a transfer of data between a host computer and a network medium coupled to the host computer, wherein the host computer includes an expansion bus, the apparatus comprising:
-
a buffer memory that transfers data between the host computer and the network medium;
a buffer control logic that generates a first buffer data signal in response to the amount of data in the buffer memory;
a bus control logic that generates a second buffer data signal in response to previous transfers of data between the host computer and the network medium; and
a dynamic bus request logic that asserts a bus request signal at a time responsive to the first and second buffer data signals to initiate an optimized data transfer between the host computer and the buffer memory during a contemporaneous transfer of data between the buffer memory and the network medium. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
monitor logic that monitors the size of each data packet transferred between the host computer and the buffer memory; and
a first compare logic that updates the value of the second buffer data signal such that the second buffer data signal comprises a value representative of the size of the maximum sized data packet transferred between the host computer and the buffer memory since the host computer was powered on.
-
-
37. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 35 wherein the target burst logic comprises:
-
monitor logic that monitors the size of each data packet transferred between the host computer and the buffer memory; and
a first compare logic that updates the value of the second buffer data signal such that the second buffer data signal comprises a value representative of the size of previous bursts based on a statistical function.
-
-
38. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 36 wherein the bus control logic further comprises a priority logic that provides a priority threshold signal to the dynamic bus request logic such that the dynamic bus request logic asserts the bus request signal when the value of the first buffer data signal is one of greater than and less than the priority threshold signal.
-
39. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 38 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
40. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 38 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
41. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 38 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
42. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 36 wherein the dynamic bus request logic asserts the bus request signal when the value of the first buffer data signal is one of greater than and less than the value of the second buffer data signal.
-
43. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 35 wherein the buffer memory comprises a memory that is smaller than the maximum size data packet utilized in the communication system.
-
44. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 29 wherein the bus control logic further comprises a latency logic that generates an estimated latency signal and wherein the second buffer data signal is responsive to the estimated latency signal.
-
45. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 44 wherein the bus control logic further comprises a target burst logic that generates an optimal burst length signal representative of the length of a piece of data which will optimize an individual data transfer between the host computer and the buffer memory.
-
46. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 45 wherein the second buffer data signal comprises the difference of the estimated latency signal and the optimal burst length signal.
-
47. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 46 wherein the estimated latency signal comprises an estimate of the amount of data transfer that would occur between the host computer and the buffer memory during a time period comprising the latency time of the previous data transfer between the host computer and the buffer memory.
-
48. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 47 wherein the target burst logic comprises:
-
monitor logic that monitors the size of each data burst transferred between the host computer and the buffer memory; and
a first compare logic that updates the value of the optimal burst length signal such that the optimal burst length signal comprises a value representative of the size of the maximum sized data burst transferred between the host computer and the buffer memory since the host computer was powered on.
-
-
49. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 47 wherein the target burst logic comprises:
-
monitor logic that monitors the size of each data burst transferred between the host computer and the buffer memory; and
a first compare logic that updates the value of the optimal burst length signal such that the optimal burst length signal comprises a value representative of the size of previous bursts based on a statistical function.
-
-
50. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 48 wherein the bus control logic further comprises a priority logic that provides a priority threshold signal to the dynamic bus request logic such that the dynamic bus request logic asserts the bus request signal when the value of the first buffer data signal satisfies a logic relation to the priority threshold signal.
-
51. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 50 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
52. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 50 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
53. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 50 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
54. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 48 wherein the dynamic bus request logic asserts the bus request signal when the value of the first buffer data signal satisfies a logic relation to the value of the second buffer data signal.
-
55. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 44 wherein the buffer memory comprises a memory that is smaller than the maximum size data packet utilized in the communication system.
-
56. In a communication system, a network adapter apparatus for controlling a transfer of data between a host computer and a network medium coupled to the host computer, wherein the host computer includes an expansion bus, the apparatus comprising:
-
a buffer memory that transfers data between the host computer and the network medium;
a buffer control logic that generates a first buffer data signal in response to the amount of data in the buffer memory;
a bus control logic that generates a second buffer data signal comprising the difference of an estimated latency signal and an optimal burst length signal, the bus control further comprising;
latency logic that generates the estimated latency signal wherein the estimated latency signal comprises an estimate of the amount of data transfer that would occur between the host computer and the buffer memory during a time period comprising the latency time of the previous data transfer between the host computer and the buffer memory; and
target burst logic that generates the optimal burst length signal such that the optimal burst length signal comprises a value representative of the length of a piece of data which will optimize an individual data transfer between the host computer and the buffer memory; and
a dynamic bus request logic that asserts a bus request signal at a time responsive to the first and second buffer data signals to initiate an optimized data transfer between the host computer and the buffer memory during a contemporaneous transfer of data between the buffer memory and the network medium. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63, 64)
monitor logic that monitors the size of each data burst transferred between the host computer and the buffer memory; and
a first compare logic that updates the value of the optimal burst length signal such that the optimal burst length signal comprises a value representative of the size of the maximum sized data packet transferred between the host computer and the buffer memory since the host computer was powered on.
-
-
58. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 56 wherein the target burst logic comprises:
-
monitor logic that monitors the size of each data burst transferred between the host computer and the buffer memory; and
a first compare logic that updates the value of the optimal burst length signal such that the optimal burst length signal comprises a value representative of the size of previous bursts based on a statistical function.
-
-
59. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 57 wherein the bus control logic further comprises a priority logic that provides a priority threshold signal to the dynamic bus request logic such that the dynamic bus request logic asserts the bus request signal when the value of the first buffer data signal satisfies a logic relation to the priority threshold signal.
-
60. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 59 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
61. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 59 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
62. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 59 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
63. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 57 wherein the dynamic bus request logic asserts the bus request signal when the value of the first buffer data signal satisfies a logic relation to the value of the second buffer data signal.
-
64. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 56 wherein the buffer memory comprises a memory that is smaller than the maximum size data packet utilized in the communication system.
-
65. In a communication system, a network adapter apparatus for controlling a transfer of data between a host computer and a network medium coupled to the host computer, wherein the host computer includes an expansion bus, the apparatus comprising:
-
a means for transferring data between a buffer memory in the network adapter apparatus and the network medium;
a means for generating a first buffer data signal in response to the amount of data present in the buffer memory;
a means for generating a second buffer data signal in response to previous transfers of data between the host computer and the network medium, wherein the second buffer data signal represents the amount of data in the buffer at the time when the expansion bus should be requested by the network adapter device to optimize a data transfer between the network adapter and the host computer;
a means for asserting a bus request signal to the host computer in response to the first and second buffer data signals; and
a means for transferring data between the host computer and the buffer memory over the expansion bus. - View Dependent Claims (66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90)
a means for comparing the first buffer data signal with the second buffer data signal; and
a means for generating the bus request signal when the value of the first buffer data signal satisfies a logic relation to the value of the second buffer data signal.
-
-
67. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 65 further comprising:
-
a means for providing a priority threshold signal; and
a means for asserting the bus request signal when the value of the first buffer data signal satisfies a logic relation to the priority threshold signal.
-
-
68. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 67 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
69. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 67 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
70. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 67 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
71. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 65 wherein the means for generating the second buffer data signal is responsive to the size of data bursts transferred between the host computer and the buffer memory.
-
72. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 71 wherein the means for generating the second buffer data signal comprises:
-
a means for monitoring the size of each data burst transferred between the host computer and the buffer memory; and
a means for updating the value of the second buffer data signal such that the second buffer data signal comprises a value representative of the size of the maximum sized data burst transferred between the host computer and the buffer memory since the host computer was powered on.
-
-
73. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 71 wherein the means for generating the second buffer data signal comprises:
-
a means for monitoring the size of each data burst transferred between the host computer and the buffer memory; and
a means for updating the value of the second buffer data signal such that the second buffer data signal comprises a value representative of the size of previous bursts based on a statistical function.
-
-
74. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 72 further comprising:
-
a means for providing a priority threshold signal; and
a means for asserting the bus request signal when the value of the first buffer data signal is one of greater than and less than the priority threshold signal.
-
-
75. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 74 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
76. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 74 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
77. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 74 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
78. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 72 wherein the means for asserting the bus request signal comprises:
-
a means for comparing the first buffer data signal with the second buffer data signal; and
a means for generating the bus request signal when the value of the first buffer data signal is one of greater than and less than the value of the second buffer data signal.
-
-
79. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 71 wherein the buffer memory comprises a memory that is smaller than the maximum size data packet utilized in the communication system.
-
80. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 65 wherein the means for generating the second buffer data signal is responsive to an estimated latency signal generated by a latency estimation means.
-
81. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 80 wherein the second buffer data signal comprises the difference of the estimated latency signal and an optimal burst length signal generated by an optimal burst length means wherein the optimal burst length signal represents the length of a piece of data which will optimize an individual data transfer between the host computer and the buffer memory.
-
82. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 81 wherein the estimated latency signal comprises an estimate of the amount of data transfer that would occur between the host computer and the buffer memory during a time period comprising the latency time of the previous data transfer between the host computer and the buffer memory.
-
83. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 82 wherein the optimal burst length means comprises:
-
a means for monitoring the size of each data burst transferred between the host computer and the buffer memory; and
a means for updating the value of the optimal burst length signal such that the optimal burst length signal comprises a value representative of the size of the maximum sized data burst transferred between the host computer and the buffer memory since the host computer was powered on.
-
-
84. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 82 wherein the optimal burst length means comprises:
-
a means for monitoring the size of each data burst transferred between the host computer and the buffer memory; and
a means for updating the value of the optimal burst length signal such that the optimal burst length signal comprises a value representative of the size of previous bursts based on a statistical function.
-
-
85. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 83 further comprising:
-
a means for providing a priority threshold signal; and
a means for asserting the bus request signal when the value of the first buffer data signal satisfies a logic relation to the priority threshold signal.
-
-
86. The method of transferring data between a host computer and a network medium of claim 85 wherein the priority threshold signal comprises a signal generated in response to previous transfers of data between the host computer and the network medium.
-
87. The method of transferring data between a host computer and a network medium of claim 85 wherein the priority threshold signal comprises a signal generated in response to hardware capabilities of the host computer.
-
88. The method of transferring data between a host computer and a network medium of claim 85 wherein the priority threshold signal comprises a signal generated in response to numbers of at least one of overruns and underruns.
-
89. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 83 wherein the means for asserting the bus request signal comprises:
-
a means for comparing the first buffer data signal with the second buffer data signal; and
a means for generating the bus request signal when the value of the first buffer data signal satisfies a logic relation to the value of the second buffer data signal.
-
-
90. The apparatus for controlling a transfer of data between a host computer and a network medium of claim 80 wherein the buffer memory comprises a memory that is smaller than the maximum size data packet utilized in the communication system.
Specification