CN117370227A - 内存页面的确定方法及计算设备 - Google Patents
内存页面的确定方法及计算设备 Download PDFInfo
- Publication number
- CN117370227A CN117370227A CN202311204412.2A CN202311204412A CN117370227A CN 117370227 A CN117370227 A CN 117370227A CN 202311204412 A CN202311204412 A CN 202311204412A CN 117370227 A CN117370227 A CN 117370227A
- Authority
- CN
- China
- Prior art keywords
- access frequency
- memory page
- memory
- access
- page
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 619
- 238000000034 method Methods 0.000 title claims abstract description 46
- 239000000872 buffer Substances 0.000 claims description 117
- 238000009826 distribution Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供了一种内存页面的确定方法及计算设备,属于服务器技术领域。分别获取内存页面访问频度集合中访问频度的最大值和访问频度阈值设定比例;内存页面访问频度集合包括内存页面及内存页面对应的访问频度;基于内存页面访问频度集合中访问频度的最大值和访问阈值设定比例,确定第一访问频度阈值;访问阈值设定比例小于1;在第一内存页面被访问的情况下,确定第一内存页面的访问频度是否大于或等于第一访问频度阈值;在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,将第一内存页面存储至内存页面访问频度集合。提高访问频度阈值的精确性,进而提高基于访问频度阈值确定出的目标内存页面的准确性。
Description
技术领域
本申请涉及服务器技术领域,具体涉及一种内存页面的确定方法及计算设备。
背景技术
为了将访问频度排在前K位的内存页面(目标内存页面)的地址保存至访问速度较快的内存中,通常人工根据经验设定一个固定的访问频度阈值,对内存页面按照访问频度从大到小的顺序进行排序,从排序后的内存页面中确定访问频度阈值大于设定的访问频度阈值的内存页面,将确定出的内存页面保存至访问速度较快的内存中,从而提高访问效率。
采用上述方式时,由于依赖人工经验设置访问频度阈值,导致访问频度阈值固定且准确性较差,造成基于访问频度阈值的目标内存页面的准确性不高。
发明内容
本申请实施例提供了一种内存页面的确定方法及计算设备,能够提高访问频度阈值的精确性,进而提高基于访问频度阈值确定出的目标内存页面的准确性。
第一方面,提供了一种内存页面的确定方法,方法包括:分别获取内存页面访问频度集合中访问频度的最大值和访问频度阈值设定比例;其中,内存页面访问频度集合存储于计算设备的内存中,内存页面访问频度集合包括内存页面及内存页面对应的访问频度;基于内存页面访问频度集合中访问频度的最大值和访问阈值设定比例,确定第一访问频度阈值;其中,访问阈值设定比例小于1;在第一内存页面被访问的情况下,确定第一内存页面的访问频度是否大于或等于第一访问频度阈值;在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,将第一内存页面存储至内存页面访问频度集合。
访问阈值设定比例例如是基于内存页面的访问频度所满足的分布模式设定的。示例性地,内存页面的访问频度的分布模式包括Zipf分布(Zipf Distribution)、正态分布或者均匀分布等。示例性地,确定内存页面访问频度集合中访问频度的最大值和访问阈值设定比例之间的乘积,作为第一访问频度阈值。内存页面访问频度集合可以包括一个或多个内存页面及一个或多个内存页面中每个内存页面对应的访问频度。
基于第一方面提供的方法,由于采用访问频度的最大值和访问频度阈值设定比例确定访问频度阈值,使得访问频度阈值与内存页面的实际访问情况更加匹配,从而提高访问频度阈值的精确性,进而提高基于访问频度阈值确定出的目标内存页面的准确性。例如,如果内存页面的访问频度普遍较大,则访问频度的最大值也会较大,因此确定出的访问频度阈值也会较大,从而降低访问频度阈值过小导致基于该阈值确定出的目标内存页面数量过多的风险。此外,如果内存页面的访问频度普遍较小,则访问频度的最大值也会较小,因此确定出的访问频度阈值也会较小,从而降低访问频度阈值过大导致遗漏目标内存页面的风险。
在一种可能的实现中,在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,将第一内存页面存储至内存页面访问频度集合,包括:在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,确定第一内存页面的访问频度是否大于访问频度的最大值;在第一内存页面的访问频度不大于访问频度的最大值的情况下,确定第一内存页面是否在第一访问频度阈值下被选中过;在第一内存页面未在第一访问频度阈值下被选中过的情况下,选中第一内存页面;将第一内存页面存储至内存页面访问频度集合。
由于在第一内存页面未在第一访问频度阈值下被选中过的情况下,再将第一内存页面存储至内存页面访问频度集合,从而降低将相同页面重复存储至内存页面访问频度集合的概率,降低内存页面访问频度集合存在大量重复的内存页面的地址的风险,节省内存页面访问频度集合在计算设备中占用的内存空间,也无需要求设备对内存页面访问频度集合进行去重操作,降低处理复杂度增加。
在一种可能的实现中,方法还包括:在第一内存页面的访问频度大于访问频度的最大值的情况下,将第一内存页面存储至内存页面访问频度集合。
由于将访问频度最大的内存页面存储在内存页面访问频度集合,从而降低访问频度最大的内存页面被遗漏统计至目标内存页面的概率。
在一种可能的实现中,方法还包括:根据第一内存页面的访问频度以及访问频度阈值设定比例生成第二访问频度阈值;将第一访问频度阈值更新为第二访问频度阈值。
由于结合内存页面的访问频度对访问频度阈值进行更新,从而能够跟随内存页面的访问而自适应调整访问频度阈值的大小,使得访问频度阈值更匹配内存页面的实时的访问情况,更加精确。
在一种可能的实现中,内存页面访问频度集合存储于内存的第一缓存区,第一缓存区为环形缓冲区;将第一内存页面存储至内存页面访问频度集合,包括:将第一内存页面存储至环形缓冲区的尾部。
环形缓冲区也被称为循环缓冲区或环形队列,环形缓冲区具有固定大小的容量。环形缓冲区的存储结构是环形的,例如当数据写满缓冲区时,新的数据会从缓冲区的起始位置继续写入,覆盖之前的旧数据,使得存储空间总是被最新的数据所占据,避免浪费额外的空间
由于使用环形缓冲区保存内存页面访问频度集合,使得缓存的内存页面访问频度的数量是固定的,降低由于大量内存页面被持续访问导致需要缓存大量内存页面的访问频度造成内存占用过高的风险。
在一种可能的实现中,第一缓存区还包括尾指针;尾指针指向最近一次访问频度大于或等于第一访问频度阈值的存储单元,且作为第一处理器获取目标内存页面的读起点;其中,第一处理器为计算设备的处理器;将第一内存页面存储至环形缓冲区的尾部,包括:将第一内存页面存储至环形缓冲区的尾指针后。
由于通过尾指针指向最近一次访问频度大于或等于第一访问频度阈值的存储单元,将第一内存页面存储至环形缓冲区的尾指针后,计算设备的处理器从尾指针开始逆序寻找K个内存页面的地址即可获得目标内存页面,因此获得目标内存页面的方式比较简单,同时不必要求设备支持对所有内存页面的访问频度进行排序,从而降低设备的实现复杂度。
在一种可能的实现中,第一缓存区还包括头指针;头指针指向内存页面访问频度集合中访问频度的最大值对应的存储单元;确定第一内存页面是否在第一访问频度阈值下被选中过,包括:确定位于头指针和尾指针之间的存储单元是否存储有第一内存页面;在位于头指针和尾指针之间的存储单元未存储第一内存页面的情况下,确定第一内存页面未在第一访问频度阈值下被选中过;在头指针和尾指针之间的存储单元存储有第一内存页面的情况下,确定第一内存页面在第一访问频度阈值下被选中过。
通过基于头指针和尾指针之间的存储单元是否存储有第一内存页面来确定第一内存页面未在第一访问频度阈值下被选中过,有助于简化对第一内存页面是否在第一访问频度阈值下被选中过的逻辑判断,例如无需对整个缓存区进行搜索和遍历操作来确定第一内存页面未在第一访问频度阈值下被选中过,从而提高效率。
在一种可能的实现中,方法还包括:在第一内存页面的访问频度小于第一访问频度阈值或第一内存页面的访问频度在第一访问频度阈值下被选中过的情况下,确定第一内存页面未被选中。
第二方面,提供了一种电子设备,电子设备包括第二处理器和存储器;
其中,第二处理器和存储器电连接;
存储器用于存储程序指令;
处理器用于调用程序指令,以使电子设备执行第一方面或第一方面任一种可选方式所提供的方法。
第三方面,提供一种计算设备,计算设备包括第一处理器、内存和如第二方面的电子设备;电子设备分别与第一处理器和内存电连接。
第四方面,提供了一种内存页面的确定装置,装置包括:
访问频度统计模块,用于分别获取内存页面访问频度集合中访问频度的最大值和访问频度阈值设定比例;其中,内存页面访问频度集合存储于计算设备的内存中,内存页面访问频度集合包括内存页面及内存页面对应的访问频度;
阈值确定模块,用于基于内存页面访问频度集合中访问频度的最大值和访问阈值设定比例,确定第一访问频度阈值;其中,访问阈值设定比例小于1;在第一内存页面被访问的情况下,确定第一内存页面的访问频度是否大于或等于第一访问频度阈值;
页面选择模块,用于在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,将第一内存页面存储至内存页面访问频度集合。
在一种可能的实现中,页面选择模块用于在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,确定第一内存页面的访问频度是否大于访问频度的最大值;在第一内存页面的访问频度不大于访问频度的最大值的情况下,确定第一内存页面是否在第一访问频度阈值下被选中过;在第一内存页面未在第一访问频度阈值下被选中过的情况下,选中第一内存页面。
在一种可能的实现中,页面选择模块,还用于在第一内存页面的访问频度大于访问频度的最大值的情况下,将第一内存页面存储至内存页面访问频度集合。
在一种可能的实现中,阈值确定模块,还用于根据第一内存页面的访问频度以及访问频度阈值设定比例生成第二访问频度阈值;将第一访问频度阈值更新为第二访问频度阈值。
在一种可能的实现中,内存页面访问频度集合存储于内存的第一缓存区,第一缓存区为环形缓冲区;
页面选择模块用于将第一内存页面存储至环形缓冲区的尾部。
在一种可能的实现中,第一缓存区还包括尾指针;尾指针指向最近一次访问频度大于或等于第一访问频度阈值的存储单元,且作为第一处理器获取目标内存页面的读起点;其中,第一处理器为计算设备的处理器;
页面选择模块用于将第一内存页面存储至环形缓冲区的尾指针后。
在一种可能的实现中,第一缓存区还包括头指针;头指针指向内存页面访问频度集合中访问频度的最大值对应的存储单元;
页面选择模块用于确定位于头指针和尾指针之间的存储单元是否存储有第一内存页面;在位于头指针和尾指针之间的存储单元未存储第一内存页面的情况下,确定第一内存页面未在第一访问频度阈值下被选中过;在头指针和尾指针之间的存储单元存储有第一内存页面的情况下,确定第一内存页面在第一访问频度阈值下被选中过。
在一种可能的实现中,页面选择模块还用于在第一内存页面的访问频度小于第一访问频度阈值或第一内存页面的访问频度在第一访问频度阈值下被选中过的情况下,确定第一内存页面未被选中。
附图说明
图1是本申请实施例提供的一种计算设备的系统架构示意图;
图2是本实施例提供的一种内存页面的确定方法的流程图;
图3是本申请实施例提供的一种内存页面的确定装置的结构示意图;
图4是本实施例提供的一种内存页面的确定方法的流程图;
图5是本实施例提供的一种选择内存页面方法的流程图;
图6是本实施例提供的一种环形缓冲区的状态示意图;
图7是本实施例提供的一种环形缓冲区的状态示意图;
图8是本实施例提供的一种环形缓冲区的状态示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语概念做解释说明。
(1)内存页面(Memory Page)
内存页面是计算机中进行内存管理的基本单位。内存页面通常是由固定大小的连续字节组成的块,用于存储和管理数据或者程序。一个内存页面的大小通常是4千字节(Kilobyte,KB)、8KB或者更大。每个内存页面都有一个唯一的地址,基于内存页面的地址能够定位和访问内存页面中的数据。
(2)内存页面的访问频度
内存页面的访问频度是指内存页面在一个时间段内被访问的次数。例如,内存页面1在一个时间段内被访问了100次,则内存页面1的访问频度为100次。内存页面的访问频度的大小能够指示内存页面在一个时间段内被访问的频繁程度。
(3)Zipf
Zipf分布是一种幂律分布,Zipf分布表示大部分内存页面的访问频率和内存页面的排名成反比关系。例如,内存页面集中内存页面A的访问频率最大,内存页面B的访问频率其次大,内存页面C的访问频率第三大,内存页面A的访问频率是内存页面B的访问频率的二倍,内存页面C的访问频率是内存页面B的访问频率的二倍,以此类推。
(4)缓冲区
缓冲区是计算机中用于临时存储数据的一段内存区域,缓冲区通常用于平衡不同组件之间的速度差异或者在数据传输过程中处理临时数据的需求。
(5)环形缓冲区(Circular Buffer)
环形缓冲区也被称为循环缓冲区或环形队列,环形缓冲区是一种线性数据结构。环形缓冲区通常包括一个读指针和一个写指针,通过不断循环移动指针来实现数据的读写操作。环形缓冲区具有固定大小的容量。例如,在创建环形缓冲区时指定固定的大小,使得通过环形缓冲区保存的数据的数量是固定不变的,不会因为数据的添加或删除而改变。环形缓冲区的存储结构是环形的,例如当数据写满缓冲区时,新的数据会从缓冲区的起始位置继续写入,覆盖之前的旧数据,使得存储空间总是被最新的数据所占据,避免浪费额外的空间。此外,由于环形缓冲区在内存中是连续存储的,读写指针的移动也是基于简单且快速的操作,所以读写操作通常较为高效。
可选地,环形缓冲区还包括头指针以及尾指针。头指针指向缓冲区的起始位置(例如缓冲区中第一个存储单元),头指针可以作为数据的读取起点。尾指针指向缓冲区的结束位置(例如缓冲区中最后一个存储单元),尾指针可以作为数据的写入起点。
(6)分级内存(hierarchical memory)
分级内存是一种层次化的内存架构,分级内存通过在内存系统中引入多个层级的存储介质,以提供更高的性能和容量。每个层级的存储介质具有不同的访问速度和容量。
举例来说,一个计算设备中的分级内存结架构包括一级缓存(Level 1Cache,L1Cache)、二级缓存(二级缓存,L2 Cache)、主存和硬盘。L1 Cache为中央处理器(CentralProcessing Unit,CPU)内部的缓存,访问速度极快,但容量较小,用于缓存最常使用的数据和指令。L2 Cache位于CPU和主存之间,容量更大但速度相对较慢,用于处理L1Cache无法容纳的数据。主存为主要内存,容量更大但读写速度相对较慢,用于存储程序和数据。硬盘容量非常大,但读写速度较主存慢,用于存储大量的文件和数据。
基于分级内存的架构,计算设备可以将访问频度较大(经常访问)的数据保存至速度更快的内存层级中,将访问频度较小(较少访问的数据)保存至速度较慢但容量更大的层级,从而提高计算设备整体的性能和资源利用率。
(7)前K个(top K)页面地址
top K页面地址是指访问频度排在前K位的内存页面的地址。top K页面被频繁地访问和使用,其访问次数较其他页面更多。通过识别top K页面,可以将top K页面保存至分级内存中速度更快的内存层级中,从而提供更快的访问速度和响应时间。K为大于或等于1的正整数。
下面对本申请实施例的应用场景举例说明。
本申请实施例可以应用于在分级内存中进行内存管理的场景。
本申请的一些可能的实现方式中,通过对内存页面的访问频度进行统计,基于统计结果确定访问频度阈值,使得访问频度阈值与内存页面整体的访问频度的情况相匹配,因此降低由于访问频度阈值过小导致确定出的内存页面的数量过多的风险以及由于访问频度阈值过大导致确定出的内存页面的数量过少的风险。尤其是,在被访问的内存页面数量众多或者访问频度变动比较剧烈的场景下,设置访问频度阈值的难度较大,而根据访问频度的统计结果能够自动地确定出访问频度阈值,降低确定阈值的复杂度。
下面对本申请实施例的系统架构举例说明。
图1是本申请实施例提供的一种计算设备的系统架构示意图,图1示出的计算设备100包括电子设备110、处理器120(也可称为第一处理器)以及内存130。
电子设备110用于基于内存页面访问频度集合中访问频度的最大值和访问阈值设定比例,确定第一访问频度阈值。由于通过电子设备110确定第一访问频度阈值,从而无需处理器120确定第一访问频度阈值,减轻处理器120的计算负担。
电子设备110包括处理器111(也可称为第二处理器)和存储器112;所述处理器111和存储器112电连接;所述存储器112用于存储程序指令;处理器111用于调用所述程序指令,以使电子设备110执行图2实施例提供的方法。
电子设备110分别与处理器120以及内存130电连接。在一种可能的实现中,电子设备110为一个独立的电子设备。例如,电子设备110为一个外围组件互连快速数据传输总线(peripheral component interconnect express,PCIe)卡。电子设备110分别与处理器120以及内存130通过PCIe总线电连接。电子设备110与处理器120以及内存130可以通过PCIe协议通信。示例性地,电子设备110包括壳体,处理器111和存储器112均设置于电子设备110的壳体内。在另一种可能的实现中,电子设备110为内存控制器。
处理器120例如为计算设备100的中央处理器(central processing unit,CPU)。内存130包括内存页面集合。内存页面集合包括一个或多个内存页面。处理器120可以访问内存页面。内存130既可以是随机存取存储器,内存130还可以包括其他随机存取存储器,例如静态随机存取存储器(Static Random Access Memory,SRAM)等。内存130也可以是计算互联(Compute Express Link,CXL)存储设备。CXL存储设备可以作为一个卡插在主板上。
内存130包括缓冲区131以及缓冲区132。缓冲区131用于存储内存页面的地址以及内存页面的访问次数。缓冲区131可以存储全量的内存页面的地址以及全量的内存页面的访问次数。缓冲区132用于存储访问频度大于或等于第一访问频度阈值的内存页面的地址。在一种可能的实现中,电子设备110基于缓冲区131中每个内存页面的访问次数以及内存页面的地址,从缓冲区131中确定访问频度大于或等于第一访问频度阈值的内存页面的地址,将确定出的内存页面的地址存储至缓冲区132。在一种可能的实现中,处理器120运行内存管理软件,处理器120通过内存管理软件分配缓冲区131以及缓冲区132。
一种可能的实现中,计算设备100包括主板140,主板140包括处理器120以及内存130。主板140也被称为系统板,主板140可以包括CPU槽以及内存插槽,CPU插槽用于连接处理器120,内存插槽用于连接内存130。内存130包括多个内存页面。
图2是本实施例提供的一种内存页面的确定方法的流程图,图2所示方法应用于图1所示计算设备100。例如,图2所示方法由计算设备100中的电子设备110执行。
S210,电子设备110分别获取内存页面访问频度集合中访问频度的最大值和访问频度阈值设定比例。
访问阈值设定比例小于1。访问阈值设定比例指示访问频度的最大值与访问频度阈值之间的比例。示例性地,访问阈值设定比例是基于内存页面的访问频度所满足的分布模式确定的。分布模式指示了访问频度的规律,从而为确定阈值提供指导。示例性地,访问频度的分布模式包括Zipf分布(Zipf Distribution)、正态分布或者均匀分布等。
针对电子设备110获得访问频度阈值设定比例的方式,在一种可能的实现中,处理器120获得访问频度阈值设定比例,处理器120向电子设备110发送访问频度阈值设定比例。在另一种可能的实现中,电子设备110确定访问频度阈值设定比例。例如,电子设备110接收用户输入的访问频度阈值设定比例。
内存页面访问频度集合包括一个或多个内存页面的访问频度。在一种可能的实现方式中,电子设备110检测内存页面被访问的事件。响应于检测到一个内存页面被访问,获取该内存页面的访问频度。在一种可能的实现方式中,电子设备110检测页表中访问位(access bit)的取值,以确定内存页面的访问频度。页表是一种数据结构,用于将虚拟地址映射到物理内存地址。页表包括多个页表项,每个页表项对应一个内存页面。访问位是页表项中的一个标志位,用于记录内存页面是否被访问过。每个页表项都有一个对应的访问位,用来表示对应内存页面的访问状态。例如,当程序访问一个虚拟内存地址时,操作系统会基于该虚拟内存地址查找页表得到对应的物理内存地址,并将虚拟内存地址命中的页表项中的访问位设置为1,表示内存页面已被访问。
针对确定内存页面的访问频度的方式,例如,电子设备110扫描页表中一个页表项中访问位的取值。响应于扫描到该页表项中访问位的取值为1,将该页表项对应的内存页面的访问频度加一;将该页表项中访问位的取值重置为0,以便下一次扫描到访问位的取值为1时继续累计该内存页面的访问频度。可选地,电子设备110按照设定的扫描周期,周期性地扫描页表项。可选地,电子设备110遍历页表中每个页表项中访问位的取值,以便记录每个内存页面的访问频度。
由于通过电子设备110扫描页表中访问位的取值从而确定内存页面的访问频度,而无需由处理器120中的CPU扫描页表中访问位的取值从而确定内存页面的访问频度,因此减少了CPU的负担,使得CPU能够将更多的时间用于执行其他重要的任务,提高计算设备整体的性能,更高效地利用计算设备的资源,也减少了统计内存页面的访问频度的时间。
以统计内存页面集合中内存页面A的访问频度的最大值的过程为例,在一个示例性实施例中,响应于内存页面集合中内存页面A被访问,获取内存页面A的访问频度,对内存页面A的访问频度对历史记录的第一访问频度最大值进行比较;响应于内存页面A的访问频度大于第一访问频度最大值,将第一访问频度最大值更新为内存页面A的访问频度。在另一个示例性实施例中,遍历内存页面集合中所有内存页面,并比较不同内存页面的访问频度。例如,首先将第一个内存页面的访问频度设为当前最大值,再依次将后续内存页面的访问频度与当前最大值进行比较。响应于确定某个页面的访问频度大于当前最大值,则更新当前最大值为该页面的访问频度。在遍历内存页面结束后,将最大的访问频度作为内存页面的访问频度的最大值。
计算设备100中的内存130存储有内存页面访问频度集合。或者,电子设备110的存储器中存储有内存页面访问频度集合。内存页面访问频度集合包括内存页面及内存页面对应的访问频度。可选地,内存页面访问频度集合包括内存页面的地址。内存页面的地址可以是保存有内存页面的地址的存储单元的编号。内存页面的地址可以是逻辑地址也可以是物理地址。
S220,电子设备110基于内存页面访问频度集合中访问频度的最大值和访问阈值设定比例,确定第一访问频度阈值。
在一种可能的实现中,电子设备110对内存页面访问频度集合中访问频度的最大值与访问阈值设定比例进行相乘,将得到的乘积作为第一访问频度阈值。当然,电子设备110也可以对内存页面访问频度集合中访问频度的最大值与访问阈值设定比例的乘积与设定系数相加,将得到的和值作为第一访问频度阈值。
由于访问频度阈值是基于访问频度的最大值与比例值的乘积确定的,使得访问频度阈值与内存页面访问的实际情况更加匹配,因此访问频度阈值更加准确,降低由于访问频度阈值设置过高导致页面过少或设置过低导致页面过多的风险。此外,访问频度阈值能够跟随内存页面访问的实际情况进行调整,因此灵活性和适应性更强。此外,不必要求电子设备110能够对内存页面的访问频度进行排序,因此降低了电子设备110的实现复杂度。
S230,在第一内存页面被访问的情况下,电子设备110确定第一内存页面的访问频度是否大于或等于第一访问频度阈值。
第一内存页面是内存页面集合中的一个内存页面。电子设备110确定第一内存页面被访问,电子设备110对第一内存页面的访问频度与第一访问频度阈值进行比较,从而确定第一内存页面的访问频度大于或等于访问频度阈值。
S240,在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,电子设备110将第一内存页面存储至内存页面访问频度集合。
内存页面访问频度集合可以是热内存地址列表。热内存地址列表用于保存访问频度大于或等于访问频度阈值的内存页面的地址。例如,热内存地址列表包括多个表项,热内存地址列表中一个表项用于保存访问频度大于或等于访问频度阈值的一个内存页面的地址以及该内存页面的访问频度。
在一种可能的实现中,电子设备110在第一内存页面的访问频度大于或等于第一访问频度阈值的情况下,电子设备110确定第一内存页面的访问频度是否大于访问频度的最大值;在第一内存页面的访问频度不大于访问频度的最大值的情况下,电子设备110确定第一内存页面是否在第一访问频度阈值下被选中过;在第一内存页面未在第一访问频度阈值下被选中过的情况下,电子设备110选中第一内存页面。电子设备110将第一内存页面存储至内存页面访问频度集合。
由于在第一内存页面未在第一访问频度阈值下被选中过的情况下,再将第一内存页面存储至内存页面访问频度集合,从而降低将相同页面重复存储至内存页面访问频度集合的概率,降低内存页面访问频度集合存在大量重复的内存页面的地址的风险,节省内存页面访问频度集合在计算设备中占用的内存空间,也无需要求电子设备110对内存页面访问频度集合进行去重操作,降低处理复杂度增加。
在一种可能的实现中,电子设备110在第一内存页面的访问频度大于访问频度的最大值的情况下,将第一内存页面存储至内存页面访问频度集合。由于将访问频度最大的内存页面存储在内存页面访问频度集合,因此处理器120在从内存页面访问频度集合中获得目标内存页面时能够获得访问频度最大的内存页面,降低访问频度最大的内存页面被遗漏的概率。处理器120后续读取到访问频度最大的内存页面后,可以将访问频度最大的内存页面迁移至访问速度大于或等于访问速度阈值的内存中,使得访问频度最大的内存页面能够被优先访问。
在一种可能的实现中,电子设备110根据第一内存页面的访问频度以及访问频度阈值设定比例生成第二访问频度阈值;将第一访问频度阈值更新为第二访问频度阈值。由于在检测到内存页面被访问的情况下,结合内存页面的访问频度对阈值进行更新,从而能够跟随内存页面的访问而自适应调整阈值的大小,使阈值更贴近实际情况,降低静态阈值导致将内存页面误判为top K页面的风险,提高识别top K页面的精确性。
在一种可能的实现中,内存页面访问频度集合存储于内存130中的缓冲区132,缓冲区132为环形缓冲区;将第一内存页面存储至内存页面访问频度集合,包括:电子设备110将第一内存页面存储至环形缓冲区的尾部。在一种可能的实现中,缓冲区112为环形缓冲区。考虑到内存页面的数量较多,通过对缓冲区的类型进行限制,使用环形缓冲区保存内存页面访问频度集合,从而降低由于持续进行页面访问并记录导致大量的页面地址被存储在内存中造成内存占用过高的风险。通过将第一内存页面存储至环形缓冲区的尾部,降低处理器120获取目标内存页面的复杂度,例如,处理器120从环形缓冲区的尾部开始,按照从尾端至头端的顺序查找K个内存页面的地址,作为top K页面地址,从而在无需针对内存页面按照访问频度进行排序的情况下获得近似的top K页面地址
在一种可能的实现中,缓冲区132还包括尾指针;尾指针指向最近一次访问频度大于或等于第一访问频度阈值的存储单元,且作为处理器120获取目标内存页面的读起点;其中,处理器120为计算设备100的处理器;电子设备110将第一内存页面存储至环形缓冲区的尾指针后。目标内存页面例如是top K页面(访问频度排在前K位的内存页面)。通过这种方式,帮助处理器120快速查找到访问频度排在前K位的页面。在一种可能的实现中,处理器120从缓冲区132的尾指针开始连续逆序查找K个页面的地址。例如,处理器120首先从缓冲区132中定位尾指针指向的存储单元,从尾指针指向的存储单元查找到最近一次访问频度大于或等于第一访问频度阈值的内存页面(例如第一个目标内存页面),再从尾指针指向的存储单元的上一个存储单元中获得内存页面的地址(例如第二个目标内存页面),依次类推,从尾指针向前逐个查找,直到找到K个目标内存页面为止,结束查找流程,从而获得访问频次靠前的K个目标内存页面。
可选地,处理器120基于K个内存页面的地址,将K个内存页面迁移至内存130中的第一类内存,第一类内存的访问速度大于或等于访问速度阈值,从而提高经常被访问的页面的访问速度,提高系统的响应性能。
在一种可能的实现中,缓冲区132还包括头指针;头指针指向内存页面访问频度集合中访问频度的最大值对应的存储单元;电子设备110确定位于头指针和尾指针之间的存储单元是否存储有第一内存页面;在位于头指针和尾指针之间的存储单元未存储第一内存页面的情况下,电子设备110确定第一内存页面未在第一访问频度阈值下被选中过;在头指针和尾指针之间的存储单元存储有第一内存页面的情况下,电子设备110确定第一内存页面在第一访问频度阈值下被选中过。通过使用头指针指向内存页面访问频度集合中访问频度的最大值对应的存储单元,有助于快速定位和查找到访问频度的最大的内存页面,降低访问频度的最大的内存页面被遗漏统计的概率。
在一种可能的实现中,电子设备110在第一内存页面的访问频度小于第一访问频度阈值或第一内存页面的访问频度在第一阈值下被选中过的情况下,确定第一内存页面未被选中。
在一种可能的实现中,电子设备110在缓冲区132中保存热内存地址列表。电子设备110向缓冲区132中的热内存地址列表写入第一内存页面的地址。
在一种可能的实现中,缓冲区132中包括一个或多个存储单元,一个存储单元用于存储热内存地址列表中一个表项。
在一种可能的实现中,缓冲区132为环形缓冲区。考虑到内存页面的数量较多,通过对缓冲区的类型进行限制,使用环形缓冲区保存内存页面访问频度集合,从而降低由于持续进行页面访问并记录导致大量的页面地址被存储在内存中造成内存占用过高的风险。
可选地,处理器120在运行内存管理软件的过程中,处理器120为电子设备110分配内存130中的缓冲区131。可选地,电子设备110将内存页面集合的访问频度信息以及内存页面集合保存至缓冲区131。由于通过缓冲区131缓存内存页面集合的访问频度信息以及内存页面集合,能够利用内存130中的存储空间容纳更多内存页面的访问频度,降低由于电子设备110本身的存储容量有限导致无法容纳全量的内存页面的访问频度的风险,适用于内存页面数量众多导致访问频度信息的数据量较大的场景。
可选地,处理器120在运行内存管理软件的过程中,处理器120还为电子设备110分配内存130中的缓冲区132。缓冲区131用于存储全量的内存页面的访问频度,而缓冲区132用于缓存内存页面集合中符合阈值条件的内存页面(如内存页面集合中大于或等于第一访问频度阈值的第一内存页面)。在一种可能的实现中,处理器120在缓冲区132中创建热内存地址列表,处理器120向热内存地址列表中写入内存页面集合中大于或等于第一访问频度阈值的第一内存页面的地址以及第一内存页面的访问频度。
在一种可能的实现中,处理器120从缓冲区132中热内存地址列表查找K个内存页面的地址,K为大于或等于1的正整数。
可选地,处理器120从缓冲区132中获得K个内存页面的地址,处理器120基于K个内存页面的地址,将K个内存页面迁移至第一类内存,第一类内存的访问速度大于或等于访问速度阈值,从而提高经常被访问的页面的访问速度,提高系统的响应性能。
本实施例提供的方法,通过对内存页面的访问频度进行统计,基于统计结果确定访问频度阈值,使得访问频度阈值与内存页面整体的访问频度的情况较为匹配,从而提高访问频度阈值的准确性。
此外,由于访问频度阈值较为准确,因此基于访问频度阈值确定出的内存页面的数量更逼近于top K页面的数量,降低由于访问频度阈值过小导致确定出的内存页面的数量过多的风险,进而降低将过多的内存页面迁移至访问速度较快的内存造成内存容量不足的概率,也降低由于访问频度阈值过大导致确定出的内存页面的数量过少的风险造成内存资源量不高的概率。
此外,不必要求硬件在向内存管理软件输出内存页面的地址之前对内存页面的访问频度进行排序,从而降低了硬件的实现复杂度。此外,在内存访问频度剧烈变动的场景下,确定的访问频度阈值依然较为准确。
图3是本申请实施例提供的一种内存页面的确定装置200的结构示意图。内存页面的确定装置200包括访问频度统计模块221、阈值确定模块223以及页面选择模块222。
在一种可能的实现中,电子设备110中存储器112用于存储程序指令,程序指令包括多个软件模块,如图3中的访问频度统计模块221、阈值确定模块223以及页面选择模块222,电子设备110中处理器111执行各个软件模块后可以按照各个软件模块的指示进行图2实施例中相应的操作。一个软件模块所执行的操作实际上是指处理器111根据所述软件模块的指示而执行的操作。
访问频度统计模块221用于统计内存页面的访问频度。阈值确定模块223用于基于内存页面的访问频度的统计结果确定访问频度阈值。页面选择模块222用于输出访问频度大于或等于访问频度阈值的内存页面的地址。由于通过电子设备110统计内存页面的访问频度,从而无需处理器120中的处理器统计内存页面的访问频度,减轻处理器120中的处理器的计算负担。
图4是本实施例提供的一种内存页面的确定方法的流程图,图4所示实施例是图2实施例的进一步细化,图4所示实施例以处理器111按照图3实施例中各个软件模块的指示进行图2实施例中相应的操作为例进行说明。图4实施例以针对内存页面集合中内存页面A的访问处理过程为例进行说明。内存页面A是内存页面集合中任意一个内存页面。图4实施例涉及对内存页面的访问频度进行更新的过程,为了区分描述更新前后的访问频度,用“第一访问频度”描述更新前的访问频度,用“第二访问频度”描述更新后的访问频度。
S310,访问频度统计模块221检测到内存页面A被访问。
S320,访问频度统计模块221获取内存页面A当前的访问频度。
S330,访问频度统计模块221判断内存页面A是否被首次访问。
S340,在确定内存页面A被首次访问的情况下,访问频度统计模块221将内存页面A的地址添加至缓冲区131。
S350,在确定内存页面A非被首次访问的情况下,访问频度统计模块221对缓冲区131中已记录的内存页面A的访问频度进行更新。例如,缓冲区131中已记录的内存页面A的访问频度为第一访问频度,访问频度统计模块221对第一访问频度加一,得到第二访问频度。
S360,阈值确定模块223基于内存页面的第二访问频度,更新访问频度阈值。
S370,页面选择模块222从缓冲区131中的内存页面集合中选择内存页面。
S370的实施细节可参考图5中S410至S440。
S380,页面选择模块222判断内存页面A是否被选中。
S390,在确定内存页面A被选中的情况下,页面选择模块222将内存页面A的地址添加到缓冲区132尾端。
S391,在确定内存页面A未被选中的情况下,页面选择模块222结束本次内存页面访问处理。
图5是本实施例提供的一种选择内存页面方法的流程图,图5所示实施例是图4实施例中S370的进一步细化,图5实施例涉及对访问频度阈值进行更新的过程,为了区分描述更新前后的访问频度阈值,用“第一访问频度阈值”描述更新前的访问频度阈值,用“第二访问频度阈值”描述更新后的访问频度。图5实施例包括如下步骤。
S410,页面选择模块222判断内存页面A的访问频度是否大于已记录的第一阈值。
S420,在确定内存页面A的访问频度大于第一阈值的情况下,页面选择模块222进一步判断内存页面A的访问频度是否大于当前记录的内存页面集合中每个内存页面的访问频度的最大值。
S430,在确定内存页面A的访问频度大于当前记录的访问频度的最大值的情况下,页面选择模块222根据阈值确定方式以及内存页面A的访问频度生成第二阈值。
S440,阈值确定模块223将第一阈值更新为第二阈值。
由于在检测到内存页面被访问的情况下,结合内存页面的访问频度对阈值进行更新,从而能够跟随内存页面的访问而自适应调整阈值的大小,使阈值更贴近实际情况,降低静态阈值导致将内存页面误判为top K页面的风险,提高识别top K页面的精确性。
S450,页面选择模块222输出内存页面A被选中。
S460,在确定内存页面A的访问频度不大于当前记录的访问频度的最大值的情况下,页面选择模块222判断内存页面A的地址是否曾经在第一阈值下被选中。
通过判断内存页面A之前是否已经被选中,从而降低重复选中相同的页面的概率。
S470,在确定内存页面A的地址尚未曾在第一阈值下被选中的情况下,页面选择模块222记录内存页面A的地址在第一阈值下被选中。
S480,在确定内存页面A的访问频度不大于第一阈值或者内存页面A的地址曾在第一阈值下被选中,页面选择模块222输出内存页面A的地址未被选中。
下面结合一个实例对上述图4至图5实施例举例说明。下述实例中,访问频度阈值是基于内存页面的访问频度的最大值以及比例值确定的。
实例1
在一些实现方式中,内存管理软件根据对于内存页面的访问模式的估计,确定阈值确定方式;阈值确定方式包括将访问频度按照从大到小的顺序排列时,第一个内存页面的访问频度和第K个内存页面的访问频度之间的比例r;内存管理软件将比例r发送给电子设备110;电子设备110在实时统计页面访问频度时,根据当前已知的最大访问频度Fm以及访问频度阈值设定比例r,确定用于区分页面是否属于top K页面的访问频度阈值Ft,其中Ft=Fm*r;针对每个被访问到的内存页面,电子设备110维护内存页面在top K环形缓冲区的位置指针和访问频度;对于环形缓冲区,电子设备110令环形缓冲区的头指针指向的存储单元存储了具有最大访问频度的页面地址,令环形缓冲区的尾指针指向的存储单元存储了最近一次访问频度大于或等于访问频度阈值的页面地址。
在一些实施方式中,缓冲区132为环形缓冲区,保存有top K页面地址的环形缓冲区的状态如图6所示。图6中用矩形表示环形缓冲区中的存储单元,矩形中的大写字母表示具体的内存页面的地址,矩形内部的数字表示访问频度的取值,矩形上方标注的数字为内存页面的地址在环形缓冲区中的位置信息,例如,环形缓冲区中第4个存储单元中保存内存页面A的地址以及内存页面A的访问频度100,环形缓冲区中第5个存储单元中保存内存页面B的地址以及内存页面B的访问频度92,环形缓冲区中第6个存储单元中保存内存页面C的地址以及内存页面C的访问频度80。
例如,比例r=0.8,如图6所示,环形缓冲区的头指针指向了页面K,内存管理软件通过页面访问频度信息101获知页面K的访问频度为120,表明当前已知的最大访问频度Fm为120,因此内存管理软件确定访问频度阈值Ft=120*0.8=96。页面B的访问频度为96,页面B是最近一次访问频度大于或等于访问频度阈值的内存页面,因此尾指针指向了页面B。
可选地,环形缓冲区还包括次大值指针,次大值指针指向第三存储单元,第三存储单元保存内存页面集合中访问频度为次大值的内存页面的地址。通过次大值指针能够指明在访问频度最大值发生变化时动态调整访问频度阈值。例如,第三存储单元保存内存页面集合中上一次被记录为访问频度最大值的内存页面的地址。由于使用指针指向上一次被记录为访问频度最大值的内存页面的地址,如果需要,内存管理软件可以基于指针读取上一次被记录为访问频度最大值的内存页面的地址。例如,如图6所示,次大值指针指向第4个存储单元,第4个存储单元保存了上一次被记录为访问频度最大值的内存页面A的地址。
图7为保存有top K页面地址的环形缓冲区132的另一种可能状态。缓冲区131中的访问频度信息包括内存页面B的地址在缓冲区132中的位置(7)。在图7示情形下,当电子设备110再次检测到内存页面B被访问了后,电子设备110将内存页面B的访问频度从92更新为93。电子设备110在更新内存页面B的访问频度的过程中,对内存页面B的地址在缓冲区132中的位置与头指针指向的位置以及尾指针指向的位置进行比较;由于确定内存页面B的地址落入头指针指向的位置与尾指针指向的位置之间,表明内存页面B的地址已经位于环形缓冲区中(位于头尾指针之间),故电子设备110取消将内存页面B的地址放入环形缓冲区中。但对于内存页面K而言,由于内存页面K的地址之前在环形缓冲区中的存储的位置为5,内存页面K的访问频度大于访问频度阈值,内存页面K的地址在环形缓冲区中的存储位置不在头指针指向的位置与尾指针指向的位置之间,故若电子设备110再次检测到对于内存页面K的访问,电子设备110会将内存页面K放入环形缓冲区中,形成图8的状态。
在本实施例提供的方法中,由于没有采取固定访问频度阈值,而是采用了访问频度的最大值和访问频度阈值设定比例确定访问频度阈值,使得访问频度阈值与内存页面的实际访问情况更加匹配。例如,如果内存页面的访问频度普遍较大,则访问频度的最大值也会较大,因此确定出的访问频度阈值也会较大,从而降低访问频度阈值过小导致目标内存页面数量过多的风险,如果内存页面的访问频度普遍较小,则访问频度的最大值也会较小,因此确定出的访问频度阈值也会较小,从而降低访问频度阈值过大导致遗漏目标内存页面的风险。由于访问频度阈值较为准确,使得主板上处理器(如CPU)获得目标内存页面更加准确。
此外,无需要求电子设备支持对所有页面访问频度进行排序,降低电子设备的实现复杂度。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一内存页面和第二内存页面用于区别不同的内存页面,而不是用于描述内存页面的特定顺序,也不能理解为第一内存页面比第二内存页面更重要。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个内存页面是指两个或两个以上的内存页面。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种内存页面的确定方法,其特征在于,所述方法包括:
分别获取内存页面访问频度集合中访问频度的最大值和访问频度阈值设定比例;其中,所述内存页面访问频度集合存储于计算设备的内存中,所述内存页面访问频度集合包括内存页面及所述内存页面对应的访问频度;
基于所述内存页面访问频度集合中访问频度的最大值和所述访问阈值设定比例,确定第一访问频度阈值;其中,所述访问阈值设定比例小于1;
在第一内存页面被访问的情况下,确定所述第一内存页面的访问频度是否大于或等于所述第一访问频度阈值;
在所述第一内存页面的访问频度大于或等于所述第一访问频度阈值的情况下,将所述第一内存页面存储至内存页面访问频度集合。
2.根据权利要求1所述的方法,其特征在于,在所述第一内存页面的访问频度大于或等于所述第一访问频度阈值的情况下,将所述第一内存页面存储至内存页面访问频度集合,包括:
在所述第一内存页面的访问频度大于或等于所述第一访问频度阈值的情况下,确定所述第一内存页面的访问频度是否大于所述访问频度的最大值;
在所述第一内存页面的访问频度不大于所述访问频度的最大值的情况下,确定所述第一内存页面是否在所述第一访问频度阈值下被选中过;
在所述第一内存页面未在所述第一访问频度阈值下被选中过的情况下,选中所述第一内存页面;
将所述第一内存页面存储至内存页面访问频度集合。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一内存页面的访问频度大于所述访问频度的最大值的情况下,将所述第一内存页面存储至内存页面访问频度集合。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据第一内存页面的访问频度以及访问频度阈值设定比例生成第二访问频度阈值;
将所述第一访问频度阈值更新为所述第二访问频度阈值。
5.根据权利要求4所述的方法,其特征在于,所述内存页面访问频度集合存储于所述内存的第一缓存区,所述第一缓存区为环形缓冲区;
所述将所述第一内存页面存储至所述内存页面访问频度集合,包括:
将所述第一内存页面存储至所述环形缓冲区的尾部。
6.根据权利要求4所述的方法,其特征在于,所述第一缓存区还包括尾指针;所述尾指针指向最近一次访问频度大于或等于所述第一访问频度阈值的存储单元,且作为第一处理器获取目标内存页面的读起点;其中,所述第一处理器为计算设备的处理器;
将所述第一内存页面存储至所述环形缓冲区的尾部,包括:
将所述第一内存页面存储至所述环形缓冲区的尾指针后。
7.根据权利要求2-6任一项所述的方法,其特征在于,所述第一缓存区还包括头指针;所述头指针指向内存页面访问频度集合中访问频度的最大值对应的存储单元;
确定所述第一内存页面是否在所述第一访问频度阈值下被选中过,包括:
确定位于头指针和尾指针之间的存储单元是否存储有所述第一内存页面;
在位于头指针和尾指针之间的存储单元未存储所述第一内存页面的情况下,确定所述第一内存页面未在所述第一访问频度阈值下被选中过;
在头指针和尾指针之间的存储单元存储有所述第一内存页面的情况下,确定所述第一内存页面在所述第一访问频度阈值下被选中过。
8.根据权利要求2-7任一项所述的方法,其特征在于,所述方法还包括:
在所述第一内存页面的访问频度小于所述第一访问频度阈值或所述第一内存页面的访问频度在第一访问频度阈值下被选中过的情况下,确定所述第一内存页面未被选中。
9.一种电子设备,其特征在于,所述电子设备包括第二处理器和存储器;
其中,所述第二处理器和存储器电连接;
所述存储器用于存储程序指令;
所述处理器用于调用所述程序指令,以使所述电子设备执行所述1-8任一项所述方法。
10.一种计算设备,其特征在于,所述计算设备包括第一处理器、内存和如权利要求9所述的电子设备;所述电子设备分别与所述第一处理器和内存电连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311204412.2A CN117370227A (zh) | 2023-09-14 | 2023-09-14 | 内存页面的确定方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311204412.2A CN117370227A (zh) | 2023-09-14 | 2023-09-14 | 内存页面的确定方法及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370227A true CN117370227A (zh) | 2024-01-09 |
Family
ID=89404940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311204412.2A Pending CN117370227A (zh) | 2023-09-14 | 2023-09-14 | 内存页面的确定方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370227A (zh) |
-
2023
- 2023-09-14 CN CN202311204412.2A patent/CN117370227A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114749B2 (en) | Cache memory system and method for accessing cache line | |
CN104462225B (zh) | 一种数据读取的方法、装置及系统 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
JP4445160B2 (ja) | イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム | |
CN110019361B (zh) | 一种数据的缓存方法及装置 | |
WO2016141735A1 (zh) | 缓存数据的确定方法及装置 | |
US10691601B2 (en) | Cache coherence management method and node controller | |
CN110858162B (zh) | 内存管理方法及装置、服务器 | |
CN114036077B (zh) | 数据处理方法及相关装置 | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
CN113641596A (zh) | 缓存管理方法、缓存管理装置、处理器 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN106164874B (zh) | 多核系统中数据访问者目录的访问方法及设备 | |
CN114817232A (zh) | 访问数据的方法及装置 | |
CN107133334B (zh) | 基于高带宽存储系统的数据同步方法 | |
CN116107762A (zh) | 内存分配方法、装置、电子设备和存储介质 | |
CN113419973B (zh) | 一种报文转发方法及装置 | |
CN115934583B (zh) | 分级缓存方法、装置及系统 | |
JP6194875B2 (ja) | キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム | |
CN110727405A (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN117370227A (zh) | 内存页面的确定方法及计算设备 | |
CN107450859B (zh) | 一种读取文件数据的方法和装置 | |
CN109165172B (zh) | 缓存数据处理方法及相关设备 | |
CN112035498B (zh) | 数据块调度方法、装置、调度层节点及存储层节点 | |
CN111221749A (zh) | 数据块写入方法、装置、处理器芯片及Cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |