CN103914403B - 一种混合内存访问情况的记录方法及其系统 - Google Patents

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

Info

Publication number
CN103914403B
CN103914403B CN201410175738.1A CN201410175738A CN103914403B CN 103914403 B CN103914403 B CN 103914403B CN 201410175738 A CN201410175738 A CN 201410175738A CN 103914403 B CN103914403 B CN 103914403B
Authority
CN
China
Prior art keywords
spare bits
weights
page
table entry
value
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.)
Active
Application number
CN201410175738.1A
Other languages
English (en)
Other versions
CN103914403A (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.)
Institute of Microelectronics of CAS
Original Assignee
Institute of Microelectronics 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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN201410175738.1A priority Critical patent/CN103914403B/zh
Publication of CN103914403A publication Critical patent/CN103914403A/zh
Application granted granted Critical
Publication of CN103914403B publication Critical patent/CN103914403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种内存访问情况的记录方法,包括步骤:获取页表项中空闲位和脏位的表征值;进行写回步骤,具体包括:将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,并将脏位重置。本发明使用页表项中的空闲位和脏位一起记录页面使用情况,利用页面被写入时脏位即被置1及空闲位原本未使用的特点,无需做另外专门的访存统计工作,也无需额外开辟存储空间存放统计结果,可以在遍历页表项时就一并获取其历史访问信息,减少了系统时间及空间上的开销。

Description

