一种混合内存访问情况的记录方法及其系统的制作方法

xiaoxiao2020-7-22  13

一种混合内存访问情况的记录方法及其系统的制作方法
【专利摘要】本发明提供了一种内存访问情况的记录方法,包括步骤:获取页表项中空闲位和脏位的表征值;进行写回步骤,具体包括:将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,并将脏位重置。本发明使用页表项中的空闲位和脏位一起记录页面使用情况,利用页面被写入时脏位即被置1及空闲位原本未使用的特点,无需做另外专门的访存统计工作,也无需额外开辟存储空间存放统计结果,可以在遍历页表项时就一并获取其历史访问信息,减少了系统时间及空间上的开销。
【专利说明】一种混合内存访问情况的记录方法及其系统
【技术领域】
[0001]本发明涉及存储器领域,尤其涉及一种混合内存访问情况的记录方法及其系统。【背景技术】
[0002]DRAM (Dynamic Random Access Memory,动态随机存储器)一直以来担当着计算机体系中主存储器的角色,但随着集成电路关键尺寸的不断减小,DRAM在尺寸收缩、功耗控制、存储密度和发热量等方面遇到了极大的挑战,其技术已接近瓶颈,迫切需要找到新的替代者。PRAM(Phase change Random Access Memory,相变随机存储器)凭借其优良的特性已逐步成为最有可能取代DRAM地位的存储器件。
[0003]然而,与DRAM相比,PRAM的读功耗低、静态功耗低,但其写功耗和写延时均比较大,因此PRAM还不能完全取代DRAM独自成为主存。目前最常见的方法是让PRAM与DRAM —同构成混合主存。在DRAM-PRAM的混合存储架构下,为了最大化的发挥两种存储器件的优点以降低内存系统的功耗,已有的技术均是通过对内存页面读、写次数的统计,将DRAM中读频繁的页面迁入PRAM,而将PRAM中写频繁的页面迁入DRAM,从而充分发挥DRAM写功耗低、写延时低,PRAM读功耗低的优点。
[0004]在混合内存的使用中,如何准确的选择需要交换的页面,是让混合内存高效运转的关键所在。根据经典的时间局部性原理,当前被访问的页面极有可能在接下来的时间内继续被访问。目前,记录下最近一段时间内页面的访问情况,并通过一定算法选择出最佳交换页面是混合内存中选择交换页面的主要方法。为了记录页面最近一段时间的访问情况,通常是开辟一段专用的存储空间,占用额外硬件空间,增加了成本,存储页面的访问情况,并维护记录与页面的对应关系,在每次选择页面时遍历页表及记录表,时间开销增大。

【发明内容】

[0005]本发明的实施例提供了一种内存访问情况的记录方法及系统,无需额外硬件空间,减小时间开销,提高系统效率。
[0006]为实现上述目的,本发明实施例提供了如下技术方案:
[0007]一种内存访问情况的记录方法,包括步骤:
[0008]获取页表项中空闲位和脏位的表征值;
[0009]进行写回步骤,具体包括:将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位;将脏位重置。
[0010]可选的,空闲位及脏位设置有权值,且由空闲位的高位至第一位、由第一位至脏位,其权值依次升高,在获取页表项中空闲位和脏位的表征值之后,进行写回步骤之前,还包括步骤:
[0011]根据权值和表征值,得到访存热度值;
[0012]判断访存热度值是否高于阈值,若是,则判定页面要被迁移。
[0013]可选的,根据权值和表征值,得到访存热度值的步骤具体为:由权值和与权值对应位的表征值得乘积得到访存热度值。
[0014]可选的,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
[0015]可选的,所述脏位在页面写操作发生时由处理器重新置位。
[0016]此外,本发明还提供了一种内存访问情况的记录系统,包括:
[0017]获取单元,用于获取空闲位和脏位的表征值;
[0018]写回单元,用于将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,最高位丢弃;将脏位重置。
[0019]可选的,空闲位及脏位设置有权值,且由空闲位的高位至第一位、由第一位至脏位,其权值依次升高,系统还包括:
[0020]访存热度单元,用于根据权值和表征值,得到访存热度值;
[0021]判断单元,用于判断访存热度值是否高于阈值,若是,则判定页面要被迁移。
[0022]可选的,所述获取单元,由权值和与权值对应位的表征值得乘积得到访存热度值。
[0023]可选的,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
[0024]可选的,所述脏位在页面写操作发生时由处理器重新置位。
[0025]本发明实施例提供的内存访问情况的记录方法及系统,使用页表项中的空闲位和脏位一起记录页面使用情况,利用页面被写入时脏位即被置I及空闲位原本未使用的特点,无需做另外专门的访存统计工作,也无需额外开辟存储空间存放统计结果,可以在遍历页表项时就一并获取其历史访问信息,减少了系统时间及空间上的开销。
【专利附图】

