CN104252421A - 缓存方法及装置 - Google Patents
缓存方法及装置 Download PDFInfo
- Publication number
- CN104252421A CN104252421A CN201310257056.0A CN201310257056A CN104252421A CN 104252421 A CN104252421 A CN 104252421A CN 201310257056 A CN201310257056 A CN 201310257056A CN 104252421 A CN104252421 A CN 104252421A
- Authority
- CN
- China
- Prior art keywords
- memory page
- allocated
- replaced
- cache
- heat
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims description 25
- 238000013508 migration Methods 0.000 claims description 18
- 230000005012 migration Effects 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
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
本发明提供一种缓存方法及装置,方法包括:根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度;若是,则将所述待替换内存页替换为所述待分配内存页。通过本发明提供的缓存方法及装置,能够实现对高热度内存页的缓存,避免降低缓存块的缓存效率。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种缓存方法及装置。
背景技术
当前,为了在提供大容量内存的同时,有效降低内存功耗,数据中心通常使用变相存储器(Phase-change memory,简称PRAM)和动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)共同构建内存系统。具体的,PRAM与DRAM共同构建的内存系统的结构通常为垂直混合结构。具体的,在垂直混合结构中,DRAM作为PRAM的缓存,可以将PRAM中被访问的内存页缓存至所述DRAM中为该内存页预先映射的缓存块中。对于一个缓存块来说,该缓存块中缓存的内存页的热度越高,则缓存块的缓存效率和效果越高。
具体的,DRAM与PRAM的映射方法通常采用组相联的方法,即内存页在DRAM中映射的缓存块是确定的。因此,在上述方案中可能存在内存页分布过于集中的情形,例如,单个缓存块对应多个内存页的情形。对此,现有的缓存方案为,若某个需要被缓存的内存页,其当前映射的缓存块中没有空闲的缓存空间,则将该缓存块当前缓存的内存页替换为当前需要被缓存的内存页。
但是,在上述缓存方案中,存在被替换的内存页的热度反而可能高于被缓存的内存页的热度的现象,而这就会导致该缓存块的缓存的效率降低。
发明内容
本发明提供一种缓存方法及装置,用于解决现有的缓存方案中,因内存页分布过于集中导致的缓存块的缓存效率降低的问题。
第一方面,本发明提供一种缓存方法,包括:根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度;若是,则将所述待替换内存页替换为所述待分配内存页。
根据第一方面,在第一方面的第一种可实施方式中,所述检测所述各缓存块中是否缓存有待替换内存页,包括:检测所述待分配内存页当前映射的缓存块中是否缓存有所述待替换内存页;所述将所述待替换内存页替换为所述待分配内存页,包括:若所述待分配内存页当前映射的缓存块中缓存有所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
根据第一方面的第一种可实施方式,在第一方面的第二种可实施方式中,所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页之后,还包括:若所述待分配内存页当前映射的缓存块中未缓存有所述待替换内存页,则通过页面迁移将所述待分配内存页映射至另一缓存块;再次执行所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页的步骤。
根据第一方面或第一方面的前两种可实施方式之一,在第一方面的第三种可实施方式中,所述将所述待替换内存页替换为所述待分配内存页之后,还包括:返回执行所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页的步骤,直至当前已缓存的内存页的热度均不低于所述待分配内存页的热度。
根据第一方面或第一方面的前三种可实施方式之一,在第一方面的第四种可实施方式中,所述将所述待替换内存页替换为所述待分配内存页,包括:若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页。
根据第一方面或第一方面的前四种可实施方式之一,在第一方面的第五种可实施方式中,所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页之后,还包括:若所述待分配内存页当前映射的缓存块存在空闲的缓存空间,则将所述待分配内存页缓存至所述待分配内存页当前映射的缓存块。
根据第一方面或第一方面的前四种可实施方式之一,在第一方面的第六种可实施方式中,所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页之后,还包括:若所述待分配内存页当前映射的缓存块不存在空闲的缓存空间,且其它缓存块中存在空闲的缓存空间,则通过页面迁移将所述待分配内存页映射至所述空闲的缓存空间所属的缓存块,并缓存。
根据第一方面或第一方面的前六种可实施方式之一,在第一方面的第七种可实施方式中,所述确定当前热度最高且未被缓存的待分配内存页之前,还包括:根据预设周期,定时统计并更新所述各内存页的热度。
第二方面,本发明提供一种缓存装置,包括:获取模块,用于根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;检测模块,用于若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度;第一处理模块,用于若所述各缓存块中缓存有待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
根据第二方面,在第二方面的第一种可实施方式中,所述检测模块,具体用于若当前各缓存块中没有空闲的缓存空间,则检测所述待分配内存页当前映射的缓存块中是否缓存有所述待替换内存页;所述第一处理模块,具体用于若所述待分配内存页当前映射的缓存块中缓存有所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
根据第二方面的第一种可实施方式,在第二方面的第二种可实施方式中,所述第一处理模块,还用于若所述待分配内存页当前映射的缓存块中未缓存有所述待替换内存页,则通过页面迁移将所述待分配内存页映射至另一缓存块,并指示所述检测模块再次执行所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页的步骤。
根据第二方面或第二方面的前两种可实施方式之一,在第二方面的第三种可实施方式中,所述第一处理模块,还用于在将所述待替换内存页替换为所述待分配内存页之后,指示所述获取模块执行所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页的步骤,直至当前已缓存的内存页的热度均不低于所述待分配内存页的热度。
根据第二方面或第二方面的前三种可实施方式之一,在第二方面的第四种可实施方式中,所述第一处理模块,具体用于若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页。
根据第二方面或第二方面的前四种可实施方式之一,在第二方面的第五种可实施方式中,所述装置还包括:第二处理模块,用于在根据各内存页的热度,确定当前的所述待分配内存页之后,若所述待分配内存页当前映射的缓存块存在空闲的缓存空间,则将所述待分配内存页缓存至所述待分配内存页当前映射的缓存块。
根据第二方面或第二方面的前四种可实施方式之一,在第二方面的第六种可实施方式中,所述装置还包括:第三处理模块,用于在根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页之后,若所述待分配内存页当前映射的缓存块不存在空闲的缓存空间,且其它缓存块中存在空闲的缓存空间,则通过页面迁移将所述待分配内存页映射至所述空闲的缓存空间所属的缓存块,并缓存。
根据第二方面或第二方面的前六种可实施方式之一,在第二方面的第七种可实施方式中,所述装置还包括:统计模块,用于根据预设周期,定时统计并更新所述各内存页的热度。
本发明提供的缓存方法及装置,通过确定热度最高且未被缓存的待分配内存页后,若各缓存块中不存在空闲的缓存空间,则将已缓存的热度低于所述待分配内存页的热度的待替换内存页替换为所述待分配内存页的技术方案,实现对高热度内存页的缓存,避免降低缓存块的缓存效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种缓存方法的流程示意图;
图2为本发明实施例二提供的另一种缓存方法的流程示意图;
图3为本发明实施例三提供的又一种缓存方法的流程示意图;
图4为本发明实施例四提供的一种缓存装置的结构示意图;
图5为本发明实施例五提供的另一种缓存装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的一种缓存方法的流程示意图,如图1所示,所述方法包括:
101、根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页。
具体的,在101之前,所述方法还可以包括:根据预设周期,定时统计并更新所述各内存页的热度。
在实际应用中,所述内存页的热度可以为,在所述预设周期内所述内存页的读次数和/或写次数。具体的,所述各内存页的热度可以记录在热度表中,进一步具体的,可以通过内存控制器(Memory Controller)统计系统中各内存页的页面读写情况,从而根据所述页面读写情况建立并维护所述热度表。
102、若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度。
可选的,在101之后,若当前的各缓存块中存在空闲的缓存空间,则在101之后,还可以包括:
若所述待分配内存页当前映射的缓存块存在空闲的缓存空间,则将所述待分配内存页缓存至所述待分配内存页当前映射的缓存块。
可选的,在101之后,还可以包括:
若所述待分配内存页当前映射的缓存块不存在空闲的缓存空间,且其它缓存块中存在空闲的缓存空间,则通过页面迁移将所述待分配内存页映射至所述空闲的缓存空间所属的缓存块,并缓存。
其中,页面迁移的具体方法在此不再赘述。并且通过上述两种实施方式,可以在存在有空闲的缓存空间的情况下,实现对所述待分配内存页进行缓存。
103、若是,则将所述待替换内存页替换为所述待分配内存页。
其中,102中所述检测所述各缓存块中是否缓存有待替换内存页,具体可以包括:检测所述待分配内存页当前映射的缓存块中是否缓存有所述待替换内存页;
则相应的,103中所述将所述待替换内存页替换为所述待分配内存页,具体可以包括:若所述待分配内存页当前映射的缓存块中缓存有所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
在上述实施方式中,在102之后,除103之外,可能存在的另一种场景为,所述待分配内存页当前映射的缓存块中缓存的内存页的热度均不低于所述待分配内存页的热度,则在102之后,还可以包括:
若所述待分配内存页当前映射的缓存块中未缓存有所述待替换内存页,则通过页面迁移将所述待分配内存页映射至另一缓存块;
再次执行所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页的步骤。
具体的,通过上述实施方式,当待分配内存页当前映射的缓存块中未缓存有所述待替换内存页时,则将所述待分配内存页通过页面迁移映射至另一缓存块,并在页面迁移后,再次检测所述待分配内存页当前映射的缓存块中有没有所述待替换内存页的方案,在避免降低缓存块缓存效率的同时,提高缓存的可靠性。
可选的,所述将所述待替换内存页替换为所述待分配内存页,具体可以包括:若存在一个所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
可选的,所述将所述待替换内存页替换为所述待分配内存页,具体还可以包括:若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页。
本实施方式,通过存在多个待替换内存页时,则选取其中热度最低的内存页与待分配内存页进行替换的方案,能够有效提高缓存块的缓存效率。
本实施例提供的缓存方法,通过确定热度最高且未被缓存的待分配内存页后,若各缓存块中不存在空闲的缓存空间,则将已缓存的热度低于所述待分配内存页的热度的待替换内存页替换为所述待分配内存页的技术方案,实现对高热度内存页的缓存,避免降低缓存块的缓存效率。
图2为本发明实施例二提供的另一种缓存方法的流程示意图,如图2所示,根据实施例一所述的缓存方法,在103之后,还可以包括:
201、返回执行所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页的步骤,直至当前被缓存的内存页的热度均不低于所述待分配内存页的热度。
具体的,在本实施例中,当完成对某个待分配内存页的缓存后,则再次确定当前热度最高且未被缓存的待分配内存页,并通过实施例一中的相关方法对重新确定的当前热度最高且未被缓存的待分配内存页进行缓存,以此循环,直至当前被缓存的内存页的热度均不低于当前未被缓存的内存页的热度。
进一步具体的,确定某个内存页是否已被缓存的具体方法可以包括多种,具体举例来说,在缓存该内存页之后,则可以在所述热度表中为该内存页添加已缓存标识,则相应的,未携带所述已缓存标识的内存页则为当前未被缓存的内存页,本实施例不对其进行限制。
本实施例提供的缓存方法,通过在缓存某个待分配内存页之后,再次确定当前热度最高且未被缓存的待分配内存页,并通过本实施例提供的缓存方法进行缓存的方案,使得被缓存的内存页的热度均不低于未被缓存的内存页的热度,避免各缓存块的缓存效率的降低,有效保证了整体缓存块的缓存效率。
图3为本发明实施例三提供的又一种缓存方法的流程示意图,如图3所示,所述方法包括:
301、根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;
302、判断当前被缓存的内存页的热度是否均不小于所述待分配内存页的热度,若是则结束,若否则执行303;
303、检测当前各缓存块中是否存在空闲的缓存空间,若是,则执行304,否则执行305;
304、将所述待分配内存页缓存至所述空闲的缓存空间;
305、检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页,若是,则执行306,否则执行307;
306、若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页,并返回执行301;
307、通过页面迁移将所述待分配内存页映射至另一缓存块,并返回执行305。
本实施例提供的缓存方法,通过确定热度最高且未被缓存的待分配内存页后,若各缓存块中不存在空闲的缓存空间,则将已缓存的热度最低且低于所述待分配内存页的热度的待替换内存页替换为所述待分配内存页的技术方案,实现对高热度内存页的缓存,避免降低缓存块的缓存效率。
图4为本发明实施例四提供的一种缓存装置的结构示意图,如图4所示,所述装置包括:获取模块41、检测模块42和第一处理模块43;其中,
获取模块41,用于根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;
检测模块42,用于若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度;
第一处理模块43,用于若所述各缓存块中缓存有待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
具体的,在101之前,所述方法还可以包括:根据预设周期,定时统计并更新所述各内存页的热度。
再具体的,在确定所述待分配内存页后,若当前的各缓存块中存在空闲的缓存空间,则所述装置还可以包括:
第二处理模块,用于在根据各内存页的热度,确定当前的所述待分配内存页之后,若所述待分配内存页当前映射的缓存块存在空闲的缓存空间,则将所述待分配内存页缓存至所述待分配内存页当前映射的缓存块。
可选的,所述装置还可以包括:
第三处理模块,用于在根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页之后,若所述待分配内存页当前映射的缓存块不存在空闲的缓存空间,且其它缓存块中存在空闲的缓存空间,则通过页面迁移将所述待分配内存页映射至所述空闲的缓存空间所属的缓存块,并缓存。
通过上述两种实施方式,可以在当前各缓存块中存在空闲的缓存空间的情况下,实现对所述待分配内存页进行缓存。
其中,检测模块42,可以具体用于若当前各缓存块中没有空闲的缓存空间,则检测所述待分配内存页当前映射的缓存块中是否缓存有所述待替换内存页;
则相应的,第一处理模块43,可以具体用于若所述待分配内存页当前映射的缓存块中缓存有所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
对应的,在上述实施方式中,若检测模块42检测到所述待分配内存页当前映射的缓存块中缓存的内存页的热度均不低于所述待分配内存页的热度,则第一处理模块43,还用于若所述待分配内存页当前映射的缓存块中未缓存有所述待替换内存页,则通过页面迁移将所述待分配内存页映射至另一缓存块,并指示检测模块42再次执行所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页的步骤。
通过上述实施方式,在避免降低缓存块缓存效率的同时,提高缓存的可靠性。
进一步的,第一处理模块43,可以具体用于若存在一个所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
第一处理模块43,还可以具体用于若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页。通过本实施方式能够有效提高缓存块的缓存效率。
可选的,在上述任一实施方式中,第一处理模块43,还用于在将所述待替换内存页替换为所述待分配内存页之后,指示获取模块41执行所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页的步骤,直至当前被缓存的内存页的热度均不低于所述待分配内存页的热度。
具体的,在本实施例中,当第一处理模块43完成对某个待分配内存页的缓存后,则指示获取模块41再次确定当前热度最高且未被缓存的待分配内存页,并对重新确定的当前热度最高且未被缓存的待分配内存页进行缓存,以此循环,直至当前被缓存的内存页的热度均不低于当前未被缓存的内存页的热度。
本实施例提供的缓存装置,通过确定热度最高且未被缓存的待分配内存页后,若各缓存块中不存在空闲的缓存空间,则将已缓存的热度低于所述待分配内存页的热度的待替换内存页替换为所述待分配内存页的技术方案,实现对高热度内存页的缓存,避免降低缓存块的缓存效率。
图5为本发明实施例五提供的另一种缓存装置的结构示意图,如图5所示,所述装置包括:
存储器51,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器51可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器52,执行存储器51存放的程序,以用于:根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度;若是,则将所述待替换内存页替换为所述待分配内存页。
具体的,处理器52,可以用于根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;若当前各缓存块中没有空闲的缓存空间,则检测所述待分配内存页当前映射的缓存块中是否缓存有所述待替换内存页;若是,则将所述待替换内存页替换为所述待分配内存页。
可选的,基于存储器51存放的程序,在上述实施方式中,处理器52,还用于若所述待分配内存页当前映射的缓存块中未缓存有所述待替换内存页,则通过页面迁移将所述待分配内存页映射至另一缓存块;再次执行所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页的步骤。
其中,处理器52可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
可选的,基于存储器51存放的程序,在上述任一实施方式中,处理器52,还用于在将所述待替换内存页替换为所述待分配内存页之后,返回执行所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页的步骤,直至当前被缓存的内存页的热度均不低于所述待分配内存页的热度。
可选的,处理器52,具体用于若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页。
可选的,基于存储器51存放的程序,在上述任一实施方式中,
处理器52,还用于若所述待分配内存页当前映射的缓存块存在空闲的缓存空间,则将所述待分配内存页缓存至所述待分配内存页当前映射的缓存块;或者,若所述待分配内存页当前映射的缓存块不存在空闲的缓存空间,且其它缓存块中存在空闲的缓存空间,则通过页面迁移将所述待分配内存页映射至所述空闲的缓存空间所属的缓存块,并缓存。
通过本实施方式能够在缓存块存在空闲的缓存空间时,实现对待分配内存页的缓存。
具体的,基于存储器51存放的程序,在上述任一实施方式中,处理器52还用于根据预设周期,定时统计并更新所述各内存页的热度。
可选的,所述装置还可以包括:通信接口53,用于获取所述各内存页的热度。在具体实现上,如果存储器51、处理器52和通信接口53独立实现,则存储器51、处理器52和通信接口53可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本实施例提供的缓存装置,通过确定热度最高且未被缓存的待分配内存页后,若各缓存块中不存在空闲的缓存空间,则将已缓存的热度低于所述待分配内存页的热度的待替换内存页替换为所述待分配内存页的技术方案,实现对高热度内存页的缓存,避免降低缓存块的缓存效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种缓存方法,其特征在于,包括:
根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;
若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度;
若是,则将所述待替换内存页替换为所述待分配内存页。
2.根据权利要求1所述的方法,其特征在于,所述检测所述各缓存块中是否缓存有待替换内存页,包括:
检测所述待分配内存页当前映射的缓存块中是否缓存有所述待替换内存页;
所述将所述待替换内存页替换为所述待分配内存页,包括:
若所述待分配内存页当前映射的缓存块中缓存有所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
3.根据权利要求2所述的方法,其特征在于,所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页之后,还包括:
若所述待分配内存页当前映射的缓存块中未缓存有所述待替换内存页,则通过页面迁移将所述待分配内存页映射至另一缓存块;
再次执行所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页的步骤。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述待替换内存页替换为所述待分配内存页之后,还包括:
返回执行所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页的步骤,直至当前已缓存的内存页的热度均不低于所述待分配内存页的热度。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述将所述待替换内存页替换为所述待分配内存页,包括:
若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页之后,还包括:
若所述待分配内存页当前映射的缓存块存在空闲的缓存空间,则将所述待分配内存页缓存至所述待分配内存页当前映射的缓存块。
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页之后,还包括:
若所述待分配内存页当前映射的缓存块不存在空闲的缓存空间,且其它缓存块中存在空闲的缓存空间,则通过页面迁移将所述待分配内存页映射至所述空闲的缓存空间所属的缓存块,并缓存。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述确定当前热度最高且未被缓存的待分配内存页之前,还包括:
根据预设周期,定时统计并更新所述各内存页的热度。
9.一种缓存装置,其特征在于,包括:
获取模块,用于根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页;
检测模块,用于若当前各缓存块中没有空闲的缓存空间,则检测所述各缓存块中是否缓存有待替换内存页,所述待替换内存页的热度低于所述待分配内存页的热度;
第一处理模块,用于若所述各缓存块中缓存有待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
10.根据权利要求9所述的装置,其特征在于,
所述检测模块,具体用于若当前各缓存块中没有空闲的缓存空间,则检测所述待分配内存页当前映射的缓存块中是否缓存有所述待替换内存页;
所述第一处理模块,具体用于若所述待分配内存页当前映射的缓存块中缓存有所述待替换内存页,则将所述待替换内存页替换为所述待分配内存页。
11.根据权利要求10所述的装置,其特征在于,
所述第一处理模块,还用于若所述待分配内存页当前映射的缓存块中未缓存有所述待替换内存页,则通过页面迁移将所述待分配内存页映射至另一缓存块,并指示所述检测模块再次执行所述检测所述待分配内存页当前映射的缓存块中是否缓存有待替换内存页的步骤。
12.根据权利要求9-11任一项所述的装置,其特征在于,
所述第一处理模块,还用于在将所述待替换内存页替换为所述待分配内存页之后,指示所述获取模块执行所述根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页的步骤,直至当前已缓存的内存页的热度均不低于所述待分配内存页的热度。
13.根据权利要求9-12中任一项所述的装置,其特征在于,
所述第一处理模块,具体用于若所述待替换内存页有多个,则将所述待替换内存页中热度最低的内存页替换为所述待分配内存页。
14.根据权利要求9-13中任一项所述的装置,其特征在于,所述装置还包括:
第二处理模块,用于在根据各内存页的热度,确定当前的所述待分配内存页之后,若所述待分配内存页当前映射的缓存块存在空闲的缓存空间,则将所述待分配内存页缓存至所述待分配内存页当前映射的缓存块。
15.根据权利要求9-13中任一项所述的装置,其特征在于,所述装置还包括:
第三处理模块,用于在根据各内存页的热度,确定当前热度最高且未被缓存的待分配内存页之后,若所述待分配内存页当前映射的缓存块不存在空闲的缓存空间,且其它缓存块中存在空闲的缓存空间,则通过页面迁移将所述待分配内存页映射至所述空闲的缓存空间所属的缓存块,并缓存。
16.根据权利要求9-15中任一项所述的装置,其特征在于,所述装置还包括:
统计模块,用于根据预设周期,定时统计并更新所述各内存页的热度。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310257056.0A CN104252421A (zh) | 2013-06-25 | 2013-06-25 | 缓存方法及装置 |
PCT/CN2014/080174 WO2014206234A1 (zh) | 2013-06-25 | 2014-06-18 | 缓存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310257056.0A CN104252421A (zh) | 2013-06-25 | 2013-06-25 | 缓存方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104252421A true CN104252421A (zh) | 2014-12-31 |
Family
ID=52141039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310257056.0A Pending CN104252421A (zh) | 2013-06-25 | 2013-06-25 | 缓存方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104252421A (zh) |
WO (1) | WO2014206234A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
WO2022021158A1 (zh) * | 2020-07-29 | 2022-02-03 | 华为技术有限公司 | 缓存系统、方法和芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100787856B1 (ko) * | 2006-11-29 | 2007-12-27 | 한양대학교 산학협력단 | 플래시 메모리 저장장치의 페이지 교체 방법 |
CN101727403A (zh) * | 2008-10-15 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 数据存储系统、设备及方法 |
CN102156753A (zh) * | 2011-04-29 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 面向固态硬盘文件系统的数据页缓存方法 |
CN102253901A (zh) * | 2011-07-13 | 2011-11-23 | 清华大学 | 一种基于相变内存的读写区分数据存储替换方法 |
CN103019955A (zh) * | 2011-09-28 | 2013-04-03 | 中国科学院上海微系统与信息技术研究所 | 基于pcram主存应用的内存管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397298B1 (en) * | 1999-07-30 | 2002-05-28 | International Business Machines Corporation | Cache memory having a programmable cache replacement scheme |
CN102063386B (zh) * | 2010-12-17 | 2014-07-23 | 曙光信息产业(北京)有限公司 | 一种单载体多目标的缓存系统的缓存管理方法 |
CN102521161B (zh) * | 2011-11-21 | 2015-01-21 | 华为技术有限公司 | 一种数据的缓存方法、装置和服务器 |
CN103076992B (zh) * | 2012-12-27 | 2016-09-28 | 杭州华为数字技术有限公司 | 一种内存数据缓冲方法及装置 |
-
2013
- 2013-06-25 CN CN201310257056.0A patent/CN104252421A/zh active Pending
-
2014
- 2014-06-18 WO PCT/CN2014/080174 patent/WO2014206234A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100787856B1 (ko) * | 2006-11-29 | 2007-12-27 | 한양대학교 산학협력단 | 플래시 메모리 저장장치의 페이지 교체 방법 |
CN101727403A (zh) * | 2008-10-15 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 数据存储系统、设备及方法 |
CN102156753A (zh) * | 2011-04-29 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 面向固态硬盘文件系统的数据页缓存方法 |
CN102253901A (zh) * | 2011-07-13 | 2011-11-23 | 清华大学 | 一种基于相变内存的读写区分数据存储替换方法 |
CN103019955A (zh) * | 2011-09-28 | 2013-04-03 | 中国科学院上海微系统与信息技术研究所 | 基于pcram主存应用的内存管理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN104834609B (zh) * | 2015-05-31 | 2017-12-22 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
WO2022021158A1 (zh) * | 2020-07-29 | 2022-02-03 | 华为技术有限公司 | 缓存系统、方法和芯片 |
Also Published As
Publication number | Publication date |
---|---|
WO2014206234A1 (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9361236B2 (en) | Handling write requests for a data array | |
EP2743834B1 (en) | Dynamic set-associative cache apparatus for processor and visiting method thereof | |
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及系统 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
KR20160055273A (ko) | 메모리 자원 최적화 방법 및 장치 | |
CN112506823B (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
US10901640B2 (en) | Memory access system and method | |
US9063667B2 (en) | Dynamic memory relocation | |
CN103198021B (zh) | 一种提高固态硬盘数据传输效率的方法 | |
CN104346284A (zh) | 一种内存管理方法及内存管理设备 | |
CN104503703A (zh) | 缓存的处理方法和装置 | |
US20150269027A1 (en) | Method and device for adjusting cacheline length of cache | |
CN105095104B (zh) | 数据缓存处理方法及装置 | |
US20230274774A1 (en) | Effective DRAM Interleaving For Asymmetric Size Channels Or Ranks While Supporting Improved Partial Array Self-Refresh | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
KR20160053966A (ko) | 다이렉트 스눕 개재 | |
US9727476B2 (en) | 2-D gather instruction and a 2-D cache | |
CN104932830A (zh) | 信息处理方法及电子设备 | |
CN104252421A (zh) | 缓存方法及装置 | |
CN103176753B (zh) | 存储设备及其数据管理方法 | |
WO2018094620A1 (zh) | 一种内存分配方法和设备 | |
CN106155923B (zh) | 内存共享的方法和装置 | |
CN104899158A (zh) | 访存优化方法和装置 | |
CN102662864B (zh) | 一种缺页异常的处理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141231 |