执行存储器系统的恢复操作的设备和方法与流程

文档序号:20874827发布日期:2020-05-26 16:21阅读:177来源:国知局
执行存储器系统的恢复操作的设备和方法与流程

相关申请的交叉引用

本申请要求于2018年11月20日提交的申请号为10-2018-0143510的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。

实施例涉及一种存储器系统,更特别地,涉及一种用于由于电源故障等而执行存储器系统的恢复操作的方法和设备。



背景技术:

计算机环境范例已经变为可在任何时间和任何地点使用的普适计算系统。也就是说,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。

由于存储器系统不具有移动部件,所以存储器系统提供了优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。

从电源装置向存储器系统提供电力。由于电源装置的突然断电(spo),存储器系统可能严重受损。例如,当存储器系统的闪存转换层(ftl)包括需要顺序访问块(诸如整个存储器错误扫描)的逻辑时,实施这样的逻辑以记录最后访问的块然后访问下一个块。然而,在频繁发生spo事件的环境中,存储器系统可以被断电并通电以访问特定块。然后,当存储器系统被断电并通电时,存储器系统可能再次访问特定块,这可能导致存储器系统中的问题。



技术实现要素:

实施例涉及一种存储器系统、数据处理系统及其操作方法,其可以使存储器系统的复杂性和性能劣化最小化,使存储器装置的使用效率最大化,并且快速且稳定地处理存储器装置中的数据。

实施例涉及一种方法和设备,用于通过在日志信息/历史信息中为需要块访问的事件设置校验点并在事件未完成时将待访问的块随机化来执行存储器系统的恢复操作,从而当在存储器系统中反复地发生电源故障时,减少或避免在恢复操作期间重复访问特定块。

实施例针对一种方法和设备,其可以在可能频繁发生恢复操作的存储器系统的操作环境中阻止对特定块的重复访问,从而提高存储器系统的耐用性并增加恢复操作的稳定性。

本公开不限于以上列出的优点。基于本文的公开内容,本领域技术人员将认识到其它优点。

根据本发明的实施例,一种用于操作存储器系统的方法包括:对存储器装置中的第一块执行块访问任务,该存储器装置具有多个块;当电源电压低于给定电平时生成日志信息,该日志信息包括校验点和块信息,校验点指示块访问任务,块信息指示第二块;以及当电源电压等于或大于给定电平时,对日志信息的块信息中指示的第二块执行块访问任务。

根据本发明的另一实施例,一种存储器系统包括:存储器装置,包括多个块;以及控制器,被配置为:对存储器装置中的第一块执行块访问任务;当电源电压低于给定电平时生成日志信息,该日志信息包括校验点和块信息,校验点指示块访问任务,块信息指示第二块;以及当电源电压等于或大于给定电平时,对日志信息的块信息中指示的第二块执行块访问任务。

根据本发明的又一实施例,一种用于操作存储器系统的方法,包括:对存储器装置中的第一块执行块访问操作,该存储器装置包括多个块;在发生突然断电(spo)事件之后访问日志信息,该日志信息包括校验点;以及当日志信息的校验点指示针对第一块的块访问操作未完成时,对不同于第一块的第二块继续块访问操作。

附图说明

本文的描述参照了附图,其中在若干视图中相同的附图标记始终表示相同的部件,并且其中:

图1示出根据实施例的数据处理系统;

图2示出根据实施例的用于执行spo恢复进程的存储器系统;

图3示出根据实施例的存储器系统的恢复准备操作;

图4示出根据实施例的存储器系统的恢复操作;

图5a和图5b示出在存储器系统中使用的文件系统的示例;

图6示出根据实施例的用于生成日志信息的方法;

图7示出根据实施例的用于生成日志信息的方法;

图8示出根据实施例的用于存储器系统的恢复进程;

图9示出根据实施例的用于处理块访问操作的方法;以及

图10示出根据实施例的用于执行恢复操作的方法。

具体实施方式

在下文中,将参照附图描述本发明的示例性实施例。应当理解,以下描述将关注于理解根据实施例的操作所需的部分,并且将排除其它部分的描述,以免不必要地模糊本公开的主题。

下面,将参照附图详细描述示例性实施例。

图1示出根据本实施例的数据处理系统100。数据处理系统100可以包括主机102和存储器系统110。

主机102可以包括诸如移动电话、mp3播放器、膝上型计算机等的便携式电子装置中任意一种,或者诸如台式计算机、游戏机、tv、投影仪等的非便携式电子装置中的任意一种。也就是说,主机102可以包括无线/有线电子装置。

主机102可以包括一个或多个操作系统(os)。os可以管理和控制主机102的全部功能和操作,并且可以在主机102和使用数据处理系统100或存储器系统110的用户之间提供交互操作。os可以支持与用户的预期用途相对应的功能和操作。

