Connect public, paid and private patent data with Google Patents Public Datasets

为通过网络的数据传输管理存储器的方法、系统和程序

Info

Publication number
CN100544310C
CN100544310C CN 200410077181 CN200410077181A CN100544310C CN 100544310 C CN100544310 C CN 100544310C CN 200410077181 CN200410077181 CN 200410077181 CN 200410077181 A CN200410077181 A CN 200410077181A CN 100544310 C CN100544310 C CN 100544310C
Authority
CN
Grant status
Grant
Patent type
Prior art keywords
method
system
program
managing
memory
Prior art date
Application number
CN 200410077181
Other languages
English (en)
Other versions
CN1606290A (zh )
Inventor
C·T·福尔兹
H·T·贝弗利
Original Assignee
英特尔公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Grant date

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements or network protocols for addressing or naming
    • H04L61/10Mapping of addresses of different types; Address resolution
    • H04L61/106Mapping of addresses of different types; Address resolution across networks, e.g. mapping telephone numbers to data network addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/16Transmission control protocol/internet protocol [TCP/IP] or user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/16Transmission control protocol/internet protocol [TCP/IP] or user datagram protocol [UDP]
    • H04L69/165Transmission control protocol/internet protocol [TCP/IP] or user datagram protocol [UDP] involving combined use or selection criteria between TCP and UDP protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00 contains provisionally no documents
    • H04L29/12Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00 contains provisionally no documents characterised by the data terminal contains provisionally no documents
    • H04L29/12009Arrangements for addressing and naming in data networks
    • H04L29/12783Arrangements for addressing and naming in data networks involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address, functional addressing, i.e. assigning an address to a function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements or network protocols for addressing or naming
    • H04L61/35Network arrangements or network protocols for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function

Abstract

提供一种为通过网络的数据传输管理存储器的方法、系统和程序。待发送数据的虚拟存储地址被提供给发送代理。发送代理向主机提供所请求数据的虚拟地址。作出响应,通过所请求数据的虚拟地址或物理存储单元来寻址的所请求数据被提供给发送代理,以便发送到目标。

Description

为通过网络的数据传输管理存储器的方法、系统和程序 技术领域

本发明涉及为通过网络的数据传输管理存储器的方法、系统和程序。

背景技术

在网络环境中,主机上的网络适配器,诸如以太网控制器、光纤

信道控制器等,将接收输入/输出(I/0)请求或者从主机发起的对I/O请

求的响应。主机操作系统通常包括与网络适配器硬件通信的设备驱动

程序,以便管理网络上传送的1/0请求。主机还包括传输协议驱动程

序,.它把要通过网络传输的数据包装成数据包,其中每个数据包具有 目标地址以及要传送的数据部分。在网络适配器上接收的数据包通常 存储在主机内存中可用的所分配的包緩沖器中。传输协议驱动程序处 理由网络适配器接收的、存储在包緩沖器中的数据包,并存取嵌入数

据包中的任何I/O命令或数据。

例如,传输协议驱动程序可实现传输控制协议(TCP)和因特网协 议(IP),从而对要传送的数据进行编码和编址,以及对网络适配器上 接收的TCP/IP数据包中的净荷数据进行解码和存取。IP指定又称作 数据报的数据包的格式以及寻址方案。TCP是高层协议,它建立目标 和源之间的连接。

设备驱动程序可能利用大量主处理器资源来处理送往网络适配 器的网络传输请求。减少主处理器上负荷的一种技术是使用TCP/IP 卸载引擎(TOE),其中TCP/IP协议相关操作是在网络适配器硬件中实 现的,与设备驱动程序相反,从而使主处理器不需要执行部分或全部 TCP/IP协议相关操作。传输协议操作包括把数据与校验和及其它信息包装在TCP/IP数据包中并发送该数据包。这些发送操作通过发送

代理来执行,发送代理可通过TOE、网络接口卡或集成电路、驱动 程序、TCP/IP栈、主处理器或这些单元的组合来实现。传输协议操 作还包括从网络上接收TCP/IP数据包以及对TCP/IP数据包拆包,以 便存取净荷或数据。这些接收操作由接收代理来执行,接收代理同样 可通过TOE、驱动程序、主处理器或这些单元的组合来实现。

图1说明在TCP连接中由源主机的发送代理发送给目标主机的 TCP/IP数据包的数据流10。在行业接受的TCP RFC(请求注解)所指 定的TCP协议中,各数据包被分配唯一的序列号。当各数据包被成 功;也发送到目标主才几时,目标主冲几向源主冲几发送确i人,通过该lt据包 成功接收的包序列号来通知源主机。因此,流10包含已被发送和确 认被目标主机所接收的一部分12数据包。流10还包含已被源主机发 送4旦未确认;故目标主才几接收的一部分14数据包。发送代理维护TCP 未确认数据指针16,它指向第一个未确认已发送数据包的序列号。

用来存储在目标主机上接收的数据包的包緩沖器的容量一般大 小有限。根据TCP协议,目标主机通过发送在本文中称作TCP窗口 (在 图1中以20指示)的值,通告它具有的可用緩冲空间的大小。因此, 源主机发送代理使用TCP窗口值来限制发送到目标主机的未完成数 据包的数量、即源主机仍未收到确认的已发送数据包的^:量。TCP 下一个数据指针22指向要发送到目标主机的下一个数据包的序列 号。数据流10在TCP下一个数据指针22与TCP窗口 20结尾之间的 部分24表示这样的数据包:它们尚未被发送,但允许在TCP协议下 发送,而不需要等待任何附加确认,因为这些数据包仍然在TCP窗 口 20内,如图1所示。数据流10在TCP窗口 20的结束边界28之 外的部分26不允许在收到附加确认之前在TCP协议下发送。

当目标主机把确认发送到源主机时,TCP未确认数据指针16移 动以指明对该连接的附加数据包的确认。TCP窗口 20的起始边界30 随TCP未确认数据指针16移动,使得TCP窗口结束边界28也移动,从而可为该连接发送其它数据包。如果数据流10的部分14中的数据 包在一定时段之后仍未被确认,则发送代理通常将重发未确认的数据 包,直至收到对那些数据包的确认。

为了开始发送数据,源主机通常把数据流10的数据存储在可由 发送代理存取的緩冲器中。 一种这样的緩冲器称作"循环緩冲器", 其中待传输的数据被复制并且通常保留在其中,直到循环緩冲器10 中的所有数据已经被发送(以及根据需要被重传)并且所有数据已经 一皮确认为成功接收为止。

循环緩冲器采用通常把数据短期存储在集成电路中的物理存储

器来实现,它的一个实例是随机存取存储器、即RAM。通常可以较 快地从这类物理存储器中存取数据。主机通常具有诸如硬盘和光盘之 类的附加物理存储器,以便较长期地存储数据。这些基于非集成电路 的存储器往往比物理存储器更慢地检索数据。

计算机的操作系统通常利用虚拟存储空间,它往往比计算机的短

期物理存储器的存储空间大得多。图2表示虚拟存储空间50和短期 物理存储空间52的一个实例。如硬盘之类的长期存储器的存储空间 以54表示。数据流10中待发送的数据最初可存储在各种存储装置的 非邻接部分、即不连续的存储地址中。例如,以10a和10b表示的两 个部分可以存储在物理存储器的物理存储空间52的非邻接部分,而 以10c表示的另一个部分可存储在硬盘驱动器中,如图2所示。计算 机的操作系统采用虚拟存储地址空间50来跟踪数据流10的部分10a、 10b和10c的实际位置。因此,虚拟存储地址空间50的部分50a被映 射到其中存储数据部分10a的物理存储空间52的物理存储地址。同 样,虚拟存储地址空间50的部分50b被映射到其中存储数据部分10b 的物理存储空间52的物理存储地址。此外,虚拟存储地址空间50的 部分50c被映射到其中存储数据部分10c的长期硬盘驱动器存储空间 54的物理存储地址。空白部分50d表示虚拟存储地址空间50的未分 配或未映射部分。由于物理存储器中的存储空间通常比较有限,因此存储在物理存 储器中的数据的部分可被复制,即被"交换"到硬盘驱动器或其它长 期存储器,以便为其它数据让出物理存储器中的空间。因此,数据部

分10c可以从物理存储器交换到硬盘驱动器。当数据部分10c被交换 到硬盘驱动器时,被交换数据部分的虚拟存储地址被映射到如图2所 示的硬盘驱动器存储空间54而非先前存储部分10c的物理存储空间 52的新的硬盘驱动器物理存储地址。

图3表示用于根据TCP/IP RFC系列的Berkeley软件设计 (BSD)TCP/IP栈来发送数据的先有技术操作。响应发送数据的数据流 10的请求,可包括计算机操作系统或驱动程序或者这两者的主机从 物理存储器和长期存储装置的各个单元收集(框70)数据流10的各种 数据部分10a、 lOb...lOn。如图4所示,主才几把所收集的数据流部分 10a、 10b…10n存储在物理存储空间52的毗连存储单元中。.这样, 数据流10的数据被组装,以便传输。

