固态硬盘的数据保护方法及固态硬盘与流程

文档序号:28207204发布日期:2021-12-28 19:04阅读:104来源:国知局
1.本发明涉及数据存储
技术领域
:,特别涉及一种固态硬盘的数据保护方法及固态硬盘。
背景技术
::2.固态硬盘(ssd,solidstatedrives)是用固态电子存储芯片制作的存储硬盘,主要由控制器,存储介质和缓存单元组成。目前最主流的固态硬盘采用闪存存储器(flashmemory)作为存储介质来存储数据,例如以nandflash为例的非易失性存储器。3.使用ssd存储数据时,需要用到ftl(flashtranslationlayer,闪存转换层)映射表,也叫l2p(logicaltophysicaltable,逻辑到物理映射表),用于记录主机逻辑空间地址到flash闪存物理地址的映射关系。l2p是一份以lba为索引,pba为内容的顺序表。4.以nandflash为主要的存储介质ssd,当在数据写入的过程中发生异常断电时,数据未被完全保存,此时l2p表未完全刷新,ssd重新上电后,读取的l2p表不包含最新存储的数据的映射关系,造成用户数据丢失的情况,或者多次读取的数据不一致的结果,因此极易出现编程错误,导致ssd当前正在写的页数据(page)的不稳定性。5.目前通常采用外置电容的方法来对ssd继续供电,保证在异常断电的情况下,提供足够的电量来支持数据写入ssd中。但是这样会导致由于另外增设外置电容而提升成本,且在电容电量耗尽后仍然无法保证数据的稳定性,甚至在外置电容出现问题后仍无法解决数据不稳定的问题。技术实现要素:6.鉴于上述问题,本发明的目的在于提供一种固态硬盘的数据保护方法及固态硬盘,以解决现有技术中存在的问题。7.根据本发明的一方面,提供一种固态硬盘的数据保护方法,所述固态硬盘包括闪存存储器,所述数据保护方法包括:8.获取固态硬盘异常掉电时所述闪存存储器正在接收的待处理数据;9.对所述待处理数据中的错误数据进行纠错处理得到纠错数据;10.将所述纠错数据复制到预设在所述闪存存储器内部的缓存保护区中作为备份数据;11.根据所述备份数据中的有效数据建立l2p表;以及12.将所述备份数据中的有效数据复制到所述闪存存储器中作为固态硬盘上电后的恢复数据,13.其中,所述有效数据为在所述纠错处理中出现的第一个无法纠错的数据之前的所有数据。14.可选地,所述错误数据包括多次读取结果不完全一致的数据。15.可选地,在所述待处理数据中基于每个物理页进行所述纠错处理,所述第一个无法纠错的数据是第一个无法纠错的物理页中的数据。16.可选地,通过errhandle错误处理检查工具对所述错误数据进行纠错处理。17.可选地,所述缓存保护区为所述闪存存储器内部的slc缓存区域。18.可选地,根据所述备份数据中的有效数据建立l2p表的步骤包括:19.从所述缓存保护区中读取所述备份数据;20.将所述备份数据中的所述无效数据舍弃,所述备份数据由所述有效数据和所述无效数据组成;21.以所述备份数据中的所述有效数据建立ssd上电后的待处理数据的l2p表。22.可选地,所述待处理数据位于第一物理块内,所述恢复数据位于第二物理块内,所述第一物理块与所述第二物理块为所述闪存存储器中的不同物理块。23.根据本发明的另一方面,提供一种固态硬盘,包括:24.控制器,与主机连接,用于与主机交换数据;25.闪存存储器,与所述控制器连接,存储所述主机的写数据,26.其中,所述闪存存储器包括缓存保护区,所述固态硬盘异常掉电时所述闪存存储器正在接收的待处理数据中的错误数据在进行纠错处理后得到的纠错数据被复制到所述缓存保护区中保存,并且所述缓存保护区中的所述备份数据中的有效数据用以建立l2p表,在建立l2p表之后,所述缓存保护区中的有效数据重新被复制到所述闪存存储器中作为固态硬盘上电后的恢复数据,所述有效数据为所述纠错数据中出现的第一个无法纠错的数据之前的所有数据。27.可选地,所述缓存保护区为所述闪存存储器内部的slc缓存区域。28.可选地,所述待处理数据与所述恢复数据位于所述闪存存储器的不同物理块中。29.本技术提供的固态硬盘的数据保护方法和固态硬盘,在固态硬盘上电重启后,先获取其在异常断电时闪存存储器正在接收的待处理数据,然后对其中的错误数据进行纠错处理,将其保存在缓存保护区中作为备份数据,以维持纠错数据的稳定性;同时,从缓存保护区中读取备份数据,舍弃无效数据,根据舍弃无效数据之后的有效数据建立l2p表,能保证数据的稳定性,最后再将缓存保护区中的有效数据复制到闪存存储器中,形成上电后的恢复数据。通过一系列的操作,将待处理数据中的不稳定数据丢弃,仅以稳定数据建立l2p表,保证l2p表的映射关系准确,且将数据保存在了缓存保护区,形成稳定的数据保护,同时维持了数据的一致性和稳定性。附图说明30.通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:31.图1示出了根据本发明实施例的固态硬盘的数据保护方法的流程图;32.图2示出了根据本发明实施例的固态硬盘的数据在闪存存储器中的存储示意图;33.图3示出了根据本发明实施例的固态硬盘在恢复上电后闪存存储器中第一物理块内的数据分布示意图;34.图4示出了根据本发明实施例的固态硬盘的数据保护方法的操作流程示意图。具体实施方式35.以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。36.以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。37.除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。38.下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。39.图1示出了根据本发明实施例的固态硬盘的数据保护方法的流程图。40.固态硬盘是用固态电子存储芯片制作的存储硬盘,本实施例的固态硬盘包括:控制器和存储介质。其采用闪存存储器作为存储介质来存储数据,同时采用控制器执行固态硬盘的数据保护方法。本实施例的数据保护方法包括以下流程:41.在步骤s101中,获取固态硬盘异常掉电时闪存存储器正在接收的待处理数据。42.固态硬盘在异常掉电时,闪存存储器正在接收的写数据会断开传输,在固态硬盘恢复上电后,要先恢复这部分掉电时写入的数据,将其掉电时正在接收的数据称为待处理数据,这部分数据保存在了闪存存储器的第一物理块中,待处理数据例如位于headblk(headblock)中。43.在步骤s102中,对待处理数据中的错误数据进行纠错处理得到纠错数据。44.当发生异常断电时,闪存存储器中正在写入的数据没有完全保存,那么由于映射关系的不完整导致多次读取数据的结果不一致(例如第一次读取正确,第二次读取错误),这样会出现指针指向的数据不一致,从而导致系统判断表错误,发生异常情况。所以在固态硬盘掉电时,数据存在不稳定性。本实施例中,对于headblk(ssd当前正在写的block)中的不稳定数据或错误数据要先进行错误处理,尽量恢复数据。那么,错误数据即包括多次读取结果不完全一致的数据,此处的读取并不是由用户进行的读取操作。本实施例中,确定错误数据时需要进行多次读取判断,避免由于仅读取一次造成错误数据的遗漏,保证数据结果的准确性。另外,在多次读取过程中,只要有一次的读取结果与断电前接收的数据不一致,那么就认为该数据为错误数据。例如当某一页的数据在第一次读取时为正确结果,而第二次读取时却显示错误结果,第三次乃至第n次读取时仍为正确结果,这样的数据也会被认为是错误数据,从而能确保保留下的数据中,指针每次指向的数据均为正确数据,使恢复数据更为精准。45.本步骤中,在待处理数据中基于每个物理页(page)进行纠错处理。通过errhandle等错误处理检查工具对待处理数据中的错误数据进行纠错处理,得到纠错数据。采用ssd内部提前存储好的纠错工具对数据进行纠错处理,使错误数据能得到及时快速的修复,提升修复速度和修复能力。46.在步骤s103中,将纠错数据复制到预设在闪存存储器内部的缓存保护区中作为备份数据。47.在本步骤中,由于第一物理块中的待处理数据即使在纠错后仍然不稳定,因此,将纠错完成的纠错数据拷贝到预设在闪存存储器内部的缓存保护区中保存为备份数据,缓存保护区可以是闪存存储器内部的slc(singlelevelcell)缓存区域,存储稳定性好,从而保证备份数据的稳定性,另外在从slc中读取备份数据再次复制到闪存存储器时,由于均为闪存存储器内部的数据操作,从而可以节省数据传输时间,快速恢复数据。采用该slc缓存区域缓存备份数据,可以利用slc的工作性能,加快读写性能,提高数据处理速度,并且该区域并不占据用户的可用容量,能在快速完整保存备份数据的同时节省备份时间,提升数据恢复处理进程。48.图2示出了根据本发明实施例的固态硬盘的数据在闪存存储器中的存储示意图。49.如图2所示,闪存存储器包括slc缓存区域220和其他的数据存储区,其他的数据存储区包括第一物理块201和第二物理块202。在步骤s103中,ssd的控制器将第一物理块(headblk)201内的纠错数据进行第一次复制,将其复制保存在slc缓存区域220中,作为备份数据。50.在步骤s104中,根据备份数据中的有效数据建立l2p表。51.本步骤中,建立l2p表时,以slc缓存区域220中存储的稳定的备份数据为基础,其中,有效数据为纠错处理中出现的第一个无法纠错的数据之前的所有数据,相应的,无效数据为纠错处理中出现的第一个无法纠错的数据及其之后的所有数据,也即,纠错数据由无效数据和有效数据组成。纠错处理时是逐个物理页进行的操作,所以第一个无法纠错的数据是第一个无法纠错的物理页(page)中的数据。52.那么,根据备份数据中的有效数据建立l2p表的步骤包括:从缓存保护区中读取备份数据;将备份数据中的无效数据舍弃;以备份数据中的有效数据建立ssd上电后的待处理数据的l2p表。从缓存保护区中读取的数据由于是上电后纠错处理后的数据,且保存在了稳定性较高的slc缓存区域中,其数据准确性高,由此区域恢复的l2p表准确度高;而且将备份数据中第一个无法纠错的数据及其之后的全部数据都舍弃,剩余数据才建立l2p表,可以保证建立l2p表的数据均为正确的数据,不用再次验证恢复后的l2p表的准确性,提升数据恢复效率和恢复性能。53.图3示出了根据本发明实施例的固态硬盘在恢复上电后闪存存储器中第一物理块内的数据分布示意图。54.通常,一个闪存存储器有若干个die(die是接收和执行闪存命令的基本单元),每个die有若干个plane,每个plane有若干个block,每个block包括多个page(物理页)。本实施例中提到的第一物理块是指所有die的所有plane的同一block。55.如图3所示,headblk的每个die的每个plane例如均包括page0‑page85,每个die的每个pln(0或1)的每个page中均保存有一个数据,纠错处理即是以该page为单位进行的。v(valued)表示其中的数据为正确的数据,e(empty)表示此空间内还未写入数据,f(fail)表示数据出现错误。在ssd掉电时,例如只写入到die1‑pln1‑page82位置之前的数据,那么在ssd重启后,待处理数据是方框内的数据,已经进行了纠错处理,用圆圈圈住的f数据(die1‑pln0‑page81的数据)表示纠错数据中的第一个未能完成纠错的数据,那么,该数据及之后的所有数据均视为无效数据,也是不稳定数据,该数据之前的数据将作为有效数据。56.将方框内的纠错数据均复制到slc缓存区域220中作为备份数据,当需要恢复l2p表时,从slc缓存区域220中读取备份数据,将备份数据中的无效数据舍弃,而仅利用有效数据建立l2p表,保证l2p表中数据的一致性,避免产生误读的情况。本实施例由于固态硬盘本身的存储能力等,将所有die的三行物理页(page80‑page82)的数据同时作为待处理数据复制到了slc缓存区域220中,其他的固态硬盘可能将不同行数的物理页的数据作为一个整体复制保存。57.在步骤s105中,将备份数据中的有效数据复制到闪存存储器中作为固态硬盘上电后的恢复数据。58.在建立l2p表后,在需要认盘时,将slc缓存区域220中的备份数据中的有效数据读取出,重新复制到闪存存储器的新物理块(block)中。59.再次参见图2,将slc缓存区域220中备份数据中的有效数据复制到第二物理块202中,作为上电后的恢复数据,从而恢复数据的稳定性。那么,待处理数据位于第一物理块201内,恢复数据位于第二物理块202内,第一物理块201与第二物理块202为闪存存储器中的不同物理块。第二物理块202例如是闪存内部的空白物理块,那么无需将第一物理块201擦除后再操作,而是直接对第二物理块202进行写入操作,当数据恢复到第二物理块202时,第一物理块的数据自动无效,减轻ssd内部的处理器的工作压力,并且提升数据恢复的速度和效率。并且,当恢复数据的过程中再次出现意外时,第一物理块201的备份物理块还在slc缓存区域220中,可对数据进行再次恢复。60.通过本发明实施例的固态硬盘的数据保护方法,将待处理数据先进行了纠错处理,再将纠错数据从不稳定的数据存储区域复制到了稳定的slc缓存区域220中,之后再从slc缓存区域220中读取备份数据,去掉无效数据之后进行l2p表的建立,保证数据的一致性,最后再将稳定的有效数据复制到新的物理块中,同时保证了固态硬盘上电后的数据稳定性和一致性。61.相应的,本发明实施例公开的固态硬盘包括:控制器与闪存存储器。控制器与主机连接,用于与主机交换数据;闪存存储器与控制器连接,存储主机的写数据,闪存存储器包括缓存保护区,固态硬盘异常掉电时闪存存储器正在接收的待处理数据中的错误数据在进行纠错处理后得到的纠错数据被复制到缓存保护区中保存,并且缓存保护区中的备份数据中的有效数据用以建立l2p表,在建立l2p表之后,缓存保护区中的有效数据重新被复制到闪存存储器中作为固态硬盘上电后的恢复数据,有效数据为纠错数据中出现的第一个无法纠错的数据之前的所有数据。缓存保护区为闪存存储器内部的slc缓存区域。待处理数据与恢复数据位于闪存存储器的不同物理块中。62.图4示出了根据本发明实施例的固态硬盘的数据保护方法的操作流程示意图。63.图4与图1公开的实施例基本一致。如图4所示,该操作流程包括步骤s401‑s407。具体地:64.结合图1‑图4,在步骤s401中,在ssd异常掉电重启后,要先读取headblk的数据,作为待处理数据。65.在步骤s402中,判断headblk中的数据是否稳定,即数据是否存在错误。当存在错误时,执行步骤s403,进行纠错处理;否则直接执行步骤s404。66.在步骤s403中,对错误数据做纠错处理,以形成纠错数据。67.在步骤s404中,将纠错后的数据或者本身没有错误的待处理数据保存,即将headblk中的数据拷贝至slc中保存,维持数据的稳定性。68.在步骤s405中,准备恢复l2p表。根据slc中保存的数据进行l2p表的恢复。69.在步骤s406中,将slc中出现第一次不可纠错的数据之后的l2p表丢弃。本步骤中,将slc中的无效数据丢弃,仅采用有效数据建立l2p表,维持数据的一致性。70.在步骤s407中,将稳定的headblk有效数据重新拷贝到新的blk中。本步骤中,将slc中存储的有效数据重新拷贝回block中,作为ssd上电后的恢复数据。从而同时维持了数据的一致性和稳定性。71.综上,本技术实施例提供的固态硬盘的数据保护方法和固态硬盘,在固态硬盘上电重启后,先获取其在异常断电时闪存存储器正在接收的待处理数据,然后对其中的错误数据进行纠错处理,将其保存在缓存保护区中,以维持纠错数据的稳定性;同时,从缓存保护区中读取数据,舍弃无效数据,根据舍弃无效数据之后的数据建立l2p表,能保证数据的稳定性,最后再将缓存保护区中的有效数据复制到闪存存储器中,形成上电后的恢复数据。通过一系列的操作,将待处理数据中的不稳定数据丢弃,仅以稳定数据建立l2p表,保证l2p表的映射关系准确,且将数据保存在了缓存保护区,形成稳定的数据保护,同时维持了数据的一致性和稳定性。72.依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属
技术领域
:技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1