例如,根据主机102的移动性,os可以包括通用os和移动os。根据用户的使用环境,通用os可以包括个人os和工业os。例如,个人os专用于支持对普通用户的服务提供功能,并且可以包括windows、chrome等。工业os专用于确保和支持高性能,并且可以包括windowsserver、linux、unix等。移动os专用于为用户支持移动服务提供功能和系统节能功能,并且可以包括android、ios、windowsmobile等。

在该实施例中,主机102可以包括多个os,并且根据用户的请求运行os以与存储器系统110执行操作。主机102可以将与用户的请求相对应的多个请求传输到存储器系统110,因此存储器系统110可以执行与该请求相对应的操作,即与用户的请求相对应的操作。

存储器系统110可以响应于来自主机102的请求而操作。特别地,存储器系统110可以存储由主机102访问的数据。换言之,存储器系统110可以用作主机102的主存储器装置或辅助存储器装置。

根据与主机102相对应的主机接口协议,存储器系统110可以被实施为各种类型的存储装置中的任意一种。各种类型的存储装置可以包括固态驱动器(ssd),诸如嵌入式mmc(emmc)、尺寸减小的mmc(rs-mmc)或微型mmc的多媒体卡(mmc),诸如迷你sd或微型sd的安全数字(sd)卡,通用存储总线(usb)存储装置,通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡和记忆棒等。

用于实施存储器系统110的存储装置可以包括易失性存储器装置和非易失性存储器装置。易失性存储器装置可以包括动态随机存取存储器(dram)、静态ram(sram)等。非易失性存储器装置可以包括只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电ram(fram)、相变ram(pram)、磁性ram(mram)、电阻式ram(rram)、闪速存储器等。

存储器系统110可以包括用于存储由主机102访问的数据的存储器装置150和用于控制存储器装置150的数据输入/输出操作的控制器130。

例如,控制器130和存储器装置150可以集成到一个半导体装置中。例如,控制器130和存储器装置150可以集成到一个半导体装置中来构成ssd。当存储器系统110用作ssd时,可以进一步提高联接到存储器系统110的主机102的运行速度。

再例如,控制器130和存储器装置150可以被集成到一个半导体装置中来构成存储卡。例如,控制器130和存储器装置150可以构成诸如以下的存储卡:个人计算机存储卡国际协会(pcmcia)卡、紧凑型闪存(cf)卡、智能媒体(sm)卡、记忆棒、诸如rs-mmc或微型mmc的多媒体卡(mmc)、诸如迷你sd、微型sd或sdhc的sd卡,或者通用闪存(ufs)装置。

又例如,存储器系统110可以构成计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(dmb)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传送/接收信息的装置、构成家庭网络的各种电子装置中的一个、构成计算机网络的各种电子装置中的一个、构成远程信息处理网络的各种电子装置中的一个、射频识别(rfid)装置、构成计算系统的各种组件中的一个等等。

即使没有供电,存储器系统110中的存储器装置150也可以保留存储在其中的数据。特别地,存储器装置150可以通过执行写入或编程操作来存储从主机102提供的数据,并且可以通过执行读取操作来将存储在其中的数据提供到主机102。存储器装置150可以包括多个块152、154和156,块152、154和156中的每一个可以包括多个页面,并且多个页面中的每一个可以包括联接到多个字线中相应的一个的多个存储器单元。

在实施例中,存储器装置150可以包括多个存储器管芯,每个存储器管芯包括多个平面。多个平面中的每一个可以包括多个块。

存储器装置150可以包括非易失性存储器装置,例如闪速存储器。闪速存储器可以具有二维(2d)或三维(3d)堆叠结构。

存储器系统110中的控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可以响应于读取请求而将从存储器装置150读取的数据提供到主机102,并且响应于写入请求将从主机102提供的数据写入存储器装置150中。为此,控制器130可控制存储器装置150的读取操作、写入(或编程)操作和擦除操作。

更具体地,控制器130可以包括主机接口(i/f)132、处理器134、错误校正码(ecc)单元138、电源管理单元(pmu)140、存储器i/f142和存储器144。

主机i/f132可以处理来自主机102的请求和数据,并通过诸如以下的各种接口协议中的一种或多种与主机102通信:usb、mmc、pci-e(高速外围组件互连)、sas(串列scsi)、sata(串行高级技术附件)、pata(并行高级技术附件)、scsi(小型计算机系统接口)、esdi(增强型小型磁盘接口)、ide(电子集成驱动器)、mipi(移动工业处理器接口)等。主机i/f132可以与主机102交换数据,并且可以由被称为主机接口层(hil)的固件来驱动。

ecc单元138可以执行错误校正操作,并且包括ecc编码器和ecc解码器。ecc编码器可以通过对待被编程到存储器装置150的写入数据执行错误校正编码来生成具有奇偶校验位的数据,并且可以将具有奇偶校验位的数据存储在存储器装置150中。