另外,主机通过主机操作系统"锁定"(框72)包含数据流10的 物理存储单元。锁定这些存储单元以防止其它应用程序在数据流10 的传输过程中使数据流10的数据的一些部分被换出到长期存储器。 主机向发送代理发送(框74)包含数据流10的锁定物理存储单元的物 理存储地址。进行响应,发送代理开始从锁定存储单元发送(框76) 包含数据的数据包,并在数据包被成功发送和接收时开始从目标主机 接收(框78)确认。发送代理继续发送(框76)数据包以及接收(框78)确 认。未确认数据包被重发(框76),直到它们被确认(框78)为止。 一旦 数据流10的所有数据包已经被成功地发送和确认(框80),主机释放 (框82)包含数据流10的数据的物理存储单元。释放之后,存储在释 放物理存储单元中的数据可根据需要被交换到长期存储器。

然而,本领域中 一直需要提高数据传输中存储器使用的性能。

发明内容根据本发明的第一方面,提供一种把数据从源发送到目标的方

法,包括:主机,向源的发送代理提供待发送到目标的数据的虚拟存

储地址,其中数据被存储在源的多个物理单元中,各单元具有物理地

址以及映射到物理地址的虛拟存储地址;发送代理向主机提供待发送 到目标的数据的至少部分虛拟存储地址;主机向发送代理标识数据, 所标识的数据由发送代理提供的虚拟存储地址来寻址;以及发送代理 向目标发送所标识的数据。

在本发明的一个实施例中,主机向发送代理标识数据包括:主机

向发送代理提供由发送代理提供的虛拟地址来寻址的数据,所述方法 还包括发送代理把从主机接收的数据存储在发送代理的緩冲器中。 在本发明的一个实施例中,主机向发送代理标识数据包括:主机

的存储单元的物理地址。

在本发明的一个实施例中,物理单元包括第一存储器的单元和第 二存储器的单元,主机所标识的数据存储在第一存储器中,主机提供 的物理存储地址是包含由发送代理提供的虚拟地址来寻址的数据的 第 一存储器的物理存储单元,所述方法还包括锁定主机向发送代理提 供的第一存储器的物理存储单元,以便防止由发送代理提供的虛拟地 址来寻址的数据被交换到第二存储器。

