[发明专利]内存映射方法和内存映射模块有效
申请号: | 201210037745.6 | 申请日: | 2012-02-17 |
公开(公告)号: | CN103257936A | 公开(公告)日: | 2013-08-21 |
发明(设计)人: | 路尧;张晓平;郭琦 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F12/10 | 分类号: | G06F12/10 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 安之斐 |
地址: | 100085*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 映射 方法 模块 | ||
技术领域
本发明涉及内存映射方法和内存映射模块。
背景技术
在当前的计算机设备中,例如,在进行PC平台上的虚拟系统开发时,映射物理内存页是跨进程、跨虚拟域的一种相对高效的数据共享方式。例如,对于Linux虚拟机Xen的域间数据传递方案来说,即时采用grant table(授权表)来进行各个域之间的数据传递,其中,授权表通过携带索引值来传递物理内存页,在进行数据传递(非拷贝)操作时只需要完成物理内存页从一个域的映射和另一个域的解映射,因此数据传递运行效率很高。
但是,在系统辅助工具开发或者虚拟系统开发中,会不时遇到在用户空间映射物理内存页的需求,其中,在日益苛刻的大数据量实时需求的应用场景下,现有的内存映射方法可能不能达到处理性能指标的需求。
这是因为在现有的应用层的物理内存映射方案中,映射模块接收到待映射的物理页框号数组,即一组物理页框号时,都会在用户态中向操作系统工作集申请对应长度的线性地址空间,并在内核态中调用内核态组件将物理页框号填入对应的页表项以完成物理内存映射。但是,由于每映射一组物理页框号都需要调用一次内核态组件完成物理页框号到页表项的填写,因此在内核态和用户态之间的切换时间成为高速系统的一大时延瓶颈。为了实现高速的内存映射,迫切需要解决这种频繁在内核态和用户态之间的切换所造成的时间延迟。
发明内容
因此,针对上述现有技术中存在的问题和需求做出本发明。
本发明实施例的目的是提供一种内存映射方法和内存映射模块,其能够通过使得在用户态中操作线性地址空间等效于在内核态操作页表项,而减少进入内核态查询页表项所对应的物理页框号的次数,从而减少在内核态和用户态之间的切换所造成的时间延迟。
根据本发明实施例的一个方面,提供了一种内存映射方法,用于将物理内存页映射到用户态中的线性地址空间,其中,通过将所述物理内存页的页框号填入所述线性地址空间对应的页表项来将物理内存页映射到线性地址空间,所述方法包括:在用户态中分配第一线性地址空间;在用户态中查询所述第一线性地址空间对应的第一页表项;在内核态中查询所述第一页表项对应的第一物理页框号;在用户态中分配对应于所述第一页表项的第二线性地址空间;在用户态中查询所述第二线性地址空间对应的第二页表项;以及在内核态中将第一物理页框号填入所述第二页表项中,以使得在用户态中操作第二线性地址空间等效于在内核态操作第一页表项。
在上述内存映射方法中,所述在用户态中查询所述第一线性地址空间对应的第一页表项的步骤具体包括:利用所述第一线性地址空间的分段索引规则计算出所述第一页表项线性地址;以及所述在用户态中查询所述第二线性地址空间对应的第二页表项的步骤具体包括:利用所述第二线性地址空间的分段索引规则计算出所述第二页表项线性地址。
在上述内存映射方法中,所述在内核态中查询所述第一页表项对应的第一物理页框号的步骤具体包括:调用系统函数查询第一页表项线性地址对应的物理页框号。
在上述内存映射方法中,所述将第一物理页框号填入所述第二页表项中的步骤之后进一步包括:当接收到新的物理页框号数组时,根据接收到的物理页框号数目在用户态第一线性地址空间中分配第三线性地址空间;在用户态中将所述新的物理页框号填入映射到所述第二线性地址空间的第一页表项中,以将新的物理内存页映射到所述第三线性地址空间中。
在上述内存映射方法中,在接收到多个物理页框号数组时,所述第一线性地址空间循环使用。
根据本发明实施例的另一方面,提供了一种内存映射模块,用于将物理内存页映射到用户态中的线性地址空间,其中,通过将所述物理内存页的页框号填入所述线性地址空间对应的页表项来将物理内存页映射到线性地址空间,所述模块包括:第一分配单元,配置为在用户态中分配第一线性地址空间;第一查询单元,配置为在用户态中查询由所述第一分配单元分配的第一线性地址空间所对应的第一页表项;第二查询单元,配置为在内核态中查询与由所述第一查询单元查询的第一页表项对应的第一物理页框号;第二分配单元,配置为在用户态中分配与由所述第一分配单元分配的第一页表项对应的第二线性地址空间;第三查询单元,配置为在用户态中查询由所述第二分配单元分配的第二线性地址空间对应的第二页表项;以及第一映射单元,配置为在内核态中将由所述第二查询单元查询的第一物理页框号填入由所述第三查询单元查询的第二页表项中,以使得在用户态中操作第二线性地址空间等效于在内核态操作第一页表项。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210037745.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:调用方法及调用系统
- 下一篇:具有多运动步态的变形搜救机器人