当读取存储在存储器装置150中的数据时,ecc解码器可以检测并校正包含在从存储器装置150读取的数据中的错误。换言之,ecc单元138可以对从存储器装置150读取的数据执行错误校正解码,确定是否成功执行了错误校正解码,根据确定结果输出例如错误校正成功/失败信号的指示信号,并且使用在错误校正编码进程中生成的奇偶校验位来校正所读取数据中的错误位。此时,当所读取的数据中包括的错误位的数量大于与可校正的错误位的数量相对应的阈值时,ecc单元138无法校正错误位,因此输出指示ecc单元138未能校正错误位的错误校正失败信号。

ecc单元138可以使用以下的一个或多个来执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhri-hocquenghem,bch)码、turbo码、里德-所罗门(reed-solomon)码、卷积码、递归系统码(rsc)和诸如网格编码调制(tcm)或块编码调制(bcm)的编码调制。然而,实施例不限于此。ecc单元138可以包括用于执行错误校正操作的所有电路、模块、系统或装置。

pmu140可以提供和管理用于驱动控制器130的电力。也就是说,pmu140可以提供和管理用于驱动控制器130中包括的组件的电力。pmu140可以包括电力检测器,以识别施加到存储器系统110的电力的状态,例如,通电状态、断电状态等。电力检测器可以生成与电力状态相对应的内部控制信号。

存储器i/f142可以用作存储器/存储装置i/f,以提供控制器130和存储器装置150之间的接口连接,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150包括例如nand闪速存储器的闪速存储器时,存储器i/f142可以用作nand闪存控制器(nfc)。存储器i/f142可以在处理器134的控制下生成用于控制存储器装置150的控制信号并处理存储器装置150的数据。存储器i/f142可以由被称为闪存接口层(fil)的固件来驱动。

存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。更具体地,当控制器130响应于来自主机102的请求来控制存储器装置150时,例如,当控制器130控制存储器装置150的读取操作、写入(或编程)操作和擦除操作以将从存储器装置150读取的数据提供到主机102并将从主机102提供的数据写入存储器装置150中时,存储器144可以临时存储读取数据和写入数据以对存储器系统110执行这样的操作。

存储器144可利用易失性存储器来实施。例如,存储器144可以包括静态随机存取存储器(sram)、动态随机存取存储器(dram)等。如图1所示,存储器144可以设置在控制器130中。然而,在另一实施例中,存储器144可以被实施为设置在控制器130之外的外部易失性存储器,并且控制器130可以具有用于在外部易失性存储器和控制器130之间传输数据的存储器接口。

如上所述,存储器144可以存储在主机102和存储器装置150之间执行写入/读取操作所需的数据。为了存储这样的数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。

处理器134可以控制存储器系统110的全部操作。例如,处理器134可以分别响应于来自主机102的写入请求或读取请求来控制存储器装置150上的写入(或编程)操作或读取操作。处理器134可使用固件以控制存储器系统110的全部操作。处理器134可以被实施为微处理器或中央处理单元(cpu)。

控制器130可以使用处理器134执行由存储器装置150中的主机102所请求的操作。换言之,控制器130可以利用存储器装置150执行与来自主机102的请求相对应的操作。在这种情况下,控制器130可以执行与来自主机102的请求相对应的前台操作,例如,与写入请求相对应的写入(或编程)操作,与读取请求相对应的读取操作,与擦除请求相对应的擦除操作,或与作为设置请求的设置参数命令或设置特征命令相对应的参数设置操作。

控制器130还可以使用处理器134对存储器装置150执行后台操作。后台操作可以包括将存储在存储器装置150的块152、154和156之中的任意块中的数据复制到另一任意块中的垃圾收集(gc)操作,交换存储器装置150的块152、154和156或存储在块152、154和156中的数据的损耗均衡(wl)操作,将存储在控制器130中的映射数据存储到存储器装置150的块152、154和156中的映射刷新操作,或检查并处理存储器装置150中的坏块的坏块管理操作。

在实施例中,当电源不稳定时,控制器130还可以执行存储器系统110的恢复操作。

当电源突然被切断时,即,当发生突然断电(spo)事件时,控制器130可以执行恢复准备进程以在存储器装置150中生成并保存日志/历史信息(在此称为“日志信息”)。当再次供电时,控制器130可以基于从存储器装置150加载的日志信息来执行恢复进行。

图2示出根据实施例的用于执行恢复操作的存储器系统110。存储器系统110可以包括控制器130和存储器装置150。可以进一步参照图1来描述图2的存储器系统110。

存储器装置150可以包括多个块152、154和156。多个块152、154和156可以具有其中通过字线、位线等联接多个存储器单元的结构。

当存储器装置150内的多个块152、154和156被实施为非易失性存储器时,多个非易失性块152、154和156可以被划分为多个区域。例如,存储器装置150可以被划分为用于存储系统信息的系统区域和用于存储用户数据的数据区域。系统区域可能不允许用户访问。系统区域可以存储系统信息,该系统信息包括固件、映射信息、日志信息等。另一方面,数据区域可以存储由用户输入/输出的用户数据。

