缓存方法及控制系统的制作方法

文档序号:8430654阅读:261来源:国知局
缓存方法及控制系统的制作方法
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及一种缓存方法及控制系统。
【背景技术】
[0002]在计算机存储领域中,由于NAND Flash (资料储存型闪存)的读写是以page (页)为单位,而文件系统中的读写则以sector (扇区)为单位,因此NAND Flash与文件系统之间需要一种缓存系统,该缓存系统在延缓数据写入NAND Flash设备期间,还可以过滤掉短期数据。通常,采用的方法是将sector地址与page地址进行转换,完成缓存层;但是,该缓存层不能够对数据的先后顺序进行排序,因此采用该缓存层进行数据读写时,时效性较差。

【发明内容】

[0003]基于此,有必要针对传统的缓存层时效性较差的问题,提供一种缓存方法及控制系统。
[0004]一种缓存方法,包括如下步骤:
[0005]S100,控制缓存以页为单位组织为缓存层,并控制所述缓存层分为读缓存层和写缓存层;
[0006]S200,根据数据读取或写入的时间先后顺序,实时动态调整所述读缓存层中页缓存的排列顺序,以及所述写缓存层中页缓存的排列顺序。
[0007]在其中一个实施例中,步骤S200包括如下步骤:
[0008]当输入设备写入所述数据时,检测所述写缓存层中是否存在所述数据对应的页数据;
[0009]当所述写缓存层中存在所述数据对应的页数据时,控制所述数据直接存储至所述写缓存层中与所述页数据对应的页缓存中;
[0010]当所述写缓存层中不存在所述数据对应的页数据时,检测所述读缓存层;
[0011]当所述读缓存层中存在所述数据对应的页数据时,控制所述读缓存层中与所述页数据对应的页缓存移至所述写缓存层最前端;
[0012]当所述读缓存层中不存在所述数据对应的页数据时,检测所述缓存是否存在第一空缓存层;
[0013]当所述缓存存在所述第一空缓存层时,控制所述数据存储至所述第一空缓存层中;
[0014]当所述缓存不存在所述第一空缓存层时,控制所述读缓存层中最末端的页缓存作为第二空缓存层,并控制所述数据存储至所述第二空缓存层。
[0015]较佳地,还包括如下步骤:
[0016]实时检测所述写缓存层中的页缓存数目;
[0017]当所述写缓存层中的页缓存数目大于第一预设值时,控制所述写缓存层中最末端的页缓存移至Nand Flash中,并控制所述写缓存层中最末端的页缓存数据存储至所述读缓存层,直至所述写缓存层中的页缓存数目小于或等于所述第一预设值。
[0018]作为一种可实施方式,步骤S200还包括如下步骤:
[0019]当输出设备读取所述数据时,检测所述写缓存层中是否存在所述数据对应的页数据;
[0020]当所述写缓存层中存在所述数据对应的页数据时,控制所述输出设备直接读取所述数据对应的页数据;
[0021]当所述写缓存层中不存在所述数据对应的页数据时,检测所述读缓存层;
[0022]当所述读缓存层中存在所述数据对应的页数据时,控制与所述页数据对应的页缓存移至所述读缓存层的最前端;
[0023]当所述读缓存层中不存在所述数据对应的页数据时,检测所述缓存是否存在第三空缓存层;
[0024]当所述缓存存在所述第三空缓存层时,控制所述数据存移至所述第三空缓存层;
[0025]当所述缓存不存在所述第三空缓存层时,控制所述读缓存层中最末端的页缓存作为第四空缓存层,并控制所述数据存移至所述第四空缓存层。
[0026]相应的,为实现上述缓存方法,本发明还提供了一种缓存控制系统,包括第一控制模块和第二控制模块,其中:
[0027]所述第一控制模块,用于控制缓存以页为单位组织为缓存层,并将所述缓存层分为读缓存层和写缓存层;
[0028]所述第二控制模块,用于根据数据读取或写入的时间先后顺序,实时动态调整所述读缓存层中页缓存的排列顺序,以及所述写缓存层中页缓存的排列顺序。
[0029]在其中一个实施例中,所述第二控制模块包括第一检测单元、第一控制单元、第二检测单元、第二控制单元、第三检测单元、第三控制单元和第四控制单元,其中:
[0030]所述第一检测单元,用于当输入设备写入所述数据时,检测所述写缓存层中是否存在所述数据对应的页数据;
[0031]所述第一控制单元,用于当所述写缓存层中存在所述数据对应的页数据时,控制所述数据直接存储至所述写缓存层中与所述页数据对应的页缓存中;
[0032]所述第二检测单元,用于当所述写缓存层中不存在所述数据对应的页数据时,检测所述读缓存层;
[0033]所述第二控制单元,用于当所述读缓存层中存在所述数据对应的页数据时,控制所述读缓存层中与所述页数据对应的页缓存移至所述写缓存层最前端;
[0034]所述第三检测单元,用于当所述读缓存层中不存在所述数据对应的页数据时,检测所述缓存是否存在第一空缓存层;
[0035]所述第三控制单元,用于当所述缓存存在所述第一空缓存层时,控制所述数据存储至所述第一空缓存层中;
[0036]所述第四控制单元,用于当所述缓存不存在所述第一空缓存层时,控制所述读缓存层中最末端的页缓存作为第二空缓存层,并控制所述数据存储至所述第二空缓存层。
[0037]较佳地,还包括第一检测模块和第三控制模块,其中:
[0038]所述第一检测模块,用于实时检测所述写缓存层中的页缓存数目;
[0039]所述第三控制模块,用于当所述写缓存层中的页缓存数目大于第一预设值时,控制所述写缓存层中最末端的页缓存移至Nand Flash中,并控制所述写缓存层中最末端的页缓存数据存储至所述读缓存层,直至所述写缓存层中的页缓存数目小于或等于所述第一预设值。
[0040]作为一种可实施方式,所述第二控制模块还包括第一检测子单元、第一控制子单元、第二检测子单元、第二控制子单元、第三检测子单元、第三控制子单元和第四控制子单元,其中:
[0041]所述第一检测子单元,用于当输出设备读取所述数据时,检测所述写缓存层中是否存在所述数据对应的页数据;
[0042]所述第一控制子单元,用于当所述写缓存层中存在所述数据对应的页数据时,控制所述输出设备直接读取所述数据对应的页数据;
[0043]所述第二检测子单元,用于当所述写缓存层中不存在所述数据对应的页数据时,检测所述读缓存层;
[0044]所述第二控制子单元,用于当所述读缓存层中存在所述页数据对应的页数据时,控制与所述数据对应的页缓存移至所述读缓存层的最前端;
[0045]所述第三检测子单元,用于当所述读缓存层中不存在所述数据对应的页数据时,检测所述缓存是否存在第三空缓存层;
[0046]所述第三控制子单元,用于当所述缓存存在所述第三空缓存层时,控制所述数据存移至所述第三空缓存层;
[0047]所述第四控制子单元,用于当所述缓存不存在所述第三空缓存层时,控制所述读缓存层中最末端的页缓存作为第四空缓存层,并控制所述数据存移至所述第四空缓存层。
[0048]本发明提供了一种缓存方法及控制系统,其中缓存方法为:将缓存以页为单位组织成缓存层,将该缓存层分为读缓存层和写缓存层,并根据数据读取或写入的时间先后顺序,实时动态调整读缓存层中的页缓存和写缓存层中的页缓存的排列顺序。其通过共用读缓存层和写缓存层,并实时动态调整读缓存层中的页缓存和写缓存层中的页缓存的排列顺序,提高了缓存的命中率,有效地解决了传统的缓存层时效性较差的问题。
【附图说明】
[0049]图1为缓存方法流程图;
[0050]图2为缓存方法一具体实施例示意图;
[0051]图3为缓存方法另一具体实施例示意图;
[0052]图4为缓存方法又一具体实施例示意图;
[0053]图5为缓存控制系统一具体实施例
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1