一种混合内存访问情况的记录方法及其系统
技术领域
本发明涉及存储器领域,尤其涉及一种混合内存访问情况的记录方法及其系统。
背景技术
DRAM(Dynamic Random Access Memory,动态随机存储器)一直以来担当着计算机体系中主存储器的角色,但随着集成电路关键尺寸的不断减小,DRAM在尺寸收缩、功耗控制、存储密度和发热量等方面遇到了极大的挑战,其技术已接近瓶颈,迫切需要找到新的替代者。PRAM(Phase change RandomAccess Memory,相变随机存储器)凭借其优良的特性已逐步成为最有可能取代DRAM地位的存储器件。
然而,与DRAM相比,PRAM的读功耗低、静态功耗低,但其写功耗和写延时均比较大,因此PRAM还不能完全取代DRAM独自成为主存。目前最常见的方法是让PRAM与DRAM一同构成混合主存。在DRAM-PRAM的混合存储架构下,为了最大化的发挥两种存储器件的优点以降低内存系统的功耗,已有的技术均是通过对内存页面读、写次数的统计,将DRAM中读频繁的页面迁入PRAM,而将PRAM中写频繁的页面迁入DRAM,从而充分发挥DRAM写功耗低、写延时低,PRAM读功耗低的优点。
在混合内存的使用中,如何准确的选择需要交换的页面,是让混合内存高效运转的关键所在。根据经典的时间局部性原理,当前被访问的页面极有可能在接下来的时间内继续被访问。目前,记录下最近一段时间内页面的访问情况,并通过一定算法选择出最佳交换页面是混合内存中选择交换页面的主要方法。为了记录页面最近一段时间的访问情况,通常是开辟一段专用的存储空间,占用额外硬件空间,增加了成本,存储页面的访问情况,并维护记录与页面的对应关系,在每次选择页面时遍历页表及记录表,时间开销增大。
发明内容
本发明的实施例提供了一种内存访问情况的记录方法及系统,无需额外硬件空间,减小时间开销,提高系统效率。
为实现上述目的,本发明实施例提供了如下技术方案:
一种内存访问情况的记录方法,包括步骤:
获取页表项中空闲位和脏位的表征值,所述空闲位是页表项中本身存在、但未使用的位,所述空闲位及脏位设置有权值;
根据所述权值和与所述权值对应的表征值,得到访存热度值;
判断访存热度值是否高于阈值,若是,则判定页面要被迁移;
进行写回步骤,具体包括:将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位;将脏位重置。
可选的,所述空闲位及脏位设置的权值由空闲位的高位至第一位、由第一位至脏位,其权值依次升高。可选的,根据权值和表征值,得到访存热度值的步骤具体为:由权值和与权值对应位的表征值的乘积得到访存热度值。
可选的,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
可选的,所述脏位在页面写操作发生时由处理器重新置位。
此外,本发明还提供了一种内存访问情况的记录系统,包括:
获取单元,用于获取空闲位和脏位的表征值,所述空闲位是页表项中本身存在、但未使用的位,所述空闲位及脏位设置有权值;
访存热度单元,用于根据所述权值和与所述权值对应的表征值,得到访存热度值;
判断单元,用于判断访存热度值是否高于阈值,若是,则判定页面要被迁移;
写回单元,用于将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,最高位丢弃;将脏位重置。
可选的,所述空闲位及脏位设置的权值由空闲位的高位至第一位、由第一位至脏位,其权值依次升高。
可选的,所述获取单元,由权值和与权值对应位的表征值的乘积得到访存热度值。
可选的,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
可选的,所述脏位在页面写操作发生时由处理器重新置位。
本发明实施例提供的内存访问情况的记录方法及系统,使用页表项中的空闲位和脏位一起记录页面使用情况,利用页面被写入时脏位即被置1及空闲位原本未使用的特点,无需做另外专门的访存统计工作,也无需额外开辟存储空间存放统计结果,可以在遍历页表项时就一并获取其历史访问信息,减少了系统时间及空间上的开销。
附图说明
图1为根据本发明实施例的混合内存访问情况的记录方法的流程图示意图;
图2为Linux的三级映射的虚拟内存的结构示意图;
图3为图2中的页表项中的存储单元的示意图;
图4为根据本发明实施例的混合内存访问情况的记录系统的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以下实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内,因此本发明不受下面公开的具体实施例的限制。
正如背景技术的描述,目前多采用专用存储空间存储页面信息并遍历记录表来确定交换的页面,存在硬件和时间开销大的问题。为此,本发明提出了一种混合内存访问情况的记录方法,利用页面表中的空闲位和脏位进行存储,具体包括:
获取空闲位和脏位的表征值;
将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位;将脏位重置。
该方法使用页表项中的空闲位和脏位一起记录页面使用情况,其占用的是页表项的存储空间,利用页面被写入时脏位即被置1及空闲位原本未使用的特点,无需做另外专门的访存统计工作,也无需额外开辟存储空间存放统计结果,可以在遍历页表项时就一并获取其历史访问信息,减少了系统时间及空间上的开销。
在本发明中,PTE表项是由计算机硬件CPU和MMU模块建立的,空闲位是页表项中本身存在、但未使用的位;脏位为对页面是否做过写操作的标志位,通常地,置1表示进行过写操作。
为了更好的理解本发明,以下将结合具体的实施例的流程图图1进行详细的说明。在本实施例中,用于由PRAM和DRAM构成的内存访问的统计,以判断是否触发页面的迁移。
在本实施例中,利用Linux操作系统的三级映射的虚拟内存,在一个具体的实施例中,如图2所示,一个32位的虚拟地址被分为页目录10位,页表偏移量10位和页内偏移量12位。寄存器CR3存储了进程的页目录基地址,通过基地址加偏移量,找到页表基地址,而后加上页表偏移量就能找到物理页,通过页内偏移量就能找到确定的存储单元。
其中,第二级映射单元即为页表项(PTE),为一个32位的存储单元,其中高20位记录了对应物理页地址的基地址,低12位中有三位空闲位以及功能位和控制位,如图3所示,各位排布及说明如下:
P位表示Present,置1表示此页面正在内存中,否则置0。
R/W是读写位,表示此页面的访问权限。
U/S是权限位,即User/Supervisor,表示访问此页面所需的特权级别。
PWT和PCD均用于确定页面的高速缓存处理方式。
A位表示Accessed,置1表示此页被访问过。
D位表示Dirty,置1表示对此页做过写操作。
在该实施例中,硬件为32位机,空闲位Avail共三位,分别为Abit11、Abit10和Abit9。可以理解的是,在其他实施例中,空闲位会随硬件的不同有所不同,例如硬件为64位机时,空闲位会设置有4位。在本发明中,利用其存储页面历史访问信息的表征值。在发生访存时,PTE由CPU硬件设置,并由操作系统内核清除。要获得各位的信息,直接进行读取相关字段的数值即可。
在本发明中,脏位D是页面历史访问信息的来源。本实施例中,分别将Abit11、Abit10、Abit9、D位赋予权值,且从左至右权值依次增高,例如权值分别为1、2、4、8,代表访问行为发生时间的远近,越近发生的访问权值越高。
在进行遍历时,每隔一定的周期,读取Abit11、Abit10、Abit9、D位这四位中的表征值。
接着,根据权值和表征值,获得访存热度值。在本实施例中,由权值和与权值对应位的表征值得乘积得到访存热度值,即Abit11*1+Abit10*2+Abit9*4+D*8,通过权值的设置来影响得到的访存热度值。
而后,判断访存热度值是否高于阈值,若是,则判定页面要被迁移。这样,通过空闲位与脏位就存储了页面的最近结构周期的使用情况,并依据该记录来判定一个页面是否该被迁移,无需额外的存储空间,也不需要再去维护页面的对应关系,可以在遍历页表项时就一并获取其历史访问信息,减少了遍历次数与时间开销。
而后,无论是否发生触发,都进行这几位表征值的回写。如图4所示,将Abit11、Abit10、Abit9、D位中的表征值依次左移,即Abit10中的值移至Abit11,Abit9中的值移至Abit10,D位中的值移至Abit9,Abit11移除丢弃,而后,将D位的表征值进行重置,即将脏位D置为初始状态0,该重置的步骤可以在迁移判定完成之后或迁移完成之后进行。重置后的脏位D为初始状态,以便在下一个周期时捕获新的值,本实施例中,所述脏位将在页面写操作发生时由处理器重新置位,即如发生写操作,由处理器将脏位置位为1。这样,使得空闲位Avail中存储并更新了页面的历史访问情况。
此外,还提供了利用上述方法构成的系统,在本实施例中,用于由PRAM和DRAM构成的内存访问,页表项的空闲位的每一位及脏位设置有权值,且由空闲位的高位至第一位、由第一位至脏位,权值依次升高,如图4所示,该系统包括:
写回单元,用于将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,并将脏位重置;
获取单元,用于获取空闲位和脏位的表征值;
访存热度单元,用于根据权值和表征值,得到访存热度值;
判断单元,用于判断访存热度值是否高于阈值,若是,则判定页面要被迁移。
在具体的实施例中,如上述利用Linux操作系统的三级映射的虚拟内存的系统中,页表项为Linux系统虚拟内存的第二级映射单元,获取单元由权值和与权值对应位的表征值得乘积得到访存热度值。通过空闲位Abit11、Abit10、Abit9和D位的表征值获得历史页面的访问信息,获得该四位的表征值,从而,利用其判断页面是否要被迁移。
以上为利用本发明的内存访问情况的记录方法进行页面迁移判断的实施例。可以理解的是,在其他的实施例中,还可以利用本发明的记录方法进行其他的操作,例如仅进行一段周期内的页面访问次数的统计等。
本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (10)

