H04L12/56
1.一种缓存管理方法,其特征在于,该方法包括:
在缓存地址被申请时,将被申请的缓存地址标记为被申请状态;
每次计时到达根据缓存地址的最长申请时间确定的循环定时时间时,释放 处于被申请状态的缓存地址。
2.如权利要求1所述的方法,其特征在于,所述缓存地址的最长申请时间 为缓存系统当前处理的最长业务报文从系统入口到系统出口的最长延时。
3.如权利要求2所述的方法,其特征在于,所述最长延时的确定方式为: 根据缓存系统的入口速率计算接收最长业务报文所需的入口时间,根据业务报 文承载的业务确定缓存系统硬件处理该业务报文的处理时间,根据缓存系统的 出口速率计算输出所述最长业务报文所需的出口时间,将所确定的入口时间、 处理时间和出口时间相加,得到所述最长延时。
4.如权利要求1所述的方法,其特征在于,所述缓存地址的最长申请时间 确定方式为:
统计当前地址释放速率;以所述当前地址释放速率为索引,在预先设置的 地址释放速率和最长申请时间的对应关系中,查与所述当前地址释放速率对 应的最长申请时间,将查到的最长申请时间作为所述最长申请时间。
5.如权利要求1所述的方法,其特征在于,该方法进一步包括:为每个缓 存地址设置地址有效标志,并初始化为无效;
所述在缓存地址被申请时,将被申请的缓存地址标记为被申请状态为:在 缓存地址被申请时,将被申请的缓存地址对应的地址有效标志设置为有效。
6.如权利要求5所述的方法,其特征在于,根据缓存地址的最长申请时间 确定所述循环定时时间为:采用所述最长申请时间作为定时器的循环定时时间, 令定时器计时;
所述每次计时到达根据缓存地址的最长申请时间确定的循环定时时间时, 释放处于被申请状态的缓存地址包括:当所述定时器的计时值超过所述循环定 时时间,释放地址有效标志为有效的缓存地址,并将被释放的缓存地址的地址 有效标志设置为无效,所述定时器继续从0计时。
8.如权利要求6或7所述的方法,其特征在于,定时器计时到达循环定时 时间之前,该方法进一步包括:在缓存地址因使用完毕请求被释放时,查看该 缓存地址的地址有效标志是否为有效,如果是,则释放该请求被释放的缓存地 址,并将其地址有效标志设置为无效;否则,不进行释放操作。
7.如权利要求5所述的方法,其特征在于,该方法进一步包括:为缓存地 址设置时标计算值,并初始化为0;
根据缓存地址的最长申请时间确定所述循环定时时间为:根据所述最长申 请时间确定缓存地址的刷新门限和定时器的循环定时时间,令所述定时器计时; 所述刷新门限与循环定时时间之积为最长申请时间;
所述每次计时到达所述根据缓存地址的最长申请时间确定的循环定时时间 时,释放处于被申请状态的缓存地址包括:当所述定时器的计时值超过所述循 环定时时间,分别将地址有效标志为有效的各缓存地址对应的时标计算值加1; 释放地址有效标志为有效且时标计算值等于所述刷新门限的缓存地址,并将被 释放的缓存地址的地址有效标志设置为无效;所述定时器继续从0计时。
9.如权利要求1所述的方法,其特征在于,该方法进一步包括:预先设置 缓存占用率阈值,判断处于被申请状态的缓存地址数量占缓存系统中所有缓存 地址数量的百分比,是否大于或等于所述占用率阈值,如果是,则执行所述每 次计时到达所述根据缓存地址的最长申请时间确定的循环定时时间时,释放处 于被申请状态的缓存地址的操作。
10.一种缓存管理系统,该系统包括地址请求处理单元、地址释放处理单 元和地址队列存储单元;其特征在于,还包括管理单元;其中,
所述地址请求处理单元,用于在向地址队列存储单元申请缓存地址时,将 被申请的缓存地址发送给所述管理单元;
所述管理单元,用于将接收自地址请求处理单元的被申请的缓存地址标记 为被申请状态;每次计时到达根据缓存地址的最长申请时间确定的循环定时时 间时,将处于被申请状态的缓存地址确定为待释放缓存地址,生成携带所述待 释放缓存地址的释放通知,并发送给所述地址释放处理单元;
所述地址释放处理单元,用于根据所接收的释放通知,释放所述待释放缓 存地址;
地址队列存储单元,用于以队列形式存储缓存地址。
11.如权利要求10所述的系统,其特征在于,所述管理单元包括循环定时 时间确定模块、刷新模块和地址状态记录模块;
所述循环定时时间确定模块,用于根据缓存地址的最长申请时间确定循环 定时时间,然后发送给所述刷新模块;
所述刷新模块,用于接收来自所述地址请求处理单元的被申请的缓存地址, 在所述地址状态记录模块中将所述被申请的缓存地址对应的地址有效标志设置 为有效;每次计时到达所接收的循环定时时间时,从地址有效标志为有效的缓 存地址中确定出待释放地址,生成携带所述待释放缓存地址的释放通知并发送 给所述地址释放处理单元;
所述地址状态记录模块,用于记录缓存地址及其地址有效标志。
12.如权利要求11所述的系统,其特征在于,所述地址状态记录模块进一 步记录缓存地址的时标计算值;
所述刷新模块,进一步用于在执行确定待释放地址操作时,将地址有效标 志为有效的各缓存地址对应的时标计算值加1;并且从地址有效标志为有效的 缓存地址中,将时标计算值等于预设刷新门限的缓存地址确定为待释放缓存地 址。
13.如权利要求11所述的系统,其特征在于,所述管理单元进一步包括最 长申请时间确定模块,用于记录预设的地址释放速率和最长申请时间之间的对 应关系,统计当前地址释放速率,以所述当前地址释放速率为索引,从所述对 应关系中查与所述当前地址释放速率对应的最长申请时间,将查到的最长 申请时间发送给所述循环定时时间确定模块。
14.如权利要求11所述的系统,其特征在于,所述地址释放处理单元在接 收到来自外部的地址释放请求时,进一步将所述地址释放请求发送给所述刷新 模块;
所述刷新模块进一步用于,接收所述地址释放请求,在判定所述地址释放 请求中的地址处于被申请状态时,将其确定为待释放缓存地址。
15.如权利要求11所述的系统,其特征在于,所述管理单元进一步包括判 断模块,用于在判定处于被申请状态的缓存地址数量占所在缓存系统中所有缓 存地址的数量的百分比大于或等于预设占用率阈值时,通知所述刷新模块执行 其自身操作。
技术领域
本发明涉及缓存技术,具体涉及缓存管理方法和缓存管理系统。
背景技术
图1为现有缓存系统的结构示意图。如图1所示,该系统包括地址请求 单元110、缓存管理单元120、缓存单元130和地址释放单元140。其中, 地址请求单元110接收到待缓存报文后,向缓存管理单元120提出地址申请 请求,申请到缓存地址后,将待缓存报文保存到缓存单元130中的缓存地址 上,向地址释放单元140发送包含缓存地址的被缓存报文相关信息;地址释 放单元140根据被缓存报文相关信息中的缓存地址,从缓存单元130中读取 对应的报文并输出,并向缓存管理单元120发送地址释放请求,请求将输出 报文在缓存时所占用的缓存地址释放。
在具体申请和释放缓存地址时,是通过对地址指针的读取和存入实现 的。参见图2示出现有技术中缓存管理单元的结构,该缓存管理单元主要负 责地址申请和地址释放,包括:地址请求处理模块121、地址指针存储模块 122和地址释放处理模块123。其中,地址请求处理模块121在接收到地址 申请请求后,从中读取所要申请地址的数量,然后从地址指针存储模块122 中读取数量相同的指针,并返回给地址请求单元110,从而实现了缓存地址 的申请;在接收到地址释放请求时,从该请求中读取所要释放的地址,然后 保存到地址指针存储模块122中,从而实现了地址的释放。
在实际应用中,地址释放单元140可能由于某种原因而没有成功接收到 地址请求单元110发送的被缓存报文相关信息,该被缓存报文将一直被保存 在缓存单元130中,报文所占用的缓存地址不能被正常释放。那么报文所占 用的缓存地址将永久性的不能被回收,从而导致缓存地址数量的减少,这种 情况称为缓存泄漏。当缓存泄漏较多时,系统中缓存容量将不能满足实际缓 存需要,导致缓存系统性能下降。
发明内容
有鉴于此,本发明提供了一种缓存管理方法,能够减少缓存泄漏。
该方法包括:
在缓存地址被申请时,将被申请的缓存地址标记为被申请状态;
每次计时到达根据缓存地址的最长申请时间确定的循环定时时间时,释 放处于被申请状态的缓存地址。
其中,所述缓存地址的最长申请时间为缓存系统当前处理的最长业务报 文从系统入口到系统出口的最长延时。
其中,所述最长延时的确定方式为:根据缓存系统的入口速率计算接收 最长业务报文所需的入口时间,根据业务报文承载的业务确定缓存系统硬件 处理该业务报文地处理时间,根据缓存系统的出口速率计算输出所述最长业 务报文所需的出口时间,将所确定的入口时间、处理时间和出口时间相加, 得到所述最长延时。
较佳地,所述缓存地址的最长申请时间确定方式为:
统计当前地址释放速率;以所述当前地址释放速率为索引,在预先设置 的地址释放速率和最长申请时间的对应关系中,查与所述当前地址释放速 率对应的最长申请时间,将查到的最长申请时间作为所述最长申请时间。
该方法进一步包括:为每个缓存地址设置地址有效标志,并初始化为无 效;
所述在缓存地址被申请时,将被申请的缓存地址标记为被申请状态为: 在缓存地址被申请时,将被申请的缓存地址对应的地址有效标志设置为有 效。
其中,所述根据缓存地址的最长申请时间确定循环定时时间为:采用所 述最长申请时间作为定时器的循环定时时间,令定时器计时;
每次计时到达根据缓存地址的最长申请时间确定的循环定时时间时,释 放处于被申请状态的缓存地址包括:当所述定时器的计时值超过所述循环定 时时间,释放地址有效标志为有效的缓存地址,并将被释放的缓存地址的地 址有效标志设置为无效,所述定时器继续从0计时。
较佳地,该方法进一步包括:为缓存地址设置时标计算值,并初始化为 0;
所述根据缓存地址的最长申请时间确定循环定时时间为:根据所述最长 申请时间确定缓存地址的刷新门限和定时器的循环定时时间,令所述定时器 计时;所述刷新门限与循环定时时间之积为最长申请时间;
所述每次计时到达根据缓存地址的最长申请时间确定的循环定时时间 时,释放处于被申请状态的缓存地址包括:当所述定时器的计时值超过所述 循环定时时间,分别将地址有效标志为有效的各缓存地址对应的时标计算值 加1;释放地址有效标志为有效且时标计算值等于所述刷新门限的缓存地址, 并将被释放的缓存地址的地址有效标志设置为无效;所述定时器继续从0计 时。
较佳地,该方法进一步包括:在缓存地址因使用完毕请求被释放时,查 看该缓存地址的地址有效标志是否为有效,如果是,则释放该请求被释放的 缓存地址,并将其地址有效标志设置为无效;否则,不进行释放操作。
较佳地,该方法进一步包括:预先设置缓存占用率阈值,判断处于被申 请状态的缓存地址数量占缓存系统中所有缓存地址数量的百分比,是否大于 或等于所述占用率阈值,如果是,则执行所述每次计时到达根据缓存地址的 最长申请时间确定的循环定时时间时,释放处于被申请状态的缓存地址的操 作。
本发明还提供了一种缓存管理系统,能够减少缓存泄漏。
该系统包括地址请求处理单元、地址释放处理单元和地址队列存储单 元;还包括管理单元;其中,
所述地址请求处理单元,用于在向地址队列存储单元申请缓存地址时,将 被申请的缓存地址发送给所述管理单元;
所述管理单元,用于将接收自地址请求处理单元的被申请的缓存地址标记 为被申请状态;每次计时到达根据缓存地址的最长申请时间确定的循环定时时 间时,将处于被申请状态的缓存地址确定为待释放缓存地址,生成携带所述待 释放缓存地址的释放通知,并发送给所述地址释放处理单元;
所述地址释放处理单元,用于根据所接收的释放通知,释放所述待释放缓 存地址;
地址队列存储单元,用于以队列形式存储缓存地址。
根据以上技术方案可见,应用本发明能够定时进行主动的地址释放操 作,保证被申请出去的地址都能被回收,从而减少了缓存泄漏,避免因缓存 泄漏带来的缓存容量降低,缓存系统性能下降的问题。
附图说明
图1为现有技术中缓存系统的结构示意图。
图2为现有技术中缓存管理单元的结构示意图。
图3为本发明中缓存管理方法的示例性流程图。
图4为本发明实施例一中缓存管理方法的流程图。
图5为本发明实施例二中缓存管理方法的流程图。
图6为本发明实施例中缓存管理系统的结构示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明为一种缓存管理方案,其基本思想为:每次计时到达循环定时时 间时,释放处于被申请状态的缓存地址,保证被申请出去的缓存地址都能被 回收,从而减少缓存泄漏。
图3示出了基于以上基本思想的缓存管理方法的示例性流程图,如图3 所示,该方法包括以下步骤:
步骤301:根据预设的缓存地址的最长申请时间,确定循环定时时间。
步骤302:在缓存地址被申请时,将被申请的缓存地址标记为被申请状 态。
步骤303:每次计时到达循环定时时间时,释放处于被申请状态的缓存 地址。
这里,最长申请时间是根据系统接收报文速率、处理报文速率和输出报 文速率确定的。所有缓存地址都采用同一个最长申请时间。
根据上述流程,采用图3的处理方法,能够定时进行主动的地址释放操 作,保证被申请出去的缓存地址都能被回收,从而减少了缓存泄漏。另外, 地址释放的操作是定时执行的,那么只需要利用系统CPU中的一个定时器 来完成定时工作,定时时间到,才转入统一的释放操作,这种方式实现非常 简单。
以下举具体实施例对本发明缓存管理方法的实现进行详细描述。
图4为本发明实施例一中缓存管理方法的流程图。如图4所示,该方法 包括以下步骤:
步骤400:预先设置缓存地址的最长申请时间。
本步骤中,根据缓存系统对业务报文的处理速率、缓存系统入口和出口 速率、以及所处理报文长度估计缓存地址的最长申请时间,该时间为报文从 系统入口到系统出口的最长延时。在缓存操作中,所有缓存地址采用同一个 最长申请时间。
一种估计方式可以为:根据数据缓存系统的入口速率计算接收最长报文 所需的入口时间,根据报文承载的业务确定系统硬件处理该报文的处理时 间,根据出口速率计算输出最长报文所需的出口时间,将所确定的入口时间、 处理时间和出口时间相加,得到估计的该系统中缓存地址的最长申请时间。
例如,系统入口速率和出口速率为1G,经测算系统处理某种业务报文 的时间为70ms,该业务的最长报文长度为9216字节(Bytes),则计算入口 时间约为9216Bytes/(1Gbit/s)≈74ms,出口时间约为74ms,那么该系统中 地址的最长申请时间为74ms+74ms+70ms=218ms。
步骤401:采用最长申请时间作为定时器的定时时间T,令定时器开始 计时。该定时时间T即为循环定时时间。
步骤402:在缓存地址被申请时,将该被申请的缓存地址对应的地址有 效标志设置为1。
在实际中,设置刷新(Reflash)表,用于记录所管理的地址及其地址有 效标志。表1为本实施例一中刷新表的结构示意。
表1
如表1所示,该刷新表的表项包括地址指针值及其对应的地址有效标 志,表项的深度为缓存单元中所有缓存地址的数目。实际实现时,可以用1 比特的布尔值作为地址有效标志,当地址被申请出去时,将该地址的地址有 效标志设置为1,即有效,表示被申请出去了;当该地址被释放时,将该地 址的地址有效标志设置为0,即无效,表示该地址还在缓存管理模块中未被 申请。需要说明的是,当初始化系统时,需要将所有缓存地址对应的地址有 效标志设置为0。
步骤403:判断定时器的计时值是否超过定时时间T,如果是,则执行 步骤404;否则,继续执行步骤403的判断操作。
步骤404:查看刷新表中各缓存地址的地址有效标志,将地址有效标志 为1的缓存地址强制释放,并将被强制释放的缓存地址的地址有效标志设置 为0;令定时器从0开始计时,返回执行步骤403。
本步骤中,通过将地址有效标志为1的缓存地址指针写入指针队列,以 实现缓存地址的释放操作,然后返回步骤403,并在下一次定时时间T到达 时,进行下一轮的释放操作。
由本实施例描述可以看出,每次定时时间T到达时,在本次定时周期内 被申请出去的缓存地址都被释放,保证缓存管理模块中的缓存地址被申请出 去后都能被回收,从而避免了缓存泄漏。
在以上步骤执行过程中,计时还未到达定时时间T,如果有缓存地址被 使用完毕请求被正常释放,那么在正常释放该缓存地址的同时,还需要将该 缓存地址对应的地址有效标志设置为0,使得该缓存地址不会在定时时间T 到达时被重复释放。如果出现重复释放,那么地址队列中将存在相同的缓存 地址指针,当该相同的缓存地址指针被先后申请后,同一地址空间被先后缓 存进两个不同的数据,那么先缓存进的数据将被后缓存进的数据覆盖,从而 导致数据丢失、错乱。可见,本实施例的缓存管理方法能够避免因重复释放 造成的数据丢失错乱问题,增强了缓存管理的健壮性。
需要说明的是,在刷新表中记录所有缓存地址及其地址有效标志是为了 实现方便,在实际中,可以在刷新表中只记录被申请出去的缓存地址,那么 记录在刷新表中的每个缓存地址都为被申请状态。在缓存地址被申请时,将 被申请地址添加在刷新表中,当缓存地址被释放时,将被释放地址从刷新表 中删除。
图5为本发明实施例二中缓存管理方法的流程图。如图5所示,该方法 包括以下步骤:
步骤500:预先设置缓存地址的最长申请时间。
本步骤的设置方式与实施例一中的步骤400相同。
步骤501:根据最长申请时间确定缓存地址的刷新门限,以及定时器的 定时时间T。
其中,最长申请时间、缓存地址的刷新门限和定时器的定时时间T三者 之间的关系为:最长申请时间等于刷新门限乘以定时器定时时间T。
具体地,可以先设置一大于0的整数作为刷新门限,例如设置为4,那 么定时器的定时时间T为:最长申请时间除以刷新门限,再四舍五入取整, 得到定时时间T。还可以先设置定时时间T,那么刷新门限为最长申请时间 除以定时时间T,再四舍五入取整。采用后者确定方式时,为了保证地址具 有足够长的被申请时间,可以在进行四舍运算时,将获得的商加1,作为刷 新门限。
例如,当步骤500得到最长申请时间为100ms时,设置刷新门限为4, 那么定时时间T为100ms/4=25ms。
步骤502:采用所确定的定时时间T为定时器赋值,令定时器开始从0 计时。
步骤503:在缓存地址被申请时,将该缓存地址对应的地址有效标志设 置为1,将对应的体现刷新门限的时标计算值设置为0。
本实施例中,采用刷新表记录缓存地址及其地址有效标志和时标计算 值。表2为本实施例二中刷新表的结构示意。
表2
如表2所示,该刷新表的表项包括地址指针值、地址有效标志和时标计 算值,表项的深度为所有缓存地址的数目。其中,地址有效标志采用1比特 的布尔值表示。与表1不同的是,本实施例刷新表还包括时标计算值,该时 标计算值表示对应的缓存地址本次被申请出去的时间累积值。当地址被申请 时,将对应的时标计算值设置为0,当时标计算值到达刷新门限值时,表示 该地址被占用的时间已经到达最长申请时间,应该被强制释放。需要说明的 是,当初始化系统时,需要将所有缓存地址对应的地址有效标志设置为0, 将所有地址的时标计算值设置为0。
步骤504:判断定时器的计时值是否超过定时时间T,如果是,则执行 步骤505;否则,继续执行步骤504的判断操作。
步骤505:将刷新表中地址有效标志为1的缓存地址的时标计算值加1。
步骤506:查看刷新表中各缓存地址的地址有效标志,将地址有效标志 为1且时标计算值等于刷新门限的地址强制释放,并将被强制释放的缓存地 址的地址有效标志设置为0;令定时器从0开始计时,返回执行步骤504。
在以上步骤执行过程中,如果有缓存地址被使用完毕且请求被正常释放 时,在正常释放该缓存地址的同时,还需要将其地址有效标志设置为0,使 得该地址不会在定时时间T到达时被重复释放。
由本实施例描述可以看出,每次定时时间T到达时,将每个地址有效标 志为1的缓存地址的时标计算值加1,以记录各地址被申请出去的累积时间, 当该累积时间超过最长申请时间,即时标计算值达到刷新门限时,强制释放 该缓存地址,不仅保证所有被申请出去的缓存地址都能被回收,而且减少了 地址被提前释放的几率,使得缓存管理更为合理。
本实施例二中,如果刷新门限被设置为1,则与实施例一的方案相同。
在实际中,该缓存方法会处理承载不同业务的业务报文,承载业务不同, 业务报文的最长长度也不同,因此,如果一直采用固定不变的最大申请时间 显然不够合理。那么,可以采用如下方式调整最大申请时间,具体实现为: 统计单位时间内缓存的地址释放速率,其中地址释放包括正常释放和强制释 放,以统计的地址释放速率为索引,在预先设置的地址释放速率和最长申请 时间的对应关系中,查与统计的地址释放速率对应的最长申请时间,作为 所确定的最长申请时间。
一种较佳的地址释放速率和最长申请时间的对应关系确定方式为:
确定几个典型长度报文;
令缓存系统依次处理各个典型长度报文:对某一个长度报文进行处理 时,在单位时间内连续处理该长度报文,统计单位时间内地址释放次数,得 到地址释放速率,同时记录该长度报文从入口到出口的最长时延;当然,该 最长时延也可以采用实施例一步骤400的估计方式进行估算;
对应记录各个典型长度报文的地址释放速率和从入口到出口的最长时 延,将该最长时延作为最长申请时间,得到上述对应关系。
在实际中,还可以在确定各种地址释放速率对应的最长申请时间后,将 最长申请时间换算为定时时间T,在定时时间选择表中记录地址释放速率及 其对应的定时时间T。换算公式为地址释放速率除以预先确定的刷新门限值 得到定时时间T。那么,可以通过直接采用所选择的定时时间T刷新定时器, 从而实现最长申请时间的调整。表3示出了定时时间选择表,如表3所示, 表项包括地址释放速率和定时时间T。定时时间选择表中的值可以在缓存管 理过程中由人工修改。
表3
以上最大申请时间的确定步骤在进行管理之前执行一次,在管理过程 中,可以定时执行最大申请时间的确定步骤,并采用确定的最大申请时间进 行后续管理操作。
在实际应用中,缓存地址是不会被占用光的,也就是说,在正常情况下 只会用到部分缓存地址,即使出现了部分缓存泄漏,也不会影响到缓存效果, 还不必启动定时器。只有在缓存地址较少的情况下,才需要启动定时器,定 时执行地址的强制释放,以回收泄漏的地址。那么,可以预先设置一个缓存 占用率阈值,实时判断被占用缓存占所有缓存的百分比,即实际缓存占用率, 是否大于或等于缓存占用率阈值,如果是,则开始进行定时强制地址回收的 操作,否则,按现有技术执行缓存管理操作,即背景技术中缓存管理单元所 执行的管理操作。这样可以减少缓存管理系统中定时器资源的占用。
为了实现上述缓存管理方法,本发明还提供了一种缓存管理系统。该缓 存管理系统应用于背景技术中的缓存系统中。图6为本发明实施例中缓存管 理系统的结构示意图,如图6所述,该缓存管理系统600包括:地址请求处 理单元610、管理单元620、地址释放处理单元630和地址队列存储单元640, 其中,
地址请求处理单元610,负责缓存地址申请,用于接收来自外部的地址 申请请求,从地址队列存储单元640中读取缓存地址,并向管理单元620发 送申请通知。该申请通知中包括从地址队列存储单元640中读取的缓存地 址,即被申请的缓存地址。
管理单元620,用于根据预设的缓存地址的最长申请时间确定循环定时 时间,在接收到地址请求处理单元610的申请通知时,将申请通知携带的被 申请的缓存地址标记为被申请状态,每次计时到达循环定时时间时,将处于 被申请状态的缓存地址确定为待释放缓存地址,生成携带待释放缓存地址的 释放通知,并发送给地址释放处理单元630。
地址释放处理单元630,用于接收到地址释放请求,该地址释放请求中 包括因被使用完毕请求被正常释放的缓存地址,此时,地址释放处理单元 630不直接执行释放操作,而是请示管理单元620是否能够执行释放操作。 因此,地址释放处理单元630将地址释放请求发送给管理单元620。在这种 情况下,管理单元620在接收到地址释放请求时,查看该请求中的缓存地址 状态是否为被申请,如果是,则将请求中的缓存地址携带在释放通知中,发 送给地址释放处理单元630,由地址释放处理单元630最终执行释放操作。 地址释放处理单元630接收释放通知,将释放通知中的待释放地址释放,即 将待释放地址指针存入地址指针队列单元640中的队列。
地址队列存储单元640,用于以队列形式存储缓存地址。
其中,管理单元620包括最长申请时间确定模块621、循环定时时间确 定模块624、刷新模块622和地址状态记录模块623。
这里,地址状态记录模块623记录缓存地址及其被申请状态。本实施例 中,采用地址有效标志表示被申请状态。那么,可以在地址状态记录模块 623中,将缓存地址和地址有效标志记录在表1示出的刷新表中。当地址有 效标志为1时,表示被申请,地址有效标志为0时,表示未被申请。
循环定时时间确定模块624,用于根据缓存地址的最长申请时间确定循 环定时时间,然后发送给所述刷新模块622。具体而言,简单地,可以采用 最长申请时间作为循环定时时间;为了减少缓存地址的提前释放几率,还可 以根据所接收的最长申请时间确定循环定时时间以及缓存地址的刷新门限, 其中最长申请时间等于循环定时时间乘以缓存地址的刷新门限。其中,最长 申请时间可以采用所在缓存系统当前处理的最长业务报文从缓存系统入口 到出口的最长延时。较佳地,最长申请时间可以通过设置于管理单元620的 最长申请时间确定模块621根据当前地址释放速率确定,具体而言,最长申 请时间确定模块621记录预设的地址释放速率和最长申请时间的对应关系, 统计当前地址释放速率,以当前地址释放速率为索引,从对应关系中查与 当前地址释放速率对应的最长申请时间,并作为所确定的最长申请时间。
刷新模块622,接收来自地址请求处理单元610的申请通知,在地址状 态记录模块623中将申请通知携带的缓存地址标记为被申请状态;接收来自 循环定时时间确定模块624的循环定时时间,每次计时到达所接收的循环定 时时间时,查看地址状态记录模块623中的缓存地址,从处于被申请状态的 缓存地址中确定出待释放地址,生成携带该待释放地址的释放通知,发送给 地址释放处理单元630。
具体而言,当采用最长申请时间作为循环定时时间时,每隔最长申请时 间,释放地址状态记录模块623中地址有效标志为1的缓存地址;在释放地 址状态记录模块623中还可进一步保存缓存地址的时标计算值,所述时标计 算值的最大值即为刷新门限,所述刷新门限、循环定时时间与最长申请时间 三者的关系为,最长申请时间等于刷新门限与循环定时时间之积,每隔循环 定时时间,将地址有效标志为1的缓存地址对应的时标计算值加1,并释放 地址有效标志为1且时标计算值等于刷新门限的缓存地址。
刷新模块622进一步在接收到来自地址释放处理单元630的地址释放请 求时,查看该请求中的缓存地址的地址状态标志是否为有效,如果是,确定 该缓存地址可以被释放,向地址释放处理单元630发送释放通知;否则不进 行任何操作。
在实际中,该缓存管理系统600可以进一步包括判断模块(图6中未示 出)。该判断模块确定被申请状态下的缓存地址数量占缓存系统中所有缓存 地址数量的百分比,如果该百分比大于或等于预先设置的占用率阈值,则通 知管理单元620中的刷新模块622执行其自身操作。
由以上所述可以看出,本发明所提供的缓存管理方案,能够减少缓存泄 漏。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
本文发布于:2023-04-13 09:35:15,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/85939.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |