CN116745754A - 一种访问远端资源的***及方法 - Google Patents

一种访问远端资源的***及方法 Download PDF

Info

Publication number
CN116745754A
CN116745754A CN202180091402.5A CN202180091402A CN116745754A CN 116745754 A CN116745754 A CN 116745754A CN 202180091402 A CN202180091402 A CN 202180091402A CN 116745754 A CN116745754 A CN 116745754A
Authority
CN
China
Prior art keywords
node
address
remote node
remote
local node
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202180091402.5A
Other languages
English (en)
Inventor
程传宁
程中武
石伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116745754A publication Critical patent/CN116745754A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种访问远端资源的***及方法,该***包括本地节点以及远端节点;本地节点用于:确定访问资源请求,访问资源请求包含访问资源操作以及访问资源操作指向的本地节点的地址;确定对应的远端节点的地址;将操作报文发送给远端节点,操作报文包含访问资源操作和远端节点的地址;接收远端节点发送的操作结果报文,根据操作结果报文确定操作结果;远端节点用于:接收操作报文;执行访问资源操作得到操作结果,并将操作结果报文发送给本地节点。利用本申请提供的***及方法,能够通过下发的访问资源请求的方式来直接快速的访问远端节点上的内存、硬盘以及其他资源,从而避免访问延时较大、过程较繁琐以及处理效率较低的问题。

Description

