一种用于虚拟共享存储系统的远程取页方法及网络接口卡技术方案

技术编号:2857522 阅读:234 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种用于虚拟共享存储系统的远程取页方法及网络接口卡。该方法将网络接口卡上的存储器区域映射到用户进程的虚地址空间;源节点的用户进程直接访问其网络接口卡,产生并向目的节点的网络接口卡发送远程取页请求消息;目的节点的网络接口卡直接读取目的节点中的所需页;目的节点的网络接口卡向源节点的网络接口卡返回远程取页应答消息;源节点的网络接口卡直接将所述页写到源节点的内存区域。该网络接口卡增加了帧头分析逻辑、RDMA操作逻辑和虚实地址转换逻辑。在本发明专利技术中,用网络接口卡上的硬件处理大部分的协议开销,用户进程和网络接口卡可以双向直接访问,可以在不打断远程节点CPU的当前工作的情况下实现远程取页操作。

【技术实现步骤摘要】

本专利技术涉及计算机系统,更具体地说,涉及一种用于虚拟共享存储系统的远程取页方法。
技术介绍
由于共享存储系统(下同)的易编程性,研究人员考虑在用消息传递进行通信的多台机器上实现共享存储的编程模式,这便是虚拟共享存储。虚拟共享存储同时具有易编程性而且由于大部分虚拟共享存储系统在机群上实现,具备良好的性能价格比。虚拟共享存储系统多以页为共享粒度。远程取页指源节点发生缺页时产生缺页信号,当信号处理程序发现共享的虚拟地址不在源节点命中时产生远程取页请求,目的节点接收到取页请求后根据虚拟地址查找对应的物理地址,然后将物理地址对应的页发送回源节点。传统的虚拟共享存储系统关于远程取页的做法是源节点发现缺页中断后向目的节点的相应进程(而不是网络接口卡硬件)发送取页请求的消息,目的节点的CPU的正常工作将被取页请求打断,把所要读取的将页面内容以消息形式封装并发送消息,源节点接收返回的读页面返回消息,源节点的CPU再次被打断来解封消息并将消息体(页面内容)送到对应的页面。如上所述,传统的远程取页方法需要对远程主机产生中断,远程主机接收中断后停止正在进行的计算进行中断服务,使计算和通信不能重叠,降低了并行计算的效率。同时,将页的内容以消息的形式进行封装和拷贝,增加了额外的开销。因此需要有一种方法,能够减小远程取页开销,使计算和通信重叠。
技术实现思路
本专利技术的目的之一在于提供一种远程取页方法,减小远程取页的协议处理开销;本专利技术的目的之二在于提供一种远程取页方法,在进行远程取页时不打断远程主机的计算,获得计算与通信的重叠;本专利技术的目的之三在于提供一种远程取页方法,使远程取页能快速返回。为了实现上述目的,本专利技术提供一种用于虚拟共享存储系统的远程取页方法,所述虚拟共享存储系统包括用网络接口卡和交换机互联的源节点和目的节点;包括步骤1)将网络接口卡上的存储器区域映射到用户进程的虚地址空间;2)源节点的用户进程直接访问其网络接口卡,产生并向目的节点的网络接口卡发送远程取页请求消息;3)目的节点的网络接口卡接收来自源节点的远程取页请求消息;4)目的节点的网络接口卡直接读取目的节点中的所需页;5)目的节点的网络接口卡向源节点的网络接口卡返回远程取页应答消息,该消息中包含步骤4)中读取的页;6)源节点的网络接口卡接收所述远程取页应答消息;7)源节点的网络接口卡直接将所述页写到源节点的内存区域。为了实施上述方法,本专利技术还提供一种用于虚拟共享存储系统的网络接口卡,包括PCI接口控制器、消息传递操作逻辑、寄存器控制逻辑、发送FIFO和接收FIFO,与发送FIFO连接的发送逻辑和发送驱动,与接收FIFO连接的接收逻辑和接收驱动;还包括帧头分析逻辑,用于分析远程取页请求消息和远程取页应答消息的帧头;RDMA操作逻辑,用于控制对内存读写操作,以便将页面从内存中直接读取或着写入;其中,RDMA是远程内存直接访问(Remote Direct Memory Access)英文缩写;虚实地址转换逻辑,用于虚拟地址和物理地址的转换。本专利技术具有如下优点1)在本专利技术中,通过将网络接口卡上的存储器区域映射到用户进程的虚地址空间,使得用户进程和网络接口卡可以双向直接访问,可以在不打断远程节点CPU的当前工作的情况下实现取页操作。2)本专利技术用网络接口卡上的硬件处理大部分的协议开销,减少了用户进程的接收消息和解封消息等协议处理开销,提高了远程取页的效率。3)一般的DMA和RDMA操作都是直接采用物理地址,而在本专利技术中采用虚拟地址,为实现远程取页和虚拟共享存储提供了非常大的便利。附图说明图1是一个示例性的虚拟共享系统;图2是实现本专利技术的远程取页方法的网络接口卡;图3是本专利技术的远程取页方法的方法流程框图;图4是实现本专利技术远程取页方法的地址映射示意图。具体实施例方式下面结合附图和具体实施方式对本专利技术作进一步详细描述。如图1所示的一个示例性的虚拟共享系统,包括源节点10和目的节点20,它们分别具有网络接口卡30和30’,网络接口卡30和30’通过交换机40互联。在具体应用时,交换机40由Altera的FPGA芯片EP20K200EFC484-2X实现。在本专利技术中,远程取页操作主要由节点上的网络接口卡完成。网络接口卡30和30’和逻辑结构如图2所示。在图2中,网络接口卡用PCI接口控制器301与主机的PCI总线连接,帧头分析逻辑302、消息传递操作逻辑303、RDMA操作逻辑304、虚实地址转换逻辑305、控制寄存器逻辑306、接收FIFO307和发送FIFO308通过本地总线连接,发送逻辑310和发送驱动312顺序与发送FIFO308连接,接收逻辑309和接收驱动311顺序与接收FIFO307连接。其中,帧头分析逻辑302根据帧的类型而采取不同的动作;消息传递操作逻辑303负责普通的消息收发操作;RDMA操作逻辑304控制内存读写操作;虚实地址转换逻辑305用于虚拟地址和物理地址的转换,包括包括TLB(Translation Lookaside Buffer)匹配逻辑和一个虚实地址对照表;控制寄存器逻辑306寄存器的读写操作。在具体应用时,图2所示的网络接口卡的逻辑功能由Altera的FPGA芯片EP1K100FC484-1实现。图3是本专利技术的远程取页方法的流程图。如下所述在步骤101中,为了能够让用户进程直接访问网络接口卡上的存储器,需要在通信协议中通过地址映射的方法将网络接口卡(NIC)上的存储器区域映射到用户进程(User)的虚地址空间。这里的地址映射如图4所示,通过两次映射完成首先,NIC寄存器区域位于PCI空间,在基于x86体系结构的PC机上,PCI空间与主机内存物理地址空间是一致的,这一阶段的映射不需要通信协议做任何干预;第二,在本专利技术中,为了使用户进程能直接访问NIC上的这一寄存器区域,在通信协议中将NIC寄存器在物理地址空间的这部分区域再映射到用户进程的虚地址空间,这样用户进程就可以直接访问网络接口了。在步骤102中,源节点的用户进程直接访问其网络接口卡,产生并向目的节点的网络接口卡发送远程取页请求消息。具体包括如下子步骤步骤102a)源节点上的用户进程通过通信库把要读取的页在目的节点上虚拟地址、数据长度(或者说页的大小)、该页返回源节点的虚拟地址填入一个可用的描述符;步骤102b)由通信线程把已经填写完毕的描述符写到网络接口卡的寄存器上(发送一次写一个描述符);步骤102c)网络接口卡根据用户进程所写的内容来组帧,并在帧头置一类型标志,以表明该帧为远程取页请求消息,并将此帧发送至目的节点的网络接口卡。如步骤102a)所述,该远程取页请求消息的帧体内还包括要读取的页在目的节点上虚拟地址域、数据长度域、该页返回源节点的虚拟地址域。该步骤由图2所示的网络接口卡中的消息传递操作逻辑303实现。在步骤103中,目的节点的网络接口卡接收来自源节点的远程取页请求消息。目的节点从其网络接口卡的接收FIFO缓冲区中取出帧头数据并进行分析,确定是远程取页读操作,进行帧头转换——转换为返回的帧头。该步骤由图2所示的网络接口卡中的帧头分析逻辑实现。在步骤104中,目的节点的网络接口卡直接读取目的节点中的所需页。具体包括如下子步骤步骤104a)网络接口卡申请网络接口本地总线;本文档来自技高网...