在实施例中,可以将存储在系统区域中的日志信息存储在多个块152、154和156之中的随机位置处。然而,存储在数据区域中的用户数据可以顺序地存储在多个非易失性块152、154和156中。可以以不同的方式来控制系统区域和数据区域,并且它们既不能一起使用也不能彼此重叠。

控制器130可以执行用于将新数据存储在存储器装置150中的写入(或编程)操作,或者用于读取或擦除存储在存储器装置150中的数据的操作。除了诸如读取操作、擦除操作和写入操作的一般操作,控制器130还可以监控施加到存储器系统110的电力,并且当对存储器系统110的电力供应不稳定时,根据电力监控结果执行恢复操作。

为了执行恢复操作,控制器130可以包括电力检测器141、备份单元135、处理单元136和恢复单元137。

如图1所示,当控制器130包括处理器134和电力管理单元140时,电力检测器141可以包括在电力管理单元140中,并且备份单元135、处理单元136和恢复单元137可以由处理器134实施。然而,实施例不限于此。

在另一实施例中,备份单元135和恢复单元137可以被实施为逻辑电路或编程算法。例如,当将备份单元135和恢复单元137实施为编程算法时,备份单元135和恢复单元137可以包括在系统固件中。

在另一实施例中,电力检测器141可以设置在控制器130的外部。

在实施例中,电力检测器141可以监控供应到控制器130的电力是否具有低于给定电平的电平。给定电平可以对应于存储器系统110稳定操作的最小电平。

当电力被稳定地供应到存储器系统110并且因此所供应的电力等于或高于给定电平时,电力检测器141可以确定所供应的电力处于稳定状态,并且输出指示正常电力状态normal_power的电力检测信号pwr。另一方面,当所供应的电力具有比给定电平低的电平或者没有供电时,电力检测器316可以确定所供应的电力处于不稳定状态并且输出指示异常电力状态low_power的电力检测信号pwr。

当电力被稳定地供应到存储器系统110时,请求、数据等从另一装置(例如,主机102)被传输到存储器系统110。然而,供应到存储器系统110的电力被突然切断或不稳定,存储器系统110不能执行正常操作。例如,当在存储器系统110执行与请求、数据等相对应的操作的同时发生spo事件时,该操作可以在完成之前停止。

因此,为了提高与另一装置的互通的可靠性,当再次供电时,存储器系统110应该返回到发生spo事件之前的先前的状态。

为了返回到先前的状态,存储器系统110可以在发生spo事件时生成日志信息并将其存储在存储器装置150中,从而在再次供电时执行恢复进程。

日志信息可以包括存储在诸如队列的数据结构中的多个事件。多个事件是在spo事件发生之前的预设时间范围内传输的、顺序地排序或排列的事件。多个事件可以包括进行中的任务以及在发生spo事件的稍后待执行的任务。此外,多个事件可以包括即使任务已经完成也尚未报告的任务。可以将任务完成的报告提供到另一装置,例如主机102。

日志信息可以由备份单元135生成。例如,当从电力检测器141接收到指示异常电力状态low_power的电力检测信号pwr时,备份单元135可以使用存储在辅助电力装置(未示出)中的电能来生成日志信息。在实施例中,辅助电力装置可以包括电容器,该电容器能够存储驱动备份单元135和处理单元136执行恢复准备进程所需的最小量的电能。在实施例中,辅助电力装置设置在控制器130的内部或外部。

当备份单元135生成日志信息时,处理单元136可以将日志信息存储在存储器装置150中。在处理单元136将日志信息存储在存储器装置150中之后,存储器系统110的电力状态可以被切换为断电状态。

当在切断电源之后再次供电时,控制器130可以将存储在存储器装置150中的诸如固件或映射信息的系统信息加载到控制器130中的存储器(未示出),然后将日志信息加载到存储器,在切断电源时已存储该日志信息。

例如,当存储器系统110的电力状态从断电状态切换到通电状态时,恢复单元137可以通过处理单元136将存储在存储器装置150中的日志信息加载到存储器(未示出)。处理单元136可以顺序地执行存储在日志信息中的事件,使得存储器系统110返回到spo事件发生之前的先前状态。

每当存储器系统110的操作由于电源故障而异常结束时,可以自动地执行备份单元135和恢复单元137的操作。当在存储器系统110正常完成与来自主机102的请求相对应的所有事件之后切断电源时,恢复单元137可能不需要执行恢复进程。

当在存储器系统110的操作环境中不稳定地供应电力时,例如,当电源单元在其中安装有存储器系统110的计算装置中异常地工作或者供应到计算装置的电力不稳定时,存储器系统110可以在每当电源反复地关闭和打开时,重复地执行恢复操作。

恢复进程可以包括执行日志信息中包括的事件。当重复恢复进程时,可以重复执行事件中包括的相同任务。相同任务的重复可能不会在存储器系统110中引起问题。然而,当日志信息中包括的任务需要访问存储器装置150内的特定块时,当重复恢复进程时可以重复地访问该特定块。也就是说,当由于电源故障而重复恢复进程时,可以重复访问特定块。因此,诸如读取计数和擦除计数的特定块的属性,可能会下降。