一种访问远端资源的***及方法 技术领域
本申请涉及数据访问领域,特别涉及一种访问远端资源的***及方法。
背景技术
随着大数据的发展,在存储(store)、高性能计算(high-performance computing,HPC)等领域普遍使用横向扩展(scale-out)的***架构。整个scale-out***由多个节点组成,每个节点都配置了独立的处理器、内存、硬盘以及其他设备,***中的各个节点之间通常需要密切配合才能完成任务。因此,节点之间经常需要互相进行资源访问。
现有技术下本地节点访问远端节点的资源需要繁琐的过程。这里以本地节点读取远端节点的数据为例:远端节点在收到读取数据的指令时,首先将本地的数据复制到远端节点的处理器的套接字缓存(socket buffer)中,然后在远端节点的处理器中进行数据包的封装,通过一系列多层网络协议处理后,远端节点再将处理后的数据包发送到网卡的缓存(buffer)中,通过网络将处理后的数据包发送到本地节点的网卡上,然后到本地节点又经过多层的网络解析,得到远端节点的数据,这样数据读取才算完成。由于上述技术需要远端节点以及本地节点的处理器参与处理,因此,相比于直接访问本地内存,现有技术过程复杂且处理性能很低。
此外,在现有的另外一些方式下,本地的内存还可以通过远程直接数据存取(remote direct memory access,RDMA)方式来访问远端节点的内存,但若本地节点的硬盘需要访问远端节点的内存,则先需要本地节点的处理器执行访问命令,下发工作请求(work request),写门铃(doorbell)等一系列操作,步骤仍然很繁琐,并且使用RDMA技术还需要通过本地节点的处理器执行软件传输接口以及执行异步调度等等操作完成内存访问,从而增大延时并增加对内存带宽的消耗,因此,处理效率也很低。
有鉴于此,需要提出一种有效的方法通过直接下发访问资源操作的方式来访问远端节点上的内存、硬盘以及其他资源,从而避免远端资源访问延时较大、过程较繁琐以及处理效率较低的问题。
发明内容
有鉴于此,本申请提供一种访问远端资源的***及方法,利用上述***及方法,本地节点可以通过下发的访问资源请求来直接访问远程的内存、硬盘以及其他设备中的资源从而避免远端资源访问延时较大、过程较繁琐以及处理效率较低的问题。
第一方面,本申请提供一种访问远端资源的***,所述***包括本地节点以及远端节点;所述本地节点用于:确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作指向的所述本地节点的地址;确定与所述本地节点的地址对应的所述远端节点的地址;将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作和所述远端节点的地址;接收所述远端节点发送的操作结果报文,并根据所述操作结果报文确定操作结果;所述远端节点用于:接收所述操作报文;执行所述操作报文所包含的所述访问资源操作以得到所述操作结果,并将所述操作结果报文发送给所述本地节点,所述操作 结果报文包含所述操作结果。
在上述技术方案中,本地节点在确定访问资源请求后,确定访问资源请求中携带的访问资源操作以及本地节点的地址,并根据本地节点的地址确定远端节点的地址,将访问资源操作以及远端节点的地址转化为可进行网络传输的报文,将该报文发送到远端节点上,远端节点在接收报文后,可以直接在远端节点的地址上执行资源操作,并将操作结果以报文返回给本地节点,从而可以通过直接下发资源操作的方式访问远端节点上的内存、硬盘以及其他资源,降低访问延时、简化访问步骤,从而提升处理效率。
在一些可能的实施方式中,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;所述本地节点,在将操作报文发送给所述远端节点时,具体用于:将所述操作报文发送给所述远端节点号指示的所述远端节点。
在上述技术方案中,在访问远端资源的***中存在多个远端节点时,可以根据远端节点号确定将所述访问资源请求下发到哪个远端节点,避免将操作报文发送到多个远端节点,从而提升访问效率。
在一些可能的实施方式中,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;所述本地节点还用于:建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;所述本地节点,在确定与所述本地节点的地址对应的所述远端节点的地址时,具体用于:根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理地址;根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟地址。
在上述技术方案中,可以将本地节点的操作***中的用户空间与本地节点的物理地址空间,以及本地节点的物理地址空间与远端节点的操作***中的用户空间关联起来,当本地节点访问本地节点的操作***中的用户空间的虚拟地址时,实际上会转换为对远端节点的操作***中的用户空间的虚拟地址的访问,从而可以实现通过直接下发资源操作的方式访问远端节点上的内存、硬盘以及其他资源,降低访问延时、简化访问步骤。
在一些可能的实施方式中,所述远端节点还用于:建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;所述远端节点,在执行所述操作报文所包含的所述资源操作时,具体用于:根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
同理,远端节点也可以将远端节点的操作***中的用户空间与远端节点的物理地址空间关联起来,从而提升处理访问资源操作的效率。
在一些可能的实施方式中,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;所述本地节点,在确定与所述本地节点的地址对应的所述远端节点的地址时,具体用于:根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟页号;根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
在一些可能的实施方式中,所述资源操作包括以下至少一种:处理器读操作load、处 理器写操作store、处理器原子操作atomic以及DMA访问。在上述技术方案中,本申请提供的访问远程资源的***可以为支持CHI协议的存储***。
在一些可能的实施方式中,将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。在一些可能的实施方式中,将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
在上述技术方案中,第一映射关系、第二映射关系以及第三映射关系以页表条目PTE或页表指针PTP的格式存储在页表中,利用该格式存储,可以离散的将映射关系存储在页表中,从而节省页表的存储空间。
第二方面,本申请提供一种访问远端资源的方法,所述方法包括:
确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作所指向的本地节点的地址;确定与所述本地节点的地址对应的远端节点的地址;将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作以及所述远端节点的地址;接收所述远端节点发送的包含操作结果的操作结果报文,所述操作结果为所述远端节点执行所述操作报文所包含的所述访问资源操作所确定的。所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;所述将操作报文发送给所述远端节点,具体包括:将所述操作报文发送给所述远端节点号指示的所述远端节点。
在一些可能的实施方式中,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;所述方法还包括:建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;所述确定与本地节点的地址对应的远端节点的地址,包括:根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理地址;根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟地址。
在一些可能的实施方式中,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;所述确定与本地节点的地址对应的远端节点的地址,具体包括:根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟页号;根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
在一些可能的实施方式中,所述访问资源操作包括以下至少一种:处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
在一些可能的实施方式中,所述方法还包括:将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
第三方面,本申请提供一种访问远端资源的方法,所述方法包括:
接收本地节点发送的操作报文,所述操作报文包含访问资源操作及远端节点的地址;
执行所述访问资源操作以得到操作结果,并将包含所述操作结果的操作结果报文发送 给所述本地节点。
在一些可能的实施方式中,所述远端节点的地址为所述远端节点的虚拟地址,所述方法还包括:建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;
所述执行所述资源操作时,具体包括:
根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;
根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
在一些可能的实施方式中,所述访问资源操作包括以下至少一种:
处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
在一些可能的实施方式中,所述方法还包括:
将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
第四方面,本申请提供一种本地节点,所述本地节点包括:
操作生成单元,用于确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作所指向的本地节点的地址;
地址确定单元,用于确定与所述本地节点的地址对应的远端节点的地址;
操作发送单元,用于将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作以及所述远端节点的地址;
结果确定单元,用于接收所述远端节点发送的包含操作结果的操作结果报文,所述操作结果为所述远端节点执行所述操作报文所包含的所述访问资源操作所确定的。
在一些可能的实施方式中,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;
所述操作发送单元,具体用于:
将所述操作报文发送给所述远端节点号指示的所述远端节点。
在一些可能的实施方式中,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;
所述本地节点还包括本地映射确定单元,所述本地映射确定单元,用于建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;
所述地址确定单元,还用于根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理地址;
根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟地址。
在一些可能的实施方式中,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;
所述地址确定单元,还用于根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;
根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟 页号;
根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
在一些可能的实施方式中,所述访问资源操作包括以下至少一种:
处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
在一些可能的实施方式中,所述本地节点还包括:本地映射存储单元,所述本地映射存储单元,用于将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
第五方面,本申请提供一种远端节点,所述远端节点包括:操作接收单元,用于接收本地节点发送的操作报文,所述操作报文包含访问资源操作及远端节点的地址;执行发送单元,用于执行所述访问资源操作以得到操作结果,并将包含所述操作结果的操作结果报文发送给所述本地节点。
在一些可能的实施方式中,所述远端节点的地址为所述远端节点的虚拟地址,所述远端节点还包括远端映射确定单元,所述远端映射确定单元,用于建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;
所述执行发送单元,用于根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;
根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
在一些可能的实施方式中,所述访问资源操作包括以下至少一种:
处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
在一些可能的实施方式中,所述远端节点还包括:远端映射存储单元,所述远端映射存储单元,用于将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
第六方面,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行第二方面或第三方面任一所述的访问远程资源的方法。
第七方面,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行第二方面或第三方面任一所述的访问远程资源的方法。
第八方面,本申请提供一种芯片,包括至少一个处理器和接口;所述接口,用于为所述至少一个处理器提供程序指令或者数据;所述至少一个处理器用于执行所述程序行指令,实现第二方面或第三方面任一所述的访问远程资源的方法。
上述第二方面至第八方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。
本申请的这些方面或其它方面在以下实施例的描述中会更加简明易懂。
附图说明
图1A为一种访问远端资源的***的架构示意图;
图1B为一种本地节点的地址与远端节点的地址的映射示意图;
图1C为一种访问远端资源的***的具体架构示意图;
图2为本地节点向远端节点下发访问资源操作的流程示意图;
图3A为一种第一操作装置的结构示意图;
图3B为一种第二操作装置的结构示意图;
图4所示为应用于访问远端资源的***的实例流程示意图;
图5为一种访问远端资源方法的流程示意图;
图6为访问远端资源的***中的本地节点的结构示意图;
图7为访问远端资源的***中的远端节点的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或***实施例中。需要说明的是,在本申请的描述中“至少一个”是指一个或多个,其中,多个是指两个或两个以上。鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,示例性的,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
以下,先对本申请实施例中涉及的部分用语进行解释说明,以便于本领域技术人员容易理解。
(1)原子(atomic)操作:原子操作指的是一个独立而不可分割的操作。在单核环境中,一般的意义下原子操作中线程不会被切换,线程切换要么在原子操作之前,要么在原子操作完成之后。更广泛的意义下原子操作是指一系列必须整体完成的操作步骤,如果任何一步操作没有完成,那么所有完成的步骤都必须回滚,这样就可以保证要么所有操作步骤都未完成,要么所有操作步骤都被完成。例如,在单核***里,单个的机器指令可以看成是原子操作;而在多核***中,单个的机器指令就不是原子操作,因为多核***里是多指令流并行运行的,一个核在执行一个指令时,其他核同时执行的指令有可能操作同一块内存区域,从而出现数据竞争现象。单条指令中完成的操作都可以认为是原子操作。
(2)内存映射:内存映射是指将硬盘上文件的位置与进程逻辑地址空间中一块大小相同的区域一一对应,当要访问内存中一段数据时,转换为访问文件的某一段数据。这种方式的目的是减少数据在用户空间和内核空间之间的拷贝操作。当大量数据需要传输的时候,采用内存映射方式去访问文件会获得比较好的效率。
(3)内存管理单元(memory management unit,MMU):MMU有时称作分页内存管理单元(paged memory management unit,PMMU)。它是一种负责处理中央处理器的内存访问请求的计算机硬件。它的功能包括虚拟页表到物理页表的转换(即虚拟内存管理)、 内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换。
(4)高速串行计算机扩展总线标准(peripheral component interconnect-express,PCI-e):PCIe是一种通用的总线规格,它由 所提倡和推广,设计目的是为了取代现有电脑***内部的总线传输接口。
(5)非易失性存储器标准(Non-Volatile Memory express,NVMe):NVMe是使用PCI-e通道的固态硬盘(solid state disk,SSD)一种规范,NVMe的设计之初就有充分利用到PCI-e SSD的低延时以及并行性,还有处理器、平台与应用的并行性。SSD的并行性可以充分被主机的硬件与软件充分利用,相比与高级主机控制器接口(advanced host controller interface,AHCI)标准,NVMe可以带来多方面的性能提升。
(6)内存映射I/O(memory-mapped I/O,MMIO):MMIO是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后***设备访问起来和内存一样。
(7)虚拟地址(virtual address,VA):VA并不真实存在于计算机中。每个进程都分配有自己的虚拟空间,而且只能访问自己被分配使用的空间。
(8)页表条目(page table entry,PTE):PTE是页表的最低层,它直接处理页,该值包含某页的物理地址,还包含了说明该条目是否有效及相关页是否在物理内存中的位。
(9)一致集线器接口(coherent hub interface,CHI):基于CHI协议的***架构可以包含独立CPU、处理器簇、图形处理器、memory控制器、I/O桥、PCIe子***和CHI互联线。具体的,根据CHI协议节点类型,可以将组件分类命名如下:请求节点(request node,RN)负责产生协议操作(transactions),包含读和写;主节点(home node,HN),用于接收来自RN产生的协议操作;从节点(slave node,SN)用于接收来自HN的请求,完成相应的操作并返回一个响应。
(10)旁路转换缓冲(translation lookaside buffer,TLB):TLB为处理器的一种缓存,由存储器管理单元用于改进虚拟地址到物理地址的转译速度,TLB具有固定数目的空间槽,用于存放将虚拟地址映射至物理地址的标签页表条目。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例,基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术下,可以基于以太网和无限带宽网络(infiniband,IB)的远程内存调用方式,实现远程直接数据存取(remote direct memory access,RDMA)技术来访问调用远端节点的内存。具体的,本地节点可以通过支持RDMA的网络接口控制器(RDMA-aware network interface controller,RNIC)来直接访问远程内存,但在采用以太网和IB网络实现远程内存调用时,还需要额外的交换机、适配器以及协议栈到PCI-e(peripheral component interconnect-express,快捷***组件互连高速)协议之间的复杂转换。
具体的,当本地节点需要访问远端节点时,就会创建通道连接,每条通道的首尾端点是两对队列对(queue pairs,QP),本地节点通过网卡直接访问RNIC,并且在完成数据处理请求后,配合完成队列推送(complete queue poll,CQ poll)机制或中断机制来访存数据。 并且RDMA技术提供软件传输接口(software transport interface,Verbs)方便本地节点发送传输请求(work request,WR),WR中描述了希望传输到远端节点的消息内容,WR通知QP中的某个队列(work queue,WQ),在WQ中本地节点的WR被转换为Work Queue Element(WQE)的格式,并等待RNIC的异步调度解析,最终从WQE指向的缓存中拿到真正的消息返回本地节点,因此,使用RDMA技术仍然需要通过处理器执行软件传输接口、执行异步调度等等操作,而一旦经过处理器的处理执行,就会增大延时并增加对带宽的消耗,并且效率也较低。此外,RDMA是一种点对点协议,不但需要在每个节点上均安装专用的网卡(如以太网卡或者IB网卡),导致实现RDMA功能的成本较高,而且即使使用了RDMA技术,仍然不能对各个节点的资源进行合理地、高效地分配。
有鉴于此,本申请实施例提供一种访问远端资源的***及方法,能够通过下发访问资源请求的方式来直接快速的访问远端节点上的内存、硬盘以及其他资源,从而避免访问延时较大、过程较繁琐以及处理效率较低的问题。
本申请的提供的技术方案,可以应用于具有两个以上的节点的存储***,其中,存储***的各节点可以具有独立的硬件结构,以独立的实现相同或相异的业务。此外,需要说明的是,在本申请实施例中,各个节点可以具有的一定的资源,各个节点的资源大小可以相同或不同,本申请不做具体限定。
为了便于理解,在以下说明中,将请求访问其他远端节点的节点命名为本地节点,将能够被其他节点访问内存、处理器、硬盘以及其他空间资源的节点命名为远端节点。需要说明的是,在本申请实施例中,一个节点可以在某一时段内作为本地节点,并在另一时段内作为远端节点,或者一个节点可以同时作为本地节点以及作为对于另一节点的远端节点。
图1A示出了一种访问远端资源的***的架构示意图,该***中包括:本地节点100、远端节点110。其中,所述本地节点100用于:确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作指向的所述本地节点100的地址;确定与所述本地节点100的地址对应的所述远端节点110的地址;将操作报文发送给所述远端节点110,所述操作报文包含所述访问资源操作和所述远端节点110的地址;接收所述远端节点110发送的操作结果报文,并根据所述操作结果报文确定操作结果;
所述远端节点110用于:接收所述操作报文;执行所述操作报文所包含的所述访问资源操作以得到所述操作结果,并将所述操作结果报文发送给所述本地节点100,所述操作结果报文包含所述操作结果。
其中,本地节点100与远端节点110均可以视为存储***中的节点,在节点间需要进行数据交互时,本地节点100通过下发携带有访问资源操作的操作报文,可以访问远端节点110的资源。例如,本地节点100上的某个计算任务需要利用本地节点100的资源以及远端节点110的资源进行协同处理时,本地节点100可以向远端节点110发送获取计算数据的操作报文,从而获取在远端节点上的计算数据,进而完成计算任务。
具体的,访问资源请求可以包括如下类型的操作:处理器读(load)操作、处理器写(store)操作、处理器原子(atomic)操作以及直接数据存取DMA访问,并且通过所述访问资源请求包含的所述本地节点100的地址,能够在与所述本地节点100的地址对应的所述远端节点110的地址上执行访问资源操作。
而所述本地节点100的地址既可以为本地节点100的虚拟地址,也可以为本地节点100 的物理地址,远端节点110的地址既可以为远端节点110的虚拟地址,也可以为远端节点110的物理地址;所述操作结果报文为可以进行网络传输的报文。示例性的,这里以生成操作报文为RDMA类型的网络报文进行举例:根据load操作可以生成RDMA read报文、根据store操作可以生成RDMA write报文、根据atomic操作可以生成RDMA atomic报文;同理,发送给所述本地节点100的操作结果报文,同样为可以进行网络传输的报文,具体的报文生成方式,这里不再赘述,本领域技术人员应当知晓。
在一些可能的实施方式中,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点110的地址所属的远端节点110;所述本地节点100,在将操作报文发送给所述远端节点110时,具体用于:将所述操作报文发送给所述远端节点号指示的所述远端节点110,当所述远端节点110存在多个时,根据所述远端节点号确定将所述访问资源请求下发到哪个远端节点110。
在一些可能的实施方式中,所述本地节点100的地址为所述本地节点100的虚拟地址,所述远端节点110的地址为所述远端节点110的虚拟地址;所述本地节点100还用于:建立所述本地节点100的虚拟地址与所述本地节点100的物理地址的第一映射关系,以及建立所述本地节点100的物理地址与所述远端节点110的虚拟地址的第二映射关系;所述本地节点100,在确定与所述本地节点100的地址对应的所述远端节点110的地址时,具体用于:根据所述第一映射关系确定与所述本地节点100的虚拟地址对应的所述本地节点100的物理地址;根据所述第二映射关系确定与所述本地节点100的物理地址对应的所述远端节点110的虚拟地址。
具体的,所述本地节点100的虚拟地址位于本地节点100的虚拟地址空间中,所述虚拟地址空间为本地节点100的操作***的用户空间的一部分,所述本地节点100的物理地址位于本地节点100的物理地址空间中,所述物理地址空间为本地节点100的资源空间的一部分。所述远端节点110的虚拟地址存在于远端节点110的虚拟地址空间中,所述虚拟地址空间为远端节点110的操作***的用户空间的一部分。
在本申请中,本地节点100可以建立所述本地节点100的虚拟地址与所述本地节点100的物理地址的第一映射关系,以及建立所述本地节点100的物理地址与所述远端节点110的虚拟地址的第二映射关系,一旦映射建立完成,本地节点100的操作***中的用户空间与本地节点100的物理地址空间,以及本地节点100的物理地址空间与远端节点110的操作***中的用户空间会关联起来,当本地节点100访问本地节点100的操作***中的用户空间的虚拟地址时,实际上会转换为对远端节点110的操作***中的用户空间的虚拟地址的访问。具体的地址映射的方式本领域技术人员应当知晓,这里不再赘述。
在一些可能的实施方式中,所述远端节点110还用于:建立所述远端节点110的虚拟地址与所述远端节点110的物理地址的第三映射关系;所述远端节点110,在执行所述操作报文所包含的所述资源操作时,具体用于:根据所述第三映射关系确定与所述远端节点110的虚拟地址对应的所述远端节点110的物理地址;根据所述远端节点110的物理地址,执行所述操作报文所包含的所述访问资源操作。
与上述实施例类似的,远端节点110也可以将远端节点110的操作***中的用户空间与远端节点110的物理地址空间关联起来,具体映射的方式本领域技术人员应当知晓。
在一些可能的实施方式中,所述本地节点100的虚拟地址包含:所述本地节点100的虚拟页号以及偏移量,所述远端节点110的虚拟地址包含所述远端节点110的虚拟页号以 及偏移量,所述本地节点100的虚拟地址包含的偏移量与所述远端节点110的虚拟地址包含的偏移量相同;所述本地节点100,在确定与所述本地节点100的地址对应的所述远端节点110的地址时,具体用于:根据所述第一映射关系确定与所述本地节点100的虚拟页号对应的所述本地节点100的物理页号;根据所述第二映射关系确定与所述本地节点100的物理页号对应的所述远端节点110的虚拟页号;根据所述本地节点100的地址中的偏移量以及所述远端节点110的虚拟页号,确定所述远端节点110的虚拟地址。
示例性的,参阅图1B所示,图1B为从本地节点100的地址映射到远端节点110的地址的示意图;访问资源请求中携带本地节点100的地址,本地节点100根据所述本地节点100的虚拟页号确定本地节点100的物理页号,在页表中查询与所述本地节点100物理页号对应的远端节点号以及远端节点110虚拟页号,根据所述远端节点110虚拟页号以及所述偏移量得到远端节点110的地址。在一些可能的实施方式中,所述本地节点还用于:将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。所述远端节点还用于:将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
示例性的,一个PTE对应一个页表项,例如,一个PTE具有32位地址,其中,第20位至第31位中可以存储有该PTE对应的地址。所述页表项可以存储远端节点110地址,还可以存储远端节点的其它信息,例如,所述操作报文的类型为RDMA时,所述页表项中还可以包括队列序号(QP number)等。
本申请实施例提供了一种访问远端资源的***,用于解决目前不能通过本地节点直接下发的访问资源请求来直接访问远端的内存、硬盘以及其他设备中的资源的问题。通过将本地节点下发的访问资源请求转换为可进行网络传输的报文,将操作报文承载访问资源操作,将访问资源操作发送到远端节点上,从而能实现本地节点对远端节点的资源的直接访问,在访问远端节点的资源时,能够降低访问延时、简化访问步骤,从而提升处理效率。
参阅图1C所示,图1C示出了一种访问远端资源的***的具体架构示意图,可选的,本地节点100上可以包括第一存储器102以及处理器103,而远端节点110包括第二存储器112。为了使本地节点100的第一存储器102以及处理器103可以向远端节点110的第二存储器112下发访问资源操作,所述本地节点100上设置有所述第一操作装置101,所述远端节点110上设置有所述第二操作装置111,而第一操作装置101与第二操作装置111之间可以相互通信。通过第一操作装置101向第二操作装置111传输携带有访问资源操作的操作报文,从而能在第二存储器112上,执行由第一存储器102或处理器103下发的访问资源操作。
其中,所述处理器103为本地节点100的控制中心,利用各种接口和线路连接整个节点的各个部分,通过运行或执行存储在第一存储器102内的软件程序和/或模块,以及调用存储在第一存储器102内的数据,以执行计算机***的各种功能和/或处理数据。所述处理器103可以由集成电路(integrated circuit,IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。在本申请实施方式中,所述处理器103可以为至少一个中央处理器(central processing unit,简称CPU),所述CPU可以是单运算核心,也可以是多运算核心,可以是实体机的处理器,也可以是虚拟机的处理器。
上述第一存储器102以及第二存储器112,用于存放程序指令和数据等。可以理解,本申请中的第一存储器102以及第二存储器112可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。此外,本申请中的第一存储器102以及第二存储器112还可以为磁碟、硬盘、U盘、移动硬盘、光盘、固态硬盘(solid state disk,SSD)或者其他非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。应注意,本文描述的***和方法的第一存储器102以及第二存储器112旨在包括但不限于这些和任意其它适合类型的存储器。
结合图1C所示的***架构,图2示出了由本地节点100向远端节点110下发访问资源请求的角度描述的示意性流程图。参阅图2所示,该方法包括步骤S201-S207。
S201:处理器103/第一存储器102向第一操作装置101发送访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作指向的所述本地节点100的地址。
其中,所述访问资源请求既可以由所述本地节点100中的第一存储器102下发,也可以由所述本地节点100中的处理器103下发。
S202:第一操作装置101根据所述本地节点100的地址,确定与所述本地节点100的地址对应的远端节点110的地址。可选的,第一操作装置101可以根据所述本地节点100的地址,确定与所述本地节点100的地址对应远端节点110的地址,其中,第一操作装置101确定与所述本地节点100的地址对应的页表目录地址;根据所述本地节点100的地址,在所述页表目录地址指向的页表目录中寻找所述本地节点100的地址指向的页表地址;根据所述本地节点100的地址,在所述页表地址指向的页表中查找所述本地节点100的地址对应的页表项,根据所述页表项确定与所述本地节点100的地址对应的远端节点110的地址。其中,所述访问资源请求中还包含:远端节点号,当所述远端节点110存在多个时,根据所述远端节点号确定将所述访问资源请求下发到哪个远端节点。
S203:第一操作装置101将所述操作报文发送到远端节点110上的第二操作装置111。
具体的,第一操作装置101根据所述本地节点100下发的load/store/atomic操作,生成为可以进行网络传输的操作报文。示例性的,这里以生成操作报文为RDMA类型的网络报文进行举例:根据第一存储器102下发的load操作生成RDMA read报文、根据第一存储器102下发的store操作生成RDMA write报文、根据第一存储器102下发的atomic操作生成RDMA atomic报文。
S204:第二操作装置111接收所述操作报文,将访问资源操作发送到第二存储器112上。
具体的,由第二操作装置111接收所述操作报文,得到第一存储器102下发的访问资 源请求,得到访问资源操作以及所述远端节点110的地址,并将访问资源操作发送到第二存储器112上,如此,通过第一操作装置101以及第二操作装置111,可以实现本地节点100直接向远端节点110第二存储器112下发访问资源请求,从而实现节点间的相互访问。
S205:第二存储器112执行所述操作报文所包含的所述访问资源操作以得到所述操作结果,将所述操作结果发送到第二操作装置111。
在远端节点110上的所述第二存储器112接收访问资源操作以及所述远端节点110的地址后,执行访问资源操作,并将所述访问资源请求的操作结果发送至第二操作装置111。
示例性的,若所述访问资源请求为load操作时,则从远端节点110地址读取相应数据进行返回,若所述访问资源请求为store操作时,则将所述访问资源请求携带的写数据写入所述远端节点110地址中。
S206:第二操作装置111将所述操作结果报文发送至第一操作装置101。
同理,根据所述第二操作装置111发送的操作结果,同样可以生成进行网络传输的操作结果报文,具体的报文生成方式,这里不再赘述,本领域技术人员应当知晓。
S207:第一操作装置101接收所述远端节点发送的操作结果报文,并根据所述操作结果报文确定操作结果,将所述操作结果返回至下发所述访问资源请求的所述第一存储器102/处理器103。
当所述访问资源请求由所述本地节点100中的第一存储器102下发时,将所述操作结果返回所述本地节点100的第一存储器102,当所述访问资源请求由所述本地节点100中的处理器103下发时,将所述操作结果返回所述本地节点100的处理器103。
本申请实施例通过访问远端资源的***中的第一操作装置与第二操作装置,将本地节点下发的访问资源请求,通过第一操作装置转换为可进行网络传输的报文,并由第二操作装置解析网络传输的报文,将访问资源请求直接发送到远端节点的存储器上,从而能实现本地节点直接向远端节点进行访问,在访问远端资源时,降低访问延时、简化访问步骤,从而提升处理效率。
本申请还提供一种第一操作装置,图3A示出了第一操作装置300架构示意图,所述第一操作装置300包括:第一指令处理单元301、远程内存管理单元302以及第一报文传输单元303。
所述第一指令处理单元301用于接收所述本地节点100发送的访问资源请求,所述访问资源请求包含访问资源操作以及本地节点100的地址;将所述本地节点100的地址发送到远程内存管理单元302;接收所述第一报文传输单元303发送的操作结果报文,并根据所述操作结果报文确定操作结果,将所述操作结果发送至所述本地节点100。
所述远程内存管理单元302用于根据所述本地节点100的地址,确定与所述本地节点100的地址对应远端节点110的地址;
所述第一报文传输单元303用于将所述将操作报文发送到远端节点110;接收所述远端节点110发送的操作结果报文,根据操作结果报文确定操作结果。
其中,所述第一指令处理单元301既可以接收所述本地节点100中的第一存储器102下发的所述访问资源请求,所述第一指令处理单元301还可以接收所述本地节点100中的处理器103下发的访问资源请求。
在一些可能的实施方式中,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点110的地址所属的远端节点110;所述第一指令处理单元301还 用于将所述操作报文发送给所述远端节点号指示的所述远端节点110,当所述远端节点110存在多个时,根据所述远端节点号确定将所述访问资源请求下发到哪个远端节点110。
在一些可能的实施方式中,所述本地节点100的地址为所述本地节点100的虚拟地址,所述远端节点110的地址为所述远端节点110的虚拟地址,建立所述本地节点100的虚拟地址与所述本地节点100的物理地址的第一映射关系,以及建立所述本地节点100的物理地址与所述远端节点110的虚拟地址的第二映射关系;所述远程内存管理单元302具体用于:根据所述第一映射关系确定与所述本地节点100的虚拟地址对应的所述本地节点100的物理地址;根据所述第二映射关系确定与所述本地节点100的物理地址对应的所述远端节点110的虚拟地址。
在一些可能的实施方式中,所述本地节点100的虚拟地址包含:所述本地节点100的虚拟页号以及偏移量,所述远端节点110的虚拟地址包含所述远端节点110的虚拟页号以及偏移量,所述本地节点100的虚拟地址包含的偏移量与所述远端节点110的虚拟地址包含的偏移量相同;所述远程内存管理单元302,具体用于:根据所述第一映射关系确定与所述本地节点100的虚拟页号对应的所述本地节点100的物理页号;根据所述第二映射关系确定与所述本地节点100的物理页号对应的所述远端节点110的虚拟页号;根据所述本地节点100的地址中的偏移量以及所述远端节点110的虚拟页号,确定所述远端节点110的虚拟地址。
在一些可能的实施方式中,所述远程内存管理单元302还用于将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。所述远端节点还用于:将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
在一些可能的实施方式中,所述第一操作装置300还包括旁路转换缓冲单元304,所述旁路转换缓冲单元304用于缓存第一页表、第二页表中的常用页表项。其中,若每次本地节点100地址到远端节点110地址的转换都需要访问所述远程内存管理单元302中的第一页表、第二页表,则会花费很多的时间。因此,设置旁路转换缓冲单元304作为存储常用页表项的高级缓存,能提高地址转换的速度。示例性的,所述旁路转换缓冲单元304存储有常用页表项,所述常用页表项是所述第一页表的子集或所述第二页表的子集。这样可以先在所述旁路转换缓冲单元304中查找常用页表项进行地址转换从而能提高地址转换的速度。
本申请还提供一种第二操作装置310,图3B示出了第二操作装置310的架构示意图,所述操作装置310包括:第二报文传输单元311以及第二指令处理单元312。
所述第二报文传输单元311用于接收本地节点发送的操作报文,所述操作报文包含访问资源操作及远端节点的地址,将所述访问资源操作发送到第二指令处理单元312;接收所述操作结果,并将包含所述操作结果的操作结果报文发送给所述本地节点100;
所述第二指令处理单元312用于接收所述访问资源操作,执行所述访问资源操作以得到操作结果,得到操作结果,将所述操作结果发送到所述第二报文传输单元311;
在一些可能的实施方式中,所述远端节点的地址为所述远端节点的虚拟地址,所述第二操作装置310还包括内存管理单元313,所述内存管理单元313用于建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;
所述第二指令处理单元312用于根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
在一些可能的实施方式中,所述内存管理单元313用于将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
基于上述实施例提供的访问远端资源的***,本实施例提供一种应用于访问远端资源的***的实例,以访问远端资源的***的本地节点向远端节点下发load操作的场景为例,其中,该***为基于CHI总线的架构且下发访问资源请求会转换为RDMA类型的报文,图4所示为应用于访问远端资源的***的实例流程示意图,其中:
本地节点上的处理器或存储器向第一操作装置发送非监听式读操作请求readnosnp(load操作),第一操作装置确定本地节点的地址,并查询远程内存单元上的页表目录,得到readnosnp请求对应的队列对编号(queue pairs number,QPN)以及远端节点的地址;第一操作装置将readnosnp请求转换为RDMA read操作发送到第二操作装置;第二操作装置将RDMA read转换为一次读操作readonce,将所述readonce发送到远端节点的存储器,以获取所述远端节点的地址上的数据;接收远端节点发送的完成数据compdata,将所述compdata转换为RDMA read response发送给第一操作装置;第一操作装置接收所述RDMA read response后,提取所述compdata,将所述compdata返回给下发readnosnp请求的本地节点上的处理器或存储器。
本申请还提供一种访问远端资源的方法,该方法应用于上述实施例所述的本地节点100及远端节点110,参阅图5所示,所述方法包括如下步骤:
S501:本地节点100确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作所指向的本地节点的地址;
S502:本地节点100确定与所述本地节点的地址对应的远端节点的地址;
S503:本地节点100将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作以及所述远端节点的地址;
S504:远端节点110接收本地节点发送的操作报文,所述操作报文包含访问资源操作及远端节点的地址;
S505:远端节点110执行所述访问资源操作以得到操作结果,并将包含所述操作结果的操作结果报文发送给所述本地节点;
S506:本地节点100接收所述远端节点发送的包含操作结果的操作结果报文,所述操作结果为所述远端节点执行所述操作报文所包含的所述访问资源操作所确定的。
在一些可能的实施方式中,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;
所述将操作报文发送给所述远端节点,具体包括:将所述操作报文发送给所述远端节点号指示的所述远端节点。
在一些可能的实施方式中,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;所述方法还包括:建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;所述确定与本地节点的地址对应的远端节点的地址,包括:根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理 地址;根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟地址。
在一些可能的实施方式中,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;所述确定与本地节点的地址对应的远端节点的地址,具体包括:根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟页号;根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
在一些可能的实施方式中,所述远端节点的地址为所述远端节点的虚拟地址,所述方法还包括:建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;所述执行所述资源操作时,具体包括:根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
在一些可能的实施方式中,所述访问资源操作包括以下至少一种:处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。在一些可能的实施方式中,所述方法还包括:将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
在一些可能的实施方式中,所述方法还包括:将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
本申请还提供一种本地节点,参阅图6所示,所述本地节点600包括:
操作生成单元601,用于确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作所指向的本地节点的地址;
地址确定单元602,用于确定与所述本地节点的地址对应的远端节点的地址;
操作发送单元603,用于将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作以及所述远端节点的地址;
结果确定单元604,用于接收所述远端节点发送的包含操作结果的操作结果报文,所述操作结果为所述远端节点执行所述操作报文所包含的所述访问资源操作所确定的。
在一些可能的实施方式中,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;所述操作发送单元603,具体用于:
将所述操作报文发送给所述远端节点号指示的所述远端节点。
在一些可能的实施方式中,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;
所述本地节点还包括本地映射确定单元605,所述本地映射确定单元605,用于建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;
所述地址确定单元602,还用于根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理地址;
根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟 地址。
在一些可能的实施方式,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;
所述地址确定单元602,还用于根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;
根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟页号;
根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
在一些可能的实施方式中,所述访问资源操作包括以下至少一种:
处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
在一些可能的实施方式中,所述本地节点还包括:本地映射存储单元606,所述本地映射存储单元606,用于将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
本申请还提供一种远端节点,参阅图7所示,所述远端节点700包括:
操作接收单元701,用于接收本地节点发送的操作报文,所述操作报文包含访问资源操作及远端节点的地址;
执行发送单元702,用于执行所述访问资源操作以得到操作结果,并将包含所述操作结果的操作结果报文发送给所述本地节点。
在一些可能的实施方式中,所述远端节点的地址为所述远端节点的虚拟地址,所述远端节点还包括远端映射确定单元703,所述远端映射确定单元703,用于建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;
所述执行发送单元702,用于根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;
根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
在一些可能的实施方式中,所述访问资源操作包括以下至少一种:
处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
在一些可能的实施方式中,所述远端节点还包括:远端映射存储单元704,所述远端映射存储单元704,用于将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
基于上述内容和相同构思,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行图5所示实施例中的访问远程资源的方法。
基于上述内容和相同构思,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行图5所示实施例中的访问远程资源的方法。
基于上述内容和相同构思,本申请提供一种芯片,包括至少一个处理器和接口;所述接口,用于为所述至少一个处理器提供程序指令或者数据;所述至少一个处理器用于执行所述程序行指令,实现图5所示实施例中的访问远程资源的方法。
本申请实施例提供了一种访问远端资源的***及方法,用于解决目前不能通过本地节点直接下发的访问资源请求来直接访问远程的内存、硬盘以及其他设备中的资源的问题。利用本申请提供的访问远端资源的***及方法,可以将本地节点下发的访问资源请求,转换为可进行网络传输的报文,并由远端节点解析网络传输的报文后,将访问资源请求直接发送到远端节点上,从而能实现本地节点直接向远端节点进行访问,在访问远端资源时,能够降低访问延时、简化访问步骤,从而提升处理效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (28)

  1. 一种访问远端资源的***,其特征在于,所述***包括本地节点以及远端节点;
    所述本地节点用于:确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作指向的所述本地节点的地址;确定与所述本地节点的地址对应的所述远端节点的地址;将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作和所述远端节点的地址;接收所述远端节点发送的操作结果报文,并根据所述操作结果报文确定操作结果;
    所述远端节点用于:接收所述操作报文;执行所述操作报文所包含的所述访问资源操作以得到所述操作结果,并将所述操作结果报文发送给所述本地节点,所述操作结果报文包含所述操作结果。
  2. 根据权利要求1所述的***,其特征在于,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;
    所述本地节点,在将操作报文发送给所述远端节点时,具体用于:
    将所述操作报文发送给所述远端节点号指示的所述远端节点。
  3. 根据权利要求1或2所述的***,其特征在于,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;
    所述本地节点还用于:
    建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;
    所述本地节点,在确定与所述本地节点的地址对应的所述远端节点的地址时,具体用于:
    根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理地址;
    根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟地址。
  4. 根据权利要求3所述的***,其特征在于,所述远端节点还用于:
    建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;
    所述远端节点,在执行所述操作报文所包含的所述资源操作时,具体用于:
    根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;
    根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
  5. 根据权利要求3所述的***,其特征在于,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;
    所述本地节点,在确定与所述本地节点的地址对应的所述远端节点的地址时,具体用于:
    根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;
    根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟页号;
    根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
  6. 根据权利要求1-5任一所述的***,其特征在于,所述访问资源操作包括以下至少一种:
    处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
  7. 根据权利要求3所述的***,其特征在于,所述本地节点还用于:将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
  8. 根据权利要求4所述的***,其特征在于,所述远端节点还用于:将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
  9. 一种访问远端资源的方法,其特征在于,所述方法包括:
    确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作所指向的本地节点的地址;
    确定与所述本地节点的地址对应的远端节点的地址;
    将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作以及所述远端节点的地址;
    接收所述远端节点发送的包含操作结果的操作结果报文,所述操作结果为所述远端节点执行所述操作报文所包含的所述访问资源操作所确定的。
  10. 根据权利要求9所述的方法,其特征在于,所述访问资源请求中还包含:远端节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;
    所述将操作报文发送给所述远端节点,具体包括:
    将所述操作报文发送给所述远端节点号指示的所述远端节点。
  11. 根据权利要求9或10所述的方法,其特征在于,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;
    所述方法还包括:建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;
    所述确定与本地节点的地址对应的远端节点的地址,包括:
    根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理地址;
    根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟地址。
  12. 根据权利要求11所述的方法,其特征在于,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;
    所述确定与本地节点的地址对应的远端节点的地址,具体包括:
    根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;
    根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟页号;
    根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
  13. 根据权利要求9-12任一所述的方法,其特征在于,所述访问资源操作包括以下至少一种:
    处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
  14. 根据权利要求11所述的方法,其特征在于,所述方法还包括:将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
  15. 一种访问远端资源的方法,其特征在于,包括:
    接收本地节点发送的操作报文,所述操作报文包含访问资源操作及远端节点的地址;
    执行所述访问资源操作以得到操作结果,并将包含所述操作结果的操作结果报文发送给所述本地节点。
  16. 根据权利要求15所述的方法,其特征在于,所述远端节点的地址为所述远端节点的虚拟地址,所述方法还包括:建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;
    所述执行所述资源操作时,具体包括:
    根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;
    根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
  17. 根据权利要求15或16所述的方法,其特征在于,所述访问资源操作包括以下至少一种:
    处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
  18. 根据权利要求16所述的方法,其特征在于,所述方法还包括:
    将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
  19. 一种本地节点,其特征在于,所述本地节点包括:
    操作生成单元,用于确定访问资源请求,所述访问资源请求包含访问资源操作以及所述访问资源操作所指向的本地节点的地址;
    地址确定单元,用于确定与所述本地节点的地址对应的远端节点的地址;
    操作发送单元,用于将操作报文发送给所述远端节点,所述操作报文包含所述访问资源操作以及所述远端节点的地址;
    结果确定单元,用于接收所述远端节点发送的包含操作结果的操作结果报文,所述操作结果为所述远端节点执行所述操作报文所包含的所述访问资源操作所确定的。
  20. 根据权利要求19所述的本地节点,其特征在于,所述访问资源请求中还包含:远端 节点号,所述远端节点号用于指示所述远端节点的地址所属的远端节点;
    所述操作发送单元,具体用于:
    将所述操作报文发送给所述远端节点号指示的所述远端节点。
  21. 根据权利要求19或20所述的本地节点,其特征在于,所述本地节点的地址为所述本地节点的虚拟地址,所述远端节点的地址为所述远端节点的虚拟地址;
    所述本地节点还包括本地映射确定单元,所述本地映射确定单元,用于建立所述本地节点的虚拟地址与所述本地节点的物理地址的第一映射关系,以及建立所述本地节点的物理地址与所述远端节点的虚拟地址的第二映射关系;
    所述地址确定单元,还用于根据所述第一映射关系确定与所述本地节点的虚拟地址对应的所述本地节点的物理地址;
    根据所述第二映射关系确定与所述本地节点的物理地址对应的所述远端节点的虚拟地址。
  22. 根据权利要求21所述的本地节点,其特征在于,所述本地节点的虚拟地址包含:所述本地节点的虚拟页号以及偏移量,所述远端节点的虚拟地址包含所述远端节点的虚拟页号以及偏移量,所述本地节点的虚拟地址包含的偏移量与所述远端节点的虚拟地址包含的偏移量相同;
    所述地址确定单元,还用于根据所述第一映射关系确定与所述本地节点的虚拟页号对应的所述本地节点的物理页号;
    根据所述第二映射关系确定与所述本地节点的物理页号对应的所述远端节点的虚拟页号;
    根据所述本地节点的地址中的偏移量以及所述远端节点的虚拟页号,确定所述远端节点的虚拟地址。
  23. 根据权利要求19-22任一所述的本地节点,其特征在于,所述访问资源操作包括以下至少一种:
    处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
  24. 根据权利要求21所述的本地节点,其特征在于,所述本地节点还包括:本地映射存储单元,所述本地映射存储单元,用于将所述第一映射关系存储在第一页表中,将所述第二映射关系存储在第二页表中,所述第一页表以及所述第二页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
  25. 一种远端节点,其特征在于,所述远端节点包括:
    操作接收单元,用于接收本地节点发送的操作报文,所述操作报文包含访问资源操作及远端节点的地址;
    执行发送单元,用于执行所述访问资源操作以得到操作结果,并将包含所述操作结果的操作结果报文发送给所述本地节点。
  26. 根据权利要求25所述的远端节点,其特征在于,所述远端节点的地址为所述远端节点的虚拟地址,所述远端节点还包括远端映射确定单元,所述远端映射确定单元,用于建立所述远端节点的虚拟地址与所述远端节点的物理地址的第三映射关系;
    所述执行发送单元,用于根据所述第三映射关系确定与所述远端节点的虚拟地址对应的所述远端节点的物理地址;
    根据所述远端节点的物理地址,执行所述操作报文所包含的所述访问资源操作。
  27. 根据权利要求25或26所述的远端节点,其特征在于,所述访问资源操作包括以下至少一种:
    处理器读操作load、处理器写操作store、处理器原子操作atomic以及直接数据存取DMA访问。
  28. 根据权利要求26所述的远端节点,其特征在于,所述远端节点还包括:远端映射存储单元,所述远端映射存储单元,用于将所述第三映射关系存储在第三页表中,所述第三页表的存储格式包括以下任意一种:页表条目PTE以及页表指针PTP。
CN202180091402.5A 2021-02-09 2021-02-09 一种访问远端资源的***及方法 Pending CN116745754A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/076161 WO2022170452A1 (zh) 2021-02-09 2021-02-09 一种访问远端资源的***及方法

Publications (1)

Publication Number Publication Date
CN116745754A true CN116745754A (zh) 2023-09-12

Family

ID=82838108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180091402.5A Pending CN116745754A (zh) 2021-02-09 2021-02-09 一种访问远端资源的***及方法

Country Status (4)

Country Link
US (1) US20230388371A1 (zh)
EP (1) EP4276638A4 (zh)
CN (1) CN116745754A (zh)
WO (1) WO2022170452A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230114577A (ko) * 2022-01-25 2023-08-01 삼성전자주식회사 데이터 처리 장치 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887134A (en) * 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations
US20090089537A1 (en) * 2007-09-28 2009-04-02 Sun Microsystems, Inc. Apparatus and method for memory address translation across multiple nodes
CN105450588B (zh) * 2014-07-31 2019-02-12 华为技术有限公司 一种基于rdma的数据传输方法及rdma网卡
US10318475B2 (en) * 2015-06-24 2019-06-11 Oracle International Corporation System and method for persistence of application data using replication over remote direct memory access
US10642780B2 (en) * 2016-03-07 2020-05-05 Mellanox Technologies, Ltd. Atomic access to object pool over RDMA transport network
US10649684B2 (en) * 2017-03-16 2020-05-12 Arm Limited Memory access monitoring
US10977193B2 (en) * 2018-08-17 2021-04-13 Oracle International Corporation Remote direct memory operations (RDMOs) for transactional processing systems
US10769076B2 (en) * 2018-11-21 2020-09-08 Nvidia Corporation Distributed address translation in a multi-node interconnect fabric

Also Published As

Publication number Publication date
EP4276638A4 (en) 2024-02-21
US20230388371A1 (en) 2023-11-30
WO2022170452A1 (zh) 2022-08-18
EP4276638A1 (en) 2023-11-15

Similar Documents

Publication Publication Date Title
US10152433B2 (en) Inline PCI-IOV adapter
US9298642B2 (en) Sharing address translation between CPU and peripheral devices
US8549231B2 (en) Performing high granularity prefetch from remote memory into a cache on a device without change in address
US20160077999A1 (en) Remote Memory Ring Buffers in a Cluster of Data Processing Nodes
US9280290B2 (en) Method for steering DMA write requests to cache memory
US7275123B2 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment
US7844752B2 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
US10983833B2 (en) Virtualized and synchronous access to hardware accelerators
CN113760560A (zh) 一种进程间通信方法以及进程间通信装置
US9274860B2 (en) Multi-processor device and inter-process communication method thereof
US7451259B2 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment
US10296256B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
US20230388371A1 (en) System and method for accessing remote resource
KR20180041037A (ko) 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
WO2020247240A1 (en) Extended memory interface
CN106325377B (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
US8279886B2 (en) Dataport and methods thereof
CN116601616A (zh) 一种数据处理装置、方法及相关设备
WO2021061374A1 (en) Multi-core processor and inter-core data forwarding method
CN113490915A (zh) 扩展存储器操作
CN117389685B (zh) 虚拟机热迁移标脏方法及其装置、后端设备、芯片
US20230088939A1 (en) Processing system that increases the capacity of a very fast memory
US20240202118A1 (en) Mechanism to enable out-of-order packet processing in a datatype engine
CN115297169A (zh) 数据处理方法、装置、电子设备及介质
CN114258534A (zh) 阶层式存储器***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination