CN105677575A - 存储器资源管理方法和装置 - Google Patents
存储器资源管理方法和装置 Download PDFInfo
- Publication number
- CN105677575A CN105677575A CN201511005125.4A CN201511005125A CN105677575A CN 105677575 A CN105677575 A CN 105677575A CN 201511005125 A CN201511005125 A CN 201511005125A CN 105677575 A CN105677575 A CN 105677575A
- Authority
- CN
- China
- Prior art keywords
- buffer unit
- instruction information
- occupied
- return period
- callable
- 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
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/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/0893—Caches characterised by their organisation or structure
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
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
技术领域
本发明涉及计算机技术,尤其涉及一种存储器资源管理方法和装置。
背景技术
随着数据处理芯片规模越来越大,片上存储器越来越多,为了减小存储器的规模,在一些不需要全线程缓存的地方采用共享缓存来减少存储器资源,因此对共享缓存的资源管理就显得尤为重要。
图1所示为共享缓存的基本实现框图,如图1所示:当来自ATOM(一种可编程的处理器)的命令(比如读,写,加,减,查找,流控等等)进入输入处理模块后,输入处理模块解析该命令以确认该命令是否需要缓存数据,如果需要缓存数据则向缓存管理模块发出缓存申请,缓存管理模块对位图bitmap表进行查找,如果bitmap表中指示有空闲的缓存单元(也即,bitmap表中有标记为1的缓存单元),则分配一个空闲的缓存单元并将该缓存单元的缓存地址反馈给输入处理模块,此步骤中还需将分配的缓存单元对应的bitmap表中的指示标志为已被占用(也即将该缓存单元对应的bitmap表中的指示标志为0),如图2所示;输入处理模块根据返回的缓存地址将命令的线程标识(IDentity,简称为:ID)等不参与数据处理的随路信息存入共享缓存中,并将该缓存地址与命令一起送往命令处理模块进行数据处理,在整个处理过程中,命令的随路信息将始终保存在共享缓存中,命令处理结束后,命令处理模块将处理结果和缓存地址送往输出处理模块;输出处理模块根据缓存地址读出共享缓存中的随路信息并将缓存地址送往缓存管理模块进行缓存回收,进而将该缓存地址对应的bitmap表中的指示标志为未被占用(也即将该缓存单元对应的bitmap表中的指示标志为1),如图1所示,最后输出处理模块将命令处理结果和缓存数据一起送出。
进一步的,数据处理模块中还包括先入先出(FirstInputFirstOutput,简称为:FIFO)队列,交叉开关矩阵(Crossbar),调度程序(Scheduler)等,因此如果数据在数据处理模块的整个路径上发生错误检查和纠正ErrorCorrectingCode,简称为:ECC)错误或是奇偶校验错误,会导致缓存地址以及整个命令的不可信,从而会导致命令丢失,使得无对应的缓存地址送往输出处理模块,进而缓存管理模块无法接收到输出处理模块送来的缓存地址,导致此缓存地址对应的缓存单元将一直被占用,这就造成了缓存单元的泄露。(直到系统复位或是bitmap初始化)。
这样随着系统运行时间变长,可用缓存空间由于缓存单元的泄漏必然会越来越小,进而造成系统带宽降低,性能下降。
发明内容
本发明实施例提供一种存储器资源管理方法和装置,以克服现有技术中由于资源的泄漏导致的资源会越来越小,进而造成系统带宽降低,性能下降的问题。
第一方面,本发明实施例提供一种存储器资源管理方法,包括:根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,第一指示信息和第二指示信息均由至少一个比特组成,第一指示信息表示缓存单元是否被占用,第二指示信息表示缓存单元已被占用的缓存单元回收周期数;回收可回收的缓存单元。
本实施例中,会设置一缓存单元回收周期数,当某个缓存单元被占用的时间达到预设的缓存单元回收周期数时,则将该缓存单元强制收回,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
在前述第一方面的一些实施例中,根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,包括:判断缓存单元对应的第一指示信息是否表示缓存单元被占用,若表示缓存单元被占用;则根据缓存单元对应的第二指示信息确定缓存单元是否已被占用n个缓存单元回收周期,其中,n为大于等于1的正整数,若是,则确定缓存单元为可回收的缓存单元。
本实施例中,不仅判断缓存单元是否被占用,而且判断缓存单元被占中的缓存单元回收周期数,当达到预设的缓存单元回收周期数时,即使该缓存单元被占用,也要强迫收回该缓存单元,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
进一步的,在前述第一方面的一些实施例中,所述方法还包括:若缓存单元被占用m个缓存单元回收周期,其中,m为小于等于n的正整数,则将缓存单元对应的第二指示信息变更为缓存单元已占用m+f个缓存单元回收周期,f为大于等于1的正整数,且m+f为小于等于n的正整数。
本实施例中,可以修改缓存单元被占用的缓存单元回收周期数,以使当该缓存单元被占用的缓存单元回收周期达到预设的缓存单元回收周期数时,会强迫收回该缓存单元,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
可选的,在前述第一方面的一些实施例中,回收可回收的缓存单元之后,还包括:将可回收的缓存单元对应的第一指示信息变更为未被占用,将可回收的缓存单元对应的第二指示信息变更为已被占用0个缓存单元回收周期。
可选的,在前述第一方面的一些实施例中,根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元之前,还包括:接收缓存单元回收指令,缓存单元回收指令中携带待回收的缓存单元对应的地址;
根据地址回收待回收的缓存单元。
本实施例中,还可以灵活运用本发明的方法,也即,在接收到缓存单元回收指令后,即可回收该缓存单元回收指令对应的缓存单元,从而提高缓存单元的利用率。
进一步的,在前述第一方面的一些实施例中,接收缓存单元回收指令之前,还包括:
将各个缓存单元对应的第一指示信息标记为缓存单元未被占用,将各个缓存单元对应的第二指示信息标记为缓存单元已被占用0个缓存单元回收周期。
本发明第二方面提供一种存储器资源管理装置,包括:
处理模块,用于根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,第一指示信息和第二指示信息均由至少一个比特组成,第一指示信息表示缓存单元是否被占用,第二指示信息表示缓存单元已被占用的缓存单元回收周期数;
回收模块,用于回收可回收的缓存单元。
进一步的,处理模块具体用于:
判断缓存单元对应的第一指示信息是否表示缓存单元被占用,
若表示缓存单元被占用;
则根据缓存单元对应的第二指示信息确定缓存单元是否已被占用n个缓存单元回收周期,其中,n为大于等于1的正整数,
若是,则确定缓存单元为可回收的缓存单元。
进一步的,处理模块,还用于判断缓存单元是否被占用m个缓存单元回收周期,其中,m为小于等于n的正整数,
若是,处理模块用于将缓存单元对应的第二指示信息变更为缓存单元已占用m+f个缓存单元回收周期,f为大于等于1的正整数,且m+f为小于等于n的正整数。
进一步的,处理模块,还用于在回收模块回收可回收的缓存单元之后,将可回收的缓存单元对应的第一指示信息变更为未被占用,将可回收的缓存单元对应的第二指示信息变更为已被占用0个缓存单元回收周期。
进一步的,还包括:接收模块,
接收模块用于在处理模块根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元之前,接收缓存单元回收指令,缓存单元回收指令中携带待回收的缓存单元对应的地址;
处理模块还用于:根据地址回收待回收的缓存单元。
进一步的,处理模块还用于在接收模块接收缓存单元回收指令之前,将各个缓存单元对应的第一指示信息标记为缓存单元未被占用,将各个缓存单元对应的第二指示信息标记为缓存单元已被占用0个缓存单元回收周期。
本实施例提供一种存储器资源管理方法和装置,该方法包括:首先根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,所述第一指示信息和所述第二指示信息均由至少一个比特组成,所述第一指示信息表示所述缓存单元是否被占用,所述第二指示信息表示所述缓存单元已被占用的缓存单元回收周期数,进而,回收所述可回收的缓存单元。其中,会设置一缓存单元回收周期数,当某个缓存单元被占用的时间达到预设的缓存单元回收周期数时,则将该缓存单元强制收回,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示为共享缓存的基本实现框图;
图2所示为存储器的资源管理的状态变更图一;
图3所示为存储器的资源管理的状态变更图二;
图4所示为本发明提供的存储器资源管理方法流程图;
图5所示为缓存单元回收周期的示意图;
图6所示为缓存单元回收周期到来时的bitmap表处理的示意图;
图7所示为接收到缓存单元回收指令后的处理示意图;
图8所示为初始化的示意图;
图9所示为分配缓存单元的示意图;
图10所示为本发明实施例提供的存储器资源管理装置的结构示意图一;
图11所示为本发明实施例提供的存储器资源管理装置的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中用于管理共享缓存的装置为bitmap表,结合图1、图2和图3所示,其中,用bitmap表中的1bit指示共享缓存的一个缓存单元是否被占用,该1bit在bitmap表中的位置即是对应的缓存单元在共享缓存中的地址。当有命令需要处理时,输入处理模块向缓存管理模块申请一个缓存单元,缓存管理模块对bitmap表进行查找,如果bitmap表中有缓存单元空闲的指示,则分配一个空闲的缓存单元,例如分配的为缓存地址为2的缓存单元,则将缓存地址为2的缓存单元对应的bitmap表中那1bit标志为已被占用,也即将bitmap表中那1bit从1变更为0。命令相关数据写入分配的缓存单元,该缓存单元地址与命令待处理信息送往下级模块;命令处理完,存储数据被读出缓存单元后,缓存管理模块回收该缓存单元,继续按照上述的例子,存储在缓存地址为2对应的缓存单元中的数据被读出,然后回收缓存地址为2对应的缓存单元,并将对应的bitmap表中那1bit标志未被占用,也即,将bitmap表中那1bit从0变更为1。
当由于某些原因,无法完成命令的处理,从而导致缓存管理模块无法接收到待回收的缓存地址,导致此缓存地址对应的缓存单元将一直被占用(直到系统复位或是bitmap初始化)。
这样随着系统运行时间变长,可用存储空间由于资源的泄漏必然会越来越小,造成系统带宽降低,性能下降。
为了解决上述问题,发明人发现,可以设定一缓存单元回收周期,这样,即使无法完成命令的处理,当某个缓存单元被占用的时间达到预设缓存单元回收周期数时,即可将该缓存单元回收,从而无需等待系统复位,有效提高缓存单元的利用率。
以下通过各实施例具体介绍本发明的技术方案。
图4所示为本发明提供的存储器资源管理方法流程图,如图4所示,本实施例的方法可以包括:
步骤101、根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,第一指示信息和第二指示信息均由至少一个比特组成,第一指示信息表示缓存单元是否被占用,第二指示信息表示缓存单元已被占用的缓存单元回收周期数。
在本发明中,上述第一指示信息和第二指示信息同样可以组成bitmap表,为了描述方便,第一指示信息称为USE(占用)域(表示对应的缓存单元是否被占用),第二指示信息称为AGE(老化)域(表示对应的缓存单元是否需要老化),其中缓存单元回收周期可根据现有的命令发出到响应返回的估计时间来配置,并且可大于最大的估计时间,其他的确定方法也同样适用,本发明不对其加以限制。
在实际的使用中,可以实时的检测是否有可以回收的缓存单元,但这样做会导致整个系统的处理能力下降,为了有效减小在确定可回收的缓存单元的过程中的系统处理资源的消耗,可按照一定的周期去监测是否有可以回收的缓存单元,该周期可以是用户自定义的,也可以是提前预设的,本发明中以上述提到的缓存单元回收周期为例,进行说明。
当缓存单元回收周期到达时,首先根据USE域确定哪些缓存单元已被占用,当确定了已被占用的缓存单元后,再确定该些缓存单元对应的AGE域是否已被占用n个缓存单元回收周期,其中,n为大于等于1的正整数,如果是,则确定该些已被占用且已经占用n个缓存单元回收周期的缓存单元为可回收的缓存单元,其中,n表示预先设置的缓存单元寿命周期数,也即,当某一缓存单元被占用n个缓存单元回收周期后则强制回收该缓存单元。
而值得注意的是,如果根据USE域已经确定了该些缓存单元为已被占用的缓存单元,但该些缓存单元对应的AGE域表示该些缓存单元并没有被占用n个缓存单元回收周期,而是被占用了m个缓存单元回收周期,其中,m为小于等于n的正整数,此时将该些被占用了m个缓存单元回收周期的缓存单元的AGE域值变更为m+f,也即,变更为该些缓存单元被占用了m+f个缓存单元回收周期,其中,f为大于等于1的正整数(f大于1可以和缓存单元回收周期配合更灵活的针对不同命令的处理延时来进行强制缓存单元回收),且m+f为小于等于n的正整数。也即被占用的缓存单元在每一个缓存单元回收周期到达时,其对应的已占用的缓存单元回收周期都会增加一预设值f,以使在后续缓存单元回收周期到达时,此缓存单元对应的已占用的缓存单元回收周期数必然会达到n,从而当达到n时强制回收该缓存单元。
例如:预先设置的缓存单元寿命周期数为3个缓存单元回收周期,也即当某一个缓存单元被占用3个缓存单元回收周期后,则强制收回该缓存单元。此时使用2bit表示AGE域,且此时f设置为1。当AGE域的值为00时,表示已经过0个缓存单元回收周期,当AGE域的值为01时,表示已经过1个缓存单元回收周期,当AGE域的值为10时,表示已经过2个缓存单元回收周期,当AGE域的值为11时,表示已经过3个缓存单元回收周期。
继续按照上述的例子,在使用2bit表示AGE域时,其中的f为1,也即当第二个缓存单元回收周期到达时,若AGE域对应的值为10(十进制的1),则将该AGE域对应的值变更为11(十进制的2+1)。
下面以第一指示信息和第二指示信息均为1bit为例进行说明,也即采用2bit的bitmap来管理缓存单元,并且当缓存单元回收周期到达时,若AGE域中的占用的缓存单元回收周期表示已占用1个缓存单元回收周期时,将该缓存单元回收。
2bit的bitmap中,1bit为USE域,其与现有bitmap方案一致,当USE域的1bit标记为0时,表示该缓存单元已被占用,当USE域的1bit标记为1时,表示该缓存单元未被占用;另1bit为AGE域,用来管理对应的USE域,用户可以根据请求发出到响应返回的估计时间来配置AGE域对应的缓存单元回收周期(其中,缓存单元回收周期的配置值一般比最大估计值大),当AGE域的1bit标记为1时且USE域的1bit标记为1时,表示该缓存单元未被占用且已经过0个缓存单元回收周期,当AGE域的1bit标记为1时且USE域的1bit标记为0,表示该缓存单元已被占用且已经过0个缓存单元回收周期;当AGE域的1bit标记为0时且USE域的1bit标记为0,表示该缓存单元已经过1个缓存单元回收周期;当下个缓存单元回收周期到来时,如果该缓存单元还未被正常回收,则强制回收该缓存单元,并置AGE域的1bit标记为1,USE域的1bit标记为1。
再例如:预先设置的缓存单元寿命周期数为6个缓存单元回收周期,也即当某一个缓存单元被占用6个缓存单元回收周期后,则强制收回该缓存单元。此时的AGE域可以使用3比特的指示信息,且此时f设置为1,当AGE域的值为000时,表示已经过0个缓存单元回收周期,当AGE域的值为100时,表示已经过1个缓存单元回收周期,当AGE域的值为010时,表示已经过2个缓存单元回收周期,当AGE域的值为110时,表示已经过3个缓存单元回收周期,当AGE域的值为001时,表示已经过4个缓存单元回收周期,当AGE域的值为101时,表示已经过5个缓存单元回收周期,当AGE域的值为011时,表示已经过6个缓存单元回收周期。
可选的,继续按照上述的例子,还可以将f设置为2,当AGE域的值为000时,表示已经过0个缓存单元回收周期,当AGE域的值为010时,表示已经过2个缓存单元回收周期,当AGE域的值为001时,表示已经过4个缓存单元回收周期,当AGE域的值为011时,表示已经过6个缓存单元回收周期。
从上述两种方式可以看出,如果系统预设的缓存单元寿命周期数较长时,如果使用较小的f,需要执行较长的轮数才可以回收该缓存单元,比如上述例子中f为1时,需使用6轮;而如果使用较大的f,需要执行较短的轮数便可以回收该缓存单元,比如上述例子中f为2时,只需使用3轮,从而可以有效提高缓存单元的有效利用。
继续按照上述的例子,使用3bit表示AGE域,且f为2,也即第一指示信息用3bit表示,第二指示信息用1bit表示,采用4bit的bitmap来管理缓存单元,并且当缓存单元回收周期到达时,若AGE域中的占用的缓存单元回收周期表示已占用6个缓存单元回收周期时,将该缓存单元回收。
4bit的bitmap中,1bit为USE域,其与现有bitmap方案一致,当USE域的1bit标记为0时,表示该缓存单元已被占用,当USE域的1bit标记为1时,表示该缓存单元未被占用;另3bit为AGE域,用来管理对应的USE域,当AGE域的3bit标记为000时且USE域的1bit标记为1时,表示该缓存单元未被占用且已经过0个缓存单元回收周期,当AGE域的3bit标记为000时且USE域的1bit标记为0,表示该缓存单元已被占用且已经过0个缓存单元回收周期;当AGE域的3bit标记为010时且USE域的1bit标记为0,表示该缓存单元已经过2个缓存单元回收周期;当AGE域的3bit标记为010时且USE域的1bit标记为0,表示该缓存单元已经过2个缓存单元回收周期;当AGE域的3bit标记为001时且USE域的1bit标记为0,表示该缓存单元已经过4个缓存单元回收周期;当AGE域的3bit标记为011时且USE域的1bit标记为0,表示该缓存单元已经过6个缓存单元回收周期;当下个缓存单元回收周期到来时,如果该缓存单元还未被正常回收,则强制回收该缓存单元,并置AGE域的3bit标记为000,USE域的1bit标记为1。
值得注意的是,上述各个例子中,AGE域赋予的各值只是一种举例,且各个值所代表的含义也只是一种举例,本发明不对其加以限制。为了更清楚的表达本发明的思想,本实施例中按照上述例子中AGE域赋予的值以及各值的意义进行说明。
图5所示为缓存单元回收周期的示意图,其中缓存单元回收周期为1ms,也即每1ms利用本发明的方法检测一次缓存单元中是否有可被回收的缓存单元。
确定可回收的缓存单元的过程是:图6所示为缓存单元回收周期到来时的bitmap表处理的示意图,如图6所示,缓存地址表示缓存单元的地址,当缓存单元回收周期到来时(即计数器值达到配置的缓存单元回收周期时,值得注意的是,此计数器循环计数,产生周期性的缓存单元回收标志),假设第一个1ms到达时候,扫描所有USE域,如果某个缓存单元对应的USE域对应的bit位标记为0且该缓存单元对应的AGE域对应bit标记为1(表示该缓存单元被占用,且已被占用0个缓存单元回收周期),则将该缓存单元的AGE域对应的bit位标记为0(表示该缓存单元被占用,且已被占用1个缓存单元回收周期),以在下一个缓存单元回收周期到达时,可回收该缓存单元,例如图6中缓存地址为0的缓存单元;如果USE域某个缓存单元对应的bit为标记为0且该缓存单元对应的AGE域对应的bit位标记为0(表示该缓存单元已被占用,且已被占用1个缓存单元回收周期),则回收该缓存单元以及回收该缓存单元对应的缓存地址,并将该缓存单元的USE域对应的bit位标记为1,将AGE域对应的bit位标记为1(表示该缓存单元未被占用),例如图6中缓存地址为3的缓存单元。本例中,一个被占用的缓存单元,如果一直不被释放,其最多在两个缓存单元回收周期内就会被强制释放,第一个缓存单元回收周期AGE域被标记为1,如果在第二个老化周期到来时还没有被正常释放,则第二个缓存单元回收周期时被强制释放。
步骤102、回收可回收的缓存单元。
进一步的,如果一个缓存单元对应的AGE域被标记为0或1,但接收到了缓存单元回收指令,该缓存单元回收指令中携带待回收的缓存单元对应的地址,则按照正常的回收流程进行处理,也即,读出待回收的缓存单元对应的地址对应的缓存单元中的数据,并且将回收地址对应的缓存单元对应的USE域标记为1,AGE域标记为1。
图7所示为接收到缓存单元回收指令后的处理示意图,如图7所示,当缓存地址为3的缓存单元对应的USE域为0,AGE域为0时,且下一个缓存单元回收周期还未到达,此时接收到缓存单元回收指令,且该缓存单元回收指令中携带的缓存单元对应的缓存地址为3,则将缓存地址为3的缓存单元中存储的数据读出,并将缓存地址为3的缓存单元对应的USE域变更为1,AGE域变更为1,从而释放缓存地址为3的缓存单元,以让其他命令继续使用。
可选的,在使用缓存单元之前,还需对缓存单元对应的USE域和AGE域进行初始化,也即,将各个缓存单元对应的第一指示信息标记为缓存单元未被占用,将各个缓存单元对应的第二指示信息标记为缓存单元已被占用0个缓存单元回收周期。图8所示为初始化的示意图,对USE域和AGE域初始化时,只需将USE域及AGE域均标记为1即可。
当接收到分配缓存单元的请求时,只需将分配的缓存单元对应的USE域的标记从1变更为0,如图9所示,假设系统确定将分配的缓存单元为缓存地址为3对应的缓存单元,则将该缓存单元对应的USE域的标记从1变更为0。分配后的处理方法与现有技术相同,此处不再赘述。
本实施例提供的存储器资源管理方法,首先根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,所述第一指示信息和所述第二指示信息均由至少一个比特组成,所述第一指示信息表示所述缓存单元是否被占用,所述第二指示信息表示所述缓存单元已被占用的缓存单元回收周期数,进而,回收所述可回收的缓存单元。其中,会设置一缓存单元回收周期数,当某个缓存单元被占用的时间达到预设的缓存单元回收周期数时,则将该缓存单元强制收回,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
图10所示为本发明实施例提供的存储器资源管理装置的结构示意图,如图10所示,本实施例的装置可以包括:处理模块11和回收模块12,其中,
处理模块11,用于根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,所述第一指示信息和所述第二指示信息均由至少一个比特组成,所述第一指示信息表示所述缓存单元是否被占用,所述第二指示信息表示所述缓存单元已被占用的缓存单元回收周期数;
回收模块12,用于回收所述可回收的缓存单元。
进一步的,所述处理模块11具体用于:
判断所述缓存单元对应的第一指示信息是否表示所述缓存单元被占用,
若表示所述缓存单元被占用;
则根据所述缓存单元对应的第二指示信息确定所述缓存单元是否已被占用n个所述缓存单元回收周期,其中,所述n为大于等于1的正整数,
若是,则确定所述缓存单元为所述可回收的缓存单元。
进一步的,所述处理模块11,还用于判断所述缓存单元是否被占用m个所述缓存单元回收周期,其中,m为小于等于n的正整数,
若是,所述处理模块11用于将所述缓存单元对应的第二指示信息变更为所述缓存单元已占用m+f个所述缓存单元回收周期,所述f为大于等于1的正整数,且所述m+f为小于等于n的正整数。
进一步的,所述处理模块11,还用于在所述回收模块12回收所述可回收的缓存单元之后,将所述可回收的缓存单元对应的第一指示信息变更为未被占用,将所述可回收的缓存单元对应的第二指示信息变更为已被占用0个所述缓存单元回收周期。
进一步的,如图110所示,图10所示的装置还包括:接收模块13,
所述接收模块13用于在所述处理模块11根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元之前,接收缓存单元回收指令,所述缓存单元回收指令中携带待回收的缓存单元对应的地址;
所述处理模块11还用于:根据所述地址回收所述待回收的缓存单元。
进一步的,所述处理模块11还用于在所述接收模块13接收缓存单元回收指令之前,将各个所述缓存单元对应的第一指示信息标记为所述缓存单元未被占用,将各个所述缓存单元对应的第二指示信息标记为所述缓存单元已被占用0个所述缓存单元回收周期。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种存储器资源管理方法,其特征在于,包括:
根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,所述第一指示信息和所述第二指示信息均由至少一个比特组成,所述第一指示信息表示所述缓存单元是否被占用,所述第二指示信息表示所述缓存单元已被占用的缓存单元回收周期数;
回收所述可回收的缓存单元。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述缓存单元被占用m个所述缓存单元回收周期,其中,m为小于等于n的正整数,
则将所述缓存单元对应的第二指示信息变更为所述缓存单元已占用m+f个所述缓存单元回收周期,所述f为大于等于1的正整数,且所述m+f为小于等于n的正整数。
3.根据权利要求1或2所述的方法,其特征在于,所述回收所述可回收的缓存单元之后,还包括:
将所述可回收的缓存单元对应的第一指示信息变更为未被占用,将所述可回收的缓存单元对应的第二指示信息变更为已被占用0个所述缓存单元回收周期。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元之前,还包括:
接收缓存单元回收指令,所述缓存单元回收指令中携带待回收的缓存单元对应的地址;
根据所述地址回收所述待回收的缓存单元。
5.根据权利要求4所述的方法,其特征在于,所述接收缓存单元回收指令之前,还包括:
将各个所述缓存单元对应的第一指示信息标记为所述缓存单元未被占用,将各个所述缓存单元对应的第二指示信息标记为所述缓存单元已被占用0个所述缓存单元回收周期。
6.一种存储器资源管理装置,其特征在于,包括:
处理模块,用于根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,所述第一指示信息和所述第二指示信息均由至少一个比特组成,所述第一指示信息表示所述缓存单元是否被占用,所述第二指示信息表示所述缓存单元已被占用的缓存单元回收周期数;
回收模块,用于回收所述可回收的缓存单元。
7.根据权利要求6所述的装置,其特征在于,所述处理模块,还用于:
若所述缓存单元被占用m个所述缓存单元回收周期,其中,m为小于等于n的正整数,
则将所述缓存单元对应的第二指示信息变更为所述缓存单元已占用m+f个所述缓存单元回收周期,所述f为大于等于1的正整数,且所述m+f为小于等于n的正整数。
8.根据权利要求6或7所述的装置,其特征在于,所述处理模块,还用于在所述回收模块回收所述可回收的缓存单元之后,将所述可回收的缓存单元对应的第一指示信息变更为未被占用,将所述可回收的缓存单元对应的第二指示信息变更为已被占用0个所述缓存单元回收周期。
9.根据权利要求6-8任一项所述的装置,其特征在于,还包括:接收模块,
所述接收模块用于在所述处理模块根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元之前,接收缓存单元回收指令,所述缓存单元回收指令中携带待回收的缓存单元对应的地址;
所述处理模块还用于:根据所述地址回收所述待回收的缓存单元。
10.根据权利要求9所述的装置,其特征在于,所述处理模块还用于在所述接收模块接收缓存单元回收指令之前,将各个所述缓存单元对应的第一指示信息标记为所述缓存单元未被占用,将各个所述缓存单元对应的第二指示信息标记为所述缓存单元已被占用0个所述缓存单元回收周期。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511005125.4A CN105677575A (zh) | 2015-12-28 | 2015-12-28 | 存储器资源管理方法和装置 |
EP16206741.7A EP3188026B1 (en) | 2015-12-28 | 2016-12-23 | Memory resource management method and apparatus |
US15/392,317 US10430344B2 (en) | 2015-12-28 | 2016-12-28 | Memory resource management method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511005125.4A CN105677575A (zh) | 2015-12-28 | 2015-12-28 | 存储器资源管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105677575A true CN105677575A (zh) | 2016-06-15 |
Family
ID=56189681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511005125.4A Pending CN105677575A (zh) | 2015-12-28 | 2015-12-28 | 存储器资源管理方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10430344B2 (zh) |
EP (1) | EP3188026B1 (zh) |
CN (1) | CN105677575A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107529695A (zh) * | 2016-06-20 | 2018-01-02 | 迈普通信技术股份有限公司 | 一种缓冲区缓慢泄漏的定位方法及装置 |
CN111090389A (zh) * | 2019-10-31 | 2020-05-01 | 苏州浪潮智能科技有限公司 | 一种缓存空间的释放方法、设备以及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870877B (zh) * | 2016-09-23 | 2024-04-23 | 伊姆西Ip控股有限责任公司 | 用于在存储系统中管理数据访问的方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173368B1 (en) * | 1995-12-18 | 2001-01-09 | Texas Instruments Incorporated | Class categorized storage circuit for storing non-cacheable data until receipt of a corresponding terminate signal |
CN101197786A (zh) * | 2008-01-02 | 2008-06-11 | 杭州华三通信技术有限公司 | 缓存管理方法和缓存管理系统 |
CN103064762A (zh) * | 2012-12-25 | 2013-04-24 | 华为技术有限公司 | 重删备份数据的恢复方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644751A (en) * | 1994-10-03 | 1997-07-01 | International Business Machines Corporation | Distributed file system (DFS) cache management based on file access characteristics |
US6799191B2 (en) * | 2000-05-16 | 2004-09-28 | Sun Microsystems, Inc. | Object sampling technique for runtime observations of representative instances thereof |
US7395373B2 (en) * | 2005-09-20 | 2008-07-01 | International Business Machines Corporation | Set-associative cache using cache line decay counts and set overflow |
TW200828273A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Hard disk cache device and method |
US7904493B2 (en) * | 2007-03-30 | 2011-03-08 | Sap Ag | Method and system for object age detection in garbage collection heaps |
-
2015
- 2015-12-28 CN CN201511005125.4A patent/CN105677575A/zh active Pending
-
2016
- 2016-12-23 EP EP16206741.7A patent/EP3188026B1/en active Active
- 2016-12-28 US US15/392,317 patent/US10430344B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173368B1 (en) * | 1995-12-18 | 2001-01-09 | Texas Instruments Incorporated | Class categorized storage circuit for storing non-cacheable data until receipt of a corresponding terminate signal |
CN101197786A (zh) * | 2008-01-02 | 2008-06-11 | 杭州华三通信技术有限公司 | 缓存管理方法和缓存管理系统 |
CN103064762A (zh) * | 2012-12-25 | 2013-04-24 | 华为技术有限公司 | 重删备份数据的恢复方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107529695A (zh) * | 2016-06-20 | 2018-01-02 | 迈普通信技术股份有限公司 | 一种缓冲区缓慢泄漏的定位方法及装置 |
CN111090389A (zh) * | 2019-10-31 | 2020-05-01 | 苏州浪潮智能科技有限公司 | 一种缓存空间的释放方法、设备以及存储介质 |
CN111090389B (zh) * | 2019-10-31 | 2021-06-29 | 苏州浪潮智能科技有限公司 | 一种缓存空间的释放方法、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10430344B2 (en) | 2019-10-01 |
EP3188026A1 (en) | 2017-07-05 |
US20170185522A1 (en) | 2017-06-29 |
EP3188026B1 (en) | 2018-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783004B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
US11340812B2 (en) | Efficient modification of storage system metadata | |
CN104091617B (zh) | 一种闪存存储设备检测的方法及装置 | |
CN107665146B (zh) | 内存管理装置和方法 | |
US8438361B2 (en) | Logical block storage in a storage device | |
CN103123604B (zh) | 跟踪数据处理系统的内存使用的方法 | |
US9965196B2 (en) | Resource reservation for storage system metadata updates | |
EP2521966A1 (en) | Systems and methods for removing unreferenced data segments from deduplicated data systems | |
CN104239518A (zh) | 重复数据删除方法和装置 | |
CN107209719A (zh) | 一种阵列控制器、固态硬盘和控制固态硬盘写数据的方法 | |
CN105677575A (zh) | 存储器资源管理方法和装置 | |
CN106371807A (zh) | 一种扩展处理器指令集的方法及装置 | |
CN105183399A (zh) | 一种基于弹性块存储的数据写、读方法及装置 | |
CN101488919A (zh) | 存储地址分配方法和装置 | |
CN109144428B (zh) | 一种应用于固态硬盘的垃圾回收方法、设备及介质 | |
CN109815166B (zh) | 一种存储数据的动态回收处理方法及存储装置 | |
CN105677583B (zh) | 一种缓存管理方法及装置 | |
CN107229580B (zh) | 顺序流检测方法与装置 | |
CN104899157A (zh) | 一种内存溢出检测方法和系统 | |
WO2019037587A1 (zh) | 一种数据恢复方法及装置 | |
CN104317735A (zh) | 大容量缓存及数据存储和读取、内存分配和回收的方法 | |
CN106557383B (zh) | 一种数据恢复的方法及装置 | |
CN111221468B (zh) | 存储块数据删除方法、装置、电子设备及云存储系统 | |
US20180150237A1 (en) | Electronic device and page merging method therefor | |
CN110007856B (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 |
Application publication date: 20160615 |
|
RJ01 | Rejection of invention patent application after publication |