因此,为了避免重复地访问存储器装置150内的特定块,日志信息中可以包含附加信息。例如,当日志信息中包括的任务包括访问存储器装置150内的块所需的任务时,备份单元135可以在被称为“块访问任务”的相应任务之前和之后插入校验点cp。

校验点cp可以与指示在切断电源之前正在访问的块的块信息相关联。备份单元135可以将关于随机决定块的信息作为块信息进行存储。块信息可以被包括在日志信息中。

执行恢复进程的恢复单元137可以基于块信息访问存储器装置150内的随机决定块。由于无论何时执行恢复操作都随机决定在恢复进程中使用的块,因此即使在执行恢复进程时重复执行相同的任务,也可以避免对相同块的重复访问。

例如,当假设日志信息包括对存储器装置150内的第一至第十块之中的一个块执行测试读取的第一任务并且第一任务已经正常完成时,块信息可以指示恢复进程中要访问的下一个块。

例如,当通过第一任务已经对第三块正常完成了测试读取时,块信息可以指示在恢复进程中要对其执行下一测试读取操作的第四块。另一方面,当执行第一任务时电力不稳定或电源被切断时,第一任务可能无法对第三块正常完成。在这种情况下,备份单元135可以在第一任务之前和之后插入校验点,并且随机地选择第一至第十块之中的一个以便生成块信息。也就是说,备份单元135将块信息随机化。在实施例中,备份单元135可以随机选择除了第三块之外的第一块、第二块以及第四块至第十块中的一个。

由于包括在日志信息中的第一任务包括访问存储器装置150内的块,因此校验点可以位于第一任务之前和之后。在恢复进程期间,恢复单元137可以通过处理单元136检查日志信息中的校验点,访问块信息,并对由块信息指示的块执行正常操作。

已经举例说明了测试读取操作,但是各种操作可能需要访问存储器装置150中的块。各种操作的示例可以包括:分配块的任务、将数据写入块中的任务、读取在块中存储的数据的任务、擦除在块中存储的数据的任务等。

图3和图4是示出根据实施例的图2的存储器系统110的恢复操作的流程图。具体地,图3示出当发生spo事件时存储器系统110的恢复准备进程,图4示出当再次供电并使其稳定时存储器系统110的恢复进程。恢复操作可以包括恢复准备进程和恢复进程。将参照图2描述图3和图4的恢复操作。

参照图3,当在存储器系统110响应于来自主机102的请求而执行操作时发生spo事件时,可以执行存储器系统110的恢复准备进程。

当发生spo事件并且因此供应到存储器系统110的电力下降到给定电平以下时,在s31中,存储器系统110可以检查存储器系统110的操作状态。在s31中,存储器系统110可以检查由主机102请求的任务是否已经完成。当发生spo事件时,即使任务已经完成,存储器系统110也可以检查进行中的、将要执行的或尚未报告的任务的操作状态。可以将任务完成的报告提供到主机102。

为了保证操作的可靠性,在s33中,存储器系统110可以基于所检查的操作状态来检查任务中是否发生了错误。该错误可能包括任务尚未完成的情况。

当由于spo事件的发生而导致任务未完成时,即当在s33中的检查结果存在错误时,存储器系统110可以在s35中执行恢复准备进程。恢复准备进程可以包括生成日志信息并将日志信息存储在存储器装置150中。当恢复准备进程完成时,可以关闭存储器系统110。

当正常切断供应到存储器系统110的电力时,可能不存在任何异常结束的或未完成的任务。因此,当备份单元135在s33中检查是否发生错误时,检查不到错误。在这种情况下,可以在不执行恢复准备进程的情况下关闭存储器系统110。

执行存储器系统110的恢复准备进程以提高操作可靠性,并且可以由控制器130的备份单元135和处理单元136执行,如以上参照图2所描述的。恢复准备进程的细节将在后面描述。

参照图4,当稳定的正常电力被供应到存储器系统110时,在s41中,控制器130可以扫描存储器装置150内的预设区域。预设区域可以包括其中存储系统信息的区域。在实施例中,系统信息可以包括固件、映射信息、日志信息等。

在s41中扫描预设区域之后,存储器系统110可以将诸如固件、映射信息和日志信息的系统信息加载到控制器130内的存储器。在s43中,可以基于系统信息来驱动存储器系统110。

在实施例中,当存储器系统110在spo事件发生之前正常完成所有任务时,当再次施加正常电力时,可能不存在存储器系统110需要恢复的任务。然而,当存储器系统110存储在恢复准备进程中生成的日志信息时,存储器系统110可以在s45中从系统信息中恢复日志信息。当日志信息被恢复时,存储器系统110可以返回到与发生spo事件之前的先前状态相同的正常状态,并执行日志信息中包括的任务。

当存储器系统110恢复日志信息并返回到正常状态时,在s47中,存储器系统110可以与主机102执行正常操作。

