CN104516828B - 用于移除缓存数据的方法和设备 - Google Patents

用于移除缓存数据的方法和设备 Download PDF

Info

Publication number
CN104516828B
CN104516828B CN201310466038.3A CN201310466038A CN104516828B CN 104516828 B CN104516828 B CN 104516828B CN 201310466038 A CN201310466038 A CN 201310466038A CN 104516828 B CN104516828 B CN 104516828B
Authority
CN
China
Prior art keywords
chained list
data cached
divide
sequence
chained
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.)
Active
Application number
CN201310466038.3A
Other languages
English (en)
Other versions
CN104516828A (zh
Inventor
徐鑫磊
吴永军
薛雷
李雄成
谢鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Priority to CN201310466038.3A priority Critical patent/CN104516828B/zh
Priority to US14/495,379 priority patent/US9588906B2/en
Publication of CN104516828A publication Critical patent/CN104516828A/zh
Application granted granted Critical
Publication of CN104516828B publication Critical patent/CN104516828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

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

用于移除缓存数据的方法和设备
技术领域
本发明的实施方式总体涉及数据存储领域,更具体地,涉及用于移除缓存数据的方法和设备。
背景技术
在计算机领域中,通常为设备配备一定的存储装置来存储操作过程中所需的数据。相对于传统的硬盘来说,闪存盘具有较高读写速率,并且通过闪存盘阵列技术能够提供高达TB级别的存储容量,因此其具有更广泛的应用。在使用闪存盘的过程中,通常会把多个磁盘分区的常用数据放入缓存区,以便于下次快速访问这些数据。
由于闪存盘的存储容量大,缓存数据通常也较多。在存储缓存数据时,可以根据多个磁盘分区生成多个分链表,每个分链表包括其对应的磁盘分区的缓存数据,并且每个分链表包括的缓存数据按照其访问热度排序放置。当分链表中的某个缓存数据最近被访问时,例如,对该缓存数据进行读取、写入、移除、替换等操作时,该缓存数据的访问热度最高,其排序位置也最靠前。由于系统的常用数据通常是不断变化的,而缓存区的容量有限并且即使断电也不会自动释放数据,因此,需要不断地移除缓存数据,以便于提高闪存盘的读写速率。
当缓存区中已使用的容量达到预定阈值时,常规的移除缓存数据的方法是:按照循环的方式依次从每个分链表中移除排序最靠后的一个缓存数据,直至移除预定数量的缓存数据。
然而,现有的技术方案存在一定的缺陷。由于无法知道整个缓存区中访问热度较低的缓存数据,只能简单地循环移除每个分链表中排序较靠后的缓存数据。这将会导致对于活跃度较高的分链表,例如包括较多的相对于其他分链表来说被更频繁访问的缓存数据的分链表,可能会移除该分链表所包括的在整个缓存区中访问度较高的缓存数据;而对于活跃度较低的分链表,却并未移除其包括的访问热度较低的缓存数据,从而使得闪存盘的读写速率较低。
发明内容
针对现有技术中存在的技术问题,本发明的多种实施方式提供了一种用于移除缓存数据的方法和设备。
根据本发明的第一方面,提供了一种用于移除缓存数据的方法。所述方法包括:确定多个分链表的活跃度;根据确定的多个分链表的活跃度,对多个分链表进行排序。所述方法还包括:当缓存区中已使用的容量达到预定阈值时,根据排序的结果,从多个分链表中移除预定数量的缓存数据。
根据本发明的可选实施方式,其中确定多个分链表的活跃度包括:确定每个分链表的最近整体访问时间戳,最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;其中根据确定的多个分链表的活跃度,对多个分链表进行排序包括:根据确定的最近整体访问时间戳,对多个分链表进行排序。
根据本发明的可选实施方式,其中最近整体访问时间戳的初始值为初始化每个分链表的时间。
根据本发明的可选实施方式,其中根据排序的结果,从多个分链表中移除预定数量的缓存数据包括:从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第一可移除数量,其中第一可移除数量与分链表的数量、每个分链表所处的排序位置、预定数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除确定的第一可移除数量的缓存数据,直至移除预定数量的缓存数据。
根据本发明的可选实施方式,其中确定多个分链表的活跃度包括:在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量;其中根据确定的多个分链表的活跃度,对多个分链表进行排序包括:根据确定的未被访问的缓存数据的数量,对多个分链表进行排序。
根据本发明的可选实施方式,其中每个分链表对应一个定位指针,在预定时间间隔的初始时刻定位指针指向每个分链表中排序最靠前的缓存数据,其中在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量包括:针对预定时间间隔,确定定位指针所指向的缓存数据在每个分链表中所处的排序位置;以及将每个分链表中从位于确定的排序位置的缓存数据到位于排序最靠后的位置的缓存数据之间的缓存数据的数量确定为未被访问的缓存数据的数量。
根据本发明的可选实施方式,其中根据排序的结果,从多个分链表中移除预定数量的缓存数据包括:从排序最靠后的分链表开始,按照升序的方式循环移除每个分链表包括的至少一个未被访问的缓存数据,直至移除预定数量的缓存数据。
根据本发明的可选实施方式,其中循环移除每个分链表包括的至少一个未被访问的缓存数据包括:按照循环的方式每次移除每个分链表中排序最靠后的至少一个未被访问的缓存数据。
根据本发明的可选实施方式,其中在多个分链表包括的未被访问的缓存数据的数量之和小于预定数量时,进一步包括:
确定每个分链表的最近整体访问时间戳,最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;根据确定的最近整体访问时间戳,对多个分链表进行排序;以及从排序最靠后的分链表开始移除剩余移除数量的缓存数据。
根据本发明的可选实施方式,其中从排序最靠后的分链表开始移除剩余移除数量的缓存数据包括:从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第二可移除数量,其中第二可移除数量与分链表的数量、每个分链表所处的排序位置、剩余移除数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除确定的第二可移除数量的缓存数据,直至移除剩余移除数量的缓存数据。
根据本发明的另一方面,提供了一种用于移除缓存数据的设备。所述设备包括:确定装置,用于确定多个分链表的活跃度;排序装置,用于根据确定的多个分链表的活跃度,对多个分链表进行排序。所述设备还包括:移除装置,用于当缓存区中已使用的容量达到预定阈值时,根据排序结果,从多个分链表中移除预定数量的缓存数据。
根据本发明的可选实施方式,其中确定装置还用于确定每个分链表的最近整体访问时间戳,最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;其中排序装置还用于根据确定的最近整体访问时间戳,对多个分链表进行排序。
根据本发明的可选实施方式,其中最近整体访问时间戳的初始值为初始化每个分链表的时间。
根据本发明的可选实施方式,其中移除装置还用于从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第一可移除数量,其中第一可移除数量与分链表的数量、每个分链表所处的排序位置、预定数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除确定的第一可移除数量的缓存数据,直至移除预定数量的缓存数据。
根据本发明的可选实施方式,其中确定装置还用于在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量;其中排序装置还用于根据确定的未被访问的缓存数据的数量,对多个分链表进行排序。
根据本发明的可选实施方式,其中每个分链表对应一个定位指针,在预定时间间隔的初始时刻定位指针指向每个分链表中排序最靠前的缓存数据,其中确定装置还用于针对预定时间间隔,确定定位指针所指向的缓存数据在每个分链表中所处的排序位置;以及将每个分链表中从位于确定的排序位置的缓存数据到位于排序最靠后的位置的缓存数据之间的缓存数据的数量确定为未被访问的缓存数据的数量。
根据本发明的可选实施方式,其中移除装置还用于从排序最靠后的分链表开始,按照升序的方式循环移除每个分链表包括的至少一个未被访问的缓存数据,直至移除预定数量的缓存数据。
根据本发明的可选实施方式,其中移除装置还用于按照循环的方式每次移除每个分链表中排序最靠后的至少一个未被访问的缓存数据。
根据本发明的可选实施方式,其中在多个分链表包括的未被访问的缓存数据的数量之和小于预定数量时,移除装置进一步包括:时间戳确定装置,用于确定每个分链表的最近整体访问时间戳,其中最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;时间戳排序装置,用于根据确定的最近整体访问时间戳,对多个分链表进行排序;以及剩余移除装置,用于从排序最靠后的分链表开始移除剩余移除数量的缓存数据。
根据本发明的可选实施方式,其中剩余移除装置还用于从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第二可移除数量,其中第二可移除数量与分链表的数量、每个分链表所处的排序位置、剩余移除数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除确定的第二可移除数量的缓存数据,直至移除剩余移除数量的缓存数据。
根据本发明的另一方面,提供了一种设备,包括至少一个处理器以及包含计算机程序代码的至少一个存储器;处理器以及存储器配置用于利用处理器,使得所述设备至少执行:确定多个分链表的活跃度;根据确定的活跃度对多个分链表进行排序;以及当缓存区中已使用的容量达到预定阈值时,根据排序后的分链表移除预定数量的缓存数据;其中每个分链表包括每个分链表对应的磁盘分区的缓存数据,并且每个分链表包括的缓存数据按照缓存数据的访问热度排序放置。
利用根据本发明多个方面和实施方式的方法和设备,可以采用每个分链表的活跃度来整体衡量每个分链表所包括的缓存数据的访问热度,在移除时能够移除整个系统中访问热度较低的缓存数据并且保留整个系统中访问热度较高的缓存数据,从而提高了系统的读写速率。
附图说明
图1示出了根据本发明的实施方式的用于移除缓存数据的方法100的流程图;
图2A和2B示出了根据本发明的实施方式的一种用于实施图1的方法100的步骤S101和S102的实现方式的示意图;
图3A和3B示出了根据本发明的实施方式的另一种用于实施图1的方法100的步骤S101和S102的实现方式的示意图;
图3C示出了根据本发明的实施方式的一种用于实施图1的方法100的步骤S103的实现方式的示意图;
图4示出了根据本发明的实施方式的用于移除缓存数据的设备400的框图;以及
图5示出了适于用来实践本发明实施方式的计算机系统的示意性框图。
应当注意,附图中的流程图和框图,图示了按照本发明各种实施方式的方法、设备和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个装置、程序段、或代码的一部分,所述装置、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
具体实施方式
下面将参考附图中示出的若干示例性实施方式来描述本发明的原理和精神。应当理解,描述这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
可以理解的是,虽然本公开的内容示例性地给出可以有效地移除闪存盘或者闪存盘阵列的缓存数据,但对于其他存储装置的缓存数据也可以同样有效地移除,其他存储装置例如硬盘等。
图1示出了根据本发明的实施方式的用于移除缓存数据的方法100的流程图。应理解的是,方法100中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。方法100还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
方法100开始之后,在步骤S101处,确定多个分链表的活跃度。多个分链表的活跃度可以从整体上反应出每个分链表包括的所有缓存数据的访问热度。
接下来,方法100行进到步骤S102,根据确定的多个分链表的活跃度,对多个分链表进行排序。
接下来,方法100行进到步骤S103,当缓存区中已使用的容量达到预定阈值时,根据排序的结果,从多个分链表中移除预定数量的缓存数据。其中,预定阈值可以是缓存区的容量上限,也可以是根据实际情况定义的容量值。预定数量与系统当前操作情况有关联,当缓存区中已使用的容量达到预定阈值时,如果需要向缓存区存入较多的缓存数据,则预定数量较大,如果需要存入的缓存数据较小,则预定数量较小,本发明的实施方式不对预定数量的大小进行限制。
根据本发明的一个实施方式,步骤S101还可以包括确定每个分链表的最近整体访问时间戳,其中最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间。每个缓存数据被访问,可以是每个缓存数据被读取、写入、移除、被其他缓存数据替换等等。
参照图2A,其中示出了确定多个分链表中的一个分链表的最近整体访问时间戳的一种实现方式。
在图2A中,具体步骤包括:(1)首先为该分链表设置一个时间戳指针。在初始时刻,例如系统启动并且从闪存盘中重新载入缓存数据时,时间戳指针指向分链表中当前排序最靠前的缓存数据,此时,最近整体访问时间戳Timestamp=NULL。(2)在系统的操作过程中,不断有缓存数据被访问,最新被访问的缓存数据移动到分链表中排序最靠前的位置,时间戳指针所指向的缓存数据不断向下移动。(3)当时间戳指针所指向的缓存数据移动到分链表中排序最靠后的位置时,说明此时分链表包括的所有缓存数据均被访问,将当前时间确定为该分链表的最近整体访问时间戳,即Timestamp=time1(当前时间)。(4)之后,时间戳指针改变为指向该分链表中当前排序最靠前的缓存数据,并且返回步骤(2),继续记录该分链表的下一个最近整体访问时间戳。
对于每个分链表,均可以采用图2A中所示的实现方式确定其最近整体访问时间戳。应该知道,除了图2A中所示的实现方式之外,还可以有其他实现方式来确定每个分链表的最近整体访问时间戳,本发明的实施方式对此不进行具体限定。
为了防止在后续对多个分链表进行排序时,某个分链表包括的所有缓存数据没有均被访问,根据本发明的一个实施方式,最近整体访问时间戳的初始值为初始化每个分链表的时间。根据本发明的备选实施方式,最近整体访问时间戳的初始值还可以是多个分链表中每个分链表包括的所有缓存数据没有均被访问之前的任意时间。
在确定了每个分链表的最近整体访问时间戳之后,根据本发明的一个实施方式,方法100的步骤S102还可以包括根据确定的最近整体访问时间戳,对多个分链表进行排序。其中,如果一个分链表的最近整体访问时间戳较大,也即较为接近进行排序时的当前时间,则说明该分链表的活跃度较高,排序的位置也较为靠前;反之,如果一个分链表的最近整体访问时间戳较小,则说明该分链表的活跃度较低。
进一步地,还可以将排序后的多个分链表以双向链表的形式链接,以便于后续访问多个分链表所包括的缓存数据。
例如,参照图2B,其中给出了4个分链表,分别为List_1、List_2、List_3和List_4,它们的最近整体访问时间戳分别为time_1、time_2、time_3和time_4,其中,time_4>time_1>time_2>time_3。因此,在根据确定的最近整体访问时间戳对这4个分链表进行排序,并且将排序后的分链表以双向链表的形式链接之后,得到如图2B所示的排序结果。
根据本发明的一个实施方式,方法100的步骤S103还可以包括从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第一可移除数量,其中第一可移除数量与分链表的数量、每个分链表所处的排序位置、预定数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除确定的第一可移除数量的缓存数据,直至移除预定数量的缓存数据。
其中,每个分链表的第一可移除数量与分链表的数量和每个分链表所处的排序位置有关联。对于活跃度较高的分链表所包括的缓存数据,它们相比较于活跃度较低的分链表所包括的缓存数据,在后续系统操作过程中被访问的概率更高。因此,在移除缓存数据时,可以在活跃度较高的分链表中移除较少数量的缓存数据,而在活跃度较低的分链表中移除较多数量的缓存数据,从而使得缓存区中依然存储被访问概率较高的缓存数据,提高了闪存盘的读写速率。
此外,每个分链表的第一可移除数量还与预定数量以及在排序后的分链表中当前已移除数量相关联。在移除缓存数据时,通常从排序后的分链表中排序最靠后的分链表开始移除,之后按照升序的方式循环确定每个分链表的第一可移除数量,并且从该分链表中移除第一可移除数量的缓存数据。在按照升序的方式循环时,对于当前循环到的分链表,当前已移除数量为之前循环到的分链表的第一可移除数量之和。
应当指出的是,在第一次循环完毕多个分链表之后,可能还未移除出预定数量的缓存数据,此时可以从排序最靠后的分链表开始继续循环地移除,直至移除预定数量的缓存数据为止。此外,在移除每个分链表的第一可移除数量的缓存数据时,可以从每个分链表中排序最靠后的缓存数据开始移除确定的第一可移除数量的缓存数据。因为每个分链表中排序较为靠后的缓存数据相较于排序较为靠前的缓存数据来说,是访问热度较低的数据,将其移除后对闪存盘的读写速率造成影响的概率较小。
需要注意的是,本发明的实施方式不限定于具体如何根据分链表的数量、每个分链表所处的排序位置、预定数量以及在排序后的分链表中当前已移除数量来确定每个分链表的第一可移除数量,并且第一可移除数量可能仅与上述四个参数中的一个或多个相关联,只需要保证计算得到的每个分链表的第一可移除数量与每个分链表的排序位置的大小成正比例的关系,即分链表的排序位置越靠后,其对应的第一可移除数量越大。
上述介绍了一种根据每个分链表的最近整体访问时间戳对多个分链表进行排序并且移除预定数量的缓存数据的实现方式。根据本发明的另一实施方式,方法100的步骤S101还可以包括在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量。其中,预定时间间隔可以根据实际情况进行设置,例如,可以设置为1小时、2个小时、24小时等等,本发明的实施方式对此不进行具体限定。在预定时间间隔内未被访问的缓存数据是指在预定时间间隔内未被读取、写入、移除、被其他缓存数据替换等等的缓存数据。
根据本发明的一个实施方式,其中每个分链表对应一个定位指针,在预定时间间隔的初始时刻定位指针指向每个分链表中排序最靠前的缓存数据。其中在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量包括:针对预定时间间隔,确定定位指针所指向的缓存数据在每个分链表中所处的排序位置;以及将每个分链表中从位于确定的排序位置的缓存数据到位于排序最靠后的位置的缓存数据之间的缓存数据的数量确定为未被访问的缓存数据的数量。
参照图3A,其中示出了在多个分链表中的一个分链表中确定在预定时间间隔内未被访问的缓存数据的数量的一种实现方式。
在图3A中,实线指针为定位指针,虚线指针为移动指针,用于辅助定位指针的定位。具体步骤包括:(1)在初始时刻,例如系统启动并且从闪存盘中重新载入缓存数据时,移动指针指向分链表中当前排序最靠前的缓存数据,此时,该分链表未被访问的缓存数据的数量为初始值零。(2)在系统的操作过程中,不断有缓存数据被访问,最新被访问的缓存数据移动到分链表中排序最靠前的位置,移动指针所指向的缓存数据不断向下移动。(3)当经过预定时间间隔后,定位指针指向移动指针所指向的缓存数据,确定定位指针所指向的缓存数据在分链表中的排序位置,并且将分链表中从位于确定的排序位置的缓存数据到位于排序最靠后的位置的缓存数据之间的缓存数据的数量确定为未被访问的缓存数据的数量。例如,如图3A所示,确定的未被访问的缓存数据的数量为4。(4)之后,定位指针所指向的位置不变,移动指针改变为指向该分链表中当前排序最靠前的缓存数据,并且返回步骤(2),继续确定针对下一个预定时间间隔确定该分链表的未被访问的缓存数据的数量。
对于每个分链表,均可以采用图3A中所示的实现方式来确定在预定时间间隔内未被访问的缓存数据的数量。
除了图3A所示的实现方式之外,根据本发明备选的实施方式,在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量时,还可以仅采用定位指针。具体是,用定位指针取代上述移动指针进行移动,并且在上述步骤(3)时,将从定位指针所指向的排序位置的缓存数据到位于排序最靠后的位置的缓存数据之间的缓存数据的数量确定为未被访问的缓存数据的数量,并记录确定的未被访问的缓存数据的数量。之后,在步骤(4),定位指针继续变化为指向分链表中当前排序最靠前的缓存数据。
应该知道,本发明的实施方式不限于所示例的用于在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量的实现方式。
在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量之后,方法100的步骤S102还可以包括根据确定的未被访问的缓存数据的数量,对多个分链表进行排序。其中,如果在预定时间间隔内未被访问的缓存数据的数量较大,则说明该分链表的活跃度较低,排序的位置也较为靠后;反之,如果在预定时间间隔内未被访问的缓存数据的数量较小,则说明该分链表的活跃度较高,排序的位置也较为靠前。
进一步地,还可以将排序后的多个分链表以双向链表的形式链接,以便于后续访问多个分链表所包括的缓存数据。
例如,参照图3B,其中给出了4个分链表,分别为List_1、List_2、List_3和List_4,它们在预定时间间隔内未被访问的缓存数据的数量分别为1、4、2和0,在图中用黑色方块代表未被访问的缓存数据。因此,在根据确定的未被访问的缓存数据的数量对多个分链表进行排序,并且将排序后的分链表以双向链表的形式链接之后,得到如图3B所示的排序结果。
在根据确定的未被访问的缓存数据的数量,对多个分链表进行排序之后根据本发明的一个实施方式,方法100的步骤S103还可以包括从排序最靠后的分链表开始,按照升序的方式循环移除每个分链表包括的至少一个未被访问的缓存数据,直至移除预定数量的缓存数据。
由于每个分链表中在预定时间间隔内未被访问的缓存数据是该分链表中访问热度较低的缓存数据,在后续系统操作过程中再次被访问的概率较低,因此可以在将这些缓存数据移除掉时,对闪存盘的读写速率造成影响的概率较小。
根据本发明的又一实施方式,其中循环移除每个分链表包括的至少一个未被访问的缓存数据包括:按照循环的方式每次移除每个分链表中排序最靠后的至少一个未被访问的缓存数据。根据本发明的备选实施方式,还可以按照循环的方式任意移除每个分链表包括的至少一个未被访问的缓存数据。根据本发明的备选实施方式,还可以从排序最靠后的分链表开始,按照升序的方式移除每个分链表包括的所有未被访问的缓存数据,直至移除预定数量的缓存数据。
如果多个分链表包括的未被访问的缓存数据之和小于等于预定数量,在按照升序的方式循环移除每个分链表包括的未被访问的缓存数据后,可以移除预定数量的缓存数据。如果多个分链表包括的未被访问的缓存数据的数量之和小于预定数量,在移除完毕多个分链表包括的所有未被访问的缓存数据之后,还剩余一些数量的缓存数据未被移除,剩余移除数量的大小为预定数量与多个分链表包括的未被访问的缓存数据的数量之和之间的差值。
根据本发明的一种实施方式,在多个分链表包括的未被访问的缓存数据的数量之和小于预定数量时,步骤S103进一步包括确定每个分链表的最近整体访问时间戳,其中最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;根据确定的最近整体访问时间戳,对多个分链表进行排序;以及从排序最靠后的分链表开始移除剩余移除数量的缓存数据。
根据本发明的又一实施方式,其中从排序最靠后的分链表开始移除剩余移除数量的缓存数据包括:从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第二可移除数量,其中第二可移除数量与分链表的数量、每个分链表所处的排序位置、剩余移除数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除确定的第二可移除数量的缓存数据,直至移除剩余移除数量的缓存数据。
可以知道,上述从多个分链表中移除剩余移除数量的缓存数据的方式与前述根据最近整体访问时间戳来实现方法100的步骤101至103的实现方式相同,在此不进行赘述。应该注意的是,在排序后的分链表中当前已移除数量是指在移除剩余移除数量的缓存数据的过程中的当前已移除数量。
例如,参照图3C,其中4个分链表中在预定时间间隔内未被访问的缓存数据的数量之和为7,预定数量为8。首先根据图3B中所示的排序结果,按照升序的方式循环移除每个分链表包括的未被访问的缓存数据。其中,序号1、2......、7所标示的缓存数据为在循环的过程中先后被移除的缓存数据。在移除掉7个缓存数据后,为了进一步移除剩余的1个缓存数据,可以根据这4个分链表的最近整体访问时间戳对它们进行排序,排序结果可以仍如图2B所示。因此,根据前述公开的实施方式,可以从排序最靠后的分链表List3中移除1个排序最靠后的缓存数据。
根据本发明的实施方式,首先根据每个分链表中在预定时间间隔内未被访问的缓存数据的数量来移除缓存数据;当未被访问的缓存数据小于预定数量时,再根据每个分链表的最近整体访问时间戳来移除缓存数据,从而保证了移除的缓存数据是整体来说访问热度较低的,并且在将这些缓存数据移除之后对闪存盘的读写速率造成影响的概率较低。其中,根据本发明的一个实施方式,根据每个分链表中在预定时间间隔内未被访问的缓存数据的数量对多个分链表进行排序以及根据每个分链表的最近整体访问时间戳来对多个分链表进行排序可以并行执行。
根据本发明的备选实施方式,在多个分链表包括的未被访问的缓存数据的数量之和小于预定数量时,还可以从按照在预定时间间隔内未被访问的缓存数据的数量排序后的分链表中排序最靠后的分链表开始,按照升序的方式循环移除每个分链表包括的至少一个缓存数据,直至移除剩余移除数量的缓存数据。其中,每次从每个分链表中排序最靠后的缓存数据开始移除至少一个缓存数据。
根据本发明的又一实施方式,还可以直接从按照在预定时间间隔内未被访问的缓存数据的数量排序后的分链表中排序最靠后的分链表里移除剩余移除数量的缓存数据。其中,可以从该分链表中排序最靠后的缓存数据开始移除剩余移除数量的缓存数据。或者,从任意一个或多个分链表中移除至少一个缓存数据,直至移除剩余移除数量的缓存数据。其中,每次从分链表中排序最靠后的缓存数据开始移除至少一个缓存数据。
需要注意的是,因为系统操作过程中需要缓存的数据是不断变化的,缓存区的容量有限,本发明的实施方式所提供的方法可以重复地使用,不断移除访问热度较低的缓存数据,以便于将新的缓存数据存储在缓存区中。
在实现本发明的实施方式的过程中,上述提供的按照最近整体访问时间戳排序分链表并移除缓存数据的第一种方式和按照预定时间间隔内未被访问的缓存数据的数量排序分链表并移除缓存数据的第二种方式可以交叉使用。
根据本发明的实施方式,可以在按照第一种方式移除一定数量的缓存数据之后,再按照第二种方式移除剩余数量的缓存数据,直至移除预定数量的缓存数据。根据本发明的另一实施方式,还可以在按照第二种方式移除一定数量的缓存数据之后,再按照第一种方式移除剩余数量的缓存数据,直至移除预定数量的缓存数据。根据本发明的实施方式,还可以按照第二种方式所提供的排序方法对多个分链表进行排序,并按照第一种方式所提供的移除方法确定每个分链表中可移除的缓存数据的数量,从而达到从多个分链表中移除预定数量的缓存数据。
上文已经结合若干具体实施方式阐释了本发明的精神和原理。通过上述本发明的多种实施方式,可以采用每个分链表的活跃度来整体衡量每个分链表所包括的缓存数据的访问热度,在移除时能够移除整个系统中访问热度较低的缓存数据并且保留整个系统中访问热度较高的缓存数据,从而提高了系统的读写速率。并且,根据每个分链表的活跃度可以保证在活跃度较高的分链表中移除的缓存数据的数量较小而在活跃度较低的分链表中移除的缓存数据的数量较多,兼顾了每个分链表的公平性以及活跃度。
图4示出了根据本发明的实施方式的用于移除缓存数据的设备400的框图。如图4中所示,设备400包括确定装置401,用于确定多个分链表的活跃度;排序装置402,用于根据确定的多个分链表的活跃度,对多个分链表进行排序。设备400还包括移除装置403,用于当缓存区中已使用的容量达到预定阈值时,根据排序结果,从多个分链表中移除预定数量的缓存数据。
可以看出,图4的设备400可以实现如图1中所示的方法,并且尽管未进一步示出,设备400可以包括更多的功能单元以实现结合图1的方法100所描述的多个实施方式。进一步,设备400可以实现用每个分链表的活跃度来整体衡量每个分链表所包括的缓存数据的访问热度,在移除时能够移除整个系统中访问热度较低的缓存数据并且保留整个系统中访问热度较高的缓存数据,从而提高了系统的读写速率。
图5示出了适于用来实践本发明实施方式的计算机系统500的示意性框图。如图5所示,计算机系统可以包括:CPU(中央处理单元)501、RAM(随机存取存储器)502、ROM(只读存储器)503、系统总线504、闪存盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、闪存盘510、键盘511、串行外部设备512、并行外部设备515和显示器514。在这些设备中,与系统总线504耦合的有CPU501、RAM502、ROM503、闪存盘控制器505、键盘控制器506、串行控制器507、并行控制器508和显示控制器509。闪存盘510与闪存盘控制器505耦合,键盘511与键盘控制器506耦合,串行外部设备512与串行接口控制器507耦合,并行外部设备515与并行接口控制器508耦合,以及显示器514与显示控制器509耦合。
图5所示的存储器中的至少一个存储器包含计算机程序代码,处理器CPU501以及存储器被配置用于利用处理器CPU501,使得计算机系统500至少执行:确定多个分链表的活跃度;根据确定的活跃度对多个分链表进行排序;以及当缓存区中已使用的容量达到预定阈值时,根据排序后的分链表移除预定数量的缓存数据;其中每个分链表包括每个分链表对应的磁盘分区的缓存数据,并且每个分链表包括的缓存数据按照缓存数据的访问热度排序放置。
应当理解,图5所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
特别地,除硬件实施方式之外,本发明的实施方式可以通过计算机程序产品的形式实现。例如,参考图1描述的方法100可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图5所示的RAM502、ROM503、闪存盘510和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统500上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图5中示出的CPU501)执行的程序指令。所述程序指令至少可以包括:确定多个分链表的活跃度;根据确定的所述多个分链表的活跃度,对所述多个分链表进行排序;以及当缓存区中已使用的容量达到预定阈值时,根据所述排序的结果,从所述多个分链表中移除预定数量的缓存数据。
应当注意的是,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其装置可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意的是,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤规约为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (18)

