固态存储系统、装置及数据写入方法

文档序号:6386402阅读:209来源:国知局
专利名称:固态存储系统、装置及数据写入方法
技术领域
本发明涉及储存技术领域,尤其涉及一种固态存储系统、装置及数据写入方法。
背景技术
MLC(Mult1-Level Cell,多层单兀)Nand Flash 相对 SLC(Single-Level Cell,单层单元)Nand flash有更高的存储密度,在固态硬盘领域有着越来越广泛的应用。MLC NandFlash—个存储单元(memory cell)可以存储2bits的信息,这2bits分属于两个不同的page,这样的一组page叫couple pages,存低位比特的叫low page,存高位比特的叫uppage,它执行写有以下两个约束:l)Low page必须在up page之前被写入;2)Up page在写入过程中被打断,比如异常掉电,uppage的信息会丢失,而且它对应的low page的信息也可能会丢失,而low page不会影响其up page。现有技术通过额外提供备用电源或超级电容,当主电源断电时,由备用电源供电保证当前正在写的数据成功写入到Nand Flash中。但这种解决方式需要提供外部的硬件支持,增加了成本和硬件复杂性,综上可知,现有的固态存储数据的写入方法,在实际使用上显然存在不便与缺陷,所以有必要加以改进。

发明内容
针对上述的缺陷,本发明的目的在于提供一种固态存储系统、装置及数据写入方法,在不增加额外硬件成本的前提下恢复被破坏的数据。为了实现上述目的,本发明提供一种固态存储系统的数据写入方法,所述固态存储系统包括若干逻辑盘,所述方法包括:从每个所述逻辑盘分配至少一空闲逻辑块,用于接收并行数据,每个所述逻辑块包括若干逻辑页;将各个所述逻辑块中页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组用于储存一组并行数据,以及所述并行数据的校验信息;当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。根据本发明的数据写入方法,所述逻辑块的一个存储单元包括相邻的两个所述逻辑页,其中一个逻辑页用于存储低位数据,另一个逻辑页用于存储高位数据。根据本发明的数据写入方法,所述当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据步骤包括:当所述高位数据的写入将对应的低位数据破坏时,通过所述低位数据所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。根据本发明的数据写入方法,所述方法还包括:
若接收并行数据的各个逻辑块中存在所述用于存储高位数据且页号相同的逻辑页,则选择其中的一个所述逻辑页接收数据写入,并阻塞其它页号相同的所述逻辑页的写入请求。本发明还提供一种固态存储系统,包括若干逻辑盘,所述存储系统还包括:分配模块,用于从每个所述逻辑盘分配至少一空闲逻辑块,所述空闲逻辑块用于接收并行数据,每个所述逻辑块包括若干逻辑页;设置模块,用于将各个所述逻辑块中页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组用于储存一组并行数据,以及所述并行数据的校验信息;恢复模块,用于当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。根据本发明的固态存储系统,所述逻辑块的一个存储单元包括相邻的两个所述逻辑页,其中一个逻辑页用于存储低位数据,另一个逻辑页用于存储高位数据。根据本发明的固态存储系统,所述恢复模块进一步用于当所述高位数据的写入将对应的低位数据破坏时,通过所述低位数据所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。根据本发明的固态存储系统,所述系统还包括处理模块,用于所述系统接收并行数据的各个逻辑块中存在所述用于存储高位数据且页号相同的逻辑页时,选择其中的一个所述逻辑页接收数据写入,并阻塞其它页号相同的所述逻辑页的写入请求。本发明还提供一种包括如上所述系统的存储装置。本发明通过将固态存储系统中各个逻辑块的页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组可储存一组并行数据,以及该组并行数据的校验信息,当一个逻辑页中的数据被破坏时,系统可通过该逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复被破坏的数据。借此,本发明可在不增加额外硬件成本的前提下恢复被破坏的数据。