1.一种内存访问情况的记录方法,其特征在于,包括步骤:
获取页表项中空闲位和脏位的表征值,所述空闲位是页表项中本身存在、但未使用的位,所述空闲位及脏位设置有权值;
根据所述权值和与所述权值对应的表征值,得到访存热度值;
判断访存热度值是否高于阈值,若是,则判定页面要被迁移;
进行写回步骤,具体包括:将页表项中脏位的表征值移入页表项中空闲位的第一位,空闲位中每一位的表征值顺次移入更高位;将脏位重置。
2.根据权利要求1所述的记录方法,其特征在于,所述空闲位及脏位设置的权值由空闲位的高位至第一位、由第一位至脏位,其权值依次升高。
3.根据权利要求2所述的记录方法,其特征在于,根据权值和表征值,得到访存热度值的步骤具体为:由权值和与权值对应位的表征值的乘积得到访存热度值。
4.根据权利要求2所述的记录方法,其特征在于,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
5.根据权利要求4所述的记录方法,其特征在于,所述脏位在页面写操作发生时由处理器重新置位。
6.一种内存访问情况的记录系统,其特征在于,包括:
获取单元,用于获取空闲位和脏位的表征值,所述空闲位是页表项中本身存在、但未使用的位,所述空闲位及脏位设置有权值;
访存热度单元,用于根据所述权值和与所述权值对应的表征值,得到访存热度值;
判断单元,用于判断访存热度值是否高于阈值,若是,则判定页面要被迁移;
写回单元,用于将页表项中脏位的表征值移入页表项空闲位的第一位,空闲位中每一位的表征值顺次移入更高位,最高位丢弃;将脏位重置。
7.根据权利要求6所述的记录系统,其特征在于,所述空闲位及脏位设置的权值由空闲位的高位至第一位、由第一位至脏位,其权值依次升高。
8.根据权利要求7所述的记录系统,其特征在于,所述获取单元,由权值和与权值对应位的表征值的乘积得到访存热度值。
9.根据权利要求6所述的记录系统,其特征在于,所述脏位在判断是否进行迁移完成之后或在页面迁移完成之后被重置。
10.根据权利要求7所述的记录系统,其特征在于,所述脏位在页面写操作发生时由处理器重新置位。
CN201410175738.1A 2014-04-28 2014-04-28 一种混合内存访问情况的记录方法及其系统 Active CN103914403B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410175738.1A CN103914403B (zh) 2014-04-28 2014-04-28 一种混合内存访问情况的记录方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410175738.1A CN103914403B (zh) 2014-04-28 2014-04-28 一种混合内存访问情况的记录方法及其系统