【附图说明】
[0026]图1为根据本发明实施例的混合内存访问情况的记录方法的流程图示意图;
[0027]图2为Linux的三级映射的虚拟内存的结构示意图;
[0028]图3为图2中的页表项中的存储单元的示意图;
[0029]图4为根据本发明实施例的混合内存访问情况的记录系统的结构示意图。
【具体实施方式】
[0030]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的【具体实施方式】做详细的说明。
[0031]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以下实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内,因此本发明不受下面公开的具体实施例的限制。
[0032]正如【背景技术】的描述,目前多采用专用存储空间存储页面信息并遍历记录表来确定交换的页面,存在硬件和时间开销大的问题。为此,本发明提出了一种混合内存访问情况的记录方法,利用页面表中的空闲位和脏位进行存储,具体包括:
[0033]获取空闲位和脏位的表征值;
[0034]将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位;将脏位重置。
[0035]该方法使用页表项中的空闲位和脏位一起记录页面使用情况,其占用的是页表项的存储空间,利用页面被写入时脏位即被置I及空闲位原本未使用的特点,无需做另外专门的访存统计工作,也无需额外开辟存储空间存放统计结果,可以在遍历页表项时就一并获取其历史访问信息,减少了系统时间及空间上的开销。
[0036]在本发明中,PTE表项是由计算机硬件CPU和MMU模块建立的,空闲位是页表项中本身存在、但未使用的位;脏位为对页面是否做过写操作的标志位,通常地,置I表示进行过写操作。
[0037]为了更好的理解本发明,以下将结合具体的实施例的流程图图1进行详细的说明。在本实施例中,用于由PRAM和DRAM构成的内存访问的统计,以判断是否触发页面的迁移。
[0038]在本实施例中,利用Linux操作系统的三级映射的虚拟内存,在一个具体的实施例中,如图2所示,一个32位的虚拟地址被分为页目录10位,页表偏移量10位和页内偏移量12位。寄存器CR3存储了进程的页目录基地址,通过基地址加偏移量,找到页表基地址,而后加上页表偏移量就能找到物理页,通过页内偏移量就能找到确定的存储单元。
[0039]其中,第二级映射单元即为页表项(PTE),为一个32位的存储单元,其中高20位记录了对应物理页地址的基地址,低12位中有三位空闲位以及功能位和控制位,如图3所示,各位排布及说明如下:
[0040]P位表示Present,置I表示此页面正在内存中,否则置O。
[0041]R/W是读写位,表示此页面的访问权限。
[0042]U/S是权限位,即User/Supervisor,表示访问此页面所需的特权级别。
[0043]PffT和P⑶均用于确定页面的高速缓存处理方式。
[0044]A位表示Accessed,置I表示此页被访问过。
[0045]D位表示Dirty,置I表示对此页做过写操作。
[0046]在该实施例中,硬件为32位机,空闲位Avail共三位,分别为Abitll、AbitlO和AbitQ0可以理解的是,在其他实施例中,空闲位会随硬件的不同有所不同,例如硬件为64位机时,空闲位会设置有4位。在本发明中,利用其存储页面历史访问信息的表征值。在发生访存时,PTE由CPU硬件设置,并由操作系统内核清除。要获得各位的信息,直接进行读取相关字段的数值即可。
[0047]在本发明中,脏位D是页面历史访问信息的来源。本实施例中,分别将Abitll、Abi110、Abit9、D位赋予权值,且从左至右权值依次增高,例如权值分别为1、2、4、8,代表访问行为发生时间的远近,越近发生的访问权值越高。
[0048]在进行遍历时,每隔一定的周期,读取Abitll、AbitlO、Abit9、D位这四位中的表征值。
[0049]接着,根据权值和表征值,获得访存热度值。在本实施例中,由权值和与权值对应位的表征值得乘积得到访存热度值,即Abitll*l+Abitl0*2+Abit9*4+D*8,通过权值的设置来影响得到的访存热度值。
[0050]而后,判断访存热度值是否高于阈值,若是,则判定页面要被迁移。这样,通过空闲位与脏位就存储了页面的最近结构周期的使用情况,并依据该记录来判定一个页面是否该被迁移,无需额外的存储空间,也不需要再去维护页面的对应关系,可以在遍历页表项时就一并获取其历史访问信息,减少了遍历次数与时间开销。[0051]而后,无论是否发生触发,都进行这几位表征值的回写。如图4所示,将Abitll、AbitlO、Abit9、D位中的表征值依次左移,即AbitlO中的值移至Abitll,Abit9中的值移至AbitlO, D位中的值移至Abit9,Abitll移除丢弃,而后,将D位的表征值进行重置,即将脏位D置为初始状态0,该重置的步骤可以在迁移判定完成之后或迁移完成之后进行。重置后的脏位D为初始状态,以便在下一个周期时捕获新的值,本实施例中,所述脏位将在页面写操作发生时由处理器重新置位,即如发生写操作,由处理器将脏位置位为I。这样,使得空闲位Avail中存储并更新了页面的历史访问情况。
[0052]此外,还提供了利用上述方法构成的系统,在本实施例中,用于由PRAM和DRAM构成的内存访问,页表项的空闲位的每一位及脏位设置有权值,且由空闲位的高位至第一位、由第一位至脏位,权值依次升高,如图4所示,该系统包括:
[0053]写回单元,用于将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,并将脏位重置;
[0054]获取单元,用于获取空闲位和脏位的表征值;
[0055]访存热度单元,用于根据权值和表征值,得到访存热度值;
[0056]判断单元,用于判断访存热度值是否高于阈值,若是,则判定页面要被迁移。
[0057]在具体的实施例中,如上述利用Linux操作系统的三级映射的虚拟内存的系统中,页表项为Linux系统虚拟内存的第二级映射单元,获取单元由权值和与权值对应位的表征值得乘积得到访存热度值。通过空闲位Abitll、AbitlO、Abit9和D位的表征值获得历史页面的访问信息,获得该四位的表征值,从而,利用其判断页面是否要被迁移。
[0058]以上为利用本发明的内存访问情况的记录方法进行页面迁移判断的实施例。可以理解的是,在其他的实施例中,还可以利用本发明的记录方法进行其他的操作,例如仅进行一段周期内的页面访问次数的统计等。
[0059]本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【权利要求】
1.一种内存访问情况的记录方法,其特征在于,包括步骤: 获取页表项中空闲位和脏位的表征值; 进行写回步骤,具体包括:将页表项中脏位的表征值移入页表项中空闲位的第一位,空闲位中每一位的表征值顺次移入更高位;将脏位重置。
2.根据权利要求1所述的记录方法,其特征在于,空闲位及脏位设置有权值,且由空闲位的高位至第一位、由第一位至脏位,其权值依次升高,在获取页表项中空闲位和脏位的表征值之后,进行写回步骤之前,还包括步骤: 根据权值和表征值,得到访存热度值; 判断是否进行迁移:判断访存热度值是否高于阈值,若是,则判定页面要被迁移。
3.根据权利要求2所述的记录方法,其特征在于,根据权值和表征值,得到访存热度值的步骤具体为:由权值和与权值对应位的表征值得乘积得到访存热度值。
4.根据权利要求2所述的记录方法,其特征在于,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
5.根据权利要求4所述的记录方法,其特征在于,所述脏位在页面写操作发生时由处理器重新置位。
6.一种内存访问情况的记录系统,其特征在于,包括: 获取单元,用于获取空闲位和脏位的表征值; 写回单元,用于将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,最高位丢弃;将脏位重置。
7.根据权利要求6所述的记录系统,其特征在于,空闲位及脏位设置有权值,且由空闲位的高位至第一位、由第一位至脏位,其权值依次升高,系统还包括: 访存热度单元,用于根据权值和表征值,得到访存热度值; 判断单元,用于判断访存热度值是否高于阈值,若是,则判定页面要被迁移。
8.根据权利要求7所述的记录系统,其特征在于,所述获取单元,由权值和与权值对应位的表征值得乘积得到访存热度值。
9.根据权利要求6所述的记录系统,其特征在于,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
10.根据权利要求7所述的记录系统,其特征在于,所述脏位在页面写操作发生时由处理器重新置位。
【文档编号】G06F12/08GK103914403SQ201410175738
【公开日】2014年7月9日 申请日期:2014年4月28日 优先权日:2014年4月28日
【发明者】陈岚, 覃力, 郝晓冉 申请人:中国科学院微电子研究所

最新回复(0)