《具有降低的延迟的远程直接存储器访问.pdf》由会员分享,可在线阅读,更多相关《具有降低的延迟的远程直接存储器访问.pdf(26页完整版)》请在专利查询网上搜索。
1、10申请公布号CN104205078A43申请公布日20141210CN104205078A21申请号201280071890422申请日20120410G06F13/14200601G06F13/3820060171申请人英特尔公司地址美国加利福尼亚州72发明人MS赫弗蒂74专利代理机构上海专利商标事务所有限公司31100代理人何焜54发明名称具有降低的延迟的远程直接存储器访问57摘要本公开提供了用于具有降低的延迟的远程直接存储器访问RDMA的系统和方法。RDMA允许直接在联网设备中的存储器缓冲器之间传输信息而不需要实质性处理。尽管RDMA要求尚未预注册的设备进行注册/解除注册,但具有降低的。
2、延迟的RDMA在注册/解除注册过程中向中间缓冲器传输信息,利用了将通常被浪费在等待这些过程完成的时间,并且降低了注册源缓冲器时传输的信息量。以此方式,RDMA事务可被更快速地完成。具有降低的延迟的RDMA可用于加快各种信息事务。例如,具有降低的延迟的RDMA可用于将设备内的信息流化或者可用于直接向应用缓冲器传输用于设备外部的信息源的信息。85PCT国际申请进入国家阶段日2014092686PCT国际申请的申请数据PCT/US2012/0329092012041087PCT国际申请的公布数据WO2013/154541EN2013101751INTCL权利要求书2页说明书14页附图9页19中华人民。
3、共和国国家知识产权局12发明专利申请权利要求书2页说明书14页附图9页10申请公布号CN104205078ACN104205078A1/2页21一种系统,包括存储器电路,包括目标缓冲器,被配置成用于至少接收信息;中间缓冲器,被配置成用于接收和传输信息;以及源缓冲器,被配置成用于致使在所述源缓冲器的注册过程中向中间缓冲器传输信息以及致使在注册完成之后直接向所述目标缓冲器传输附加信息。2如权利要求1所述的系统,其中,所述源缓冲器被配置成用于致使使用远程数据存储器访问RDMA来传输信息。3如权利要求1所述的系统,其中,被配置成用于致使向所述中间缓冲器传输信息包括所述源缓冲器被进一步配置成用于,在所复。
4、制的所述信息量中的至少一个小于注册偏移量或当所述源缓冲器的所述注册未完成时,致使将信息块复制到注册缓冲器。4如权利要求3所述的系统,其中,每个信息块的大小增加。5如权利要求3所述的系统,其中,所述注册缓冲器被配置成用于致使将从所述源缓冲器接收的所述信息块传输到所述目标缓冲器。6如权利要求3所述的系统,其中,致使直接将附加信息传输到所述目标缓冲器包括所述源缓冲器被进一步配置成用于致使直接将所述附加信息传输到所述目标缓冲器,所述传输在基于所述注册偏移量的所述源缓冲器中的地址处开始。7如权利要求1所述的系统,其中,所述源缓冲器被进一步配置成用于致使,在所述源缓冲器解除注册之前,将至少基于解除注册偏移。
5、量的存储器地址处开始的信息传输至中间缓冲器。8如权利要求7所述的系统,其中,致使在解除注册之前将信息传输到所述中间缓冲器包括所述源缓冲器被进一步配置成用于致使在所述将所述附加信息传输到所述目标缓冲器的过程中将信息复制到解除注册缓冲器。9如权利要求7所述的系统,其中,所述解除注册缓冲器被配置成用于致使在所述源缓冲器的解除注册过程中将从所述源缓冲器接收的所述信息传输到所述目标缓冲器。10如权利要求7所述的系统,其中,致使直接将所述附加信息传输到所述目标缓冲器包括所述源缓冲器被进一步配置成用于直接将所述附加信息传输到所述目标缓冲器,所述传输在基于至少所述解除注册偏移量的存储器地址处结束。11一种方法。
6、,包括确定要从源缓冲器传输到目标缓冲器的信息;致使在所述源缓冲器的注册过程中将信息从所述源缓冲器传输到中间缓冲器;以及致使在注册完成之后将附加信息直接从所述源缓冲器传输到所述目标缓冲器。12如权利要求11所述的方法,其中,所述信息是通过远程直接存储器访问RDMA传输的。13如权利要求11所述的方法,其中,致使将信息从所述源缓冲器传输到中间缓冲器包括在所传输的所述信息量中的至少一个小于注册偏移量或当所述源缓冲器的所述注册未完成时,致使将信息成块地复制到注册缓冲器。14如权利要求13所述的方法,其中,每个信息块的大小增加。15如权利要求13所述的方法,进一步包括致使将在所述注册缓冲器中接收的所述信。
7、权利要求书CN104205078A2/2页3息块传输到所述目标缓冲器。16如权利要求13所述的方法,其中,致使直接将附加信息传输到所述目标缓冲器包括致使直接将所述附加信息传输到所述目标缓冲器,所述传输在基于所述注册偏移量的所述源缓冲器中的地址处开始。17如权利要求11所述的方法,进一步包括在所述源缓冲器解除注册之前,将基于至少解除注册偏移量的存储器地址处开始的信息传输至所述中间缓冲器。18如权利要求17所述的方法,其中,致使在解除注册之前将信息传输到所述中间缓冲器电路包括致使在所述将所述附加信息传输到所述目标缓冲器过程中,将信息复制到解除注册缓冲器。19如权利要求17所述的方法,进一步包括致使。
8、在所述源缓冲器的解除注册过程中,将在所述解除注册缓冲器中接收的所述信息传输到所述目标缓冲器。20如权利要求17所述的方法,其中,直接将所述附加信息传输到所述目标缓冲器包括致使直接将在基于至少所述解除注册偏移量的存储器地址处结束的所述附加信息传输到所述目标缓冲器。21一种被配置成用于执行远程直接存储器访问的设备,所述设备被安排成用于执行权利要求11至20中任一项所述的方法。22一种芯片组,被安排成用于执行权利要求11至20中任一项所述的方法。23至少一种机器可读介质,包括多个指令,响应于在计算设备上被执行,所述指令致使所述计算设备执行根据权利要求11至20中任一项所述的方法。24一种用于具有降低。
9、的延迟的远程直接存储器访问的装置,所述装置被安排成用于执行权利要求11至20中任一项所述的方法。权利要求书CN104205078A1/14页4具有降低的延迟的远程直接存储器访问0001相关申请的交叉引用0002本申请涉及与其同时提交的标题为“CONTINUOUSINFORMATIONTRANSFERWITHREDUCEDLATENCY具有降低的延迟的连续信息传输”的PCT申请号代理人案卷号P41676PCT,该申请的公开通过引用以其整体结合在此。0003领域0004以下公开涉及计算设备之间的信息传输,并且更具体地涉及通过具有低延迟的远程直接存储器访问进行信息传输。0005背景0006在计算设备。
10、上执行的应用可依赖于计算设备中的处理资源诸如例如操作系统内核以便与驻留在网络上的信息源交互。内核是形成应用和在计算系统中在硬件水平上完成的实际数据处理之间的桥梁的处理引擎。在此期间,操作系统内核可与硬件水平资源诸如网络接口电路通信以便致使将信息传输到网络资源或从其接收。尽管允许网络交互,性能会极大地受操作系统内核的活动水平的影响。网络接口电路所接收的通信可在其中操作系统内核忙于其他任务的实例下被延迟。结果是,已经开发了不涉及计算设备的主处理资源的用于传送网络信息的其他方法。远程直接存储器访问RDMA允许联网设备直接将信息放在另一个联网设备的存储器中而不涉及主处理资源例如,操作系统内核。尽管RD。
11、MA允许具有更低延迟的实质上增加的网络吞吐量,仍存在某些问题。RDMA可例如通过从由应用使用的存储器缓冲器提取信息以及将该信息直接传输到网络接口电路可访问的存储器缓冲器来操作,该网络接口电路然后可将该信息传输到网络上的其他设备。然而,操作系统内核可将应用缓冲器的内容移动到虚拟存储器而不提醒,并且因此应用存储器缓冲器必须首先进行注册从而防止内容在RDMA事务过程中被移动,然后进行解除注册从而释放存储器空间以便由其他系统资源使用。应用存储器缓冲器的注册/解除注册在RDMA中引入了可降低传输信息的速度的延迟并且因此可消极地影响通信性能。0007附图简要说明0008所要求保护的主题的各实施例的特征和优。
12、点将随着以下详细描述的进行并且当参照附图时变得明显,其中相似的参考号指示相似的部件,并且在附图中0009图1示出根据本公开的至少一个实施例的被配置成用于具有降低的延迟的远程直接存储器访问的示例系统;0010图2示出根据本公开的至少一个实施例的使用具有降低的延迟的远程直接存储器访问的示例信息传输;0011图3示出根据本公开的至少一个实施例的具有降低的延迟的远程直接存储器访问过程中的注册的示例;0012图4示出根据本公开的至少一个实施例的具有降低的延迟的远程直接存储器访问过程中的解除注册的示例;0013图5示出根据本公开的至少一个实施例的用于有降低的延迟的远程直接存储器访问的示例操作的流程图;说明。
13、书CN104205078A2/14页50014图6示出根据本公开的至少一个实施例的使用具有降低的延迟的远程直接存储器访问来流传输信息的示例;0015图7示出根据本公开的至少一个实施例的用于使用有降低的延迟的远程直接存储器访问来流传输信息的示例操作的流程图;0016图8示出根据本公开的至少一个实施例的使用具有降低的延迟的远程直接存储器访问直接向应用缓冲器传输信息的外部源的示例;以及0017图9示出根据本公开的至少一个实施例的使用具有降低的延迟的远程直接存储器访问直接向应用缓冲器传输信息的外部信息源的示例操作的流程图;以及0018尽管将参考说明性实施例进行以下详细描述,其许多替代、修改和变化将对本。
14、领域普通技术人员明显。0019详细描述0020本公开描述了用于具有降低的延迟的远程直接存储器访问的系统和方法。总体上,在远程直接存储器访问RDMA中,驻留在一个联网设备上的信息可直接被传输到另一个联网设备的存储器中。RDMA还对应于初始地由RDMA联盟和直接访问传输DAT协作提出并且从此以后已经被结合到高性能联网架构诸如例如INNIBANDTM和IWARP中的现有的通信协议。尽管在此出于解释参照了现有的RDMA通信协议的多个方面,当描述所公开的实施例时,这些实施例的实现方式不限于使用现有的RDMA通信协议,而是可用于允许联网设备直接将信息传输到另一个联网设备的存储器中的任何现有的或刚刚出现的通。
15、信系统。0021在一个实施例中,应用缓冲器可被配置成用于致使直接将信息传输到网络接口电路NIC缓冲器,或者可替代地,NIC缓冲器可被配置成用于致使将信息传输到应用缓冲器而不涉及设备中的处理电路例如,操作系统内核。然而,操作系统内核可被配置成用于在正常设备操作过程中尝试将应用缓冲器的内容移动到另一个位置例如,虚拟存储器,以便释放物理存储器资源用于其他设备活动。在完成传输之前移动应用缓冲器的内容将损坏传输。应用缓冲器然后必须注册以便防止内容被移动并且必须在传输完成之后解除注册,以便释放存储器空间用于动态重新分配。注册和/或解除注册存储器空间耗费时间并且可向RDMA引入延迟。然而,可通过在注册和/或。
16、解除注册过程中进行其他过程来避免这种延迟。“重叠”这些任务允许整体的传输过程完成的更快。0022例如,源缓冲器例如,应用缓冲器可能想要向目标缓冲器例如,NIC缓冲器传输信息。源缓冲器可被配置成用于在注册过程中将信息复制到中间缓冲器,并且中间缓冲器可被配置成用于然后将其接收到的信息从源缓冲器传输到目标缓冲器。结果是,源缓冲器无需等待注册完成来开始信息传输,并且降低了注册完成之后要传输的信息量。在一个实施例中,可基于例如注册时长实验性地确定在注册过程中要传输的信息量。例如,可将信息成块按增长的大小从源缓冲器传输到中间缓冲器,直到实现默认注册偏移或者在注册继续时。当接收到全部信息块时,中间缓冲器可将。
17、全部块传输到目标缓冲器。当注册完成时,源缓冲器可将信息的剩余部分例如,尚未传输到中间缓冲器直接通过RDMA传输到目标缓冲器。0023在相同的或不同的实施例中,在注册完成之后,源缓冲器可被配置成用于开始将信息传输到另一个中间缓冲器,从而帮助降低由解除注册引起的延迟。例如,当源缓冲器已注册时,从源缓冲器内容底部附近的信息偏移例如,基于预测的解除注册时长可被传输说明书CN104205078A3/14页6到其他中间缓冲器。因此,当源缓冲器已注册时要传输的信息量被减少偏移量,这降低了传输时长。解除注册可在从已注册的源缓冲器传输信息完成之后立即开始,并且传输到其他中间缓冲器的信息可在解除注册过程中被传输到。
18、目标缓冲器。结果是,源缓冲器被配置成在注册和解除注册过程中将信息传输到目标缓冲器,降低了注册源缓冲器时要传输的信息量,并且与现有的RDMA事务相比降低了延迟。0024在相同的或不同的实施例中,具有降低的延迟的RDMA可用于创建到或从联网设备的连续直接信息传输例如,信息的流传输。例如,应用缓冲器和NIC缓冲器可被配置成用于暴露本地缓冲器用于RDMA通信。应用缓冲器然后可被配置成用于将地址信息例如,分散聚集列表条目传输到NIC缓冲器的本地缓冲器中,并且同样,NIC缓冲器可被配置成用于将地址信息传输到应用缓冲器的本地缓冲器中。当任一缓冲器希望将信息传输到其他缓冲器例如,应用缓冲器希望将信息传输到NI。
19、C缓冲器,源例如,应用缓冲器可访问其本地缓冲器以便确定与目标例如,NIC缓冲器中的可用存储器相对应的至少一个地址。如果在本地缓冲器中不存在地址例如,不存在任何地址信息,所有地址已经被使用等等,源缓冲器可监控与本地缓冲器相关联的完成队列,以便指示新的信息已经被写入本地缓冲器。根据新的信息已经被写入本地缓冲器的指示,源缓冲器可访问本地缓冲器以检索与目标缓冲器中的可用存储器位置相对应的至少一个地址。0025进一步根据以上实施例,源缓冲器还可被配置成用于确定将信息传输到目标缓冲器的方法。当使用现有的RDMA协议时,可使用内联数据传输方法来传输少量数据而无需注册应用缓冲器。如果将要传输更大量的数据例如,。
20、大于特定或预定量的数据量,可使用诸如先前所描述的具有降低的延迟的RDMA传输方法。源缓冲器然后可被配置成用于致使基于可用存储器位置的地址和所确定的传输方法来传输数据。以此方式,信息可被连续地传输到目标缓冲器中的开放存储器位置,具有很少或没有由于确定信息的可用存储器位置、注册、解除注册等等引起的延迟。0026在相同的或不同的实施例中,信息可被直接从设备外部的信息源例如,驻留在网络上传输到应用缓冲器,而无需首先被存储在NIC缓冲器中,如现有的RDMA事务所要求的。例如,地址缓冲器可包括外部源可用于直接将信息传输到应用缓冲器的应用缓冲器地址信息例如,分散聚集列表条目。外部源然后可被配置成用于检查地址。
21、缓冲器以便确定与应用缓冲器中的可用存储器位置相关联的地址是否可用。如果应用缓冲器中的可用存储器位置的地址被确定可用,外部源可使用这些地址来直接将信息传输到应用缓冲器。如果没有地址被确定为可用例如,地址缓冲器为空,地址缓冲器中的所有地址已经被使用等等,则外部源可开始将信息传输到NIC缓冲器,如同在现有的RDMA事务中一样。然而,外部源还可被配置成用于继续检查地址缓冲器以确定存储器位置是否变得可用于直接将信息传输到应用缓冲器。如果存储器位置变得可用,则外部源可开始直接将信息传输到应用缓冲器。在一个实施例中,直接传输到应用缓冲器的信息可包括指示其跟随已经被传输到NIC缓冲器的信息的序号。结果是,可进。
22、一步降低延迟。0027图1示出根据本公开的至少一个实施例的被配置成用于具有降低的延迟的RMDA的示例系统100。系统100可包括形成系统的单个设备或多个设备,被配置成用于至少处理信息并且在网络上通信。系统100的示例可包括但不限于移动通信设备,诸如基于操作系统OS、OS、OS、OS等等的蜂窝手机或智能电话;移动说明书CN104205078A4/14页7计算设备,诸如平板计算机,如GALAXYKINDLE等等;包括由英特尔公司制造的低功率芯片组的;上网本计算机、笔记本计算机、膝上计算机等等。系统100的示例还可通常包括静态设备,诸如例如具有集成或分离显示器等等的台式计算机。0028系统100可包。
23、括例如主平台102、子系统104以及网络接口电路NIC106。主平台102可包括用于系统100的更多实质信息处理资源。例如,主平台102可被配置成用于策划在系统100的正常操作过程中可发生的功能。子系统104可包括系统100中的电路,该电路被配置成用于例如在系统100中提供其它功能性,诸如视频输入/输出、音频输入/输出、用户接口等等。NIC106可包括可被配置成用于支持系统100以及驻留在各种有线或无线网络108上的其他设备之间的交互性的物理层通信资源。0029主平台102可包括例如处理电路110、处理支持电路112以及存储器电路114。处理电路110可包括位于分离的组件中的一个或多个处理器,。
24、或者可替代地,可在单个组件中例如,在片上系统SOC配置中包括一个或多个处理核。示例处理器可包括可从英特尔公司获得的各种基于X86的微处理器,包括奔腾、至强、安腾、赛扬、凌动、I系列内核产品族中的那些处理器。处理电路110可被配置成用于使用处理支持电路112与系统100中的其他电路通信。处理支持电路112可包括用于支持处理电路110的包括例如存储器控制器、图形控制器、总线控制器等等的核逻辑芯片组。处理电路110可通过处理支持电路112与系统100中的其他电路诸如子系统104和NIC106交互。尽管处理支持电路112可被实现为芯片组,该芯片组包括两个或多个分离的集成电路IC,诸如例如英特尔公司制造。
25、的南桥和北桥芯片组,还可在处理电路110中发现通常被包括在处理支持电路112中的某些或全部功能性。0030处理电路110可被配置成用于执行指令。指令包括程序代码,当被执行时,该程序代码致使处理电路108执行功能,诸如例如读取访问数据、写入存储数据、处理数据、制定数据、产生数据、转换数据、变换数据等等。信息例如,指令、数据等等可被存储在存储器电路114中。存储器电路114可包括固定或可移除格式的随机存取存储器RAM和/或只读存储器ROM。RAM可包括被配置成用于在系统100的操作期间保持信息的存储器,诸如例如静态RAMSRAM或动态RAMDRAM。ROM诸如例如BIOS存储器可被配置成用于当系统。
26、100激活时提供指令。ROM的其他示例包括可编程存储器,诸如电子可编程ROM、EPROM、闪存等等。固定和/或可移除存储器的其他实施例可包括磁存储器,诸如软盘、硬盘驱动器等等;电子存储器,诸如固态闪存例如,EMMC等等、可移除存储器卡或棒例如,USD、USB等等;光学存储器,诸如基于致密盘的ROMCDROM、全息存储器等等。0031在一个实施例中,至少一个应用116可被配置成用于在系统100的存储器电路114中执行。例如,应用116可以是系统100的操作系统的一部分例如,服务、可由系统100自动地执行、可由系统100的用户执行等等。应用116可被配置成用于支持系统100的操作、提供用户所希望的。
27、功能性例如,通信、娱乐、生产力、导航等等、为外部信息客户例如,网络108上的设备提供信息等等。在执行过程中,应用116可要求存储器电路114中的空间以便存储信息例如,应用缓冲器118。例如,在应用116被配置成用于与在网络108上驻留的设备交互的情况下,应用缓冲器118可存储将通过NIC106被传输到网络108上的信息或者可替代地通过NIC106从网络108接收的信息。NIC缓冲器120可被配置成用于从系统100例如,从应用118接收和存储信息用于在网络108上传输或者从网络108说明书CN104205078A5/14页8接收信息用于系统100中的消费者例如,应用118。0032在RDMA12。
28、2之前,主平台处理资源例如,处理电路110和/或处理支持电路112将被要求将信息从缓冲器120传输到缓冲器118例如,用于由应用116使用并且将信息从缓冲器118传输到缓冲器120例如,用于传输到网络108。以此方式传输信息允许在缓冲器118和120之间传递信息但是可受到系统限制。例如,处理电路110和/或处理支持电路112可变得忙于处理系统100中的其他任务,并且因此,缓冲器118和120之间的信息传输可被延迟,这可进而导致应用116的执行延迟并且可不利地影响系统100的性能。RDMA122通过直接在缓冲器118和120之间传递信息而不涉及主平台处理资源来帮助减轻这种情况。然而,现有的RDM。
29、A协议还遇到某些限制。主平台处理资源可不可预测地将物理存储器的内容移动到虚拟存储器例如,模拟物理存储器以便降低系统100所需的物理存储器量的永久存储,从而释放资源用于系统100中的其他活动。在信息传输过程中将应用缓冲器118的内容移动到虚拟存储器将导致不正确的信息被传输并且因此传输被损坏。为了防止应用缓冲器118的内容被移动,在现有的RDMA协议可传输信息之前,应用缓冲器118必须首先注册。在传输完成之后,缓冲器必须然后解除注册,以便再次使得应用缓冲器118使用的存储器可用于动态重新分配。这种要求可不施加到NIC缓冲器120,因为其可预先注册例如,可从系统100激活时永久地注册到NIC106。。
30、注册和解除注册由系统100的主平台处理资源策划,由于处理电路110和/或处理支持电路112忙于系统100中的其他活动,其再次使RDMA事务受到潜在延迟。0033在一个实施例中,可通过使用一个或多个中间缓冲器124来增强RDMA122的操作。例如,可在注册和解除注册过程中将信息直接从“源”缓冲器例如,应用缓冲器118直接传输到中间缓冲器124,消除了这些操作导致的某些或全部延迟。以此方式,源缓冲器通常将空闲以等待注册完成的时间可用于传输信息,并且在源缓冲器已注册时要传输的信息量降低。图2示出根据本公开的至少一个实施例的使用具有降低的延迟的RDMA的示例信息传输。在图2的示例中,源缓冲器200尝试。
31、向目标缓冲器202传输信息。源缓冲器200例如,应用缓冲器118未预先注册,并且因此必须注册以便在存储器电路114中维持其内容的完整性达到持续传输时长。目标缓冲器202例如,NIC缓冲器120预先注册。源缓冲器200的注册在204开始。同时或随后,源缓冲器200可被配置成用于开始将信息复制到中间缓冲器例如,注册缓冲器124A,如在206所示。注册缓冲器124A可以是被配置成用于从源缓冲器200接收信息并且向目标缓冲器202传输信息的预先注册的缓冲器。注册缓冲器可具有设置大小,诸如例如16KB,或可具有可变大小,可基于例如其注册源缓冲器200所花费的时间在操作过程中确定该可变大小。例如,如果主平。
32、台102忙于其他任务,则注册可能花费更长时间,并且结果是,注册缓冲器124A的大小可增大从而从源缓冲器200接收更多信息。注册缓冲器124A的大小无需等于将在注册过程中传输的总信息量,因为在一个实施例中,注册缓冲器124A可被配置成用于恒定地将其所接收到的信息传输出去,并且因此,永远不存在其保留在注册过程中传输的全部信息的情况。0034源缓冲器200可被配置成用于继续向注册缓冲器124A传输信息,直至到达某个阈值。例如,信息可被传输到注册缓冲器124A,直至基于要传输的信息量到达偏移量、直至达到某个存储器地址、当注册继续时等等。在一个实施例中,注册缓冲器124A可被配置成用于将从源缓冲器接收到。
33、的信息直接通过RDMA写入目标缓冲器208。例如,注册缓冲器124A说明书CN104205078A6/14页9可向目标缓冲器202发布一个或多个RDMA_POST_WRITE命令,从而致使将从源缓冲器200接收的信息直接传输到目标缓冲器202。在图3中详细描述了源缓冲器200可向注册缓冲器124A传输信息并且注册缓冲器124A可向目标缓冲器202传输信息的示例方法。0035注册可在210完成,并且同时或随后,源缓冲器200可被配置成用于致使将信息直接从源缓冲器200传输到目标缓冲器200,如在212所示。例如,源缓冲器200可向目标缓冲器202发布RDMA写命令,从而致使将信息从现在注册的源缓。
34、冲器200直接传输到目标缓冲器202。在相同或不同实施例中,同时或随后RDMA写命令212被发布,源缓冲器200还可被配置成用于从源缓冲器200的底部附近开始将信息复制到另一个中间缓冲器例如,解除注册缓冲器124B,如在214所示。传输到解除注册缓冲器124B的信息的开始地址和信息量可基于例如可基于源缓冲器200完成解除注册将花费的预测时间而确定的大小或偏移量。在216,在212开始的信息传输可完成,并且解除注册可开始。解除注册缓冲器124B然后可被配置成用于将其从源缓冲器200接收的信息传输到目标缓冲器202,如在218所示。例如,解除注册缓冲器124A可向目标缓冲器202发布一个或多个RD。
35、MA_POST_WRITE命令,从而致使直接将从源缓冲器200接收的信息传输到目标缓冲器202。在图4中详细描述了源缓冲器200可向注册缓冲器124B传输信息并且解除注册缓冲器124B可向目标缓冲器202传输信息的示例方法。0036图3示出根据本公开的至少一个实施例在具有降低的延迟的RDMA过程中的注册的示例。注册在204开始例如,“IR”。在300公开了示例开始命令。该命令可被认为是“异步的”,因为其不需要在传输信息之前发生。该命令可以是包括将注册的存储器的开始地址和长度的RDMA寄存器存储器命令。例如,将注册的存储器的开始可以是缓冲器的开始加上注册偏移量大小。注册偏移量大小可指示在注册过程。
36、中将被写入注册缓冲器124A的数据量。将注册的存储器的长度可以是从其减去注册偏移大小以及如果传输将在解除注册过程中发生解除注册偏移量大小的源缓冲器200的大小。例如,将注册的信息量可以是图2中的虚线210和216之间的源缓冲器200中的信息。注册偏移量大小可被经验为主地确定,如206AD中所示。在206A,可将预定的初始块大小从源缓冲器200复制到注册缓冲器124A。当块传输在206B完成时,该块可被传输出注册缓冲器124A,如在208A所示。当传输到注册缓冲器124A的信息量低于最大偏移量或者当注册未完成时,信息块可继续被复制到注册缓冲器124A。在一个实施例中,所传输的每个信息块例如,20。
37、6C、206D等等的大小可增加例如,翻倍,并且一旦接收完成可被传输出注册缓冲器124A例如,208B、208C等等。描述这些操作的实施例的示例伪代码如下00370038说明书CN104205078A7/14页100039其中,“INITIAL_SIZE初始大小”是可在系统100中预先确定的初始块大小,“REGISTRATION_OFFSET注册偏移量”是允许在注册过程中被复制的偏移量的最大大小,“REGISTRATION_BUFFER注册_缓冲器”是注册缓冲器124A的开始地址,“OFFSET偏移量”是复制到注册缓冲器的累加信息量,“SOURCE_BUFFER源缓冲器”是源缓冲器的开始地址,“。
38、SIZE大小”是所传输的当前信息块大小,“TARGET_BUFFER目标缓冲器”是目标缓冲器202的开始地址,并且“RKEYR密钥”是用于访问目标缓冲器202的安全密钥。在上述示例伪代码中,当复制循环结束时,注册偏移量被设置为复制循环导致的偏移量大小REGISTRATION_OFFSETOFFSET注册偏移量偏移量,因此以经验为主地确定了合适的注册偏移量大小。例如,如果系统100忙碌,则注册将花费更多时间,并且当移动了最大信息量时例如,OFFSETREGISTRATION_OFFSET偏移量注册偏移量,复制循环将很有可能结束。在这种情况下,注册偏移量将不变,因为“偏移量”将等于当前注册偏移量。。
39、然而,如果系统100不忙碌,注册将进行的更快,并且复制循环然后将很有可能在注册结束时例如,注册完成结束,并且注册偏移量的大小将等于在注册过程中移动的信息量。以此方式,在注册过程中移动的数据量可指示系统100的当前状况。经更新的注册偏移量大小可致使系统100例如调整初始信息块的大小例如,INITIAL_SIZE、调整注册缓冲器142A的大小、调整解除注册偏移量和/或缓冲器142B的大小等等。0040在注册在240完成之后例如,“CR”,可在212发布RDMA命令,从而致使直接将尚未被传输到注册缓冲器124A的信息传输到目标缓冲器202,并且还可负责将在解除注册过程中被传输的任何信息。RDMA写命。
40、令212可包括例如源缓冲器开始地址、长度、目标缓冲器开始地址以及访问密钥作为参数。在图3中示出的示例RDMA_POST_WRITE命令中,源缓冲器开始地址可以是包括注册偏移量大小的缓冲器的实际开始例如,已经被传输到注册缓冲器的信息量。该长度是减去注册偏移量大小和解除注册偏移量大小例如,将在解除注册过程中被传输的信息量的源缓冲器200的缓冲器大小。目标缓冲器开始地址是目标缓冲器的实际开始地址加上注册偏移量大小例如,为了避免盖写之前在注册过程中传输的信息,并且R密钥是允许源缓冲器200直接将信息传输到目标缓冲器202的安全密钥。0041图4示出根据本公开的至少一个实施例的具有降低的延迟的RDMA过。
41、程中的解除注册的示例。同时或随后RDMA写命令212被发布,源缓冲器200还可被配置成用于开始将从源缓冲器200的底部附近的信息复制到解除注册缓冲器124B,如在214所示。将信息复制到解除注册缓冲器124B的至少一个优点是在源缓冲器200注册时要求传输更少的信息例如,THEBUFFERSIZEREGISTRATIONOFFSETTHEDEREGISTRATIONOFFSET缓冲器说明书CN104205078A108/14页11大小注册偏移量解除注册偏移量。结果是,解除注册可更快速地开始并且可使源缓冲器200占据的存储器例如,存储器电路114更快速地用于动态重新分配。在一个实施例中,当RDMA。
42、写212进行时,可将信息复制到解除注册缓冲器124B,如214所示,其中,大约在与RDMA写212完成相同的时间复制214完成。源缓冲器200的解除注册然后可开始例如,“ID”,如216所示例如,因为所有信息已经从源缓冲器200传输,并且同时或随后,解除注册缓冲器124B可致使传输从源缓冲器200接收的信息例如,传输到目标缓冲器202,如在218所示。例如,解除注册缓冲器124B可向目标缓冲器202发布RDMA_POST_WRITE命令,从而致使直接将从源缓冲器200接收的信息传输到目标缓冲器202。218处的传输还可包括“中间数据”。在RDMA中,中间数据通知接收缓冲器信息传输完成例如,现在。
43、可访问所传输的信息。描述这些操作的示例实施例的伪代码如下0042COPYREGISTRATION_BUFFERREGISTRATION_OFFSET,SOURCE_BUFFERSOURCE_BUFFER_LENGTHDEREGISTRATION_OFFSET,DEREGISTRATION_OFFSETRDMA_POST_WRITEREGISTRATION_BUFFERREGISTRATION_OFFSET,DEREGISTRATION_OFFSET,TARGET_BUFFERSOURCE_BUFFER_LENGTHDEREGISTRATION_OFFSET,RKEYWAIT_FOR_COMPL。
44、ETIONRDMAWRITE2120043其中,“DEREGISTRATIONOFFSET解除注册偏移量”是将在解除注册过程中被写入的信息量并且“SOURCE_BUFFER_LENGTH源缓冲器长度”是源缓冲器200的长度。以此方式,在RDMA写212已经完成之后例如,SOURCE_BUFFERSOURCE_BUFFER_LENGTHDEREGISTRATION_OFFSET源缓冲器源缓冲器长度解除注册偏移量仍将被传输的源缓冲器中的信息可被复制到解除注册缓冲器124B并且然后在与命令212相关联的写完成之后被传输到目标缓冲器202例如,等待完成RDMA写212。0044图5示出根据本公开的至少。
45、一个实施例的用于有降低的延迟的RDMA的示例操作的流程图。在操作500,源缓冲器中的信息可等待传输到另一缓冲器例如,传输到目标缓冲器。源缓冲器然后可在操作502开始存储器注册。当所传输的信息量低于最大大小例如,注册偏移量或者当注册如操作504中所确定的那样未完成时,在操作506至510中,信息可从源缓冲器传输到注册缓冲器并且然后从注册缓冲器传输到目标缓冲器。例如,在操作506中,可直接将信息块从源缓冲器传输到注册缓冲器。传输可通过向注册缓冲器发布RDMA写命令发生,并且可在系统100中预先确定初始块大小。然后,在操作508中,可直接将信息块从注册缓冲器传输到目标缓冲器。在操作510中,块大小可。
46、增加例如,块大小可翻倍。当在操作504中确定所传输的数据量在最大大小或在其之上或者确定注册完成时,则注册完成之后,可在操作512中例如通过向目标缓冲器发布RDMA写命令开始直接将信息从注册源缓冲器传输到目标缓冲器。0045在操作512完成同时或操作512完成之后,通过向解除注册缓冲器发布RDMA写命令将信息直接从源缓冲器传输到解除注册缓冲器可在操作514中开始。可在操作516中确定在操作512中开始的信息传输现在是否完成。如果在操作512中开始的信息传输被确定完成,解除注册然后可在操作518中开始,其可紧随在操作520中直接将信息从解除注册缓冲器传输到目标缓冲器。将信息从解除注册缓冲器传输到目。
47、标缓冲器可通过例如向目标缓冲器发布RDMA写命令而发生。0046具有降低的延迟的远程直接存储器访问的示例应用说明书CN104205078A119/14页120047具有降低的延迟的RDMA可用于降低根据现有的RDMA协议中所要求的存储器注册和解除注册看到的延迟。然而,在各实施例中,这些原理还可被应用于进一步消除在现有的RDMA事务中看到的其他潜在的延迟源。在一个实施例中,可基于与源缓冲器本地可用的目标缓冲器中的可用存储器空间相对应的地址信息将信息从源缓冲器传输到目标缓冲器,从而导致基本上连续的信息流或者“流传输信息”。在相同或不同实施例中,系统100外部的信息源可跳过NIC缓冲器并且直接将信息。
48、传输到应用缓冲器,进一步加快了信息传输并且移除了如现有的RDMA中不得不通过NIC缓冲器进行通信所导致的延迟。0048图6示出根据本公开的至少一个实施例的使用具有降低的延迟的RDMA来流式传输信息的示例。在一个实施例中,在应用缓冲器118将信息传输到NIC缓冲器120之前,或者相反地,在NIC缓冲器120将信息传输到应用缓冲器118之前,缓冲器118和/或缓冲器120可被配置成用于暴露本地缓冲器600和602以用于RDMA写。例如,应用缓冲器118被配置成用于通过RDMA直接将地址信息例如,包括一个或多个分散聚集条目SGE1至N的分散聚集列表SGL写入到地址缓冲器602,如在604所示,并且N。
49、IC缓冲器120可被配置成用于通过RDMA直接将地址信息例如,包括一个或多个SGE1至N的SGL写入到地址缓冲器600,如在606所示。示例分散聚集条目可包括与缓冲器118和120各自中的可用存储器空间相对应的存储器位置信息例如,地址。0049在应用缓冲器118具有要传输到NIC缓冲器120中的信息的示例操作中,NIC缓冲器120可将包括一个或多个SGE的SGL写入地址缓冲器600,如在606所示。应用缓冲器还可将SGL写入地址缓冲器602,如在604所示,但是无需将信息从应用缓冲器118传输到NIC缓冲器120。应用缓冲器然后可被配置成用于访问地址缓冲器600以检查与NIC缓冲器120中的可用存储器空间相对应的地址。如果没SGE可用例如,缓冲器为空、所有现有的SGE已经被使用等等,则应用缓冲器118可监控与地址缓冲器600相关联的完成队列,以指示地址缓冲器600已经被更新。在所示出的示例中,SGE1可用,并且因此,应用缓冲器118可直接将信息传输到NIC缓冲器120中的由SGE1所标识的存储器空间。0050在相同或不同实施例中,应用缓冲器118然后可确定通过其将信息传输到NIC缓冲器120的方法。例如,如果将传输少量信息例如,少于可在系统100中预先确定的某个量的信息量,应用缓冲器118可被配置。