Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberCN100544310 C
Publication typeGrant
Application numberCN 200410077181
Publication date23 Sep 2009
Filing date9 Sep 2004
Priority date9 Oct 2003
Also published asCN1606290A, US7496690, US20050080928
Publication number200410077181.4, CN 100544310 C, CN 100544310C, CN 200410077181, CN-C-100544310, CN100544310 C, CN100544310C, CN200410077181, CN200410077181.4
InventorsCT福尔兹, HT贝弗利
Applicant英特尔公司
Export CitationBiBTeX, EndNote, RefMan
External Links: SIPO, Espacenet
Method, system, and program for managing memory for data transmission through a network
CN 100544310 C
Abstract  translated from Chinese
提供一种为通过网络的数据传输管理存储器的方法、系统和程序。 To provide a method of data transmission through the network memory management, systems and procedures. 待发送数据的虚拟存储地址被提供给发送代理。 Data to be transmitted to the virtual memory addresses are sending agent. 发送代理向主机提供所请求数据的虚拟地址。 Sending agents to the host virtual address of the requested data. 作出响应,通过所请求数据的虚拟地址或物理存储单元来寻址的所请求数据被提供给发送代理,以便发送到目标。 In response, virtual or physical memory address of the requested data unit addressed to the requested data is supplied to the transmitting agent, for transmission to the destination.
Claims(30)  translated from Chinese
1. 一种把数据从源发送到目标的方法,包括:主机,向所述源的发送代理提供待发送到目标的数据的虚拟存储地址,其中所述数据被存储在所述源的多个物理单元中,各单元具有物理地址以及映射到所述物理地址的虚拟存储地址;所述发送代理向所述主机提供待发送到所述目标的所述数据的至少部分所述虚拟存储地址;所述主机向所述发送代理标识数据,所标识的数据由所述发送代理提供的所述虚拟存储地址来寻址;以及所述发送代理向所述目标发送所标识的数据。 1. A data transmission from source to destination, comprising: a host, to transmit the agent to provide the source data to be sent to the target virtual storage addresses, wherein the data is stored in said plurality of source physical unit, each unit having a physical address and the physical address is mapped to a virtual memory address; the sending agent to be sent to the host to provide at least a portion of the target address of the virtual storage of the data; the identifying said host sends data to the proxy, the identified data sent by the agent to provide the virtual memory address to the address; and transmitting the transmission data to the target agent identified.
2. 如权利要求l所述的方法,其特征在于,所述主机向所述发送代理标识数据包括:所述主机向所述发送代理提供由所述发送代理提供的所述虚拟地址来寻址的数据,所述方法还包括所述发送代理把从所述主机接收的数据存储在所述发送代理的緩沖器中。 2. A method as claimed in claim l, wherein the host identification data to the sending agent comprising: the host computer is provided by the sending agent to the transmission of the virtual address provided by the addressing proxy The data, the method further comprises sending a proxy to the transmit buffer agent received from the host computer data storage.
3. 如权利要求l所述的方法,其特征在于,所述主机向所述发送代理标识数据包括:所述主机向所述发送代理提供包含由所述发送代址。 3. A method as claimed in claim l, wherein said agent identification to the host sends data comprises: the host transmits to the proxy provided by said transmission comprising behalf address.
4. 如权利要求3所述的方法,其特征在于,所述物理单元包括第一存储器的单元和第二存储器的单元,所述主机所标识的所述数据存储在所述第一存储器中,所述主机提供的所述物理存储地址是包含由所述发送代理提供的所述虚拟地址来寻址的所述数据的所述第一存储器的物理存储单元,所述方法还包括锁定所述主机向所述发送代理提供的所述第一存储器的所述物理存储单元,以便防止由所述发送代理提供的所述虚拟地址来寻址的所述数据被交换到所述第二存储器。 4. The method according to claim 3, characterized in that the physical unit comprises a first memory for storing the data unit and a second memory unit, the host identified in said first memory, means the physical storage of the data in the memory of the physical address of the host is provided by the sending agent comprising providing a virtual address to the address of the first memory, the method further comprising locking said host The sending agent provided to the first memory of the physical storage unit in order to prevent the data sent by said agent provides a virtual address to address is switched to the second memory.
5. 如权利要求4所述的方法,其特征在于还包括: 所述发送代理从所述第一存储器的所述锁定的物理存储单元中拟地址来寻址的所述数据之后,释放所述第一存储器的所述锁定的物理存储单元。 5. The method according to claim 4, characterized by further comprising: after transmitting said physical data storage unit of the agent from the locking of the first address of the memory addressing proposed, the release physical storage of the first memory unit locked.
6. 如权利要求1所述的方法,其特征在于还包括从所述目标接收送到所述目标、但未被确认为所述目标成功接收的数据的虚拟地址。 6. The method according to claim, characterized by further comprising receiving from the target to the target, but has not been confirmed as the target virtual address of the data successfully received.
7. 如权利要求1所述的方法,其特征在于还包括:从所述目标接收对所述发送代理成功发送且所述目标成功接收的数据的确认;所述发送代理向所述主机提供由所述发送代理发送到所述目标、 但未被确认为所述目标成功接收的数据的虚拟地址;所述主机对所述发送代理标识由所述发送代理提供的所述虚拟存储地址来寻址的所述未确认数据;以及所述发送代理向所述目标重发所述标识的未确认数据。 7. The method according to claim 1, characterized by further comprising: receiving a transmission from the target to the proxy data successfully transmitted and the confirmation of the successful reception of the target; the transmission is provided by the agent to the host The sending agent is sent to the target, but has not been identified as the target virtual address of the successful reception of the data; the virtual memory address of the host for the sending agent identification provided by the sending agent to address the unacknowledged data; and a proxy to the target retransmission of unacknowledged data the identification of the transmission.
8. 如权利要求l所述的方法,其特征在于,所述主机向所述发送代理提供虚拟地址包括:所述主机向所述发送代理提供至少一种数据结构,所述数据结构包括:地址字段,包含存储待发送到所述目标的凄t据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;以及序列号字段,包含表示与所述数据块中的数据相关的数据包序列号的值。 8. The method according to claim l, wherein the host virtual address comprises sending to the proxy: the host provides configuration data to the at least one sending agent, said data structure comprising: address field includes storage to be sent to the target virtual address desolate t according to a plurality of memory cell blocks of one; the size of the field that contains a value indicating the data block size; and the serial number of fields, including the representation of the the value of the associated data packet sequence number of data blocks.
9. 如权利要求l所述的方法,其特征在于,所述主机向所述发送代理提供虚拟地址包括:所述主机向所述发送代理提供多个数据结构,其中各数据结构包括:地址字段,存储待发送到所述目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;序列号字段,包含表示与所述数据块中的数据相关的所述数据包序列号的值;以及链接字段,包含所述多个数据结构中的另一个婆:据结构的虛拟地址。 9. The method according to claim l, wherein said host computer to said virtual address comprises sending a proxy: providing a plurality of data structures of the host computer to the delivery agent, wherein each data structure includes: address field , the virtual address of a plurality of memory cells storing the data to be sent to the target block is one of; the size of the field containing a value indicating the data block size; sequence number field containing data represents the data block value associated with the data packet sequence numbers; and a link field containing the plurality of data structures in another woman: It is the virtual address of the structure.
10. 如权利要求1所述的方法,其特征在于,所述物理单元包括第一存储器和第二存储器的单元,以及待发送到所述目标的所述数据存储在所述第一存储器中,所述方法还包括,锁定存储所述待发送数据的所述第一存储器的单元,以便防止所述待发送数据被交换到所述第二存储器;除了所述待发送数据的所述虚拟存储地址之外,所述主机还向所述发送代理提供存储所述待发送数据的所述第一存储器的所述单元的物理地址;所述发送代理从所述第一存储器的所述锁定单元中检索所述待发送数据;以及在所述发送代理从存储所述待发送数据的所述第一存储器的所述锁定单元中检索所述数据之后,释放存储所述待发送数据的所述第一存储器的所述锁定单元。 10. The method according to claim 1, characterized in that the physical unit comprises a first memory and a second memory unit, and to be sent to the destination of the data stored in said first memory, The method further comprises, the locking of the storage of the data to be transmitted in a first memory means, so as to prevent the data to be transmitted is switched to the second memory; in addition to the data to be transmitted in the virtual memory address addition, the host also send a proxy to the storage of the data to be transmitted to provide the physical address of the first memory of the unit; the unit to send agents to retrieve the lock from said first memory The data to be transmitted; and after the retrieval of the data unit in said agent transmitting the data to be transmitted from the first stored memory lock, releasing the stored data to be transmitted in a first memory the locking unit.
11. 一种适合与目标通信的系统,包括: 存储器;耦合到所述系统存储器的处理器;可由所述处理器在存储器中执行的操作系统;网络适配器;数据存储装置;适合管理对所述数据存储装置的输入/输出访问的数据存储装置控制器;以及其中所述存储器和所述数据存储装置均包括适合存储数据的物理单元,各单元具有物理地址和映射到所述物理地址的虚拟地址;以及其中所述操作系统和设备驱动程序中的至少一个适合提供主机, 以及所述设备驱动程序和所述网络适配器中的至少一个适合提供发送代理,其中:(i) 所述主机向所述发送代理提供待发送到目标的数据的虚拟存储地址;(ii) 所述发送代理向所述主机提供待发送到所述目标的所述数据的至少部分所述虚拟存储地址;(iii) 所述主机对所述发送代理标识由所述发送代理提供的所述虛拟存储地址来寻址的数据;以及(iv) 所述发送代理向所述目标发送所述标识的数据,建立适合在所述系统与目标之间发送数据包的有效连接。 11. A method for communicating with the target system, comprising: a memory; system memory coupled to the processor; executed by the operating system processor in a memory; network adapter; data storage means; for the management of the input data storage means / output access to a data storage device controller; and wherein said memory and said data storage means comprises a physical unit is adapted to store data, each unit having a physical address mapped to the physical address and the virtual address ; and wherein the operating system and device drivers to at least provide a suitable host, and the device driver and the network adapter for providing at least one sending agent, wherein: (i) the host to the sending agents to provide data to be sent to the target virtual memory address; (ii) the sending proxy to the host to provide the data to be sent to the target of at least a portion of the virtual memory address; (iii) the The virtual storage address of the sending host agent identification provided by the sending agent to address data; and data (iv) the transmitting agent sends the identifier to the target, the system is adapted to establish Send an effective connection between the target and the packet.
12.如权利要求11所述的系统,其特征在于,所述系统还包括緩冲器,以及所述主机向所述发送代理标识数据包括:所述主机向所述据,述緩冲器中。 12. The system according to claim 11, characterized in that the system further comprises a buffer, and the host agent transmits to the identification data comprising: the data to the host computer, said buffer .
13. 如权利要求11所述的系统,其特征在于,所述主机向所述发送代理标识数据包括:所述主机向所述发送代理提供包含由所述发送代理提供的所述虚拟存储地址来寻址的所述数据的存储单元的物理地址。 13. The system of claim 11, wherein the host identification data to the sending agent comprising: the host transmits to the proxy provided by the transmission comprising storing the virtual address of the proxy to provide the physical address of the memory cell of the addressed data.
14. 如权利要求13所述的系统,其特征在于,所述主机标识的所述数据存储在所述存储器中,以及所述主机所提供的所述物理地址是存储器的物理单元,所述系统还包括锁定所述主机提供给所述发送代理的所述存储器的所述物理存储单元,以便防止由所述发送代理提供的所述虚拟地址来寻址的所述数据;故交换到所述数据存储装置。 14. The system of claim 13, wherein said host said identification data stored in the memory, and the physical address is provided by the host physical unit memory, the system further comprising locking the host provided to the physical storage unit of the memory agent of the transmission so as to prevent said data provided by the sending agent to address the virtual address; it switched to the data storage means.
15.如权利要求14所述的系统,其特征在于,所述发送代理还适提供的所述虚拟地址来寻址的所述数据;以及所述发送代理和所述主机中的至少一个还适合在所述发送代理向所述目数据之后,释放所述存储器的所述锁定的物理存储单元。 15. The system of claim 14, wherein said transmitting the data of the virtual address of the proxy is further adapted to provide the addressing; and the sending agent and at least one of said host further adapted After the sending proxy to the project data, release physical storage unit of the memory of the lock.
16.如权利要求11所述的系统,其特征在于,所述发送代理还适数据的确认;。 16. The system of claim 11, wherein said agent is further adapted to send the confirmation data;. 是所述发送代理发送到所述目标、但未被确认为所述目标成功接收的数据的虚拟地址。 The sending agent is sent to the target, but has not been confirmed as the target virtual address successfully received data.
17. 如权利要求11所述的系统,其特征在于,所述发送代理还适合于:从所述目标接收对所述发送代理成功发送且所述目标成功接收的数据的确认;以及向所述主机提供由所述发送代理发送到所述目标、但未被确认为所述目标成功接收的所述凄史据的所述虛拟地址;其中所述主机还适合对所述发送代理标识由所述发送代理提供的所述虚拟存储地址来寻址的所述未确认数据;以及所述发送代理还适合向所述目标重发所述标识的未确认数据。 17. The system of claim 11, wherein said delivery agent is further adapted to: receive an acknowledgment to the sending agent and the target was successfully sent successfully received data from the target; and to the Host provided by the sending agent is sent to the target, but the target has not been confirmed as successfully received the sad history of the virtual address data; wherein the host is also suitable for the sending agent identified by the said virtual memory address sent to the address provided by the agent is not data validation; and also for the sending proxy to the target retransmitting said identification data is not acknowledged.
18. 如权利要求11所述的系统,其特征在于,所述主机向所述发据结构,所述数据结构包括:地址字段,包含存储待发送到所述目标的数据块的多个单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;以及序列号字段,包含表示与所述数据块中的数据相关的数据包序列号的值。 18. The system of claim 11, wherein said host to send said data structure, said data structure comprising: a plurality of cells where the address field, comprising storing data to be sent to the target block One of the virtual address; the size field contains a value indicating the data block size; and the serial number of fields, including value represents the data in the data block associated with the packet sequence number.
19. 如权利要求11所述的系统,其特征在于,所述主机向所述发送代理提供虛拟地址包括所述主机向所述发送代理提供多个数据结构,其中各数据结构包括:地址字段,包含存储待发送到所述目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;序列号字段,包含表示与所述数据块中的数据相关的数据包序列号的值;以及链接字段,包含所述多个数据结构中的另一个婆:据结构的虛拟地址。 19. The system of claim 11, wherein said host computer to said virtual address comprises sending agent provides the host to the agent to provide a plurality of transmission data structures, wherein each data structure comprises: an address field, virtual address comprising a plurality of memory cells storing the data to be sent to the target block is one of; the size of the field containing a value indicating the data block size; sequence number field containing data represents the data block the value of the associated data packet sequence number; and link field containing the plurality of data structures in another woman: It is the virtual address of the structure.
20. 如权利要求11所述的系统,其特征在于,待发送到所述目标的所述数据存储在所述存储器中,以及所述主机和所述发送代理中的至少一个适合于:锁定存储所述待发送数据的所述存储器的所述单元,以便防止所述待发送数据被交换到所述数据存储装置;其中,除了所述待发送数据的所述虚拟存储地址之外,所述主机还适合向所述发送代理提供存储所述待发送数据的所述存储器的所述单元的物理地址;其中,所述发送代理还适合从所述存储器的所述锁定单元检索所述待发送数据;以及在所述发送代理从存储所述待发送数据的所述存储器的所述锁定单元检索所述数据之后,释放存储所述待发送数据的所述存储器的所述锁定单元。 20. The system according to claim 11, characterized in that the data to be sent to the target storage in the memory, and the host and the at least one transmission proxy is adapted to: store lock wherein said memory unit of the data to be transmitted in order to prevent the exchange of data is to be transmitted to said data storage means; wherein, in addition to the data to be transmitted in the virtual memory address, the host further adapted to send the agent provides the stored data to be transmitted of the physical address of the memory unit; wherein said delivery agent is further adapted to lock the memory from the unit retrieves the data to be transmitted; After retrieving the data unit and locked in on the transmission from the proxy to be stored in the memory of the transmission data, the release of the data to be transmitted is stored in the memory of the locking unit.
21. —种把数据从源发送到目标的装置,所述装置包括:用于使主机能够向所述源的发送代理提供待发送到目标的数据的虚拟存储地址的部件,其中所述数据存储在所述源的多个物理单元中,各单元具有物理地址以及映射到所述物理地址的虚拟存储地址;用于使所述发送代理能够向所述主机提供待发送到所述目标的所述数据的至少部分所述虚拟存储地址的部件;用于使所述主机能够对所述发送代理标识由所述发送代理提供的所述虚拟存储地址来寻址的数据的部件;以及用于使所述发送代理能够向所述目标发送所述标识的数据的部件。 21. - kind of the data transmitted from the source to the target device, the apparatus comprising: means for the host to send agents to provide the source of parts to be sent to the target virtual memory address of the data, wherein the data storage a plurality of physical units of the source, each element having a physical address and a virtual storage address is mapped to the physical address; means for causing the transmission to the agent to be sent to the host to provide target data means for causing the hosts to send the proxy for the identification provided by the transmitting agent of the virtual memory addresses to addressable;; at least a portion of the virtual memory address of the member of the data and for making the said sending agent data can be transmitted to the target the identified components.
22. 如权利要求21所述的装置,其特征在于,所述用于使所述主机能够标识数据的部件包括用于使所述主机能够向所述发送代理提供由所述发送代理提供的所述虚拟地址来寻址的数据的部件,所述装置还包括用于使所述发送代理能够把从所述主机接收的所述数据存储在所述发送代理的緩冲器中的部件。 22. The apparatus according to claim 21, characterized in that the means for causing the host to identification data means includes means for causing the host to be provided by the sending agent to the agent provided by the transmission data member of said virtual address to address, said apparatus further comprising means for transmitting said agent to said data received from said host storage agent sending said buffer member.
23. 如权利要求21所述的装置,其特征在于,所述用于使所述主机能够标识数据的部件包括用于使所述主机能够向所述发送代理提供包含由所述发送代理提供的所述虛拟存储地址来寻址的所述数据的存储单元的物理地址的部件。 23. The apparatus according to claim 21, characterized in that the means for causing the host to identification data comprises means for enabling the host to send to the proxy provided by the sending agent comprising the It means the physical address of the data storage unit of the virtual memory address to addressing.
24. 如权利要求23所述的装置,其特征在于,所述物理单元包括第一存储器的单元和第二存储器的单元,所述主机所标识的所述数据存储在所述第一存储器中,所述主机所提供的所述物理存储地址是包一存储器的物理存储单元,所述装置还包括用于锁定所述主机提供到所述发送代理的所述第一存储器的所述物理存储单元,以便防止由所述发送代理提供的所述虚拟地址来寻址的所述数据被交换到所述第二存储器的部件。 24. The apparatus according to claim 23, characterized in that the physical unit comprises a first memory for storing the data unit and a second memory unit, the host identified in said first memory, The physical memory address provided by the host physical memory cell of a memory pack, said locking means further comprises means for providing said host computer to said storage means the physical transmission of the agent of the first memory, so as to prevent the data sent by the agent to provide the virtual address to the address is switched to the second memory means.
25.如权利要求24所述的装置,其特征在于,所述装置还包括: 用于使所述发送代理能够从所述第一存储器的所述锁定的物理存储单元中检索由所述发送代理提供的所述虚拟地址来寻址的所述数据的部件;以及述虚拟地址来寻址的所述数据之后释放所述第一存储器的所述锁定的物理存储单元的部件。 25. The apparatus according to claim 24, characterized in that said apparatus further comprises: means for storing a physical agent to make the transmission of the first lock from the memory retrieved by the sending agent and after the release of the data component of said virtual address to said first addressable memory locking means physical storage; the data of the virtual address to the address provided by the member.
26. 如权利要求21所述的装置,其特征在于,所述装置还包括用于从所述目标接收对所述发送代理成功发送且所述目标成功接收的数据的确认的部件;以及所述发送代理提供给所述主机的所述虚拟存储地址是所述发送代理发送到所述目标、但未被确认为所述目标成功接收的数据的虚拟地址。 26. The apparatus according to claim 21, characterized in that said apparatus further comprises means for receiving an acknowledgment of a successful transmission of the sending agent and the target data successfully received from the target; and the sending agent provided to the host of the virtual memory address of the sending agent is sent to the target, but has not been confirmed as the target virtual address successfully received data.
27. 如权利要求21所述的装置,其特征在于,所述装置还包括: 用于从所述目标接收对所述发送代理成功发送且所述目标成功接收的数据的确认的部件;用于使所述发送代理能够向所述主机提供所述发送代理发送到所述目标、但未被确认为所述目标成功接收的数据的虚拟地址的部件;用于使所述主机能够对所述发送代理标识由所述发送代理提供的所述虚拟存储地址来寻址的所述未确认数据的部件;以及用于使所述发送代理能够向所述目标重发所述标识的未确认数据的部件。 27. The apparatus according to claim 21, characterized in that said apparatus further comprises: means for receiving acknowledgment of successful transmission of the sending agent and the target data successfully received from the target; for so the sending agent to send to the host to provide the agent sends to the target, but has not been confirmed as part of the virtual address of the target successfully received data; for causing the host computer can send to the said virtual memory address provided by said agent identifies the agent sent to addressable components of unacknowledged data; and means for causing the transmission to the target agent to the retransmission of the unacknowledged data identification member .
28. 如权利要求21所述的装置,其特征在于,所述用于使所述主够向所述发送代理提供至少一种数据结构的部件,所述数据结构包括:地址字段,包含存储待发送到所述目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;以及序列号字段,包含表示与所述数据块中的数据相关的数据包序列号的值。 28. The apparatus according to claim 21, characterized in that the means for providing at least enough so that the main components of a data structure transmitted to the proxy, the data structure comprising: an address field, comprising storage pending sent to the target virtual address of the plurality of memory cell blocks one of; size field contains a value indicating the data block size; and a sequence number field containing data represents the data block associated the value of the packet sequence number.
29. 如权利要求21所述的装置,其特征在于,所述用于使所述主机能够向所述发送代理提供虚拟地址的部件包括用于使所述主机能够向所述发送代理提供多个数据结构的部件,其中各数据结构包括: 地址字段,存储待发送到所述目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;序列号字段, 包含表示与所述数据块中的数据相关的数据包序列号的值;以及链接字段,包含所述多个数据结构中的另一个数据结构的虚拟地址。 29. The apparatus according to claim 21, characterized in that the means for causing the host to provide a virtual address to the member sending the proxy includes means for causing said host to provide to the plurality of delivery agent member of the data structure, wherein each data structure comprises: an address field, a plurality of memory to be sent to the virtual address stored in the target data block of one unit; size field contains a value indicating the data block size; sequence No field that contains a value representing the data in the data block associated with the packet sequence number; and a link field containing the plurality of virtual address data structure in another data structure.
30. 如权利要求21所述的装置,其特征在于,所述物理单元包括第一存储器和第二存储器的单元,以及待发送到所述目标的所述数据存储在所述第一存储器中,所述装置还包括,用于锁定存储所述待发送数据的所述第一存储器的所述单元,以便防止所述待发送数据被交换到所述第二存储器的部件;用于除了所述待发送数据的所述虚拟存储地址之外,使所述主机能够还向所述发送代理提供存储所述待发送数据的所述第一存储器的所述单元的物理地址的部件;用于使所述发送代理能够从所述第一存储器的所述锁定单元中检索所述待发送数据的部件;以及的所述锁定单元中4企索所述数据之后,释放存储所述待发送数据的所述第一存储器的所述锁定单元的部件。 30. The apparatus according to claim 21, characterized in that the physical unit comprises a first memory and a second memory unit, and to be sent to the destination of the data stored in said first memory, said apparatus further comprising, said means for locking said stored data to be transmitted in the first memory, so as to prevent the data to be transmitted is switched to the second memory means; to be used in addition to the The transmission data outside the virtual memory address, so that the host can also transmit to the agent provides the transmission data to be stored in said first memory means of said physical address unit; means for causing said After the first 4 units of the data rate of the cable and lock, releasing the stored data to be transmitted; the unit in part to retrieve the data to be sent from the sending agent can lock the first memory a memory unit part of the lock.
Description  translated from Chinese

