一种混合内存的管理方法、系统、设备及介质与流程

文档序号:18899425发布日期:2019-10-18 21:43阅读:192来源:国知局
一种混合内存的管理方法、系统、设备及介质与流程

本发明涉及内存管理领域,尤其涉及一种混合内存的管理方法、系统、设备及介质。



背景技术:

传统的计算机主存系统都是由动态随机存储器(dynamicrandomaccessmemory,dram)构成。一个dram单元由一个电容加一个晶体管组成,这种结构使得存储单元中的电容的电荷会随着时间推移而逐渐泄露,所以dram内存系统需要定期的充电刷新来保持数据。另一方面,在进行读取操作的时候,dram进行破坏性读取,捕获电荷的同时破坏了原有的存储信息,因此每次读取操作结束后需要进行刷新操作,将行缓冲里的数据写回dram存储单元,这些特性导致了dram的功耗较高。

相变随机存储器(phasechangememory,pcm)技术的出现为内存系统优化提供了新的解决方案。相变存储器(pcm)具有与dram接近的访存延迟,且集成度明显高于dram,另外还具有极低的静态功耗,以上优点使得pcm最有可能替代dram。pcm的基本存储原理是利用硫族化合物在晶态和非晶态之间巨大的导电性差异来存储数据,利用电流热效应完成存储过程。但是,pcm也存在一些缺陷,如读写非对称,尤其是写操作的延迟和能耗要远高于读操作。而且pcm可承受的写操作的次数有限,对pcm的使用寿命有影响。

针对pcm写操作的延迟和功耗远高于读操作的缺陷,提出了pcm+dram的混合内存架构,需要设计新的内存管理策略,从而规避pcm写操作的固有缺陷,充分发挥混合内存结构的优势。现有混合内存管理技术多面向通用计算机系统,通常会使用复杂的算法,占用较多的资源。或者需要操作系统进行配合,增加了混合内存系统设计的复杂度。对于嵌入式系统,硬件和软件资源都非常有限。



技术实现要素:

针对目前存在的技术问题,本发明的主要目的在于提供一种混合内存的管理方法、系统、设备及介质。

本发明实施例第一方面提供一种混合内存的管理方法,包括:s1,当相变随机存储器的页面被写请求访问后,将该页面加入历史记录队列;s2,判断历史记录队列中的页面在第一预设时间段内是否再次被写请求访问,若是,则将该页面移动至等待迁移队列,若否,则淘汰该页面;s3,判断等待迁移队列中的页面在第二预设时间段内是否再次被写请求访问,若否,则淘汰该页面,若是,则执行操作s4;s4,判断等待迁移队列中的页面被写请求访问的次数是否达到预设迁移阈值,若是,将该页面迁移至动态随机存储器,并选取动态随机存储器中非相变随机存储器迁移进来的页面交换该页面;s5,记录迁移至动态随机存储器的页面的访存地址。

可选地,等待迁移队列中的页面添加有标记位;当历史记录队列中的页面被移动至等待迁移队列时,将该页面的标记位设置为0,若该页面被再次写请求访问,将该页面的标记位设置为1。

可选地,若迁移队列中标记位为1的页面被写请求访问,则将该页面迁移至动态随机存储器。

可选地,若等待迁移队列中的页面数量达到预设阈值,则搜索等待迁移队列中标记位为0的页面进行淘汰;若所有页面的标记位都为1,则将所有页面的标记位设置为0。

可选地,在将相变随机存储器中的页面迁移至动态随机存储器过程中,预先将需要迁移的页面迁移至寄存器。

可选地,当相变随机存储器中的页面迁移至动态随机存储器时,对该页面进行标记;选取动态随机存储器中非相变随机存储器迁移进来的页面交换该页面包括:若选择的交换页面未被标记,则直接进行交换,若选择的交换页面已被标记,则选择与被标记的页面相邻的未被标记的页面进行交换。

本发明实施例第二方面提供一种混合内存的管理系统,包括:迁移算法模块,用于判断相变随机存储器的页面是否满足迁移条件;迁移控制模块,用于将相变随机存储器中满足迁移条件的页面迁移至动态随机存储器;地址映射模块,用于记录迁移至动态随机存储器后的页面的访存地址。

可选地,迁移算法模块包括:第一算法模块,用于当相变随机存储器的页面被写请求访问后,将该页面加入历史记录队列,并判断历史记录队列中的页面在第一预设时间段内是否再次被写请求访问,若是,则将该页面移动至等待迁移队列,若否,则淘汰该页面;第二算法模块,用于判断等待迁移队列中的页面在第二预设时间段内是否再次被写请求访问,若否,则淘汰该页面;若是,判断等待迁移队列中的页面被写请求防问的次数是否达到预设迁移阈值,若是,则该页面满足迁移条件。

