CN104516826A - 一种虚拟大页面与物理大页面的对应方法及装置 - Google Patents

一种虚拟大页面与物理大页面的对应方法及装置 Download PDF

Info

Publication number
CN104516826A
CN104516826A CN201310462565.7A CN201310462565A CN104516826A CN 104516826 A CN104516826 A CN 104516826A CN 201310462565 A CN201310462565 A CN 201310462565A CN 104516826 A CN104516826 A CN 104516826A
Authority
CN
China
Prior art keywords
large page
page
virtual
physics
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310462565.7A
Other languages
English (en)
Other versions
CN104516826B (zh
Inventor
陈荔城
崔泽汉
王亚楠
陈明宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310462565.7A priority Critical patent/CN104516826B/zh
Priority to PCT/CN2014/087162 priority patent/WO2015043445A1/zh
Publication of CN104516826A publication Critical patent/CN104516826A/zh
Application granted granted Critical
Publication of CN104516826B publication Critical patent/CN104516826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Abstract

本发明公开了一种虚拟大页面与物理大页面的对应方法及装置,涉及计算机应用领域,将虚拟大页面对应到多个离散的物理大页面上,从而使得虚拟大页面能够占用指定的cache set,降低虚拟大页面之间的cache冲突。本发明的具体实施例包括:获取虚拟大页面的颜色配置信息,并根据该虚拟大页面的颜色配置信息获取该虚拟大页面与多个物理大页面的对应关系,其中,颜色配置信息包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数。本发明技术方案主要应用于虚拟大页面与物理大页面的对应流程中。

Description

一种虚拟大页面与物理大页面的对应方法及装置
技术领域
本发明涉及计算机应用领域,尤其涉及一种虚拟大页面与物理大页面的对应方法及装置。
背景技术
大页面(Hugepage或Hugetlb)技术可实现将连续的多个虚拟内存空间页面映射到连续的多个物理内存空间页面,从而使这些物理内存空间页面组成一个大页面,每个大页面在转址旁路缓存(Translation Lookaside Buffer,TLB)中只需占用1个TLB项,进而在不增加TLB项数的情况下,极大提高TLB可覆盖的地址范围,有效降低TLB缺失(Miss)个数,提高了应用程序及系统的性能。在实际应用中,将虚拟地址连续的多个虚拟页面组成的大页面称为虚拟大页面,而这些虚拟页面通过TLB表项,映射到与之对应个数的物理地址连续的多个物理页面上,这些连续的物理页面组成的大页面称为物理大页面。在操作系统中,物理页面与缓存器cache中的缓存组cache set存在固定的对应关系。并且每一个cache set控制一种颜色,当存在多个虚拟大页面时,这些虚拟大页面对应的物理大页面会共享cache,这样就会出现cache冲突。比如,对于2MB的物理大页面,该物理大页面将占用连续的512个页面颜色,刚好是一个颜色周期,这就意味着,每个2MB的物理大页面都将占用全部可用的页面颜色,这样每个2MB的物理大页面就会共享cache,从而在访问物理大页面时,就是出现cache冲突问题。
发明内容
本发明的实施例提供一种虚拟大页面与物理大页面的对应方法及装置,能够将虚拟大页面对应到多个离散的物理大页面上,从而控制虚拟大页面能够占用的cache set,降低了虚拟大页面之间的cache冲突。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种虚拟大页面与物理大页面的对应方法,包括:
获取虚拟大页面的颜色配置信息,所述颜色配置信息包括所述虚拟大页面在每个所述物理大页面中对应的起始物理页面和所述虚拟大页面在每个所述物理大页面中对应的物理页面的个数;
其中,所述虚拟大页面中的一个虚拟页面对应所述物理大页面中的一个物理页面;
根据所述虚拟大页面的颜色配置信息,获取所述虚拟大页面与多个物理大页面的对应关系。
在第一方面的第一种可能实现方式中,所述获取虚拟大页面的颜色配置信息,包括:
确定所述虚拟大页面的虚拟地址;
通过所述虚拟地址中的虚拟大页面号,从旁路转换缓冲TLB中确定所述颜色配置信息。
结合第一方面、第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,还包括:
将所述虚拟地址中的虚拟大页面内部偏移划分为:离散移位ScatteredShift和颜色块的内部偏移CR Offset两个部分,所述Scattered Shift用于索引所述虚拟大页面对应的物理大页面号;
所述颜色块用于表征所述虚拟大页面在每个所述物理大页面中对应的多个物理页面所对应的缓存中的多种颜色;
其中,与所述颜色块对应的所述多个物理页面在一个物理大页面中,且所述多个物理页面的物理地址连续。
结合第一方面、第一方面的第一种可能实现方式、第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述TLB中记录有虚拟大页面号和物理大页面号的对应关系,所述方法还包括:
通过所述虚拟地址中的虚拟大页面号,从所述TLB中确定与所述虚拟大页面对应的第一个物理大页面的页面号;
将所述第一个物理大页面的页面号与所述虚拟大页面对应的所述物理大页面的个数相加,得到与所述虚拟大页面对应的每个物理大页面的页面号;
确定所述虚拟大页面在每个所述物理大页面中对应的起始物理页面的页面号;并将每个所述物理大页面中对应的起始物理页面的页面号与所述CR Offset拼接,得到与所述虚拟地址对应的所述物理地址。
第二方面,提供了一种虚拟大页面与物理大页面的对应装置,在所述装置中,一个虚拟大页面与多个物理大页面对应,所述多个物理大页面的物理地址不连续,所述装置包括:
获取单元,用于获取虚拟大页面的颜色配置信息,所述颜色配置信息包括所述虚拟大页面在每个所述物理大页面中对应的起始物理页面和所述虚拟大页面在每个所述物理大页面中对应的物理页面的个数;
其中,所述虚拟大页面中的一个虚拟页面对应所述物理大页面中的一个物理页面;
所述获取单元,还用于根据获取的所述虚拟大页面的颜色配置信息,获取所述虚拟大页面与多个物理大页面的对应关系;
存储单元,用于存储所述获取单元获取的所述虚拟大页面的颜色配置信息。
在第二方面的第一种可能实现方式中,所述获取单元包括:
确定子单元,用于确定所述虚拟大页面的虚拟地址;并通过所述虚拟地址中的虚拟大页面号,从旁路转换缓冲TLB中确定所述颜色配置信息。
结合第二方面、第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,还包括:
划分单元,用于将所述确定子单元确定的所述虚拟地址中的虚拟大页面内部偏移划分为:离散移位Scattered Shift和颜色块的内部偏移CR Offset两个部分,所述Scattered Shift用于索引所述虚拟大页面对应的物理大页面号;
所述颜色块用于表征所述虚拟大页面在每个所述物理大页面中对应的多个物理页面所对应的缓存中的多种颜色;
其中,与所述颜色块对应的所述多个物理页面在一个物理大页面中,且所述多个物理页面的物理地址连续。
结合第二方面、第二方面的第一种可能实现方式、第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述TLB中记录有虚拟大页面号和物理大页面号的对应关系,所述装置还包括:
确定单元,还用于通过所述虚拟地址中的虚拟大页面号,从所述TLB中确定与所述虚拟大页面对应的第一个物理大页面的页面号;
计算单元,用于将所述确定单元确定的所述第一个物理大页面的页面号与所述虚拟大页面对应的所述物理大页面的个数相加,得到与所述虚拟大页面对应的每个物理大页面的页面号;
所述确定单元,还用于确定所述虚拟大页面在每个所述物理大页面中对应的起始物理页面的页面号;
拼接单元,用于将所述确定单元确定的每个所述物理大页面中对应的起始物理页面的页面号与所述CR Offset拼接,得到与所述虚拟地址对应的所述物理地址。
本发明实施例提供的虚拟大页面与物理大页面的对应方法及装置,在本发明实施例中,一个虚拟大页面与多个物理大页面对应,且多个物理大页面的物理地址不连续。在获取到包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数的颜色配置信息后,进而能够根据该颜色配置信息获取虚拟大页面与多个物理大页面的对应关系。在现有技术中,虚拟大页面只能与物理地址连续的物理大页面对应,这样在存在多个虚拟大页面时,就会造成这一虚拟大页面对应的物理大页面共享cache,从而引起cache冲突。本发明实施例提供的技术方案,能够将虚拟大页面对应到多个离散的物理大页面上,从而控制虚拟大页面能够占用的cache set,降低了虚拟大页面之间的cache冲突。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种虚拟大页面与物理大页面的对应方法的流程图;
图2为本发明另一实施例提供的一种虚拟大页面与物理大页面的对应方法的流程图;
图3为本发明另一实施例提供的一种虚拟大页面的虚拟地址的组成示意图;
图4为本发明另一实施例提供的一种TLB的结构示意图;
图5-1为本发明另一实施例提供的一种虚拟大页面与物理大页面的对应关系示意图;
图5-2为本发明另一实施例提供的另一种虚拟大页面与物理大页面的对应关系示意图;
图6为本发明另一实施例提供的一种虚拟大页面与物理大页面的对应装置的组成示意图;
图7为本发明另一实施例提供的另一种虚拟大页面与物理大页面的对应装置的组成示意图;
图8为本发明另一实施例提供的一种虚拟大页面与物理大页面的对应装置的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供了一种虚拟大页面与物理大页面的对应方法,在该方法中,一个虚拟大页面与多个物理大页面对应,且该多个物理大页面的物理地址不连续,如图1所示,该方法包括:
101、获取虚拟大页面的颜色配置信息。
其中,颜色配置信息包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数。
值得说明的是,虚拟大页面中的一个虚拟页面对应物理大页面中的一个物理页面,且该对应关系是可变的。
102、根据虚拟大页面的颜色配置信息,获取虚拟大页面与多个物理大页面的对应关系。
本发明实施例提供的一种虚拟大页面与物理大页面的对应方法,在获取到包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数的颜色配置信息后,进而能够根据该颜色配置信息获取虚拟大页面与多个物理大页面的对应关系。在现有技术中,虚拟大页面只能与物理地址连续的物理大页面对应,这样在存在多个虚拟大页面时,就会造成这一虚拟大页面对应的物理大页面共享cache,从而引起cache冲突。本发明实施例提供的技术方案,能够将虚拟大页面对应到多个离散的物理大页面上,从而控制虚拟大页面占用的cache set,降低了虚拟大页面之间的cache冲突。
本发明另一实施例提供了一种虚拟大页面与物理大页面的对应方法,如图2所示,该方法包括:
201、确定虚拟大页面的虚拟地址。
值得说明的是,每个虚拟大页面是由虚拟地址连续多个虚拟页面组成,每个虚拟页面都有与之对应的虚拟页面的虚拟地址,所以在确定待操作的虚拟大页面之后,则该虚拟大页面的虚拟地址是确定的。
其中,虚拟大页面的虚拟地址由高位的虚拟大页面号和低位的虚拟大页面内部偏移组成。
进一步的,将虚拟地址中的虚拟大页面内部偏移划分为:离散移位Scattered Shift和颜色块的内部偏移CR Offset两个部分。
其中,Scattered Shift用于索引虚拟大页面对应的物理大页面号,且该Scattered Shift划分在虚拟大页面内部偏移的高位。结合对虚拟地址的描述,其中,表示虚拟大页面的内部偏移的总位数是确定的,在该总位数中,去除掉Scattered Shift占用的位数,其余的低位即为CR Offset。值得说明的是,该Scattered Shift可以表示虚拟大页面对应的物理大页面的个数,比如,当虚拟大页面对应4个离散的物理大页面时,该Scattered Shift由两位表示,在对应每个物理大页面时可以分别为00、01、10、11,相应的,在虚拟大页面的内部偏移中,出去前两位,其余的数位即为CR Offset。
结合上述对虚拟地址的描述,如图3所示,在本实施例中,虚拟地址从高位到低位依次为虚拟大页面号Virtual Huge Page Number、离散移位ScatteredShift和颜色块的内部偏移CR Offset,且Scattered Shift与CR Offset组成虚拟大页面内部偏移Huge Page Offset。
进一步的,为了获取到虚拟大页面的颜色配置信息,需执行下述202。
202、通过虚拟地址中的虚拟大页面号,从旁路转换缓冲TLB中确定颜色配置信息。
值得说明的是,TLB里面存放的是一些页表文件,这些页表文件为虚拟地址到物理地址的转换表,记录有虚拟大页面号和物理大页面号的对应关系。具体的,可以根据虚拟地址中的虚拟大页面号,在TLB中查找到与该虚拟大页面号对应的物理大页面号,同时从该TLB中一并确定颜色配置信息。
为了更清楚的描述TLB的结构,结合下述附图3来进行说明:
如图4所示,该TLB结构包括:Tag、Attr.、Base Huge PPN(Physical PageNumber)、CR_Entry(Color Region_Entry)、CR_Num。
其中,Tag表示页面地址匹配的标记;Attr.表示页面属性;Base Huge PPN表示物理大页面起始页面号,在本实施例中也就是指,与虚拟大页面对应的第一个物理大页面的页面号;CR_Entry表示物理大页面使用的起始颜色块,即虚拟大页面在每个物理大页面中对应的起始物理页面;CR_Num颜色块个数,即虚拟大页面在每个物理大页面中对应的物理页面的个数。其中,CR_Entry和CR_Num作为虚拟大页面的颜色配置信息存储在TLB中。
可选的,CR表示颜色块,该颜色块可以表示一种颜色,还可以表示连续的多个颜色组成的一个可配置颜色区域,也就是说,用于表征虚拟大页面在每个物理大页面中对应的多个物理页面所对应的缓存中的多种颜色,且与颜色块对应的多个物理页面在一个物理大页面中,这些物理页面的物理地址连续。由于一个物理大页面包含的物理页面的个数较多,则与该物理大页面对应的颜色个数相应就较多,所以可以不必对每个物理页面对应的颜色都进行细粒度的控制,则颜色块可认为是物理大页面中颜色配置的基本单位。
值得说明的是,本发明实施例中涉及的TLB较之常规的TLB,添加了颜色配置信息,该颜色配置信息可以直接添加在TLB中,该颜色配置信息可以是由软件控制的,进而写入到该TLB中。相应的,在TLB上需要设置获取该颜色配置信息的接口,该接口能够在TLB中实现这两个参数的配置即可,本发明实施例对该接口的实现形式不进行限定。
可选的,该多个物理地址不连续的物理大页面,可以称之为离散式大页面。为了提高系统的灵活性,还可以对增加一个配置接口,用于决定是否启动离散式大页面。进一步可选的,当配置为1表示启用离散式大页面,为0表示使用常规大页面,其中,常规大页面即一个虚拟大页面对应一个物理大页面。
进一步的,在本实施例中,每个颜色块所包含的颜色个数相同,且在虚拟大页面对应的每个物理大页面中起始颜色块相同,在每个物理大页面中占用的颜色块的个数也是相同的。
203、根据虚拟大页面的颜色配置信息,获取虚拟大页面与多个物理大页面的对应关系。
进一步的,在本发明实施例提供的技术方案中,还可以根据虚拟大页面的虚拟地址以及获取的虚拟大页面的颜色配置信息获取到与该虚拟地址对应的物理地址,可继续执行下述204。
204、根据虚拟大页面的虚拟地址以及虚拟大页面的颜色配置信息获取与该虚拟地址对应的物理地址。
可选的,通过虚拟大页面的虚拟地址以及虚拟大页面的颜色配置信息获取与该虚拟大页面的虚拟地址对应的物理地址,可以通过下述公式计算得到。
Physical Address=(Base Huge PPN+val(Scattered_Shift))^CR_Entry^CR_Offset
其中,符号^,表示拼接,拼接就是简单的物理移位,也就是将表示后一个参数的数位直接添加到之前已经确定的数位的低位。
其中,val(Scattered_Shift)表示,Scattered_Shift的返回值,比如当Scattered_Shift为00时,val(Scattered_Shift)的值为0;当Scattered_Shift为01时。则确定val(Scattered_Shift)的值为1。
具体的,获取该物理地址的包括:
首先,在确定待操作的虚拟大页面的虚拟地址之后,需要确定出该虚拟大页面对应的第一个物理大页面的物理地址,也就是确定出该虚拟大页面对应的第一个物理大页面的页面号。从而需要执行下述a。
a、通过虚拟地址中的虚拟大页面号,从TLB中确定与虚拟大页面对应的第一个物理大页面的页面号。
值得说明的是,该a的执行即确定了Base Huge PPN。
进一步的,结合上述的描述,每个虚拟大页面是由多个虚拟地址连续的虚拟页面组成的,当CR对应的颜色块表示多种连续的颜色时,即将多个虚拟地址连续的虚拟页面作为整体分析,也就是将虚拟大页面中的多个虚拟页面均分为多组虚拟地址连续的虚拟页面组,每组虚拟页面对应一组物理地址连续的物理页面,也就是对应一个颜色块,并且该一组或多组物理地址连续的物理页面存在于一个物理大页面中。
进一步的,需要确定该每个虚拟页面对应的物理大页面的页面号,即确定出Base Huge PPN+val(Scattered_Shift),需要执行下述b。
b、将第一个物理大页面的页面号与虚拟大页面对应的物理大页面的个数相加,得到与虚拟大页面对应的每个物理大页面的页面号。
值得说明的是,在本实施例中,一个虚拟大页面是与多个物理大页面对应的,且该多个物理大页面之间的物理地址是不连续的。
结合上述的202的描述,由CR_Entry和CR_Num可以进一步的确定虚拟大页面对应的物理大页面的个数。
具体的,一个物理大页面中包含确定的物理页面,则相应的能够确定该物理大页面可用的所有颜色块的个数,则物理大页面的个数=每个物理大页面可用的所有颜色块的个数/CR_Num。
此外,当物理页面的个数多于cache中可用的颜色个数时,该cahce中可用的颜色个数为该物理大页面可用的所有颜色的个数,仅为可用的所有颜色块的个数。
进一步的,在确定了虚拟大页面对应的物理大页面的个数之后,结合上述a中获取的虚拟大页面对应的第一个物理大页面的页面号,可以依次获取到该虚拟大页面对应的每个物理大页面的页面号。
c、确定虚拟大页面在每个物理大页面中对应的起始物理页面的页面号。
值得说明的是,由于获取的虚拟大页面的颜色配置信息中包括虚拟大页面在每个物理大页面中对应的起始物理页面,则在确定出起始物理页面之后,就能够确定该起始物理页面的物理地址,并且在该起始物理页面的物理地址中包含有该起始物理页面的页面号,进而能够确定每个物理大页面中对应的起始区里页面的页面号。
此外,当以颜色块为基本单位时,虚拟大页面的颜色配置信息中包含,CR_Entry,该CR_Entry表示物理大页面使用的起始颜色块,即虚拟大页面在每个物理大页面中对应的起始物理页面组,则在确定物理页面的情况下就能够确定出物理页面对应的页面号。
d、将每个物理大页面中对应的起始物理页面的页面号与CR Offset拼接,得到与虚拟地址对应的物理地址。
值得说明的是,此处提到的拼接就是在确定物理地址之前数位的基础上,将CR Offset添加到低位,从而构成完整的物理地址,且该物理地址是与虚拟大页面的虚拟地址对应的。
此外,以具体实例说明,根据颜色配置信息确定的虚拟大页面和多个物理大页面的对应关系。
具体的,颜色块作为是物理大页面中颜色配置的基本单位,也就是说,将虚拟大页面中的多个虚拟页面均分为多个虚拟页面组,其中,每一个虚拟页面组由虚拟地址连续的多个虚拟页面组成。对应的,每个物理大页面同样划分为相同数量的物理页面组,进而确定颜色块的个数与该物理页面组的数量相同。
比如,确定所有可用的颜色块的个数为8,这8个颜色块分别表示不同的颜色,因为物理大页面划分为的物理页面组的数量与cache中的颜色块的个数相同,且物理大页面与cache的对应关系是固定的,则可以认为每个物理大页面有8个可用的颜色块,且依次为每个颜色块标号为0、1、2…7。
具体的,如图5-1所示,当CR_Entry=0,CR_Num=4,物理大页面的个数为2时,也就是一个虚拟大页面对应到两个离散的物理大页面上,在每个物理大页面中只使用其中从0开始的4个颜色块,{0、1、2、3}。当然,也可以选取任意颜色块为起始颜色块。比如,如图5-2所示,当CR_Entry=4,CR_Num=4,物理大页面的个数为2时,也就是说,一个虚拟大页面对应两个物理地址不连续的物理大页面,且在每个物理大页面中只使用其中,从标号4开始的4个颜色块{4、5、6、7}。
本发明实施例提供的一种虚拟大页面与物理大页面的对应方法,在获取到包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数的颜色配置信息后,进而能够根据该颜色配置信息获取虚拟大页面与多个物理大页面的对应关系。在现有技术中,虚拟大页面只能与物理地址连续的物理大页面对应,这样在存在多个虚拟大页面时,就会造成这一虚拟大页面对应的物理大页面共享cache,从而引起cache冲突。本发明实施例提供的技术方案,能够将虚拟大页面对应到多个离散的物理大页面上,从而控制虚拟大页面能够占用的cache set,降低了虚拟大页面之间的cache冲突。
本发明另一实施例提供了一种虚拟大页面与物理大页面的对应装置,在该装置中,一个虚拟大页面与多个物理大页面对应,该多个物理大页面的物理地址不连续,如图6所示,该装置包括:获取单元61、存储单元62。
获取单元61,用于获取虚拟大页面的颜色配置信息。
其中,该颜色配置信息包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数。虚拟大页面中的一个虚拟页面对应物理大页面中的一个物理页面。
进一步的,获取单元61,还用于根据获取的虚拟大页面的颜色配置信息,获取虚拟大页面与多个物理大页面的对应关系。
存储单元62,用于存储获取单元61获取的虚拟大页面的颜色配置信息。
可选的,如图7所示,该装置还包括:划分单元63、确定单元64、计算单元65、拼接单元66;获取单元61,还包括确定子单元611。
确定子单元611,用于确定虚拟大页面的虚拟地址;并通过该虚拟地址中的虚拟大页面号,从旁路转换缓冲TLB中确定颜色配置信息。
划分单元63,用于将获取单元61中的确定子单元611确定的虚拟地址中的虚拟大页面内部偏移划分为:离散移位Scattered Shift和颜色块的内部偏移CROffset两个部分。
其中,Scattered Shift用于索引虚拟大页面对应的物理大页面号;颜色块用于表征虚拟大页面在每个物理大页面中对应的多个物理页面所对应的缓存中的多种颜色,且颜色块对应的多个物理页面在一个物理大页面中,且多个物理页面的物理地址连续。
确定单元64,还用于通过获取单元61中的确定子单元611确定的虚拟地址中的虚拟大页面号,从TLB中确定与该虚拟大页面对应的第一个物理大页面的页面号。
计算单元65,用于将确定单元64确定的第一个物理大页面的页面号与虚拟大页面对应的物理大页面的个数相加,得到与虚拟大页面对应的每个物理大页面的页面号。
确定单元64,还用于确定虚拟大页面在每个物理大页面中对应的起始物理页面的页面号。
拼接单元66,用于将确定单元64确定的每个物理大页面中对应的起始物理页面的页面号与划分单元63划分得到的CR Offset拼接,得到与虚拟地址对应的物理地址。
本发明实施例提供的一种虚拟大页面与物理大页面的对应装置,在获取单元获取到包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数的颜色配置信息后,进而能够根据该颜色配置信息获取虚拟大页面与多个物理大页面的对应关系。在现有技术中,虚拟大页面只能与物理地址连续的物理大页面对应,这样在存在多个虚拟大页面时,就会造成这一虚拟大页面对应的物理大页面共享cache,从而引起cache冲突。本发明实施例提供的技术方案,能够将虚拟大页面对应到多个离散的物理大页面上,从而控制虚拟大页面能够占用的cache set,降低了虚拟大页面之间的cache冲突。
本发明另一实施例提供了一种虚拟大页面与物理大页面的对应装置,该装置包括:处理器01、存储器02。如图8所示,图8为一种虚拟大页面与物理大页面的对应装置的硬件结构示意图。其中,该装置可包括处理器01、存储器02、和总线03。其中,处理器01、存储器02通过总线03连接。
处理器01可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器02可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1102可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器02中,并由处理器01来执行。
总线03可包括一通路,在装置各个部件(例如,存储器02和处理器01)之间传送信息。
应注意,尽管图8所示的硬件仅仅示出了处理器01、存储器02和总线03,但是在具体实现过程中,本领域的技术人员应当明白,该终端还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,还可包含实现其他功能的硬件器件。
具体的,处理器01,用于确定虚拟大页面的虚拟地址,并通过虚拟地址中的虚拟大页面号,从旁路转换缓冲TLB中确定颜色配置信息。
可选的,颜色配置信息包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数。且虚拟大页面中的一个虚拟页面对应物理大页面中的一个物理页面。
进一步的,处理器01,还用于根据虚拟大页面的颜色配置信息,获取虚拟大页面与多个物理大页面的对应关系。
存储器02,用于存储处理器01确定的虚拟大页面的虚拟地址以及从TLB中确定的颜色配置信息。
可选的,处理器01,还用于将虚拟地址中的虚拟大页面内部偏移划分为:离散移位Scattered Shift和颜色块的内部偏移CR Offset两个部分。
其中,Scattered Shift用于索引虚拟大页面对应的物理大页面号;颜色块用于表征虚拟大页面在每个物理大页面中对应的多个物理页面所对应的缓存中的多种颜色。与该颜色块对应的多个物理页面在一个物理大页面中,这多个物理页面的物理地址连续。
可选的,在TLB中记录有虚拟大页面号和物理大页面号的对应关系,进一步的,处理器01,还用于通过虚拟地址中的虚拟大页面号,从TLB中确定与该虚拟大页面对应的第一个物理大页面的页面号;将第一个物理大页面的页面号与虚拟大页面对应的物理大页面的个数相加,得到与虚拟大页面对应的每个物理大页面的页面号;确定虚拟大页面在每个物理大页面中对应的起始物理页面的页面号;并将每个物理大页面中对应的起始物理页面的页面号与CR Offset拼接,得到与所述虚拟地址对应的所述物理地址。
本发明实施例提供的一种虚拟大页面与物理大页面的对应装置,在处理器获取到包括虚拟大页面在每个物理大页面中对应的起始物理页面和虚拟大页面在每个物理大页面中对应的物理页面的个数的颜色配置信息后,存储器存储该获取到的颜色配置信息,进而能够根据该颜色配置信息获取虚拟大页面与多个物理大页面的对应关系。在现有技术中,虚拟大页面只能与物理地址连续的物理大页面对应,这样在存在多个虚拟大页面时,就会造成这一虚拟大页面对应的物理大页面共享cache,从而引起cache冲突。本发明实施例提供的技术方案,能够将虚拟大页面对应到多个离散的物理大页面上,从而控制虚拟大页面能够占用的cache set,降低了虚拟大页面之间的cache冲突。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种虚拟大页面与物理大页面的对应方法,其特征在于,一个虚拟大页面与多个物理大页面对应,所述多个物理大页面的物理地址不连续,所述方法包括:
获取虚拟大页面的颜色配置信息,所述颜色配置信息包括所述虚拟大页面在每个所述物理大页面中对应的起始物理页面和所述虚拟大页面在每个所述物理大页面中对应的物理页面的个数;
其中,所述虚拟大页面中的一个虚拟页面对应所述物理大页面中的一个物理页面;
根据所述虚拟大页面的颜色配置信息,获取所述虚拟大页面与多个物理大页面的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述获取虚拟大页面的颜色配置信息,包括:
确定所述虚拟大页面的虚拟地址;
通过所述虚拟地址中的虚拟大页面号,从旁路转换缓冲TLB中确定所述颜色配置信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述虚拟地址中的虚拟大页面内部偏移划分为:离散移位ScatteredShift和颜色块的内部偏移CR Offset两个部分,所述Scattered Shift用于索引所述虚拟大页面对应的物理大页面号;
所述颜色块用于表征所述虚拟大页面在每个所述物理大页面中对应的多个物理页面所对应的缓存中的多种颜色;
其中,与所述颜色块对应的所述多个物理页面在一个物理大页面中,且所述多个物理页面的物理地址连续。
4.根据权利要求3所述的方法,其特征在于,所述TLB中记录有虚拟大页面号和物理大页面号的对应关系,所述方法还包括:
通过所述虚拟地址中的虚拟大页面号,从所述TLB中确定与所述虚拟大页面对应的第一个物理大页面的页面号;
将所述第一个物理大页面的页面号与所述虚拟大页面对应的所述物理大页面的个数相加,得到与所述虚拟大页面对应的每个物理大页面的页面号;
确定所述虚拟大页面在每个所述物理大页面中对应的起始物理页面的页面号;并将每个所述物理大页面中对应的起始物理页面的页面号与所述CR Offset拼接,得到与所述虚拟地址对应的所述物理地址。
5.一种虚拟大页面与物理大页面的对应装置,其特征在于,在所述装置中,一个虚拟大页面与多个物理大页面对应,所述多个物理大页面的物理地址不连续,所述装置包括:
获取单元,用于获取虚拟大页面的颜色配置信息,所述颜色配置信息包括所述虚拟大页面在每个所述物理大页面中对应的起始物理页面和所述虚拟大页面在每个所述物理大页面中对应的物理页面的个数;
其中,所述虚拟大页面中的一个虚拟页面对应所述物理大页面中的一个物理页面;
所述获取单元,还用于根据获取的所述虚拟大页面的颜色配置信息,获取所述虚拟大页面与多个物理大页面的对应关系;
存储单元,用于存储所述获取单元获取的所述虚拟大页面的颜色配置信息。
6.根据权利要求5所述的装置,其特征在于,所述获取单元包括:
确定子单元,用于确定所述虚拟大页面的虚拟地址;并通过所述虚拟地址中的虚拟大页面号,从旁路转换缓冲TLB中确定所述颜色配置信息。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
划分单元,用于将所述确定子单元确定的所述虚拟地址中的虚拟大页面内部偏移划分为:离散移位Scattered Shift和颜色块的内部偏移CR Offset两个部分,所述Scattered Shift用于索引所述虚拟大页面对应的物理大页面号;
所述颜色块用于表征所述虚拟大页面在每个所述物理大页面中对应的多个物理页面所对应的缓存中的多种颜色;
其中,与所述颜色块对应的所述多个物理页面在一个物理大页面中,且所述多个物理页面的物理地址连续。
8.根据权利要求7所述的装置,其特征在于,所述TLB中记录有虚拟大页面号和物理大页面号的对应关系,所述装置还包括:
确定单元,还用于通过所述虚拟地址中的虚拟大页面号,从所述TLB中确定与所述虚拟大页面对应的第一个物理大页面的页面号;
计算单元,用于将所述确定单元确定的所述第一个物理大页面的页面号与所述虚拟大页面对应的所述物理大页面的个数相加,得到与所述虚拟大页面对应的每个物理大页面的页面号;
所述确定单元,还用于确定所述虚拟大页面在每个所述物理大页面中对应的起始物理页面的页面号;
拼接单元,用于将所述确定单元确定的每个所述物理大页面中对应的起始物理页面的页面号与所述CR Offset拼接,得到与所述虚拟地址对应的所述物理地址。
CN201310462565.7A 2013-09-30 2013-09-30 一种虚拟大页面与物理大页面的对应方法及装置 Active CN104516826B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310462565.7A CN104516826B (zh) 2013-09-30 2013-09-30 一种虚拟大页面与物理大页面的对应方法及装置
PCT/CN2014/087162 WO2015043445A1 (zh) 2013-09-30 2014-09-23 一种虚拟大页面与物理大页面的对应方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310462565.7A CN104516826B (zh) 2013-09-30 2013-09-30 一种虚拟大页面与物理大页面的对应方法及装置

Publications (2)

Publication Number Publication Date
CN104516826A true CN104516826A (zh) 2015-04-15
CN104516826B CN104516826B (zh) 2017-11-17

Family

ID=52742053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310462565.7A Active CN104516826B (zh) 2013-09-30 2013-09-30 一种虚拟大页面与物理大页面的对应方法及装置

Country Status (2)

Country Link
CN (1) CN104516826B (zh)
WO (1) WO2015043445A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688745A (zh) * 2016-08-04 2018-02-13 阿里巴巴集团控股有限公司 处理、生成内核镜像的方法、内核初始化方法、装置和设备
WO2018027839A1 (zh) * 2016-08-11 2018-02-15 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
CN110209603A (zh) * 2019-05-31 2019-09-06 龙芯中科技术有限公司 地址转换方法、装置、设备及计算机可读存储介质
CN111344667A (zh) * 2017-12-01 2020-06-26 华为技术有限公司 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的系统和方法
CN113094173A (zh) * 2021-04-02 2021-07-09 烽火通信科技股份有限公司 一种基于dpdk的大页内存动态迁移的方法与装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009110446A1 (ja) * 2008-03-04 2009-09-11 日本電気株式会社 メモリマッピング方法、メモリシステム
CN101661437A (zh) * 2008-08-28 2010-03-03 国际商业机器公司 旁路转换缓冲器以及在其中进行地址匹配的方法和装置
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739422B2 (en) * 2006-03-21 2010-06-15 International Business Machines Corporation Method to improve system DMA mapping while substantially reducing memory fragmentation
CN102446136B (zh) * 2010-10-14 2014-09-03 无锡江南计算技术研究所 自适应的大页分配方法及装置
CN102339302A (zh) * 2011-07-07 2012-02-01 曙光信息产业股份有限公司 一种基于hugetlbfs技术的龙芯刀片文件系统的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009110446A1 (ja) * 2008-03-04 2009-09-11 日本電気株式会社 メモリマッピング方法、メモリシステム
CN101661437A (zh) * 2008-08-28 2010-03-03 国际商业机器公司 旁路转换缓冲器以及在其中进行地址匹配的方法和装置
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688745A (zh) * 2016-08-04 2018-02-13 阿里巴巴集团控股有限公司 处理、生成内核镜像的方法、内核初始化方法、装置和设备
WO2018027839A1 (zh) * 2016-08-11 2018-02-15 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
US10740247B2 (en) 2016-08-11 2020-08-11 Huawei Technologies Co., Ltd. Method for accessing entry in translation lookaside buffer TLB and processing chip
CN111344667A (zh) * 2017-12-01 2020-06-26 华为技术有限公司 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的系统和方法
CN111344667B (zh) * 2017-12-01 2021-10-15 华为技术有限公司 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的系统和方法
CN110209603A (zh) * 2019-05-31 2019-09-06 龙芯中科技术有限公司 地址转换方法、装置、设备及计算机可读存储介质
CN110209603B (zh) * 2019-05-31 2021-08-31 龙芯中科技术股份有限公司 地址转换方法、装置、设备及计算机可读存储介质
CN113094173A (zh) * 2021-04-02 2021-07-09 烽火通信科技股份有限公司 一种基于dpdk的大页内存动态迁移的方法与装置
CN113094173B (zh) * 2021-04-02 2022-05-17 烽火通信科技股份有限公司 一种基于dpdk的大页内存动态迁移的方法与装置

Also Published As

Publication number Publication date
CN104516826B (zh) 2017-11-17
WO2015043445A1 (zh) 2015-04-02

Similar Documents

Publication Publication Date Title
CN102792285B (zh) 用于处理数据的装置和方法
JP6460497B2 (ja) ファイルアクセス方法およびファイルアクセス装置、ならびに記憶装置
US20100030997A1 (en) Virtual memory management
CN108664523B (zh) 一种虚拟磁盘文件格式转换方法和装置
CN102662869B (zh) 虚拟机中的内存访问方法和装置及查找器
CN107209715A (zh) 文件数据访问方法和计算机系统
CN104516826A (zh) 一种虚拟大页面与物理大页面的对应方法及装置
WO2016082191A1 (zh) 访问文件的方法和装置
EP3489832A1 (en) File access method and apparatus, and storage system
US9612975B2 (en) Page cache device and method for efficient mapping
WO2015161506A1 (zh) 一种寻址方法及装置
CN104809179A (zh) 访问哈希表的装置和方法
CN103218312A (zh) 文件访问方法及系统
EP3789881A1 (en) Method and device for monitoring memory access behavior of sample process
JP2007220107A (ja) 不揮発性メモリのマッピング情報管理装置及び方法
CN112463055B (zh) 一种优化并使用固态硬盘l2p表的方法、系统、设备及介质
CN116340198A (zh) 固态硬盘的数据写入方法、其装置及固态硬盘
CN107766259B (zh) 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
CN102541745B (zh) 微控制器数据存储器的寻址方法和微控制器
US10579519B2 (en) Interleaved access of memory
EP3690660B1 (en) Cache address mapping method and related device
CN110362509B (zh) 统一地址转换方法与统一地址空间
JP5958195B2 (ja) 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム
CN108073362B (zh) 一种延长PairBlock使用寿命的方法及装置
WO2021240133A1 (en) Apparatus and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant