一种旁路转换缓冲页掩码实现的装置及方法

文档序号:6584550阅读:158来源:国知局
专利名称:一种旁路转换缓冲页掩码实现的装置及方法
技术领域
本发明涉及计算机体系结构领域,尤其涉及一种计算机中旁路转换缓冲页掩码实
现的装置及方法。
背景技术
现代处理器为支持操作系统进行虚拟内存管理均实现了匪U(MemoryManagement Unit,内存管理单元)的支持,通过硬件方式或软硬件结合的方式完成虚实地址转换工作。
为降低虚实地址转换过程中的延迟开销,现代处理器通常在内部实现了旁路转换 缓冲(Translation lookaside buffer, TLB)作为操作系统页表的缓冲。旁路转换缓冲通 常为若干项,每一项存放一个虚、实地址对,表示一组虚、实页地址的对应转换关系,同时对 应该页的诸多相关属性也记录在同一项的其他域中。 操作系统的页容量大小与系统的性能效率紧密关联,其容量越大,应用在执行过
程中旁路转换缓冲发生页缺失的次数会降低,但是页的初始化、迁移等维护开销会相应增
加,物理内存的利用效率也会降低。其容量变小,在提升了物理内存使用效率的同时,也会
增加应用在执行过程中旁路转换缓冲发生页缺失的次数,从而降低程序性能。 对于不同特性应用,其页大小的最佳平衡点也不相同。在一个拥有众多不同特性
应用的系统中,为获得最佳的系统特性,操作系统需要根据各类应用的特性为其分配不同
大小的页。为能进一步支持操作系统进行这种操作,处理器在其匪U部件中也需要加入支
持不同页大小的功能。 旁路转换缓冲作为处理器内部匪U的核心部件,对其所作的最直观的改进时在每 一个页表项添加一个表示页大小的域。由于页的大小通常为2的幂次方字节,因此页大小 的表示可以简化为通过页掩码的形式来表示。在一般的实现中,页掩码的位数与旁路转 换缓冲中存放的虚页号位数相同。在具体的物理实现中,页掩码通常与虚页号一起通过 CAM(相联存储器)实现,其面积与所需存储容量呈正相关,由此,操作系统也要求页掩码的 存储开销尽可能小。

发明内容
本发明针对现有技术中的缺陷,提供一种旁路转换缓冲页掩码实现的装置及方 法,既可有效降低页掩码信息存储的开销,又能保证旁路转换缓冲页掩码的高效实现。
本发明所述的旁路转换缓冲页掩码实现的装置,应用于处理器的旁路转换缓冲, 包括 页掩码信息转换单元,用于将原始页掩码信息按预定规则转换为对应的中间信 息; 中间信息储存单元,用于储存上述中间信息;
以及, 页掩码信息还原单元,用于按预定规则将中间信息储存单元中的中间信息还原为等同于对应原始页掩码信息的新的页掩码信息。 本发明所述的旁路转换缓冲页掩码实现的装置中,所述页掩码信息转换单元将原 始页掩码信息中设定数量的"1"或"0 "计为中间信息中的1个"1"或"0 ";
所述页掩码信息还原单元将中间信息中的1个"1"或"0"计为新的页掩码信息中 对应于上述设定数量的"1"或"0 "。 本发明所述的旁路转换缓冲页掩码实现的装置中,所述页掩码信息转换单元将原
始页掩码信息中设定数量的"1"或"0"计为中间信息中等于上述设定数量的数值; 所述页掩码信息还原单元将中间信息中的数值计为新的页掩码信息中等于上述
数值的数量的"1"或"0"。 本发明还提供一种旁路转换缓冲页掩码实现的方法,应用于处理器的旁路转换缓 冲,包括如下步骤 步骤一,将原始页掩码信息按预定规则转换为对应的中间信息并储存; 步骤二,将上述中间信息按预定规则还原为等同于对应原始页掩码信息的新的页
掩码信息。 本发明所述的旁路转换缓冲页掩码实现的方法的步骤一中,将原始页掩码信息中 设定数量的"1"或"0 "计为中间信息中的1个"1"或"0 "; 所述步骤二中,将中间信息中的1个"1"或"0"计为新的页掩码信息中对应于上 述设定数量的"1"或"0"。 本发明所述的旁路转换缓冲页掩码实现的方法的步骤一中,将原始页掩码信息中 设定数量的"1"或"0"计为中间信息中等于上述设定数量的数值; 所述步骤二中,将中间信息中的数值计为新的页掩码信息中等于上述数值的数量 的"1"或"0"。 本发明中将原始页掩码信息转换为占用存储空间更小的中间信息来代替储存,并 在需要时对该中间信息进行还原,使得有效降低了页掩码信息存储的开销,保证了旁路转 换缓冲页掩码的高效实现。