本发明实施例第三方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现本发明实施例第一方面提供的混合内存管理方法。

本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的混合内存管理方法。

从上述本发明实施例可知,本发明提供的一种混合内存管理方法、系统、设备及介质,采用改进的双队列算法实现页面迁移,能够迅速、准确地筛选出pcm中写操作密集的页面,同时还避免了冗余的迁移。使用较为简单的硬件结构完成了混合内存页面管理,所提出的算法针对物联网嵌入式应用场景进行了优化,适合应用于资源受限的物联网嵌入式终端。

附图说明

为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本发明实施例混合内存管理方法的流程示意图。

图2示意性示出了根据本发明实施例改进的双队列算法示意图。

图3示意性示出了根据本发明实施例混合内存管理系统的架构框图。

图4示意性示出了根据本发明实施例混合内存管理系统的架构框图。

图5示意性示出了根据本发明实施例电子设备的硬件结构框图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开了一种基于内存控制器的混合内存管理方法。针对动态随机存储器和相变存储器构成混合内存结构,在内存控制器中添加控制模块实现对混合内存的管理。本发明提出一种改进的双队列算法,筛选出相变存储器中写请求较多的内存页面,并通过地址映射模块和页面迁移模块将写请求较多的页面从相变存储器迁移到动态随机存储器中,规避相变存储器写操作的缺陷,从而实现对低功耗混合内存结构的性能优化。下面详细介绍。

请参见图1,图1是本发明第一实施例提供的混合内存管理方法的流程图,该方法使用一种改进的双队列算法。由于对pcm中的页面进行写操作功耗较高、延迟较大而且会影响pcm的寿命。为了避免对pcm中的页面进行过多的写操作,需要将频繁被写的页面从pcm迁移到dram。通过改进迁移算法,使pcm中的写操作频繁的页面被迅速筛选出来。

双队列算法维护两个队列,一个队列为历史记录队列,该队列使用先进先出策略(firstinputfirstoutput,fifo)管理。另一个队列为等待迁移队列,该队列使用最近未使用算法(notrecentlyused,nru)管理。改进的双队列算法不关注读请求访问的页面,专注于写请求所访问的页面,提升页面迁移的效率。该方法包括:

s1,当相变随机存储器的页面被写请求访问后,将该页面加入历史记录队列。

s2,判断历史记录队列中的页面在第一预设时间段内是否再次被写请求访问,若是,则将该页面移动至等待迁移队列,若否,则淘汰该页面。

该第一预设时间可以分、小时、天、月或年为单位,具体本发明不加以限制。对于在第一预设时间段内未被访问的页面,需要将其淘汰出历史记录队列中,队列的长度决定了页面的生存时间。

s3,判断等待迁移队列中的页面在第二预设时间段内是否再次被写请求访问,若否,则淘汰该页面,若是,则执行操作s4。

该第二预设时间可以分、小时、天、月或年为单位,具体本发明不加以限制。

进入等待迁移队列的页面不再进行升级,仅增加一个标记位记录访问次数。图2为本实施例提供的改进的双队列算法示意图,如图2所示,等待迁移队列中的每一个页面增加一个标记位。当页面从历史记录队列中放入等待迁移队列时,标记位被置0。页面再次被写请求访问后,标记位置为1。当标记位为1的页面被写请求访问,则进行迁移。如果nru队列已满,则搜索标记位为0的页面进行淘汰。若所有标记位都为1,则将全部页面标记位置为0。

s4,判断等待迁移队列中的页面被写请求访问的次数是否达到预设迁移阈值,若是,将该页面迁移至动态随机存储器,并选取动态随机存储器中非相变随机存储器迁移进来的页面交换该页面。

由于pcm可承受的写操作的次数有限,对于pcm中的一个页面,为了避免对页面进行过多的写操作,一般都会设置访问次数的一个阈值,例如,该阈值可设置为10、20、30...,具体写请求访问次数本发明不加以限制。当等待迁移队列中的页面被写请求访问的次数达到该阈值时,则表明该页面写操作频繁,需要将其迁移至dram。

当pcm中有一页面被迁移至dram,需要从dram选取一页面对该页面进行替换,交换回pcm中。一般情况下,该交换页面不能为之前从pcm迁入至dram的页面。为了防止将已经从pcm迁移到dram中的页面再替换回pcm,需要在页面初次迁移时,对页面进行标记。在dram中选择交换页时,若页面未被标记过,则可直接交换。若页面已被标记,则选择相邻的未被标记过的页面作为交换页。该标记方式可自由选择,可将从pcm迁入至dram的页面标记为“y”,将dram原有的页面标记为“n”具体标记方式本发明不加以限制。

