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

文档序号:9910942阅读:331来源:国知局
存储器资源管理方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术,尤其涉及一种存储器资源管理方法和装置。
【背景技术】
[0002]随着数据处理芯片规模越来越大,片上存储器越来越多,为了减小存储器的规模,在一些不需要全线程缓存的地方采用共享缓存来减少存储器资源,因此对共享缓存的资源管理就显得尤为重要。
[0003]图1所示为共享缓存的基本实现框图,如图1所示:当来自ATOM(—种可编程的处理器)的命令(比如读,写,加,减,查找,流控等等)进入输入处理模块后,输入处理模块解析该命令以确认该命令是否需要缓存数据,如果需要缓存数据则向缓存管理模块发出缓存申请,缓存管理模块对位图bitmap表进行查找,如果bitmap表中指示有空闲的缓存单元(也即,bitmap表中有标记为I的缓存单元),则分配一个空闲的缓存单元并将该缓存单元的缓存地址反馈给输入处理模块,此步骤中还需将分配的缓存单元对应的bitmap表中的指示标志为已被占用(也即将该缓存单元对应的bitmap表中的指示标志为O),如图2所示;输入处理模块根据返回的缓存地址将命令的线程标识(IDentity,简称为:ID)等不参与数据处理的随路信息存入共享缓存中,并将该缓存地址与命令一起送往命令处理模块进行数据处理,在整个处理过程中,命令的随路信息将始终保存在共享缓存中,命令处理结束后,命令处理模块将处理结果和缓存地址送往输出处理模块;输出处理模块根据缓存地址读出共享缓存中的随路信息并将缓存地址送往缓存管理模块进行缓存回收,进而将该缓存地址对应的b i tmap表中的指示标志为未被占用(也即将该缓存单元对应的b i tmap表中的指示标志为I ),如图1所示,最后输出处理模块将命令处理结果和缓存数据一起送出。
[0004]进一步的,数据处理模块中还包括先入先出(First Input First Output,简称为:FIFO)队列,交叉开关矩阵(Crossbar),调度程序(Scheduler)等,因此如果数据在数据处理模块的整个路径上发生错误检查和纠正Error Correcting Code,简称为:ECC)错误或是奇偶校验错误,会导致缓存地址以及整个命令的不可信,从而会导致命令丢失,使得无对应的缓存地址送往输出处理模块,进而缓存管理模块无法接收到输出处理模块送来的缓存地址,导致此缓存地址对应的缓存单元将一直被占用,这就造成了缓存单元的泄露。(直到系统复位或是bitmap初始化)。
[0005]这样随着系统运行时间变长,可用缓存空间由于缓存单元的泄漏必然会越来越小,进而造成系统带宽降低,性能下降。

【发明内容】

[0006]本发明实施例提供一种存储器资源管理方法和装置,以克服现有技术中由于资源的泄漏导致的资源会越来越小,进而造成系统带宽降低,性能下降的问题。
[0007]第一方面,本发明实施例提供一种存储器资源管理方法,包括:根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,第一指示信息和第二指示信息均由至少一个比特组成,第一指示信息表示缓存单元是否被占用,第二指示信息表示缓存单元已被占用的缓存单元回收周期数;回收可回收的缓存单元。
[0008]本实施例中,会设置一缓存单元回收周期数,当某个缓存单元被占用的时间达到预设的缓存单元回收周期数时,则将该缓存单元强制收回,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
[0009]在前述第一方面的一些实施例中,根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,包括:判断缓存单元对应的第一指示信息是否表示缓存单元被占用,若表示缓存单元被占用;则根据缓存单元对应的第二指示信息确定缓存单元是否已被占用η个缓存单元回收周期,其中,η为大于等于I的正整数,若是,则确定缓存单元为可回收的缓存单元。
[0010]本实施例中,不仅判断缓存单元是否被占用,而且判断缓存单元被占中的缓存单元回收周期数,当达到预设的缓存单元回收周期数时,即使该缓存单元被占用,也要强迫收回该缓存单元,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
[0011 ]进一步的,在前述第一方面的一些实施例中,所述方法还包括:若缓存单元被占用m个缓存单元回收周期,其中,m为小于等于η的正整数,则将缓存单元对应的第二指示信息变更为缓存单元已占用m+f个缓存单元回收周期,f为大于等于I的正整数,且m+f为小于等于η的正整数。
[0012]本实施例中,可以修改缓存单元被占用的缓存单元回收周期数,以使当该缓存单元被占用的缓存单元回收周期达到预设的缓存单元回收周期数时,会强迫收回该缓存单元,有效提高缓存单元的利用率,进而增加了系统带宽的利用率。
[0013]可选的,在前述第一方面的一些实施例中,回收可回收的缓存单元之后,还包括:将可回收的缓存单元对应的第一指示信息变更为未被占用,将可回收的缓存单元对应的第二指示信息变更为已被占用O个缓存单元回收周期。
[0014]可选的,在前述第一方面的一些实施例中,根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元之前,还包括:接收缓存单元回收指令,缓存单元回收指令中携带待回收的缓存单元对应的地址;
[0015]根据地址回收待回收的缓存单元。
[0016]本实施例中,还可以灵活运用本发明的方法,也即,在接收到缓存单元回收指令后,即可回收该缓存单元回收指令对应的缓存单元,从而提高缓存单元的利用率。
[0017]进一步的,在前述第一方面的一些实施例中,接收缓存单元回收指令之前,还包括:
[0018]将各个缓存单元对应的第一指示信息标记为缓存单元未被占用,将各个缓存单元对应的第二指示信息标记为缓存单元已被占用O个缓存单元回收周期。
[0019]本发明第二方面提供一种存储器资源管理装置,包括:
[0020]处理模块,用于根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元,其中,第一指示信息和第二指示信息均由至少一个比特组成,第一指示信息表示缓存单元是否被占用,第二指示信息表示缓存单元已被占用的缓存单元回收周期数;
[0021]回收模块,用于回收可回收的缓存单元。
[0022]进一步的,处理模块具体用于:
[0023]判断缓存单元对应的第一指示信息是否表示缓存单元被占用,
[0024]若表示缓存单元被占用;
[0025]则根据缓存单元对应的第二指示信息确定缓存单元是否已被占用η个缓存单元回收周期,其中,η为大于等于I的正整数,
[0026]若是,则确定缓存单元为可回收的缓存单元。
[0027]进一步的,处理模块,还用于判断缓存单元是否被占用m个缓存单元回收周期,其中,m为小于等于η的正整数,
[0028]若是,处理模块用于将缓存单元对应的第二指示信息变更为缓存单元已占用m+f个缓存单元回收周期,f为大于等于I的正整数,且m+f为小于等于η的正整数。
[0029]进一步的,处理模块,还用于在回收模块回收可回收的缓存单元之后,将可回收的缓存单元对应的第一指示信息变更为未被占用,将可回收的缓存单元对应的第二指示信息变更为已被占用O个缓存单元回收周期。
[0030]进一步的,还包括:接收模块,
[0031]接收模块用于在处理模块根据各个缓存单元对应的第一指示信息和第二指示信息确定可回收的缓存单元之前,接收缓存单元回收指令,缓存单元回收指令中携带待回收的缓存单元对应的地址;
[0032]处理模块还用于:根据地址回收待回收的缓存单元。
[0033]进一步的,处理模块还用于在接收模块接收缓存单元回收指令之前,将各个缓存单元对应的第一指示信息标记为缓存单元未被占用,将各个缓存单元对应的第二指示信息标记为缓存单元已被占用O个缓存单元回收周期
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1