在实施例中,可以执行存储器系统110的恢复进程,直到存储器系统110可以在供应正常电力的状态下执行正常操作。然而,当供应到存储器系统110的电力仍然不稳定时,可以在扫描预设区域或恢复日志信息的同时反复切断和供应电力。在这种情况下,可以重复执行存储器系统110的恢复进程。

在实施例中,存储器系统110的恢复进程可以由控制器130的恢复单元137和处理单元136执行,如上面参照图2所描述的。恢复进程的细节将稍后描述。

在实施例中,当在发生spo事件之前日志信息中包括的任务正常完成时,关于在发生spo事件之前最后访问的块的信息可以被记录为块信息,并且在再次供电之后执行下一个正常操作时,处理下一个块。

然而,在实施例中,如果在发生spo事件时日志信息中包括的任务在进行中,则在存储器系统110的恢复准备进程期间,关于随机选择块的信息可以被记录为块信息,而不是关于最后访问的块的信息。

存储器系统110可以使用比现有计算装置中使用的文件系统更有效的文件系统。可以在存储器系统110中使用的文件系统的示例可以包括f2fs(闪存友好型文件系统)、jfss、jfss2、yaffs、logfs、axfs、rffs(可靠闪存型文件系统)等。

图5a示出f2fs的文件系统结构,图5b示出rffs的文件系统结构。

参照图5a,f2fs可以将整个存储器装置划分为六个区域。例如,六个区域可以包括数据区域、超级块区域、段摘要区域(segmentsummaryarea)ssa、段信息表sit、节点地址表nat和校验点区域cp。

数据区域可以包括能够存储用户数据的多个块。每个块可以用作节点块或数据块。节点块可以包括数据块的索引节点或索引。数据块可以包括目录或用户数据。节点块或数据块可以根据节点或数据的属性(热、暖和冷)存储具有不同属性的节点或数据。

在实施例中,数据区域中的每个块可以具有4kb或8kb的大小。此外,一个部分可以包括多个节点块或多个数据块,但是一个部分可以不包括节点块和数据块。

超级块区域可以包括f2fs的基本分区信息和基本参数。

段摘要区域ssa可以存储指示数据区域内的所有块的所有者信息的摘要项,例如,关于父索引节点的信息和关于属于父索引节点的子索引节点的信息。

段信息表sit可以包括每段信息,诸如数据区域中的有效块的数量以及关于数据区域内的所有块的有效性的位图信息。段信息表sit中包括的信息可以用于在诸如垃圾收集的进程期间选择待从其擦除数据的段,并识别所选择的段内的有效块。

节点地址表nat可以包括用于找到存储在数据区域中的所有“节点块”的块地址表。

校验点区域cp可以存储文件系统状态、段信息表sit和节点地址表nat中的有效信息的位图、丢失了其父索引节点的孤立索引节点的列表以及当前活动段的摘要项。通过校验点cp,当spo事件或系统冲突发生时,f2fs可以提供一致的恢复点。

在图5a所示的f2fs中,除了数据区域之外的其它区域可以是系统区域。存储在系统区域中的日志信息可以存储在多个非易失性存储块之中的随机位置处。然而,存储在数据区域中的用户数据可以顺序地存储在多个非易失性存储块中。系统区域和数据可以用不同的方式控制,既不能一起使用,也不能彼此重叠。

参照图5b,rffs可以将整个存储器装置划分为三个区域。例如,这三个区域可以包括位置信息区域lia、位置信息备份区域liba和数据区域da。

位置信息区域lia可以包括多个块或多个段。当向存储器系统施加电力时,或者当存储器系统与诸如主机的另一装置互连时,可以首先扫描位置信息区域lia。位置信息区域lia可以存储数据的最新位置信息。

当在扫描或读取位置信息区域lia时出现问题时,可以使用位置信息备份区域liba。

数据区域da可以包括除了位置信息区域lia和位置信息备份区域liba之外的其它区域。数据区域da可以用于存储所有类型的信息或数据,诸如日志信息、块信息、元数据、用户数据等。

rffs中的位置信息区域lia可以用于记录各条信息或各种数据的位置。各条信息或各种数据本身可以存储在数据区域中。因此,即使在发生spo事件或系统冲突时,也可以将存储日志信息和块信息的位置存储在位置信息区域lia中,但是可以将日志信息和块信息的内容存储在数据区域da中。

在实施例中,图5b所示的rffs可以使用例如卸载标志(unmount_flag)的特殊信息来更迅速地执行恢复进程。当日志信息上的标志信息设置为例如“1”的第一值时,存储器系统可以识别出所有任务在电源被切断之前已经完成,因此不存在错误。在这种情况下,存储器系统可以基于日志信息省略恢复进程。另一方面,当标志信息被设置为例如“0”的第二值时,它可以指示在切断电源之前存在尚未完成的任务。在这种情况下,存储器系统可以基于日志信息和块信息来执行恢复进程。

图6示出用于生成与当spo事件发生时存储器系统110未完成的任务有关的日志信息的方法。

