发明名称 NAND闪存的缓存系统及缓存方法
摘要 本发明公开了一种NAND闪存的缓存系统,包括:两级哈希存储模块101,读写接口模块104,页数据缓存组织模块102和块数据缓存组织模块103,所述页数据缓存组织模块102和块数据缓存组织模块103均连接所述两级哈希存储模块101和读写接口模块104,所述两级哈希存储模块101用于记录存储在缓存中的数据,所述页数据缓存组织模块102用于组织缓存中页数据缓存队列,所述块数据缓存组织模块103用于组织缓存中块数据缓存队列,所述页数据缓存组织模块102和块数据缓存组织模块103通过所述读写接口模块104读写闪存中的数据。本发明增强了闪存缓存系统对文件系统的适应性和可用性。
申请公布号 CN102012873B 申请公布日期 2012.09.05
申请号 CN201010564892.X 申请日期 2010.11.24
申请人 清华大学 发明人 胡事民;白石
分类号 G06F12/08(2006.01)I 主分类号 G06F12/08(2006.01)I
代理机构 北京路浩知识产权代理有限公司 11002 代理人 王莹
主权项 一种NAND闪存的缓存系统,其特征在于,包括:两级哈希存储模块(101),读写接口模块(104),页数据缓存组织模块(102)和块数据缓存组织模块(103),所述页数据缓存组织模块(102)和块数据缓存组织模块(103)均连接所述两级哈希存储模块(101)和读写接口模块(104),所述两级哈希存储模块(101)用于记录数据在缓存中的存储位置信息,包括:第一级哈希存储模块,用于记录以块数据为单元的数据在缓存中的存储位置信息;第二级哈希存储模块,用于记录以页数据为单元的数据在缓存中的存储位置信息,所述页数据缓存组织模块(102)用于组织缓存中页数据缓存队列,将页数据缓存队列分成两个部分,其中第一个部分全部存储的是脏页数据,第二个部分是干净页数据和脏页数据的混合区域,所述页数据缓存模块(102)通过读写接口模块(104)从闪存中装入以页为单位的数据到缓存:当闪存中的数据被改写时,将该数据所在的脏页数据插入到所述页数据缓存队列的第一部分的最前端,所述页数据缓存队列中其它页数据相对位置不变,整体向队尾移动,所述页数据缓存队列的第一部分只存储脏页数据;当缓存中的干净数据被改写时,页数据缓存队列中对应的干净页数据转变成为脏数据,转变后的脏页数据被移动到页数据缓存队列第一部分的最前端,其它页数据相对位置不变,整体向队尾移动;当文件系统从闪存中读取页数据时,该干净页数据插入到页数据缓存队列的第二部分的最前端,其它页数据相对位置不变,整体向队尾移动;当缓存空间不足时,将页数据缓存队列队尾的页数据替换出缓存;所述块数据缓存组织模块(103)用于组织缓存中块数据缓存队列, 所述块数据缓存模块(103)通过读写接口模块(104)从闪存中装入以块为单位的数据到缓存:将块数据缓存队列分成两个部分,其中第一个部分全部存储的是具有至少一个脏页数据的脏块数据,第二个部分是干净块数据和脏块数据的混合区域,当块数据中的所有页数据都被装入到缓存中时,所述块数据被添加到所述块数据缓存队列中:若是脏块数据插入到块数据缓存队列中时,该脏块数据被插入到块数据缓存队列的第一部分的最前端,块数据缓存队列中的其它块数据相对位置不变,整体向队尾移动,所述块数据缓存队列的第一部分只存储脏块数据,脏块数据为至少包含一个脏页数据的块数据;若队列中的干净块数据转变成为脏块数据时,转变后的脏块数据被移动到块数据缓存队列的第一部分的最前端,其它块数据相对位置不变,整体向队尾移动;若是干净块数据插入到所述块数据缓存队列中时,该干净块数据被插入到所述块数据缓存队列第二部分的最前端,其它块数据相对位置不变,整体向队尾移动;当缓存空间不足时,将块数据缓存队列队尾的块数据替换出缓存。
地址 100084 北京市海淀区清华园北京100084-82信箱