图1是本发明的固态存储系统的结构示意图;图2是本发明一实施例的固态硬盘系统的逻辑结构示意图;图3A是本发明一实施例的第一数据写入状态示意图;图3B是图3A所示实施例的第二数据写入状态示意图;图3C是图3A所示实施例的第三数据写入状态示意图;图4是本发明另一实施例的数据写入状态示意图;图5是本发明的数据写入方法流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参见图1,本发明提供了一种固态存储系统,该固态存储系统100可应用于固态存储装置,比如固态硬盘。该系统100的存储部分包括若干逻辑盘,并且系统100还包括分配模块10、设置模块20及恢复模块30,具体的:分配模块10,用于从每个所述逻辑盘分配至少一空闲逻辑块,所述空闲逻辑块用于接收并行数据,每个所述逻辑块包括若干逻辑页。每个逻辑盘通常包括空闲逻辑块和非空闲逻辑块,非空闲逻辑块表示已写入数据,空闲逻辑块表示允许写入数据。当收到写入数据命令时,分配模块10自动从逻辑盘中查找空闲的逻辑块,用于数据写入。设置模块20,用于将各个所述逻辑块中页号相同的所述逻辑页设为一个磁盘阵列组(RAID stripe),每个所述磁盘阵列组用于储存一组并行数据,以及所述并行数据的校验信息。需要说明的,各个数据的校验信息存储于单独的一个逻辑盘,而不与数据存储在一起,借此,某逻辑盘的数据被破坏时,其校验信息不会一同被破坏,便于后续的数据恢复。恢复模块30,用于当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。如前所述,对于同时写入的一组并行数据,数据的检验信息与数据分开储存,当逻辑盘中某逻辑页的数据被损坏时,系统100可通过同时写入的其它数据及校验信息计算恢复被损坏的数据。本发明通过软件计算方式恢复被破坏的数据,其不需要增加额外的硬件,具有较高的实用性。再参见图2,该实施例中,固态存储系统100包括四个逻辑盘,其中,逻辑盘LUO LU2用于存储数据,逻辑盘LU3则用于存储数据的检验信息。每个逻辑盘均包括BO和BI两个逻辑块,逻辑块的一个基本存储单元包括相邻的两个逻辑页,比如逻辑页PO (LO)和Pl (UO),其中一个逻辑页PO (LO)用于存储低位数据,另一个逻辑页Pl (UO)用于存储高位数据。当某逻辑块的高位数据的写入将对应的低位数据破坏时,通过所述低位数据所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。结合图4,逻辑盘LUNl中逻辑块BI的用于存储低位数据的逻辑页PO (LO)被未完成的Pl (UO)的写操作破坏,比如在写入Pl (UO)时突然断电。再次上电后,系统100可通过逻辑页PO(LO)所在的磁盘阵列组储存的其它数据以及校验信息计算恢复被破坏的数据,借此使固态存储系统100具有数据恢复能力。优选的是,本发明的固态存储系统100还包括处理模块40,用于接收并行数据的各个逻辑块中存在页号相同的高位数据的逻辑页时,选择其中的一个逻辑页接收数据写入,并阻塞其它页号相同的所述逻辑页的写入请求。需要说明的,上述阻塞处理仅对当前一组写入的数据有效,当下一组并行数据请求写入时,再重复上述判断,确定是写入还是阻塞。具体的实现过程如图3A 图3C所示,对于图3A,一组并行数据写入时,刚好写入到逻辑盘LUO LU3的存储高位数据的逻辑页Pl (UO),由于各盘的逻辑页号相同,所以选择其中的一个逻辑页(图中示出选择的为逻辑盘LUO的逻辑页Pl (UO))执行写入,其它相同页号的逻辑页被阻塞写入。图3B和图3C,分别示出了后续的写入过程,且后续的写入速度逐渐恢复到正常写入速度。本发明还提供一种包括如上所述系统100的固态存储装置,其采用上述阻塞写入的处理方法,可以保证在掉电时不会有相同页号的高位数据被同时破坏,进而确保不会有相同页号的低位数据被破坏,即,保证了每一个磁盘阵列组在系统掉电异常时,最多只有一个数据被破坏,借此可通过磁盘阵列组中未被破坏的数据及校验信息计算恢复被破坏的数据。参见图5,本发明提供了一种数据写入方法,其可以通过如图1所示的系统100实现,所述固态存储系统包括若干逻辑盘,所述方法包括:步骤S501,从每个所述逻辑盘分配至少一空闲逻辑块,用于接收并行数据,每个所述逻辑块包括若干逻辑页。每个逻辑盘通常包括空闲逻辑块和非空闲逻辑块,非空闲逻辑块表示已写入数据,空闲逻辑块表示允许写入数据。当收到写入数据命令时,分配模块10自动从逻辑盘中查找空闲的逻辑块,用于数据写入。进一步的,所述逻辑块的一个存储单元包括相邻的两个所述逻辑页,其中一个逻辑页用于存储低位数据,另一个逻辑页用于存储高位数据。步骤S502,将各个所述逻辑块中页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组用于储存一组并行数据,以及所述并行数据的校验信息。需要说明的,各个数据的校验信息存储于单独的一个逻辑盘,而不与数据存储在一起,借此,某逻辑盘的数据被破坏时,其校验信息不会一同被破坏,便于后续的数据恢复。步骤S503,当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。如前所述,对于同时写入的一组并行数据,数据的检验信息与数据分开储存,当逻辑盘中某逻辑页的数据被损坏时,系统100可通过同时写入的其它数据及校验信息计算恢复被损坏的数据。具体的,当所述高位数据的写入将对应的低位数据破坏时,通过所述低位数据所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。更好的,若接收并行数据的各个逻辑块中存在用于存储高位数据且页号相同的逻辑页,则选择其中的一个所述逻辑页接收数据写入,并阻塞其它页号相同的所述逻辑页的写入请求。具体的实现过程如图3A 图3C所示,对于图3A,一组并行数据写入时,刚好写入到逻辑盘LUO LU3的存储高位数据的逻辑页Pl (UO),由于各盘的逻辑页号相同,所以选择其中的一个逻辑页(图中示出选择的为逻辑盘LUO的逻辑页Pl (UO))执行写入,其它相同页号的逻辑页被阻塞写入。图3B和图3C,分别示出了后续的写入过程,且后续的写入速度逐渐恢复到正常写入速度。采用上述阻塞写入的处理方法,可以保证在掉电时不会有相同页号的高位数据被同时破坏,进而确保不会有相同页号的低位数据被破坏,即,保证了每一个磁盘阵列组在系统掉电异常时,最多只有一个数据被破坏,借此可通过磁盘阵列组中未被破坏的数据及校验信息计算恢复被破坏的数据。综上所述,本发明通过将固态存储系统中各个逻辑块的页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组可储存一组并行数据,以及该组并行数据的校验信息,当一个逻辑页中的数据被破坏时,系统可通过该逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复被破坏的数据。借此,本发明可在不增加额外硬件成本的前提下恢复被破坏的数据。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种固态存储系统的数据写入方法,所述固态存储系统包括若干逻辑盘,其特征在于,所述方法包括: 从每个所述逻辑盘分配至少一空闲逻辑块,用于接收并行数据,每个所述逻辑块包括若干逻辑页; 将各个所述逻辑块中页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组用于储存一组并行数据,以及所述并行数据的校验信息; 当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。
2.根据权利要求1所述的数据写入方法,其特征在于,所述逻辑块的一个存储单元包括相邻的两个所述逻辑页,其中一个逻辑页用于存储低位数据,另一个逻辑页用于存储高位数据。
3.根据权利要求2所述的数据写入方法,其特征在于,所述当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据步骤包括: 当所述高位数据的写入将对应的低位数据破坏时,通过所述低位数据所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。
4.根据权利要求2或3所述的数据写入方法,其特征在于,所述方法还包括: 若接收并行数据的各个逻辑块中存在所述用于存储高位数据且页号相同的逻辑页,则选择其中的一个所述逻辑页接收数据写入,并阻塞其它页号相同的所述逻辑页的写入请求。
5.一种固态存储系统,包括若干逻辑盘,其特征在于,所述存储系统还包括: 分配模块,用于从每个所述逻辑盘分配至少一空闲逻辑块,所述空闲逻辑块用于接收并行数据,每个所述逻辑块包括若干逻辑页; 设置模块,用于将各个所述逻辑块中页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组用于储存一组并行数据,以及所述并行数据的校验信息; 恢复模块,用于当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。
6.根据权利要求5所述的固态存储系统,其特征在于,所述逻辑块的一个存储单元包括相邻的两个所述逻辑页,其中一个逻辑页用于存储低位数据,另一个逻辑页用于存储高位数据。
7.根据权利要求6所述的固态存储系统,其特征在于,所述恢复模块进一步用于当所述高位数据的写入将对应的低位数据破坏时,通过所述低位数据所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。
8.根据权利要求6或7所述的固态存储系统,其特征在于,所述系统还包括处理模块,用于所述系统接收并行数据的各个逻辑块中存在所述用于存储高位数据且页号相同的逻辑页时,选择其中的一个所述逻辑页接收数据写入,并阻塞其它页号相同的所述逻辑页的写入请求。
9.一种包括如权利要求8所述系统的存储装置。
全文摘要
本发明适用于存储技术领域,提供了一种固态存储系统的数据写入方法,所述固态存储系统包括若干逻辑盘,所述方法包括从每个所述逻辑盘分配至少一空闲逻辑块,用于接收并行数据,每个所述逻辑块包括若干逻辑页;将各个所述逻辑块中页号相同的所述逻辑页设为一个磁盘阵列组,每个所述磁盘阵列组用于储存一组并行数据,以及所述并行数据的校验信息;当一个所述逻辑页中的数据被破坏时,通过所述逻辑页所在的磁盘阵列组储存的其它数据以及校验信息计算恢复所述被破坏的数据。本发明还提供一种实现上述方法的固态存储系统。借此,本发明在一个逻辑盘出错的情况下可以恢复该盘数据,且不需要增加额外的成本。
文档编号G06F3/06GK103092765SQ20121059158
公开日2013年5月8日 申请日期2012年12月31日 优先权日2012年12月31日
发明者李建, 徐伟华 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1