存储器资源管理方法和装置的制造方法_3

文档序号:9910942阅读:来源:国知局
被占用,当USE域的Ibit标记为I时,表示该缓存单元未被占用;另Ibit为AGE域,用来管理对应的USE域,用户可以根据请求发出到响应返回的估计时间来配置AGE域对应的缓存单元回收周期(其中,缓存单元回收周期的配置值一般比最大估计值大),当AGE域的Ibi t标记为I时且USE域的Ibi t标记为I时,表示该缓存单元未被占用且已经过O个缓存单元回收周期,当AGE域的Ibit标记为I时且USE域的Ibit标记为O,表示该缓存单元已被占用且已经过O个缓存单元回收周期;当AGE域的Ibit标记为O时且USE域的Ibit标记为0,表示该缓存单元已经过I个缓存单元回收周期;当下个缓存单元回收周期到来时,如果该缓存单元还未被正常回收,则强制回收该缓存单元,并置AGE域的Ibi t标记为I,USE域的Ibit标记为I。
[0063]再例如:预先设置的缓存单元寿命周期数为6个缓存单元回收周期,也即当某一个缓存单元被占用6个缓存单元回收周期后,则强制收回该缓存单元。此时的AGE域可以使用3比特的指示信息,且此时f设置为I,当AGE域的值为000时,表示已经过O个缓存单元回收周期,当AGE域的值为100时,表示已经过I个缓存单元回收周期,当AGE域的值为010时,表示已经过2个缓存单元回收周期,当AGE域的值为110时,表示已经过3个缓存单元回收周期,当AGE域的值为001时,表示已经过4个缓存单元回收周期,当AGE域的值为101时,表示已经过5个缓存单元回收周期,当AGE域的值为011时,表示已经过6个缓存单元回收周期。
[0064]可选的,继续按照上述的例子,还可以将f设置为2,当AGE域的值为000时,表示已经过O个缓存单元回收周期,当AGE域的值为010时,表示已经过2个缓存单元回收周期,当AGE域的值为001时,表示已经过4个缓存单元回收周期,当AGE域的值为011时,表示已经过6个缓存单元回收周期。
[0065]从上述两种方式可以看出,如果系统预设的缓存单元寿命周期数较长时,如果使用较小的f,需要执行较长的轮数才可以回收该缓存单元,比如上述例子中f为I时,需使用6轮;而如果使用较大的f,需要执行较短的轮数便可以回收该缓存单元,比如上述例子中f为2时,只需使用3轮,从而可以有效提高缓存单元的有效利用。
[0066]继续按照上述的例子,使用3bit表示AGE域,且f为2,也即第一指示信息用3bit表示,第二指示信息用Ibit表示,采用4bit的bitmap来管理缓存单元,并且当缓存单元回收周期到达时,若AGE域中的占用的缓存单元回收周期表示已占用6个缓存单元回收周期时,将该缓存单元回收。
[0067]4bit的bitmap中,Ibit为USE域,其与现有bitmap方案一致,当USE域的Ibit标记为O时,表示该缓存单元已被占用,当USE域的Ibit标记为I时,表示该缓存单元未被占用;另3bit为AGE域,用来管理对应的USE域,当AGE域的3bit标记为000时且USE域的Ibit标记为I时,表示该缓存单元未被占用且已经过O个缓存单元回收周期,当AGE域的3bit标记为000时且USE域的Ibit标记为0,表示该缓存单元已被占用且已经过O个缓存单元回收周期;当AGE域的3bit标记为010时且USE域的Ibit标记为0,表示该缓存单元已经过2个缓存单元回收周期;当AGE域的3bit标记为010时且USE域的Ibit标记为0,表示该缓存单元已经过2个缓存单元回收周期;当AGE域的3bit标记为001时且USE域的Ibit标记为0,表示该缓存单元已经过4个缓存单元回收周期;当AGE域的3bit标记为011时且USE域的Ibit标记为O,表示该缓存单元已经过6个缓存单元回收周期;当下个缓存单元回收周期到来时,如果该缓存单元还未被正常回收,则强制回收该缓存单元,并置AGE域的3bit标记为000,USE域的Ibit标记为I。
[0068]值得注意的是,上述各个例子中,AGE域赋予的各值只是一种举例,且各个值所代表的含义也只是一种举例,本发明不对其加以限制。为了更清楚的表达本发明的思想,本实施例中按照上述例子中AGE域赋予的值以及各值的意义进行说明。
[0069]图5所示为缓存单元回收周期的示意图,其中缓存单元回收周期为lms,也即每Ims利用本发明的方法检测一次缓存单元中是否有可被回收的缓存单元。
[0070]确定可回收的缓存单元的过程是:图6所示为缓存单元回收周期到来时的bitmap表处理的示意图,如图6所示,缓存地址表示缓存单元的地址,当缓存单元回收周期到来时(即计数器值达到配置的缓存单元回收周期时,值得注意的是,此计数器循环计数,产生周期性的缓存单元回收标志),假设第一个Ims到达时候,扫描所有USE域,如果某个缓存单元对应的USE域对应的bit位标记为O且该缓存单元对应的AGE域对应bit标记为1(表示该缓存单元被占用,且已被占用O个缓存单元回收周期),则将该缓存单元的AGE域对应的bit位标记为0(表示该缓存单元被占用,且已被占用I个缓存单元回收周期),以在下一个缓存单元回收周期到达时,可回收该缓存单元,例如图6中缓存地址为O的缓存单元;如果USE域某个缓存单元对应的bit为标记为O且该缓存单元对应的AGE域对应的bit位标记为0(表示该缓存单元已被占用,且已被占用I个缓存单元回收周期),则回收该缓存单元以及回收该缓存单元对应的缓存地址,并将该缓存单元的USE域对应的bit位标记为I,将AGE域对应的bit位标记为I (表示该缓存单元未被占用),例如图6中缓存地址为3的缓存单元。本例中,一个被占用的缓存单元,如果一直不被释放,其最多在两个缓存单元回收周期内就会被强制释放,第一个缓存单元回收周期AGE域被标记为I,如果在第二个老化周期到来时还没有被正常释放,则第二个缓存单元回收周期时被强制释放。
[0071]步骤102、回收可回收的缓存单元。
[0072]进一步的,如果一个缓存单元对应的AGE域被标记为O或I,但接收到了缓存单元回收指令,该缓存单元回收指令中携带待回收的缓存单元对应的地址,则按照正常的回收流程进行处理,也即,读出待回收的缓存单元对应的地址对应的缓存单元中的数据,并且将回收地址对应的缓存单元对应的USE域标记为I,AGE域标记为I。
[0073]图7所示为接收到缓存单元回收指令后的处理示意图,如图7所示,当缓存地址为3的缓存单元对应的USE域为O,AGE域为O时,且下一个缓存单元回收周期还未到达,此时接收到缓存单元回收指令,且该缓存单元回收指令中携带的缓存单元对应的缓存地址为3,则将缓存地址为3的缓存单元中存储的数据读出,并将缓存地址为3的缓存单元对应的USE域变更为I,AGE域变更为I,从而释放缓存地址为3的缓存单元,以让其他命令继续使用。
[0074]可选的,在使用缓存单元之前,还需对缓存单元对应的USE域和AGE域进行初始化,也即,将各个缓存单元对应的第一指示信息标记为缓存单元未被占用,将各个缓存单元对应的第二指示信息标记为缓存单元已被占用O个缓存单元回收周期。图8所示为初始化的示意图,对USE域和AGE域初始化时,只需将USE域及AGE域均标记为I即可。
[0075]当接收到分配缓存单元的请求时,只需将分配的缓存单元对应的USE域的标记从I变更为0,如图9所示,假设系统确定将分配的缓存单元为缓存地址为3对应的缓存单元,则将该缓存单元对应的USE域的标记从I变更为O。分配后的处理方法与现有技术相同,此处不再赘述。
[0076]本实施例提供的存储器资源管理方法,首先根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,所述第一指示信息和所述第二指示信息均由至少一个比特组成,所述第一指示信息表示所述缓存单元是否被占用,所述第二指示信息表示所述缓存单元已被占用的缓存单元回收周期数,进而,回收所述可回收的缓存单元。其中,会设置一缓存单元回收周期数,当某个缓存单元被占用的时间达到预设
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1