System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种虚拟化嵌套翻译方法、系统及可读介质技术方案_技高网

一种虚拟化嵌套翻译方法、系统及可读介质技术方案

技术编号:43876466 阅读:6 留言:0更新日期:2024-12-31 18:59
本发明专利技术涉及一种虚拟化嵌套翻译方法、系统及可读介质,包括接收虚拟地址翻译请求,判断虚拟地址翻译请求的地址翻译模式,确定虚拟地址类型;根据确定的虚拟地址类型,选择相应的翻译缓存;在所选的翻译缓存下,采用并行或串行查找模式在多级翻译缓存中执行地址翻译,得到查找结果;判断查找结果是否命中页表的叶子项;如果查找结果命中叶子项,返回对应的物理地址完成翻译;如果未命中叶子项,进行页表遍历以获取物理地址。该方法能够提高虚拟化嵌套翻译的速度,减少单一技术条件下翻译缓存冗余虚拟地址和翻译路径缓存冗余的PTE,改善内存虚拟化或外设虚拟化中虚拟地址到物理地址的翻译延时。

【技术实现步骤摘要】

本专利技术涉及处理器设计领域,具体是涉及到一种虚拟化嵌套翻译方法、系统及可读介质


技术介绍

1、随着计算机系统对内存容量需求的不断增长,分页技术成为现代处理器架构中不可或缺的技术,它通过虚拟化物理内存简化了内存管理,允许程序使用的内存范围超出实际运行的物理内存容量。许多处理器架构引入了内存管理单元(mmu),这是一个负责将虚拟地址转换为物理地址的硬件组件。这些地址转换关系被存储在一种被称作多级单向树结构的页表中,而页表翻译包括将虚拟地址分解为多级页表索引,用对应级别的页表索引号和基地址逐级查找页表项,最终计算出物理地址。

2、然而,在支持虚拟化的系统中,由于客户机操作系统(guest os)的物理内存视图与主机操作系统(host os)的物理内存视图不同,虚拟化场景下,还需要进行第二级地址转换,将客户机物理地址(guest physical address, gpa)转换为主机物理地址(hostphysical address, hpa)。通过嵌套分页(nested paging)技术,使guest os控制其自身的页表,而不需要虚拟机管理程序(hypervisor)的干预,从而提高虚拟化场景下的内存管理效率,但也增加了访存次数,如果客户机页表有m级,主机页表有n级,那么嵌套翻译最多需要mn+m+n次内存访问。通常,为了提高地址翻译速度,mmu可以将已翻译的地址映射存储在tlb(translation look-aside buffer,翻译后援缓冲器)中,tlb命中可以避免进行页表遍历。但是,由于cpu的内存容量不断增大,时间局部性和空间局部性较差的应用程序越来越多,导致仅缓存虚拟地址到物理地址端到端映射的tlb的命中率较低,tlb未命中的惩罚进一步增大。

3、现代处理器通过页表缓存(page table cache)、翻译缓存(translation cache)或翻译路径缓存(translation path cache)缓存页表项(page table entry,pte),用于减少tlb未命中遍历页表的内存次数,降低tlb未命中的惩罚。这些缓存可以缓存不同页表级别的pte,page table cache使用pte在内存中的物理地址进行标记,来自不同级别的pte,被混合存储在同一个缓存中,缓存行都通过物理地址进行索引,该方案地址翻译需按页表结构串行查询,完成一次嵌套翻译花费的时间相对较长。而translation cache使用虚拟地址的部分内容进行标记,且不同长度虚拟地址标记的缓存可以分离存储,因此,使用这种标记方案,所有的查找都可以彼此独立地执行,最后,选择与虚拟地址的最长标签匹配的条目,因为它允许页表遍历跳过大多数级别的页表。translation path cache使用虚拟地址的完整内容进行标记,将每次翻译路径中遍历的所有层级pte缓存到同一个缓存行,使得单个缓存行包含完整的翻译路径。

