数据保护方法、数据保护装置以及固态硬盘存储系统的制作方法_2

文档序号:9708692阅读:来源:国知局
[0022]本发明实施例所提供的数据保护方法及装置可运用于图1所示的存储系统10中。如图1所示,存储系统10例如可以包括软件部分:上层应用(applicat1n) 101、多业务适配系统102、闪存转换层(FTL)103、底层驱动(low level driver) 104,以及硬件部分:固件(firmware) 105、易失性存储器106以及非易失性存储器107。易失性存储器106例如可以是随机存取存储器(Random-Access Memory,简称RAM),非易失性存储器107例如可以是与非门闪存存储器(NAND flash)。
[0023]其中,闪存转换层103位于系统底层驱动104和上层多业务适配系统102之间,负责逻辑块映射表的建立和维护,实现磨损均衡,和垃圾回收等。逻辑块映射表将来自主机空间的逻辑块地址(Logical Block Address,简称LBA),转换为物理与非门闪存存储器空间的物理块地址(Physical Block Address,简称 PBA)。
[0024]多业务适配系统102主要用于完成与上层应用101之间输出和输入(1/0)的整合,使得在闪存转换层103的写请求能够在块内连续,从而可以进行块映射,减少了映射表的大小。多业务适配系统102例如可以为腾讯自研的多业务适配系统TSSD,但是,需要说明的是,只要是可以保证写请求能够在块内连续,也就是能够保证块内顺序写的多业务适配系统均可用于本发明,本发明的【具体实施方式】并不以此为限。
[0025]底层驱动104负责闪存转换层103与固件105之间的交互。
[0026]为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0027]第一实施例
[0028]图2是本发明第一实施例中的数据保护方法的流程图。该方法应用于固态硬盘存储系统,在本发明实施例中,所述固态硬盘存储系统至少包括闪存转换层、易失性存储器以及非易失性存储器。
[0029]在本发明实施例中,首先对闪存转换层中的逻辑块层以块为单位进行条带化,每个条带中包括至少两个与用户数据对应的数据块以及一个校验块。其中,每个条带中的校验块中所对应的是该条带中其他数据块的奇偶校验值。每个条带的校验块是随机分布的,具体如何分布取决于闪存转换层。每个条带的大小相同。这里,条带的大小指的是条带中所包含的逻辑块的数目。优选的,每个条带包括8到16个逻辑块。每个逻辑块的大小一般在2KB至512KB之间,例如可以为2KB、4KB、8KB、16KB…。
[0030]与逻辑块对应的物理块分布在所述非易失性存储器中,逻辑块与物理块的之间的映射表-逻辑块映射表,由闪存转换层的建立和维护,存储在易失性存储器与非易失性存储器中。
[0031]请参照图2,本实施例所提供的方法主要包括以下步骤:
[0032]步骤S11,在所述易失性存储器中创建校验数据存储区,用于存储与所述校验块对应的校验数据。
[0033]于本发明的实施例中,易失性存储器中除了对逻辑块映射表进行存储外,还创建了一个校验数据存储区,用于专门存储与每个条带中的校验块相对应的校验数据。校验数据也是以块为单位进行存储。
[0034]步骤S12,当所述条带中的数据块所对应的数据发生更新时,根据更新后的数据,计算新的校验数据,将所述新的校验数据存储在所述易失性存储器的校验数据存储区。
[0035]具体的,每计算一个新的校验数据,就会将该新的校验数据按照时间顺序记录在所述易失性存储器的校验数据存储区中,从而保证数据的安全性。
[0036]当数据发生改变时,新的数据会被存储在一个“空闲”的物理块中,数据并不是在原物理块中进行更新,一旦数据被保存,原先的物理块会被标记为普通坏块,直到其被擦除,擦除命令则是当固态硬盘需要回收被标记为普通坏块的物理块时,由其垃圾回收进程触发。为了确保每次数据的安全性,每次在写完一个数据块的时候,就要重新计算检验块,同时,几乎是每写一个数据块,就要写同样容量的校验数据,写入数据放大了一倍。但是,在本发明实施例中,新的校验数据会被存储在易失性存储器的校验数据存储区中,而不是直接写在新的物理块中。
[0037]步骤S13,当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。
[0038]可以为新的校验数据的数目设定一个阈值,也就是设定预定数目,预定数目的设定可以根据所述条带的具体大小以及实际需求来设定,本发明的【具体实施方式】并不以预定数目的具体值为限定。
[0039]当新的校验数据被写入到与所述校验块具有映射关系的物理块中后,可以重新开始计数,当再次达到预定数目时,又可以将校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中,以此类推。
[0040]于本发明实施例中,只有当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,才将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中,这样可以减少对校验数据的频繁写入,减少了写放大的问题。
[0041]需要说明的是,在数据没有写满一个条带的情况下,例如,在数据存储时,数据的校验值也可以存储在校验数据存储区,当数据写满该条带的数据块时,也就是当与数据块具有映射关系的物理块中均写有数据时,才将校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。
[0042]进一步的,可以设定超时和掉电保护。在超时情况下,即使数据未写满一个条带,也可以将校验数据缓存区中所存储的最后一个校验数据写入与校验块具有映射关系的物理块中,达到数据保护的目的。在掉电的情况下,通过储能元件(超级电容或电池元件)为固态硬盘提供电能,借此可以将缓存在校验数据存储区的校验数据写到与校验块具有映射关系的物理块中。
[0043]相对于现有技术,本实施例提供的数据保护方法将新的校验数据存储在易失性存储器的校验数据存储区,并设置适当的预定数目,当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,才将所述校验数据存储区中所存储的最后一个校验数据写入与所述校验块具有映射关系的物理块中。相对于现有技术中每个逻辑块被修改都要生成校验块相比,可以大大减少对校验数据的修改,避免了对校验数据的频繁改写,从而在很大程度上可以解决现有技术中的写放大问题,提高整个固态硬盘的使用寿命,同时将校验数据缓存在校验数据存储区内,保证数据的安全性。
[0044]第二实施例
[0045]图3所述为本发明第二实施例提供的数据保护方法的流程图。请参照图3,所述方法可以包括:
[0046]步骤S21,在所述易失性存储器中创建校验数据存储区,用于存储与所述校验块对应的校验数据。
[0047]步骤S22,当与所述条带中的数据块具有映射关系的物理块发生损坏时,根据所述条带中其他的数据块与校验块将该数据块的数据恢复出来。
[0048]进一步的,当与所述条带中的数据块具有映射关系的物理块发生损坏时,可以将发生损坏的所述物理块标记为特殊坏块,被标记为特殊坏块的物理块不进入回收流程,当所述校验数据存储区中所存储的新的校验数据的数目达到预定数目时,将发生损坏的所述物理块标记为普通坏块,被标记为普通坏块的物理块进入回收流程。
[0049]步骤S23,将该数据块映射到新的物理块,将恢复后的数据写到新的物理块中。
[0050]步骤S24,根据更新后的物理块中的数据,计算新的校验数据。
[0051]步骤S25,将所述新的校验数据存储在所
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1