当存储器系统110操作时,控制器130可以具有映射信息、用户数据等以执行由主机102请求的操作。例如,当控制器130响应于来自主机102的读取请求而执行读取操作时,控制器130可以使用映射信息来识别与读取操作相对应的任务以及待读取的数据的物理位置。当在读取操作未完成之前切断存储器系统110的电源时,与读取操作相对应的任务和待读取的数据的物理位置(例如,物理地址)可以包括在日志信息中。之后,当再次向存储器系统110供电时,控制器130可以根据日志信息中包括的任务和数据的物理位置来执行读取操作。因此,存储器系统110可以恢复电源被切断之前的先前的状态。

又例如,当控制器130响应于来自主机102的写入请求而执行写入操作时,控制器130可以使用与该写入操作相对应的任务,待存储在存储器装置150中的用户数据以及待写入用户数据的物理位置。当在写入操作未完成之前切断存储器系统110的电源时,控制器130可以将与写入操作有关的信息包括在日志信息中。

例如,当假设在日志信息中包括四个任务时,日志信息中的四个任务之中的第二任务,例如task2,可以是访问存储器装置150内的块所需的任务。当发生spo事件时,如果第二任务task2没有完成,则控制器130可以在第二任务task2之前和之后设置校验点,例如cp#5和cp#6。此外,控制器130可以响应于校验点cp#5和cp#6来决定关于待访问的块的信息l_s_blk。在这种情况下,块的信息l_s_blk是随机决定的。在图6中,可以随机地选择存储器装置150中的多个块之中的块blk16。

在实施例中,可以响应于任务而改变确定经随机化的块的范围。例如,任务是用于读取和测试整个存储器装置150,可以将存储器装置150中的多个块中的一个确定为经随机化的块。另一方面,当任务被限制在存储器装置150中的多个块之中的预设数量的块中时,预设数量的块中的一个可以被确定为经随机化的块。

在实施例中,当确定经随机化的块时,可以排除先前选择的块,以避免重复访问先前选择的块。

图7示出根据实施例的用于生成日志信息的方法。将参照图2描述图7的方法。

参照图7,当发生spo事件并且因此将指示异常电力状态low_power的电力检测信号pwr提供到备份单元135时,在s71中请求备份单元135生成日志信息。

在s72中,备份单元135检查日志信息中是否包括需要访问块的任务或事件,并且该任务或事件尚未完成。需要访问块的任务或事件可以被称为“块访问任务或事件”。在本实施例中,为了说明方便起见,假设当发生spo事件时存在尚未完成的任务。

在s73中,备份单元135在日志信息中的块访问任务之前和之后插入校验点。

在s74中,备份单元135将与块访问任务相对应的块编号随机化。

在s75中,备份单元135生成包括校验点和块信息l_s_blk的日志信息,该块信息l_s_blk包括经随机化的块编号。在另一实施例中,日志信息可以进一步包括参照图5b所描述的具有1位数据的标志信息,该标志信息表示在切断电源之前是否已经完成了所有任务和事件。

当发生spo事件时,日志信息可以包括尚未完成的任务或事件,待执行的任务或事件和/或即使任务或事件已完成也尚未向主机102报告其完成的任务或事件。备份单元135在日志信息中包括的事件或任务之中的、在发生spo事件时尚未完成的块访问任务或事件之前和之后插入校验点。

如上所述,备份单元135可以确定用于恢复操作的所有条的日志信息。此后,在s76中,备份单元135可以通过处理单元136将日志信息存储在存储器装置150内的预设位置。

图8示出根据实施例的用于执行恢复进程的方法。将参照图2描述图8的方法。

参照图8,当再次向存储器系统110供应正常电力并且因此将指示正常电力状态normal_power的电力检测信号pwr提供到存储器系统110时,在s81中指令(direct)恢复进程。

在s82中,控制器130将系统信息加载到控制器130内的存储器以驱动存储器系统110。在该实施例中,系统信息包括日志信息。在另一实施例中,日志信息可以与系统信息的其它信息分开加载。

图8示出在指令恢复进程之后执行加载系统信息。然而,在另一实施例中,指令恢复进程可以在加载系统信息之后执行。可以根据文件系统结构或系统信息的配置来改变这种顺序。

在s83中,恢复单元137检查日志信息以找到校验点。校验点可以或不可以被插入到日志信息中。在s84中,当在某些任务或事件之前和之后找到校验点时,可以访问日志信息中的块信息。与块信息相对应的块用作存储器系统110响应于特定任务或事件而访问的第一块。响应于特定任务或事件而被访问的第一块可以是经随机化的块。

在s85中,存储器系统110可以与另一互通装置执行正常操作(数据输入/输出等)。当即使恢复进程没有正常结束而再次切断电源时,存储器系统110可以再次执行恢复进程。

图9示出根据实施例的用于处理块访问操作的方法。将参照图1的存储器系统110来描述图9的块访问操作。

假定例如图1的控制器130的控制器,响应于来自例如图1的主机102的外部装置的请求而执行访问例如图1的存储器装置150的存储器装置的块的操作。