在页面迁移和交换过程中,会先将页面放入寄存器中,此时若有请求需要访问正在迁移的页面,可直接对寄存器中的页面进行操作。这样可以有效减少迁移操作带来的延迟。

s5,记录迁移至动态随机存储器的页面的访存地址。

在页面没有被迁移的情况下,可根据原先的地址映射表按照正常的访存流程进行,当页面被迁移过后,访存地址会发生改变,为了能够得到正确的访问数据,会对pcm迁入至dram的页面的新的访存地址进行记录,构成新的地址映射表,以便后期访问。

本实施例提供的混合内存管理方法,采用改进的双队列算法实现页面迁移,能够迅速、准确地筛选出pcm中写操作密集的页面,同时还避免了冗余的迁移。

请参见图3及图4,图3及图4为本发明第二实施例提供的混合内存管理系统的架构框图,该系统通过对内存控制器结构进行扩展,集成混合内存系统管理模块,从而实现对混合内存系统的控制和优化。基于硬件结构实现dram和pcm的页面管理机制能够在对操作系统、用户透明的前提下完成系统优化,提升系统性能。如图3所示,该系统包括:

迁移算法模块,用于判断相变随机存储器的页面是否满足迁移条件。具体的,迁移算法模块包括:

第一算法模块,用于当相变随机存储器的页面被写请求访问后,将该页面加入历史记录队列,并判断历史记录队列中的页面在第一预设时间段内是否再次被写请求访问,若是,则将该页面移动至等待迁移队列,若否,则淘汰该页面。

第二算法模块,用于判断等待迁移队列中的页面在第二预设时间段内是否再次被写请求访问,若否,则淘汰该页面;若是,判断等待迁移队列中的页面被写请求访问的次数是否达到预设迁移阈值,若是,则该页面满足迁移条件。

迁移控制模块,用于将相变随机存储器中满足迁移条件的页面迁移至动态随机存储器。迁移控制模块决定页面迁移的时机。当内存页面满足迁移条件时,由迁移控制模块启动迁移机制。在页面迁移和交换过程中,会先将页面放入寄存器中,此时若有请求需要访问正在迁移的页面,可直接对寄存器中的页面进行操作。这样可以有效减少迁移操作带来的延迟。迁移控制模块将页面从pcm迁移到dram中,需要从dram选取一个页面交换回pcm中。为了防止将已经从pcm迁移到dram中的页面再替换回pcm,需要在页面初次迁移时,对页面进行标记。在dram中选择交换页时,若页面未被标记过,则可直接交换。若页面已被标记,则选择相邻的未被标记过的页面作为交换页。

地址映射模块,用于记录迁移至所述动态随机存储器后的页面的访存地址。地址映射模块由内存控制器维护的地址映射表构成。从总线传入的访存请求,首先根据访存地址判断是否被迁移过,如果没有经过迁移,则按照正常访存流程进行。若访存地址被迁移过,则会查找内存控制器中的地址映射表,访问映射后的新地址。地址映射模块保证页面被迁移后,当请求再次访问被迁移的页面时,能够得到正确的数据。

内存控制器调度算法使用fr-fcfs,优先响应行缓冲命中的请求。页面迁移算法模块使用改进的双队列算法,第一模块采用的是fifo算法,第二模块采用的是nru算法,如图4所示。当页面达到迁移阈值,则交给迁移控制模块进行迁移。迁移完成后,将已迁移的页面记录在地址映射模块。

本实施例未尽细节之处,请参见第一实施例。

本实施例提供的混合内存管理系统,使用较为简单的硬件结构完成了混合内存页面管理,所提出的双队列算法针对物联网嵌入式应用场景进行了优化,适合应用于资源受限的物联网嵌入式终端。

请参见图5,图5是本发明第三实施例电子设备的硬件结构示意图。

本实施例所描述的电子设备,包括:

存储器51、处理器52及存储在存储器51上并可在处理器上运行的计算机程序,处理器执行该程序时实现前述图1所示实施例中描述的混合内存管理方法。

进一步地,该电子设备还包括:

至少一个输入设备53;至少一个输出设备54。

上述存储器51、处理器52输入设备53和输出设备54通过总线55连接。

其中,输入设备53具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备54具体可为显示屏。

存储器51可以是易失性存储器,例如ram(randomaccessmemory),也可为非易失性存储器(non-volatilememory),例如磁盘存储器。存储器51用于存储一组可执行程序代码,处理器52与存储器51耦合。

进一步地,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的终端中,该计算机可读存储介质可以是前述图5所示实施例中的存储器。该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述图1所示实施例中描述的混合内存管理方法。进一步地,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请所提供的多个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信链接可以是通过一些接口,模块的间接耦合或通信链接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本公开所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本公开所提供的混合内存的管理方法、系统、设备及介质的描述,对于本领域的一般技术人员,依据本公开实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本公开的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1