4、当前,针对虚拟化嵌套翻译场景,page table cache由于需要按页表结构串行查询,翻译延时较大,而translation cache当页表层级较多时,缓存的标签部分会存在大量冗余的虚拟地址信息。另一方面,如果访问的虚拟地址的高位索引局部性较好而低位索引的局部性较差时,translation path cache会缓存大量高级别页表pte,导致translationpath cache的缓存行中存在大量冗余的pte信息。


技术实现思路

1、本专利技术提供了一种虚拟化嵌套翻译方法、系统及可读介质,其目的是改善虚拟化嵌套翻译场景下,地址翻译延时大且缓存的冗余信息较多的问题。

2、为实现上述目的,本专利技术第一方面提供了一种虚拟化嵌套翻译方法,包括如下步骤:

3、接收虚拟地址翻译请求,判断虚拟地址翻译请求的地址翻译模式,确定虚拟地址类型;

4、根据确定的虚拟地址类型,选择相应的翻译缓存;

5、在所选的翻译缓存下,采用并行或串行查找模式在多级翻译缓存中执行地址翻译,得到查找结果;

6、分析查找结果,判断查找结果是否命中页表的叶子项;

7、如果查找结果命中叶子项,返回对应的物理地址,完成翻译;

8、如果未命中叶子项,进行页表遍历以获取物理地址。

9、进一步的,根据以下规则确定虚拟地址类型:

10、所述地址翻译模式包括iosatp.mode模式和iohgatp.mode模式;

11、当iosatp.mode模式和iohgatp.mode模式均非纯物理模式时,确定所请求的虚拟地址类型为客户机虚拟地址,并将该请求发送至阶段一翻译缓冲单元以进行阶段一翻译;

12、当iosatp.mode模式为纯物理模式,且iohgatp.mode模式为非纯物理模式时,确定所请求的虚拟地址类型为客户机物理地址,并将该请求发送至阶段二翻译缓存仲裁单元以等待进行阶段二翻译;

13、当iosatp.mode模式为非纯物理模式,且iohgatp.mode模式为纯物理模式时,确定所请求的虚拟地址类型为主机虚拟地址,并将该请求发送至阶段一翻译缓冲单元以等待进行阶段一翻译。

14、进一步的,多级翻译缓存包括:阶段一翻译缓存和阶段二翻译缓存,其中,阶段一翻译缓存包括第三级缓存、第二级缓存、以及由第一级缓存和第零级缓存合并的缓存单元,所述第三级缓存用于缓存第三级页表项,第二级缓存用于缓存第二级页表项,所述合并的缓存单元用于同时缓存第一级页表项和第零级页表项。

15、进一步的,在并行查找模式下,阶段一翻译缓存的第三级缓存、第二级缓存、合并的缓存单元同时进行查找,并将查找结果发送给阶段一翻译结果选择单元。

16、进一步的,在多级翻译缓存查找结果中,如果查找结果命中页表的叶子项,则进一步判断当前翻译请求是否涉及嵌套翻译:

17、若当前翻译请求不涉及嵌套翻译,则直接完成最终翻译并返回物理地址;

18、若当前翻译请求涉及嵌套翻译,则继续向下一翻译阶段发起查找请求,以进行进一步的地址翻译;

19、如果查找结果未命中页表的叶子项,则通过页表遍历单元访问内存完成页表遍历,并将遍历结果回填到相应的翻译缓存中。

20、进一步的,所述页表遍历单元访问内存完成页表遍历后,根据页表遍历结果向翻译缓存回填单元发起回填请求,由回填单元选择需要回填的缓存级别。

21、进一步的,翻译缓存回填单元根据页表遍历单元完成的级别,选择将结果回填到阶段一翻译缓存或阶段二翻译缓存的第三级缓存、第二级缓存或合并的缓存单元中。

