[发明专利]一种内存保护方法、系统及网络接口控制器在审
申请号: | 201310467169.3 | 申请日: | 2013-10-09 |
公开(公告)号: | CN103488588A | 公开(公告)日: | 2014-01-01 |
发明(设计)人: | 刘小丽;曹政;安学军;张佩珩;孙凝晖 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F12/14 | 分类号: | G06F12/14 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 保护 方法 系统 网络 接口 控制器 | ||
技术领域
本发明涉及高性能用户级通信技术领域,特别涉及一种内存保护方法、系统及网络接口控制器。
背景技术
在多计算机节点系统中,节点间通过间接网络或者直接网络互连。由于计算机节点之间经常需要进行通信和数据交换,且消息传递的性能会影响通信的性能,因而灵活高效地将消息数据从一个节点的内存复制到另一个节点的内存中,能够为多计算机节点系统提供的强大的通信能力。由处理器直接处理内存数据的存取会带来巨大的处理器开销,而直接内存存取(DMA)技术能够避免处理器将处理能力浪费在简单重复的内存读写操作中,因此多计算机节点系统中各节点间通信时通常采用DMA技术(如远程直接内存存取RDMA)。
在计算机操作系统的内存管理技术中,程序通常直接使用虚拟地址(也叫线性地址)对内存进行读写操作,这些虚拟地址在运行时被转换成物理地址。由虚拟地址构成的虚拟内存空间通常划分为页,一个典型的页面大小是4KB,也有4MB甚至1GB的大页面。计算机中的内存管理单元(MMU)使用页表(page table)记录应用程序的虚拟地址到物理地址的映射,并在程序运行时进行转换。
传统的DMA方式首先要将DMA操作的虚拟地址通过MMU转成物理地址,然后应用程序再向I/O设备发起DMA请求,告知要通过I/O设备发送的数据的物理地址或者I/O设备接收到的数据可存储的物理地址。然而,这样做可能存在应用程序误操作或者恶意操作,例如发起一个对不允许访问的内存地址的访问,从而引起不良后果;同时,虚拟地址转换成物理地址是一个处理器参与的过程,增加了I/O操作的延迟,影响了I/O性能。
发明内容
针对现有技术中存在的问题,本发明提供一种内存保护方法、系统和网络接口控制器。
根据本发明的一个实施例,提供一种内存保护方法,所述方法包括:
步骤1)、由可信实体在应用程序发送的访存指令中插入KEY,所述KEY与分配给该应用程序的虚拟内存空间相对应;
步骤2)、由网络接口控制器参照内存保护表判断所述访存指令是否具有访存权限,以决定是否允许访存指令的执行;所述内存保护表中的每个表项描述应用程序的KEY与分配给该应用程序的虚拟内存空间的映射。
在一个实施例中,步骤1)之前还包括:
步骤0)、在检测到应用程序申请注册虚拟内存空间时,由系统为该应用程序注册虚拟内存空间,由可信实体为该应用程序分配与该虚拟内存空间相对应的KEY,并且将分配给该应用程序的虚拟内存空间信息写入内存保护表和虚实地址映射表中;其中所述虚实地址映射表描述虚拟页面到物理页框的页面映射。
在进一步的实施例中,步骤0)之前还包括:构建内存保护表和虚实地址映射表。
在进一步的实施例中,步骤0)包括:
步骤i)、应用程序申请注册虚拟内存空间,向系统输入描述该虚拟内存空间相关属性的参数,包括但不限于其起始虚拟地址、大小和访问权限;
步骤ii)、检测到所述应用程序申请注册虚拟内存空间,由系统为该应用程序注册虚拟内存空间,由可信实体为该应用程序分配与该虚拟内存空间相对应的KEY;
步骤iii)、将该虚拟内存空间所占页面和物理页框的映射写入所述虚实地址映射表,将记录该虚拟内存空间的虚实地址映射的第一个表项的物理地址作为该虚拟内存空间对应虚实地址映射的起始物理地址,连同该虚拟内存空间的起始地址、大小和访问权限写入所述内存保护表中与分配的KEY值相对应的表项里。
在一个实施例中,步骤2)之前还包括:将最近查询过的内存保护表表项及虚实地址映射表表项分别存储到所述网络接口控制器中的内存保护表cache和虚实地址映射表cache。
在进一步的实施例中,步骤2)包括:
步骤21)、根据访存指令中的KEY查询所述内存保护表cache,如果所述内存保护表cache不存在有效的匹配表项,则执行步骤22),否则执行步骤23);
步骤22)、根据所述内存保护表起始物理地址和访存指令中KEY指示的偏移地址查询所述内存保护表中对应的表项,如果该表项的状态标志位指示有效,则将查询得到的表项写入所述内存保护表cache并且执行步骤23),否则结束并返回一个非法访问的指示;
步骤23)、如果访存指令要访问的虚拟内存空间在查询得到的表项的虚拟内存空间范围之内,并且访问类型与查询得到的虚拟内存空间的访问权限匹配,则进行虚实地址转换;否则结束并返回一个非法访问的指示。
在一个实施例中,在步骤23)中,进行虚实地址转换包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310467169.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据交互传输方法、系统及显示器
- 下一篇:写高速缓冲存储器的方法及装置