本发明专利技术实施例提供一种远程内存访问方法、装置和系统,通过Load-Store发送引擎在第一数据包的描述符中设置第一标识,并将所述第一数据包和所述第一数据包的描述符发送到传输层,所述第一标识用于标识所述数据包来自于所述Load-Store发送引擎;传输层根据所述第一标识,将第一数据包和所述第一数据包的描述符优先发送到数据链路层;所述数据链路层根据第一标识和第一数据包,生成第二数据包,第二数据包中包含第一标识,并将第二数据包发送到物理层进行传输。从而,使得来自Load-Store发送引擎的数据包能够优先得到处理,从而,降低Load-Store内存访问的延时。
【技术实现步骤摘要】
本专利技术实施例涉及计算机技术,尤其涉及一种远程内存访问方法、装置和系统。
技术介绍
远程内存访问方法包括远程直接内存存取(RemoteDirectMemoryAccess,简称:RDMA)访问方法和载入-存储(Load-Store)访问方法,其中,RDMA访问方法中RDMA控制器从中央处理器(CentralProcessingUnit,简称:CPU)完全接管对总线的控制,内存数据交换不经过CPU,而直接在本地内存和远端内存之间进行传输,以中断方式向CPU报告传送操作的结束。Load-Store访问方法是CPU直接从寄存器读取或者向寄存器写入内存数据,Load用于把远端内存中的数据载入到本地寄存器中;Store用于把本地寄存器中的数据存储到远端内存。根据两种远程内存的访问方法的特点可以得出,Load-Store适用于少量的数据存取,对延时非常敏感,而RDMA适用于大块数据迁移,对带宽要求高。然而,随着互联网应用的飞速发展,它们对计算机系统的内存容量要求越来越高,而受限于物理空间和总线能力,在本地扩大内存容量变得非常困难,因此业界开始研究如何利用远端内存,这样对互联系统的延时要求也越来越严格。现有技术中,高性能的串行输入输出(InputOutput,简称:IO)总线高速外设部件互连(PeripheralComponentInterconnectExpress,以下简称:PCIe)已经取代传统的并行接口,成为主流I/O总线技术,PCIe通过虚通路技术来提高服务质量(QualityofService,简称:QOS),软件为根据事务的传输要求为每个事务分配传输类别(Transportcategory,简称:TC),每个TC映射到端口的某一虚通道(Virtualchannel,简称:VC)上,不同的VC在PCIExpress线路结构中具有不同的优先级,从而为不同传输要求的事务提供不同的服务,使它们获得所要求的带宽和等待时间,保证服务质量。PCIe的这些特性为将内存访问向远端迁移提供了基本的技术支撑。然而,采用现有技术的方法,仅在事务层降低了延时,无法保证像Load-Store内存访问这类对时延非常敏感的数据流端到端的低延时需求,通常如果一次Load-Store内存访问的延时过长可能导致应用程序挂死甚至整个CPU瘫痪。
技术实现思路
本专利技术实施例提供一种远程内存访问方法、装置和系统,以降低通过Load-Store访问远程内存的延时。第一方面,本专利技术提供一种远程内存访问方法,包括:载入存储Load-Store发送引擎将第一数据包和所述第一数据包的描述符发送到传输层,所述第一数据包的描述符中包含第一标识,所述第一标识用于标识所述第一数据包来自于所述Load-Store发送引擎;传输层根据所述第一标识,将所述第一数据包和所述第一数据包的描述符优先发送到数据链路层;所述数据链路层根据所述第一标识和所述第一数据包,生成第二数据包,所述第二数据包中包含所述第一标识;所述数据链路层将所述第二数据包发送到物理层进行传输。结合第一方面,在第一方面的第一种可能的实现方式中,所述传输层根据所述第一标识,将所述第一数据包和所述第一数据包的描述符优先发送到数据链路层,包括:所述传输层根据所述第一标识,将所述第一数据包优先发送到数据链路层的第一缓存器中,所述第一缓存器用于存储来自于所述Load-Store发送引擎的数据包;所述数据链路层根据所述第一标识和所述第一数据包,生成第二数据包,包括:所述数据链路层优先将所述第一缓存器中的第一数据包,根据所述第一标识和所述第一数据包,生成第二数据包;所述数据链路层将所述第二数据包发送到物理层进行传输,包括:所述数据链路层优先将所述第一缓存器中的第二数据包发送到物理层。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:所述物理层根据所述第二数据包中的第一标识将所述第二数据包发送到对应优先级的虚通路进行传输。第二方面,本专利技术提供一种远程内存访问方法,包括:数据链路层从物理层接收第二数据包,所述第二数据包中包含第一标识,所述第一标识用于标识所述第二数据包在传输层将被发送到载入存储Load-Store接收引擎;所述数据链路层将所述第二数据包发送到传输层;所述传输层根据所述第一标识,优先将所述第二数据包发送到所述Load-Store接收引擎。结合第二方面,在第二方面的第一种可能的实现方式中,所述第一标识还用于标识将所述第二数据包转发到第二缓存器中;所述数据链路层从物理层接收第二数据包,包括:所述数据链路层根据所述第一标识,将所述第二数据包存储在第二缓存器中,所述第二缓存器用于存储向所述Load-Store接收引擎发送的数据包;所述数据链路层将所述第二数据包发送到传输层,包括:所述数据链路层优先将所述第二缓存器中的第二数据包发送到传输层。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述数据链路层从物理层接收第二数据包之前,还包括:所述物理层根据接收所述第二数据包的虚通路的优先级将所述第二数据包发送到数据链路层。第三方面,本专利技术提供一种远程内存访问装置,包括:载入存储Load-Store发送引擎,用于将第一数据包和所述第一数据包的描述符发送到传输层模块,所述第一数据包的描述符中包含第一标识,所述第一标识用于标识所述第一数据包来自于所述Load-Store发送引擎;所述传输层模块,用于根据所述第一标识,将所述第一数据包和所述第一数据包的描述符优先发送到数据链路层模块;所述数据链路层模块,用于根据所述第一标识和所述第一数据包,生成第二数据包,所述第二数据包中包含所述第一标识;所述数据链路层模块,还用于将所述第二数据包发送到物理层进行传输。结合第三方面,在第三方面的第一种可能的实现方式中,所述传输层模块具体用于根据所述第一标识,将所述第一数据包优先发送到数据链路层的第一缓存器中,所述第一缓存器用于存储来自于所述Load-Store发送引擎的数据包;所述数据链路层模块具体用于优先将所述第一缓存器中的第一数据包,根据所述第一标识和所述第一数据包,生成第二数据包;所述数据链路层模块具体用于优先将所述第一缓存器中的第二数据包发送到物理层模块。结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述装置还包括:物理层模块,用于根据所述第二数据包中的第一标识将所述第二数据包发送到对应优先级的虚通路进行传输。第四方面,本专利技术提供一种远程内存访问装置,包括:数据链路层模块,用于从物理层接收第二数据包,所述第二数据包中包含第一标识,所述第一标识用于标识所述第二数据包在传输层将被发送到载入存储Load-Store接收引擎;所述数据链路层模块,还用于将所述第二数据包发送到传输层模块;所述传输层模块,用于根据所述第一标识,优先将所述第二数据包发送到所述Load-Store接收引擎。结合第四方面,在第四方面的第一种可能的实现方式中,所述第一标识还用于标识将所述第二数据包转发到第二缓存器中;所述数据链路层模块具体用于根据所述第一标识,将所述第二数据包存储在第二缓存器中,所述第二缓存器用于存储向所述Load-Store接收引擎发送的数据包;本文档来自技高网...
【技术保护点】
一种远程内存访问方法,其特征在于,包括:载入存储Load‑Store发送引擎将第一数据包和所述第一数据包的描述符发送到传输层,所述第一数据包的描述符中包含第一标识,所述第一标识用于标识所述第一数据包来自于所述Load‑Store发送引擎;传输层根据所述第一标识,将所述第一数据包和所述第一数据包的描述符优先发送到数据链路层;所述数据链路层根据所述第一标识和所述第一数据包,生成第二数据包,所述第二数据包中包含所述第一标识;所述数据链路层将所述第二数据包发送到物理层进行传输。
【技术特征摘要】
1.一种远程内存访问方法,其特征在于,包括:载入存储Load-Store发送引擎将第一数据包和所述第一数据包的描述符发送到传输层,所述第一数据包的描述符中包含第一标识,所述第一标识用于标识所述第一数据包来自于所述Load-Store发送引擎;传输层根据所述第一标识,将所述第一数据包和所述第一数据包的描述符优先发送到数据链路层;所述数据链路层根据所述第一标识和所述第一数据包,生成第二数据包,所述第二数据包中包含所述第一标识;所述数据链路层将所述第二数据包发送到物理层进行传输。2.根据权利要求1所述的方法,其特征在于,所述传输层根据所述第一标识,将所述第一数据包和所述第一数据包的描述符优先发送到数据链路层,包括:所述传输层根据所述第一标识,将所述第一数据包优先发送到数据链路层的第一缓存器中,所述第一缓存器用于存储来自于所述Load-Store发送引擎的数据包;所述数据链路层根据所述第一标识和所述第一数据包,生成第二数据包,包括:所述数据链路层优先将所述第一缓存器中的第一数据包,根据所述第一标识和所述第一数据包,生成第二数据包;所述数据链路层将所述第二数据包发送到物理层进行传输,包括:所述数据链路层优先将所述第一缓存器中的第二数据包发送到物理层。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述物理层根据所述第二数据包中的第一标识将所述第二数据包发送到对应优先级的虚通路进行传输。4.一种远程内存访问方法,其特征在于,包括:数据链路层从物理层接收第二数据包,所述第二数据包中包含第一标识,所述第一标识用于标识所述第二数据包在传输层将被发送到载入存储Load-Store接收引擎;所述数据链路层将所述第二数据包发送到传输层;所述传输层根据所述第一标识,优先将所述第二数据包发送到所述Load-Store接收引擎。5.根据权利要求4所述的方法,其特征在于,所述第一标识还用于标识将所述第二数据包转发到第二缓存器中;所述数据链路层从物理层接收第二数据包,包括:所述数据链路层根据所述第一标识,将所述第二数据包存储在第二缓存器中,所述第二缓存器用于存储向所述Load-Store接收引擎发送的数据包;所述数据链路层将所述第二数据包发送到传输层,包括:所述数据链路层优先将所述第二缓存器中的第二数据包发送到传输层。6.根据权利要求5所述的方法,其特征在于,所述数据链路层从物理层接收第二数据包之前,还包括:所述物理层根据接收所述第二数据包的虚通路的优先级将所述第...
【专利技术属性】
技术研发人员:李花芳,董建波,钟来军,陈云,
申请(专利权)人:华为技术有限公司,中国科学院计算技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。