22、进一步的,所述方法还包括在地址翻译模式时,对翻译缓存中的过时信息进行无效操作,所述无效操作是由翻译缓存无效单元接收无效请求并执行,将无效请求发送到相应的缓存级别以清除过时的页表信息。

23、如果地址翻译模式是客户机虚拟地址或主机虚拟地址,则选择查找阶段一翻译缓存;

24、判本文档来自技高网...

【技术保护点】

1.一种虚拟化嵌套翻译方法,其特征在于,包括如下步骤:

2.如权利要求1所述的虚拟化嵌套翻译方法,其特征在于,根据以下规则确定虚拟地址类型:

3.如权利要求1所述的虚拟化嵌套翻译方法,其特征在于,多级翻译缓存包括:阶段一翻译缓存和阶段二翻译缓存,其中,阶段一翻译缓存包括第三级缓存、第二级缓存、以及由第一级缓存和第零级缓存合并的缓存单元,所述第三级缓存用于缓存第三级页表项,第二级缓存用于缓存第二级页表项,所述合并的缓存单元用于同时缓存第一级页表项和第零级页表项。

4.如权利要求3所述的虚拟化嵌套翻译方法,其特征在于,在并行查找模式下,阶段一翻译缓存的第三级缓存、第二级缓存、合并的缓存单元同时进行查找,并将查找结果发送给阶段一翻译结果选择单元。

5.如权利要求4所述的虚拟化嵌套翻译方法,其特征在于,在多级翻译缓存查找结果中,如果查找结果命中页表的叶子项,则进一步判断当前翻译请求是否涉及嵌套翻译:

6.如权利要求5所述的虚拟化嵌套翻译方法,其特征在于,所述页表遍历单元访问内存完成页表遍历后,根据页表遍历结果向翻译缓存回填单元发起回填请求,由回填单元选择需要回填的缓存级别。

7.如权利要求6所述的虚拟化嵌套翻译方法,其特征在于,翻译缓存回填单元根据页表遍历单元完成的级别,选择将结果回填到阶段一翻译缓存或阶段二翻译缓存的第三级缓存、第二级缓存或合并的缓存单元中。

8.如权利要求1所述的虚拟化嵌套翻译方法,其特征在于,所述方法还包括在地址翻译模式时,对翻译缓存中的过时信息进行无效操作,所述无效操作是由翻译缓存无效单元接收无效请求并执行,将无效请求发送到相应的缓存级别以清除过时的页表信息。

9.一种虚拟化嵌套翻译系统,其特征在于,包括如下模块:

10.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1-8任一项所述的方法。

...

【技术特征摘要】

1.一种虚拟化嵌套翻译方法,其特征在于,包括如下步骤:

2.如权利要求1所述的虚拟化嵌套翻译方法,其特征在于,根据以下规则确定虚拟地址类型:

3.如权利要求1所述的虚拟化嵌套翻译方法,其特征在于,多级翻译缓存包括:阶段一翻译缓存和阶段二翻译缓存,其中,阶段一翻译缓存包括第三级缓存、第二级缓存、以及由第一级缓存和第零级缓存合并的缓存单元,所述第三级缓存用于缓存第三级页表项,第二级缓存用于缓存第二级页表项,所述合并的缓存单元用于同时缓存第一级页表项和第零级页表项。

4.如权利要求3所述的虚拟化嵌套翻译方法,其特征在于,在并行查找模式下,阶段一翻译缓存的第三级缓存、第二级缓存、合并的缓存单元同时进行查找,并将查找结果发送给阶段一翻译结果选择单元。

5.如权利要求4所述的虚拟化嵌套翻译方法,其特征在于,在多级翻译缓存查找结果中,如果查找结果命中页表的叶子项,则进一步判断当前翻译请求是否涉及嵌套翻译:

<...

【专利技术属性】
技术研发人员:王傲蒋江谢启华施军
申请(专利权)人:超睿科技上海有限公司
类型:发明
国别省市:

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

1