为通过网络的数据传输管理存储器的方法、系统和程序技术领域 The method of data transmission management memory networks, systems and procedures for the technical field

本发明涉及为通过网络的数据传输管理存储器的方法、系统和程序。 The present invention relates to a method of data transmission through the memory management of the network, systems and procedures.

背景技术 Background

在网络环境中,主机上的网络适配器,诸如以太网控制器、光纤 In a network environment, the network adapter on the host, such as an Ethernet controller, optical fiber

信道控制器等,将接收输入/输出(I/0)请求或者从主机发起的对I/O请 Channel controller, will receive input / output (I / 0) or from a host-initiated requests for I / O requests

求的响应。 Demand response. 主机操作系统通常包括与网络适配器硬件通信的设备驱动 Host operating systems typically include a network adapter to communicate with the hardware device drivers

程序,以便管理网络上传送的1/0请求。 Program to manage 1/0 requests transmitted over the network. 主机还包括传输协议驱动程 Host also includes a transport protocol driver

序,.它把要通过网络传输的数据包装成数据包,其中每个数据包具有目标地址以及要传送的数据部分。 Sequence, which via a data network to be packaged into a data packet transmission, wherein each packet has a destination address and a data part to be transferred. 在网络适配器上接收的数据包通常存储在主机内存中可用的所分配的包緩沖器中。 Allocated packet buffer packets are usually stored on the network adapter receives the available memory in the host. 传输协议驱动程序处理由网络适配器接收的、存储在包緩沖器中的数据包,并存取嵌入数 Transport Protocol by the network adapter driver handles received data packets stored in the packet buffer, and access embedding

据包中的任何I/O命令或数据。 According to package any I / O commands or data.

例如,传输协议驱动程序可实现传输控制协议(TCP)和因特网协议(IP),从而对要传送的数据进行编码和编址,以及对网络适配器上接收的TCP/IP数据包中的净荷数据进行解码和存取。 For example, the transport protocol driver enables Transmission Control Protocol (TCP) and Internet Protocol (IP), therefore, the data to be transmitted is encoded and addressing, as well as on the network adapter receives a TCP / IP packet payload data decode and access. IP指定又称作数据报的数据包的格式以及寻址方案。 IP specifies the format and addressing scheme, also known as datagram packet. TCP是高层协议,它建立目标和源之间的连接。 TCP is a high-level protocol, it establishes a connection between the target and the source.

设备驱动程序可能利用大量主处理器资源来处理送往网络适配器的网络传输请求。 Device drivers may use a lot of resources to deal with the main processor sent to the network adapter network transfer requests. 减少主处理器上负荷的一种技术是使用TCP/IP 卸载引擎(TOE),其中TCP/IP协议相关操作是在网络适配器硬件中实现的,与设备驱动程序相反,从而使主处理器不需要执行部分或全部TCP/IP协议相关操作。 Reducing the load on the host processor technique is to use TCP / IP offload engine (TOE), which TCP / IP protocol related operations are implemented in the network adapter hardware, but rather with the device driver, so that the main processor does not need perform some or all of TCP / IP protocol related operations. 传输协议操作包括把数据与校验和及其它信息包装在TCP/IP数据包中并发送该数据包。 Data transmission protocol operations include the checksum and other information packaged in a TCP / IP packets and transmits the packet. 这些发送操作通过发送 The send operation by sending

代理来执行,发送代理可通过TOE、网络接口卡或集成电路、驱动程序、TCP/IP栈、主处理器或这些单元的组合来实现。 Agent to perform, sending agent can be achieved by TOE, network interface card or IC drivers, TCP / IP stack, the main processor combination, or these units. 传输协议操作还包括从网络上接收TCP/IP数据包以及对TCP/IP数据包拆包,以便存取净荷或数据。 Transmission protocol operation further comprises receiving from the network TCP / IP packets and the TCP / IP packet unpacking to access the payload or data. 这些接收操作由接收代理来执行,接收代理同样可通过TOE、驱动程序、主处理器或这些单元的组合来实现。 The reception operation performed by the receiving agent, the receiving agent by TOE same driver, the main processor combination, or these units to achieve.

