一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于存储器的数据迁移方法及装置与流程

2023-02-19 09:52:13 来源:中国专利 TAG:


1.本发明实施例涉及计算机存储技术领域,具体涉及一种基于存储器的数据迁移方法及装置。


背景技术:

2.计算机存储体系中,内存储器具有高访问性能、易失性和容量小等特点,外存储器具有低访问性能、非易失性和容量大等特点。传统的存储控制器基于内存储器-外存储器两层架构,以数据页为单位进行数据的迁移,提升存储系统的性能。随着非易失性内存储器的发展,其较高访问性能、非易失性、较高容量、较低寿命的特点引发存储系统的升级。常见的混合内存储器、非易失性内存储器及外存储器的存储系统,在数据页读取路径通常是将数据页从外存储器迁移至非易失性内存储器再至内存储器,而数据页的写路径通常相反从内存储器迁移至非易失性内存储器再至外存储器。
3.现有技术利用了非易失性存储的特性提升存储系统的性能,并用磨损算法均衡分配写负载到非易失性存储中来延长使用寿命。现有的方法并没有从数据页的整个迁移路径进行全局考虑,存在冷热数据的迁移重复,造成存储性能及非易失性存储寿命损失。


技术实现要素:

4.鉴于上述问题,本发明实施例提供了一种基于存储器的数据迁移方法及装置,克服了上述问题或者至少部分地解决了上述问题。
5.根据本发明实施例的一个方面,提供了一种基于存储器的数据迁移方法,方法包括:分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,第一队列和第二队列分别用于记录第一内存储器和第二内存储器中逻辑页面的状态信息,状态信息至少包括逻辑页面的页面编号、操作频次以及修改标志;根据对第一逻辑页面的读写操作更新第一逻辑页面的状态信息,并调整状态信息在第一队列或第二队列的第一存储位置;如果需要向第一内存储器中存储第一逻辑页面,则根据第一内存储器的存储情况将第一逻辑页面从外存储器载入第一内存储器,并将第一逻辑页面的状态信息存入第一队列;如果需要向第二内存储器中存储第一逻辑页面,则根据第二内存储器的存储情况将第一逻辑页面从第一内存储器载入第二内存储器,并将第一逻辑页面的状态信息存入第二队列,同时删除位于第一队列的第一逻辑页面的状态信息;如果需要从第一内存储器或第二内存储器中迁出第二逻辑页面,则根据第二逻辑页面的修改标志迁出对应的第一队列或第二队列末端位置的第二逻辑页面,并删除对应的位于第一队列或第二队列中的第二逻辑页面的状态信息。
6.在一种可选的方式中,分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,还包括:将第一队列和第二队列分别分为高频区和低频区;根据操作频次将逻辑页面的状态信息存储在第一队列或第二队列中对应的高频区或低频区;建立页面目录表,页面目录表以逻辑页面的页面编号为索引存储逻辑页面在第一队
列或第二队列中的第一存储位置。
7.在一种可选的方式中,根据对第一逻辑页面的读写操作更新第一逻辑页面的状态信息,并调整状态信息在第一队列或第二队列的第一存储位置,包括:根据页面目录表判断待读取的第一逻辑页面是否存储在第一内存储器或第二内存储器中;如果第一逻辑页面未存储在第一内存储器和第二内存储器中,则执行根据第一内存储器的存储情况将第一逻辑页面从外存储器载入第一内存储器,并将第一逻辑页面的状态信息存入第一队列的步骤;如果第一逻辑页面存储在第一内存储器或第二内存储器中,则从第一内存储器或第二内存储器中读取第一逻辑页面,将状态信息中的操作频次加1,同时根据更新的操作频次调整状态信息在第一队列或第二队列的第一存储位置;或者,将第一逻辑页面写入第一内存储器或第二内存储器中,将状态信息中的操作频次加1,修改标志设置为已修改,同时根据更新的操作频次调整状态信息在第一队列或第二队列的第一存储位置。
8.在一种可选的方式中,根据操作频次调整状态信息在第一队列或第二队列的第一存储位置,包括:如果更新的操作频次大于等于预设频次,则将第一逻辑页面更新至高频区的起点位置;如果更新的操作频次小于预设频次,则将第一逻辑页面更新至低频区的起点位置。
9.在一种可选的方式中,根据第二逻辑页面的修改标志迁出对应的第一队列或第二队列末端位置的第二逻辑页面,并删除对应的位于第一队列或第二队列中的第二逻辑页面的状态信息,包括:如果状态信息中的修改标志为已修改,则将位于第二队列的低频区末端位置的第二逻辑页面载入外存储器,删除第二队列中第二逻辑页面的状态信息;或者,将位于第一队列的低频区末端位置的第二逻辑页面载入第二内存储器,删除第一队列中第二逻辑页面的状态信息,在第二队列中添加第二逻辑页面的状态信息;如果修改标志为未修改,则直接淘汰第一队列或第二队列的低频区末端位置的第二逻辑页面,并删除对应的位于第一队列或第二队列中的第二逻辑页面的状态信息。
10.在一种可选的方式中,根据第一内存储器的存储情况将第一逻辑页面从外存储器载入第一内存储器,并将第一逻辑页面的状态信息存入第一队列,包括:如果第一内存储器中已存满逻辑页面,则执行根据第二逻辑页面的修改标志迁出对应的第一队列末端位置的第二逻辑页面,并删除对应的位于第一队列或第二队列中的第二逻辑页面的状态信息的步骤;如果第一内存储器中未存满逻辑页面,则将第一逻辑页面从外存储器载入第一内存储器,在第一逻辑页面的状态信息中存储第一逻辑页面在第一内存储器中的第二存储位置,并将状态信息插入第一队列的低频区的起点位置。
11.在一种可选的方式中,根据第二内存储器的存储情况将第一逻辑页面从第一内存储器载入第二内存储器,并将第一逻辑页面的状态信息存入第二队列,同时删除位于第一队列的第一逻辑页面的状态信息,包括:如果第二内存储器中已存满逻辑页面,则执行根据第二逻辑页面的修改标志迁出对应的第二队列末端位置的第二逻辑页面,并删除对应的位于第二队列中的第二逻辑页面的状态信息的步骤;如果第二内存储器中未存满逻辑页面,则将第一逻辑页面从第一内存储器载入第二内存储器,在第一逻辑页面的状态信息中存储第一逻辑页面在第二内存储器中的第二存储位置,并将第一逻辑页面的状态信息插入第二队列的低频区的起点位置,同时删除位于第一队列的第一逻辑页面的状态信息。
12.根据本发明实施例的另一个方面,提供了一种基于存储器的数据迁移装置,装置
包括:队列创建单元,用于分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,第一队列和第二队列分别用于记录第一内存储器和第二内存储器中逻辑页面的状态信息,状态信息至少包括逻辑页面的页面编号、操作频次以及修改标志;读写单元,用于根据对第一逻辑页面的读写操作更新第一逻辑页面的状态信息,并调整状态信息在第一队列或第二队列的第一存储位置;第一载入单元,用于如果需要向第一内存储器中存储第一逻辑页面,则根据第一内存储器的存储情况将第一逻辑页面从外存储器载入第一内存储器,并将第一逻辑页面的状态信息载入第一队列;第二载入单元,用于如果需要向第二内存储器中存储第一逻辑页面,则根据第二内存储器的存储情况将第一逻辑页面从第一内存储器载入第二内存储器,并将第一逻辑页面的状态信息存入第二队列,同时删除位于第一队列的第一逻辑页面的状态信息;迁出单元,用于如果需要从第一内存储器或第二内存储器中迁出第二逻辑页面,则根据第二逻辑页面的修改标志迁出对应的第一队列或第二队列末端位置的第二逻辑页面,并删除对应的位于第一队列或第二队列中的第二逻辑页面的状态信息。
13.根据本发明实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
14.存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于存储器的数据迁移方法的步骤。
15.根据本发明实施例的又一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行上述基于存储器的数据迁移方法的步骤。
16.本发明实施例通过分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,第一队列和第二队列分别用于记录第一内存储器和第二内存储器中逻辑页面的状态信息,状态信息至少包括逻辑页面的页面编号、操作频次以及修改标志;根据对第一逻辑页面的读写操作更新第一逻辑页面的状态信息,并调整状态信息在第一队列或第二队列的第一存储位置;如果需要向第一内存储器中存储第一逻辑页面,则根据第一内存储器的存储情况将第一逻辑页面从外存储器载入第一内存储器,并将第一逻辑页面的状态信息存入第一队列;如果需要向第二内存储器中存储第一逻辑页面,则根据第二内存储器的存储情况将第一逻辑页面从第一内存储器载入第二内存储器,并将第一逻辑页面的状态信息存入第二队列,同时删除位于第一队列的第一逻辑页面的状态信息;如果需要从第一内存储器或第二内存储器中迁出第二逻辑页面,则根据第二逻辑页面的修改标志迁出对应的第一队列或第二队列末端位置的第二逻辑页面,并删除对应的位于第一队列或第二队列中的第二逻辑页面的状态信息,能够提升存储系统的性能的同时减少对非易失性内存存储器的写次数,延长非易失性内存储器的寿命。
17.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
18.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
19.图1示出了本发明实施例提供的基于存储器的数据迁移方法的流程示意图;
20.图2示出了本发明实施例提供的基于存储器的数据迁移方法的存储系统的结构示意图;
21.图3示出了本发明实施例提供的基于存储器的数据迁移方法的第一队列或第二队列的结构示意图;
22.图4示出了本发明实施例提供的基于存储器的数据迁移方法的第一队列和第二队列的插入示意图;
23.图5示出了本发明实施例提供的基于存储器的数据迁移方法的第一逻辑页面的操作示意图;
24.图6示出了本发明实施例提供的基于存储器的数据迁移方法的第一逻辑页面的读取示意图;
25.图7示出了本发明实施例提供的基于存储器的数据迁移方法的第一逻辑页面的载入示意图;
26.图8示出了本发明实施例提供的基于存储器的数据迁移装置的结构示意图;
27.图9示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
28.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
29.图1示出了本发明实施例提供的基于存储器的数据迁移方法的流程示意图。该基于存储器的数据迁移方法应用于电子设备,如图1所示,基于存储器的数据迁移方法包括:
30.步骤s11:分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志。
31.在本发明实施例中,电子设备可以是笔记本、计算机等电子设备。第一逻辑页面为进行数据操作的数据单元,优选为数据页。本发明实施例的存储系统如图2所示,包括存储控制器、易失性的内存储器、非易失性内存储器以及外存储器,以逻辑页面为单位完成数据在各存储器之间的迁移。底层的外存储器负责大数据量的逻辑页面持久化,非易失性内存储器维护一个固定大小的缓存池提供逻辑页面的持久化和逻辑页面读写操作,内存储器维护一个固定大小的缓存池提供易失性的逻辑页面读写操作,存储控制器在内存储器中维护逻辑页面的状态信息并维护两个缓存池分别对应的第一队列和第二队列分别对缓存池进行管控。
32.在步骤s11中,第一内存储器为图2中的易失性的内存储器,第二内存储器为非易失性内存储器。可选地,将所述第一队列和所述第二队列分别分为高频区和低频区;根据所述操作频次将所述逻辑页面的所述状态信息存储在所述高频区或所述低频区。第一队列和
第二队列为用于表征冷热数据的冷热队列,其结构如图3所示,第一队列和第二队列是一个固定大小l的队列,第一队列和第二队列根据逻辑页面的冷热对逻辑页面进行排列。操作频次多的数据为热数据,操作频次少的为冷数据。优选地,根据数据从热到冷将第一队列和第二队列从左到右分为高频区和低频区,分别包含2/3l和1/3l队列长度的逻辑页面,将操作频次大于等于预设次数的缓存池中的逻辑页面定义为高频逻辑页面。高频区的最左端为高频区的起点位置,高频区的最右端为高频区的末端位置。同样地,低频区的最左端为低频区的起点位置,低频区的最右端为低频区的末端位置。第一队列和第二队列的最右侧的逻辑页面为对应的缓存池中下一轮将淘汰的冷数据页,而第一队列和第二队列的逻辑页面的插入点位于低频区最左侧位置。其中,预设次数可以根据需要进行设置,优选为3次。
33.在步骤s11中,可选地,还建立页面目录表,所述页面目录表以所述逻辑页面的页面编号为索引存储所述逻辑页面在所述第一队列或所述第二队列中的第一存储位置。如图4所示,页面目录表用于记录目前已经在内存储器的缓存池及非易失性内存储器的缓存池中缓存的逻辑页面,并快速检索是否存在于缓存池中。第一队列和第二队列分别对内存储器和非易失性性内存储器中的逻辑页面进行冷热数据识别,每次逻辑页面淘汰总是淘汰第一队列或第二队列中最右侧的逻辑页面。页面目录表以逻辑页面的页面编号作为索引进行存储,存储的内容为《逻辑页面的页面编号,逻辑页面的状态信息在第一队列或第二队列中的第一存储位置》。第一队列和第二队列中的逻辑页面的状态信息内容为《逻辑页面的页面编号,逻辑页面的操作频次,逻辑页面的修改标志,逻辑页面在第一内存储器或者第二内存储器缓存池中的第二存储位置》。
34.步骤s12:根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置。
35.在本发明实施例中,存储系统中的数据操作如图5所示,箭头1和箭头2表示对内存储器与非易失性内存储器的数据页读取操作,箭头4和箭头5表示对内存储器与非易失性内存储器的数据页写操作。箭头3、箭头6和箭头7表示数据页在本技术中的存储体系中的载入和迁出过程。
36.存储系统中逻辑页面读取的完整过程如图6所示,首先判断第一内存储器中是否包含第一逻辑页面,如果第一内存储器中包含第一逻辑页面,则直接从内存储器中读取第一逻辑页面。如果第一内存储器中不存在第一逻辑页面,则判断第二内存储器中是否存储第一逻辑页面。如果第二内存储器中包含第一逻辑页面,则直接从第二内存储器中读取第一逻辑页面。如果第二内存储器中不包含第一逻辑页面,则将该第一逻辑页面从外存储器中载入第一内存储器中,再从第一内存储器中读取第一逻辑页面。将数据页载入到内存储器而不是非易失性内存储器,避免了将那些只读而不修改的数据页载入到非易失性存储器的过程,减少对对非易失性存储区的写操作次数。
37.从第一内存储器或第二内存储器中进行第一逻辑页面的读取时,可选地,首先根据所述页面目录表判断待读取的所述第一逻辑页面是否存储在所述第一内存储器或所述第二内存储器中。页面目录表维护了第一逻辑页面是否在第一内存储器或者第二内存储器的信息,页面目录表以索引结构存储。通过第一逻辑页面的页面编号进行逻辑页面检索,可以确认第一逻辑页面是否在第一内存储器或者第二内存储器的缓存池中。若存在,则可以获取该第一逻辑页面页的状态信息在第一队列或第二队列中的第一存储位置,进而获取该
第一逻辑页面的状态信息包括操作频次及修改标志。
38.如果所述第一逻辑页面未存储在所述第一内存储器和所述第二内存储器中,则执行所述根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列的步骤,再从内存储器中读取第一逻辑页面。如果所述第一逻辑页面存储在所述第一内存储器或所述第二内存储器中,则从所述第一内存储器或所述第二内存储器中读取所述第一逻辑页面,将所述状态信息中的操作频次加1,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置。即先将第一逻辑页面载入第一内存储器,再从第一内存储器中读取该第一逻辑页面。由于第二内存储器具有相对较高的读性能可供直接读取,如果第一逻辑页面在第二内存储器中,则如图5中的迁移箭头2表示第一逻辑页面的第二内存储器直接读。第二内存储器上第一逻辑页面的直接读取,免去了第一逻辑页面从非易失性内存储器载入易失性的内存储器过程,降低了冷数据替换内存储器上热数据的风险。
39.向第一内存储器或第二内存储器中写入第一逻辑页面时,第二内存储器具有相对较高的写性能可供直接写入,可选地,向第一内存储器或第二内存储器中写入第一逻辑页面时,将所述第一逻辑页面写入所述第一内存储器或所述第二内存储器中,将所述状态信息中的操作频次加1,修改标志设置为已修改,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置。如图5中的迁移箭头5表示第一逻辑页面直接写入非易失性内存储器,非易失性内存储器上数据页的直接写入,以比外存储器更高的性能完成了数据的持久化操作。
40.每次对第一队列或第二队列中的第一逻辑页面进行操作时,都将更新第一逻辑页面的操作频次,如果更新的所述操作频次大于等于预设频次,则将所述第一逻辑页面更新至所述高频区的起点位置;如果更新的所述操作频次小于所述预设频次,则将所述第一逻辑页面更新至所述低频区的起点位置。
41.步骤s13:如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列。
42.在步骤s13中,可选地,如果所述第一内存储器中已存满逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列末端位置的第二逻辑页面,并删除对应的位于所述第一队列中的所述第二逻辑页面的所述状态信息的步骤;然后再将第一逻辑页面载入第一内存储器。如果所述第一内存储器中未存满逻辑页面,则将所述第一逻辑页面从外存储器载入所述第一内存储器,设置第一逻辑页面的状态信息,其中状态信息中的操作次数初始化为1,修改标志初始化为未修改,并记录第一逻辑页面在第一内存储器中的第二存储位置,将所述状态信息插入所述第一队列的低频区的起点位置,同时在页面目录表中插入第一逻辑页面的索引信息,以存储第一逻辑页面的状态信息在第一队列中的第一存储位置。
43.步骤s14:如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息。
44.在本发明实施例中,可选地,如果所述第二内存储器中已存满所述逻辑页面,则执行所述所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第二队列末端位置的第二逻辑页面,并删除对应的位于所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;然后再将第一逻辑页面载入从所述第一内存储器载入第二内存储器。
45.如果所述第二内存储器中未存满所述逻辑页面,则将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第二内存储器中的第二存储位置,并将所述第一逻辑页面的所述状态信息插入所述第二队列的低频区的起点位置,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息。
46.本发明实施例不使用内存储器而直接使用非易失性存储器完成读写,并且在缺页场景数据页直接载入内存储器而不经由非易失性内存储器完成中转,利用了非易失性内存储器性能特性优化存储系统性能的同时,减少了对非易失性内存储器的写次数,从而延长了非易失性内存储器的寿命。
47.步骤s15:如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息。
48.可选地,如果修改标志为已修改,将位于所述第二队列的低频区末端位置的所述第二逻辑页面载入所述外存储器,删除所述第二队列中所述第二逻辑页面的状态信息。或者,将位于所述第一队列的低频区末端位置的所述第二逻辑页面载入所述第二内存储器,删除所述第一队列中所述第二逻辑页面的状态信息,而在第二队列中添加所述第二逻辑页面的状态信息。如果修改标志为未修改,则直接淘汰所述第一队列或所述第二队列的低频区末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息。
49.本发明实施例采用内存储器-非易失性内存储器-外存储器的层次存储结构,并使用基于高频-低频的冷热队列对冷热数据页的迁移进行管控,结合数据页的迁移路径,减少了热数据页的迁出概率,提高了整个存储系统的访问性能。
50.在本发明实施例中,在外存储器逻辑页面载入内存储器或者定期的冷数据归档过程会触发逻辑页面替换及持久化流程。逻辑页面替换及逻辑页面持久化的完整流程如图7所示,包括:
51.步骤s701:判断第一内存储器中是否存满逻辑页面。如果未存满,则执行步骤s702;如果已存满,则执行步骤s703。
52.如果需要将外存储器中的第一逻辑页面载入第一内存储器时,首先判断第一内存储器中是否存满逻辑页面。如果第一内存储器中已存满逻辑页面,说明第一逻辑页面不能直接载入第一内存储器,需要先淘汰第一内存储器中的部分逻辑页面。如果第一内存储器中未存满逻辑页面,说明可以直接向第二内存储器中载入逻辑页面。
53.步骤s702:直接从外存储器将第一逻辑页面载入第一内存储器。
54.如果第一内存储器中未存满逻辑页面,则从外存储器将第一逻辑页面载入第一内存储器,在第一逻辑页面的状态信息中存储第一逻辑页面在第一内存储器中的第二存储位
置,并将该状态信息插入第一队列的低频区的起点位置,即图4中的插入点处,同时在页面目录表中添加第一逻辑页面的索引信息。
55.步骤s703:淘汰位于第一队列中低频区的末端位置的第二逻辑页面。
56.如果第一内存储器中已存满逻辑页面,则先淘汰位于第一队列中低频区的末端位置的第二逻辑页面,使第一内存储器未存满逻辑页面,再从外存储器将第一逻辑页面载入第一内存储器。
57.步骤s704:判断待淘汰的第二逻辑页面是否被修改。如果否,则执行步骤s705;如果是,则执行步骤s706。
58.在淘汰位于第一队列中低频区的末端位置的第二逻辑页面时,先判断待淘汰的第二逻辑页面是否被修改。优选地,根据第二逻辑页面的状态信息进行判断,如果第二逻辑页面的状态信息中的修改标志被设置为已修改,说明该第二逻辑页面有被修改过,需要将该第二逻辑页面载入第二内存储器完成持久化。
59.步骤s705:直接淘汰第二逻辑页面,并将第一逻辑页面从外存储器载入第一内存储器。
60.如果第二逻辑页面的状态信息中的修改标志为未修改,则直接淘汰第二逻辑页面,即直接将第二逻辑页面从第一内存储器中删除,同时删除第一队列中的第一逻辑页面的状态信息以及页面目录表中的第一逻辑页面的索引信息。然后将第一逻辑页面从外存储器载入第一内存储器。
61.步骤s706:判断第二内存储器中是否存满逻辑页面。如果否,则执行步骤s707;如果是,则执行步骤s708。
62.第二逻辑页面的状态信息中的修改标志为已修改,需要将该第二逻辑页面载入第二内存储器以完成持久化时,先判断第二内存储器中是否存满逻辑页面。如果第二内存储器中已存满逻辑页面,说明第一逻辑页面不能直接载入第二内存储器,需要先淘汰第二内存储器中的部分逻辑页面。如果第二内存储器中未存满逻辑页面,说明可以直接向第二内存储器中载入逻辑页面。
63.步骤s707:将第二逻辑页面持久化到第二内存储器。
64.如果第二内存储器中未存满逻辑页面,则先将第一队列中位于低频区末端位置的第二逻辑页面淘汰至到第二内存储器,将该第二逻辑页面的状态信息中的存储位置更改为在第二内存储器中的第二存储位置,并将状态信息存入第二队列的低频区的起点位置,同时更新第二逻辑页面在页面目录表中的索引信息,从第一队列中删除第二逻辑页面的状态信息。
65.然后再将第一逻辑页面载入第一内存储器,在将第一逻辑页面的状态信息添加至第一队列的低频区的起点位置以及在页面目录表中添加第一逻辑页面的索引。
66.步骤s708:淘汰第二内存储器第三逻辑页面至外存储器,将第二逻辑页面持久化到第二内存储器。
67.如果第二内存储器中已存满逻辑页面,则先将第二队列中位于低频区末端位置的第三逻辑页面淘汰至到外存储器,同时从第一队列中删除第二逻辑页面的状态信息,并从页面目录表中删除第二逻辑页面的索引信息。
68.然后将第一队列中位于低频区末端位置的第二逻辑页面淘汰至到第二内存储器,
将该第二逻辑页面的状态信息中的存储位置更改为在第二内存储器中的第二存储位置,并将状态信息存入第二队列的低频区的起点位置,同时更新第二逻辑页面在页面目录表中的索引信息,从第一队列中删除第二逻辑页面的状态信息。
69.最后再将第一逻辑页面载入第一内存储器,设置第一逻辑页面的状态信息,其中,该状态信息中的修改标志初始设置为未修改,存储位置设置为第一逻辑页面在第一内存储器中的第二存储位置操作频次初始设置为1,在第一队列的低频区的起点位置存储该状态信息,同时在页面目录表中添加第一逻辑页面的索引信息。
70.本发明实施例通过分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息,能够提升存储系统的性能的同时减少对非易失性内存存储器的写次数,延长非易失性内存储器的寿命。
71.图8示出了本发明实施例的基于存储器的数据迁移装置的结构示意图。如图8所示,该基于存储器的数据迁移装置设置在存储系统的存储控制器中,包括:队列创建单元801、读写单元802、第一载入单元803、第二载入单元804以及迁出单元805。其中:
72.队列创建单元801用于分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;读写单元802用于根据对第一逻辑页面的读写操作更新所述第一逻辑页面的状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;第一载入单元803用于如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息载入所述第一队列;第二载入单元804用于如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;迁出单元805用于如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第
二队列中的所述第二逻辑页面的所述状态信息。
73.在一种可选的方式中,队列创建单元801用于:将所述第一队列和所述第二队列分别分为高频区和低频区;根据所述操作频次将所述逻辑页面的所述状态信息存储在所述第一队列或所述第二队列中对应的所述高频区或所述低频区;建立页面目录表,所述页面目录表以所述逻辑页面的所述页面编号为索引存储所述逻辑页面在所述第一队列或所述第二队列中的第一存储位置。
74.在一种可选的方式中,读写单元802用于:根据所述页面目录表判断待读取的所述第一逻辑页面是否存储在所述第一内存储器或所述第二内存储器中;如果所述第一逻辑页面未存储在所述第一内存储器和所述第二内存储器中,则执行所述根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列的步骤;如果所述第一逻辑页面存储在所述第一内存储器或所述第二内存储器中,则从所述第一内存储器或所述第二内存储器中读取所述第一逻辑页面,将所述状态信息中的所述操作频次加1,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;或者,将所述第一逻辑页面写入所述第一内存储器或所述第二内存储器中,将所述状态信息中的所述操作频次加1,所述修改标志设置为已修改,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置。
75.在一种可选的方式中,读写单元802用于:如果更新的所述操作频次大于等于预设频次,则将所述第一逻辑页面更新至所述高频区的起点位置;如果更新的所述操作频次小于所述预设频次,则将所述第一逻辑页面更新至所述低频区的起点位置。
76.在一种可选的方式中,迁出单元805用于:如果所述状态信息中的修改标志为已修改,则将位于所述第二队列的低频区末端位置的所述第二逻辑页面载入所述外存储器,删除所述第二队列中所述第二逻辑页面的状态信息;或者,将位于所述第一队列的低频区末端位置的所述第二逻辑页面载入所述第二内存储器,删除所述第一队列中所述第二逻辑页面的状态信息,在所述第二队列中添加所述第二逻辑页面的状态信息;如果所述修改标志为未修改,则直接淘汰所述第一队列或所述第二队列的低频区末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息。
77.在一种可选的方式中,第一载入单元803用于:如果所述第一内存储器中已存满逻辑页面,则执行根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列末端位置的第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;如果所述第一内存储器中未存满逻辑页面,则将所述第一逻辑页面从外存储器载入所述第一内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第一内存储器中的第二存储位置,并将所述状态信息插入所述第一队列的低频区的起点位置。
78.在一种可选的方式中,第二载入单元804用于:根据各所述基站规如果所述第二内存储器中已存满所述逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第二队列末端位置的第二逻辑页面,并删除对应的位于所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;如果所述第二内存储器中未存满所述逻辑页面,则将
所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第二内存储器中的第二存储位置,并将所述第一逻辑页面的所述状态信息插入所述第二队列的低频区的起点位置,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息。
79.本发明实施例通过分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息,能够提升存储系统的性能的同时减少对非易失性内存存储器的写次数,延长非易失性内存储器的寿命。
80.本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于存储器的数据迁移方法。
81.可执行指令具体可以用于使得处理器执行以下操作:
82.分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;
83.根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;
84.如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;
85.如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;
86.如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页
面的所述状态信息。
87.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
88.将所述第一队列和所述第二队列分别分为高频区和低频区;
89.根据所述操作频次将所述逻辑页面的所述状态信息存储在所述第一队列或所述第二队列中对应的所述高频区或所述低频区;
90.建立页面目录表,所述页面目录表以所述页面编号为索引存储所述逻辑页面在所述第一队列或所述第二队列中的第一存储位置。
91.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
92.根据所述页面目录表判断待读取的所述第一逻辑页面是否存储在所述第一内存储器或所述第二内存储器中;
93.如果所述第一逻辑页面未存储在所述第一内存储器和所述第二内存储器中,则执行所述根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列的步骤;
94.如果所述第一逻辑页面存储在所述第一内存储器或所述第二内存储器中,则从所述第一内存储器或所述第二内存储器中读取所述第一逻辑页面,将所述状态信息中的所述操作频次加1,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;或者,将所述第一逻辑页面写入所述第一内存储器或所述第二内存储器中,将所述状态信息中的所述操作频次加1,所述修改标志设置为已修改,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置。
95.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
96.如果更新的所述操作频次大于等于预设频次,则将所述第一逻辑页面更新至所述高频区的起点位置;
97.如果更新的所述操作频次小于所述预设频次,则将所述第一逻辑页面更新至所述低频区的起点位置。
98.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
99.如果所述状态信息中的修改标志为已修改,则将位于所述第二队列的低频区末端位置的所述第二逻辑页面载入所述外存储器,删除所述第二队列中所述第二逻辑页面的状态信息;或者,将位于所述第一队列的低频区末端位置的所述第二逻辑页面载入所述第二内存储器,删除所述第一队列中所述第二逻辑页面的状态信息,在所述第二队列中添加所述第二逻辑页面的状态信息;
100.如果所述修改标志为未修改,则直接淘汰所述第一队列或所述第二队列的低频区末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息。
101.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
102.如果所述第一内存储器中已存满逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列末端位置的第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;
103.如果所述第一内存储器中未存满逻辑页面,则将所述第一逻辑页面从外存储器载入所述第一内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所
述第一内存储器中的第二存储位置,并将所述状态信息插入所述第一队列的低频区的起点位置。
104.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
105.如果所述第二内存储器中已存满所述逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第二队列末端位置的第二逻辑页面,并删除对应的位于所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;
106.如果所述第二内存储器中未存满所述逻辑页面,则将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第二内存储器中的第二存储位置,并将所述第一逻辑页面的所述状态信息插入所述第二队列的低频区的起点位置,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息。
107.本发明实施例通过分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息,能够提升存储系统的性能的同时减少对非易失性内存存储器的写次数,延长非易失性内存储器的寿命。
108.本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的基于存储器的数据迁移方法。
109.可执行指令具体可以用于使得处理器执行以下操作:
110.分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;
111.根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;
112.如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;
113.如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;
114.如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息。
115.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
116.将所述第一队列和所述第二队列分别分为高频区和低频区;
117.根据所述操作频次将所述逻辑页面的所述状态信息存储在所述第一队列或所述第二队列中对应的所述高频区或所述低频区;
118.建立页面目录表,所述页面目录表以所述页面编号为索引存储所述逻辑页面在所述第一队列或所述第二队列中的第一存储位置。
119.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
120.根据所述页面目录表判断待读取的所述第一逻辑页面是否存储在所述第一内存储器或所述第二内存储器中;
121.如果所述第一逻辑页面未存储在所述第一内存储器和所述第二内存储器中,则执行所述根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列的步骤;
122.如果所述第一逻辑页面存储在所述第一内存储器或所述第二内存储器中,则从所述第一内存储器或所述第二内存储器中读取所述第一逻辑页面,将所述状态信息中的所述操作频次加1,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;或者,将所述第一逻辑页面写入所述第一内存储器或所述第二内存储器中,将所述状态信息中的所述操作频次加1,所述修改标志设置为已修改,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置。
123.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
124.如果更新的所述操作频次大于等于预设频次,则将所述第一逻辑页面更新至所述高频区的起点位置;
125.如果更新的所述操作频次小于所述预设频次,则将所述第一逻辑页面更新至所述低频区的起点位置。
126.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
127.如果所述状态信息中的修改标志为已修改,则将位于所述第二队列的低频区末端位置的所述第二逻辑页面载入所述外存储器,删除所述第二队列中所述第二逻辑页面的状态信息;或者,将位于所述第一队列的低频区末端位置的所述第二逻辑页面载入所述第二内存储器,删除所述第一队列中所述第二逻辑页面的状态信息,在所述第二队列中添加所述第二逻辑页面的状态信息;
128.如果所述修改标志为未修改,则直接淘汰所述第一队列或所述第二队列的低频区末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述
第二逻辑页面的所述状态信息。
129.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
130.如果所述第一内存储器中已存满逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列末端位置的第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;
131.如果所述第一内存储器中未存满逻辑页面,则将所述第一逻辑页面从外存储器载入所述第一内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第一内存储器中的第二存储位置,并将所述状态信息插入所述第一队列的低频区的起点位置。
132.在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
133.如果所述第二内存储器中已存满所述逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第二队列末端位置的第二逻辑页面,并删除对应的位于所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;
134.如果所述第二内存储器中未存满所述逻辑页面,则将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第二内存储器中的第二存储位置,并将所述第一逻辑页面的所述状态信息插入所述第二队列的低频区的起点位置,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息。
135.本发明实施例通过分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息,能够提升存储系统的性能的同时减少对非易失性内存存储器的写次数,延长非易失性内存储器的寿命。
136.图9示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
137.如图9所示,该计算设备可以包括:处理器(processor)902、通信接口(communications interface)904、存储器(memory)906、以及通信总线908。
138.其中:处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。处理器902,用
于执行程序910,具体可以执行上述9g基站规划方法实施例中的相关步骤。
139.具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。
140.处理器902可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或各个集成电路。设备包括的一个或各个处理器,可以是同一类型的处理器,如一个或各个cpu;也可以是不同类型的处理器,如一个或各个cpu以及一个或各个asic。
141.存储器906,用于存放程序910。存储器906可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
142.程序910具体可以用于使得处理器902执行以下操作:
143.分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的页面编号、操作频次以及修改标志;
144.根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;
145.如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;
146.如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;
147.如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息。
148.在一种可选的方式中,所述程序910使所述处理器执行以下操作:
149.将所述第一队列和所述第二队列分别分为高频区和低频区;
150.根据所述操作频次将所述逻辑页面的所述状态信息存储在所述第一队列或所述第二队列中对应的所述高频区或所述低频区;
151.建立页面目录表,所述页面目录表以所述页面编号为索引存储所述逻辑页面在所述第一队列或所述第二队列中的第一存储位置。
152.在一种可选的方式中,所述程序910使所述处理器执行以下操作:
153.根据所述页面目录表判断待读取的所述第一逻辑页面是否存储在所述第一内存储器或所述第二内存储器中;
154.如果所述第一逻辑页面未存储在所述第一内存储器和所述第二内存储器中,则执行所述根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列的步骤;
155.如果所述第一逻辑页面存储在所述第一内存储器或所述第二内存储器中,则从所
述第一内存储器或所述第二内存储器中读取所述第一逻辑页面,将所述状态信息中的所述操作频次加1,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;或者,将所述第一逻辑页面写入所述第一内存储器或所述第二内存储器中,将所述状态信息中的所述操作频次加1,所述修改标志设置为已修改,同时根据更新的所述操作频次调整所述状态信息在所述第一队列或所述第二队列的第一存储位置。
156.在一种可选的方式中,所述程序910使所述处理器执行以下操作:
157.如果更新的所述操作频次大于等于预设频次,则将所述第一逻辑页面更新至所述高频区的起点位置;
158.如果更新的所述操作频次小于所述预设频次,则将所述第一逻辑页面更新至所述低频区的起点位置。
159.在一种可选的方式中,所述程序910使所述处理器执行以下操作:
160.如果所述状态信息中的修改标志为已修改,则将位于所述第二队列的低频区末端位置的所述第二逻辑页面载入所述外存储器,删除所述第二队列中所述第二逻辑页面的状态信息;或者,将位于所述第一队列的低频区末端位置的所述第二逻辑页面载入所述第二内存储器,删除所述第一队列中所述第二逻辑页面的状态信息,在所述第二队列中添加所述第二逻辑页面的状态信息;
161.如果所述修改标志为未修改,则直接淘汰所述第一队列或所述第二队列的低频区末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息。
162.在一种可选的方式中,所述程序910使所述处理器执行以下操作:
163.如果所述第一内存储器中已存满逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列末端位置的第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;
164.如果所述第一内存储器中未存满逻辑页面,则将所述第一逻辑页面从外存储器载入所述第一内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第一内存储器中的第二存储位置,并将所述状态信息插入所述第一队列的低频区的起点位置。
165.在一种可选的方式中,所述程序910使所述处理器执行以下操作:
166.如果所述第二内存储器中已存满所述逻辑页面,则执行所述根据所述第二逻辑页面的所述修改标志迁出对应的所述第二队列末端位置的第二逻辑页面,并删除对应的位于所述第二队列中的所述第二逻辑页面的所述状态信息的步骤;
167.如果所述第二内存储器中未存满所述逻辑页面,则将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,在所述第一逻辑页面的所述状态信息中存储所述第一逻辑页面在所述第二内存储器中的第二存储位置,并将所述第一逻辑页面的所述状态信息插入所述第二队列的低频区的起点位置,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息。
168.本发明实施例通过分别建立对应于易失性的第一内存储器和非易失性的第二内存储器的第一队列和第二队列,所述第一队列和所述第二队列分别用于记录所述第一内存储器和所述第二内存储器中逻辑页面的状态信息,所述状态信息至少包括所述逻辑页面的
页面编号、操作频次以及修改标志;根据对第一逻辑页面的读写操作更新所述第一逻辑页面的所述状态信息,并调整所述状态信息在所述第一队列或所述第二队列的第一存储位置;如果需要向所述第一内存储器中存储所述第一逻辑页面,则根据所述第一内存储器的存储情况将所述第一逻辑页面从外存储器载入所述第一内存储器,并将所述第一逻辑页面的所述状态信息存入所述第一队列;如果需要向所述第二内存储器中存储所述第一逻辑页面,则根据所述第二内存储器的存储情况将所述第一逻辑页面从所述第一内存储器载入所述第二内存储器,并将所述第一逻辑页面的所述状态信息存入所述第二队列,同时删除位于所述第一队列的所述第一逻辑页面的所述状态信息;如果需要从所述第一内存储器或所述第二内存储器中迁出第二逻辑页面,则根据所述第二逻辑页面的所述修改标志迁出对应的所述第一队列或所述第二队列末端位置的所述第二逻辑页面,并删除对应的位于所述第一队列或所述第二队列中的所述第二逻辑页面的所述状态信息,能够提升存储系统的性能的同时减少对非易失性内存存储器的写次数,延长非易失性内存储器的寿命。
169.在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
170.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
171.类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
172.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
173.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名
称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献