1.一种用于移除缓存数据的方法,包括:
确定多个分链表的活跃度;
根据确定的所述多个分链表的活跃度,对所述多个分链表进行排序;以及
当缓存区中已使用的容量达到预定阈值时,根据所述排序的结果,从所述多个分链表中移除预定数量的缓存数据;
其中根据所述排序的结果,从所述多个分链表中移除预定数量的缓存数据包括:
从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第一可移除数量,其中所述第一可移除数量与分链表的数量、每个分链表所处的排序位置、预定数量以及在排序后的分链表中当前已移除数量相关联;以及
从每个分链表中排序最靠后的缓存数据开始移除所述确定的第一可移除数量的缓存数据,直至移除所述预定数量的缓存数据。
2.根据权利要求1所述的方法,其中确定多个分链表的活跃度包括:
确定每个分链表的最近整体访问时间戳,所述最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;
其中根据确定的所述多个分链表的活跃度,对所述多个分链表进行排序包括:
根据所述确定的最近整体访问时间戳,对所述多个分链表进行排序。
3.根据权利要求2所述的方法,其中所述最近整体访问时间戳的初始值为初始化每个分链表的时间。
4.根据权利要求1所述的方法,其中确定多个分链表的活跃度包括:
在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量;
其中根据确定的所述多个分链表的活跃度,对所述多个分链表进行排序包括:
根据所述确定的未被访问的缓存数据的数量,对所述多个分链表进行排序。
5.根据权利要求4所述的方法,其中每个分链表对应一个定位指针,在所述预定时间间隔的初始时刻所述定位指针指向每个分链表中排序最靠前的缓存数据,
其中在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量包括:
针对所述预定时间间隔,确定所述定位指针所指向的缓存数据在每个分链表中所处的排序位置;以及
将每个分链表中从位于所述确定的排序位置的缓存数据到位于排序最靠后的位置的缓存数据之间的缓存数据的数量确定为未被访问的缓存数据的数量。
6.根据权利要求4或5所述的方法,其中根据所述排序的结果,从所述多个分链表中移除预定数量的缓存数据包括:
从排序最靠后的分链表开始,按照升序的方式循环移除每个分链表包括的至少一个未被访问的缓存数据,直至移除预定数量的缓存数据。
7.根据权利要求6所述的方法,其中循环移除每个分链表包括的至少一个未被访问的缓存数据包括:
按照循环的方式每次移除每个分链表中排序最靠后的至少一个未被访问的缓存数据。
8.根据权利要求6所述的方法,其中在所述多个分链表包括的未被访问的缓存数据的数量之和小于所述预定数量时,进一步包括:
确定每个分链表的最近整体访问时间戳,所述最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;
根据所述确定的最近整体访问时间戳,对所述多个分链表进行排序;以及
从排序最靠后的分链表开始移除剩余移除数量的缓存数据。
9.根据权利要求8所述的方法,其中从排序最靠后的分链表开始移除剩余移除数量的缓存数据包括:
从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第二可移除数量,其中所述第二可移除数量与分链表的数量、每个分链表所处的排序位置、剩余移除数量以及在排序后的分链表中当前已移除数量相关联;以及
从每个分链表中排序最靠后的缓存数据开始移除所述确定的第二可移除数量的缓存数据,直至移除所述剩余移除数量的缓存数据。
10.一种用于移除缓存数据的设备,包括:
确定装置,用于确定多个分链表的活跃度;
排序装置,用于根据确定的所述多个分链表的活跃度,对所述多个分链表进行排序;以及
移除装置,用于当缓存区中已使用的容量达到预定阈值时,根据所述排序结果,从所述多个分链表中移除预定数量的缓存数据;
其中所述移除装置还用于从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第一可移除数量,其中所述第一可移除数量与分链表的数量、每个分链表所处的排序位置、预定数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除所述确定的第一可移除数量的缓存数据,直至移除所述预定数量的缓存数据。
11.根据权利要求10所述的设备,其中所述确定装置还用于确定每个分链表的最近整体访问时间戳,所述最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;
其中所述排序装置还用于根据所述确定的最近整体访问时间戳,对所述多个分链表进行排序。
12.根据权利要求11所述的设备,其中所述最近整体访问时间戳的初始值为初始化每个分链表的时间。
13.根据权利要求10所述的设备,其中所述确定装置还用于在每个分链表中确定在预定时间间隔内未被访问的缓存数据的数量;
其中所述排序装置还用于根据所述确定的未被访问的缓存数据的数量,对所述多个分链表进行排序。
14.根据权利要求13所述的设备,其中每个分链表对应一个定位指针,在所述预定时间间隔的初始时刻所述定位指针指向每个分链表中排序最靠前的缓存数据,
其中所述确定装置还用于针对所述预定时间间隔,确定所述定位指针所指向的缓存数据在每个分链表中所处的排序位置;以及将每个分链表中从位于所述确定的排序位置的缓存数据到位于排序最靠后的位置的缓存数据之间的缓存数据的数量确定为未被访问的缓存数据的数量。
15.根据权利要求13或14所述的设备,其中所述移除装置还用于从排序最靠后的分链表开始,按照升序的方式循环移除每个分链表包括的至少一个未被访问的缓存数据,直至移除预定数量的缓存数据。
16.根据权利要求15所述的设备,其中所述移除装置还用于按照循环的方式每次移除每个分链表中排序最靠后的至少一个未被访问的缓存数据。
17.根据权利要求15所述的设备,其中在所述多个分链表包括的未被访问的缓存数据的数量之和小于所述预定数量时,所述移除装置进一步包括:
时间戳确定装置,用于确定每个分链表的最近整体访问时间戳,所述最近整体访问时间戳标示每个分链表包括的所有缓存数据最近一次均被访问的时间;
时间戳排序装置,用于根据所述确定的最近整体访问时间戳,对所述多个分链表进行排序;以及
剩余移除装置,用于从排序最靠后的分链表开始移除剩余移除数量的缓存数据。
18.根据权利要求17所述的设备,其中所述剩余移除装置还用于从排序最靠后的分链表开始,按照升序的方式循环确定每个分链表的第二可移除数量,其中所述第二可移除数量与分链表的数量、每个分链表所处的排序位置、剩余移除数量以及在排序后的分链表中当前已移除数量相关联;以及从每个分链表中排序最靠后的缓存数据开始移除所述确定的第二可移除数量的缓存数据,直至移除所述剩余移除数量的缓存数据。
CN201310466038.3A 2013-09-27 2013-09-27 用于移除缓存数据的方法和设备 Active CN104516828B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310466038.3A CN104516828B (zh) 2013-09-27 2013-09-27 用于移除缓存数据的方法和设备
US14/495,379 US9588906B2 (en) 2013-09-27 2014-09-24 Removing cached data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310466038.3A CN104516828B (zh) 2013-09-27 2013-09-27 用于移除缓存数据的方法和设备

