System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种多级页表遍历方法、装置、电子设备及存储介质制造方法及图纸_技高网

一种多级页表遍历方法、装置、电子设备及存储介质制造方法及图纸

技术编号:41230943 阅读:8 留言:0更新日期:2024-05-09 23:47
本申请涉及一种多级页表遍历方法、装置、电子设备及存储介质,属于计算机领域。该多级页表遍历方法包括:获取页表遍历请求;在页表缓存中查找是否有命中所述页表遍历请求的页表数据,其中,所述页表缓存中缓存有已遍历过的页表数据;如果有命中的页表数据,基于命中的页表数据以及所述页表遍历请求进行下一层级页表的遍历,直至遍历到最后一级页表,其中,所述下一层级页表为所述命中的页表数据对应的页表层级的下一级页表。本申请能够提高页表的遍历效率,提高地址转换的效率。

【技术实现步骤摘要】

本申请属于计算机领域,具体涉及一种多级页表遍历方法、装置、电子设备及存储介质


技术介绍

1、随着计算系统的计算性能大幅提高,以及对大数据应用需求的不断扩展,大内存管理是现代高性能计算系统的必备,64-bit的内存寻址空间已经成为常态。大内存带来的一个问题就是:页表本身需要占用大量的存储空间。为解决这个问题,会引入多级页表,多级页表由两个及两个以上层次的分页表组成,也称为分层分页。级别1(level 1)页表的条目是指向级别 2(level 2)页表的指针,级别2页表的条目是指向级别 3(level 3)页表的指针,依次类推。最后一级页表存储的是实际的页表信息。引入多级页表的原因是避免把全部页表全部保存在内存中,不需要的页表就不保留。虚拟内存的页表可以多达4~6级。比如当今流行的48bit的虚拟地址的页表是4级页表,大致分配如下:地址[47:38]为第一级页表的地址偏移量,地址[37:29]为第二级页表的地址偏移量,地址[28:21]为第三级页表的地址偏移量,地址[20:12]为第四级页表(最后一级页表)的地址偏移量。一个48-bit地址的页表遍历需要4个地址加法操作和4个读访存操作。读访存操作非常耗时间,每个读访存操作都可能需要几百个时钟周期(cycles),这样就导致整个页表的遍历会非常缓慢。


技术实现思路

1、鉴于此,本申请的目的在于提供一种多级页表遍历方法、装置、电子设备及存储介质,以提高页表遍历的效率。

2、本申请的实施例是这样实现的:

3、第一方面,本申请实施例提供了一种多级页表遍历方法,包括:获取页表遍历请求;在页表缓存中查找是否有命中所述页表遍历请求的页表数据,其中,所述页表缓存中缓存有已遍历过的页表数据;如果有命中的页表数据,基于命中的页表数据以及所述页表遍历请求进行下一层级页表的遍历,直至遍历到最后一级页表,其中,所述下一层级页表为所述命中的页表数据对应的页表层级的下一级页表。

4、在上述的实施方式中,在获取到页表遍历请求后,为了提高页表的遍历效率,不再是直接基于页表遍历请求进行多级页表遍历,而是先在页表缓存中查找是否有命中页表遍历请求的页表数据,如果有命中的页表数据,基于命中的页表数据以及页表遍历请求进行下一层级页表的遍历。通过把已经遍历过的页表的中间结果给存储下来,供后面的页表遍历查找,从而达到加速的目的,这样不同的页表遍历过程中的相同部分就不需要经过重复且费时间的操作,从而能够提高页表的遍历效率,提高地址转换的效率。

5、结合第一方面实施例的一种可能的实施方式,在页表缓存中查找是否有命中所述页表遍历请求的页表数据,包括:分别获取所述页表遍历请求中的每一级页表的地址偏移量;根据获取到的地址偏移量,得到每一级页表对应的tag地址,其中,第i级页表对应的tag地址包括第1级页表至第i级页表的地址偏移量,i依次取1至n,n为最大页表层级;根据每一级页表对应的tag地址,在页表缓存中查找是否有命中对应tag地址的页表数据。

6、在上述实施方式中,通过获取页表遍历请求中的每一级页表的地址偏移量,进而获取每一级页表对应的tag地址,之后基于每一级页表对应的tag地址,在页表缓存中查找是否有命中对应tag地址的页表数据,这样可以快速准确判断是否有命中页表遍历请求的页表数据。

7、结合第一方面实施例的一种可能的实施方式,根据每一级页表对应的tag地址,在页表缓存中查找是否有命中对应tag地址的页表数据,包括:采用并行查找法,分别在页表缓存中查找是否有命中每一级页表对应的tag地址的页表数据。

8、在上述的实施方式中,采用并行的查找法,可以快速查找出是否有命中每一级页表对应的tag地址的页表数据,能够缩短查找时间。

