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

数据调度方法、装置与流程

2021-11-15 17:24:00 来源:中国专利 TAG:


1.本技术涉及数据存储技术领域,涉及但不限于一种数据调度方法、装置。


背景技术:

2.相关技术中,将非易失性内存作为内存使用有两种方法,一种方式是由相关硬件实现,非易失性内存需要格式化为特定的内存模式,并辅以一定的动态随机存取存储器做缓冲以满足性能需求,然而该种方法配置不灵活,缺乏可调性。
3.另一种方式是由应用层软件实现,通过拦截如libc函数库的内存分配函数调用,进行非易失性内存的分配和部署,然而该种方法使用范围有限,就库函数而言,并非所有应用都使用libc进行内存分配,分配效率有损,每一个内存分配函数都要经历更多的处理过程。


技术实现要素:

4.有鉴于此,本技术实施例提供一种数据调度方法、装置。
5.第一方面,本技术实施例提供一种数据调度方法,所述方法包括:在接收到对第一存储器的第一内存页中的第一数据的操作请求的情况下,从第二存储器中选择第二内存页;在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求。
6.第二方面,本技术实施例提供一种数据调度装置,包括:选择模块,用于在接收到对第一存储器的第一内存页中的第一数据的操作请求的情况下,从第二存储器中选择第二内存页;复制模块,用于在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求。
7.第三方面,本技术实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术实施例任一所述数据调度方法中的步骤。
8.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本技术实施例任一所述数据调度方法中的步骤。
9.本技术实施例中,通过在非易失性内存中的数据被访问时,将非易失性内存中的数据换入至dram,可以提高数据的访问速度和性能,通过在dram的剩余存储空间较小时,将dram中的数据换出至非易失性内存,可以降低dram的内存压力。
附图说明
10.图1为本技术实施例一种数据调度方法的流程示意图;
11.图2为本技术实施例一种dram和非易失性内存组成的混合内存的示意图;
12.图3为本技术实施例一种dram、非易失性内存和磁盘组成的混合内存的示意图;
13.图4为本技术实施例一种由dram换出至非易失性内存的处理方法的流程示意图;
14.图5为本技术实施例一种由非易失性内存换入至dram的处理方法的流程示意图;
15.图6为本技术实施例一种数据调度装置的组成结构示意图;
16.图7为本技术实施例电子设备的一种硬件实体示意图。
具体实施方式
17.下面结合附图和实施例对本技术的技术方案进一步详细阐述。
18.图1为本技术实施例一种数据调度方法的实现流程示意图,应用于电子设备,如图1所示,该方法包括:
19.步骤102:在接收到对第一存储器的第一内存页中的第一数据的操作请求的情况下,从第二存储器中选择第二内存页;
20.步骤104:在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;
21.其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求。
22.图2为本技术实施例一种dram和非易失性内存组成的混合内存的示意图,参见图2,在一个实施例中,所述第一存储器可以为动态随机存取存储器201(dynamic random access memory,dram);所述第二存储器可以为非易失性内存202(persistent memory,pmem),又可以称为持久化内存;此时所述第一存储器的访问速度不低于所述第二存储器的访问速度,所述操作请求为换出请求。在内存消耗较低(例如低于dram的容量)的情况下,所有的数据均可以存放在dram中,在内存消耗较高(例如接近或者超过dram的容量)的情况下,可以根据特定的页面置换策略将dram中的一部分数据换出到非易失性内存中,所述页面置换策略又称页面置换算法,可以是最佳置换算法、先进先出置换算法、最近最久未使用算法等算法中的一种。
23.在另一个实施例中,所述第一存储器可以为pmem,所述第二存储器可以为dram;此时所述第一存储器的访问速度低于所述第二存储器的访问速度,所述操作请求为换入请求。在非易失性内存中的数据被访问的情况下,由于dram的访问速度快、访问性能好,因此,需要将pmem中的数据换入到dram中,与此同时,还可以根据dram中数据所占内存与dram的容量大小之间的关系,决定是否同时将dram中部分数据换出至pmem中。
24.本技术实施例中,通过在非易失性内存中的数据被访问时,将非易失性内存中的数据换入至dram,可以提高数据的访问速度和性能,通过在dram的剩余存储空间较小时,将dram中的数据换出至非易失性内存,可以降低dram的内存压力。
25.本技术实施例还提供一种数据调度方法,所述方法包括:
26.步骤s202:在接收到对第一存储器的第一内存页中的第一数据的操作请求,且第
二存储器中有所述第一内存页的影子内存页的情况下,将所述第一内存页的影子内存页确定为第二内存页;所述第一内存页的影子内存页中的数据由所述第一内存页中的历史数据复制而来;
27.其中,在所述第一存储器为dram,所述第二存储器为非易失性内存的情况下,所述操作请求为换出请求,所述第一内存页可以是在所述dram的剩余存储空间较小时,根据特定的页面置换算法从dram中选出的需要换出至非易失性内存的页面。
28.步骤s204:在所述第二存储器中没有所述第一内存页的影子内存页的情况下,从所述第二存储器中选择第二内存页;
29.步骤s206:在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;
30.其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求;在所述第一数据和所述第二数据相同的情况下,可以直接通过第二内存页访问与第一数据相同的第二数据。
31.步骤s208:将指向所述第一内存页的页表项指向所述第二内存页;
32.其中,可以更新第一内存页的相关页表,使所述相关页表中指向第一内存页的页表项指向第二内存页。
33.步骤s210:释放所述第一内存页。
34.在一个实施例中,在所述第一数据和所述第二内存页中的第二数据相同的情况下,同样执行步骤s208和步骤s210。
35.本技术实施例中,由于第一内存页的影子内存页是由第一内存页的历史数据复制而来,在第一内存页未发生更新的情况下,第一内存页的影子内存页中的数据与第一内存页中的数据保持一致,通过优先将第二存储器中的第一内存页的影子内存页选为第二内存页,从而可以在判断出第一数据未发生更新的情况下,直接通过第一内存页的影子内存页访问第一数据,可以提高数据访问效率;通过更改第一内存页的页表项,可以提高数据访问准确率;通过在数据复制完成后,释放dram中的第一内存页,可以增大dram的空闲存储空间。
36.本技术实施例还提供一种数据调度方法,所述方法包括:
37.步骤s302:在接收到对第一存储器的第一内存页中的第一数据的操作请求,且第二存储器中有所述第一内存页的影子内存页的情况下,将所述第一内存页的影子内存页确定为第二内存页;所述第一内存页的影子内存页中的数据由所述第一内存页中的历史数据复制而来;所述操作请求为换出请求;
38.步骤s304:在所述第二存储器中没有所述第一内存页的影子内存页,且所述第二存储器中有空闲内存页的情况下,根据第一选择策略,从所述第二存储器的空闲内存页中选择第二内存页;
39.其中,所述第一选择策略可以是特定的空闲内存页的选择策略,所述第一选择策略可以是随机选择,即从所述第二存储器的空闲内存页中随机选择一个空闲内存页作为第二内存页;所述第一选择策略还可以是按空闲内存页的页面序号进行选择,既可以是选择空闲内存页中页面序号最小的空闲内存页作为第二内存页,也可以是选择空闲内存页中页
面序号最大的空闲内存页作为第二内存页。
40.步骤s306:在所述第二存储器中没有所述第一内存页的影子内存页,所述第二存储器中没有空闲内存页,且第三存储器中有空闲内存页的情况下,根据第二选择策略,从所述第二存储器中选择第二内存页;根据第三选择策略,从所述第三存储器的空闲内存页中选择第三内存页;在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,将所述第二内存页中的第二数据复制至所述第三内存页;
41.所述第三存储器的访问速度低于所述第二存储器的访问速度;
42.图3为本技术实施例一种dram、非易失性内存和磁盘组成的混合内存的示意图,参见图3,所述第一存储器可以是动态随机存取存储器301,所述第二存储器可以是非易失性内存302,所述第三存储器可以是磁盘303,所述第二选择策略可以是特定的页面置换策略,例如可以是最近最久未使用置换算法,或者是先进先出置换算法等;所述第三选择策略同样可以是空闲内存页的选择策略,所述第三选择策略可以和所述第一选择策略相同,也可以不同。
43.步骤s308:在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;
44.其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求;
45.本技术实施例中,通过利用dram、非易失性内存和磁盘,可以在非易失性内存中没有空闲内存页的情况下,先从非易失性内存中选取第二内存页,将第二内存页中的第二数据复制到磁盘中的空闲内存页,以将dram中的第一数据复制到第二内存页中,通过第二内存页访问第一数据,从而一方面可以降低dram的内存压力,另一方面通过非易失性内存和磁盘均作为dram的内存交换设备来进一步扩展内存空间,提高数据交换的灵活性。
46.本技术实施例还提供一种数据调度方法,所述方法包括:
47.步骤s402:在接收到对第一存储器的第一内存页中的第一数据的操作请求,且第二存储器中有所述第一内存页的影子内存页的情况下,将所述第一内存页的影子内存页确定为第二内存页;所述第一内存页的影子内存页中的数据由所述第一内存页中的历史数据复制而来;所述操作请求为换出请求;
48.步骤s404:在所述第二存储器中没有所述第一内存页的影子内存页的情况下,在所述第二存储器中没有所述第一内存页的影子内存页,且所述第二存储器中有空闲内存页的情况下,根据第一选择策略,从所述第二存储器的空闲内存页中选择第二内存页;
49.步骤s406:在所述第二存储器中没有所述第一内存页的影子内存页,所述第二存储器中没有空闲内存页,且第三存储器中有空闲内存页的情况下,根据第二选择策略,从所述第二存储器中选择第二内存页;根据第三选择策略,从所述第三存储器的空闲内存页中选择第三内存页;在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,通过io总线将所述第二内存页中的第二数据复制至所述第三内存页;
50.所述第三存储器的访问速度低于所述第二存储器的访问速度;
51.步骤s408:在所述第一数据和所述第二内存页中的第二数据不相同的情况下,通过内存总线将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一
数据;
52.其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求;参见图3,可以先通过io(input/output,输入/输出)总线304将第二内存页3021中的第二数据复制到第三内存页3031,然后再通过内存总线305将第一内存页3011中的数据复制到第二内存页3021。
53.本技术实施例中,通过io总线进行第二内存页和第三内存页之间的数据交换,通过内存总线进行第一内存页和第二内存页之间的数据交换,从而可以提高数据的数据交换效率。
54.本技术实施例还提供一种数据调度方法,所述方法包括:
55.步骤s502:在接收到对第一存储器的第一内存页中的第一数据的操作请求,且第二存储器中有空闲内存页的情况下,根据第四选择策略,从所述第二存储器的空闲内存页中选择第二内存页;
56.参见图2,在所述第一存储器为非易失性内存202,所述第二存储器为动态随机存取存储器201的情况下,所述操作请求为换入请求,所述第一内存页可以是所述非易失性内存中被访问的页面2021;所述第二内存页可以是根据第四选择策略,从dram的空闲内存页中选出的页面2011,所述第四选择策略可以是特定的空闲内存页的选择策略,所述第四选择策略可以与所述第一选择策略相同,也可以不同。
57.步骤s504:在所述第二存储器中没有空闲内存页的情况下,根据第五选择策略,从所述第二存储器中选择第二内存页;根据第六选择策略,从所述第一存储器中选择第三内存页;在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,将所述第二数据复制至所述第三内存页。
58.其中,所述第五选择策略和所述第六选择策略可以是特定的页面置换算法,所述第五选择策略和所述第六选择策略可以相同,也可以不同。所述第三内存页可以是从非易失性内存202中选择的页面2022,可以在第二内存页2011中的第二数据和第三内存页2022中的第三数据不相同的情况下,将第二内存页2011中的第二数据复制到第三内存页2022中。
59.步骤s506:在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;
60.其中,由于第二内存页2011中的第二数据已经被复制到了第三内存页2022中,因此,可以将第一内存页2021中的第一数据复制到第二内存页2011中,以通过第二内存页2011访问第一数据。
61.本技术实施例中,在dram中有空闲内存页的情况下,将非易失性内存中的第一数据复制至dram中的空闲内存页中,在dram中没有空闲内存页的情况下,先将dram中的第二内存页中的第二数据复制到非易失性内存的第三内存页中,再将非易失性内存中的第一数据复制至dram中的第二内存页中,从而通过将非易失性内存中的数据换入dram,可以提高数据的访问速度和访问性能。
62.本技术实施例还提供一种数据调度方法,所述方法包括:
63.步骤s602:在接收到对第一存储器的第一内存页中的第一数据的操作请求,且第
二存储器中有空闲内存页的情况下,根据第四选择策略,从所述第二存储器的空闲内存页中选择第二内存页;所述操作请求为换入请求;
64.步骤s604:在所述第二存储器中没有空闲内存页的情况下,根据第五选择策略,从所述第二存储器中选择第二内存页;在所述第一存储器中有所述第二内存页的影子内存页的情况下,将所述第二内存页的影子内存页确定为第三内存页;所述第二内存页的影子内存页中的数据由所述第二内存页中的历史数据复制而来;
65.步骤s606:在所述第一存储器中没有所述第二内存页的影子内存页的情况下,从所述第一存储器中选择第三内存页;
66.其中,所述第六选择策略还可以是先判断非易失性内存中是否有第二内存页2011的影子内存页,如果有,则将第二内存页2011的影子内存页确定为第三内存页,如果没有,则根据特定的页面置换算法从非易失性内存中选择第三内存页。
67.步骤s608:在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,将所述第二数据复制至所述第三内存页;
68.需要说明的是,在将所述第二数据复制至所述第三内存页之后,或者在所述第二内存页中的第二数据和所述第三内存页的第三数据相同的情况下,将指向所述第二内存页的页表项指向所述第三内存页;
69.步骤s610:在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;
70.其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求;在所述第一数据和所述第二内存页中的第二数据相同的情况下,同样执行下述步骤s612和步骤s614。
71.步骤s612:将指向所述第一内存页的页表项指向所述第二内存页;
72.步骤s614:将所述第一内存页设置为所述第二内存页的影子内存页。
73.本技术实施例中,由于第二内存页的影子内存页是由第二内存页的历史数据复制而来,在第二内存页未发生更新的情况下,第二内存页的影子内存页中的数据与第二内存页中的数据保持一致,通过优先将非易失性内存中,第二内存页的影子内存页选为第三内存页,从而可以在判断出第二数据未发生更新的情况下,直接通过第二内存页的影子内存页访问第二数据,可以提高数据访问效率;通过更改第一内存页和第二内存页的页表项,可以提高数据访问准确率。
74.本技术实施例还提供一种数据调度方法,所述方法包括:
75.步骤s702:在接收到对第一存储器的第一内存页中的第一数据的操作请求,且第二存储器中有空闲内存页的情况下,根据第四选择策略,从所述第二存储器的空闲内存页中选择第二内存页;所述操作请求为换入请求;
76.其中,参见图3,所述第一内存页3022可以是非易失性内存中被访问的页面,所述第二内存页3012可以是dram中的、用于存储所述第一内存页3022中的第一数据的页面,所述第二内存页3012可以是所述dram中的空闲内存页。
77.步骤s704:在所述第二存储器中没有空闲内存页的情况下,根据第五选择策略,从所述第二存储器中选择第二内存页;在所述第一存储器中有所述第二内存页的影子内存页
的情况下,将所述第二内存页的影子内存页确定为第三内存页;所述第二内存页的影子内存页中的数据由所述第二内存页中的历史数据复制而来;
78.其中,所述第三内存页3023可以是所述非易失性内存中,所述第二内存页3012的影子内存页。
79.步骤s706:在所述第一存储器中没有所述第二内存页的影子内存页,且所述第一存储器中有空闲内存页的情况下,根据第七选择策略,从所述第一存储器的空闲内存页中选择第三内存页;
80.其中,所述第三内存页3023还可以是根据第七选择策略,从所述非易失性内存中选择的空闲内存页。
81.步骤s708:在所述第一存储器中没有所述第二内存页的影子内存页,所述第一存储器中没有空闲内存页,且所述第三存储器中有空闲内存页的情况下,根据第八选择策略,从所述第一存储器中选择第三内存页;根据第九选择策略,从所述第三存储器的空闲内存页中选择第四内存页;在所述第三内存页中的第三数据和所述第四内存页的第四数据不相同的情况下,将所述第三内存页中的第三数据复制至所述第四内存页;
82.其中,所述第三存储器可以是磁盘,所述第七选择策略和所述第九选择策略可以是特定的空闲内存页的选择策略,所述第八选择策略可以是特定的页面置换算法;所述第四内存页3032可以是从所述磁盘的空闲内存页中选取的页面,可以先将第三内存页3023中的第三数据复制到第四内存页3032中,然后将第二内存页3012中的第二数据复制至第三内存页3023,再将第一内存页3022中的第一数据复制至第二内存页3012。在一个实施例中,还可以先将第五内存页3033中的第五数据复制到非易失性内存的空闲内存页中。
83.步骤s710:在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,将所述第二数据复制至所述第三内存页;
84.步骤s712:在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;
85.其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求;
86.步骤s714:将指向所述第一内存页的页表项指向所述第二内存页;
87.步骤s716:将所述第一内存页设置为所述第二内存页的影子内存页。
88.本技术实施例中,通过利用dram、非易失性内存和磁盘进行数据的交换,从而一方面可以提高数据的访问速度和效率,另一方面通过非易失性内存和磁盘均作为dram的内存交换设备来进一步扩展内存空间,提高数据交换的灵活性。
89.相关技术中将非易失内存作内存使用有如下两种途径:
90.在一种途径中,由相关硬件实现。非易失内存需要格式化为特定的内存模式,并辅以一定的dram做缓存以满足性能需求。该方案的缺点是:配置不灵活。内存模式不能动态配置,一旦配置不再支持非易失特性,除非重新配置;dram缓存大小是固定的,除非重新配置。缺乏可调性。不能根据特定的使用场景对内存模式运作进行针对性的调整。
91.在另一种途径中,由应用层软件实现。通过拦截如libc函数库的内存分配函数调用,进行非易失内存的分配和部署。该方案的缺点是:适用范围有限。就库函数而言,并非所
有应用都使用libc进行内存分配,而且其内存分配函数也不会固定不变;就程序占用的内存而言,并非皆由函数库的动态分配而来。就程序类型而言,无法涵盖如内核和系统管理这类特殊程序。分配效率有损。每一个内存分配函数都要经历更多的处理过程。并非完全透明。虽然应用本身无需改动,但要安装管理软件,以及进行相关配置文件和环境变量的设置等工作。
92.针对上述问题和相关解决方案的缺陷,本技术实施例中的方案提出,基于内核交换的非易失内存的软内存模式。该方案在系统内核层实现,通过扩展现有的基于存储设备的内核交换子系统,增加对将非易失内存用作新一级的交换设备的支持的途径,达到利用非易失内存扩展现有dram内存的目的。
93.采用本方案之后的优势是:无需引入额外的非易失内存模式,仅使用非易失模式。非易失内存的功能可动态配置,如使能、禁用、扩展、收缩等功能。更加灵活且可扩展的非易失内存使用策略。适用于应用进程的所有内存使用,以及内核可交换部分的内存使用。无需额外应用软件支持,或进行dram缓存的大小之类的设置,对应用程序完全透明。内存分配效率不受影响。
94.相关技术中内核交换仅使用硬盘作为交换设备,交换到硬盘的数据不能被cpu(central processing unit)继续访问。本方案将非易失内存作为交换设备,交换到非易失内存的数据可以被继续访问,dram和非易失内存共同构成了如图2所示的两级混合内存。
95.需要说明的是,非易失内存可以单独作为交换设备,也可以和磁盘可以同时使用形成如图3所示的两级交换设备,进一步扩展系统的虚拟内存数量。
96.在系统内存消耗较低(例如低于dram容量)时,所有数据均存放在dram中。当内存消耗较高(例如接近/超过dram容量)时,系统根据特定策略选择一部分数据由dram交换到非易失内存。当非易失内存的数据被访问时,系统根据特定策略决定是否将被访问的数据交换回dram,以及是否同时将部分数据由dram交换到非易失内存。换出(将dram中的数据换出至非易失性内存)和换入(将非易失性内存中数据交换回dram)的处理流程参见图4和图5。
97.图4为本技术实施例一种由dram换出至非易失性内存的处理方法的流程示意图,参见图4,所述方法包括:
98.步骤401:选择由dram换出的页a;
99.其中,可以通过特定的页面置换算法选择由dram换出至非易失性内存的页a。
100.步骤402:判断页a是否有非易失影子内存页b;
101.其中,可以判断所述非易失性内存中是否有页a的影子内存页页b;若是,则执行步骤403;若否,则执行步骤404;
102.步骤403:判断页a和页b内容是否相同;若否,则执行步骤408;若是,则执行步骤409;
103.步骤404:判断是否有空闲非易失内存;
104.其中,可以判断所述非易失性内存中是否有空闲内存页,若是,则执行步骤405;若否,则执行步骤406;
105.步骤405:分配非易失内存页b;
106.其中,可以从空闲内存页分配出非易失性内存页页b。
107.步骤406:判断是否有空闲磁盘交换空间;
108.其中,可以判断所述磁盘中是否有空闲内存页,若是,则执行步骤407;若否,则执行步骤411;
109.步骤407:将非易失性内存换出至磁盘;
110.其中,可以利用特定的页面置换算法从非易失性内存中选取一页换出至磁盘中,则此时选取的该页则为非易失内存的空闲内存页,在执行完步骤407后,执行步骤404;
111.步骤408:拷贝页a内容至页b;
112.步骤409:更新相关页表,使其指向页a的页表项指向页b;
113.步骤410:释放页a;
114.步骤411:结束。
115.图5为本技术实施例一种由非易失性内存换入至dram的处理方法的流程示意图,参见图5,所述方法包括:
116.步骤501:判断是否有需换入的非易失性内存页a;
117.其中,可以判断是否有换入dram的非易失性内存页页a;若是,则执行步骤502,若否,则执行步骤512;
118.步骤502:判断是否有空闲的dram;
119.若否,则执行步骤503;若是,则执行步骤508;
120.步骤503:选择由dram换出的页b;
121.其中,可以通过特定的页面置换算法选择由dram换出至非易失性内存的页b。
122.步骤504:使用页b的影子内存页页c或者分配新的非易失性内存页页c;
123.步骤505:判断页b和页c的内容是否相同;
124.若否,则执行步骤506,若是,则执行步骤507;
125.步骤506:拷贝页b的内容至页c;
126.步骤507:更新相关页表,使其指向页b的页表项指向页c;
127.步骤508:分配dram页b;
128.其中,可以将dram中的空闲内存页分配为dram的页b。
129.步骤509:拷贝页a的内容至页b;
130.步骤510:更新相关页表,使其指向页a的页表项指向页b;
131.步骤511:设页a为页b的影子内存页;
132.步骤512:结束。
133.基于前述的实施例,本技术实施例提供一种数据调度装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu,central processing unit)、微处理器(mpu,microprocessor unit)、数字信号处理器(dsp,digital signal processing)或现场可编程门阵列(fpga,field programmable gate array)等。
134.图6为本技术实施例数据调度装置的组成结构示意图,如图6所示,所述装置600包括选择模块601和复制模块602,其中:
135.选择模块601,用于在接收到对第一存储器的第一内存页中的第一数据的操作请求的情况下,从第二存储器中选择第二内存页;
136.复制模块602,用于在所述第一数据和所述第二内存页中的第二数据不相同的情况下,将所述第一数据复制至所述第二内存页,以通过所述第二内存页访问所述第一数据;其中,在所述第一存储器的访问速度低于所述第二存储器的访问速度的情况下,所述操作请求为换入请求;在所述第一存储器的访问速度不低于所述第二存储器的访问速度的情况下,所述操作请求为换出请求。
137.在一个实施例中,所述操作请求为换出请求,所述选择模块601,包括:第一确定子模块,用于在第二存储器中有所述第一内存页的影子内存页的情况下,将所述第一内存页的影子内存页确定为第二内存页;所述第一内存页的影子内存页中的数据由所述第一内存页中的历史数据复制而来;第一选择子模块,用于在所述第二存储器中没有所述第一内存页的影子内存页的情况下,从所述第二存储器中选择第二内存页。
138.在一个实施例中,所述第一选择子模块,包括:第一选择单元,用于在所述第二存储器中没有所述第一内存页的影子内存页,且所述第二存储器中有空闲内存页的情况下,根据第一选择策略,从所述第二存储器的空闲内存页中选择第二内存页;第二选择单元,用于在所述第二存储器中没有所述第一内存页的影子内存页,所述第二存储器中没有空闲内存页,且第三存储器中有空闲内存页的情况下,根据第二选择策略,从所述第二存储器中选择第二内存页;根据第三选择策略,从所述第三存储器的空闲内存页中选择第三内存页;在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,将所述第二内存页中的第二数据复制至所述第三内存页;所述第三存储器的访问速度低于所述第二存储器的访问速度。
139.在一个实施例中,所述装置还包括:释放模块,用于释放所述第一内存页。
140.在一个实施例中,所述第一存储器为动态随机存取存储器dram,所述第二存储器为非易失性内存pmem,所述第三存储器为磁盘disk;所述第二选择单元,用于在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,通过io总线将所述第二内存页中的第二数据复制至所述第三内存页;所述复制模块,用于在所述第一数据和所述第二内存页中的第二数据不相同的情况下,通过内存总线将所述第一数据复制至所述第二内存页。
141.在一个实施例中,所述操作请求为换入请求,所述选择模块601,包括:第二选择子模块,用于在第二存储器中有空闲内存页的情况下,根据第四选择策略,从所述第二存储器的空闲内存页中选择第二内存页;第三选择子模块,用于在所述第二存储器中没有空闲内存页的情况下,根据第五选择策略,从所述第二存储器中选择第二内存页;根据第六选择策略,从所述第一存储器中选择第三内存页;在所述第二内存页中的第二数据和所述第三内存页的第三数据不相同的情况下,将所述第二数据复制至所述第三内存页。
142.在一个实施例中,所述第三选择子模块包括:第一确定单元,用于在所述第一存储器中有所述第二内存页的影子内存页的情况下,将所述第二内存页的影子内存页确定为第三内存页;所述第二内存页的影子内存页中的数据由所述第二内存页中的历史数据复制而来;第三选择单元,用于在所述第一存储器中没有所述第二内存页的影子内存页的情况下,从所述第一存储器中选择第三内存页。
143.在一个实施例中,所述第三选择单元,包括:第一选择子单元,用于在所述第一存储器中没有所述第二内存页的影子内存页,且所述第一存储器中有空闲内存页的情况下,
根据第七选择策略,从所述第一存储器的空闲内存页中选择第三内存页;第二选择子单元,用于在所述第一存储器中没有所述第二内存页的影子内存页,所述第一存储器中没有空闲内存页,且所述第三存储器中有空闲内存页的情况下,根据第八选择策略,从所述第一存储器中选择第三内存页;根据第九选择策略,从所述第三存储器的空闲内存页中选择第四内存页;在所述第三内存页中的第三数据和所述第四内存页的第四数据不相同的情况下,将所述第三内存页中的第三数据复制至所述第四内存页。
144.在一个实施例中,所述装置还包括:设置模块,用于将所述第一内存页设置为所述第二内存页的影子内存页。
145.在一个实施例中,所述装置还包括:更新模块,用于将指向所述第一内存页的页表项指向所述第二内存页。
146.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的数据调度方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是手机、平板电脑、台式机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
147.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
148.对应地,本技术实施例提供一种电子设备,图7为本技术实施例电子设备的一种硬件实体示意图,如图7所示,该电子设备700的硬件实体包括:包括存储器701和处理器702,所述存储器701存储有可在处理器702上运行的计算机程序,所述处理器702执行所述程序时实现上述实施例数据调度方法中的步骤。
149.存储器701配置为存储由处理器702可执行的指令和应用,还可以缓存待处理器702以及电子设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
150.对应地,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的数据调度方法中的步骤。
151.这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同设备实施例相似的有益效果。对于本技术存储介质和方法实施例中未披露的技术细节,请参照本技术设备实施例的描述而理解。
152.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功
能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
153.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
154.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
155.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
156.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得计算机设备(可以是手机、平板电脑、台式机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
157.本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
158.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献