图1说明在TCP连接中由源主机的发送代理发送给目标主机的TCP/IP数据包的数据流10。 Figure 1 illustrates the data transmitted by the TCP connection proxy source host to the target host TCP / IP packet stream 10. 在行业接受的TCP RFC(请求注解)所指定的TCP协议中,各数据包被分配唯一的序列号。 In an industry-accepted TCP RFC (Request for Comments) specified TCP protocol, each packet is assigned a unique serial number. 当各数据包被成功;也发送到目标主才几时,目标主冲几向源主冲几发送确i人,通过该lt据包成功接收的包序列号来通知源主机。 As each data packet is successfully; also sent to target only when the primary target main source of primary punch to punch a few really i sent several people, according to the packet successfully received packet sequence number to notify the source host via the lt. 因此,流10包含已被发送和确认被目标主机所接收的一部分12数据包。 Therefore, a portion of stream 10 containing 12 packets have been sent and acknowledgment is received by the destination host. 流10还包含已被源主机发送4旦未确认;故目标主才几接收的一部分14数据包。 Stream 10 also contains a source host has been sent 4 deniers unacknowledged; it targets only a few main part of 14 packets received. 发送代理维护TCP 未确认数据指针16,它指向第一个未确认已发送数据包的序列号。 Send agent maintains TCP data pointer 16 is not confirmed, it points to has been sent packet sequence number of the first unacknowledged.

用来存储在目标主机上接收的数据包的包緩沖器的容量一般大小有限。 Capacity packet buffer for storing the received data packets on the target host is generally limited size. 根据TCP协议,目标主机通过发送在本文中称作TCP窗口(在图1中以20指示)的值,通告它具有的可用緩冲空间的大小。 According to the TCP protocol, known as the target host by sending a TCP window in this article (with 20 indicating in FIG. 1), the value advertised size it has available buffer space. 因此, 源主机发送代理使用TCP窗口值来限制发送到目标主机的未完成数据包的数量、即源主机仍未收到确认的已发送数据包的^:量。 Therefore, the source host sends the agent uses TCP window size to limit the amount sent to the target host unfinished packets that the source host has not received confirmation of transmitted packets ^: volume. TCP 下一个数据指针22指向要发送到目标主机的下一个数据包的序列号。 Under TCP data pointer 22 points to the next data packet destination host's serial number to be sent to. 数据流10在TCP下一个数据指针22与TCP窗口20结尾之间的部分24表示这样的数据包:它们尚未被发送,但允许在TCP协议下发送,而不需要等待任何附加确认,因为这些数据包仍然在TCP窗口20内,如图1所示。 A data stream 10 and the pointer 22 of the end portion 24 between the window 20 shows such TCP packets at the TCP: they have not been sent, but allows transmission in the TCP protocol, without waiting for any additional confirmation, because these data TCP packet is still within the window 20, shown in Figure 1. 数据流10在TCP窗口20的结束边界28之外的部分26不允许在收到附加确认之前在TCP协议下发送。 Data stream 10 TCP window border 20 of 28 beyond the end portion 26 is not allowed to receive any additional confirmation before sending in the TCP protocol.

当目标主机把确认发送到源主机时,TCP未确认数据指针16移动以指明对该连接的附加数据包的确认。 When the target host to send an acknowledgment to the source host, TCP does not confirm the data pointer 16 is moved to indicate the additional data packets to the confirmation. TCP窗口20的起始边界30 随TCP未确认数据指针16移动,使得TCP窗口结束边界28也移动,从而可为该连接发送其它数据包。 TCP window starting with the border 30 20 unacknowledged TCP data pointer 16 is moved so that the end of the TCP window border 28 is also mobile, allowing for the connection to send other packets. 如果数据流10的部分14中的数据包在一定时段之后仍未被确认,则发送代理通常将重发未确认的数据包,直至收到对那些数据包的确认。 If the data stream portion 14 of the packet 10 has not been confirmed after a certain period, then the sending agent generally will resend unacknowledged packets until it receives confirmation of those packets.

为了开始发送数据,源主机通常把数据流10的数据存储在可由发送代理存取的緩冲器中。 To start sending data, the source host usually stream data is stored in a 10 by sending a proxy to access the buffer. 一种这样的緩冲器称作"循环緩冲器", 其中待传输的数据被复制并且通常保留在其中,直到循环緩冲器10 中的所有数据已经被发送(以及根据需要被重传)并且所有数据已经一皮确认为成功接收为止。 One such buffer known as "circular buffer", wherein data to be transmitted is copied and generally retained therein until the circular buffer 10 All data has been transmitted (and retransmitted if necessary) and all data has been recognized as a skin successfully been received.

循环緩冲器采用通常把数据短期存储在集成电路中的物理存储 Circular buffer usual short term storage of the data is physically stored in the integrated circuit

器来实现,它的一个实例是随机存取存储器、即RAM。 Is to achieve, it's an example of a random access memory, namely RAM. 通常可以较快地从这类物理存储器中存取数据。 You can usually access data from such physical memory faster. 主机通常具有诸如硬盘和光盘之类的附加物理存储器,以便较长期地存储数据。 Host typically has additional physical memory, such as hard disks and CD-ROM and the like, so that longer-term data storage. 这些基于非集成电路的存储器往往比物理存储器更慢地检索数据。 These tend to retrieve data based on non-memory integrated circuit memory slower than the physical.

计算机的操作系统通常利用虚拟存储空间,它往往比计算机的短 Computer's operating system typically utilize virtual memory space, it is often shorter than the computer

期物理存储器的存储空间大得多。 Storage space much of the physical memory. 图2表示虚拟存储空间50和短期物理存储空间52的一个实例。 Figure 2 shows an example of virtual storage space 50 and the short-term physical storage space 52. 如硬盘之类的长期存储器的存储空间以54表示。 Such as long-term memory storage space of a hard disk 54 indicated. 数据流10中待发送的数据最初可存储在各种存储装置的非邻接部分、即不连续的存储地址中。 The data in the data stream 10 may be sent initially stored in the non-contiguous portions of various storage devices, i.e., in discontinuous memory addresses. 例如,以10a和10b表示的两个部分可以存储在物理存储器的物理存储空间52的非邻接部分,而以10c表示的另一个部分可存储在硬盘驱动器中,如图2所示。 For example, 10a and 10b denote two parts may be stored in non-contiguous portion of physical storage space of the physical memory 52, and the other portion 10c shows may be stored in the hard disk drive, as shown in Fig. 计算机的操作系统采用虚拟存储地址空间50来跟踪数据流10的部分10a、 10b和10c的实际位置。 Computer's operating system virtual memory address space 50 to track the data stream 10 portions 10a, 10b and 10c of the actual position. 因此,虚拟存储地址空间50的部分50a被映射到其中存储数据部分10a的物理存储空间52的物理存储地址。 Therefore, the virtual memory address space 50 in which portion 50a is mapped to the physical storage section 10a for storing data of a physical memory address space 52. 同样,虚拟存储地址空间50的部分50b被映射到其中存储数据部分10b 的物理存储空间52的物理存储地址。 Similarly, the virtual memory address space 50 of portion 50b which is mapped to the data memory portion 10b of the physical storage space 52 of the physical memory address. 此外,虚拟存储地址空间50的部分50c被映射到其中存储数据部分10c的长期硬盘驱动器存储空间54的物理存储地址。 In addition, the virtual memory address space portion 50 is mapped to 50c wherein the hard disk drive to store long-term data storage portion 10c of the physical memory address space 54. 空白部分50d表示虚拟存储地址空间50的未分配或未映射部分。 Blank portion 50d represents the virtual memory address space unallocated, or unmapped portion 50. 由于物理存储器中的存储空间通常比较有限,因此存储在物理存储器中的数据的部分可被复制,即被"交换"到硬盘驱动器或其它长期存储器,以便为其它数据让出物理存储器中的空间。 Due to the physical memory is usually limited storage space, some of the data stored in the physical memory may be copied, namely "exchange" on the hard drive or other long-term memory in order to make the other data in physical memory space. 因此,数据部 Thus, the data portion

分10c可以从物理存储器交换到硬盘驱动器。 10c points can be exchanged from the physical memory to the hard drive. 当数据部分10c被交换到硬盘驱动器时,被交换数据部分的虚拟存储地址被映射到如图2所示的硬盘驱动器存储空间54而非先前存储部分10c的物理存储空间52的新的硬盘驱动器物理存储地址。 When the data section 10c is switched to the hard disk drive is switched virtual memory addresses are mapped to the data portion of the hard disk drive storage space 54 as shown in FIG. 2 instead of the previously stored portion 10c of physical storage space 52 of the new hard drive is physically memory address.

图3表示用于根据TCP/IP RFC系列的Berkeley软件设计(BSD)TCP/IP栈来发送数据的先有技术操作。 Figure 3 shows for transmitting in accordance with TCP / IP RFC series Berkeley Software Design (BSD) TCP / IP stack data prior art operation. 响应发送数据的数据流10的请求,可包括计算机操作系统或驱动程序或者这两者的主机从物理存储器和长期存储装置的各个单元收集(框70)数据流10的各种数据部分10a、 lOb...lOn。 In response to a request transmitted data stream 10 may include a computer operating system or drivers, or both the host (block 70), a variety of data streams from each unit collected 10 physical memory and long-term storage devices section 10a, lOb ... lOn. 如图4所示,主才几把所收集的数据流部分10a、 10b…10n存储在物理存储空间52的毗连存储单元中。 4, only a few of the main data collected flow section 10a as shown, in the 52 contiguous physical memory storage unit 10b ... 10n storage. .这样, 数据流10的数据被组装,以便传输。 Thus, the data stream 10 is assembled for transmission.

另外,主机通过主机操作系统"锁定"(框72)包含数据流10的物理存储单元。 In addition, the host through the host operating system "lock" (block 72) contains a data stream of the physical storage unit 10. 锁定这些存储单元以防止其它应用程序在数据流10 的传输过程中使数据流10的数据的一些部分被换出到长期存储器。 These locations are locked to prevent other applications in the data stream transmission 10 of manipulation portions of the data stream 10 is swapped out to the long-term memory. 主机向发送代理发送(框74)包含数据流10的锁定物理存储单元的物理存储地址。 Send to send the host (block 74) contains data streams are locked physical memory address of the physical storage unit 10. 进行响应,发送代理开始从锁定存储单元发送(框76) 包含数据的数据包,并在数据包被成功发送和接收时开始从目标主机接收(框78)确认。 In response, the agent begins transmitting unit transmits the lock memory (block 76) contains a packet of data, and starts to be transmitted and received from the target host receives (block 78) to confirm the success of the data packet. 发送代理继续发送(框76)数据包以及接收(框78)确认。 Send Agents continue to send (block 76) and receiving packets (block 78) to confirm. 未确认数据包被重发(框76),直到它们被确认(框78)为止。 Unacknowledged packet is retransmitted (block 76) until they are confirmed (block 78) so far. 一旦数据流10的所有数据包已经被成功地发送和确认(框80),主机释放(框82)包含数据流10的数据的物理存储单元。 Once all the packets of data stream 10 has been successfully transmitted and acknowledgment (block 80), the host is released (block 82) contains the physical data stream data storage unit 10. 释放之后,存储在释放物理存储单元中的数据可根据需要被交换到长期存储器。 After the release, the release of the data stored in the physical storage unit can be switched to long-term storage as required.

然而,本领域中一直需要提高数据传输中存储器使用的性能。 However, a continuing need in the art to improve the performance of memory used by data transmission.

发明内容根据本发明的第一方面,提供一种把数据从源发送到目标的方 According to a first aspect of the present invention, there is provided a method of sending data from the source to the target square

法,包括:主机,向源的发送代理提供待发送到目标的数据的虚拟存 Method, comprising: a host to send proxy sources to provide objective data to be sent to the virtual memory

储地址,其中数据被存储在源的多个物理单元中,各单元具有物理地 Storage addresses, wherein data is stored in a plurality of physical units sources, each unit having physically stored

址以及映射到物理地址的虛拟存储地址;发送代理向主机提供待发送到目标的数据的至少部分虛拟存储地址;主机向发送代理标识数据, 所标识的数据由发送代理提供的虚拟存储地址来寻址;以及发送代理向目标发送所标识的数据。 Address and mapped to the physical address of the virtual memory address; send a proxy to the host to provide objective data to be sent to at least a portion of the virtual memory address; host sends agent identification data, the virtual memory address identified data provided by either the sending agent and a data transmission agent sends to the target identified; address.

在本发明的一个实施例中,主机向发送代理标识数据包括:主机 In one embodiment of the invention, the host sends the agent identification data include: Host

向发送代理提供由发送代理提供的虛拟地址来寻址的数据,所述方法还包括发送代理把从主机接收的数据存储在发送代理的緩冲器中。 Provided provided by the sending proxy virtual addresses to address data to the sending agent, the method further includes transmitting a buffer agent sending agent received from the host data storage. 在本发明的一个实施例中,主机向发送代理标识数据包括:主机 In one embodiment of the invention, the host sends the agent identification data include: Host

的存储单元的物理地址。 The physical address of the memory cells.

在本发明的一个实施例中,物理单元包括第一存储器的单元和第二存储器的单元,主机所标识的数据存储在第一存储器中,主机提供的物理存储地址是包含由发送代理提供的虚拟地址来寻址的数据的第一存储器的物理存储单元,所述方法还包括锁定主机向发送代理提供的第一存储器的物理存储单元,以便防止由发送代理提供的虛拟地址来寻址的数据被交换到第二存储器。 In one embodiment of the invention, the physical unit includes a first memory cell and the second memory unit, the data storage host identified in the first memory, the physical memory address provided by the host that contains the virtual supplied by the sending agent physical storage locations in the first memory addresses to address the data, the method further comprises a locking physical memory cell of the first memory of the host to send agents to provide in order to prevent the sending agent provided by the virtual address to the address data is switching to the second memory.