在本发明的一个实施例中,所述方法还包括:发送代理爿(人第一存

寻址的数据之后,释放第 一存储器的锁定的物理存储单元。

在本发明的一个实施例中,所述方法还包括从目标接收对发送代

理成功发送且目标成功接收的数据的确认;其中发送代理提供给主机

的虚拟存储地址是发送代理发送到目标、但未被确认为目标成功接收

的数据的虚拟地址。

在本发明的一个实施例中,所述方法还包括:从目标接收对发送代理成功发送且目标成功接收的数据的确认;发送代理向主机提供由 发送代理发送到所述目标、但未被确认为目标成功接收的数据的虚拟

地址;主机对发送代理标识由发送代理提供的虚拟存储地址来寻址的 未确认数据;以及发送代理向目标重发标识的未确认数据。

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括: 主机向发送代理提供至少一种数据结构,所述数据结构包括:地址字 段,包含存储待发送到目标的数据块的多个存储单元其中之一的虚拟 地址;大小字段,包含表示所述数据块大小的值;以及序列号字段, 包含表示与所述数据块中的数据相关的数据包序列号的值。

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括: 主机向发送代理提供多个数据结构,其中各数据结构包括:地址字段, 存储待发送到所述目标的数据块的多个存储单元其中之一的虚拟地 址;大小字段,包含表示所述数据块大小的值;序列号字段,包含表 示与所述数据块中的数据相关的所述数据包序列号的值;以及链接字 段,包含所述多个数据结构中的另 一个数据结构的虚拟地址。

在本发明的一个实施例中,所述物理单元包括第一存储器和第二 存储器的单元,以及待发送到貝标的数据存储在第一存储器中,所述 方法还包括:锁定存储待发送数据的第一存储器的单元,以便防止待 发送数据被交换到第二存储器;除了待发送数据的虚拟存储地址之 外,主机还向发送代理提供存储待发送数据的第一存储器的单元的物 理地址;发送代理从第一存储器的锁定单元中检索待发送数据;以及 在发送代理从存储待发送数据的第 一存储器的锁定单元中检索数据 之后,释放存储待发送数据的第一存储器的锁定单元。

根据本发明的第二方面,提供一种适合与目标通信的系统,包括: 存储器;耦合到系统存储器的处理器;可由处理器在存储器中执行的 操作系统;网络适配器;数据存储装置;适合管理对数据存储装置的 输入/输出访问的数据存储装置控制器;以及可由处理器在存储器中 执行的设备驱动程序。存储器和数据存储装置均包括适合存储数据的物理单元,各单元具有物理地址和映射到物理地址的虛拟地址。操作 系统和设备驱动程序中的至少 一个适合提供主机,以及设备驱动程序

和网络适配器中的至少一个适合提供发送代理,其中:(i)主机向发送 代理提供待发送到目标的数据的虚拟存储地址;(ii)发送代理向主机 提供待发送到目标的数据的至少部分虚拟存储地址;(iii)主机对发送 代理标识由发送代理提供的虚拟存储地址来寻址的数据;以及(iv)发 送代理向目标发送标识的数据,建立适合在系统与目标之间发送数据 包的有效连"l妾。

在本发明的一个实施例中,所述系统还包括緩冲器,以及主机向 发送代理标识数据包括:主机向发送代理提供由发送代理提供的虚拟 地址来寻址的数据,以及发送代理还适合把从主机接收的数据存储在 緩沖器中。

在本发明的一个实施例中,主机向发送代理标识数据包括:主机

的存储单元的物理地址。

在本发明的一个实施例中,主机标识的数据存储在存储器中,以 及主机所提供的物理地址是包含由发送代理提供的虚拟地址来寻址 的数据的存储器的物理单元,系统还包括锁定主机提供给发送代理的 存储器的物理存储单元,以便防止由发送代理提供的虚拟地址来寻址 的数据被交换到数据存储装置。

在本发明的一个实施例中,发送代理还适合^v存储器的锁定的物

送代理和主机中的至少一个还适合在发送代理向目标发送由发送代 理提供的虚拟地址来寻址的数据之后,释放存储器的锁定的物理存储 单元。

在本发明的一个实施例中,发送代理还适合从目标接收对发送代 理成功发送且目标成功接收的数据的确认;以及发送代理提供给主机 的虚拟存储地址是发送代理发送到目标、但未被确认为目标成功接收的数据的虚拟地址。

在本发明的一个实施例中,发送代理还适合于:从目标接收对发 送代理成功发送且目标成功接收的数据的确认;以及向主机提供由发 送代理发送到目标、但未被确认为目标成功接收的数据的虚拟地址; 其中主机还适合对发送代理标识由发送代理提供的虚拟存储地址来 寻址的未确认数据;以及发送代理还适合向目标重发标识的未确认数 据。

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括主 机向发送代理提供至少一种数据结构,数据结构包括:地址字段,包 含存储待发送到目标的数据块的多个单元其中之一的虚拟地址;大小 字段,包含表示所述数据块大小的值;以及序列号字段,包含表示与 所述数据块中的数据相关的数据包序列号的值。

在本发明的一个实施例中,主机向发送代理提供虚拟地址包括主 机向发送代理提供多个数据结构,其中各数据结构包括:地址字段, 包含存储待发送到目标的数据块的多个存储单元其中之一的虚拟地 址;大小字段,包含表示所述数据块大小的值;序列号字段,包含表 示与所述数据块中的数据相关的数据包序列号的值;以及链接字段, 包含所述多个数据结构中的另 一个数据结构的虚拟地址。

在本发明的一个实施例中,待发送到目标的数据存储在存储器 中,以及主机和发送代理中的至少一个适合于:锁定存储待发送数据 的存储器的单元,以便防止待发送数据被交换到数据存储装置;其中, 除了待发送数据的虚拟存储地址之外,主机还适合向发送代理提供存 储待发送数据的存储器的单元的物理地址;其中,发送代理还适合从 存储器的锁定单元检索待发送数据;以及在发送代理从存储待发送数 据的存储器的锁定单元检索数据之后,释放存储待发送数据的存储器 的锁定单元。

根据本发明的第三方面,提供一种把数据从源发送到目标的装 置,所述装置包括:用于使主机能够向源的发送代理提供待发送到目标的数据的虛拟存储地址的部件,其中数据存储在源的多个物理单元

中,各单元具有物理地址以及映射到物理地址的虛拟存储地址;用于 使发送代理能够向主机提供待发送到目标的数据的至少部分虚拟存 储地址的部件;用于使主机能够对发送代理标识由发送代理提供的虚 拟存储地址来寻址的数据的部件;以及用于使发送代理能够向目标发 送标识的lt据的部件。

在本发明的一个实施例中,用于使主机能够标识数据的部件包括 用于使主机能够向发送代理提供由发送代理提供的虚拟地址来寻址 的数据的部件,所述装置还包括用于使发送代理能够把从主机接收的 数据存储在发送代理的緩冲器中的部件。

在本发明的一个实施例中,用于使主机能够标识数据的部件包括

址来寻址的数据的存储单元的物理地址的部件。

在本发明的一个实施例中,物理单元包括第一存储器的单元和第 二存储器的单元,主机所标识的数据存储在第一存储器中,主机所提

的第一存储器的物理存储单元,所述装置还包括用于锁定主机提供到 发送代理的第一存储器的物理存储单元,以便防止由发送代理提供的 虚拟地址来寻址的数据被交换到第二存储器的部件。

在本发明的一个实施例中,所述装置还包括:用于使发送代理能 够从第 一存储器的锁定的物理存储单元中检索由发送代理提供的虚 拟地址来寻址的数据的部件;以及用于在发送代理向目标发送由发送 代理提供的虚拟地址来寻址的数据之后释放第一存储器的锁定的物 理存储单元的部件。

在本发明的一个实施例中,所述装置还包括用于从目标接收对发 送代理成功发送且目标成功接收的数据的确认的部件;以及发送代理 提供给主机的虚拟存储地址是发送代理发送到目标、但未被确认为目 标成功接收的数据的虚拟地址。在本发明的一个实施例中,所述装置还包括:用于从目标接收对 发送代理成功发送且目标成功接收的数据的确认的部件;用于使发送 代理能够向主机提供发送代理发送到目标、但未被确认为目标成功接 收的数据的虚拟地址的部件;用于使主机能够对发送代理标识由发送

送代理能够向目标重发标识的未确认数据的部件。

在本发明的一个实施例中,用于使主机能够向发送代理提供虚拟 地址的部件包括用于使主机能够向发送代理提供至少一种数据结构 的部件,数据结构包括:地址字段,包含存储待发送到目标的数据块 的多个存储单元其中之一的虛拟地址;大小字段,包含表示所述数据 块大小的值;以及序列号字段,包含表示与数据块中的数据相关的数 据包序列号的值。

在本发明的一个实施例中,用于使主机能够向发送代理提供虚拟 地址的部件包括用于使主机能够向发送代理提供多个数据结构的部 件,其中各数据结构包括:地址字段,存储待发送到目标的数据块的 多个存储单元其中之一的虚拟地址;大小字段,包含表示数据块大小 的值;序列号字段,包含表示与数据块中的数据相关的数据包序列号 的值;以及链接字段,包含多个数据结构中的另一个数据结构的虚拟 地址。

在本发明的一个实施例中,物理单元包括第一存储器和第二存储 器的单元,以及待发送到目标的数据存储在第一存储器中,所述装置 还包括:用于锁定存储待发送数据的第一存储器的单元,以便防止待 发送数据被交换到第二存储器的部件;用于除了待发送数据的虚拟存 储地址之外,使主机能够还向发送代理提供存储待发送数据的第一存 储器的单元的物理地址的部件;用于使发送代理能够从第一存储器的 锁定单元中检索待发送数据的部件;以及用于在发送代理从存储待发 送数据的第 一存储器的锁定单元中检索数据之后,释放存储待发送数 据的第 一存储器的锁定单元的部件。附图说明

现在参照附图,其中各图中类似的参考标号表示相应的部分: 图1说明根据先有技术TCP协议传输的数据流; 图2说明存储在存储器中的数据流的数据的先有技术虚拟和物 理存<*地址;

图3说明在通过网络传送数据时的先有技术操作;

图4说明数据流的数据在物理存储器中的先有技术存储;

图5说明其中实现本发明的若干方面的计算环境的 一个实施例;

图6说明先有技术的数据包体系结构;

图7说明根据本发明的若干方面的实际毗连数据流的数据结构 的一个实施例;

图8说明根据本发明的若干方面传送数据流所执行的操作的一 个实施例;

.图9说明根据本发明的若干方面重传数据流的数据所执行的操 作的一个实施例;

.图IO说明根据本发明的若干方面重传数据流的数据所执行的操 作的另一个实施例;

图11说明根据本发明的若干方面传送数据流所执行的操作的另 一个实施例;

图12说明根据本发明的若干方面传送数据流所执行的操作的又 一个实施例;以及

图13说明可与所述实施例配合使用的 一种体系结构。

具体实施方式

在以下说明中,参照附图,附图构成说明的组成部分并说明本发 明的若干实施例。应当理解,只要没有背离本发明的范围,可采用其 它实施例,并且可进^^结构和4喿作变更。图5说明其中可实现本发明的若干方面的计算环境。计算机102

包括一个或多个中央处理器(CPU)104(仅示出一个)、内存106、非易 失性存储装置108、操作系统110和网络适配器112。应用程序114 还在内存106中运行,并且能够从远程计算机发送和接收数据包。计 算机102可包括本领域已知的任何计算装置,例如大型计算机、服务 器、个人计算机、工作站、膝上型电脑、手持计算机、电话装置、网 络设备、虚拟化设备、存储控制器等等。可采用本领域已知的任何 CPU 104和才喿作系统110。作为内存管理才喿作的一部分,内存106中 的程序和数据可被交换到存储装置108。

网络适配器112包括网络协议层116,用于实现通过网络118向 远程装置发送或从远程装置接收网络数据包的物理通信层。网络118 可包括局域网(LAN)、因特网、广域网(WAN)、存储区域网(SAN)等。 实施例可配置成通过无线网络或连接、如无线LAN、蓝牙等传送数 据。在某些实施例中,网络适配器112和网络协议层116可实现以太 网协议、令牌环网协议、光纤信道协议、Infmiband、串行高技术配 件(SATA)、并行SCSI、串行附加SCSI电缆等,或者本领域已知的 其它任何网络通信协议。

设备驱动程序120在内存106中运行,并且包括与网络适配器 112通信的网络适配器112专用命令以及操作系统IIO与网络适配器 112之间的接口。在某些实现中,网络适配器112包括传输协议层121 以及网络协议层116。例如,网络适配器112可实现TCP/IP卸载引 擎(TOE),其中传输层操作在网络适配器112硬件内实现的传输协议 层121的卸载引擎中被执行,与设备驱动程序120相反。

网络层116处理网络通信,以及把所接收的TCP/IP数据包提供 给传输协议层121,以便在已加密的情况下对^:据包进行解密。传输 协议层121与设备驱动程序120接口 ,并执行其它传输协议层操作, 例如处理在网络适配器112上接收的数据包中包含的、在传输层被包 装的消息的解密内容,诸如TCP和/或IP、因特网小计算机系统接口(iSCSI)、光纤信道SCSI、并行SCSI传输或本领域已知的其它任何传 输层协议。传输卸载引擎121可从所接收的TCP/IP数据包中将净荷 拆包,并把数据传递到设备驱动程序120,以便返回给应用程序114。

通过网络118传送数据的应用程序114向设备驱动程序120提供 数据。数据可被发送到传输协议层121,从而被封装成TCP/IP数据 包。传输协议层121还可在通过网络协议层116在网络118上传送数 据包之前对数据包进4于加密。

内存106还包括文件对象124,它又可称作套接字对象,包括关 于通过网络118到远程计算机的连接的信息。应用程序114采用文件 对象124中的信息来标识该连接。应用程序114采用文件对象124与 远程系统通信。文件对象124可指明将^t用来与远程系统通信的本地 端口或套接字、在其中运行应用程序114的计算机102的本地网络(IP) 地址、应用程序114已发送和接收的数据^:量、以及应用程序114与 其通信的远程端口和网络地址、如IP地址。上下文信息126包括一 种数据结构,其中包含设备驱动程序120所维护的用以管理发送到网 络适配器112的请求的信息,如以下所述。

在所述实施例中,经编程、由内存106的软件来操作的CPU 104 提供与网络适配器112交互的主机130,其中所述软件包括一个或多 个才喿作系统110、应用程序114以及设备驱动程序120。因此,发送 代理132包括网络接口 112的传输协议层121和网络协议层116。但 是,发送代理132可通过TOE、网络接口卡或集成电路、驱动程序、 TCP/IP栈、主处理器或这些单元的组合来实现。

图6说明通过网络适配器112接收或发送的网络数据包150的格 式。网络数据包150以网络协议114所理解的格式来实现,例如封装 在以太网帧中,它包括其它以太网成分、如首标和检错码(未示出)。 传输数据包152包含在网络数据包150中。传输数据包152可包括能 够由传输协议驱动程序121来处理的传输层,例如TCP和/或IP协议、 因特网小计算机系统接口(iSCSI)协议、光纤信道SCSI、并行SCSI传输等。传输数据包152包括净荷数据154以及其它传输层字段、如 首标和检错码。净荷数据52包括被传送的基本内容,如命令、状态 和/或数据。操作系统110可包括设备层、如SCSI驱动程序(未示出), 以便处理净荷数据154的内容以及存取其中的任何状态、命令和/或 数据。

如上所述,当发送数据流、如数据流10时,主机通常已经预先 把数据流的数据存储在物理存储器中,并且锁定物理存储器的那些单

认为止。因此,在数据传输过程中可能占用物理存储器的大量部分。 根据可在数据传输过程中改善内存资源管理的一个实施例,主机 130向发送代理132发送待发送数据的虚拟存储地址。如上所述,主 机130可包括操作系统或驱动程序或者这两者。发送代理132可通过 TOE、网络接口卡或集成电路、驱动程序、TCP/IP栈、主处理器或 这些单元的组合来实现。当发送代理132准备在传送或重传中发送数 据时,发送代理132向主机提供它准备发送的、可以只是要发送的整 个数据流的一部分的数据的虚拟地址。作出响应,主机向发送代理 132提供所请求数据的物理地址或实际数据本身。因此,物理存储器 的锁定可被减少或消除,如以下更详细说明。

图7表示虚拟存储空间50的虚拟存储地址的块200a。块200a 的各虚拟存储地址被映射到包含待发送数据流210的数据块210a的 多个物理存储单元。存储数据块210a的物理存储单元可以处于物理 存储单元52或者长期物理存储单元54中。虚拟存储地址的另 一个块 200b被映射到包含待发送数据的另 一个块210b的另 一组多个物理存 储单元。存储数据块210b的物理存储单元也可以处于物理存储单元 52或者长期物理存储单元54中,并且不一定处于与块210a相同类 型的存储器中。虚拟存储地址的其它块被映射到包含待发送数据流的 其它数据块的物理存储单元。存储其它数据块的物理存储单元同样可 以处于物理存储单元52或者长期物理存储单元54中,并且不一定全部处于相同类型的存储器中。虚拟存储地址的块200n被映射到包含 待发送数据流210的最后一个数据块210n的最后一组物理存储单元。

200b...200n。图7说明数据结构的一个实例,该数据结构在本文中称 作"虚拟上下文",它标识虚拟存储地址的块。在本例中,虛拟存储 地址的各块200a、 200b...200n分别由相关虛拟上下文220a、 220b…220n来标识。各虚拟上下文220a、 220b…220n具有虚拟地址 字段222a、 222b…222n,它们可包含相关数据块210a、 210b...210n 的数据的起始数据包的虚拟地址。或者,起始数据包的虛拟地址可由 与偏移字4爻224a、 224b...224n中所存储的偏移值组合的虚拟地址字 段222a、 222b…222n中所存储的虚拟地址来标识。

各数据块210a、 210b.,.210n的大小在数据大小字段226a、 226b...226n中标识。因此,在所述实施例中,各数据块210a、 210b…210n的大小对于不同块可以不同。或者,固定大小可能对于 一些应用是适当的。另外,数据块210a、 210b…210n的第一数据包 的TCP序列号或其它发送协议序列号在起始序列号字段228a、 228b…228n中标识。

在所述实施例中,虛拟上下文220a、 22.0b...220n可通过指针字 段230a、 230b…230n链接在一起,其中指针字段230a、 230b…230n 指向包含数据流210的下一个虚拟上下文220a、 220b...220n的虚拟 存储单元的地址。因此,例如,数据块210a的虚拟存储地址块200a 的虚拟上下文220a的指针字段230a指向包含数据块210b的虚拟存 储地址块200b的下一个虚拟上下文220b的虛拟存储单元的地址,数 据块210b的虚拟存储地址块200b的虚拟上下文220b的指针字段 230b指向包含数据块210c的虚拟存储地址块200c的下一个虚拟上下 文220c的虚拟存储单元的地址,依此类推。

如上所述,数据块210a、 210b.,.210n的各块可存储在不同类型 的物理存储器中。另外,存储在同一个存储器中的数据块210a、210b...210n的那些块不需要处于邻接存储在特定存储器中的其它数 据块的存储单元的存储单元中。尽管如此,虛拟上下文220a、 220b...220n的链接表可^皮看作是提供数据块210a、 210b...210n的虚 拟连续数据流210,这些数据块不 一定实际上存储在毗连存储器中。图8表示在通过网络向目标发送数据流210时主机130和发送代 理132的操作。数据流210的传送通过主机130向发送代理132发送 (框250)虛拟上下文220a、 220b…220n的链接表来发起,这些虛拟上 下文标识数据流210的虚拟连续数据的凄t据块210a、 210b...210n的 虚拟存储地址块200a、 200b...200n。这些虚拟地址可采用诸如本领 域的技术人员已知的SO—SEND和SO—SENDMSG等已知套接字函数 发送到发送代理132。在本申请中,SO—SEND函数可用于单个虚拟 地址块,以及SO—SENDMSG函数可用于若干虚拟地址块。

一旦发送代理准备发送数据流210的数据包块,发送代理132向 主机130发送(框252)该数据块的虚拟地址。例如,.发送代理132可 在数据包块进入TCP连接的TCP窗口内时准备发送那个块。在所述 实施例中,发送代理132首先向主机130发送第一数据包块、即数据 流210的数据块210a的虚拟地址。数据块210a的虚拟地址由虛拟上 下文220a标识。

采用发送代理132所提供的虚拟地址,主机130在数据块210a 没有在快速存取存储器、如物理存储单元52中时把它存储(框254) 在这类存储单元中。另外,主机130锁定(框256)包含数据块210a的 物理存储单元52,以便防止其它应用程序把那些存储单元交换到长 期存储器。要注意,在所述实施例中,主机130可把锁定的物理存储 器限制到正被发送的特定数据块的存储单元,而不是计划传送的整个 数据流的存储单元。

储单元52的物理存储地址。发送代理开始向目标主机发送(框262) 数据块210a的数据包。 一旦数据块210a的所有数据包已经被发送代

26理132发出(框264),主机130可释放(框266)包含数据块210a的物 理存储单元52。

在成功地收到发送代理132发送的数据包时,发送代理将从目标 主机接收(框268)确认,通过数据包序列号来标识目标主机成功接收 的每个数据包。要注意,在所述实施例中,主机130可在从目标主机 接收任何或全部确认之前释放包含数据块210a的物理存储单元(框 266)。如果没有收到(框270)对数据块210a的每个已发送数据包的确 认,则发送代理132在一定时段中(框272)将继续接收(框268)可能由 目标主机发送的其它任何确认。但是,如果已发送数据包在一定时段 内(框272)没有被确认,则发送代理132将开始重传(框274)数据块 210a的未确认数据包,以下会更详细说明。

一旦已经收到对数据块210a的所有数据包的确认(框270),如果 仍未发送完所有数据块(框276),则发送代理132可向目标主机发送 数据块210b…210n中的下一个数椐块。因此,发送代理132向主机. 130发送数据流210的下一个数据包块210b的虚拟地址。

采用发送代理132所提供的虚拟地址,主机130在数据块210b 没有在快速存取存储器52中时把它存储(框254)在物理存储单元52 中,并锁定(框256)包含数据块210b的物理存储器单元52。

主机向发送代理132发送(框260)包含数据块210b的锁定物理存 储单元的物理存储地址。发送代理开始向目标主机发送(框262)数据 块210b的数据包。 一旦数据块210b的所有数据包已经被发送代理 132发出(框264),主机130可释放(框266)包含数据块210b的物理存 储单元。

如果已发送数据包在一定时段内(框272)没有被确认,则发送代 理132将开始重传(框274)数据块210b的未确认数据包。以这种方式 传送数据流210的剩余数据块,直到所有数据块已被成功发送和确认 (框276),以及完成数据流210的传送(框278)。

图9表示在重传(图8的框274)通过网络向目标发送的数据流210

27的数据块的未确认数据包时主机130和发送代理132的操作。发送代 理132向主机130发送(框282)在图8的框272的时段内没有被目标 主机确认的那些数据包的虚拟地址。

采用发送代理132所提供的虚拟地址,主机130收集(框284)未 确认数据包,并在未确认数据包没有在物理存储器52中时将其存储 在物理存储单元52中。在所述实施例中,未确认数据包可以存储在 物理存储器52的毗连存储单元中或者存储在非毗连单元中。另外, 主机130锁定(框286)包含未确认数据包的物理存储单元52,以便防 止其它应用程序把那些存储单元交换到长期存储器。

主机130向发送代理132发送(框288)包含被发送数据块的未确 认数据包的数据的锁定物理存储单元的物理存储地址。发送代理开始 向目标主机重发(框290)未确认数据包。 一旦所有未确认数据包已经 由发送代理132重发(框292),主机130可释放包含被重发数据块的 未确认数据包的物理存储单元(框294)。

控制返回到(框296)图8的传送例程,以便从目标主机接收(框268) 确认。要注意,在所述实施例中,主机130可在从目标主机接收确认 之前释放包含未确认数据包的物理存储单元(框294)。如果先前未确 认的数据包的已重发数据包在一定时段内(框272)没有被确认,则发 送代理132将再次开始按照以上结合图9所述的方式重传(框274)被 传送的数据块的未确认数据包。

图10表示根据一个备选实施例、在重传通过网络向目标传送的 数据流210的数据块的未确认数据包时主机130和发送代理132的操 作。通过与图9的操作相同的方式,发送代理132向主机130发送(框

拟地址。

采用发送代理132所提供的虚拟地址,主机130收集未确认数据 包,以及主机130不是发送未确认数据包的物理存储地址,而是把实 际数据发送(框302)到发送代理132,发送代理132把未确认数据包的数据存储(框304)在网络接口 112的缓冲存储器306(图5)中。

发送代理开始采用来自緩冲器306的数据向目标主机发送(框 308)未确认数据包。控制返回到(框310)图8的传输例程,以便从目 标主机接收(框268)确认。如果先前未确认的数据包的已发送数据包 在一定时段内(框272)没有被确认,则发送代理132将开始按照以上 结合图9或图10所述的一种或多种方式重传(框274)被传送的数据块 的未确认数据包。

在上述图8-10的实例中,讲述了数据块210a、 210b.,.210n的每 次传输。应当理解,由发送代理进行的数据块的传输不需要被限制为 每次仅一个数据块未完成。随应用而定,几个或更多数据块可在没有 收到确认的情况下被发送。因此,在TCP上下文中,发送代理可发 送达到TCP窗口(图l)的数据,这个数据可包含若干数据块,由不同 虛拟上下文来指示,而不需要收到任何确认。发送代理采用TCP下 一个数据指针22和TCP发送窗口 20的值来跟踪在没有收到确认时 可发送的数据数量,如上所述。

图11表示根据一个备选实施例、在通过网络向目标传送数据流 210时主机130和发送代理132的操作。通过与图8的操作相同的方 式,数据流210的传输通过主机130向发送代理132发送(框350)虚 拟上下文220a、 220b…220n的链接表来发起,链接表标识虚拟连续 数据流210的数据块210a、 210b...210n的虚拟存储地址块200a、 200b…200n。 一旦发送代理准备发送数据流210的数据包块,发送代 理132向主机130发送(框352)该数据块的虚拟地址。

采用发送代理132所提供的虛拟地址,主机130不是发送数据块 的物理存储地址,而是把该块的数据发送(框354)到发送代理132, 发送代理132把该块的数据存储(框356)在网络接口 112的緩冲存储 器306中。 '

发送代理开始把数据块210a的数据包从发送代理缓冲器306发 送(框362)到目标主机,直到数据块210的所有数据包已经由发送代理132发送(框364)为止。在成功地收到发送代理132发送的数据包 时,发送代理将从目标主机接收(框368)确认,通过数据包序列号来 标识由目标主机成功接收的每个数据包。如果没有收到对数据块210 的每个已发送数据包的确认(框370),则发送代理132在一定时段中 (框372)将继续接收(框368)可能由目标主机发送的其它任何确认。但 是,如果已发送数据包在该时段内(框372)没有被确认,则发送代理 132将开始按照重传程序、如以上结合图9和图IO所述的一个或多 个重传操作来重传(框374)数据块210的未确认数据包。

一旦已经收到对数据块210a的所有数据包的确认(框370),如果 仍未发送完所有数据块(框376),则发送代理132可向目标主机发送 数据块210b…210n中的下一个数据块。如果不是,则发送代理132 向主机130发送(框352)数据流210的下一个数据包块的虛拟地址。 一旦所有数据块210a、 210b...210n已经被成功发送和确认(框376), 则数据流10已经被成功发送(框378)。

应当理解,响应发送代理所提供的虚拟地址,主机130可通过各

图9描述传输和重传操作,其中,主机130采用发送代理132所提供 的虚拟地址来锁定包含由虚拟地址寻址的数据包的物理存储单元52, 并向发送代理132发送包含数据包的锁定物理存储单元的物理存储 地址。通过比较,图11和图IO描述传输和重传操作,其中,主机 130采用发送代理132所提供的虚拟地址、通过向发送代理132发送 虚拟地址寻址的实际数据而存储在发送代理緩冲器中来标识数据。应 当理解,主机130可通过其它技术来标识由发送代理所一是供的虚拟地 址寻址的数据包。

图12表示根据又一个实施例、在通过网络向目标传送数据流210 时主机130和发送代理132的操作。数据流210的传送通过主机130 收集(框450)数据流210的数据包并在它们没有被存储在物理存储器 中时将其存储在物理存储单元52中来发起。在所述实施例中,数据流210可以存储在物理存储单元52的毗连存储单元中或者非毗连单 元中。另外,主机130锁定(框452)包含数据流210的物理存储单元 52,以便防止其它应用程序把那些存储单元交换到长期存储器。

锁定物理存储单元的物理存储地址。另外,主机130向发送代理132 发送虚拟上下文220a、 220b.,.220n的链接表,虚拟上下文标识虚拟 连续数据流210的数据块210a、210b…210n的虚拟存储地址块200a、 200b…200n。

发送代理132开始采用来自快速存取存储单元52的锁定物理存 储单元的数据向目标主机发送(框456)数据流210的数据包。 一旦数 据流的所有数据包已经被发送代理132发出(框464),主机130可释 放(框466)包含数据流210的物理存储单元。

在成功地收到发送代理132发送的数据包时,发送代理将从目标 主机接收(框468)确认,通过数据包序列号来标识由目标主机成功接 收的每个数据包。.如果没有收到(框470)对数据流210的每个已发送 数据包的确认,则发送代理132在一定时段中(框472)将继续接收(框 468)可能由目标主机发送的其它任何确认。但是,如果已发送数据包 在该时段内(框472)没有被确认,则发送代理132将开始按照重传程 序、如图9或图10所述的操作来重传(框474)数据流210的未确认数 据包。 一旦已经收到对数据流210的所有数据包的确认(框470),数 据流10已经被成功发送(框476)。

其它实施例详细i兌明

为通过网络的数据传输管理存储器的所述技术可利用标准编程 和/或工程技术以产生软件、固件、硬件或其任意组合,作为方法、 设备或制造产品来实现。术语"制造产品,,在本文中用来表示以硬件 逻辑(如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC) 等)或者计算机可读媒体、如磁存储媒体(如硬盘驱动器、软盘、磁带 等)、光存储装置(CD-ROM、光盘等)、易失性和非易失性存储装置(如EEPROM、 ROM、 PROM、 RAM、 DRAM、 SRAM、固件、可编程逻 辑等)来实现的代码或逻辑。计算机可读媒体中的代码由处理器存取

或者是通过网络从文件服务器可存取的。在这些情况下,其中实现代 码的制造产品可包括传输媒体,诸如网络传输线、无线传输媒体、经 空间传播的信号、无线电波、红外信号等等。因此,"制造产品"可 包括其中包含代码的媒体。另外,"制造产品"可包括其中包含、处 理和执行代码的硬件和软件部件的组合。本领域的技术人员当然知

道,可对本配置进行许多修改,只要没有背离本发明的范围,以及制 造产品可包括本领域已知的任何信息承载媒体。

在所述实施例中,某些操作被描述成通过操作系统110、设备驱 动程序120或网络接口 112来执行。在备选实施例中,描述为通过其 中之一执行的操作可通过操作系统110、设备驱动程序120或网络接 口 112中的一个或多个来执行。例如,描述为通过主机130执行的锁 定和释放操作可由发送代理132来执行。

在所述实现中,传输协议层121以网络适配器112^_件来实现。 在备选实现中,传输协议层可通过设备驱动程序或主机内存106来实 现。

在所述实施例中,数据包通过网络从网络适配卡传送到远程计算

机。在备选实施例中,由协议层或设备驱动程序所处理的发送和接收

数据包可被传送到设备驱动程序和传输协议驱动程序在其中执行的 同一个计算机中执行的独立进程。在这些实施例中,没有使用网卡,

因为数据包在同 一个计算机和/或操作系统中的进程之间传递。

在某些实现中,设备驱动程序和网络适配器实施例可包含在计算 机系统中,该系统包括存储控制器,诸如SCSI、集成驱动电路(IDE)、 冗余独立磁盘阵列(RAID)等控制器,管理对例如磁盘驱动器、磁带媒 体、光盘等非易失性存储装置的存取。在备选实现中,网络适配器实 施例可包括在没有包含存储控制器的系统中,例如某些集线器和交换机。

在某些实现中,设备驱动程序和网络适配器实施例可以在一种计 算机系统中实现,这种系统包括呈现在耦合到包含设备驱动程序和网 络适配器的计算机系统的监视器上显示的信息的视频控制器,例如包 括台式电脑、工作站、服务器、大型计算机、膝上型电脑、手持计算 机等在内的计算机系统。或者,网络适配器和设备驱动程序实施例可 在没有包含视频控制器的计算装置中实现,如交换机、路由器等。

在某些实现中,网络适配器可配置成通过连接到网络适配器的端 口的电缆来传送数据。或者,网络适配器实施例可配置成通过无线网

络或连接、如无线LAN、蓝牙等传送数据。

图8-12的所示逻辑表示以某个顺序发生的某些事件。在备选实 施例中,某些操作可按照不同的顺序来执行或修改或取消。此外,可 对上述逻辑增加步骤,并且仍然符合所述实施例。另外,本文所述操 作可依次发生,或者某些操作可并行处理。此外,操作可由单个处理 单元来执行或者由分布式处理单元来执行。

图7说明用来标识虚拟地址的信息。在备选实现中,这些数据结 构可包括附图所述之外的其它或不同信息。

图13说明诸如图5所示的主机和存储装置之类的网络组件的计 算机体系结构500的一个实现。体系结构500可包括处理器502(例如 微处理器)、内存504(例如易失性存储装置)以及存储装置506(例如非 易失性存储装置,诸如磁盘驱动器、光盘驱动器、磁带驱动器等)。 存储装置506可包括内部存储装置或者附加或网络可存取存储装置。 存储装置506中的程序被装入内存504,并由处理器502以本领域已 知的方式来执行。该体系结构还包括实现与网络通信的网卡508,如 以太网、光纤信道仲裁环路等。此外,在某些实施例中,该体系结构 还可包括在显示监视器上呈现信息的视频控制器509,其中视频控制 器509可在视频卡上实现或者在安装到主板上的集成电路组件上集 成。如上所述,某些网络装置可具有多个网卡。输入装置510用来向处理器502提供用户输入,并且可包括键盘、鼠标、指示笔、话筒、 触摸显示屏或者本领域已知的其它任何激活或输入机构。输出装置 512能够呈现从处理器502或其它部件传送的信息,诸如显示监视器、 打印机、存储装置等。

网络适配器508可以在网卡、如外设部件互连(PCI)卡或其它某 种I/0卡、或者安装在主板上的集成电路部件中实现。

本发明的各种实施例的以上描述是为了说明和描述而提供的。它

据以上理论,许多修改和变更都是可行的。本发明的范围不是由本详 细描述来限制,而是由所附权利要求来限制。以上说明、实例和数据 提供了对本发明的构成的制造和使用的完整描述。由于在不背离本发 明的精神和范围的前提下可实现本发明的许多实施例,因此本发明在 于以下所附权利要求。

Claims (30)

1. 一种把数据从源发送到目标的方法,包括:主机,向所述源的发送代理提供待发送到目标的数据的虚拟存储地址,其中所述数据被存储在所述源的多个物理单元中,各单元具有物理地址以及映射到所述物理地址的虚拟存储地址;所述发送代理向所述主机提供待发送到所述目标的所述数据的至少部分所述虚拟存储地址;所述主机向所述发送代理标识数据,所标识的数据由所述发送代理提供的所述虚拟存储地址来寻址;以及所述发送代理向所述目标发送所标识的数据。
2. 如权利要求l所述的方法,其特征在于,所述主机向所述发送 代理标识数据包括:所述主机向所述发送代理提供由所述发送代理提 供的所述虚拟地址来寻址的数据,所述方法还包括所述发送代理把从 所述主机接收的数据存储在所述发送代理的緩沖器中。
3. 如权利要求l所述的方法,其特征在于,所述主机向所述发送 代理标识数据包括:所述主机向所述发送代理提供包含由所述发送代址。
4. 如权利要求3所述的方法,其特征在于,所述物理单元包括第 一存储器的单元和第二存储器的单元,所述主机所标识的所述数据存 储在所述第一存储器中,所述主机提供的所述物理存储地址是包含由 所述发送代理提供的所述虚拟地址来寻址的所述数据的所述第一存 储器的物理存储单元,所述方法还包括锁定所述主机向所述发送代理 提供的所述第一存储器的所述物理存储单元,以便防止由所述发送代 理提供的所述虚拟地址来寻址的所述数据被交换到所述第二存储器。
5. 如权利要求4所述的方法,其特征在于还包括: 所述发送代理从所述第一存储器的所述锁定的物理存储单元中拟地址来寻址的所述数据之后,释放所述第 一存储器的所述锁定的物 理存储单元。
6. 如权利要求1所述的方法,其特征在于还包括从所述目标接收送到所述目标、但未被确认为所述目标成功接收的数据的虚拟地址。
7. 如权利要求1所述的方法,其特征在于还包括:从所述目标接收对所述发送代理成功发送且所述目标成功接收 的数据的确认;所述发送代理向所述主机提供由所述发送代理发送到所述目标、 但未被确认为所述目标成功接收的数据的虚拟地址;所述主机对所述发送代理标识由所述发送代理提供的所述虚拟 存储地址来寻址的所述未确认数据;以及所述发送代理向所述目标重发所述标识的未确认数据。
8. 如权利要求l所述的方法,其特征在于,所述主机向所述发送 代理提供虚拟地址包括:所述主机向所述发送代理提供至少一种数据 结构,所述数据结构包括:地址字段,包含存储待发送到所述目标的 凄t据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所 述数据块大小的值;以及序列号字段,包含表示与所述数据块中的数 据相关的数据包序列号的值。
9. 如权利要求l所述的方法,其特征在于,所述主机向所述发送 代理提供虚拟地址包括:所述主机向所述发送代理提供多个数据结 构,其中各数据结构包括:地址字段,存储待发送到所述目标的数据 块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所述数 据块大小的值;序列号字段,包含表示与所述数据块中的数据相关的 所述数据包序列号的值;以及链接字段,包含所述多个数据结构中的另 一个婆:据结构的虛拟地址。
10. 如权利要求1所述的方法,其特征在于,所述物理单元包括 第一存储器和第二存储器的单元,以及待发送到所述目标的所述数据 存储在所述第一存储器中,所述方法还包括,锁定存储所述待发送数据的所述第一存储器的单元,以便防止所 述待发送数据被交换到所述第二存储器;除了所述待发送数据的所述虚拟存储地址之外,所述主机还向所 述发送代理提供存储所述待发送数据的所述第 一存储器的所述单元 的物理地址;所述发送代理从所述第 一存储器的所述锁定单元中检索所述待 发送数据;以及在所述发送代理从存储所述待发送数据的所述第一存储器的所 述锁定单元中检索所述数据之后,释放存储所述待发送数据的所述第 一存储器的所述锁定单元。
11. 一种适合与目标通信的系统,包括: 存储器;耦合到所述系统存储器的处理器;可由所述处理器在存储器中执行的操作系统;网络适配器;数据存储装置;适合管理对所述数据存储装置的输入/输出访问的数据存储装置 控制器;以及其中所述存储器和所述数据存储装置均包括适合存储数据的物 理单元,各单元具有物理地址和映射到所述物理地址的虚拟地址;以 及其中所述操作系统和设备驱动程序中的至少 一个适合提供主机, 以及所述设备驱动程序和所述网络适配器中的至少 一个适合提供发送代理,其中:(i) 所述主机向所述发送代理提供待发送到目标的数据的虚拟存储地址;(ii) 所述发送代理向所述主机提供待发送到所述目标的所述数据 的至少部分所述虚拟存储地址;(iii) 所述主机对所述发送代理标识由所述发送代理提供的所述虛 拟存储地址来寻址的数据;以及(iv) 所述发送代理向所述目标发送所述标识的数据,建立适合在所 述系统与目标之间发送数据包的有效连接。
12.如权利要求11所述的系统,其特征在于,所述系统还包括緩 冲器,以及所述主机向所述发送代理标识数据包括:所述主机向所述据,述緩冲器中。
13. 如权利要求11所述的系统,其特征在于,所述主机向所述发 送代理标识数据包括:所述主机向所述发送代理提供包含由所述发送 代理提供的所述虚拟存储地址来寻址的所述数据的存储单元的物理 地址。
14. 如权利要求13所述的系统,其特征在于,所述主机标识的所 述数据存储在所述存储器中,以及所述主机所提供的所述物理地址是存储器的物理单元,所述系统还包括锁定所述主机提供给所述发送代 理的所述存储器的所述物理存储单元,以便防止由所述发送代理提供 的所述虚拟地址来寻址的所述数据;故交换到所述数据存储装置。
15.如权利要求14所述的系统,其特征在于,所述发送代理还适提供的所述虚拟地址来寻址的所述数据;以及所述发送代理和所述主机中的至少一个还适合在所述发送代理向所述目数据之后,释放所述存储器的所述锁定的物理存储单元。
16.如权利要求11所述的系统,其特征在于,所述发送代理还适数据的确认;。是所述发送代理发送到所述目标、但未被确认为所述目标成功接收的 数据的虚拟地址。
17. 如权利要求11所述的系统,其特征在于,所述发送代理还适 合于:从所述目标接收对所述发送代理成功发送且所述目标成功接收 的数据的确认;以及向所述主机提供由所述发送代理发送到所述目标、但未被确认为 所述目标成功接收的所述凄史据的所述虛拟地址;其中所述主机还适合对所述发送代理标识由所述发送代理提供 的所述虚拟存储地址来寻址的所述未确认数据;以及所述发送代理还适合向所述目标重发所述标识的未确认数据。
18. 如权利要求11所述的系统,其特征在于,所述主机向所述发据结构,所述数据结构包括:地址字段,包含存储待发送到所述目标 的数据块的多个单元其中之一的虚拟地址;大小字段,包含表示所述 数据块大小的值;以及序列号字段,包含表示与所述数据块中的数据 相关的数据包序列号的值。
19. 如权利要求11所述的系统,其特征在于,所述主机向所述发 送代理提供虛拟地址包括所述主机向所述发送代理提供多个数据结 构,其中各数据结构包括:地址字段,包含存储待发送到所述目标的 数据块的多个存储单元其中之一的虚拟地址;大小字段,包含表示所 述数据块大小的值;序列号字段,包含表示与所述数据块中的数据相 关的数据包序列号的值;以及链接字段,包含所述多个数据结构中的另 一个婆:据结构的虛拟地址。
20. 如权利要求11所述的系统,其特征在于,待发送到所述目标 的所述数据存储在所述存储器中,以及所述主机和所述发送代理中的 至少一个适合于:锁定存储所述待发送数据的所述存储器的所述单元,以便防止所 述待发送数据被交换到所述数据存储装置;其中,除了所述待发送数据的所述虚拟存储地址之外,所述主机 还适合向所述发送代理提供存储所述待发送数据的所述存储器的所 述单元的物理地址;其中,所述发送代理还适合从所述存储器的所述锁定单元检索所 述待发送数据;以及在所述发送代理从存储所述待发送数据的所述存 储器的所述锁定单元检索所述数据之后,释放存储所述待发送数据的 所述存储器的所述锁定单元。
21. —种把数据从源发送到目标的装置,所述装置包括:用于使主机能够向所述源的发送代理提供待发送到目标的数据 的虚拟存储地址的部件,其中所述数据存储在所述源的多个物理单元 中,各单元具有物理地址以及映射到所述物理地址的虚拟存储地址;用于使所述发送代理能够向所述主机提供待发送到所述目标的 所述数据的至少部分所述虚拟存储地址的部件;用于使所述主机能够对所述发送代理标识由所述发送代理提供 的所述虚拟存储地址来寻址的数据的部件;以及用于使所述发送代理能够向所述目标发送所述标识的数据的部件。
22. 如权利要求21所述的装置,其特征在于,所述用于使所述主 机能够标识数据的部件包括用于使所述主机能够向所述发送代理提 供由所述发送代理提供的所述虚拟地址来寻址的数据的部件,所述装 置还包括用于使所述发送代理能够把从所述主机接收的所述数据存 储在所述发送代理的緩冲器中的部件。
23. 如权利要求21所述的装置,其特征在于,所述用于使所述主 机能够标识数据的部件包括用于使所述主机能够向所述发送代理提 供包含由所述发送代理提供的所述虛拟存储地址来寻址的所述数据 的存储单元的物理地址的部件。
24. 如权利要求23所述的装置,其特征在于,所述物理单元包括 第 一存储器的单元和第二存储器的单元,所述主机所标识的所述数据 存储在所述第 一存储器中,所述主机所提供的所述物理存储地址是包一存储器的物理存储单元,所述装置还包括用于锁定所述主机提供到 所述发送代理的所述第一存储器的所述物理存储单元,以便防止由所 述发送代理提供的所述虚拟地址来寻址的所述数据被交换到所述第 二存储器的部件。
25.如权利要求24所述的装置,其特征在于,所述装置还包括: 用于使所述发送代理能够从所述第 一存储器的所述锁定的物理 存储单元中检索由所述发送代理提供的所述虚拟地址来寻址的所述 数据的部件;以及述虚拟地址来寻址的所述数据之后释放所述第一存储器的所述锁定 的物理存储单元的部件。
26. 如权利要求21所述的装置,其特征在于,所述装置还包括用 于从所述目标接收对所述发送代理成功发送且所述目标成功接收的 数据的确认的部件;以及所述发送代理提供给所述主机的所述虚拟存 储地址是所述发送代理发送到所述目标、但未被确认为所述目标成功 接收的数据的虚拟地址。
27. 如权利要求21所述的装置,其特征在于,所述装置还包括: 用于从所述目标接收对所述发送代理成功发送且所述目标成功接收的数据的确认的部件;用于使所述发送代理能够向所述主机提供所述发送代理发送到所述目标、但未被确认为所述目标成功接收的数据的虚拟地址的部件;用于使所述主机能够对所述发送代理标识由所述发送代理提供的所述虚拟存储地址来寻址的所述未确认数据的部件;以及用于使所述发送代理能够向所述目标重发所述标识的未确认数 据的部件。
28. 如权利要求21所述的装置,其特征在于,所述用于使所述主够向所述发送代理提供至少一种数据结构的部件,所述数据结构包 括:地址字段,包含存储待发送到所述目标的数据块的多个存储单元 其中之一的虚拟地址;大小字段,包含表示所述数据块大小的值;以 及序列号字段,包含表示与所述数据块中的数据相关的数据包序列号 的值。
29. 如权利要求21所述的装置,其特征在于,所述用于使所述主 机能够向所述发送代理提供虚拟地址的部件包括用于使所述主机能 够向所述发送代理提供多个数据结构的部件,其中各数据结构包括: 地址字段,存储待发送到所述目标的数据块的多个存储单元其中之一 的虚拟地址;大小字段,包含表示所述数据块大小的值;序列号字段, 包含表示与所述数据块中的数据相关的数据包序列号的值;以及链接 字段,包含所述多个数据结构中的另 一个数据结构的虚拟地址。
30. 如权利要求21所述的装置,其特征在于,所述物理单元包括 第一存储器和第二存储器的单元,以及待发送到所述目标的所述数据 存储在所述第一存储器中,所述装置还包括,用于锁定存储所述待发送数据的所述第一存储器的所述单元,以 便防止所述待发送数据被交换到所述第二存储器的部件;用于除了所述待发送数据的所述虚拟存储地址之外,使所述主机 能够还向所述发送代理提供存储所述待发送数据的所述第一存储器 的所述单元的物理地址的部件;用于使所述发送代理能够从所述第一存储器的所述锁定单元中 检索所述待发送数据的部件;以及的所述锁定单元中4企索所述数据之后,释放存储所述待发送数据的所 述第 一存储器的所述锁定单元的部件。
CN 200410077181 2003-10-09 2004-09-09 为通过网络的数据传输管理存储器的方法、系统和程序 CN100544310C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/683941 2003-10-09
US10683941 US7496690B2 (en) 2003-10-09 2003-10-09 Method, system, and program for managing memory for data transmission through a network

Publications (2)

Publication Number Publication Date
CN1606290A true CN1606290A (zh) 2005-04-13
CN100544310C true CN100544310C (zh) 2009-09-23

Family

ID=34422875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410077181 CN100544310C (zh) 2003-10-09 2004-09-09 为通过网络的数据传输管理存储器的方法、系统和程序

Country Status (2)

Country Link
US (1) US7496690B2 (zh)
CN (1) CN100544310C (zh)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1466435A4 (en) 2002-01-08 2011-05-18 Seven Networks Inc Secure transport for mobile communication network
US8549345B1 (en) * 2003-10-31 2013-10-01 Oracle America, Inc. Methods and apparatus for recovering from a failed network interface card
US7539707B2 (en) * 2003-11-13 2009-05-26 Commvault Systems, Inc. System and method for performing an image level snapshot and for restoring partial volume data
US7539190B2 (en) * 2004-01-05 2009-05-26 Topside Research, Llc Multicasting in a shared address space
US7302546B2 (en) * 2004-01-09 2007-11-27 International Business Machines Corporation Method, system, and article of manufacture for reserving memory
US8504795B2 (en) * 2004-06-30 2013-08-06 Intel Corporation Method, system, and program for utilizing a virtualized data structure table
US7580406B2 (en) * 2004-12-31 2009-08-25 Intel Corporation Remote direct memory access segment generation by a network controller
US7370174B2 (en) * 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8655850B2 (en) 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US7870355B2 (en) * 2005-12-19 2011-01-11 Commvault Systems, Inc. Log based data replication system with disk swapping below a predetermined rate
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
US7636743B2 (en) * 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US7962709B2 (en) * 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
JP4224077B2 (ja) 2006-04-04 2009-02-12 東芝ソリューション株式会社 ストレージシステム
US7710968B2 (en) * 2006-05-11 2010-05-04 Intel Corporation Techniques to generate network protocol units
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US8289966B1 (en) 2006-12-01 2012-10-16 Synopsys, Inc. Packet ingress/egress block and system and method for receiving, transmitting, and managing packetized data
US8706987B1 (en) 2006-12-01 2014-04-22 Synopsys, Inc. Structured block transfer module, system architecture, and method for transferring
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US7876940B2 (en) * 2007-01-30 2011-01-25 International Business Machines Corporation Universal image processing
US8238624B2 (en) * 2007-01-30 2012-08-07 International Business Machines Corporation Hybrid medical image processing
US8290808B2 (en) 2007-03-09 2012-10-16 Commvault Systems, Inc. System and method for automating customer-validated statement of work for a data storage environment
US8326092B2 (en) * 2007-04-23 2012-12-04 International Business Machines Corporation Heterogeneous image processing system
US8462369B2 (en) * 2007-04-23 2013-06-11 International Business Machines Corporation Hybrid image processing system for a single field of view having a plurality of inspection threads
US8331737B2 (en) * 2007-04-23 2012-12-11 International Business Machines Corporation Heterogeneous image processing system
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8675219B2 (en) * 2007-10-24 2014-03-18 International Business Machines Corporation High bandwidth image processing with run time library function offload via task distribution to special purpose engines
KR101443376B1 (ko) * 2007-10-24 2014-11-04 삼성전자주식회사 통신 시스템에서 확장성을 지원하는 데이터 송수신 방법
US9135073B2 (en) * 2007-11-15 2015-09-15 International Business Machines Corporation Server-processor hybrid system for processing data
US20090132582A1 (en) * 2007-11-15 2009-05-21 Kim Moon J Processor-server hybrid system for processing data
US9332074B2 (en) * 2007-12-06 2016-05-03 International Business Machines Corporation Memory to memory communication and storage for hybrid systems
US20090150556A1 (en) * 2007-12-06 2009-06-11 Kim Moon J Memory to storage communication for hybrid systems
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8229251B2 (en) * 2008-02-08 2012-07-24 International Business Machines Corporation Pre-processing optimization of an image processing system
US8379963B2 (en) * 2008-03-28 2013-02-19 International Business Machines Corporation Visual inspection system
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US9495382B2 (en) * 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
EP2517424A4 (en) * 2009-12-25 2017-05-17 Ricoh Co Ltd Transmission management system, transmission system, computer program product, program providing system, and maintenance system
US8504517B2 (en) * 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8352422B2 (en) 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8572038B2 (en) 2010-05-28 2013-10-29 Commvault Systems, Inc. Systems and methods for performing data replication
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
WO2012060995A3 (en) 2010-11-01 2012-07-12 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
GB201309234D0 (en) 2010-11-22 2013-07-03 Seven Networks Inc Optimization of resource polling internvals to satisfy mobile device requests
GB201311949D0 (en) 2011-01-07 2013-08-14 Seven Networks Inc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
EP2700019A4 (en) * 2011-04-19 2015-01-28 Seven Networks Inc Social caching for device resource sharing and management
US8832228B2 (en) 2011-04-27 2014-09-09 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
WO2012149434A3 (en) 2011-04-27 2013-01-24 Seven Networks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
US8868753B2 (en) 2011-12-06 2014-10-21 Seven Networks, Inc. System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
GB2498064A (en) 2011-12-07 2013-07-03 Seven Networks Inc Distributed content caching mechanism using a network operator proxy
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9628438B2 (en) * 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9262435B2 (en) 2013-01-11 2016-02-16 Commvault Systems, Inc. Location-based data synchronization management
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
EP3008647A4 (en) 2013-06-12 2017-01-25 Exablox Corp Hybrid garbage collection
WO2014205286A1 (en) 2013-06-19 2014-12-24 Exablox Corporation Data scrubbing in cluster-based storage systems
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
JP2017504924A (ja) 2014-02-04 2017-02-09 エグザブロックス・コーポレーション ファイルシステムのコンテンツベースの編成
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1347545A (zh) 1999-01-15 2002-05-01 英特尔公司 实现动态显示存储器的方法和装置
CN1359496A (zh) 1999-06-30 2002-07-17 英特尔公司 使用基于区域的页表的虚拟存储映射

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175852A (en) * 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
US5696926A (en) * 1993-07-30 1997-12-09 Apple Computer, Inc. Method and apparatus for transparently compressing data in a primary storage device
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
US5892970A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Multiprocessing system configured to perform efficient block copy operations
US5966733A (en) * 1997-06-24 1999-10-12 Hewlett-Packard Company Optimizing data movement with hardware operations
US6266753B1 (en) * 1997-07-10 2001-07-24 Cirrus Logic, Inc. Memory manager for multi-media apparatus and method therefor
US6360220B1 (en) * 1998-08-04 2002-03-19 Microsoft Corporation Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries
US6269431B1 (en) * 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US7409694B2 (en) * 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
US6487561B1 (en) * 1998-12-31 2002-11-26 Emc Corporation Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size
US6920537B2 (en) * 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US6747949B1 (en) * 1999-05-21 2004-06-08 Intel Corporation Register based remote data flow control
US6751583B1 (en) * 1999-10-29 2004-06-15 Vast Systems Technology Corporation Hardware and software co-simulation including simulating a target processor using binary translation
US6948039B2 (en) * 2001-12-14 2005-09-20 Voom Technologies, Inc. Data backup and restoration using dynamic virtual storage
US20040249974A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Secure virtual address realm
US20040249973A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Group agent
JP4130615B2 (ja) * 2003-07-02 2008-08-06 株式会社日立製作所 ストレージ装置を有するネットワークにおける障害情報管理方法及び管理サーバ
US20050144402A1 (en) 2003-12-29 2005-06-30 Beverly Harlan T. Method, system, and program for managing virtual memory
US7562158B2 (en) 2004-03-24 2009-07-14 Intel Corporation Message context based TCP transmission
US20060004983A1 (en) 2004-06-30 2006-01-05 Tsao Gary Y Method, system, and program for managing memory options for devices
US20060004941A1 (en) 2004-06-30 2006-01-05 Shah Hemal V Method, system, and program for accessesing a virtualized data structure table in cache
US8504795B2 (en) 2004-06-30 2013-08-06 Intel Corporation Method, system, and program for utilizing a virtualized data structure table
US20060136697A1 (en) 2004-12-16 2006-06-22 Tsao Gary Y Method, system, and program for updating a cached data structure table
US7580406B2 (en) 2004-12-31 2009-08-25 Intel Corporation Remote direct memory access segment generation by a network controller
US7370174B2 (en) 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
US20070005927A1 (en) * 2005-06-30 2007-01-04 Khosravi Hormuzd M Systems and methods for remote triggering of page faults

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1347545A (zh) 1999-01-15 2002-05-01 英特尔公司 实现动态显示存储器的方法和装置
CN1359496A (zh) 1999-06-30 2002-07-17 英特尔公司 使用基于区域的页表的虚拟存储映射

Also Published As

Publication number Publication date Type
US7496690B2 (en) 2009-02-24 grant
CN1606290A (zh) 2005-04-13 application
US20050080928A1 (en) 2005-04-14 application

Similar Documents

Publication Publication Date Title
Meth et al. Design of the iSCSI Protocol
US5878220A (en) Method and apparatus for storing and transferring data on a network
US6615383B1 (en) System and method for message transmission between network nodes connected by parallel links
US6874147B1 (en) Apparatus and method for networking driver protocol enhancement
US7133902B2 (en) Transmitting acknowledgements using direct memory access
US7502826B2 (en) Atomic operations
US7929442B2 (en) Method, system, and program for managing congestion in a network controller
US6865617B2 (en) System maps SCSI device with virtual logical unit number and multicast address for efficient data replication over TCP/IP network
US6253255B1 (en) System and method for batching data between transport and link layers in a protocol stack
US20080253395A1 (en) Tcp/ip processor and engine using rdma
US20040049774A1 (en) Remote direct memory access enabled network interface controller switchover and switchback support
US20030050990A1 (en) PCI migration semantic storage I/O
US7543087B2 (en) Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US6789143B2 (en) Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries
US20030035433A1 (en) Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US20030093627A1 (en) Open format storage subsystem apparatus and method
US20070041383A1 (en) Third party node initiated remote direct memory access
US7031904B1 (en) Methods for implementing an ethernet storage protocol in computer networks
US20060277383A1 (en) System for Providing Multi-path Input/Output in a Clustered Data Storage Network
US6775693B1 (en) Network DMA method
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
US20030152036A1 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US6738821B1 (en) Ethernet storage protocol networks
US7043578B2 (en) Method, system, and program for processing a packet including I/O commands and data
US20050144223A1 (en) Bottom-up cache structure for storage servers

Legal Events

Date Code Title Description
C06 Publication
C10 Request of examination as to substance
C14 Granted
C17 Cessation of patent right