一种闪存存储系统及其读写、删除方法_5

文档序号:8319097阅读:来源:国知局
所述缓存元数据记录表中,所述物理存储块具有多个,多个物理存储块分别与以所述后端闪存地址为基准的连续多个后端闪存地址相对应; 所述缓存元数据记录表还用于存储与物理存储块对应的物理存储块有效标志位,在物理存储块存储数据之前对应的物理存储块有效标志位的值被置为非有效值,在物理存储块存储数据之后对应的物理存储块有效标志位的值被置为有效值; 所述缓存元数据状态表用于存储元数据表地址、占用标志位和空标志位之间的对应关系,所述占用标志位的值包括分别表示所述元数据表地址对应的表项被占用和没有被占用的占用值和非占用值,所述空标志位的值包括分别表示所述元数据表地址中的物理存储块被写入数据和没有被写入数据的非空值和空值; 在所述步骤S3与步骤S4之间,还包括如下步骤: S3.1,所述主控模块读取所述缓存元数据记录表,判断所述第一元数据表地址对应的占用标志位的值是否为占用值,若是则等待,否则执行步骤S3.2 ; S3.2,所述主控模块判断所述第一元数据表地址对应的空标志位的值是否为非空值,若是则执行步骤S4 ; 在所述步骤S6中,还包括如下步骤: S6.1,判断所述缓存元数据记录表中,与所述第一后端闪存地址对应的物理存储块的物理存储块有效标识的值是否为有效值; S6.2,若是有效值则执行回收物理存储块步骤,并执行步骤S6.4 ; S6.3,若不是有效值则将对应的物理存储块有效标识的值设为有效值,并执行步骤S6.4 ; S6.4,将所述第一物理存储块写入所述缓存元数据记录表的对应位置。
5.如权利要求2所述的闪存存储系统的写数据方法,其特征是: 在步骤S6和步骤S7后,从所述空闲物理块FIFO中为所述第一写入逻辑存储块分配新的物理存储块。
6.—种闪存存储系统的读数据方法,其特征是,所述闪存存储系统包括缓存、主控模块、缓存元数据记录表和读映射表;其中,所述读映射表用于存储在缓存中读出逻辑存储块与物理存储块的对应关系,所述缓存元数据记录表用于存储元数据表地址、物理存储块和后端闪存地址之间的对应关系;所述闪存存储系统的读数据方法包括如下步骤: SI,所述主控模块接收前端应用发出的将第一后端闪存地址的数据写入第一读出逻辑存储块中的命令; S2,所述主控模块对所述第一后端闪存地址进行计算,获得与所述第一后端闪存地址对应的第一元数据表地址; S3,所述主控模块读取所述缓存元数据记录表,获取与所述第一元数据表地址对应的当前后端闪存地址; S4,所述主控模块判断所述第一后端闪存地址与当前后端闪存地址是否相同; S5,若所述第一后端闪存地址与所述当前后端闪存地址相同,则将所述缓存元数据记录表中与所述第一后端闪存地址对应的当前物理存储块写入所述读映射表中且与所述第一读出逻辑存储块相对应; S6,若所述第一后端闪存地址与所述当前后端闪存地址不同,则将所述缓存元数据记录表中与所述当前后端闪存地址对应的当前物理存储块的数据存储到后端闪存的当前后端闪存地址中,并将所述第一后端闪存地址和新的物理存储块分别替代所述当前后端闪存地址和当前物理存储块,并将所述新的物理存储块写入所述读映射表中且与所述第一读出逻辑存储块相对应。
7.如权利要求6所述的闪存存储系统的读数据方法,其特征是, 所述闪存存储系统还包括引用计数表、空闲物理块FIFO和回收模块,所述空闲物理块FIFO用于存放所述缓存中空闲的物理存储块,所述计数表用于存储所述物理存储块与对应的引用次数,当所述空闲物理块FIFO将空闲的物理存储块分配出去时,将分配出去的物理存储块的引用次数设置为第一引用次数值;还包括回收物理存储块步骤: 在步骤S5中,当所述第一后端闪存地址对应的当前物理存储块写入所述读映射表中后,还包括如下步骤: 55.1,将与所述第一后端闪存地址对应的当前物理存储块的引用次数增加设定引用次数,并将所述读映射表中与所述第一读出逻辑存储块对应的旧的物理存储块的引用次数减所述设定引用次数; 在步骤S6中,将所述新的物理存储块写入所述读映射表中后,还包括如下步骤: 56.1,将所述新的物理存储块的引用次数增加设定引用次数,并将所述读映射表中与所述第一读出逻辑存储块对应的旧的物理存储块的引用次数减所述设定引用次数; 对于替换和被替换的物理存储块,读取所述引用计数表中物理存储块的引用次数,若物理存储块的引用次数大于所述第一引用次数值,则将对应的物理存储块的引用次数减设定引用次数,若物理存储块的引用次数等于第一引用次数值,则所述回收模块将对应的物理存储块写入所述空闲物理块FIFO中。
8.如权利要求7所述的闪存存储系统的读数据方法,其特征是,所述闪存存储系统还包括缓存元数据状态表; 所述缓存元数据记录表中,所述物理存储块具有多个,多个物理存储块分别与以所述后端闪存地址为基准的连续多个后端闪存地址相对应; 所述缓存元数据记录表还用于存储与物理存储块对应的物理存储块有效标志位,在物理存储块存储数据之前对应的物理存储块有效标志位的值被置为非有效值,在物理存储块存储数据之后对应的物理存储块有效标志位的值被置为有效值; 所述缓存元数据状态表用于存储元数据表地址、占用标志位和空标志位之间的对应关系,所述占用标志位的值包括分别表示所述元数据表地址对应的表项被占用和没有被占用的占用值和非占用值,所述空标志位的值包括分别表示所述元数据表地址中的物理存储块被写入数据和没有被写入数据的非空值和空值; 在所述步骤S2与步骤S3之间,还包括如下步骤: S3.1,所述主控模块读取所述缓存元数据记录表,判断所述第一元数据表地址对应的占用标志位的值是否为占用值,若是则等待,否则执行步骤S3.2 ; S3.2,所述主控模块判断所述第一元数据表地址对应的空标志位的值是否为非空值,若是则执行步骤S3 ; 在所述步骤S5中,还包括如下步骤: S5.1,判断所述缓存元数据记录表中,与所述第一后端闪存地址对应的物理存储块的物理存储块有效标识的值是否为有效值; S5.2,若是有效值则执行回收物理存储块步骤; S5.3,若不是有效值则将对应的物理存储块有效标识的值设为有效值。
9.一种闪存存储系统的删除数据方法,其特征是,所述闪存存储系统包括缓存、主控模块和缓存元数据记录表;其中,所述缓存元数据记录表用于存储元数据表地址、物理存储块和后端闪存地址之间的对应关系;所述闪存存储系统的删除数据方法包括如下步骤: SI,所述主控模块接收前端应用发出的删除第一后端闪存地址的数据的命令; S2,所述主控模块对所述第一后端闪存地址进行计算,获得与所述第一后端闪存地址对应的第一元数据表地址; S3,所述主控模块读取所述缓存元数据记录表,获取与所述第一元数据表地址对应的当前后端闪存地址; S4,所述主控模块判断所述第一后端闪存地址与当前后端闪存地址是否相同; S5,若所述第一后端闪存地址与所述当前后端闪存地址相同,则将当前后端闪存地址对应的表项删除,并执行步骤S7 ; S6,若所述第一后端闪存地址与所述当前后端闪存地址不同,则执行步骤S7 ; S7,将所述删除第一后端闪存地址的数据的命令发送到后端闪存。
10.—种闪存存储系统,其特征是,包括缓存、主控模块、缓存元数据记录表、读映射表和写映射表;其中,所述写映射表用于存储在缓存中写入逻辑存储块与物理存储块的对应关系,所述读映射表用于存储在缓存中读出逻辑存储块与物理存储块的对应关系,所述缓存元数据记录表用于存储元数据表地址、物理存储块和后端闪存地址之间的对应关系; 所述主控模块用于接收前端应用发出的将第一写入逻辑存储块中的数据写入第一后端闪存地址的命令; 所述主控模块用于读取所述写映射表,获取与所述第一写入逻辑存储块对应的所述缓存中的第一物理存储块; 所述主控模块用于对所述第一后端闪存地址进行计算,获得与所述第一后端闪存地址对应的第一元数据表地址; 所述主控模块用于读取所述缓存元数据记录表,获取与所述第一元数据表地址对应的当肖U后端闪存地址; 所述主控模块用于判断所述第一后端闪存地址与当前后端闪存地址是否相同,若所述第一后端闪存地址与所述当前后端闪存地址相同,则将所述第一物理存储块替换所述缓存元数据记录表中与所述当前后端闪存地址对应的当前物理存储块;若所述第一后端闪存地址与所述当前后端闪存地址不同,则将所述缓存元数据记录表中与所述当前后端闪存地址对应的当前物理存储块的数据存储到后端闪存的当前后端闪存地址中,并将所述第一后端闪存地址和第一物理存储块分别替代所述当前后端闪存地址和当前物理存储块; 所述主控模块用于接收前端应用发出的将第一后端闪存地址的数据写入第一读出逻辑存储块中的命令; 所述主控模块用于对所述第一后端闪存地址进行计算,获得与所述第一后端闪存地址对应的第一元数据表地址; 所述主控模块用于读取所述缓存元数据记录表,获取与所述第一元数据表地址对应的当肖U后端闪存地址; 所述主控模块用于判断所述第一后端闪存地址与当前后端闪存地址是否相同;若所述第一后端闪存地址与所述当前后端闪存地址相同,则将所述缓存元数据记录表中与所述第一后端闪存地址对应的当前物理存储块写入所述读映射表中且与所述第一读出逻辑存储块相对应;若所述第一后端闪存地址与所述当前后端闪存地址不同,则将所述缓存元数据记录表中与所述当前后端闪存地址对应的当前物理存储块的数据存储到后端闪存的当前后端闪存地址中,并将所述第一后端闪存地址和新的物理存储块分别替代所述当前后端闪存地址和当前物理存储块,并将所述新的物理存储块写入所述读映射表中且与所述第一读出逻辑存储块相对应。
11.如权利要求10所述的闪存存储系统,其特征是, 所述闪存存储系统还包括引用计数表、空闲物理块FIFO和回收模块,所述空闲物理块FIFO用于存放所述缓存中空闲的物理存储块,所述计数表用于存储所述物理存储块与对应的引用次数,当所述空闲物理块FIFO将空闲的物理存储块分配出去时,将分配出去的物理存储块的引用次数设置为第一引用次数值; 当所述第一后端闪存地址对应的当前物理存储块写入所述读映射表中后,将与所述第一后端闪存地址对应的当前物理存储块的引用次数增加设定引用次数,并将所述读映射表中与所述第一读出逻辑存储块对应的旧的物理存储块的引用次数减所述设定引用次数; 将所述新的物理存储块写入所述读映射表中后,将所述新的物理存储块的引用次数增加设定引用次数,并将所述读映射表中与所述第一读出逻辑存储块对应的旧的物理存储块的引用次数减所述设定引用次数; 对于替换和被替换的物理存储块,读取所述引用计数表中物理存储块的引用次数,若物理存储块的引用次数大于所述第一引用次数值,则将对应的物理存储块的引用次数减设定引用次数,若物理存储块的引用次数等于第一引用次数值,则所述回收模块将对应的物理存储块写入所述空闲物理块FIFO中。
12.如权利要求10所述的闪存存储系统,其特征是,所述缓存元数据记录表的一个表项中具有四个物理存储块,每个物理存储块的大小为4KB。
【专利摘要】本发明公开了一种闪存存储系统及其读写、删除方法,闪存存储系统包括缓存、主控模块、缓存元数据记录表、读映射表和写映射表,所述写映射表用于存储在缓存中写入逻辑存储块与物理存储块的对应关系,所述读映射表用于存储在缓存中读出逻辑存储块与物理存储块的对应关系,所述缓存元数据记录表用于存储元数据表地址、物理存储块和后端闪存地址之间的对应关系。本闪存存储系统,可以减少对后端闪存的不必要写入或读出,实现读写数据通路上的零拷贝,消除不必要的中间拷贝过程,从而提高读写效率;并且可以使前端应用的读写访问与后端闪存大小相匹配。
【IPC分类】G06F12-06, G06F13-16
【公开号】CN104636285
【申请号】CN201510056206
【发明人】李超, 丁杰, 周文, 刘建伟
【申请人】北京麓柏科技有限公司
【公开日】2015年5月20日
【申请日】2015年2月3日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1