图1为本发明所述旁路转换缓冲页掩码实现的装置的结构示意图;
图2为本发明所述旁路转换缓冲页掩码实现的方法的流程示意图。
具体实施例方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文 字能够据以实施。 本发明所述的旁路转换缓冲页掩码实现的装置及方法,是应用于处理器的旁路转 换缓冲中。本发明涉及的旁路转换缓冲,和其它大部分处理器中的旁路转换缓冲一样,每一 项存放一个虚、实地址对,表示一组虚、实页地址的对应转换关系,同时对应该页的页掩码 信息存放在该页表项的指定域中。在对旁路转换缓冲配置时,来自内存中的页表信息将被 填入到指定项中,其中包括原始的页掩码信息。页掩码信息由一串连续的l起始并后缀一 串连续的0组成,连续1的长度或者连续0的长度均可从O至页掩码的位数;在旁路转换缓冲进行虚实地址转换时,页掩码为1的位表示旁路转换缓冲存放的物理地址的对应位参与 转换,为0的位表示访问的虚地址的对应位参与转换。 如图1所示,该装置包括页掩码信息转换单元、中间信息储存单元、以及页掩码信 息还原单元。 其中,所述的页掩码信息转换单元用于将原始页掩码信息按预定规则转换为对应 的中间信息,此中间信息较原始页掩码信息而言所占用的存储空间更小,因此,更加有利于 存储及提高系统处理效率,且同时保证了旁路转换缓冲页掩码的有效实现。
所述转换的预定规则可以包括 所述页掩码信息转换单元将原始页掩码信息中设定数量的"1"或"0"计为中间信 息中的1个"1"或"0 "。例如,原始页掩码信息为"11111111110000 ",将其中的两个"1"转 换为中间信息中的一个"1",将其中的两个"0"转换为中间信息中的一个"0",则转换后的 中间信息为"1111100"。 或者,所述转换的预定规则还可以为 所述页掩码信息转换单元将原始页掩码信息中设定数量的"1"或"0"计为中间信 息中等于上述设定数量的数值。例如,原始页掩码信息为"111111110000",其中连续"1"的 个数为8个,则转换后的中间信息为"8"。 而所述中间信息储存单元则用于储存上述页掩码信息转换单元转换得出的中间 信息。 所述页掩码信息还原单元用于按预定规则将中间信息储存单元中的中间信息还 原为等同于对应原始页掩码信息的新的页掩码信息。所述中间信息经过该页掩码信息还原 单元还原后可以得到新的页掩码信息,该新的页掩码信息与原始页掩码信息对应,即系统 根据该新的页掩码信息而进行的虚实地址转换结果与系统根据原始页掩码信息而进行的 虚实地址转换结果相同。相对于系统的处理结果而言,该新的页掩码信息与原始页掩码信 息可视为等同。 所述页掩码信息还原单元还原中间信息的预定规则可以包括 所述页掩码信息还原单元将中间信息中的1个"1"或"0"计为新的页掩码信息中
对应于上述设定数量的"1"或"0"。该预定规则与前述页掩码信息转换单元将原始页掩码
信息中设定数量的"1 "或"0"计为中间信息中的1个"1"或"0"的规则对应,二者配合使
得原始页掩码信息被转换为中间信息后,又被还原为与原始页掩码信息等同的新的页掩码
信息。仍以前述的原始页掩码信息为"iiiiiiiiiioooo"为例,将其中的两个"i"转换为中
间信息中的一个"1",将其中的两个"0"转换为中间信息中的一个"0",得到转换后的中间 信息为"1111100"。所述页掩码信息还原单元将中间信息中的一个"l"还原为新的页掩码 信息中的两个"1",将中间信息中的一个"0"还原为新的页掩码信息中的两个"0",由此得 到新的页掩码信息为"11111111110000",可见,该新的页掩码信息与原始页掩码信息相同, 系统根据此新的页掩码信息进行虚实地址转换可获得与根据原始页掩码信息进行虚实地 址转换相同的结果。 所述页掩码信息还原单元还原中间信息的预定规则还可以包括 所述页掩码信息还原单元将中间信息中的数值计为新的页掩码信息中等于上述
数值的数量的"1"或"0"。该预定规则与前述的页掩码信息转换单元将原始页掩码信息中设定数量的"1"或"0"计为中间信息中等于上述设定数量的数值的规则相对应。二者配合
使得原始页掩码信息被转换为中间信息后,又被还原为与原始页掩码信息等同的新的页掩 码信息。仍以前述的原始页掩码信息为"111111110000"为例,其中连续"1"的个数为8个, 则转换后的中间信息为"8"。所述页掩码信息还原单元将中间信息中的"8"还原为新的页 掩码信息中的8个"1 ",即"11111111 ",由此得到新的页掩码信息为"111111110000 ",可见, 该新的页掩码信息与原始页掩码信息相同,系统根据此新的页掩码信息进行虚实地址转换 可获得与根据原始页掩码信息进行虚实地址转换相同的结果。 上述示例列举的转换与还原适用于系统中页的数量较多的情况,当系统中页的数 量较少时,可以直接建立原始页掩码信息、新的页掩码信息、中间信息三者之间的对应关 系,即将转换的预定规则设定为各个原始页掩码信息对应各个中间信息,而将还原的预定 规则设定为各个中间信息对应各个新的页掩码信息,由此,将原始页掩码信息转换为占用 存储空间较小的中间信息,以利于提高系统的处理效率,而在需要进行虚实地址转换时,再 将中间信息还原为新的页掩码信息。例如,系统中只使用4KB、16KB、64MB、256MB四种大小 的页,原始页掩码信息分别为1111111111111111、 1111111111111100、 1100000000000000、 0000000000000000。将上述四个原始页掩码信息存于一个四项的表中,用表的下标0、1、2、 3依次对应原始页掩码信息,此下标0、1、2、3即可视为中间信息的内容。例如,某页大小为 16KB,则记录下1 ;某页大小为64MB,则记录下2。在还原以得到新的页掩码信息时,根据设
定将中间信息所对应的内容,可得到各中间信息对应的新的页掩码信息。 本发明还提供一种旁路转换缓冲页掩码实现的方法,如图2所示,步骤包括 步骤IOI,将原始页掩码信息按预定规则转换为对应的中间信息并储存; 步骤102,将上述中间信息按预定规则还原为等同于对应原始页掩码信息的新的
页掩码信息。 上述步骤101中,所述预定规则可为将原始页掩码信息中设定数量的"1"或"0" 计为中间信息中的1个"1"或"0"; 与之对应的,所述步骤102中,所述预定规则可为将中间信息中的1个"1 "或"0" 计为新的页掩码信息中对应于上述设定数量的"1"或"0"。
现以示例说明如下 假定系统中最小页大小为4KB,最大页大小为1GB,页大小以4倍比例进行递增,即 16KB、64KB、256KB、……、256MB、1GB。因此页掩码原始信息需要18位来表示,且从最低位开 始两位一组进行分组,每组要么全为0要么全为1。本示例中采用的转换规则为用1位信 息代表一组,将一组的两个"0"压縮为一个"0",一组的两个"1"压縮为一个"1"。例如,原 始页掩码信息是"111111111111110000",经过转换后得到中间信息记录为"111111100"。 还原是转换的逆变换过程,即将单个"1"或0还原成两个"1"或"0",并将它们依次串接起 来,可以得到新的页掩码信息为"111111111111110000"。本示例可以总结为若所选取的 页大小从最小值开始以2的k次方(k大于1)的倍数向上递增,则原始页掩码信息中连续 k个"1"或"0 "可转换为一个"1"或"0 "进行存储,还原时将一个"1"或"0 "还原为连续k 个"1"或"0"。 本发明的步骤101中,所述预定规则还可为将原始页掩码信息中设定数量的"l" 或"O"计为中间信息中等于上述设定数量的数值;
6
与之对应的,所述步骤102中,所述预定规则为将中间信息中的数值计为新的页 掩码信息中等于上述数值的数量的"1 "或"0"。
现以示例说明如下 假定系统中最小页大小为4KB,最大页大小为256MB,页大小以2倍比例进行递
增,即8KB、16KB、32KB、 ......、 128MB、256MB,原始页掩码信息需要16位来表示。可以采
用的转换方式是,记录页掩码信息中的连续的"l"的个数。例如,原始页掩码的信息是 "1111111111000000",其中,连续"1"的个数为10个,所以记录数值"10"即可,该数值"10" 即为中间信息。还原时,看到中间信息为数值"10",则还原出一个起始为10个连续"l",后 继6个"0"的比特串,即还原得到的新的页掩码信息为"1111111111000000"。本示例可以 总结为记录原始页掩码信息中表示页内偏移地址位数n或者页索引地址位数n,将该数值 n作为转换后的中间信息进行存储,还原时则根据存储的中间信息的数值还原出连续n个 "1"或"0",余位补"0"或"1"。 若系统中只使用4KB、16KB、64MB、256MB四种大小的页,原始页掩码信息分别为 "1111111111111111"、"1111111111111100"、"1100000000000000"、"0000000000000000"。
可以采用更为简便的转换方法,即将上述四个原始页掩码信息存于一个四项的表中,用表 的下标0、1、2、3依次对应原始页掩码信息。例如,某页大小为16KB,则记录下1 ;某页大小 为64MB,则记录下2。这里记录的"1"、"2"即为中间信息。还原时,以此中间信息为表的下 标从表中读出存放的原始页掩码信息即可。 尽管本发明的实施方案已公开如上, 其并不仅仅限于说明书和实施方式中所列 运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地 实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限 于特定的细节和这里示出与描述的图例。
权利要求
一种旁路转换缓冲页掩码实现的装置,应用于处理器的旁路转换缓冲,其特征在于,包括页掩码信息转换单元,用于将原始页掩码信息按预定规则转换为对应的中间信息;中间信息储存单元,用于储存上述中间信息;以及,页掩码信息还原单元,用于按预定规则将中间信息储存单元中的中间信息还原为等同于对应原始页掩码信息的新的页掩码信息。
2. 如权利要求1所述的旁路转换缓冲页掩码实现的装置,其特征在于,所述页掩码信息转换单元将原始页掩码信息中设定数量的"1"或"0"计为中间信息中的1个"1"或"0";所述页掩码信息还原单元将中间信息中的1个"i"或"o"计为新的页掩码信息中对应于上述设定数量的"1"或"0"。
3. 如权利要求1所述的旁路转换缓冲页掩码实现的装置,其特征在于,所述页掩码信息转换单元将原始页掩码信息中设定数量的"1"或"0"计为中间信息中等于上述设定数量的数值;所述页掩码信息还原单元将中间信息中的数值计为新的页掩码信息中等于上述数值的数量的"1"或"0"。
4. 一种旁路转换缓冲页掩码实现的方法,应用于处理器的旁路转换缓冲,其特征在于,包括如下步骤步骤一,将原始页掩码信息按预定规则转换为对应的中间信息并储存;步骤二,将上述中间信息按预定规则还原为等同于对应原始页掩码信息的新的页掩码信息。
5. 如权利要求4所述的旁路转换缓冲页掩码实现的方法,其特征在于,所述步骤一中,将原始页掩码信息中设定数量的"1"或"0 "计为中间信息中的1个"1"或"0 ";所述步骤二中,将中间信息中的1个"1"或"0"计为新的页掩码信息中对应于上述设定数量的"1"或"0"。
6. 如权利要求4所述的旁路转换缓冲页掩码实现的方法,其特征在于,所述步骤一中,将原始页掩码信息中设定数量的"1"或"0"计为中间信息中等于上述设定数量的数值;所述步骤二中,将中间信息中的数值计为新的页掩码信息中等于上述数值的数量的'T或"0"。
全文摘要
本发明公开了一种旁路转换缓冲页掩码实现的装置及方法,所述装置包括页掩码信息转换单元、中间信息储存单元、以及页掩码信息还原单元。所述方法包括如下步骤将原始页掩码信息按预定规则转换为对应的中间信息并储存;将上述中间信息按预定规则还原为等同于对应原始页掩码信息的新的页掩码信息。本发明中将原始页掩码信息转换为占用存储空间更小的中间信息来代替储存,并在需要时对该中间信息进行还原,使得有效降低了页掩码信息存储的开销,保证了旁路转换缓冲页掩码的高效实现。
文档编号G06F12/10GK101714122SQ20091023669
公开日2010年5月26日 申请日期2009年10月28日 优先权日2009年10月28日
发明者徐翠萍, 李祖松, 汪文祥, 郝守青 申请人:北京龙芯中科技术服务中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1