Publications (2)

Publication Number Publication Date
CN104516828A CN104516828A (zh) 2015-04-15
CN104516828B true CN104516828B (zh) 2018-01-09

Family

ID=52741318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310466038.3A Active CN104516828B (zh) 2013-09-27 2013-09-27 用于移除缓存数据的方法和设备

Country Status (2)

Country Link
US (1) US9588906B2 (zh)
CN (1) CN104516828B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569733A (zh) * 2015-10-12 2017-04-19 北京国双科技有限公司 缓存数据的处理方法和装置
CN106201602B (zh) * 2016-06-30 2020-02-14 北京奇虎科技有限公司 一种标签提供方法、获取方法、服务器及电子设备
CN106294773A (zh) 2016-08-11 2017-01-04 北京小米移动软件有限公司 数据清理方法及装置
CN110011924B (zh) * 2018-01-04 2023-03-10 深圳市中兴微电子技术有限公司 一种清除缓存拥塞的方法与装置
US10684950B2 (en) * 2018-03-15 2020-06-16 Bank Of America Corporation System for triggering cross channel data caching
CN110287160B (zh) * 2019-05-31 2023-09-12 广东睿江云计算股份有限公司 一种缓存空间清理方法及装置
US11316885B1 (en) * 2019-10-30 2022-04-26 Rapid7, Inc. Self-learning data collection of machine characteristics
US11138118B2 (en) * 2020-01-13 2021-10-05 EMC IP Holding Company LLC Method and apparatus for dynamically adapting sizes of cache partitions in a partitioned cache
US11265396B1 (en) 2020-10-01 2022-03-01 Bank Of America Corporation System for cross channel data caching for performing electronic activities
US11778067B2 (en) 2021-06-16 2023-10-03 Bank Of America Corporation System for triggering cross channel data caching on network nodes
US11880307B2 (en) 2022-06-25 2024-01-23 Bank Of America Corporation Systems and methods for dynamic management of stored cache data based on predictive usage information

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567840A (zh) * 2008-04-22 2009-10-28 深圳市同洲电子股份有限公司 一种流媒体数据缓存控制方法和装置
CN101609432A (zh) * 2009-07-13 2009-12-23 中国科学院计算技术研究所 共享缓存管理系统及方法
CN101770412A (zh) * 2010-01-22 2010-07-07 华中科技大学 一种连续数据缓存系统及其数据缓存方法
CN101968795A (zh) * 2010-09-03 2011-02-09 清华大学 一种数据块长度可变的文件系统缓存方法
CN103150259A (zh) * 2013-03-22 2013-06-12 华为技术有限公司 一种内存回收方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6848025B2 (en) * 2001-10-26 2005-01-25 Elan Research, Inc. Method and system for programmable replacement mechanism for caching devices
US6615318B2 (en) * 2002-01-22 2003-09-02 International Business Machines Corporation Cache management system with multiple cache lists employing roving removal and priority-based addition of cache entries
US7155571B2 (en) * 2002-09-30 2006-12-26 International Business Machines Corporation N-source in-kernel cache for high performance in computer operating systems
US7085895B2 (en) * 2003-09-05 2006-08-01 International Business Machines Corporation Apparatus, system, and method flushing data from a cache to secondary storage
US8095738B2 (en) * 2009-06-15 2012-01-10 International Business Machines Corporation Differential caching mechanism based on media I/O speed
US20120290786A1 (en) * 2011-05-11 2012-11-15 Mesnier Michael P Selective caching in a storage system
US20130205089A1 (en) * 2012-02-08 2013-08-08 Mediatek Singapore Pte. Ltd. Cache Device and Methods Thereof
US9772948B2 (en) * 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9355036B2 (en) * 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
US9779027B2 (en) * 2012-10-18 2017-10-03 Oracle International Corporation Apparatus, system and method for managing a level-two cache of a storage appliance
US20140223072A1 (en) * 2013-02-07 2014-08-07 Lsi Corporation Tiered Caching Using Single Level Cell and Multi-Level Cell Flash Technology

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567840A (zh) * 2008-04-22 2009-10-28 深圳市同洲电子股份有限公司 一种流媒体数据缓存控制方法和装置
CN101609432A (zh) * 2009-07-13 2009-12-23 中国科学院计算技术研究所 共享缓存管理系统及方法
CN101770412A (zh) * 2010-01-22 2010-07-07 华中科技大学 一种连续数据缓存系统及其数据缓存方法
CN101968795A (zh) * 2010-09-03 2011-02-09 清华大学 一种数据块长度可变的文件系统缓存方法
CN103150259A (zh) * 2013-03-22 2013-06-12 华为技术有限公司 一种内存回收方法和装置