Publications (2)

Publication Number Publication Date
CN103914403A CN103914403A (zh) 2014-07-09
CN103914403B true CN103914403B (zh) 2016-11-02

Family

ID=51040103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410175738.1A Active CN103914403B (zh) 2014-04-28 2014-04-28 一种混合内存访问情况的记录方法及其系统

Country Status (1)

Country Link
CN (1) CN103914403B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094686B (zh) 2014-05-09 2018-04-10 华为技术有限公司 数据缓存方法、缓存和计算机系统
CN104899154B (zh) * 2015-06-10 2017-08-29 山东大学 基于嵌入式系统混合主存的页面管理方法
CN107562645B (zh) * 2017-08-24 2021-03-23 华为技术有限公司 一种内存页管理方法及计算设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101095116A (zh) * 2004-11-05 2007-12-26 数据机器人技术公司 允许各种规模存储装置的动态可扩展和可收缩的容错存储系统和方法
CN102097128A (zh) * 2010-11-25 2011-06-15 中国人民大学 一种基于闪存的自适应缓冲区置换方法
CN102147714A (zh) * 2011-03-17 2011-08-10 杭州宏杉科技有限公司 一种网络存储系统的管理方法及装置
WO2012083695A1 (zh) * 2011-07-28 2012-06-28 华为技术有限公司 内存迁移的实现方法和装置
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101095116A (zh) * 2004-11-05 2007-12-26 数据机器人技术公司 允许各种规模存储装置的动态可扩展和可收缩的容错存储系统和方法
CN102097128A (zh) * 2010-11-25 2011-06-15 中国人民大学 一种基于闪存的自适应缓冲区置换方法
CN102147714A (zh) * 2011-03-17 2011-08-10 杭州宏杉科技有限公司 一种网络存储系统的管理方法及装置
WO2012083695A1 (zh) * 2011-07-28 2012-06-28 华为技术有限公司 内存迁移的实现方法和装置
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统

Also Published As

Publication number Publication date
CN103914403A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
CN103425600B (zh) 一种固态盘闪存转换层中的地址映射方法
CN103019958B (zh) 使用数据属性来管理固态存储器里的数据的方法
CN107066393B (zh) 提高地址映射表中映射信息密度的方法
Chen et al. Age-based PCM wear leveling with nearly zero search cost
CN105095116B (zh) 缓存替换的方法、缓存控制器和处理器
CN102768645B (zh) 混合缓存的固态硬盘预取方法和固态硬盘ssd
CN103150136B (zh) 基于ssd的大容量缓存中的lru策略实现方法
CN104102591A (zh) 计算机子系统及在其中实现闪存转换层的方法
JP2007334852A5 (zh)
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
CN105095113B (zh) 一种缓存管理方法和系统
Xu et al. CAST: A page-level FTL with compact address mapping and parallel data blocks
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
CN110532200B (zh) 一种基于混合内存架构的内存系统
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
CN103914403B (zh) 一种混合内存访问情况的记录方法及其系统
Yuan et al. PR-LRU: A novel buffer replacement algorithm based on the probability of reference for flash memory
KR20150062039A (ko) 반도체 장치 및 그 동작 방법
CN109478164A (zh) 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法
CN106909323A (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
CN109783019A (zh) 一种数据智能存储管理方法与装置
Yang et al. Efficient buffer management for tree indexes on solid state drives
CN113253926A (zh) 提升新型存储器的查询和存储性能的存储内索引构建方法
CN109324980A (zh) 一种l2p表管理方法、数据读取方法、装置及设备
Jin et al. Write-aware buffer management policy for performance and durability enhancement in NAND flash memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant