Method for managing network data transfers with minimal host processor involvement
First Claim
1. In a computer network, a method for transferring information, said method comprising the computer implemented steps of:
- a) establishing a connection between a host computer and a network device via a first bus of a first communication protocol, wherein said network device is coupled to said computer network of a second communication protocol;
b) generating a data pointer table with a first processor of said host computer, said data pointer table comprising memory address information identifying a first data block residing in a peripheral device coupled to said host computer;
c) transmitting said data pointer table from said host computer to said network device via said first bus; and
d) transferring said first data block from said peripheral device to said computer network with a second processor of said network device, wherein said transfer is accomplished by using said memory address information in said data pointer table as a reference.
6 Assignments
0 Petitions
Accused Products
Abstract
A method for managing data transfers with minimal host processor involvement. Data is transferred between a peripheral device coupled to a host computer and a network device over a high performance bus. In one exemplary embodiment, data is transferred over a bus utilizing the IEEE 1394 communication protocol and a network utilizing the Ethernet communication protocol. The novel data transfer method advantageously minimizes the involvement of the host computer'"'"'s processor in the management of data transfers, thus maximizing the host processor'"'"'s availability for performing other computations. Specifically, to transfer data from the peripheral device to the network, the host processor generates a data pointer table and sends it to the network device. A processor in the network device then takes over data transfer management, using information in the data pointer table to locate and transmit the designated block of data from the peripheral device to the network. In another embodiment, the present invention determines whether the size of a data block to be transferred exceeds the maximum packet size for the relevant communication protocol used by the bus or the network. If such a limit exists and is exceeded, the data pending transfer is divided into multiple packets, such that each packet conforms to the maximum packet size of the limiting protocol. Then, the smaller packets are transmitted iteratively until the entire data block is transferred. As such, the present invention eliminates the incompatibility problem posed by the differences in packet sizes among different communication protocols.
-
Citations
28 Claims
-
1. In a computer network, a method for transferring information, said method comprising the computer implemented steps of:
-
a) establishing a connection between a host computer and a network device via a first bus of a first communication protocol, wherein said network device is coupled to said computer network of a second communication protocol;
b) generating a data pointer table with a first processor of said host computer, said data pointer table comprising memory address information identifying a first data block residing in a peripheral device coupled to said host computer;
c) transmitting said data pointer table from said host computer to said network device via said first bus; and
d) transferring said first data block from said peripheral device to said computer network with a second processor of said network device, wherein said transfer is accomplished by using said memory address information in said data pointer table as a reference. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
e) transmitting a message from said network device to said host computer for indicating successful completion of said step d).
-
-
3. The method as recited in claim 1 wherein said step d) comprises the steps of:
-
d1) accessing said first data block in said peripheral device using said memory address information in said data pointer table as a reference;
d2) transmitting said first data block from said peripheral device to said network device via said first bus using a read command of said first communication protocol; and
d3) transmitting said first data block from said network device to said computer network of said second communication protocol;
wherein said steps d1), d2) and d3) are performed by said second processor of said network device.
-
-
4. The method as recited in claim 3 wherein said step d) further comprises the step of:
d4) performing computation unrelated to data transfer management with said first processor while said second processor is performing said steps d1), d2) and d3).
-
5. The method as recited in claim 3 wherein said step d2) comprises the steps of:
-
determining whether said first data block is larger than a maximum packet size of said first communication protocol;
transmitting said first data block from said peripheral device to said network device as a plurality of data packets using said read command iteratively, each of said plurality of data packets having a size compatible with said first communication protocol, if said first data block is larger than said maximum packet size of said first communication protocol; and
transmitting said first data block from said peripheral device to said network device as a single data packet using said read command once if said first data block is not larger than said maximum packet size of said first communication protocol.
-
-
6. The method as recited in claim 1 further comprising the steps of:
-
f) reserving a memory area in said peripheral device for storing a second data block;
g) generating a data pointer with said first processor of said host computer, said data pointer identifying said reserved memory area;
h) transmitting said data pointer from said host computer to said network device via said first bus; and
i) transferring said second data block from said computer network to said reserved memory area in said peripheral device with a second processor of said network device, using said data pointer as a reference.
-
-
7. The method as recited in claim 6 wherein said step i) comprises the steps of:
-
i1) storing said second data block, received from said computer network of said second communication protocol, in said network device;
i2) transmitting said second data block from said network device to said reserved memory area of said peripheral device via said first bus using a write command of said first communication protocol; and
i3) generating an interrupt to said host computer for indicating successful completion of said step i2);
wherein said steps i1), i2) and i3) are performed by said second processor of said network device.
-
-
8. The method as recited in claim 7 wherein said step i2) comprises the steps of:
-
determining whether said second data block is larger than a maximum packet size of said first communication protocol;
transmitting said second data block from said network device to said peripheral device as a plurality of data packets using said write command iteratively, each of said plurality of data packets having a packet size compatible with said first communication protocol, if said second data block is larger than said maximum packet size of said first communication protocol; and
transmitting said second data block from said network device to said peripheral device as a single data packet using said write command once if said second data block is not larger than said maximum packet size of said first communication protocol.
-
-
9. The method as recited in claim 1 wherein said first communication protocol is compatible with the IEEE 1394 communication standard.
-
10. The method as recited in claim 1 wherein said first communication protocol is compatible with the Ethernet IEEE 802.3 communication standard.
-
11. The method as recited in claim 1 wherein said first communication protocol is different from said second communication protocol.
-
12. The method as recited in claim 1 wherein said data pointer table is compatible with the Operation Request Block (ORB) format of the Serial Bus Protocol 2 (SBP-2).
-
13. The method as recited in claim 1 wherein said host computer comprises a first interface controller coupled to said first bus for communicating with said network device via said first bus.
-
14. The method as recited in claim 1 wherein said network device comprises:
-
a second interface controller coupled to said first bus for communicating with said host computer via said first bus; and
a third interface controller coupled to said second interface controller and to a second bus for communicating with said computer network via said second bus.
-
-
15. A network device coupled between a host computer and a computer network, wherein said host computer comprises a first processor and said network device comprises a second processor coupled to a memory unit, said memory unit containing instructions that when executed implement a method for transferring information, said method comprising the computer implemented steps of:
-
a) establishing a connection between said host computer and said network device via a first bus of a first communication protocol, wherein said computer network is of a second communication protocol;
b) generating a data pointer table with said first processor of said host computer, said data pointer table comprising memory address information identifying a first data block residing in a peripheral device coupled to said host computer;
c) transmitting said data pointer table from said host computer to said network device via said first bus; and
d) transferring said first data block from said peripheral device to said computer network with said second processor of said network device, wherein said transfer is accomplished by using said memory address information in said data pointer table as a reference. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
e) transmitting a message from said network device to said host computer for indicating successful completion of said step d).
-
-
17. The network device as recited in claim 15 wherein said step d) of said method comprises the steps of:
-
d1) accessing said first data block in said peripheral device using said memory address information in said data pointer table as a reference;
d2) transmitting said first data block from said peripheral device to said network device via said first bus using a read command of said first communication protocol; and
d3) transmitting said first data block from said network device to said computer network of said second communication protocol;
wherein said steps d1), d2) and d3) are performed by said second processor of said network device.
-
-
18. The network device as recited in claim 17 wherein said step d) of said method further comprises the step of:
d4) performing computation unrelated to data transfer management with said first processor while said second processor is performing said steps D1), D2) and D3).
-
19. The network device as recited in claim 17 wherein said step D2) of said method comprises the steps of:
-
determining whether said first data block is larger than a maximum packet size of said first communication protocol;
provided that said first data block is larger than said maximum packet size of said first communication protocol, transmitting said first data block from said peripheral device to said network device as a plurality of data packets using said read command iteratively, each of said plurality of data packets having a size compatible with said first communication protocol; and
provided that said first data block is not larger than said maximum packet size of said first communication protocol, transmitting said first data block from said peripheral device to said network device as a single data packet using said read command once.
-
-
20. The network device as recited in claim 15 wherein said method further comprises the steps of:
-
f) reserving a memory area in said peripheral device for storing a second data block;
g) generating a data pointer with said first processor of said host computer, said data pointer identifying said reserved memory area;
h) transmitting said data pointer from said host computer to said network device via said first bus; and
i) transferring said second data block from said computer network to said reserved memory area in said peripheral device with a second processor of said network device, using said data pointer as a reference.
-
-
21. The network device as recited in claim 20 wherein said step i) of said method comprises the steps of:
-
i1) storing said second data block, received from said computer network of said second communication protocol, in said network device;
i2) transmitting said second data block from said network device to said reserved memory area of said peripheral device via said first bus using a write command of said first communication protocol; and
i3) generating an interrupt to said host computer for indicating successful completion of said step i2);
wherein said steps i1), i2) and i3) are performed by said second processor of said network device.
-
-
22. The network device as recited in claim 21 wherein said step i2) of said method comprises the steps of:
-
determining whether said second data block is larger than a maximum packet size of said first communication protocol;
provided that said second data block is larger than said maximum packet size of said first communication protocol, transmitting said second data block from said network device to said peripheral device as a plurality of data packets using said write command iteratively, each of said plurality of data packets having a packet size compatible with said first communication protocol; and
provided that said second data block is not larger than said maximum packet size of said first communication protocol, transmitting said second data block from said network device to said peripheral device as a single data packet using said write command once.
-
-
23. The network device as recited in claim 15 wherein said first communication protocol is compatible with the IEEE 1394 communication standard.
-
24. The network device as recited in claim 15 wherein said first communication protocol is compatible with the Ethernet IEEE 802.3 communication standard.
-
25. The network device as recited in claim 15 wherein said first communication protocol is different from said second communication protocol.
-
26. The network device as recited in claim 15 wherein said data pointer table is compatible with the Operation Request Block (ORB) format of the Serial Bus Protocol 2 (SBP-2).
-
27. The network device as recited in claim 15 said host computer comprises a first interface controller coupled to said first bus for communicating with said network device via said first bus.
-
28. The network device as recited in claim 15 wherein said network device comprises:
-
a second interface controller coupled to said first bus for communicating with said host computer via said first bus; and
a third interface controller coupled to said second interface controller and to a second bus for communicating with said computer network via said second bus.
-
Specification