Also Published As

Publication number Publication date
CN104516828A (zh) 2015-04-15
US20150095587A1 (en) 2015-04-02
US9588906B2 (en) 2017-03-07

Similar Documents

Publication Publication Date Title
CN104516828B (zh) 用于移除缓存数据的方法和设备
US7366855B2 (en) Page replacement method using page information
US9639280B2 (en) Ordering memory commands in a computer system
US7660952B2 (en) Data bus bandwidth scheduling in an FBDIMM memory system operating in variable latency mode
Dong et al. Wear rate leveling: Lifetime enhancement of PRAM with endurance variation
US20150206574A1 (en) Relocating infrequently-accessed dynamic random access memory (dram) data to non-volatile storage
US7849113B2 (en) Query statistics
CN111052067A (zh) 具有电源管理的存储器装置
CN109815267A (zh) 数据建模中特征的分箱优化方法及系统、存储介质及终端
CN105511806B (zh) 处理写请求的方法和移动终端
US9256544B2 (en) Way preparation for accessing a cache
US20150363116A1 (en) Memory controller power management based on latency
US9727681B2 (en) Generating specific memory models using generic memory models for designing memories in VLSI design
TW201314453A (zh) 用於藉由一可再程式化電路模組之資料存取之方法及裝置
CN107704200A (zh) 一种数据存放方法
JP5321691B2 (ja) 並列計算装置、並列計算方法、および並列計算プログラム
CN104144194A (zh) 云存储系统的数据处理方法及装置
CN107544912A (zh) 一种日志记录方法、加载方法及其装置
US20230394307A1 (en) Data caching method and apparatus for multiple concurrent deep learning training tasks
CN106202374A (zh) 一种数据处理方法及装置
CN114385092B (zh) 固态硬盘闪存阵列的擦除方法、固态硬盘主控芯片
CN104657108B (zh) 一种微处理器的软件模拟器的事件队列的管理方法及系统
CN105760317B (zh) 数据写系统和用于核心处理器的数据写方法
US20160140034A1 (en) Devices and methods for linked list array hardware implementation
US20140164708A1 (en) Spill data management

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200408

Address after: Massachusetts, USA

Patentee after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Patentee before: EMC Corp.

TR01 Transfer of patent right