在本发明的一个实施例中,所述方法还包括:发送代理爿(人第一存 In one embodiment of the present invention, the method further comprising: sending proxy valves (one first memory

寻址的数据之后,释放第一存储器的锁定的物理存储单元。 After the address data, release physical storage unit is locked in a first memory.

在本发明的一个实施例中,所述方法还包括从目标接收对发送代 In one embodiment of the present invention, the method further comprises receiving from the target to send Generation

理成功发送且目标成功接收的数据的确认;其中发送代理提供给主机 Confirm rationale and objectives successfully sent successfully received data; wherein the transmitting agent to the host

的虚拟存储地址是发送代理发送到目标、但未被确认为目标成功接收 The virtual memory address is to send a proxy to the target, but the target has not been identified as the successful reception

的数据的虚拟地址。 Virtual address data.

在本发明的一个实施例中,所述方法还包括:从目标接收对发送代理成功发送且目标成功接收的数据的确认;发送代理向主机提供由发送代理发送到所述目标、但未被确认为目标成功接收的数据的虚拟 In an embodiment of the present invention, the method further comprises: receiving acknowledgment data transmission agent successfully transmitted and successfully received from the target goals; send Agent to the host to provide the target by the sending agent sent to, but not confirmed virtual target data successfully received

地址;主机对发送代理标识由发送代理提供的虚拟存储地址来寻址的未确认数据;以及发送代理向目标重发标识的未确认数据。 Address; a host of virtual memory address of the sending agent identification provided by the sending agent to address the data unacknowledged; and sending agents to target retransmission identification data is not acknowledged.

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括: 主机向发送代理提供至少一种数据结构,所述数据结构包括:地址字段,包含存储待发送到目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;以及序列号字段, 包含表示与所述数据块中的数据相关的数据包序列号的值。 In one embodiment of the invention, the host sends agent provides a virtual address comprising: providing at least one data structure hosts to send the proxy, the data structure comprising: a plurality of address field that contains the stored data to be sent to the target block virtual address storage unit one; the size of the field that contains values indicating the data block size; and the serial number of fields, including value represents the data in the data block associated with the packet sequence number.

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括: 主机向发送代理提供多个数据结构,其中各数据结构包括:地址字段, 存储待发送到所述目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;序列号字段,包含表示与所述数据块中的数据相关的所述数据包序列号的值;以及链接字段,包含所述多个数据结构中的另一个数据结构的虚拟地址。 In one embodiment of the invention, the host virtual address to send agents include: the host to provide more data structures to send the agent, wherein each data structure includes: address field, a plurality of memory to be sent to the target data blocks a virtual address of one of the memory cell; size field contains a value indicating the data block size; sequence number field contains a value representing the data in the data block associated with the data packet sequence number; and a linking field , further comprising a plurality of data structures of the data structure of the virtual address.

在本发明的一个实施例中,所述物理单元包括第一存储器和第二存储器的单元,以及待发送到貝标的数据存储在第一存储器中,所述方法还包括:锁定存储待发送数据的第一存储器的单元,以便防止待发送数据被交换到第二存储器;除了待发送数据的虚拟存储地址之外,主机还向发送代理提供存储待发送数据的第一存储器的单元的物理地址;发送代理从第一存储器的锁定单元中检索待发送数据;以及在发送代理从存储待发送数据的第一存储器的锁定单元中检索数据之后,释放存储待发送数据的第一存储器的锁定单元。 In one embodiment of the present invention, the physical unit comprises a first memory and a second memory unit, and the data to be sent to the underlying shell stored in the first memory, the method further comprises: storing data to be transmitted locking first memory unit, in order to prevent data to be transmitted is switched to the second memory; in addition to data to be transmitted virtual memory address, the host also sent agents to provide storage for data to be transmitted physical address of the first memory unit; send Agents from the first memory of the locking unit to retrieve data to be transmitted; and a unit after retrieving data sent agents to be locked in transmitting data from the memory of the first memory, freeing memory data to be transmitted first memory locking unit.

根据本发明的第二方面,提供一种适合与目标通信的系统,包括: 存储器;耦合到系统存储器的处理器;可由处理器在存储器中执行的操作系统;网络适配器;数据存储装置;适合管理对数据存储装置的输入/输出访问的数据存储装置控制器;以及可由处理器在存储器中执行的设备驱动程序。 Data storage means;; a memory; a processor coupled to the system memory; processor execution by the operating system in a memory; network adapter for management: According to a second aspect of the present invention, there is provided a system for communicating with a target, comprising means for storing data input / output access to a data storage device controller; and a device driver executable by the processor in the memory. 存储器和数据存储装置均包括适合存储数据的物理单元,各单元具有物理地址和映射到物理地址的虛拟地址。 Memory and data storage means comprises a physical unit is adapted to store data, each unit having physical addresses and virtual addresses are mapped to physical addresses. 操作系统和设备驱动程序中的至少一个适合提供主机,以及设备驱动程序 Operating system and device drivers to at least provide a suitable host, and the device driver

和网络适配器中的至少一个适合提供发送代理,其中:(i)主机向发送代理提供待发送到目标的数据的虚拟存储地址;(ii)发送代理向主机提供待发送到目标的数据的至少部分虚拟存储地址;(iii)主机对发送代理标识由发送代理提供的虚拟存储地址来寻址的数据;以及(iv)发送代理向目标发送标识的数据,建立适合在系统与目标之间发送数据包的有效连"l妾。 And a network adapter for providing at least one sending agent, wherein: (i) hosts to send the proxy to provide objective data to be sent to the virtual memory address; (ii) send the proxy to be sent to the host to provide at least part of the target data virtual memory address; (iii) host data for virtual memory address of the sending agent identification provided by the sending agent to address; and (iv) send the proxy data is sent to the target identified, establish suitable for sending data packets between the system and the target Effective even "l concubine.

在本发明的一个实施例中,所述系统还包括緩冲器,以及主机向发送代理标识数据包括:主机向发送代理提供由发送代理提供的虚拟地址来寻址的数据,以及发送代理还适合把从主机接收的数据存储在緩沖器中。 In one embodiment of the present invention, the system further comprises a buffer, and a host to send the agent identification data comprising: providing a host provided by the sending proxy virtual addresses to address data to the sending agent, and sending agents also fit The data received from the host is stored in the buffer.

在本发明的一个实施例中,主机向发送代理标识数据包括:主机 In one embodiment of the invention, the host sends the agent identification data include: Host

的存储单元的物理地址。 The physical address of the memory cells.

在本发明的一个实施例中,主机标识的数据存储在存储器中,以及主机所提供的物理地址是包含由发送代理提供的虚拟地址来寻址的数据的存储器的物理单元,系统还包括锁定主机提供给发送代理的存储器的物理存储单元,以便防止由发送代理提供的虚拟地址来寻址的数据被交换到数据存储装置。 In an embodiment of the present invention, the data stored in the memory of the host ID, and the physical address of the host offer is provided by the sending agent comprising a virtual address to a physical address of the data memory unit, the system also includes a locking Host to the memory of the physical storage unit to send agents to prevent the virtual address provided by sending agents to address data is switched to the data storage device.

在本发明的一个实施例中,发送代理还适合^v存储器的锁定的物 In one embodiment of the present invention, the sending agent is also suitable for locking the object ^ v memory

送代理和主机中的至少一个还适合在发送代理向目标发送由发送代理提供的虚拟地址来寻址的数据之后,释放存储器的锁定的物理存储单元。 Send proxy and host at least one further adapted to transmit the agent sent by the sending agent to provide virtual addresses to address data to the target after the release of the physical storage unit locked memory.

在本发明的一个实施例中,发送代理还适合从目标接收对发送代理成功发送且目标成功接收的数据的确认;以及发送代理提供给主机的虚拟存储地址是发送代理发送到目标、但未被确认为目标成功接收的数据的虚拟地址。 In one embodiment of the present invention, the transmitting agent also adapted to receive confirmation of data transmission agent was successfully sent and received from the target goal of success; and sending agents to the virtual memory address of the host is to send agents to the target, but not identified as the target virtual address of the data successfully received.

在本发明的一个实施例中,发送代理还适合于:从目标接收对发送代理成功发送且目标成功接收的数据的确认;以及向主机提供由发送代理发送到目标、但未被确认为目标成功接收的数据的虚拟地址; 其中主机还适合对发送代理标识由发送代理提供的虚拟存储地址来寻址的未确认数据;以及发送代理还适合向目标重发标识的未确认数据。 In one embodiment of the present invention, the sending agent is further adapted to: confirm the data received on the sending agent was successfully sent and received from the target goal of success; and to the host by sending agents to the target, but the target has not been identified as successful received virtual address data; wherein the host is also suitable for virtual memory address of the sending agent identification provided by the sending agent to address the unacknowledged data; and sending agents also suited to the target retransmission identification data is not acknowledged.

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括主机向发送代理提供至少一种数据结构,数据结构包括:地址字段,包含存储待发送到目标的数据块的多个单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;以及序列号字段,包含表示与所述数据块中的数据相关的数据包序列号的值。 In one embodiment of the invention, the host sends agent provides virtual address includes a host providing at least one data structure to send the agent, the data structure comprising: an address field, comprising a plurality of means for storing data to be sent to the target block in which the a virtual address; size field contains a value indicating the data block size; and the serial number field that contains values represents data in the data block associated with the packet sequence number.

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括主机向发送代理提供多个数据结构,其中各数据结构包括:地址字段, 包含存储待发送到目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;序列号字段,包含表示与所述数据块中的数据相关的数据包序列号的值;以及链接字段, 包含所述多个数据结构中的另一个数据结构的虚拟地址。 In one embodiment of the present invention, the host virtual address comprising a plurality of data structures to provide a host agent transmits to the sending agent, wherein each data structure comprising: an address field comprising a plurality of memory cells store data to be sent to the target block one of the virtual address; size field contains a value indicating the data block size; serial number field that contains values represent the data in the data block associated with the packet sequence number; and a link field containing the more data structures in a virtual address of another data structure.

在本发明的一个实施例中,待发送到目标的数据存储在存储器中,以及主机和发送代理中的至少一个适合于:锁定存储待发送数据的存储器的单元,以便防止待发送数据被交换到数据存储装置;其中, 除了待发送数据的虚拟存储地址之外,主机还适合向发送代理提供存储待发送数据的存储器的单元的物理地址;其中,发送代理还适合从存储器的锁定单元检索待发送数据;以及在发送代理从存储待发送数据的存储器的锁定单元检索数据之后,释放存储待发送数据的存储器的锁定单元。 In one embodiment of the present invention, to be sent to the target data is stored in the memory, as well as host and sending at least one agent suited for: lock the memory cell stores data to be transmitted in order to prevent data to be transmitted is switched to the physical address of the memory in which data to be transmitted in addition to a virtual memory address, the host also provides storage for data to be transmitted to the sending agent unit;; data storage device in which the sending agent is also suitable for cell search to be sent from the lock memory data; and after retrieving the data from the memory to be sent agents to send data memory locking unit, releasing stored data to be transmitted memory locking unit.

根据本发明的第三方面,提供一种把数据从源发送到目标的装置,所述装置包括:用于使主机能够向源的发送代理提供待发送到目标的数据的虛拟存储地址的部件,其中数据存储在源的多个物理单元 According to a third aspect of the present invention, there is provided a method of sending data from source to destination, the apparatus comprising: means for the host to send agents to provide source data object to outgoing members of the virtual memory address, wherein the plurality of physical units of data stored in the source

中,各单元具有物理地址以及映射到物理地址的虛拟存储地址;用于使发送代理能够向主机提供待发送到目标的数据的至少部分虚拟存储地址的部件;用于使主机能够对发送代理标识由发送代理提供的虚拟存储地址来寻址的数据的部件;以及用于使发送代理能够向目标发送标识的lt据的部件。 , Each unit has a physical address and virtual memory addresses are mapped to a physical address; a member of the transmission to the host agent to provide objective data to be sent to at least a portion of the virtual memory address; for a host to be able to send proxy identity and means for sending agents to send data to the target identified lt; a unit of data storage components virtual address provided by sending agents to addressing.

在本发明的一个实施例中,用于使主机能够标识数据的部件包括用于使主机能够向发送代理提供由发送代理提供的虚拟地址来寻址的数据的部件,所述装置还包括用于使发送代理能够把从主机接收的数据存储在发送代理的緩冲器中的部件。 In one embodiment of the present invention, for a host to be able to identify the parts data include a host to send agents to provide data components will be provided by the sending proxy virtual addresses to address, the apparatus further includes means for so send agents to the data received from the host is stored in the transmission buffer agent components.

在本发明的一个实施例中,用于使主机能够标识数据的部件包括 In one embodiment of the present invention, for a host to be able to identify the data elements include

址来寻址的数据的存储单元的物理地址的部件。 It means the physical address of the address of the memory cell to the data addressing.

在本发明的一个实施例中,物理单元包括第一存储器的单元和第二存储器的单元,主机所标识的数据存储在第一存储器中,主机所提 In one embodiment of the present invention, the physical unit comprises a first memory unit and the second memory unit, in the first memory, the data referred to in the host memory identified host

的第一存储器的物理存储单元,所述装置还包括用于锁定主机提供到发送代理的第一存储器的物理存储单元,以便防止由发送代理提供的虚拟地址来寻址的数据被交换到第二存储器的部件。 The first memory of physical storage unit, the apparatus further includes means for locking the host to the first memory of the physical storage unit to send agents to prevent the virtual address provided by sending agents to address data is switched to the second parts of memory.

在本发明的一个实施例中,所述装置还包括:用于使发送代理能够从第一存储器的锁定的物理存储单元中检索由发送代理提供的虚拟地址来寻址的数据的部件;以及用于在发送代理向目标发送由发送代理提供的虚拟地址来寻址的数据之后释放第一存储器的锁定的物理存储单元的部件。 In one embodiment of the present invention, the apparatus further comprising: means for sending agents to retrieve the virtual address provided by the sending agent from the physical storage unit locked in the first memory to address the parts data; and by Send in the transmission provided by the sending proxy virtual addresses to address data to the target after the release of the first part of the physical memory of locking storage unit.

在本发明的一个实施例中,所述装置还包括用于从目标接收对发送代理成功发送且目标成功接收的数据的确认的部件;以及发送代理提供给主机的虚拟存储地址是发送代理发送到目标、但未被确认为目标成功接收的数据的虚拟地址。 In one embodiment of the present invention, the apparatus further includes means for receiving an acknowledgment of the part of the sending agent was successfully sent and the destination successfully received data from the target; and sending agents to the virtual memory address of the host is sending agent sent to target, but not identified as the target virtual address of the data successfully received. 在本发明的一个实施例中,所述装置还包括:用于从目标接收对发送代理成功发送且目标成功接收的数据的确认的部件;用于使发送代理能够向主机提供发送代理发送到目标、但未被确认为目标成功接收的数据的虚拟地址的部件;用于使主机能够对发送代理标识由发送 In one embodiment of the present invention, the apparatus further comprising: means for receiving an acknowledgment of the part of the sending agent and the target was successfully sent successfully received data from the target; for the transmission agent to provide the host sends a proxy sent to the target but not recognized as part of the virtual address target successfully received data; for a host to be able to send the agent identified by sending

送代理能够向目标重发标识的未确认数据的部件。 Sending agents to identify the target parts data retransmission of unacknowledged.

在本发明的一个实施例中,用于使主机能够向发送代理提供虚拟地址的部件包括用于使主机能够向发送代理提供至少一种数据结构的部件,数据结构包括:地址字段,包含存储待发送到目标的数据块的多个存储单元其中之一的虛拟地址;大小字段,包含表示所述数据块大小的值;以及序列号字段,包含表示与数据块中的数据相关的数据包序列号的值。 In one embodiment of the present invention, for allowing the host to send agents to provide part of the virtual address comprises a host to send the agent to provide at least part of a data structure, the data structure comprising: an address field that contains the storage to be virtual address multiple storage of the data sent to the target of one of the block unit; the size of the field that contains a value indicating the data block size; and the serial number of fields, including the data representation and the data block associated with data packet sequence number value.

在本发明的一个实施例中,用于使主机能够向发送代理提供虚拟地址的部件包括用于使主机能够向发送代理提供多个数据结构的部件,其中各数据结构包括:地址字段,存储待发送到目标的数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示数据块大小的值;序列号字段,包含表示与数据块中的数据相关的数据包序列号的值;以及链接字段,包含多个数据结构中的另一个数据结构的虚拟地址。 In one embodiment of the present invention, for allowing the host to send agents to provide part of the virtual address comprises a host to send agents to provide the member with multiple data structures, wherein each data structure includes: address field, storage pending virtual address is sent to the plurality of memory cells in which the target data block one; size fields, values that represent the data block size; SEQ ID field containing data representation and data block associated with the value of the sequence number of the packet; and a link field containing a plurality of virtual address data structure to another data structure.

在本发明的一个实施例中,物理单元包括第一存储器和第二存储器的单元,以及待发送到目标的数据存储在第一存储器中,所述装置还包括:用于锁定存储待发送数据的第一存储器的单元,以便防止待发送数据被交换到第二存储器的部件;用于除了待发送数据的虚拟存储地址之外,使主机能够还向发送代理提供存储待发送数据的第一存储器的单元的物理地址的部件;用于使发送代理能够从第一存储器的锁定单元中检索待发送数据的部件;以及用于在发送代理从存储待发送数据的第一存储器的锁定单元中检索数据之后,释放存储待发送数据的第一存储器的锁定单元的部件。 In one embodiment of the present invention, the physical unit comprises a first memory and a second memory unit, and to be sent to the target data stored in the first memory, the apparatus further comprising: means for storing data to be transmitted locking first memory unit, in order to prevent data to be transmitted is switched to the second memory; means for data to be sent in addition to the virtual memory address, so that the host can also send a proxy to provide storage for data to be transmitted first memory member unit physical address; means for the transmission of the agent to the first memory component locking unit transmits data to be retrieved; and a locking unit for retrieving data stored in data to be transmitted from the first memory after the sending agent , part of the release of stored data to be transmitted first memory locking unit. 附图说明 Brief Description

现在参照附图,其中各图中类似的参考标号表示相应的部分: 图1说明根据先有技术TCP协议传输的数据流; 图2说明存储在存储器中的数据流的数据的先有技术虚拟和物理存<*地址; Referring now to the drawings, wherein the drawings in which like reference numerals designate corresponding parts throughout: Figure 1 illustrates the prior art in accordance with the TCP protocol to transmit data stream; first data stream Figure 2 illustrates data stored in the memory and the virtual art Physical Memory <* address;

图3说明在通过网络传送数据时的先有技术操作; Figure 3 illustrates the transfer of data through the network of the prior art operation;

图4说明数据流的数据在物理存储器中的先有技术存储; Figure 4 illustrates the data flow in the prior art of physical memory storage;

图5说明其中实现本发明的若干方面的计算环境的一个实施例; Figure 5 illustrates a number of aspects in which computing environment to realize the present invention an embodiment;

图6说明先有技术的数据包体系结构; Figure 6 illustrates a prior art packet architecture;

图7说明根据本发明的若干方面的实际毗连数据流的数据结构的一个实施例; Figure 7 illustrates an embodiment according to a data structure of the actual data stream adjacent to several aspects of the present invention;

图8说明根据本发明的若干方面传送数据流所执行的操作的一个实施例; Figure 8 illustrates one embodiment of a transport stream several aspects of the present invention is to perform the operation;

.图9说明根据本发明的若干方面重传数据流的数据所执行的操作的一个实施例; Figure 9 illustrates several aspects in accordance with one embodiment of the present invention, the retransmission of the data flow operation executed;

.图IO说明根据本发明的若干方面重传数据流的数据所执行的操作的另一个实施例; Figure IO stream of instructions executed by the data retransmission according to several aspects of the present invention further embodiment;

图11说明根据本发明的若干方面传送数据流所执行的操作的另一个实施例; Figure 11 illustrates several aspects of the transmission of data in accordance with another stream of the present invention embodiment of the operation performed;

图12说明根据本发明的若干方面传送数据流所执行的操作的又一个实施例;以及 12 illustrates several aspects of the operation according to the transport stream of the present invention is performed a further embodiment; and

图13说明可与所述实施例配合使用的一种体系结构。 Figure 13 illustrates a system used in conjunction with the example of the structure can be implemented.

具体实施方式 DETAILED DESCRIPTION

在以下说明中,参照附图,附图构成说明的组成部分并说明本发明的若干实施例。 In the following description, with reference to the accompanying drawings that form part of the explanation and description of several embodiments of the present invention. 应当理解,只要没有背离本发明的范围,可采用其它实施例,并且可进^^结构和4喿作变更。 It should be understood that, unless departing from the scope of the present invention, other embodiments may be employed, and the structure and may enter ^^ 4 喿 for change. 图5说明其中可实现本发明的若干方面的计算环境。 Figure 5 illustrates a number of aspects which can achieve the computing environment of the present invention. 计算机102 Computer 102

包括一个或多个中央处理器(CPU)104(仅示出一个)、内存106、非易失性存储装置108、操作系统110和网络适配器112。 Includes one or more central processing units (CPU) 104 (only one shown), memory 106, nonvolatile memory device 108, operating system 110 and network adapter 112. 应用程序114 还在内存106中运行,并且能够从远程计算机发送和接收数据包。 114 applications are still running in memory 106, and can send and receive data packets from a remote computer. 计算机102可包括本领域已知的任何计算装置,例如大型计算机、服务器、个人计算机、工作站、膝上型电脑、手持计算机、电话装置、网络设备、虚拟化设备、存储控制器等等。 Computer 102 may comprise any computing device known in the art, such as mainframe computers, servers, personal computer, workstation, laptop, handheld computer, telephony device, network devices, virtualization device, storage controller, and so on. 可采用本领域已知的任何CPU 104和才喿作系统110。 Known in the art may be used any CPU 104 and only Qiao as system 110. 作为内存管理才喿作的一部分,内存106中的程序和数据可被交换到存储装置108。 As for memory management was part of Zao, 106 memory programs and data can be exchanged to the storage device 108.

网络适配器112包括网络协议层116,用于实现通过网络118向远程装置发送或从远程装置接收网络数据包的物理通信层。 Network adapter 112 includes a network protocol layer 116 for implementing the physical communication layer 118 through the network to the remote transmitting means for receiving from the remote device or network packets. 网络118 可包括局域网(LAN)、因特网、广域网(WAN)、存储区域网(SAN)等。 Network 118 may include a local area network (LAN), the Internet, a wide area network (WAN), storage area networks (SAN) and the like. 实施例可配置成通过无线网络或连接、如无线LAN、蓝牙等传送数据。 Embodiments may be configured via a wireless network or connection, such as wireless LAN, Bluetooth, and other data transmission. 在某些实施例中,网络适配器112和网络协议层116可实现以太网协议、令牌环网协议、光纤信道协议、Infmiband、串行高技术配件(SATA)、并行SCSI、串行附加SCSI电缆等,或者本领域已知的其它任何网络通信协议。 In some embodiments, the network adapter 112 and the network protocol layer 116 may implement Ethernet protocols, token ring protocol, Fibre Channel protocol, Infmiband, serial high-tech accessories (SATA), parallel SCSI, Serial Attached SCSI cable etc., or any other known in the art network communication protocols.

设备驱动程序120在内存106中运行,并且包括与网络适配器112通信的网络适配器112专用命令以及操作系统IIO与网络适配器112之间的接口。 Device driver 120 running in memory 106, and includes a network adapter 112 and network adapter 112 specific commands to communicate and interface 112 between the operating system and the network adapter IIO. 在某些实现中,网络适配器112包括传输协议层121 以及网络协议层116。 In some implementations, network adapter 112 includes a transport protocol layer 121 and the network protocol layer 116. 例如,网络适配器112可实现TCP/IP卸载引擎(TOE),其中传输层操作在网络适配器112硬件内实现的传输协议层121的卸载引擎中被执行,与设备驱动程序120相反。 For example, the network adapter 112 enables TCP / IP Offload Engine (TOE), wherein the transport layer 112 operate in the network adapter hardware implementation of the transport protocol layer of the offload engine 121 is executed, and the device driver 120 opposite.

网络层116处理网络通信,以及把所接收的TCP/IP数据包提供给传输协议层121,以便在已加密的情况下对^:据包进行解密。 Network layer 116 processes network traffic, and the received TCP / IP packets to the transmission protocol layer 121, so that in the case of encrypted ^: the packet is decrypted. 传输协议层121与设备驱动程序120接口,并执行其它传输协议层操作, 例如处理在网络适配器112上接收的数据包中包含的、在传输层被包装的消息的解密内容,诸如TCP和/或IP、因特网小计算机系统接口(iSCSI)、光纤信道SCSI、并行SCSI传输或本领域已知的其它任何传输层协议。 The transport protocol layer 121 and device drivers 120 interface, and perform other transport protocol layer operations such as processing the received data on 112 network adapter included in the package, in the transport layer is packaged to decrypt the message content, such as TCP and / or IP, Internet Small Computer System Interface (iSCSI), Fibre Channel SCSI, parallel SCSI transfer or any other known in the art transport layer protocol. 传输卸载引擎121可从所接收的TCP/IP数据包中将净荷拆包,并把数据传递到设备驱动程序120,以便返回给应用程序114。 Transport offload engine 121 may be received from the TCP / IP packets in the payload unpacking, and transfers the data to the device driver 120 to return to the application program 114.

通过网络118传送数据的应用程序114向设备驱动程序120提供数据。 114 provides data to the device driver 120 via the application network 118 to transfer data. 数据可被发送到传输协议层121,从而被封装成TCP/IP数据包。 Data can be sent to the transport protocol layer 121 so as to be encapsulated into TCP / IP packets. 传输协议层121还可在通过网络协议层116在网络118上传送数据包之前对数据包进4于加密。 The transport protocol layer 121 may also transmit data packets before 116 on the network 118 via the network protocol layer data packet into 4 to encryption.

内存106还包括文件对象124,它又可称作套接字对象,包括关于通过网络118到远程计算机的连接的信息。 Memory 106 also includes a file object 124, it can be called a socket object, including information on the network 118 to a remote computer connection. 应用程序114采用文件对象124中的信息来标识该连接。 Application 114 uses the file object 124 information to identify the connection. 应用程序114采用文件对象124与远程系统通信。 Application 114 uses the file object 124 system to communicate with the remote. 文件对象124可指明将^t用来与远程系统通信的本地端口或套接字、在其中运行应用程序114的计算机102的本地网络(IP) 地址、应用程序114已发送和接收的数据^:量、以及应用程序114与其通信的远程端口和网络地址、如IP地址。 File object 124 may indicate the ^ t used for local port or socket communication with a remote system, the data in which to run the application computer 114 local network (IP) 102 addresses, 114 applications have been sent and received ^: amount, as well as applications and remote port 114 to communicate with the network address, such as IP address. 上下文信息126包括一种数据结构,其中包含设备驱动程序120所维护的用以管理发送到网络适配器112的请求的信息,如以下所述。 Context information 126 includes a data structure in which the maintenance of 120 to contain device driver management information sent to the network adapter 112 requests, as described below.

在所述实施例中,经编程、由内存106的软件来操作的CPU 104 提供与网络适配器112交互的主机130,其中所述软件包括一个或多个才喿作系统110、应用程序114以及设备驱动程序120。 In the illustrated embodiment, the programmed, the memory 106 of the software to operate the CPU 104 provides the network adapter 112 and host 130 interacts, wherein said software comprises one or more of the system as it 喿 110, applications 114 and equipment Driver 120. 因此,发送代理132包括网络接口112的传输协议层121和网络协议层116。 Therefore, sending agent 132 network interface transport protocol layer 112 121 and the network protocol layer 116 is included. 但是,发送代理132可通过TOE、网络接口卡或集成电路、驱动程序、 TCP/IP栈、主处理器或这些单元的组合来实现。 However, the sending agent 132 by TOE, network interface card or IC drivers, TCP / IP stack, the main processor combination, or these units to achieve.

图6说明通过网络适配器112接收或发送的网络数据包150的格式。 6 illustrates a received or transmitted through a network adapter 112. The network packet format 150. 网络数据包150以网络协议114所理解的格式来实现,例如封装在以太网帧中,它包括其它以太网成分、如首标和检错码(未示出)。 Network packets 150 to 114 of the network protocol format understood achieved, for example, encapsulated in Ethernet frames, which include additional Ethernet components, such as a header and error detection code (not shown). 传输数据包152包含在网络数据包150中。 Transport packet 152 contained in the packet network 150. 传输数据包152可包括能够由传输协议驱动程序121来处理的传输层,例如TCP和/或IP协议、 因特网小计算机系统接口(iSCSI)协议、光纤信道SCSI、并行SCSI传输等。 Transport packets 152 may include a transmission layer can be 121 by the transport protocol driver to deal with, such as TCP and / or IP protocol, the Internet Small Computer System Interface (iSCSI) protocol, Fibre Channel SCSI, parallel SCSI transmission. 传输数据包152包括净荷数据154以及其它传输层字段、如首标和检错码。 Transport packets comprising a payload 152 of data 154, and other transport layer fields, such as a header and error detection code. 净荷数据52包括被传送的基本内容,如命令、状态和/或数据。 Payload data 52 includes the basic content is transmitted, such as command, status, and / or data. 操作系统110可包括设备层、如SCSI驱动程序(未示出), 以便处理净荷数据154的内容以及存取其中的任何状态、命令和/或数据。 Operating system 110 may include device layer, such as a SCSI driver (not shown) in order to process the contents of the payload data 154 and provide access to any state, commands and / or data.

如上所述,当发送数据流、如数据流10时,主机通常已经预先把数据流的数据存储在物理存储器中,并且锁定物理存储器的那些单 As described above, when the transmission data stream, such as 10-time data stream, the host typically has been previously stored in the data stream data in physical memory, and locking those single physical memory

认为止。 I think only. 因此,在数据传输过程中可能占用物理存储器的大量部分。 Thus, the data transfer process may take a lot of part of the physical memory. 根据可在数据传输过程中改善内存资源管理的一个实施例,主机130向发送代理132发送待发送数据的虚拟存储地址。 According to resource management can improve memory in data transmission to one embodiment, the host 130 to sending agent 132, send a virtual memory address transmitted data. 如上所述,主机130可包括操作系统或驱动程序或者这两者。 As described above, the host 130 may include an operating system or driver, or both. 发送代理132可通过TOE、网络接口卡或集成电路、驱动程序、TCP/IP栈、主处理器或这些单元的组合来实现。 Agent 132 is sent through the TOE, a network interface card or IC drivers, TCP / IP stack, the main processor combination, or these units to achieve. 当发送代理132准备在传送或重传中发送数据时,发送代理132向主机提供它准备发送的、可以只是要发送的整个数据流的一部分的数据的虚拟地址。 When sending agent 132 is ready to send data in the transmission or retransmission, the sending agent 132 provides that it is ready to send the entire data can only be sent as part of the virtual address of the stream of data to the host. 作出响应,主机向发送代理132提供所请求数据的物理地址或实际数据本身。 In response, the host physical address to the sending agent 132 provides the requested data or actual data itself. 因此,物理存储器的锁定可被减少或消除,如以下更详细说明。 Therefore, locking physical memory can be reduced or eliminated, as explained below in more detail.

图7表示虚拟存储空间50的虚拟存储地址的块200a。 Figure 7 shows a block 200a virtual storage virtual memory address space 50. 块200a 的各虚拟存储地址被映射到包含待发送数据流210的数据块210a的多个物理存储单元。 Each virtual storage address block 200a is mapped to the data stream to be transmitted contains data block 210 of the plurality of physical storage units 210a. 存储数据块210a的物理存储单元可以处于物理存储单元52或者长期物理存储单元54中。 Storing the data block of physical storage unit 210a may be in physical memory unit 52 or the long-term physical storage unit 54. 虚拟存储地址的另一个块200b被映射到包含待发送数据的另一个块210b的另一组多个物理存储单元。 Another block 200b virtual storage address is mapped to another set of a plurality of physical storage units containing data to be transmitted in another block 210b. 存储数据块210b的物理存储单元也可以处于物理存储单元52或者长期物理存储单元54中,并且不一定处于与块210a相同类型的存储器中。 Storing the data block of physical storage unit 210b to be in physical memory unit 52 or the long-term physical storage unit 54, and are not necessarily the same type in the block memory 210a. 虚拟存储地址的其它块被映射到包含待发送数据流的其它数据块的物理存储单元。 Other blocks are mapped to a virtual memory address that contains the physical memory cell blocks other data stream to be transmitted. 存储其它数据块的物理存储单元同样可以处于物理存储单元52或者长期物理存储单元54中,并且不一定全部处于相同类型的存储器中。 Physical storage unit stores other data blocks can be in the same physical memory unit 52 or the long-term physical storage unit 54, and not necessarily all in the same type of memory. 虚拟存储地址的块200n被映射到包含待发送数据流210的最后一个数据块210n的最后一组物理存储单元。 Virtual memory address block 200n is mapped to a data stream to be transmitted last data block 210 210n of the last group of physical storage units.

200b...200n。 200b ... 200n. 图7说明数据结构的一个实例,该数据结构在本文中称作"虚拟上下文",它标识虚拟存储地址的块。 Figure 7 illustrates an example of a data structure, the data structure called a "virtual context" in this article, it identifies the virtual memory address of the block. 在本例中,虛拟存储地址的各块200a、 200b...200n分别由相关虛拟上下文220a、 220b…220n来标识。 In this embodiment, each block of virtual memory addresses 200a, 200b ... 200n are associated by the virtual context 220a, 220b ... 220n identified. 各虚拟上下文220a、 220b…220n具有虚拟地址字段222a、 222b…222n,它们可包含相关数据块210a、 210b...210n 的数据的起始数据包的虚拟地址。 Each virtual context 220a, 220b ... 220n having a virtual address field 222a, 222b ... 222n, they may contain a virtual address associated data block 210a, the initial packet data 210b ... 210n. 或者,起始数据包的虛拟地址可由与偏移字4爻224a、 224b...224n中所存储的偏移值组合的虚拟地址字段222a、 222b…222n中所存储的虚拟地址来标识。 Alternatively, the virtual address of the data packet may start with the offset word 4 Yao 224a, 224b ... a combination of the virtual address offset value stored in the field 224n 222a, 222b ... 222n virtual address stored in the identified.

各数据块210a、 210b.,.210n的大小在数据大小字段226a、 226b...226n中标识。 Each data block 210a, 210b.,. 210n the size of the data size field 226a, 226b ... 226n identified. 因此,在所述实施例中,各数据块210a、 210b…210n的大小对于不同块可以不同。 Thus, in the illustrated embodiment, each of the data blocks 210a, 210b ... 210n size may be different for different blocks. 或者,固定大小可能对于一些应用是适当的。 Alternatively, a fixed size may be appropriate for some applications. 另外,数据块210a、 210b…210n的第一数据包的TCP序列号或其它发送协议序列号在起始序列号字段228a、 228b…228n中标识。 In addition, the data block 210a, 210b ... 210n first TCP packet sequence number or other delivery protocol sequence number at the start of the sequence number field 228a, 228b ... 228n identified.

在所述实施例中,虛拟上下文220a、 22.0b...220n可通过指针字段230a、 230b…230n链接在一起,其中指针字段230a、 230b…230n 指向包含数据流210的下一个虚拟上下文220a、 220b...220n的虚拟存储单元的地址。 In the illustrated embodiment, the virtual context 220a, 22.0b ... 220n by pointer field 230a, 230b ... 230n are linked together, wherein the pointer field 230a, 230b ... 230n that contains the data stream 210 points to the next virtual context 220a, Address 220b ... 220n virtual storage units. 因此,例如,数据块210a的虚拟存储地址块200a 的虚拟上下文220a的指针字段230a指向包含数据块210b的虚拟存储地址块200b的下一个虚拟上下文220b的虛拟存储单元的地址,数据块210b的虚拟存储地址块200b的虚拟上下文220b的指针字段230b指向包含数据块210c的虚拟存储地址块200c的下一个虚拟上下文220c的虚拟存储单元的地址,依此类推。 Thus, for example, a data block of virtual memory address block 210a 200a 220a virtual context contains a pointer field 230a, 200b points to the next virtual context virtual storage unit 220b address data block virtual memory address block 210b, 210b of the virtual data block virtual memory address block 200b 220b context pointer field contains the point 230b 200c 220c next virtual context virtual address of the data block storage unit 210c of the virtual storage address block, and so on.

如上所述,数据块210a、 210b.,.210n的各块可存储在不同类型的物理存储器中。 As described above, data blocks 210a, 210b., In different types of physical memory can be stored in each block. 210n of. 另外,存储在同一个存储器中的数据块210a、210b...210n的那些块不需要处于邻接存储在特定存储器中的其它数据块的存储单元的存储单元中。 Further, stored in the same memory block 210a, 210b ... 210n of the other data blocks those blocks of memory cells in the memory cell does not need to be stored in contiguous memory in particular. 尽管如此,虛拟上下文220a、 220b...220n的链接表可^皮看作是提供数据块210a、 210b...210n的虚拟连续数据流210,这些数据块不一定实际上存储在毗连存储器中。 Nevertheless, the virtual context 220a, 220b ... 220n linked tables may ^ skin seen as providing data blocks 210a, 210b ... 210n virtual continuous data stream 210, these data blocks are not necessarily actually stored in contiguous memory . 图8表示在通过网络向目标发送数据流210时主机130和发送代理132的操作。 Figure 8 shows the transmission through the network data stream to the target host operating 210 132 130 and the sending agent. 数据流210的传送通过主机130向发送代理132发送(框250)虛拟上下文220a、 220b…220n的链接表来发起,这些虛拟上下文标识数据流210的虚拟连续数据的凄t据块210a、 210b...210n的虚拟存储地址块200a、 200b...200n。 Transmitted data stream 210 by host 130 to sending agent 132 sends (block 250) virtual context 220a, 220b ... 220n link table to launch, these virtual context identification data stream desolate 210 virtual continuous data t data blocks 210a, 210b. ..210n virtual memory address blocks 200a, 200b ... 200n. 这些虚拟地址可采用诸如本领域的技术人员已知的SO—SEND和SO—SENDMSG等已知套接字函数发送到发送代理132。 These virtual addresses can be sent as known to those skilled in the art of SO-SEND and SO-SENDMSG and other known socket functions to transmit the agent 132. 在本申请中,SO—SEND函数可用于单个虚拟地址块,以及SO—SENDMSG函数可用于若干虚拟地址块。 In the present application, SO-SEND function can be used for a single virtual address blocks, and SO-SENDMSG function can be used in several virtual address block.

一旦发送代理准备发送数据流210的数据包块,发送代理132向主机130发送(框252)该数据块的虚拟地址。 Once the sending agent ready to send data stream data 210 mass, sending agent 132 is sent to the host computer 130 (block 252) the virtual address of the data block. 例如,.发送代理132可在数据包块进入TCP连接的TCP窗口内时准备发送那个块。 For example, sending agent 132 can be prepared at the time of the mass in the data into the TCP connection TCP window to send the block. 在所述实施例中,发送代理132首先向主机130发送第一数据包块、即数据流210的数据块210a的虚拟地址。 In the described embodiment, the sending agent first sends a first data packet block 132 to the host 130, that is, data stream data block 210 of the virtual address 210a. 数据块210a的虚拟地址由虛拟上下文220a标识。 Data block 210a of the virtual address identified by the virtual context 220a.

采用发送代理132所提供的虚拟地址,主机130在数据块210a 没有在快速存取存储器、如物理存储单元52中时把它存储(框254) 在这类存储单元中。 Sending agent uses the virtual address provided 132, host 130 in data blocks 210a Not fast access memory, such as physical storage unit 52 when it is stored (block 254) in this storage unit. 另外,主机130锁定(框256)包含数据块210a的物理存储单元52,以便防止其它应用程序把那些存储单元交换到长期存储器。 In addition, the host 130 to lock (block 256) contains data blocks 210a physical storage unit 52, in order to prevent other applications to those who switched to the long-term memory storage unit. 要注意,在所述实施例中,主机130可把锁定的物理存储器限制到正被发送的特定数据块的存储单元,而不是计划传送的整个数据流的存储单元。 Note that, in the embodiment, the host 130 may limit the locked physical memory to a storage unit of a particular data block being transmitted, rather than the entire program storage unit transmitted data stream.

储单元52的物理存储地址。 The physical memory address of the storage unit 52. 发送代理开始向目标主机发送(框262) 数据块210a的数据包。 Sending agent starts sending to the target host (block 262) Block 210a packets. 一旦数据块210a的所有数据包已经被发送代 Once all the packets of data blocks 210a has been sent on behalf of

26理132发出(框264),主机130可释放(框266)包含数据块210a的物理存储单元52。 Li issued 26 132 (block 264), host 130 can be released (block 266) contains data blocks 210a physical storage unit 52.

在成功地收到发送代理132发送的数据包时,发送代理将从目标主机接收(框268)确认,通过数据包序列号来标识目标主机成功接收的每个数据包。 When successfully received data packets sent by the agent 132, sent agents from the target host receives (block 268) confirmed that the data packet sequence number to identify each packet destination host successfully received. 要注意,在所述实施例中,主机130可在从目标主机接收任何或全部确认之前释放包含数据块210a的物理存储单元(框266)。 Note that in the illustrated embodiment, the host 130 may receive any or all of the prior confirmation from the target host to release physical storage unit (block 266) contains the data block 210a is. 如果没有收到(框270)对数据块210a的每个已发送数据包的确认,则发送代理132在一定时段中(框272)将继续接收(框268)可能由目标主机发送的其它任何确认。 Any other confirmation of each data block 210a is not received (block 270) is sending an acknowledgment packet, the sending agent 132 in a certain period (block 272) continues to receive (block 268) may be sent by the target host . 但是,如果已发送数据包在一定时段内(框272)没有被确认,则发送代理132将开始重传(框274)数据块210a的未确认数据包,以下会更详细说明。 However, if the transmitted data packet is not acknowledged within a certain period of time (block 272), then the sending agent 132 will begin retransmission (block 274) Block 210a unacknowledged packets, the following more detailed description.

一旦已经收到对数据块210a的所有数据包的确认(框270),如果仍未发送完所有数据块(框276),则发送代理132可向目标主机发送数据块210b…210n中的下一个数椐块。 Once you have received confirmation of the data blocks all packets 210a (block 270), if they have not sent all the data block (block 276), then the sending agent 132 can send data to the target host block 210b ... 210n next number noted in the block. 因此,发送代理132向主机. 130发送数据流210的下一个数据包块210b的虚拟地址。 Therefore, sending agent 132 next data stream 210 mass 210b virtual address to the host transmission data 130.

采用发送代理132所提供的虚拟地址,主机130在数据块210b 没有在快速存取存储器52中时把它存储(框254)在物理存储单元52 中,并锁定(框256)包含数据块210b的物理存储器单元52。 Sending agent uses the virtual address provided 132, 130 is not in access host data block 210b in the memory 52 when it is stored (block 254) in the physical storage unit 52 and lock (block 256) contains the data block 210b, Physical memory unit 52.

主机向发送代理132发送(框260)包含数据块210b的锁定物理存储单元的物理存储地址。 Agent 132 is sent to the sending host (block 260) data blocks containing physical locked storage unit 210b a physical memory address. 发送代理开始向目标主机发送(框262)数据块210b的数据包。 Sending agent starts sending to the target host (block 262) Block 210b packet. 一旦数据块210b的所有数据包已经被发送代理132发出(框264),主机130可释放(框266)包含数据块210b的物理存储单元。 Once the data block 210b all packets have been sent agents to issue 132 (block 264), host 130 can be released (block 266) contains the data block of physical storage unit 210b.

如果已发送数据包在一定时段内(框272)没有被确认,则发送代理132将开始重传(框274)数据块210b的未确认数据包。 If you have to send a packet has not been confirmed in a certain time period (block 272), then the sending agent 132 will begin retransmission (block 274) Block 210b of unacknowledged packets. 以这种方式传送数据流210的剩余数据块,直到所有数据块已被成功发送和确认(框276),以及完成数据流210的传送(框278)。 In this manner the remaining transport stream data block 210 until all data blocks have been successfully sent and confirmation (block 276), and the completion of the data transfer stream 210 (block 278).

图9表示在重传(图8的框274)通过网络向目标发送的数据流210 Figure 9 shows the retransmission (8 Box 274) to the data stream 210 via a network transmission target

27的数据块的未确认数据包时主机130和发送代理132的操作。 Host 130 and sent 132 agents operating data packet unacknowledged data blocks 27. 发送代理132向主机130发送(框282)在图8的框272的时段内没有被目标主机确认的那些数据包的虚拟地址。 Agent 132 sends those packets to host 130 sends (block 282) within the frame period 272 of FIG. 8 has not been confirmed target host virtual address.

采用发送代理132所提供的虚拟地址,主机130收集(框284)未确认数据包,并在未确认数据包没有在物理存储器52中时将其存储在物理存储单元52中。 Sending agent uses the virtual address provided 132, host 130 collection (block 284) is not the data packet acknowledgment and unacknowledged packets are not in the physical memory 52 when it is stored in the physical storage unit 52. 在所述实施例中,未确认数据包可以存储在物理存储器52的毗连存储单元中或者存储在非毗连单元中。 In the illustrated embodiment, the unacknowledged packets can be stored in contiguous physical memory 52 is stored in the storage means or non-contiguous cells. 另外, 主机130锁定(框286)包含未确认数据包的物理存储单元52,以便防止其它应用程序把那些存储单元交换到长期存储器。 In addition, the host 130 to lock (block 286) contains unacknowledged packets physical storage unit 52, in order to prevent other applications to those who switched to the long-term memory storage unit.

主机130向发送代理132发送(框288)包含被发送数据块的未确认数据包的数据的锁定物理存储单元的物理存储地址。 Host 130 to sending agent 132 sends (block 288) that contains a locked storage unit physical address physical storage of data blocks to be transmitted data packet unacknowledged. 发送代理开始向目标主机重发(框290)未确认数据包。 Sending agents to the target host retransmission start (block 290) packet unacknowledged. 一旦所有未确认数据包已经由发送代理132重发(框292),主机130可释放包含被重发数据块的未确认数据包的物理存储单元(框294)。 Once all the packets have been sent 132 agents from the retransmission (block 292) is not confirmed, host 130 may contain release data block is retransmitted packets unacknowledged physical storage unit (block 294).

控制返回到(框296)图8的传送例程,以便从目标主机接收(框268) 确认。 Control returns to (block 296) transmitted routine Figure 8 in order to receive (block 268) from the target host to confirm. 要注意,在所述实施例中,主机130可在从目标主机接收确认之前释放包含未确认数据包的物理存储单元(框294)。 Note that in the illustrated embodiment, the host 130 may be performed before receiving an acknowledgment from the destination host release contains data packet unacknowledged physical storage unit (block 294). 如果先前未确认的数据包的已重发数据包在一定时段内(框272)没有被确认,则发送代理132将再次开始按照以上结合图9所述的方式重传(框274)被传送的数据块的未确认数据包。 If previously unacknowledged packets retransmitted packets are not being recognized in a certain time period (block 272), then the sending agent 132 will be started in accordance with the above binding manner described in Figure 9 retransmission (block 274) transmitted again data block packet unacknowledged.

图10表示根据一个备选实施例、在重传通过网络向目标传送的数据流210的数据块的未确认数据包时主机130和发送代理132的操作。 Figure 10 shows an alternative embodiment according to when the retransmission stream data block 210 of the target across the network to transmit data packets sent unacknowledged host 130 and 132 of proxy operation. 通过与图9的操作相同的方式,发送代理132向主机130发送(框 Through the operation of FIG. 9 in the same way, sending agent 132 sends (block 130 to the host

拟地址。 It intends to address.

采用发送代理132所提供的虚拟地址,主机130收集未确认数据包,以及主机130不是发送未确认数据包的物理存储地址,而是把实际数据发送(框302)到发送代理132,发送代理132把未确认数据包的数据存储(框304)在网络接口112的缓冲存储器306(图5)中。 Sending agent uses the virtual address provided 132, host 130 did not collect data packets, and host 130 instead of sending packets unacknowledged physical storage address to confirm, but the actual data transmission (block 302) to send the agent 132, sending agent 132 The data stored in the unacknowledged data packets (block 304) in the network interface buffer 112 memory 306 (FIG. 5).

发送代理开始采用来自緩冲器306的数据向目标主机发送(框308)未确认数据包。 Sending agents began to use data from the buffer 306 is sent (block 308) to the target host data packets are not acknowledged. 控制返回到(框310)图8的传输例程,以便从目标主机接收(框268)确认。 Control returns to (block 310) Figure 8 transfer routines in order to receive (block 268) from the target host to confirm. 如果先前未确认的数据包的已发送数据包在一定时段内(框272)没有被确认,则发送代理132将开始按照以上结合图9或图10所述的一种或多种方式重传(框274)被传送的数据块的未确认数据包。 If previously unacknowledged packets transmitted data packets within a certain period of time (block 272) is not acknowledged, the sending agent 132 will begin in accordance with the above in connection with FIG. 9 or 10, wherein the one or more ways FIG retransmission ( block 274) transmitted data blocks unacknowledged packets.

在上述图8-10的实例中,讲述了数据块210a、 210b.,.210n的每次传输。 In the example in Fig. 8-10, it tells the data blocks 210a, 210b.,. 210n of each transmission. 应当理解,由发送代理进行的数据块的传输不需要被限制为每次仅一个数据块未完成。 It should be appreciated that the transmission data block transmitted by the agent does not need to be limited to only one for each block of data is not completed. 随应用而定,几个或更多数据块可在没有收到确认的情况下被发送。 With the application, several or more data blocks may be sent without receiving an acknowledgment. 因此,在TCP上下文中,发送代理可发送达到TCP窗口(图l)的数据,这个数据可包含若干数据块,由不同虛拟上下文来指示,而不需要收到任何确认。 Therefore, in the context of TCP, sending agent can achieve TCP send window (Figure l) of data, the data may contain a number of data blocks is indicated by a different virtual context, without the need to receive any confirmation. 发送代理采用TCP下一个数据指针22和TCP发送窗口20的值来跟踪在没有收到确认时可发送的数据数量,如上所述。 Sending agent uses the value of a data pointer 22 and the TCP send window 20 by TCP to track the number of data can be sent without receiving an acknowledgment, as described above.

图11表示根据一个备选实施例、在通过网络向目标传送数据流210时主机130和发送代理132的操作。 Figure 11 shows an alternative embodiment in accordance with, the stream 210 to the target host to transmit data over the network 130 and sending agent 132 operation. 通过与图8的操作相同的方式,数据流210的传输通过主机130向发送代理132发送(框350)虚拟上下文220a、 220b…220n的链接表来发起,链接表标识虚拟连续数据流210的数据块210a、 210b...210n的虚拟存储地址块200a、 200b…200n。 Through the operation of FIG. 8 in the same way, the data stream 210 is sent by the host to send the agent 132 (block 350) virtual context 220a, 220b ... 220n link table to launch 130, a linked table identifies the virtual continuous data stream data 210 blocks 210a, 210b ... 210n of the virtual memory address blocks 200a, 200b ... 200n. 一旦发送代理准备发送数据流210的数据包块,发送代理132向主机130发送(框352)该数据块的虚拟地址。 Once the sending agent ready to send data stream data 210 mass, sending agent 132 sends (block 352) to host 130 virtual address of the data block.

采用发送代理132所提供的虛拟地址,主机130不是发送数据块的物理存储地址,而是把该块的数据发送(框354)到发送代理132, 发送代理132把该块的数据存储(框356)在网络接口112的緩冲存储器306中。 Sending agent uses the virtual address provided 132, host 130 instead of sending the data block of physical storage address, but to send the data block (block 354) to send the agent 132, sending agent 132 of the block data storage (block 356 ) in the network interface 112 of the buffer memory 306. ' '

发送代理开始把数据块210a的数据包从发送代理缓冲器306发送(框362)到目标主机,直到数据块210的所有数据包已经由发送代理132发送(框364)为止。 Agent starts sending data blocks 210a packets sent from the sending agent buffer 306 (block 362) to the target host, all packets until the data block 210 has been sent by the sending agent 132 (block 364) so far. 在成功地收到发送代理132发送的数据包时,发送代理将从目标主机接收(框368)确认,通过数据包序列号来标识由目标主机成功接收的每个数据包。 When successfully received data packets sent by the agent 132, sent agents from the target host receives (block 368) confirmed that the data packet sequence number to identify each packet successfully received by the destination host. 如果没有收到对数据块210 的每个已发送数据包的确认(框370),则发送代理132在一定时段中(框372)将继续接收(框368)可能由目标主机发送的其它任何确认。 If you do not receive any other confirmation acknowledgment (block 370) for each data block 210 to send packets, the sending agent 132 in a certain period (block 372) will continue to receive (block 368) may be sent by the target host . 但是,如果已发送数据包在该时段内(框372)没有被确认,则发送代理132将开始按照重传程序、如以上结合图9和图IO所述的一个或多个重传操作来重传(框374)数据块210的未确认数据包。 However, if the transmitted data packet was not confirmed in the time period (block 372), then the sending agent 132 will begin to follow the retransmission procedures, as described above with one or more retransmission operation Figures 9 and IO according to weight pass (block 374) Block 210 unacknowledged packets.

一旦已经收到对数据块210a的所有数据包的确认(框370),如果仍未发送完所有数据块(框376),则发送代理132可向目标主机发送数据块210b…210n中的下一个数据块。 Once confirmation has been received (block 370) to block all packets 210a, if not sent all the data block (block 376), then the sending agent 132 can send data to the target host of block 210b ... 210n next data blocks. 如果不是,则发送代理132 向主机130发送(框352)数据流210的下一个数据包块的虛拟地址。 If not, then the sending agent 132 is sent to the host computer 130 (block 352) the next data stream 210 mass virtual address. 一旦所有数据块210a、 210b...210n已经被成功发送和确认(框376), 则数据流10已经被成功发送(框378)。 Once all the data blocks 210a, 210b ... 210n has been sent and acknowledged (block 376) is successful, the data stream 10 has been successfully sent (block 378).

应当理解,响应发送代理所提供的虚拟地址,主机130可通过各 It should be understood that the response to the virtual address to send agents to offer, host 130 may each

图9描述传输和重传操作,其中,主机130采用发送代理132所提供的虚拟地址来锁定包含由虚拟地址寻址的数据包的物理存储单元52, 并向发送代理132发送包含数据包的锁定物理存储单元的物理存储地址。 Figure 9 illustrates the transmission and retransmission operation in which host 130 using the transmission agent 132 virtual address provided to lock contains a locked storage unit by the physical address of the virtual address 52 of the packet, and sends the agent 132 sends an packet physical storage address of the physical storage unit. 通过比较,图11和图IO描述传输和重传操作,其中,主机130采用发送代理132所提供的虚拟地址、通过向发送代理132发送虚拟地址寻址的实际数据而存储在发送代理緩冲器中来标识数据。 By comparison, Fig. 11 and description of transmission and retransmission IO operation in which host 130 virtual address provided sending agent 132, by addressing the actual data sent to the virtual address to send proxy agent 132 and stored in the transmission buffer to identify that data. 应当理解,主机130可通过其它技术来标识由发送代理所一是供的虚拟地址寻址的数据包。 It should be appreciated that host 130 may be identified by other techniques by the delivery agent for the one virtual address addressing data packets.

图12表示根据又一个实施例、在通过网络向目标传送数据流210 时主机130和发送代理132的操作。 Figure 12 shows still another embodiment in accordance with, the flow through the network 210 to the target host 130 and transmits the data transmission agent 132 in operation. 数据流210的传送通过主机130 收集(框450)数据流210的数据包并在它们没有被存储在物理存储器中时将其存储在物理存储单元52中来发起。 Transmitted data stream 210 is collected by the host 130 (block 450) the data stream packets 210 and, when they are not stored in physical memory to store it in physical storage unit 52 to initiate. 在所述实施例中,数据流210可以存储在物理存储单元52的毗连存储单元中或者非毗连单元中。 In the illustrated embodiment, the data stream 210 may be stored in contiguous physical storage unit in the storage unit 52 or non-contiguous cells. 另外,主机130锁定(框452)包含数据流210的物理存储单元52,以便防止其它应用程序把那些存储单元交换到长期存储器。 In addition, the host 130 to lock (block 452) the data stream contains 52 physical storage unit 210, so as to prevent those other applications to exchange a long-term memory storage unit.

锁定物理存储单元的物理存储地址。 Locking physical memory address of the physical memory cell. 另外,主机130向发送代理132 发送虚拟上下文220a、 220b.,.220n的链接表,虚拟上下文标识虚拟连续数据流210的数据块210a、210b…210n的虚拟存储地址块200a、 200b…200n。 In addition, the proxy 132 transmits to the host 130 transmits a virtual context 220a, 220b.,. 220n link table, the virtual context identification 210 of the virtual continuous stream of data blocks 210a, 210b ... 210n of the virtual memory address blocks 200a, 200b ... 200n.

发送代理132开始采用来自快速存取存储单元52的锁定物理存储单元的数据向目标主机发送(框456)数据流210的数据包。 Start sending agent 132 uses data from the fast-access storage unit 52 transmits the locking physical memory cell (block 456) to the target host 210 the data packet stream. 一旦数据流的所有数据包已经被发送代理132发出(框464),主机130可释放(框466)包含数据流210的物理存储单元。 Once all of the packet data stream has been issued by the sending agent 132 (block 464), host 130 can be released (block 466) data stream containing 210 physical storage unit.

在成功地收到发送代理132发送的数据包时,发送代理将从目标主机接收(框468)确认,通过数据包序列号来标识由目标主机成功接收的每个数据包。 When successfully received data packets sent by the agent 132, sent agents from the target host receives (block 468) confirmed that the data packet sequence number to identify each packet successfully received by the destination host. .如果没有收到(框470)对数据流210的每个已发送数据包的确认,则发送代理132在一定时段中(框472)将继续接收(框468)可能由目标主机发送的其它任何确认。 Any other. If you do not receive the confirmation (block 470) the data stream 210 of each packet sent, the sending agent 132 in a certain period (block 472) will continue to receive (block 468) may be sent by the target host confirmation. 但是,如果已发送数据包在该时段内(框472)没有被确认,则发送代理132将开始按照重传程序、如图9或图10所述的操作来重传(框474)数据流210的未确认数据包。 However, if the transmitted data packet was not confirmed in the time period (block 472), then the sending agent 132 will begin to follow the retransmission procedures, operating 9 or 10 is shown to retransmission (block 474) the data stream 210 unacknowledged packets. 一旦已经收到对数据流210的所有数据包的确认(框470),数据流10已经被成功发送(框476)。 Once you have received confirmation of the data stream 210 of all packets (block 470), the data stream 10 has been successfully sent (block 476).

其它实施例详细i兌明 Other cases in detail i implement against Ming

为通过网络的数据传输管理存储器的所述技术可利用标准编程和/或工程技术以产生软件、固件、硬件或其任意组合,作为方法、 设备或制造产品来实现。 It is available using standard programming and / or engineering techniques through the technical network data transmission management memory to produce software, firmware, hardware or any combination thereof, as a method, apparatus, or manufacturing products to achieve. 术语"制造产品,,在本文中用来表示以硬件逻辑(如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC) 等)或者计算机可读媒体、如磁存储媒体(如硬盘驱动器、软盘、磁带等)、光存储装置(CD-ROM、光盘等)、易失性和非易失性存储装置(如EEPROM、 ROM、 PROM、 RAM、 DRAM、 SRAM、固件、可编程逻辑等)来实现的代码或逻辑。计算机可读媒体中的代码由处理器存取 The term ",, of manufacture is used herein to denote in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium, such as magnetic storage media (such as hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROM, CD-ROM, etc.), volatile and non-volatile memory devices (such as EEPROM, ROM, PROM, RAM, DRAM, SRAM, firmware, programmable logic, etc. ) to code or logic implemented in computer readable medium accessible by the processor code

或者是通过网络从文件服务器可存取的。 Or from a file server over a network can access. 在这些情况下,其中实现代码的制造产品可包括传输媒体,诸如网络传输线、无线传输媒体、经空间传播的信号、无线电波、红外信号等等。 In these cases, in which the code is implemented may comprise a transmission medium of manufacture, a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc., such as. 因此,"制造产品"可包括其中包含代码的媒体。 Therefore, the "manufactured products" can include media which contains the code. 另外,"制造产品"可包括其中包含、处理和执行代码的硬件和软件部件的组合。 In addition, "manufactured products" can include which contains a combination of process and implementation of the code of hardware and software components. 本领域的技术人员当然知 Of course, those skilled in the art know

道,可对本配置进行许多修改,只要没有背离本发明的范围,以及制造产品可包括本领域已知的任何信息承载媒体。 Road, this configuration can be many modifications, so long as there is no departure from the scope of the invention, and manufacturing products may include any information bearing medium known in the art.

在所述实施例中,某些操作被描述成通过操作系统110、设备驱动程序120或网络接口112来执行。 In the illustrated embodiment, certain operations are described as the operating system 110, device drivers 120, or network interface 112 to execute. 在备选实施例中,描述为通过其中之一执行的操作可通过操作系统110、设备驱动程序120或网络接口112中的一个或多个来执行。 In an alternative embodiment, described as one of the operations performed may be performed by the operating system 110, the device driver 120 or the network interface 112 through one or more of them. 例如,描述为通过主机130执行的锁定和释放操作可由发送代理132来执行。 For example, the description of the lock and release operations to be performed by the host 130 sending agent 132 for execution.

在所述实现中,传输协议层121以网络适配器112^_件来实现。 In the implementation, the transport protocol layer 121 to the network adapter member 112 ^ _ achieved. 在备选实现中,传输协议层可通过设备驱动程序或主机内存106来实现。 In an alternative implementation, the transport protocol layer can be achieved by a device driver or host memory 106.

在所述实施例中,数据包通过网络从网络适配卡传送到远程计算 In the described embodiment, the packet transferred from the network adapter card to a remote computer over a network

机。 Machine. 在备选实施例中,由协议层或设备驱动程序所处理的发送和接收 In an alternative embodiment, the sent and received by the protocol layer or device driver being processed

数据包可被传送到设备驱动程序和传输协议驱动程序在其中执行的同一个计算机中执行的独立进程。 Data packets can be transmitted to the device driver and transport protocol driver a separate process on the same computer in which the implementation of the execution. 在这些实施例中,没有使用网卡, In these examples, do not use the card,

因为数据包在同一个计算机和/或操作系统中的进程之间传递。 Because the data packets between the same computer and / or operating system process transfer.

在某些实现中,设备驱动程序和网络适配器实施例可包含在计算机系统中,该系统包括存储控制器,诸如SCSI、集成驱动电路(IDE)、 冗余独立磁盘阵列(RAID)等控制器,管理对例如磁盘驱动器、磁带媒体、光盘等非易失性存储装置的存取。 In some implementations, the device driver and network adapter embodiments may be included in the computer system, the system includes a memory controller, such as SCSI, Integrated Drive Electronics (IDE), redundant array of independent disks (RAID) controller such as, Management of such as disk drives, tape media, optical disk accesses nonvolatile memory device. 在备选实现中,网络适配器实施例可包括在没有包含存储控制器的系统中,例如某些集线器和交换机。 In alternative implementations, the network adapter embodiments may be included in the system does not contain a storage controller, such as certain hubs and switches.

在某些实现中,设备驱动程序和网络适配器实施例可以在一种计算机系统中实现,这种系统包括呈现在耦合到包含设备驱动程序和网络适配器的计算机系统的监视器上显示的信息的视频控制器,例如包括台式电脑、工作站、服务器、大型计算机、膝上型电脑、手持计算机等在内的计算机系统。 In some implementations, device drivers and network adapter embodiments may be implemented in a computer system, such a system includes presenting information contained in coupled to the device driver and network adapter computer system monitor displays the video The controller, for example, including desktop computers, workstations, servers, mainframe computers, laptops, handheld computers and other computer systems. 或者,网络适配器和设备驱动程序实施例可在没有包含视频控制器的计算装置中实现,如交换机、路由器等。 Alternatively, the network adapter and device driver embodiments may be included in the calculation means no video controller is implemented, such as switches, routers.

在某些实现中,网络适配器可配置成通过连接到网络适配器的端口的电缆来传送数据。 In some implementations, the network adapter can be configured to transmit data by connecting to the network adapter port cable. 或者,网络适配器实施例可配置成通过无线网 Alternatively, the network adapter embodiments may be configured by a wireless network

络或连接、如无线LAN、蓝牙等传送数据。 Or a network connection, such as wireless LAN, Bluetooth data transfer.

图8-12的所示逻辑表示以某个顺序发生的某些事件。 Logic Figure 8-12 represents a sequence of certain events to occur. 在备选实施例中,某些操作可按照不同的顺序来执行或修改或取消。 In alternative embodiments, certain operations may be performed or modify or cancel in a different order. 此外,可对上述逻辑增加步骤,并且仍然符合所述实施例。 Further, the step of increasing said logic and still conform to the described embodiments. 另外,本文所述操作可依次发生,或者某些操作可并行处理。 In addition, operations described herein may occur sequentially or certain operations may be processed in parallel. 此外,操作可由单个处理单元来执行或者由分布式处理单元来执行。 In addition, the operation is performed by a single processing unit or by a distributed processing unit to perform.

图7说明用来标识虚拟地址的信息。 Figure 7 illustrates the information used to identify the virtual address. 在备选实现中,这些数据结构可包括附图所述之外的其它或不同信息。 In alternative implementations, these data structures may include other or different information than in the drawings.

图13说明诸如图5所示的主机和存储装置之类的网络组件的计算机体系结构500的一个实现。 Figure 13 illustrates the network components on the host and a storage device such as shown in FIG. 5 of an implementation of a computer system architecture 500. 体系结构500可包括处理器502(例如微处理器)、内存504(例如易失性存储装置)以及存储装置506(例如非易失性存储装置,诸如磁盘驱动器、光盘驱动器、磁带驱动器等)。 Architecture 500 may include a processor 502 (e.g., a microprocessor), memory 504 (e.g., a volatile memory device), and storage devices 506 (e.g., a non-volatile memory device, such as a magnetic disk drive, optical disk drive, tape drive, etc.). 存储装置506可包括内部存储装置或者附加或网络可存取存储装置。 Storage device 506 may include an internal storage device or attached or network accessible storage device. 存储装置506中的程序被装入内存504,并由处理器502以本领域已知的方式来执行。 A program storage device 506 are loaded into memory 504 by the processor 502 in the manner known in the art to perform. 该体系结构还包括实现与网络通信的网卡508,如以太网、光纤信道仲裁环路等。 The architecture also includes implementation and network communication card 508, such as Ethernet, fiber channel arbitrated loops. 此外,在某些实施例中,该体系结构还可包括在显示监视器上呈现信息的视频控制器509,其中视频控制器509可在视频卡上实现或者在安装到主板上的集成电路组件上集成。 Furthermore, in certain embodiments, the architecture may also include presenting information on the display monitor of a video controller 509, where the video controller 509 may be realized or integrated circuit components mounted to the board on the video card integration. 如上所述,某些网络装置可具有多个网卡。 As mentioned above, some network devices may have multiple network cards. 输入装置510用来向处理器502提供用户输入,并且可包括键盘、鼠标、指示笔、话筒、 触摸显示屏或者本领域已知的其它任何激活或输入机构。 Input device 510 is used to provide user input to the processor 502, and may include a keyboard, mouse, stylus, microphone, touch screen, or any other known in the art to activate or input mechanism. 输出装置512能够呈现从处理器502或其它部件传送的信息,诸如显示监视器、 打印机、存储装置等。 Output device 512 is capable of rendering information transmitted from the processor 502 or other components, monitors, printers, storage devices, etc. such as a display.

网络适配器508可以在网卡、如外设部件互连(PCI)卡或其它某种I/0卡、或者安装在主板上的集成电路部件中实现。 Network adapter 508 may be implemented in the card, such as a peripheral component interconnect (PCI) card or some other I / 0 card or installed on the motherboard of the integrated circuit components.

本发明的各种实施例的以上描述是为了说明和描述而提供的。 All of the above embodiments of the present invention is described for purposes of illustration and description provided. It

据以上理论,许多修改和变更都是可行的。 According to the above theory, many modifications and variations are possible. 本发明的范围不是由本详细描述来限制,而是由所附权利要求来限制。 The scope of the present invention is not limited by this detailed description, but rather by the appended claims limit. 以上说明、实例和数据提供了对本发明的构成的制造和使用的完整描述。 The above specification, examples and data provide a complete description of the manufacture and use of the present invention is constituted. 由于在不背离本发明的精神和范围的前提下可实现本发明的许多实施例,因此本发明在于以下所附权利要求。 Because without departing from the spirit and scope of the present invention can be achieved under the premise of many embodiments of the present invention, and thus the present invention is characterized by the following appended claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
CN1347545A12 Jan 20001 May 2002英特尔公司Method and apparatus for implementing dynamic display memory
CN1359496A26 May 200017 Jul 2002英特尔公司Virtual memory Mapping using region-based page tables
US2002/0188832 Title not available
Classifications
International ClassificationG06F15/16, H04L12/56, H04L29/06, H04L29/12, G06F12/08, G06F12/10
Cooperative ClassificationH04L69/165, H04L69/16, G06F12/1081, H04L29/12783, H04L61/106, H04L61/35
European ClassificationH04L29/06J11, H04L61/10B, H04L29/06J, G06F12/10P
Legal Events
DateCodeEventDescription
13 Apr 2005C06Publication
20 Sep 2006C10Request of examination as to substance
23 Sep 2009C14Granted
23 Nov 2011C17Cessation of patent right