书签 分享 收藏 举报 版权申诉 / 26

具有降低的延迟的远程直接存储器访问.pdf

  • 上传人:1***
  • 文档编号:468561
  • 上传时间:2018-02-18
  • 格式:PDF
  • 页数:26
  • 大小:3.60MB
  • 摘要
    申请专利号:

    CN201280071890.4

    申请日:

    2012.04.10

    公开号:

    CN104205078A

    公开日:

    2014.12.10

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 13/14申请日:20120410|||公开

    IPC分类号:

    G06F13/14; G06F13/38

    主分类号:

    G06F13/14

    申请人:

    英特尔公司

    发明人:

    M·S·赫弗蒂

    地址:

    美国加利福尼亚州

    优先权:

    专利代理机构:

    上海专利商标事务所有限公司 31100

    代理人:

    何焜

    PDF完整版下载: PDF下载
    内容摘要

    本公开提供了用于具有降低的延迟的远程直接存储器访问(RDMA)的系统和方法。RDMA允许直接在联网设备中的存储器缓冲器之间传输信息而不需要实质性处理。尽管RDMA要求尚未预注册的设备进行注册/解除注册,但具有降低的延迟的RDMA在注册/解除注册过程中向中间缓冲器传输信息,利用了将通常被浪费在等待这些过程完成的时间,并且降低了注册源缓冲器时传输的信息量。以此方式,RDMA事务可被更快速地完成。具有降低的延迟的RDMA可用于加快各种信息事务。例如,具有降低的延迟的RDMA可用于将设备内的信息流化或者可用于直接向应用缓冲器传输用于设备外部的信息源的信息。

    权利要求书

    1.  一种系统,包括:
    存储器电路,包括:
    目标缓冲器,被配置成用于至少接收信息;
    中间缓冲器,被配置成用于接收和传输信息;以及
    源缓冲器,被配置成用于致使在所述源缓冲器的注册过程中向中间缓冲器传输信息以及致使在注册完成之后直接向所述目标缓冲器传输附加信息。

    2.
      如权利要求1所述的系统,其中,所述源缓冲器被配置成用于致使使用远程数据存储器访问(RDMA)来传输信息。

    3.
      如权利要求1所述的系统,其中,被配置成用于致使向所述中间缓冲器传输信息包括:所述源缓冲器被进一步配置成用于,在所复制的所述信息量中的至少一个小于注册偏移量或当所述源缓冲器的所述注册未完成时,致使将信息块复制到注册缓冲器。

    4.
      如权利要求3所述的系统,其中,每个信息块的大小增加。

    5.
      如权利要求3所述的系统,其中,所述注册缓冲器被配置成用于致使将从所述源缓冲器接收的所述信息块传输到所述目标缓冲器。

    6.
      如权利要求3所述的系统,其中,致使直接将附加信息传输到所述目标缓冲器包括:所述源缓冲器被进一步配置成用于致使直接将所述附加信息传输到所述目标缓冲器,所述传输在基于所述注册偏移量的所述源缓冲器中的地址处开始。

    7.
      如权利要求1所述的系统,其中,所述源缓冲器被进一步配置成用于 致使,在所述源缓冲器解除注册之前,将至少基于解除注册偏移量的存储器地址处开始的信息传输至中间缓冲器。

    8.
      如权利要求7所述的系统,其中,致使在解除注册之前将信息传输到所述中间缓冲器包括:所述源缓冲器被进一步配置成用于致使在所述将所述附加信息传输到所述目标缓冲器的过程中将信息复制到解除注册缓冲器。

    9.
      如权利要求7所述的系统,其中,所述解除注册缓冲器被配置成用于致使在所述源缓冲器的解除注册过程中将从所述源缓冲器接收的所述信息传输到所述目标缓冲器。

    10.
      如权利要求7所述的系统,其中,致使直接将所述附加信息传输到所述目标缓冲器包括:所述源缓冲器被进一步配置成用于直接将所述附加信息传输到所述目标缓冲器,所述传输在基于至少所述解除注册偏移量的存储器地址处结束。

    11.
      一种方法,包括:
    确定要从源缓冲器传输到目标缓冲器的信息;
    致使在所述源缓冲器的注册过程中将信息从所述源缓冲器传输到中间缓冲器;以及
    致使在注册完成之后将附加信息直接从所述源缓冲器传输到所述目标缓冲器。

    12.
      如权利要求11所述的方法,其中,所述信息是通过远程直接存储器访问(RDMA)传输的。

    13.
      如权利要求11所述的方法,其中,致使将信息从所述源缓冲器传输到中间缓冲器包括:在所传输的所述信息量中的至少一个小于注册偏移量或当 所述源缓冲器的所述注册未完成时,致使将信息成块地复制到注册缓冲器。

    14.
      如权利要求13所述的方法,其中,每个信息块的大小增加。

    15.
      如权利要求13所述的方法,进一步包括致使将在所述注册缓冲器中接收的所述信息块传输到所述目标缓冲器。

    16.
      如权利要求13所述的方法,其中,致使直接将附加信息传输到所述目标缓冲器包括:致使直接将所述附加信息传输到所述目标缓冲器,所述传输在基于所述注册偏移量的所述源缓冲器中的地址处开始。

    17.
      如权利要求11所述的方法,进一步包括:在所述源缓冲器解除注册之前,将基于至少解除注册偏移量的存储器地址处开始的信息传输至所述中间缓冲器。

    18.
      如权利要求17所述的方法,其中,致使在解除注册之前将信息传输到所述中间缓冲器电路包括致使:在所述将所述附加信息传输到所述目标缓冲器过程中,将信息复制到解除注册缓冲器。

    19.
      如权利要求17所述的方法,进一步包括致使:在所述源缓冲器的解除注册过程中,将在所述解除注册缓冲器中接收的所述信息传输到所述目标缓冲器。

    20.
      如权利要求17所述的方法,其中,直接将所述附加信息传输到所述目标缓冲器包括:致使直接将在基于至少所述解除注册偏移量的存储器地址处结束的所述附加信息传输到所述目标缓冲器。

    21.
      一种被配置成用于执行远程直接存储器访问的设备,所述设备被安排 成用于执行权利要求11至20中任一项所述的方法。

    22.
      一种芯片组,被安排成用于执行权利要求11至20中任一项所述的方法。

    23.
      至少一种机器可读介质,包括多个指令,响应于在计算设备上被执行,所述指令致使所述计算设备执行根据权利要求11至20中任一项所述的方法。

    24.
      一种用于具有降低的延迟的远程直接存储器访问的装置,所述装置被安排成用于执行权利要求11至20中任一项所述的方法。

    说明书

    具有降低的延迟的远程直接存储器访问
    相关申请的交叉引用
    本申请涉及与其同时提交的标题为“Continuous Information Transfer with Reduced Latency(具有降低的延迟的连续信息传输)”的PCT申请号____(代理人案卷号P41676PCT),该申请的公开通过引用以其整体结合在此。
    领域
    以下公开涉及计算设备之间的信息传输,并且更具体地涉及通过具有低延迟的远程直接存储器访问进行信息传输。
    背景
    在计算设备上执行的应用可依赖于计算设备中的处理资源(诸如例如操作系统内核)以便与驻留在网络上的信息源交互。内核是形成应用和在计算系统中在硬件水平上完成的实际数据处理之间的桥梁的处理引擎。在此期间,操作系统内核可与硬件水平资源(诸如网络接口电路)通信以便致使将信息传输到网络资源或从其接收。尽管允许网络交互,性能会极大地受操作系统内核的活动水平的影响。网络接口电路所接收的通信可在其中操作系统内核忙于其他任务的实例下被延迟。结果是,已经开发了不涉及计算设备的主处理资源的用于传送网络信息的其他方法。远程直接存储器访问(RDMA)允许联网设备直接将信息放在另一个联网设备的存储器中而不涉及主处理资源(例如,操作系统内核)。尽管RDMA允许具有更低延迟的实质上增加的网络吞吐量,仍存在某些问题。RDMA可例如通过从由应用使用的存储器缓冲器提取信息以及将该信息直接传输到网络接口电路可访问的存储器缓冲器来操作,该网络接口电路然后可将该信息传输 到网络上的其他设备。然而,操作系统内核可将应用缓冲器的内容移动到虚拟存储器而不提醒,并且因此应用存储器缓冲器必须首先进行注册从而防止内容在RDMA事务过程中被移动,然后进行解除注册从而释放存储器空间以便由其他系统资源使用。应用存储器缓冲器的注册/解除注册在RDMA中引入了可降低传输信息的速度的延迟并且因此可消极地影响通信性能。
    附图简要说明
    所要求保护的主题的各实施例的特征和优点将随着以下详细描述的进行并且当参照附图时变得明显,其中相似的参考号指示相似的部件,并且在附图中:
    图1示出根据本公开的至少一个实施例的被配置成用于具有降低的延迟的远程直接存储器访问的示例系统;
    图2示出根据本公开的至少一个实施例的使用具有降低的延迟的远程直接存储器访问的示例信息传输;
    图3示出根据本公开的至少一个实施例的具有降低的延迟的远程直接存储器访问过程中的注册的示例;
    图4示出根据本公开的至少一个实施例的具有降低的延迟的远程直接存储器访问过程中的解除注册的示例;
    图5示出根据本公开的至少一个实施例的用于有降低的延迟的远程直接存储器访问的示例操作的流程图;
    图6示出根据本公开的至少一个实施例的使用具有降低的延迟的远程直接存储器访问来流传输信息的示例;
    图7示出根据本公开的至少一个实施例的用于使用有降低的延迟的远程直接存储器访问来流传输信息的示例操作的流程图;
    图8示出根据本公开的至少一个实施例的使用具有降低的延迟的远程直接存储器访问直接向应用缓冲器传输信息的外部源的示例;以及
    图9示出根据本公开的至少一个实施例的使用具有降低的延迟的远程 直接存储器访问直接向应用缓冲器传输信息的外部信息源的示例操作的流程图;以及
    尽管将参考说明性实施例进行以下详细描述,其许多替代、修改和变化将对本领域普通技术人员明显。
    详细描述
    本公开描述了用于具有降低的延迟的远程直接存储器访问的系统和方法。总体上,在远程直接存储器访问(RDMA)中,驻留在一个联网设备上的信息可直接被传输到另一个联网设备的存储器中。RDMA还对应于初始地由RDMA联盟和直接访问传输(DAT)协作提出并且从此以后已经被结合到高性能联网架构(诸如例如InfiniBandTM和iWARP)中的现有的通信协议。尽管在此出于解释参照了现有的RDMA通信协议的多个方面,当描述所公开的实施例时,这些实施例的实现方式不限于使用现有的RDMA通信协议,而是可用于允许联网设备直接将信息传输到另一个联网设备的存储器中的任何现有的或刚刚出现的通信系统。
    在一个实施例中,应用缓冲器可被配置成用于致使直接将信息传输到网络接口电路(NIC)缓冲器,或者可替代地,NIC缓冲器可被配置成用于致使将信息传输到应用缓冲器而不涉及设备中的处理电路(例如,操作系统内核)。然而,操作系统内核可被配置成用于在正常设备操作过程中尝试将应用缓冲器的内容移动到另一个位置(例如,虚拟存储器),以便释放物理存储器资源用于其他设备活动。在完成传输之前移动应用缓冲器的内容将损坏传输。应用缓冲器然后必须注册以便防止内容被移动并且必须在传输完成之后解除注册,以便释放存储器空间用于动态重新分配。注册和/或解除注册存储器空间耗费时间并且可向RDMA引入延迟。然而,可通过在注册和/或解除注册过程中进行其他过程来避免这种延迟。“重叠”这些任务允许整体的传输过程完成的更快。
    例如,源缓冲器(例如,应用缓冲器)可能想要向目标缓冲器(例如,NIC缓冲器)传输信息。源缓冲器可被配置成用于在注册过程中将信息复 制到中间缓冲器,并且中间缓冲器可被配置成用于然后将其接收到的信息从源缓冲器传输到目标缓冲器。结果是,源缓冲器无需等待注册完成来开始信息传输,并且降低了注册完成之后要传输的信息量。在一个实施例中,可基于例如注册时长实验性地确定在注册过程中要传输的信息量。例如,可将信息成块按增长的大小从源缓冲器传输到中间缓冲器,直到实现默认注册偏移或者在注册继续时。当接收到全部信息块时,中间缓冲器可将全部块传输到目标缓冲器。当注册完成时,源缓冲器可将信息的剩余部分(例如,尚未传输到中间缓冲器)直接通过RDMA传输到目标缓冲器。
    在相同的或不同的实施例中,在注册完成之后,源缓冲器可被配置成用于开始将信息传输到另一个中间缓冲器,从而帮助降低由解除注册引起的延迟。例如,当源缓冲器已注册时,从源缓冲器内容底部附近的信息偏移(例如,基于预测的解除注册时长)可被传输到其他中间缓冲器。因此,当源缓冲器已注册时要传输的信息量被减少偏移量,这降低了传输时长。解除注册可在从已注册的源缓冲器传输信息完成之后立即开始,并且传输到其他中间缓冲器的信息可在解除注册过程中被传输到目标缓冲器。结果是,源缓冲器被配置成在注册和解除注册过程中将信息传输到目标缓冲器,降低了注册源缓冲器时要传输的信息量,并且与现有的RDMA事务相比降低了延迟。
    在相同的或不同的实施例中,具有降低的延迟的RDMA可用于创建到或从联网设备的连续直接信息传输(例如,信息的流传输)。例如,应用缓冲器和NIC缓冲器可被配置成用于暴露本地缓冲器用于RDMA通信。应用缓冲器然后可被配置成用于将地址信息(例如,分散-聚集列表条目)传输到NIC缓冲器的本地缓冲器中,并且同样,NIC缓冲器可被配置成用于将地址信息传输到应用缓冲器的本地缓冲器中。当任一缓冲器希望将信息传输到其他缓冲器(例如,应用缓冲器希望将信息传输到NIC缓冲器),源(例如,应用)缓冲器可访问其本地缓冲器以便确定与目标(例如,NIC)缓冲器中的可用存储器相对应的至少一个地址。如果在本地缓冲器中不存在地址(例如,不存在任何地址信息,所有地址已经被使用等等),源缓 冲器可监控与本地缓冲器相关联的完成队列,以便指示新的信息已经被写入本地缓冲器。根据新的信息已经被写入本地缓冲器的指示,源缓冲器可访问本地缓冲器以检索与目标缓冲器中的可用存储器位置相对应的至少一个地址。
    进一步根据以上实施例,源缓冲器还可被配置成用于确定将信息传输到目标缓冲器的方法。当使用现有的RDMA协议时,可使用内联数据传输方法来传输少量数据而无需注册应用缓冲器。如果将要传输更大量的数据(例如,大于特定或预定量的数据量),可使用诸如先前所描述的具有降低的延迟的RDMA传输方法。源缓冲器然后可被配置成用于致使基于可用存储器位置的地址和所确定的传输方法来传输数据。以此方式,信息可被连续地传输到目标缓冲器中的开放存储器位置,具有很少或没有由于确定信息的可用存储器位置、注册、解除注册等等引起的延迟。
    在相同的或不同的实施例中,信息可被直接从设备外部的信息源(例如,驻留在网络上)传输到应用缓冲器,而无需首先被存储在NIC缓冲器中,如现有的RDMA事务所要求的。例如,地址缓冲器可包括外部源可用于直接将信息传输到应用缓冲器的应用缓冲器地址信息(例如,分散-聚集列表条目)。外部源然后可被配置成用于检查地址缓冲器以便确定与应用缓冲器中的可用存储器位置相关联的地址是否可用。如果应用缓冲器中的可用存储器位置的地址被确定可用,外部源可使用这些地址来直接将信息传输到应用缓冲器。如果没有地址被确定为可用(例如,地址缓冲器为空,地址缓冲器中的所有地址已经被使用等等),则外部源可开始将信息传输到NIC缓冲器,如同在现有的RDMA事务中一样。然而,外部源还可被配置成用于继续检查地址缓冲器以确定存储器位置是否变得可用于直接将信息传输到应用缓冲器。如果存储器位置变得可用,则外部源可开始直接将信息传输到应用缓冲器。在一个实施例中,直接传输到应用缓冲器的信息可包括指示其跟随已经被传输到NIC缓冲器的信息的序号。结果是,可进一步降低延迟。
    图1示出根据本公开的至少一个实施例的被配置成用于具有降低的延 迟的RMDA的示例系统100。系统100可包括形成系统的单个设备或多个设备,被配置成用于至少处理信息并且在网络上通信。系统100的示例可包括但不限于:移动通信设备,诸如基于操作系统(OS)、OS、OS、OS等等的蜂窝手机或智能电话;移动计算设备,诸如平板计算机,如GalaxyKindle等等;包括由英特尔公司制造的低功率芯片组的;上网本计算机、笔记本计算机、膝上计算机等等。系统100的示例还可通常包括静态设备,诸如例如具有集成或分离显示器等等的台式计算机。
    系统100可包括例如主平台102、子系统104以及网络接口电路(NIC)106。主平台102可包括用于系统100的更多实质信息处理资源。例如,主平台102可被配置成用于策划在系统100的正常操作过程中可发生的功能。子系统104可包括系统100中的电路,该电路被配置成用于例如在系统100中提供其它功能性,诸如视频输入/输出、音频输入/输出、用户接口等等。NIC 106可包括可被配置成用于支持系统100以及驻留在各种有线或无线网络108上的其他设备之间的交互性的物理层通信资源。
    主平台102可包括例如处理电路110、处理支持电路112以及存储器电路114。处理电路110可包括位于分离的组件中的一个或多个处理器,或者可替代地,可在单个组件中(例如,在片上系统(SOC)配置中)包括一个或多个处理核。示例处理器可包括可从英特尔公司获得的各种基于X86的微处理器,包括奔腾、至强、安腾、赛扬、凌动、i系列内核产品族中的那些处理器。处理电路110可被配置成用于使用处理支持电路112与系统100中的其他电路通信。处理支持电路112可包括用于支持处理电路110的包括例如存储器控制器、图形控制器、总线控制器等等的核逻辑芯片组。处理电路110可通过处理支持电路112与系统100中的其他电路(诸如子系统104和NIC 106)交互。尽管处理支持电路112可被实现为芯片组,该芯片组包括两个或多个分离的集成电路(IC),诸如例如英特尔公司制造的南桥和北桥芯片组,还可在处理电路110中发现通常被包括在处理支持电路112中的某些或全部功能性。
    处理电路110可被配置成用于执行指令。指令包括程序代码,当被执行时,该程序代码致使处理电路108执行功能,诸如例如读取(访问)数据、写入(存储)数据、处理数据、制定数据、产生数据、转换数据、变换数据等等。信息(例如,指令、数据等等)可被存储在存储器电路114中。存储器电路114可包括固定或可移除格式的随机存取存储器(RAM)和/或只读存储器(ROM)。RAM可包括被配置成用于在系统100的操作期间保持信息的存储器,诸如例如静态RAM(SRAM)或动态RAM(DRAM)。ROM(诸如例如bios存储器)可被配置成用于当系统100激活时提供指令。ROM的其他示例包括可编程存储器,诸如电子可编程ROM、(EPROM)、闪存等等。固定和/或可移除存储器的其他实施例可包括:磁存储器,诸如软盘、硬盘驱动器等等;电子存储器,诸如固态闪存(例如,eMMC等等)、可移除存储器卡或棒(例如,uSD、USB等等);光学存储器,诸如基于致密盘的ROM(CD-ROM)、全息存储器等等。
    在一个实施例中,至少一个应用116可被配置成用于在系统100的存储器电路114中执行。例如,应用116可以是系统100的操作系统的一部分(例如,服务)、可由系统100自动地执行、可由系统100的用户执行等等。应用116可被配置成用于支持系统100的操作、提供用户所希望的功能性(例如,通信、娱乐、生产力、导航等等)、为外部信息客户(例如,网络108上的设备)提供信息等等。在执行过程中,应用116可要求存储器电路114中的空间以便存储信息(例如,应用缓冲器118)。例如,在应用116被配置成用于与在网络108上驻留的设备交互的情况下,应用缓冲器118可存储将通过NIC 106被传输到网络108上的信息或者可替代地通过NIC 106从网络108接收的信息。NIC缓冲器120可被配置成用于从系统100(例如,从应用118)接收和存储信息用于在网络108上传输或者从网络108接收信息用于系统100中的消费者(例如,应用118)。
    在RDMA 122之前,主平台处理资源(例如,处理电路110和/或处理支持电路112)将被要求将信息从缓冲器120传输到缓冲器118(例如,用于由应用116使用)并且将信息从缓冲器118传输到缓冲器120(例如,用 于传输到网络108)。以此方式传输信息允许在缓冲器118和120之间传递信息但是可受到系统限制。例如,处理电路110和/或处理支持电路112可变得忙于处理系统100中的其他任务,并且因此,缓冲器118和120之间的信息传输可被延迟,这可进而导致应用116的执行延迟并且可不利地影响系统100的性能。RDMA 122通过直接在缓冲器118和120之间传递信息而不涉及主平台处理资源来帮助减轻这种情况。然而,现有的RDMA协议还遇到某些限制。主平台处理资源可不可预测地将物理存储器的内容移动到虚拟存储器(例如,模拟物理存储器以便降低系统100所需的物理存储器量的永久存储),从而释放资源用于系统100中的其他活动。在信息传输过程中将应用缓冲器118的内容移动到虚拟存储器将导致不正确的信息被传输并且因此传输被损坏。为了防止应用缓冲器118的内容被移动,在现有的RDMA协议可传输信息之前,应用缓冲器118必须首先注册。在传输完成之后,缓冲器必须然后解除注册,以便再次使得应用缓冲器118使用的存储器可用于动态重新分配。这种要求可不施加到NIC缓冲器120,因为其可预先注册(例如,可从系统100激活时永久地注册到NIC 106)。注册和解除注册由系统100的主平台处理资源策划,由于处理电路110和/或处理支持电路112忙于系统100中的其他活动,其再次使RDMA事务受到潜在延迟。
    在一个实施例中,可通过使用一个或多个中间缓冲器124来增强RDMA 122的操作。例如,可在注册和解除注册过程中将信息直接从“源”缓冲器(例如,应用缓冲器118)直接传输到中间缓冲器124,消除了这些操作导致的某些或全部延迟。以此方式,源缓冲器通常将空闲以等待注册完成的时间可用于传输信息,并且在源缓冲器已注册时要传输的信息量降低。图2示出根据本公开的至少一个实施例的使用具有降低的延迟的RDMA的示例信息传输。在图2的示例中,源缓冲器200尝试向目标缓冲器202传输信息。源缓冲器200(例如,应用缓冲器118)未预先注册,并且因此必须注册以便在存储器电路114中维持其内容的完整性达到持续传输时长。目标缓冲器202(例如,NIC缓冲器120)预先注册。源缓冲器200 的注册在204开始。同时或随后,源缓冲器200可被配置成用于开始将信息复制到中间缓冲器(例如,注册缓冲器124A),如在206所示。注册缓冲器124A可以是被配置成用于从源缓冲器200接收信息并且向目标缓冲器202传输信息的预先注册的缓冲器。注册缓冲器可具有设置大小,诸如例如16Kb,或可具有可变大小,可基于例如其注册源缓冲器200所花费的时间在操作过程中确定该可变大小。例如,如果主平台102忙于其他任务,则注册可能花费更长时间,并且结果是,注册缓冲器124A的大小可增大从而从源缓冲器200接收更多信息。注册缓冲器124A的大小无需等于将在注册过程中传输的总信息量,因为在一个实施例中,注册缓冲器124A可被配置成用于恒定地将其所接收到的信息传输出去,并且因此,永远不存在其保留在注册过程中传输的全部信息的情况。
    源缓冲器200可被配置成用于继续向注册缓冲器124A传输信息,直至到达某个阈值。例如,信息可被传输到注册缓冲器124A,直至基于要传输的信息量到达偏移量、直至达到某个存储器地址、当注册继续时等等。在一个实施例中,注册缓冲器124A可被配置成用于将从源缓冲器接收到的信息直接通过RDMA写入目标缓冲器208。例如,注册缓冲器124A可向目标缓冲器202发布一个或多个RDMA_post_write命令,从而致使将从源缓冲器200接收的信息直接传输到目标缓冲器202。在图3中详细描述了源缓冲器200可向注册缓冲器124A传输信息并且注册缓冲器124A可向目标缓冲器202传输信息的示例方法。
    注册可在210完成,并且同时或随后,源缓冲器200可被配置成用于致使将信息直接从源缓冲器200传输到目标缓冲器200,如在212所示。例如,源缓冲器200可向目标缓冲器202发布RDMA写命令,从而致使将信息从现在注册的源缓冲器200直接传输到目标缓冲器202。在相同或不同实施例中,同时或随后RDMA写命令212被发布,源缓冲器200还可被配置成用于从源缓冲器200的底部附近开始将信息复制到另一个中间缓冲器(例如,解除注册缓冲器124B),如在214所示。传输到解除注册缓冲器124B的信息的开始地址和信息量可基于例如可基于源缓冲器200完成解除注册 将花费的预测时间而确定的大小或偏移量。在216,在212开始的信息传输可完成,并且解除注册可开始。解除注册缓冲器124B然后可被配置成用于将其从源缓冲器200接收的信息传输到目标缓冲器202,如在218所示。例如,解除注册缓冲器124A可向目标缓冲器202发布一个或多个RDMA_post_write命令,从而致使直接将从源缓冲器200接收的信息传输到目标缓冲器202。在图4中详细描述了源缓冲器200可向注册缓冲器124B传输信息并且解除注册缓冲器124B可向目标缓冲器202传输信息的示例方法。
    图3示出根据本公开的至少一个实施例在具有降低的延迟的RDMA过程中的注册的示例。注册在204开始(例如,“IR”)。在300公开了示例开始命令。该命令可被认为是“异步的”,因为其不需要在传输信息之前发生。该命令可以是包括将注册的存储器的开始地址和长度的RDMA寄存器存储器命令。例如,将注册的存储器的开始可以是缓冲器的开始加上注册偏移量大小。注册偏移量大小可指示在注册过程中将被写入注册缓冲器124A的数据量。将注册的存储器的长度可以是从其减去注册偏移大小以及(如果传输将在解除注册过程中发生)解除注册偏移量大小的源缓冲器200的大小。例如,将注册的信息量可以是图2中的虚线210和216之间的源缓冲器200中的信息。注册偏移量大小可被经验为主地确定,如206A-D中所示。在206A,可将预定的初始块大小从源缓冲器200复制到注册缓冲器124A。当块传输在206B完成时,该块可被传输出注册缓冲器124A,如在208A所示。当传输到注册缓冲器124A的信息量低于最大偏移量或者当注册未完成时,信息块可继续被复制到注册缓冲器124A。在一个实施例中,所传输的每个信息块(例如,206C、206D等等)的大小可增加(例如,翻倍),并且一旦接收完成可被传输出注册缓冲器124A(例如,208B、208C等等)。描述这些操作的实施例的示例伪代码如下:


    其中,“Initial_Size(初始大小)”是可在系统100中预先确定的初始块大小,“registration_offset(注册偏移量)”是允许在注册过程中被复制的偏移量的最大大小,“registration_buffer(注册_缓冲器)”是注册缓冲器124A的开始地址,“offset(偏移量)”是复制到注册缓冲器的累加信息量,“source_buffer(源缓冲器)”是源缓冲器的开始地址,“size(大小)”是所传输的当前信息块大小,“target_buffer(目标缓冲器)”是目标缓冲器202的开始地址,并且“rkey(r密钥)”是用于访问目标缓冲器202的安全密钥。在上述示例伪代码中,当复制循环结束时,注册偏移量被设置为复制循环导致的偏移量大小(registration_offset=offset(注册偏移量=偏移量)),因此以经验为主地确定了合适的注册偏移量大小。例如,如果系统100忙碌,则注册将花费更多时间,并且当移动了最大信息量时(例如,offset>registration_offset(偏移量>注册偏移量)),复制循环将很有可能结束。在这种情况下,注册偏移量将不变,因为“偏移量”将等于当前注册偏移量。然而,如果系统100不忙碌,注册将进行的更快,并且复制循环然后将很有可能在注册结束时(例如,注册完成)结束,并且注册偏移量的大小将等于在注册过程中移动的信息量。以此方式,在注册过程中移动的数据量可指示系统100的当前状况。经更新的注册偏移量大小可致使系统100例如调整初始信息块的大小(例如,Initial_size)、调整注册缓冲器142A的大小、调整解除注册偏移量和/或缓冲器142B的大小等等。
    在注册在240完成之后(例如,“CR”),可在212'发布RDMA命令,从而致使直接将尚未被传输到注册缓冲器124A的信息传输到目标缓冲器 202,并且还可负责将在解除注册过程中被传输的任何信息。RDMA写命令212'可包括例如源缓冲器开始地址、长度、目标缓冲器开始地址以及访问密钥作为参数。在图3中示出的示例rdma_post_write命令中,源缓冲器开始地址可以是包括注册偏移量大小的缓冲器的实际开始(例如,已经被传输到注册缓冲器的信息量)。该长度是减去注册偏移量大小和解除注册偏移量大小(例如,将在解除注册过程中被传输的信息量)的源缓冲器200的缓冲器大小。目标缓冲器开始地址是目标缓冲器的实际开始地址加上注册偏移量大小(例如,为了避免盖写之前在注册过程中传输的信息),并且r密钥是允许源缓冲器200直接将信息传输到目标缓冲器202的安全密钥。
    图4示出根据本公开的至少一个实施例的具有降低的延迟的RDMA过程中的解除注册的示例。同时或随后RDMA写命令212'被发布,源缓冲器200还可被配置成用于开始将从源缓冲器200的底部附近的信息复制到解除注册缓冲器124B,如在214所示。将信息复制到解除注册缓冲器124B的至少一个优点是在源缓冲器200注册时要求传输更少的信息(例如,the buffer size-registration offset-the deregistration offset(缓冲器大小-注册偏移量-解除注册偏移量))。结果是,解除注册可更快速地开始并且可使源缓冲器200占据的存储器(例如,存储器电路114)更快速地用于动态重新分配。在一个实施例中,当RDMA写212'进行时,可将信息复制到解除注册缓冲器124B,如214所示,其中,大约在与RDMA写212'完成相同的时间复制214完成。源缓冲器200的解除注册然后可开始(例如,“ID”),如216所示(例如,因为所有信息已经从源缓冲器200传输),并且同时或随后,解除注册缓冲器124B可致使传输从源缓冲器200接收的信息(例如,传输到目标缓冲器202),如在218所示。例如,解除注册缓冲器124B可向目标缓冲器202发布RDMA_post_write命令,从而致使直接将从源缓冲器200接收的信息传输到目标缓冲器202。218处的传输还可包括“中间数据”。在RDMA中,中间数据通知接收缓冲器信息传输完成(例如,现在可访问所传输的信息)。描述这些操作的示例实施例的伪代码如下:
    copy(registration_buffer+registration_offset,source_buffer+ source_buffer_length–deregistration_offset,deregistration_offset)rdma_post_write(registration_buffer+registration_offset,deregistration_offset,target_buffer+source_buffer_length-deregistration_offset,rkey)wait_for_completion(rdma write 212')
    其中,“deregistration offset(解除注册偏移量)”是将在解除注册过程中被写入的信息量并且“source_buffer_length(源缓冲器长度)”是源缓冲器200的长度。以此方式,在RDMA写212已经完成之后(例如,source_buffer+source_buffer_length-deregistration_offset(源缓冲器+源缓冲器长度-解除注册偏移量))仍将被传输的源缓冲器中的信息可被复制到解除注册缓冲器124B并且然后在与命令212'相关联的写完成之后被传输到目标缓冲器202(例如,等待完成(rdma写212'))。
    图5示出根据本公开的至少一个实施例的用于有降低的延迟的RDMA的示例操作的流程图。在操作500,源缓冲器中的信息可等待传输到另一缓冲器(例如,传输到目标缓冲器)。源缓冲器然后可在操作502开始存储器注册。当所传输的信息量低于最大大小(例如,注册偏移量)或者当注册如操作504中所确定的那样未完成时,在操作506至510中,信息可从源缓冲器传输到注册缓冲器并且然后从注册缓冲器传输到目标缓冲器。例如,在操作506中,可直接将信息块从源缓冲器传输到注册缓冲器。传输可通过向注册缓冲器发布RDMA写命令发生,并且可在系统100中预先确定初始块大小。然后,在操作508中,可直接将信息块从注册缓冲器传输到目标缓冲器。在操作510中,块大小可增加(例如,块大小可翻倍)。当在操作504中确定所传输的数据量在最大大小或在其之上或者确定注册完成时,则注册完成之后,可在操作512中例如通过向目标缓冲器发布RDMA写命令开始直接将信息从注册源缓冲器传输到目标缓冲器。
    在操作512完成同时或操作512完成之后,通过向解除注册缓冲器发布RDMA写命令将信息直接从源缓冲器传输到解除注册缓冲器可在操作514中开始。可在操作516中确定在操作512中开始的信息传输现在是否完成。如果在操作512中开始的信息传输被确定完成,解除注册然后可在操 作518中开始,其可紧随在操作520中直接将信息从解除注册缓冲器传输到目标缓冲器。将信息从解除注册缓冲器传输到目标缓冲器可通过例如向目标缓冲器发布RDMA写命令而发生。
    具有降低的延迟的远程直接存储器访问的示例应用
    具有降低的延迟的RDMA可用于降低根据现有的RDMA协议中所要求的存储器注册和解除注册看到的延迟。然而,在各实施例中,这些原理还可被应用于进一步消除在现有的RDMA事务中看到的其他潜在的延迟源。在一个实施例中,可基于与源缓冲器本地可用的目标缓冲器中的可用存储器空间相对应的地址信息将信息从源缓冲器传输到目标缓冲器,从而导致基本上连续的信息流或者“流传输信息”。在相同或不同实施例中,系统100外部的信息源可跳过NIC缓冲器并且直接将信息传输到应用缓冲器,进一步加快了信息传输并且移除了如现有的RDMA中不得不通过NIC缓冲器进行通信所导致的延迟。
    图6示出根据本公开的至少一个实施例的使用具有降低的延迟的RDMA来流式传输信息的示例。在一个实施例中,在应用缓冲器118'将信息传输到NIC缓冲器120'之前,或者相反地,在NIC缓冲器120'将信息传输到应用缓冲器118'之前,缓冲器118'和/或缓冲器120'可被配置成用于暴露本地缓冲器600和602以用于RDMA写。例如,应用缓冲器118'被配置成用于通过RDMA直接将地址信息(例如,包括一个或多个分散-聚集条目(SGE)1至n的分散-聚集列表(SGL))写入到地址缓冲器602,如在604所示,并且NIC缓冲器120'可被配置成用于通过RDMA直接将地址信息(例如,包括一个或多个SGE 1至n的SGL)写入到地址缓冲器600,如在606所示。示例分散-聚集条目可包括与缓冲器118'和120'各自中的可用存储器空间相对应的存储器位置信息(例如,地址)。
    在应用缓冲器118'具有要传输到NIC缓冲器120'中的信息的示例操作中,NIC缓冲器120'可将包括一个或多个SGE的SGL写入地址缓冲器600,如在606所示。应用缓冲器还可将SGL写入地址缓冲器602,如在604所示,但是无需将信息从应用缓冲器118'传输到NIC缓冲器120'。应用缓冲 器然后可被配置成用于访问地址缓冲器600以检查与NIC缓冲器120'中的可用存储器空间相对应的地址。如果没SGE可用(例如,缓冲器为空、所有现有的SGE已经被使用等等),则应用缓冲器118'可监控与地址缓冲器600相关联的完成队列,以指示地址缓冲器600已经被更新。在所示出的示例中,SGE 1可用,并且因此,应用缓冲器118'可直接将信息传输到NIC缓冲器120'中的由SGE 1所标识的存储器空间。
    在相同或不同实施例中,应用缓冲器118'然后可确定通过其将信息传输到NIC缓冲器120'的方法。例如,如果将传输少量信息(例如,少于可在系统100中预先确定的某个量的信息量),应用缓冲器118'可被配置成用于使用RDMA内联数据写方法传输信息,如在608所示。RDMA内联数据写命令在现有的RDMA协议中被定义并且可用于传输少量信息而无需首先注册源缓冲器(例如,应用缓冲器118')。可根据所公开的各实施例使用的RDMA内联数据写命令的示例可以是:
    rdma_post_write(source_buffer,inline_size,target_buffer_address,rkey,inline_flag)
    其中,“inline_size(内联大小)”是将通过RDMA内联数据写命令传输的信息量,并且“target_buffer_address(目标缓冲器地址)”是目标缓冲器(例如,NIC缓冲器120')中的可用存储器空间的地址。例如,可基于从地址缓冲器600获得的SGE确定“目标缓冲器地址”。如果将传输更大量的信息(例如,大于某个量的信息量),应用缓冲器118'可被配置成用于使用具有降低的延迟的RDMA传输信息,如在610所示。可例如在至少图1至图5的讨论中根据在此公开的具有降低的延迟的RDMA的各实施例在610传输信息。不管应用缓冲器118'是否在608使用内联数据写方法还是在610使用具有降低的延迟的远程直接存储器访问,当信息传输完成时,应用缓冲器118'可进一步将中间数据写入NIC缓冲器完成队列614,如在612所示。在612处写中间数据通知NIC缓冲器120'信息传输完成并且其可访问该信息。重要的是要注意在图6中示出的示例示出将信息从应用缓冲器118'传输到NIC缓冲器120',这仅是出于在此解释的目的。还将 可能的是NIC缓冲器120'使用与在图6的讨论中先前描述的那些操作类似的操作将信息传输到应用缓冲器118'。
    图7示出根据本公开的至少一个实施例的用于使用有降低的延迟的远程直接存储器访问的示例操作的流程图。在操作700中,源缓冲器(例如,图6的示例中的应用缓冲器118')可暴露本地地址缓冲器(例如,从而使得目标缓冲器可直接通过RDMA将地址信息写入本地地址缓冲器)。在操作702中,源缓冲器还可直接将地址信息(例如,SGL)写入另一个缓冲器(例如,目标缓冲器)的所暴露的缓冲器。操作702是可选的,因为源缓冲器不被要求将信息传输到目标缓冲器。在操作704中,然后可确定是否存在要从源缓冲器传输到目标缓冲器的信息。如果在操作704中确定存在要传输的信息,则在操作706中,源缓冲器可检查本地地址缓冲器以确定与目标缓冲器中的可用存储器空间的下一可用地址(例如,SGE)。然后可在操作708中确定至少一个SGE是否可用。如果在操作708中确定没有SGE可用(例如,本地地址缓冲器为空、所有SGE已经被使用等等),则在操作710中,可监控本地地址缓冲器的完成队列以用于更新指示。然后可在操作712中确定是否已经在完成队列中收到更新指示。可监控完成队列,直至确定已经接收到更新指示。在完成队列中接收到更新指示可致使源缓冲器再次检查本地地址缓冲器以检查可用于在操作706中传输信息的SGE。
    如果在操作708中可使用的SGE被确定存在,则在操作714中,可进一步确定是否要传输“少”量信息。例如,在操作714中,可将要传输的信息量与在系统100中预先确定的某个数据量进行比较。如果确定要传输的信息量较小(例如,低于某个量),则可通过RDMA内联数据写方法在操作716中传输信息。否则,在操作718中,可使用具有降低的延迟的RDMA传输信息。
    图8示出根据本公开的至少一个实施例的使用具有降低的延迟的RDMA直接向应用缓冲器传输信息的外部信息源的示例。外部信息源800(例如,网络108上的设备)可希望将信息传输到系统100中的应用缓冲 器118″。在现有的RDMA协议中,信息将首先必须被传输到NIC缓冲器120',其进而将信息传输到应用缓冲器118″。然而,在具有降低的延迟的RDMA的至少一个应用中,可能的是外部信息源800直接将信息传输到应用缓冲器118″,跳过NIC缓冲器120'并且导致信息传输的实质性延迟降低。在一个实施例中,外部地址缓冲器(EAB)802可与应用缓冲器118″相关联并且可由外部信息源800访问。EAB 802可用于将与应用缓冲器118″中的可用存储器空间相对应的地址信息(例如,SGE 1至n)通知外部信息源800,其中可将信息直接传输到该可用存储器空间。初始地,应用缓冲器118"可被配置成用于向EAB 802提供地址信息(例如,SGE 1至n)。外部信息源800可被配置成用于检查EAB 802以检查与可用存储器空间相对应的地址信息(例如,至少一个SGE),如804所示。如果至少一个SGE(例如,SGE 1)可用,则外部信息源800可开始直接将信息传输到应用缓冲器118",如在806所示。
    然而,如果在检查EAB 802之后,外部信息源800确定没有SGE可用(例如,EAB 802为空、所有SGE已经被使用等等),如808所示,则外部源800可被配置成用于开始将信息传输到NIC缓冲器120',如在810所示。NIC缓冲器120'可被配置成用于例如通过具有降低的延迟610的RDMA开始将信息传输到应用缓冲器118"。在一个实施例中,外部信息源800可被配置成用于在将信息传输到NIC缓冲器120'过程中继续检查EAB 802,以便确定应用缓冲器118"中的存储器空间是否变得可用,如812所示。例如,信息源800可监控与EAB 802相关联的完成队列以监控更新指示,并且当确定更新已经发生时,可检查EAB 802针对可用的SGE。如果外部信息源800确定存储器空间在应用缓冲器118"中可用于直接传输,则外部信息源800可开始(或恢复)直接将信息传输到应用缓冲器118"。在一个实施例中,从外部源800传输的所有信息可包括可用于将所接收的信息放置成适当的接收顺序的序号。例如,如果外部源800将某些信息传输到NIC缓冲器120',并且然后开始直接将信息传输到应用缓冲器118",直接传输到应用缓冲器118"的信息可包括在分配给首先传输到NIC缓冲器120'的信 息的序号之后减小的序号。以此方式,应用缓冲器118"可以能够将从两个源(例如,外部源800和NIC缓冲器120')接收的信息重新排序成正确的接收顺序。
    图9示出根据本公开的至少一个实施例的使用具有降低的延迟的RDMA直接向应用缓冲器传输信息的外部信息源的示例操作的流程图。在操作900中,外部信息源(例如,网络108上的设备)可确定其具有要传输到应用缓冲器的信息。在操作902中,外部信息源可检查与应用缓冲器相关联的外部地址缓冲器,以便确定与应用缓冲器中的可用存储器空间相对应的地址信息(例如,至少一个SGE)是否可用,其中可将信息直接传输到该可用存储器空间。如果在操作904中,确定存在与可用地址空间相对应的至少一个SGE,则在操作906中,可直接将信息从外部信息源传输到应用缓冲器。可替代地,如果在操作904中确定不存在SGE(例如,外部地址缓冲器为空、所有SGE已经被使用等等),则在操作908中,外部源可开始将信息传输到NIC缓冲器。
    当向NIC缓冲器传输信息时,外部信息源可在操作910中继续检查外部地址缓冲器以检查与应用缓冲器中的可用存储器空间相对应的地址信息。例如,外部源可监控与外部地址缓冲器相关联的完成队列以监控外部地址缓冲器已经被更新的指示。外部信息源可继续将信息传输到NIC缓冲器,直至在操作912中确定存在与应用缓冲器中的可用存储器空间相对应的至少一个SGE,其中可将信息直接传输到该可用存储器空间。在操作914中,外部信息源可开始(或恢复)直接将信息传输到应用缓冲器。直接传输到应用缓冲器的信息可被排序(例如,可包含序列号)以指示传输到NIC缓冲器的信息比现在直接传输到应用缓冲器的信息靠前。
    尽管图5、图7和图9示出根据不同实施例的各操作,将要理解的是在图5、图7和图9中描绘的所有操作对于其他实施例而言不是全部必需的。实际上,在此充分考虑,在本公开的其他实施例中,在图7和图9中描绘的操作和/或在此描述的其他操作可以用未在任何附图中明确示出的方式结合,但是仍充分地与本公开保持一致。因此,涉及未在一个附图中准确示 出的特征和/或操作的权利要求被认为在本公开的范围和内容内。
    如在此在任何实施例中所使用的,术语“模块”可指代被配置成用于执行任何前述操作的软件、固件和/或电路。软件可被实现为记录在非瞬态计算机可读存储介质上的软件包、代码、指令、指令集和/或数据。固件可被实现为硬编码(例如,非易失性的)在存储器设备中的代码、指令或指令集和/或数据。
    如在此在任何实施例中所使用的“电路”可单独地或在任何组合中包括例如存储由可编程电路执行的指令的硬连线电路、可编程电路(诸如包括一个或多个单独的指令处理内核的计算机处理器)、状态机电路、和/或固件。这些模块可一起或单独地被实现为形成更大的系统的一部分的电路,例如,集成电路(IC)、芯片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等等。
    InfiniBandTM通信协议可符合或兼容InfiniBand贸易协会(IBTA)在2001年6月发布的标题为“InfiniBand架构规范”的InfiniBand规范和/或该规范的稍后版本。
    iWARP通信协议可符合或兼容RDMA联盟所开发的并且由互联网工程任务组(IETF)所维护并发布的于2007年发布的标题为“传输控制协议(TCP)上的RDMA标准”的iWARP标准和/或该标准的稍后版本。
    可在包括一个或多个存储介质的系统中实现在此所描述的任何操作,该一个或多个存储介质在其上单独地或结合地存储当被一个或多个处理器执行时执行该方法的指令。在此,处理器可包括例如服务器CPU、移动设备CPU、和/或其他可编程电路。因此,旨在根据在此所描述的操作可跨多个物理设备分布,诸如在多于一个不同物理位置的处理结构。存储介质可包括任何类型的有形介质,例如任何类型的盘,包括硬盘、软盘、光盘、致密盘只读存储(CD-ROM)、致密盘可重写(CD-RW)、以及磁光盘、半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM),诸如动态和静态RAM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、固态盘(SSD)、嵌入式多媒体卡(eMMC)、 安全数字输入/输出(SDIO)卡、磁卡或光卡、或任何其他类型的适合用于存储电子指令的介质。其他实施例可被实现为由可编程控制设备执行的软件模块。
    本公开提供了用于具有降低的延迟的远程直接存储器访问(RDMA)的系统和方法。RDMA允许直接在联网设备中的存储器缓冲器之间传输信息而不需要实质性处理。尽管RDMA要求尚未预注册的设备进行注册/解除注册,但具有降低的延迟的RDMA在注册/解除注册过程中向中间缓冲器传输信息,利用了将通常被浪费在等待这些过程完成的时间,并且降低了注册源缓冲器时传输的信息量。以此方式,RDMA事务可被更快速地完成。具有降低的延迟的RDMA可用于加快各种信息事务。例如,具有降低的延迟的RDMA可用于流传输设备内的信息或者可用于直接向应用缓冲器传输用于设备外部的信息源的信息。
    以下示例涉及进一步的实施例。在另一个示例实施例中,提供了一种系统。该系统可包括存储器电路,该存储器电路可包括被配置成用于至少接收信息的目标缓冲器以及被配置成用于接收和传输信息的中间缓冲器。该存储器电路还可包括源缓冲器,该源缓冲器被配置成用于在该源缓冲器的注册过程中致使将信息传输到中间缓冲器。该源缓冲器可进一步被配置成用于在注册完成之后致使直接将附加信息传输到该目标缓冲器。
    上述示例系统可被进一步配置,其中,该源缓冲器被配置成用于致使使用远程数据存储器访问(RDMA)传输该信息。
    上述示例系统可被进一步配置,其中,被配置成用于向该中间缓冲器传输信息包括:该源缓冲器被进一步配置成用于,在所复制的信息量中的至少一个小于注册偏移量或当该源缓冲器的注册未完成时,致使将信息块复制到注册缓冲器。在本示例配置中,该系统可被进一步配置,其中,每个信息块的大小增加。在本示例配置中,该系统可被进一步配置,其中,该注册缓冲器被配置成用于致使将从该源缓冲器接收的信息块传输到该目标缓冲器。在本示例配置中,该系统可被进一步配置,其中,致使直接将附加信息传输到该目标缓冲器包括该源缓冲器进一步被配置成致使直接将 该附加信息传输到该目标缓冲器,在基于注册偏移量的在该源缓冲器中的地址处开始。
    上述示例系统可被进一步配置,其中,该源缓冲器被进一步配置成用于致使在该源缓冲器的解除注册之前在基于至少一个解除注册偏移量的存储器地址处开始将信息传输至中间缓冲器。在本示例配置中,该系统可被进一步配置,其中,致使在解除注册之前将信息传输至该中间缓冲器包括:该源缓冲器被配置成用于致使在将该附加信息传输到目标缓冲器过程中将信息复制到解除注册缓冲器。在本示例配置中,该系统可被进一步配置,其中,该解除注册缓冲器被配置成用于致使在该源缓冲器的解除注册过程中将从该源缓冲器接收的该信息传输到该目标缓冲器。在本示例配置中,该系统可被进一步配置,其中,致使直接将该附加信息传输到该目标缓冲器包括该源缓冲器被进一步配置成用于直接将该附加信息传输到该目标缓冲器,在基于至少解除注册偏移量的存储器地址处结束。
    在另一个示例实施例中,提供了一种方法。该方法可初始地包括确定将信息从源缓冲器传输到目标缓冲器。该方法可进一步包括致使在该源缓冲器的注册过程中将信息从该源缓冲器传输到中间缓冲器,以及致使在注册完成之后直接将附加信息从该源缓冲器传输到该目标缓冲器。
    上述示例方法可被进一步配置,其中,该信息是通过远程直接存储器访问(RDMA)传输的。
    上述示例方法可被进一步配置,其中,致使将信息从该源缓冲器传输到中间缓冲器包括,在所传输的信息量中的至少一个小于注册偏移量或当该源缓冲器的注册未完成时,致使将信息成块复制到注册缓冲器。在本示例配置中,该方法可被进一步配置,其中,每个信息块的大小增加。在本示例配置中,该方法可进一步包括致使将在该源缓冲器中接收的这些信息块传输到该目标缓冲器。在本示例配置中,该方法可被进一步配置,其中,致使直接将附加信息传输到该目标缓冲器包括致使直接将该附加信息传输到该目标缓冲器,在基于注册偏移量的在该源缓冲器中的地址开始。
    上述示例方法可进一步包括在该源缓冲器的解除注册之前在基于至少 一个解除注册偏移量的存储器地址开始将信息传输至该中间缓冲器。在本示例配置中,该方法可被进一步配置,其中,致使在解除注册之前将信息传输至该中间缓冲器包括:该源缓冲器被配置成用于致使在将该附加信息传输到该目标缓冲器过程中将信息复制到解除注册缓冲器。在本示例配置中,上述示例方法可进一步包括致使在该源缓冲器的解除注册过程中将在该解除注册缓冲器中接收的该信息传输到该目标缓冲器。在本示例配置中,上述示例方法可被进一步配置,其中,直接将该附加信息传输到该目标缓冲器包括致使直接将在基于至少解除注册偏移量的存储器地址结束的附加信息传输到该目标缓冲器。
    在另一个示例实施例中,提供了一种被配置成用于执行远程直接存储器访问的设备,该设备被安排成用于执行任何上述示例方法。
    在另一个示例实施例中,提供了一种被安排成用于执行任何上述示例方法的芯片组。
    在另一个示例实施例中,提供了至少一种机器可读介质,包括多个指令,响应于在计算设备上被执行,指令致使该计算设备执行任何上述示例方法。
    在另一个示例实施例中,提供了一种被配置成用于具有降低的延迟的远程直接存储器访问的装置,该装置被安排成用于执行任何上述示例方法。
    已经在此使用的术语和表达被用作描述而非限制术语,并且不旨在使用这种术语和表达时排除所展示和描述的特征的任何等效方案(或其部分),并且认识到在权利要求书的范围内各种修改是可能的。因此,权利要求书旨在覆盖所有这种等效方案。

    关 键  词:
    具有 降低 延迟 远程 直接 存储器 访问
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:具有降低的延迟的远程直接存储器访问.pdf
    链接地址:https://www.zhuanlichaxun.net/p-468561.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1