【技术保护点】
一种用于虚拟共享存储系统的远程取页方法,所述虚拟共享存储系统包括用网络接口卡和交换机互联的源节点和目的节点;包括步骤:1)将网络接口卡上的存储器区域映射到用户进程的虚地址空间;2)源节点的用户进程直接访问其网络接口卡,产生并 向目的节点的网络接口卡发送远程取页请求消息;3)目的节点的网络接口卡接收来自源节点的远程取页请求消息;4)目的节点的网络接口卡直接读取目的节点中的所需页;5)目的节点的网络接口卡向源节点的网络接口卡返回远程取页应答消 息,该消息中包含步骤4)中读取的页;6)源节点的网络接口卡接收所述远程取页应答消息;7)源节点的网络接口卡直接将所述页写到源节点的内存区域。

【技术特征摘要】
1.一种用于虚拟共享存储系统的远程取页方法,所述虚拟共享存储系统包括用网络接口卡和交换机互联的源节点和目的节点;包括步骤1)将网络接口卡上的存储器区域映射到用户进程的虚地址空间;2)源节点的用户进程直接访问其网络接口卡,产生并向目的节点的网络接口卡发送远程取页请求消息;3)目的节点的网络接口卡接收来自源节点的远程取页请求消息;4)目的节点的网络接口卡直接读取目的节点中的所需页;5)目的节点的网络接口卡向源节点的网络接口卡返回远程取页应答消息,该消息中包含步骤4)中读取的页;6)源节点的网络接口卡接收所述远程取页应答消息;7)源节点的网络接口卡直接将所述页写到源节点的内存区域。2.根据权利要求1所述的用于虚拟共享存储系统的远程取页方法,其特征在于,所述远程取页请求消息包括一个消息类型标志,所述目的节点的网络接口卡在接收到该远程取页请求消息后对该类型标志进行判断;所述远程取页应答消息包括一个消息类型标志,所述源节点的网络接口卡在接收到该远程取页应答消息后对该类型标志进行判断。3.根据权利要求1所述的用于虚拟共享存储系统的远程取页方法,其特征在于,所述远程取页请求消息中包含要读取页在目的节点上的虚拟地址、数据长度和该页返回源节点的虚拟地址。4.根据权利要求4所述的用于虚拟共享存储系统的远程取页方法,其特征在于,在步骤4)中网络接口卡读取所需页时,还要进行虚实地址转换,以便将虚拟地址转换为物理地址;然后目的节点的网络接口卡将获得的物理地址所指向的页以DMA方式读取到该网络接口卡。5.根据权利要求1所述的用于虚拟共享存储系统的远程取页方法,其特征在于,所...

【专利技术属性】
技术研发人员:史岗胡明昌尹宏达胡伟武唐志敏
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利