在s91中,图1的控制器130确定由主机102请求的操作是否是包括访问存储器装置150的操作。在本文中,包括访问存储器装置150的操作被称为“块访问操作”。

当在s91中确定所请求的操作不是块访问操作时,进程结束。

另一方面,当在s91中将所请求的操作确定为块访问操作时,在s92中,控制器130选择存储器装置150中的起始块以执行块访问操作。

在s93中,控制器130将起始校验点(cp)存储在日志信息中,并且将所选择的块的块地址记录在存储器装置150中。起始cp被分配给所选择的块,例如块x,x为0或正整数。在这种情况下,所选择的块的块地址是块地址x。

在实施例中,日志信息可以存储在控制器130和/或存储器装置150的存储器中。

在s94中,控制器130对块x执行块访问操作。

在完成对块x的块访问操作之后,在s95中,控制器130将结束cp存储在日志信息中。结束cp被分配给块x。因此,此时存储在存储器装置150中的日志信息可以包括用于块x的起始cp和结束cp。

之后,在s96中,控制器130确定是否对应该执行块访问操作的预定数量的块完成了块访问操作。

当确定对所有预定数量的块完成了块访问操作时,进程结束。

另一方面,当确定对所有预定数量的块未完成块访问操作时,在s97中,控制器130选择下一个块,例如,块x+1。之后,进程回到s93,并且对块x+1执行进程s93至s95。

作为对块x+1的进程s93至s95的结果,可以将分配给块x+1的起始cp和结束cp存储在日志信息中,并且将块x+1的块地址x+1记录在存储器装置150中。

图9的右侧示出在块访问操作期间顺序地存储在日志信息中的日志内容。

然而,在图9中描述的块访问操作期间,如果在执行对所选择的块的块访问操作的进程s94期间发生spo事件,则日志信息仅包括对所选择的块的起始cp。日志信息的最后的日志条目成为所选择的块的起始cp。最后的日志条目表示刚发生spo事件之前输入的日志信息的最新条目。

另一方面,如果在对所选择的块的块访问操作完成之后发生spo事件,即在进程s95之后发生spo事件,则日志信息可以包括所选择的块的起始cp和结束cp两者。日志信息的最后的日志条目是所选择的块的结束cp。

图10示出根据实施例的用于执行恢复操作的方法。将参照图1的存储器系统110描述图10的恢复操作。

当在发生spo事件之后对存储器系统110施加电力并接通存储器系统110时,执行图10的恢复操作,因此将其称为“spo恢复(spor)”。

在s101中,控制器130读取日志信息的最后的日志条目。

在s102中,控制器130确定最后的日志条目是否是刚发生spo事件之前正被访问的所选择的块的结束cp(例如,本文中称为“最后选择的块”)。

当最后的日志条目被确定为结束cp时,在s103中,控制器130读取最后选择的块的块地址。

在s104中,控制器130使用所读取的块地址确定下一个块地址,以继续图9的块访问操作。结束cp的最后的日志条目指示对最后选择的块的块访问操作已完成,并且应对下一个块执行块访问操作。

在s105中,控制器130使用其块地址,即下一个块地址,对下一个块执行块访问操作。

重新参考s102,当确定最后的日志条目不是最后选择的块的结束cp时,在s106中,控制器130确定最后的日志条目是否是最后选择的块的起始cp。如果确定最后的日志条目不是最后选择的块的起始cp,则在s109中,控制器130执行除块访问操作之外的操作。在实施例中,另一操作不是包括访问块的操作。

另一方面,如果确定最后的日志条目是最后选择的块的起始cp,则在s107中,控制器130选择随机块地址,而不是读取存储在存储器装置150中的最后选择的块的块地址。

此后,在s108中,控制器130对与随机选择的块地址相对应的块(即,随机块)执行块访问操作。在实施例中,从应该对其执行块访问操作的预定数量的块中选择随机块。在实施例中,随机块不同于最后选择的块。

起始cp的最后的日志条目表示在对最后选择的块正在执行块访问操作的同时并且在完成块访问操作之前发生spo事件。因此,在该实施例中,当重复发生spo事件时,控制器130随机地选择待访问的块,并且对随机选择的块恢复块访问操作,而不是重复访问最后选择的块。

在上述实施例中,当由于电源故障而重复执行恢复操作(例如spor)时,存储器系统生成校验点并将该校验点保存在存储器装置中,然后,即使重复与分配有校验点的特定块相对应的相同任务或事件,也可以访问基于例如起始cp的校验点的类型随机选择的不同块。因此,尽管存储器系统在电源不稳定时重复执行恢复操作,但是可以避免存储器装置内的特定块的损耗。

由于在电源不稳定的操作环境中重复存储器系统的恢复操作时,实施例可以防止重复访问特定块,所以能够增强恢复操作的稳定性和可靠性,并抑制存储器系统的恢复操作中的开销。

尽管已经出于说明目的描述了各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1