9、结合第一方面实施例的一种可能的实施方式,所述页表数据包括:页表层级、tag地址和对应的数据;基于命中的页表数据以及所述页表遍历请求进行下一层级页表的遍历,包括:如果命中多个页表数据,获取命中的多个页表数据中页表层级最大的页表数据,基于页表层级最大的页表数据以及所述页表遍历请求进行下一层级页表的遍历。

10、在上述的实施方式中,如果命中多个页表数据,会选择所有命中的页表数据中级别(level)最高的那一个页表数据来加速页表遍历,因为命中的级别(level)越高,表示所剩下的遍历步骤就越少。

11、结合第一方面实施例的一种可能的实施方式,根据每一级页表对应的tag地址,在页表缓存中查找是否有命中对应tag地址的页表数据,包括:采用串行查找法,在页表缓存中查找是否有命中每一级页表对应的tag地址的页表数据。

12、在上述的实施方式中,采用串行查找法在页表缓存中查找是否有命中每一级页表对应的tag地址的页表数据,这样可以降低对页表缓存的设计要求,增加了方案的适用性。

13、结合第一方面实施例的一种可能的实施方式,采用串行查找法,在页表缓存中查找是否有命中每一级页表对应的tag地址的页表数据,包括:采用倒序串行查找法,在页表缓存中查找是否有命中每一级页表对应的tag地址的页表数据。

14、在上述的实施方式中,采用倒序串行查找法在页表缓存中查找是否有命中每一级页表对应的tag地址的页表数据,相比顺序串行查找法,这样可以进一步缩短查找时间,从而加速页表查找的效率。

15、结合第一方面实施例的一种可能的实施方式,所述方法还包括:如果没有命中的页表数据,基于所述页表遍历请求进行多级页表遍历,并将每一级页表遍历的页表数据存储至所述页表缓存中。

16、在上述的实施方式中,如果没有命中的页表数据,则直接基于页表遍历请求进行多级页表遍历,并将每一级页表遍历的页表数据存储至页表缓存中,以供后面的页表遍历查找,从而达到加速的目的。

17、第二方面,本申请实施例还提供了一种多级页表遍历装置,包括:获取模块、查找模块以及遍历模块;获取模块,用于获取页表遍历请求;查找模块,用于在页表缓存中查找是否有命中所述页表遍历请求的页表数据,其中,所述页表缓存中缓存有已遍历过的页表数据;遍历模块,用于如果有命中的页表数据,基于命中的页表数据以及所述页表遍历请求进行下一层级页表的遍历,直至遍历到最后一级页表,其中,所述下一层级页表为所述命中的页表数据对应的页表层级的下一级页表。

18、第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行如上述第一方面实施例和/或结合上述第一方面实施例的任一种可能的实施方式提供的多级页表遍历方法。

19、第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述第一方面实施例和/或结合上述第一方面实施例的任一种可能的实施方式提供的多级页表遍历方法。

20、上述第二方面~第四方面实施例的有益效果与前述第一方面本文档来自技高网...

【技术保护点】

1.一种多级页表遍历方法,其特征在于,包括:

2.根据权利要求1所述的多级页表遍历方法,其特征在于,在页表缓存中查找是否有命中所述页表遍历请求的页表数据,包括:

3.根据权利要求2所述的多级页表遍历方法,其特征在于,根据每一级页表对应的TAG地址,在页表缓存中查找是否有命中对应TAG地址的页表数据,包括:

4.根据权利要求3所述的多级页表遍历方法,其特征在于,所述页表数据包括:页表层级、TAG地址和对应的数据;基于命中的页表数据以及所述页表遍历请求进行下一层级页表的遍历,包括:

5.根据权利要求3所述的多级页表遍历方法,其特征在于,根据每一级页表对应的TAG地址,在页表缓存中查找是否有命中对应TAG地址的页表数据,包括:

6.根据权利要求5所述的多级页表遍历方法,其特征在于,采用串行查找法,在页表缓存中查找是否有命中每一级页表对应的TAG地址的页表数据,包括:

7.根据权利要求1所述的多级页表遍历方法,其特征在于,所述方法还包括:

8.一种多级页表遍历装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

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

...

【技术特征摘要】

1.一种多级页表遍历方法,其特征在于,包括:

2.根据权利要求1所述的多级页表遍历方法,其特征在于,在页表缓存中查找是否有命中所述页表遍历请求的页表数据,包括:

3.根据权利要求2所述的多级页表遍历方法,其特征在于,根据每一级页表对应的tag地址,在页表缓存中查找是否有命中对应tag地址的页表数据,包括:

4.根据权利要求3所述的多级页表遍历方法,其特征在于,所述页表数据包括:页表层级、tag地址和对应的数据;基于命中的页表数据以及所述页表遍历请求进行下一层级页表的遍历,包括:

5.根据权利要求3所述的多级页表遍历方法,其特征在于,...

【专利技术属性】
技术研发人员:苏叶华
申请(专利权)人:上海登临科技有限公司
类型:发明
国别省市:

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

1