处理从非易失性存储器进行设备引导期间的错误的制作方法

文档序号:6431935阅读:126来源:国知局

专利名称::处理从非易失性存储器进行设备引导期间的错误的制作方法
技术领域
:本公开涉及处理从非易失性存储器进行设备引导期间的错误。
背景技术
:NAND闪存以及其它类型的非易失性存储器(“NVM”)被普遍用在电子设备中以用于大容量存储。例如,消费电子设备,诸如便携式媒体播放器,常常包括NAND闪存以存储音乐、视频以及其它媒体程序。当电子设备正在加电或重启时,操作系统可以从电子设备的NVM引导。操作系统的引导可以分多个步骤进行。例如,电子设备可以被配置为首先将引导程序(bootloader)从NVM或掩模型只读存储器(“ROM”)装入易失性存储器。电子设备然后可以使用引导程序将操作系统及相关联的固件从NVM装入到易失性存储器。在某些情况下,当设备正在引导时,NVM中可能发生错误。如果这样的错误不被纠正,这些错误可能导致数据丢失或使设备无法工作。
发明内容提供了用于处理从非易失性存储器(NVM)(诸如NAND闪存)进行设备引导期间的错误的系统和方法。在设备可能只能从NVM读取数据的设备引导期间,电子设备可以使用易失性存储器中的错误日志来记录错误通知。例如,当电子设备正在从NVM引导时,设备的NVM接口能够检测错误并在错误日志中存储一个或多个错误通知。然后,一旦设备完成了引导并且到达了能够对设备进行写入的状态,设备的NVM驱动器就可被配置为利用该错误日志来纠正先前检测到的错误。结合附图考虑下面的详细描述后,本发明的上述和其它方面及优点将变得更加明显,在所有附图中,类似的附图标记表示类似的部件,其中图1是根据本发明的各种实施例配置的电子设备的示意性框图;图2是根据本发明的各种实施例的电子设备引导的图示;图3是根据本发明的各种实施例,用于处理在设备引导期间的错误的示意性过程的流程图。具体实施例方式提供了用于处理从非易失性存储器(“NVM”)进行设备引导期间的错误的系统和方法。为了防止固件故障和避免数据丢失,电子设备的NVM接口可被配置为在设备正在引导时检测错误并在易失性存储器中维护错误日志。在该阶段,电子设备可以工作在只读环境(read-onlycontext)下。如这里所使用的,“只读环境”可以指电子设备不能对NVM执行写入从而也不能纠正NVM中检测到的任何错误的工作状态。CN102385535A说明书2/7页然后,一旦电子设备已经进入了可写环境(例如,设备引导已经完成),电子设备的NVM启动器就可以被配置为利用错误日志来纠正检测到的错误。如这里所使用的,“可写环境”可以指电子设备的一个或多个部件能够对NVM执行写入操作的工作状态。因此,一旦设备已经进入了可写环境,NVM驱动器就可以将数据移动到更可靠的区块和/或停用(retire)接近故障的区块。从而,存储在设备上的固件能够使用更长的时间段而无需任何更新,并且致命错误的发生也可以减少。图1示出电子设备100的框图。在某些实施例中,电子设备100可以是或可以包括便携式媒体播放器(例如,Cupertino,CA的AppleInc.的产品iPod)、蜂窝电话(例如,AppleInc.的产品iPhone)、口袋大小的个人计算机、个人数字助理(“PDA”)、台式计算机、膝上型计算机、以及任何其它适当类型的电子设备。电子设备100可以包括系统级芯片(system-on-a-chip/'SoC”)110和非易失性存储器(“NVM”)120。NVM120可以包括基于浮栅或电荷捕捉技术的NAND闪存、NOR闪存、可擦可编程只读存储器(“EPR0M”)、电可擦可编程只读存储器(“EEPR0M”)、铁电RAM(“FRAM”)、磁阻RAM(“MRAM”)、或它们的任何组合。NVM120可以被组织为“区块”,区块是最小的可擦除单元,并且可被进一步组织为“页面”,页面可以是最小的可编程或读取的单元。在某些实施例中,NVM120可以包括多个集成电路,每个集成电路可以具有多个区块。来自相应集成电路的区块(例如,具有相同位置或区块号的区块)可以形成“超级块”。NVM120的每个存储单元(memorylocation)(例如页面或区块)可以使用物理地址(例如,物理页面地址或物理区块地址)来引用。系统级芯片110可以包括SoC控制电路112、存储器114、以及NVM接口116。SoC控制电路112可以控制SoC110以及SoC110或设备100的其它部件的一般操作和功能。例如,响应于用户输入和/或应用或操作系统的指令,SoC控制电路112可以向NVM接口116发出读或写命令,以从NVM120获得数据或者在NVM120中存储数据。为了清楚起见,SoC控制电路112可请求以便存储或检索的数据可以被称为“用户数据”,尽管该数据可能不直接与用户或用户应用相关联。更确切地,用户数据可以是由SoC控制电路112(例如,通过应用或操作系统)生成或获得的任何适当的数字信息序列。SoC控制电路112可以包括硬件、软件和固件的任何组合,以及操作以驱动电子设备100的功能的任何部件、电路或逻辑。例如,SoC控制电路112可以包括在存储在NVM120或存储器114中的软件/固件的控制下工作的一个或多个处理器。SoC控制电路112可以在程序的控制下工作,所述程序诸如应用、操作系统、NVM驱动器117、或装入存储器114中的引导程序。存储器114可以包括任何适当类型的易失性存储器,诸如随机存取存储器(“RAM”)(例如,静态RAM(“SRAM”)、动态随机存取存储器(“DRAM”)、同步动态随机存取存储器(“SDRAM”)、双倍数据率(“DDR”)RAM)、高速缓冲存储器、只读存储器(“ROM”)、或它们的任何组合。存储器114可包括可临时存储要编程到非易失性存储器120中或者要从非易失性存储器120中读取的用户数据的数据源。在某些实施例中,存储器114可充当被实现为SoC控制电路112的一部分的任何处理器的主存储器。此外,存储器114的一个或多个部分可被用于存储在设备引导期间使用的错误日志、操作系统、以及相关的固件和内核。NVM接口116可以包括硬件、软件和/或固件的任何适当组合,其被配置为充当NVM120与操作系统、应用、引导程序、或其它由SoC控制电路112执行的非特定于存储器或非特定于厂商的程序之间的接口或驱动器。对于包括在NVM接口116中的任何软件模块,相应的程序代码可以存储在NVM120或存储器114中。NVM接口116可以执行多种功能,其允许SoC控制电路112访问NVM120以及管理NVM120的存储单元(例如,页面、区块、超级块、集成电路)和存储在其中的数据(例如,用户数据)。例如,NVM接口116可以解释来自SoC控制电路112的读或写命令,执行耗损均衡(wearleveling),以及生成与NVM120的总线协议兼容的读和程序指令。NVM接口116可以包括NVM驱动器117和总线控制器118。NVM驱动器117可以包括用于解释来自程序的存储器访问命令的特定于NVM或特定于厂商的软件和/或固件。在某些实施例中,NVM驱动器117可以包括提供对NVM120不同部分的访问的多个软件模块或驱动器。例如,NVM驱动器117可以包括区块设备驱动器,用于通过文件系统提供对NVM120中至少一些存储单元的访问。此外,NVM驱动器117可包括单独的非易失性预引导存储驱动器(例如,掩模型ROM),用于提供对存储在NVM120中其它存储单元中的非易失性预引导信息(例如,电子设备100在引导过程中使用的信息)的访问。NVM驱动器117可以进一步包括各种软件模块或驱动器,以便在例如操作系统和NVM120之间提供分层的软件接口。NVM驱动器117可包括较低级的软件模块,其与NVM120进行接口,并且从NVM驱动器117的较高级的软件模块、操作系统和任何应用中抽象掉NVM120的细节。较低级的软件模块可以包括,例如,将NVM120的区块分组为供较高级的软件模块使用的超级块的驱动器。较低级的软件模块还可以包括非易失性预引导存储驱动器。在某些实施例中,NVM驱动器117可以被配置在只读环境中,在只读环境中,驱动器117能够提供对NVM120的只读访问。只读环境可以实现较小的软件模块和较快的速度。因此,这种环境可以在设备引导期间使用,在设备引导期间,对NVM120进行写入通常是不必要的。在其它一些实施例中,NVM驱动器117可以被配置在可写环境中,在可写环境中,NVM驱动器117可以指示总线控制器118执行对NVM120的一个或多个写入。具体地,当在可写环境下工作时,NVM驱动器117可以运行被编译用于电子设备100的可写环境的软件模块。总线控制器118可以包括使NVM驱动器117能够使用NVM120的总线规格(例如,数据率)访问NVM120的任何适当的硬件部件。在图1中未示出的一些实施例中,NVM驱动器117和/或总线控制器118可以被实现在用于NVM120的一个单独的存储器控制器(例如,闪存控制器)中,诸如闪存驱动器中。在这些实施例中,SoC110或SoC控制电路112可以充当主机控制器。例如,作为主机控制器,SoC110可以向NVM120发出读和写请求。虽然NVM接口116和SoC控制电路112被示出为分别的模块,但是这仅仅是为了简化对本发明实施例的描述。应当理解,这些模块可以共享硬件部件、软件部件、或这两者。例如,SoC控制电路112可以为NVM接口116执行基于软件的存储器驱动器。当电子设备100加电或重启时,引导程序可以从NVM120装入存储器114中。电子设备100然后可以使用该引导程序来将数据(例如,操作系统及相关的固件和内核)从NVM120装入到存储器114中。在引导程序读取存储在NVM120的一个或多个区块中的数据和将其装入到存储器114中时,可能会在这些区块中的一些区块中检测到错误。例如,某些错误可能是非致命错误(例如,通过发出一个或多个刷新通知而指出的错误),而其它一些错误可能是致命错误(例如,通过发出一个或多个无法纠正的纠错编码(uncorrectableerrorcorrectioncoding,“uECC”)通知而指出的错误)。有多个因素可能阻止这些错误被设备100纠正。一个因素是当数据正在由引导程序读取时,设备100可能工作在无法纠正错误的只读环境中。如前面所提到的,“只读环境”可以指电子设备不能对NVM执行写入从而不能纠正在NVM中检测到的任何错误的工作状态。另一因素是某些检测到的错误可能是瞬态的。例如,在设备引导期间,电子设备100可能接收到一个或多个刷新通知,其指出需要对特定页面或区块执行刷新操作。然而,在随后读取该页面或区块时,设备100可能不会接收到任何另外的刷新通知。尽管如此,仍然应当对该页面或区块执行刷新操作。此外,由于正在装入的数据仅仅由引导程序读取,一旦设备100已经完成了引导,设备100可能无法再次检测到这些错误。因而,在设备引导完成之后,这些错误可能未被纠正。结果,尽管最好是尽快地纠正这些错误(例如,通过停用这一个或多个区块或者将所存储的数据移动到NVM120中的不同区块),但设备100可能继续工作,直到固件无法装入(例如,由于一个或多个致命错误)。这时可能就需要对设备100执行强制还原(forcerestore)0即使在完成了强制还原之后,原始错误可能仍然保持未被纠正。特别地,在强制还原期间,新固件可能被写入NVM120。在某些情况下,新固件可能被写入到曾存储旧固件的相同区块。通常,设备100可能不会重新检测原始错误,因为没有协议让设备100在将新固件写入NVM120之前读出并检查旧固件。一种可能的解决方案是在引导过程完成之后让电子设备100重新检验存储在存储器114中的固件。但是,使用这种方法,设备100可能无法重新检测瞬态的非致命错误。而且,这种方法可能对设备性能有负面影响,因为设备100在它原本可以是全功能的时候浪费时间读数据。因此,为了防止固件故障和避免数据丢失,NVM接口116可以被配置为在设备引导期间检测错误和维护错误日志。一旦设备100已经进入可写环境(例如,设备引导已完成),NVM驱动器117就可以被配置为利用错误日志来纠正所检测到的错误。例如,NVM驱动器117可以将数据移动到更可靠的区块和/或停用接近故障的区块,从而提升整体设备可靠性。如前面所提到的,“可写环境”可以指电子设备的一个或多个部件能够对NVM执行写入操作的工作状态。现在参考图2,示出了电子设备引导的示意性图示200。存储器214可以与存储器114(图1)相同或相似。同样,NVM220可以与NVM120(图1)相同或相似。应当理解,图2中示出的存储器214的部分230-234仅仅是示意性的。例如,所示出的每个部分的大小是示意性的,并且不应当被视为是将实施例限制为所示出的大小。还应当理解,各个部分的顺序可以被重新安排为任何适当的顺序。在某些实施例中,电子设备(例如图1的电子设备100)的操作系统可以在电子设备的加电或重启期间从NVM220引导。如图2所示,例如,当设备在时间段Tl期间加电或重启时,引导程序230可以通过NVM接口(例如图1的NVM接口116)从NVM220被装入易失性存储器214中。在时间段T2期间,引导程序230可以被配置为将操作系统和相关数据装入到存储器214中。例如,除操作系统以外,NVM接口还可以装入内核和固件,它们可用于配置操作系统和/或可以由操作系统使用以进行启动。特别地,NVM接口可以从NVM的一个或多个存储单元(例如,一个或多个区块)中读取操作系统、内核和固件。在某些实施例中,NVM接口可以在只读环境下执行该读取。从而,如图2所示,操作系统和相关数据可以由数据232表示,其可以通过NVM接口从NVM220装入存储器214中。在数据232被装入存储器214中时,NVM接口可以检测NVM220中的一个或多个错误(例如,正从NVM220被读取的固件中的一个或多个错误)。在检测到这样的错误后,NVM接口可以将一个或多个错误通知(例如,刷新通知或uECC通知)存储在存储器214的一个部分中。例如,在时间段T3期间,NVM接口可以将一个或多个错误通知存储在错误日志2;34中,错误日志234可被实现为存储器214中的暂存缓冲区(scratchmemorybuffer)和/或保留的随机存取存储区域。一旦电子设备已经引导(例如,操作系统已装入存储器214中并且已经启动),NVM驱动器(例如图1的NVM驱动器117)就可以检查错误日志234并执行一个或多个纠正动作。特别地,NVM驱动器可以工作在可写环境中,在该环境中,NVM驱动器可以指示总线控制器(例如图1的总线控制118)执行一个或多个纠正动作。因而,在图2的时间段T4期间,NVM驱动器可以检查错误日志234。例如,NVM驱动器可以处理错误日志234并读取一个或多个错误通知。然后,在时间段T5期间,NVM驱动器可以利用错误通知来纠正错误250。例如,响应于从错误日志234读取一个或多个刷新通知,NVM驱动器可以刷新存储在NVM220的页面或区块中的数据(例如,通过执行垃圾收集(gartagecollection)).作为另一例子,响应于从错误日志234读取一个或多个uECC通知,NVM驱动器可以发送表明设备可能需要还原的通知。参考图3,示出了用于处理从NVM(例如图1的NVM120或图2的NVM220)进行设备引导期间的错误的示意性过程300的流程图。过程300的步骤可以由能够与NVM进行接口的NVM接口(例如图1的NVM接口116)执行,由能够向NVM写入数据的NVM驱动器(例如图1的NVM驱动器117)执行,或者由电子设备(例如图1的电子设备100)任何部件或部件组合来执行。过程300可以在步骤302开始。在步骤304,NVM接口可以更新固件。例如,固件可以在电子设备在工厂中时进行更新,或者可以在设备正在使用时的软件下载期间进行更新。然后,在步骤306,可以确定固件更新是否成功。如果在步骤306确定固件更新不成功,则过程300可以返回步骤304,在这里可以重新更新固件。如果在步骤306确定固件更新成功,则过程300可以进行到步骤308。在步骤308,电子设备可以从NVM引导。例如,NVM接口可以将引导程序从NVM装入易失性存储器(例如图1的存储器114或图2的存储器214)。然后,使用引导程序,NVM接口可以尝试将操作系统、内核和固件装入到易失性存储器中。例如,如图2所示,NVM接口可以将引导程序230从NVM220装入存储器214,并且引导程序230可以尝试将数据232装入到存储器214中。继续到步骤310,可以确定是否发生了致命错误(例如,致命的引导装入错误)。这样的致命错误可能阻止电子设备成功引导。如果在步骤310确定发生了致命错误,则过程300可以返回步骤304,在这里NVM接口可以尝试再次更新固件。如果在步骤310确定没有发生致命错误,则过程300可以进行到步骤312。在步骤312,可以确定NVM中是否发生了至少一个错误(例如,在固件装入期间的一个或多个错误)。如果在步骤312确定NVM中没有发生至少一个错误,则一旦NVM接口完成了将操作系统、内核和固件装入到易失性存储器中,并且操作系统已经启动(例如,设备已到达可写环境),过程300就可以进行到步骤314。然而,如果在步骤312确定NVM中发生了至少一个错误,则过程300可以进行到步骤316。在某些实施例中,NVM接口可以响应于接收到一个或多个错误通知(例如,刷新通知和/或uECC通知)而确定发生了至少一个错误。例如,如图2所示,NVM接口可以检测NVM220中的一个或多个错误250。在步骤316,一个或多个错误通知可以被存储在易失性存储器的一个部分中。例如,如图2所示,NVM接口可以将错误通知存储在存储器214的错误日志234中。在存储了一个或多个错误通知后,过程300可以进行到步骤314。在步骤314,可以确定在设备引导期间是否曾检测到NVM中的一个或多个错误。例如,NVM驱动器(例如,图1的NVM驱动器117)可以处理错误日志,并且确定错误日志中是否存储了一个或多个错误通知。如果在步骤314确定在设备引导期间没有检测到错误,过程300可以在步骤318结束。在某些实施例中,在稍后的一个时间点,电子设备可以断电并重启。然后可以启动子过程330,其中在步骤308,电子设备可以从NVM引导。如果在步骤314确定在设备引导期间曾检测到一个或多个错误,则NVM驱动器可以尝试利用所存储的错误通知来纠正这一个或多个错误。因此,过程300可以进行到步骤320。在步骤320,可以确定在设备引导期间是否曾检测到一个或多个致命错误。例如,NVM驱动器可以确定错误日志是否包括一个或多个uECC通知。如果在步骤320确定在设备引导期间检测到的错误是致命错误,过程300可以进行到步骤322。在步骤322,NVM驱动器可以停用与该致命错误相关联的一个或多个区块。例如,NVM驱动器可以首先识别相关联的区块。NVM驱动器然后可以通过将存储在该相关联的区块中的数据复制到NVM中的其它区块而停用该相关联的区块。在复制了数据之后,该相关联的区块可以从可用的可编程区块的库中被停用。在停用这些区块后,过程300可以返回步骤304,在这里,NVM接口可以强制电子设备还原。例如,NVM接口可以尝试再次更新固件。如果在步骤320确定在设备引导期间检测到的错误不是致命错误,则过程300可以进行到步骤324。例如,NVM驱动器可能已经确定该一个或多个错误是对引导而言不重要的非致命错误。在步骤324,NVM驱动器可以移动存储在与该非致命错误相关联的一个或多个区块中的数据。这种预防性移动可以防止非致命错误在以后发展为致命错误。例如,NVM驱动器可以首先识别相关联的区块。在识别了该区块之后,NVM驱动器可以将存储在该相关联的区块中的数据写入NVM的其它区块。过程300然后可以在步骤318结束。将会理解,错误日志可以在电子设备(例如图2的电子设备100)的任何引导过程期间被维护和处理。因此,步骤308到322(图3中用虚线框出并被标注为子过程330)可以表示由NVM接口和/或NVM驱动器在任何设备引导过程期间采取的步骤。例如,在正常的设备引导期间,子过程330可以开始于步骤308(例如,当正在运行的电子设备断电和重启时)。应当理解,图3的过程仅仅是示例性的。过程300和子过程330的任何步骤都可以被去除、修改或组合,并且可以增加任何另外的步骤,而不背离本发明的范围。给出所描述的本发明的实施例是出于说明的目的而不是限制。权利要求1.一种处理电子设备中的错误的方法,该方法包括从非易失性存储器(NVM)引导电子设备;确定在NVM中是否发生了错误;响应于确定在NVM中发生了错误,将至少一个错误通知存储在易失性存储器的一个部分中;和一旦电子设备完成了引导,使用所述至少一个错误通知纠正所述错误。2.如权利要求1所述的方法,还包括响应于确定在NVM中没有发生错误,继续从NVM引导电子设备。3.如权利要求1所述的方法,其中所述易失性存储器的所述一个部分是存储缓冲区。4.如权利要求1所述的方法,其中所述易失性存储器的所述一个部分是保留的随机存取存储区域。5.如权利要求1所述的方法,其中所述纠正包括确定所述错误是非致命错误;识别NVM中与所述错误相关联的至少一个区块;和将存储在所述至少一个区块中的数据写入该NVM中的另一个区块。6.如权利要求1所述的方法,其中所述纠正包括确定所述错误是致命错误;识别NVM中与所述错误相关联的至少一个区块;和停用所述至少一个区块。7.如权利要求6所述的方法,还包括强制电子设备还原;和更新电子设备上的固件。8.一种电子设备,包括非易失性存储器(NVM);操作以存储错误日志的易失性存储器;和能够操作以访问NVM的存储器接口,其中该存储器接口操作以将引导程序从NVM装入到所述易失性存储器中;使用所述引导程序将固件从NVM装入到所述易失性存储器中;确定在固件装入期间是否发生了至少一个错误;和响应于确定发生了至少一个错误,在所述错误日志中存储至少一个错误通知。9.如权利要求8所述的电子设备,其中当固件正被装入时,所述电子设备处于只读环境中。10.如权利要求8所述的电子设备,其中所述存储器接口操作以响应于接收到刷新通知和无法纠正的纠错编码通知中的至少一个而确定发生了所述至少一个错误。11.如权利要求8所述的电子设备,其中所述存储器接口操作以将操作系统装入所述易失性存储器中。12.如权利要求11所述的电子设备,还包括操作以向NVM写入数据的NVM驱动器。13.如权利要求12所述的电子设备,其中所述NVM驱动器进一步操作以处理所述错误日志;和纠正所述至少一个错误。14.如权利要求8所述的电子设备,其中响应于确定没有发生所述至少一个错误,所述存储器接口操作以继续将固件装入所述易失性存储器中。15.如权利要求8所述的电子设备,其中所述NVM是NAND闪存。16.一种存储器接口,包括控制电路,该控制电路操作以在只读环境中将固件从电子设备的非易失性存储器(NVM)读取到该电子设备的易失性存储器;和在被读取的固件中检测至少一个错误;和NVM驱动器,该NVM驱动器操作以便一旦电子设备到达了可写环境就纠正所述至少一个错误。17.如权利要求16所述的存储器接口,其中所述控制电路操作以将至少一个错误通知存储在所述易失性存储器的一个部分中。18.如权利要求16所述的存储器接口,其中所述NVM驱动器在可写环境中工作。19.如权利要求16所述的存储器接口,其中所述NVM驱动器操作以确定所述至少一个错误是非致命错误;识别NVM中与该错误相关联的至少一个区块;和将存储在该至少一个区块中的数据移动到该NVM的至少一个其它区块。20.如权利要求16所述的存储器接口,其中所述NVM驱动器操作以确定所述至少一个错误是致命错误;识别NVM中与该错误相关联的至少一个区块;将存储在该至少一个区块中的数据复制到该NVM的至少一个其它区块;和停用所述至少一个区块。21.—种处理电子设备中的错误的装置,该装置包括用于从非易失性存储器(NVM)引导电子设备的模块;用于确定在NVM中是否发生了错误的模块;用于响应于确定在NVM中发生了错误,将至少一个错误通知存储在易失性存储器的一个部分中的模块;和用于一旦电子设备完成了引导,使用所述至少一个错误通知纠正所述错误的模块。22.如权利要求21所述的装置,还包括用于响应于确定在NVM中没有发生错误,继续从NVM引导电子设备的模块。23.如权利要求21所述的装置,其中所述易失性存储器的所述一个部分是存储缓冲区。24.如权利要求21所述的装置,其中所述易失性存储器的所述一个部分是保留的随机存取存储区域。25.如权利要求21所述的装置,其中所述用于纠正的模块包括用于确定所述错误是非致命错误的模块;用于识别NVM中与所述错误相关联的至少一个区块的模块;和用于将存储在所述至少一个区块中的数据写入该NVM中的另一个区块的模块。26.如权利要求21所述的装置,其中所述用于纠正的模块包括用于确定所述错误是致命错误的模块;用于识别NVM中与所述错误相关联的至少一个区块的模块;和用于停用所述至少一个区块的模块。27.如权利要求沈所述的装置,还包括用于强制电子设备还原的模块;和用于更新电子设备上的固件的模块。全文摘要本发明涉及处理从非易失性存储器进行设备引导期间的错误。提供了用于处理从非易失性存储器(“NVM”)进行设备引导期间的错误的系统和方法。电子设备的NVM接口可以被配置为在设备正在引导时检测错误并且在易失性存储器中维护错误日志。一旦设备引导完成,电子设备的NVM驱动器可被配置为使用错误日志纠正所检测到的错误。例如,电子设备可以将数据移动到更可靠的区块和/或停用接近故障的区块,从而提升整体设备可靠性。文档编号G06F11/00GK102385535SQ20111025345公开日2012年3月21日申请日期2011年8月24日优先权日2010年8月31日发明者D·J·波斯特,K·赫曼,M·拜奥姆,N·J·瓦克拉特申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1