非易失性存储器和非易失性存储器的数据改写方法

文档序号:6425192阅读:142来源:国知局
专利名称:非易失性存储器和非易失性存储器的数据改写方法
技术领域
本发明涉及在存储卡等电子装置中设置的例如NAND型闪速存储器等非易失性存储器中具有即使因停电等发生系统关闭,重新启动时能够检测出产生了缺陷的数据块,并恢复至正常的存储状态的非易失性存储器和该非易失性存储器中的数据改写方法。
背景技术
近年来,适合于存储大量数据的低成本的NAND型闪速存储器等非易失性存储器被广泛应用于家电装置、便携式电子装置、存储卡等电子装置中。当例如在具备了闪速存储器的电子装置中因停电或工作不正常等而发生系统关闭时,存在存储于闪速存储器中的部分数据被破坏的可能性。作为对这样的系统关闭的数据保护措施的一种方式,例如利用检验和、CRC(循环冗余检验)码将写入闪速存储器中的数据冗余化,同时在因电源接通而系统恢复时由存储在闪速存储器中的数据计算出检验和,判断是否存在数据异常。
另外,作为数据保护措施的另一种方式,除闪速存储器外,设置能够以比闪速存储器更高的速度进行写入的辅助非易失性存储器,在该辅助非易失性存储器中存储最新的规定数目的工作状态(状态)的总线信息。图1是示出这种现有的具备闪速存储器的电子装置的概略结构的方框图。在图1中,101是电子装置,102是CPU。103是作为主存储器而提供的闪速存储器,104是与闪速存储器相比可以高速写入的辅助非易失性存储器,105是连接CPU 102与闪速存储器103的总线,106是从总线分支的、与辅助非易失性存储器104连接的总线,107是向辅助非易失性存储器104供给控制信号的信号线。
下面说明图1所示的电子装置的工作。例如,在闪速存储器103的各工作期间的前半期间,CPU 102向辅助非易失性存储器104供给控制信号,辅助非易失性存储器104响应于该控制信号经总线106记录总线105上的信息。至于该总线信息的记录,只记录由数据的写入、读出、擦除等处理引起的状态的最新的多个状态的总线信息。因此,辅助非易失性存储器104不需要那么大的存储容量。据此,即使写入动作及擦除动作需要长时间的闪速存储器在工作中因停电等而发生系统关闭时,由于其前的规定数目的状态的总线信息被记录在辅助非易失性存储器中,所以在系统恢复后,通过对辅助非易失性存储器中记录到的总线信息进行解析,可以确定发生系统关闭时的工作状态,检测出闪速存储器中的数据异常,使闪速存储器恢复至正常的存储状态。
具备闪速存储器的现有的电子装置由于具有上述那样的数据保护功能,不能够采用前者的利用检验和、CRC码的方法来检测系统关闭时的工作状态,所以存在必须建立复杂的系统,以进行恢复系统的处理或恢复闪速存储器的数据的处理的课题。
另外,采用后者的将总线信息存储于辅助非易失性存储器中的方法,必须解析所存储的总线信息,确定发生系统关闭时的工作状态,根据所确定的该工作状态恢复闪速存储器的数据,因而存在必须建立复杂的系统以进行数据恢复处理的课题。

发明内容
本发明是为了解决上述课题而进行的,其目的在于得到能够容易地检测因停电等而系统关闭时的NAND型闪速存储器等非易失性存储器的工作状态、能够迅速而可靠地恢复至正常的存储状态的非易失性存储器和该非易失性存储器的数据改写方法。
本发明的非易失性存储器以具备用于存储数据的数据区和用于存储各种管理信息等的冗余区的物理块为存储单位而构成,在各自的冗余区中设置了存储用于确定与该冗余区所包含的物理块对应的逻辑块的信息的逻辑块信息存储区;存储用于确定作为与对应的逻辑块相关联的前一个物理块的前已使用的物理块的信息的前已使用的物理块信息存储区;以及存储用于识别在进行以该冗余区所包含的物理块为数据写入对象的数据改写工作时发生的各阶段的工作状态的状态信息的状态信息存储区。
通过采用上述的结构,即使因停电等而发生系统关闭,也能够参照状态信息存储区检测在系统关闭时成为写入对象的物理块的工作状态,同时能够参照前已使用的物理块信息存储区确定与上述物理块有关的前已使用的物理块,因此,可以根据工作状态对存在发生了数据破坏的可能性的物理块和与该物理块有关的前已使用的物理块进行恰当的恢复处理,取得可以使非易失性存储器恢复至正常存储状态的效果。
另外,在本发明的非易失性存储器的状态信息存储区中,至少存储表示该状态信息存储区所包含的物理块处于擦除状态的第1状态信息;表示虽完成了对该状态信息存储区所包含的物理块的数据写入,但对应的前已使用的物理块的数据尚未擦除的状态的第2状态信息;以及表示既完成了对该状态信息存储区所包含的物理块的数据写入,同时对应的前已使用的物理块的数据又擦除完毕的状态的第3状态信息。
另外,本发明的非易失性存储器的数据改写方法具有确定成为改写数据的对象的逻辑块的第1步骤;从作为处于擦除状态、可进行写入的物理块的空块中确定成为数据写入对象的物理块的第2步骤;参照将逻辑块与物理块进行联系的地址转换表确定作为与改写对象的逻辑块关联的物理块的前已使用的物理块的第3步骤;在写入对象的物理块中写入数据的第4步骤;擦除前已使用的物理块的数据的第5步骤;以及更新地址转换表,使得写入对象的物理块与改写对象的逻辑块相关联的第6步骤,对写入对象的物理块,最初设定表示处于擦除状态的第1状态信息,设定表示在第4步骤的处理结束后完成了数据写入的第2状态信息,设定表示在第5步骤的处理结束后前已使用的物理块数据擦除完毕的第3状态信息。
通过采用上述的结构,由于对在数据改写工作时发生的各阶段的状态,可以在系统关闭发生时所需的恢复处理的内容改变的时刻变更状态信息,所以得到了参照状态信息可以容易地将非易失性存储器恢复至正常的存储状态的效果。
另外,本发明的非易失性存储器和非易失性存储器的数据改写方法用同样的位数表现第1状态信息、第2状态信息和第3状态信息,通过将表现第1状态信息的位列中的1位或多位的二进制数据从“1”变更为“0”构成第2状态信息;通过将表现第2状态信息的位列中的1位或多位的二进制数据从“1”变更为“ 0”构成第3状态信息。
通过采用上述的结构,即使在变更状态信息时因停电等而发生了系统关闭,从而出现了状态信息不具有本来应取的值的异常,若鉴于可以通过将构成状态信息的位列中的1位或多位的二进制数据从“1”变为“0”来进行状态信息的变更,则通过取发生了异常的状态信息与表现第2状态信息的位列的逻辑积,并评价该逻辑积,可以判断是在将状态信息从第1状态信息变更为第2状态信息时发生了系统关闭,还是在将状态信息从第2状态信息变更为第3状态信息时发生了系统关闭,取得可以利用简单的判别方式详细地检测非易失性存储器的工作状态,可以迅速而可靠地将非易失性存储器恢复至正常的存储状态的效果。
另外,本发明的非易失性存储器的数据改写方法的从作为处于擦除状态、可进行写入的物理块的空块中确定成为数据写入对象的物理块的第2步骤包括确认空块数目的第7步骤;以及产生随机数,从多个空块中选定1个空块,并将该空块确定为写入对象的物理块的第8步骤。
通过采用上述的结构,可以预计当对非易失性存储器的数据改写次数增多时,各物理块的改写次数被统计平均,取得可以使各物理块的改写次数平均化,从而延长非易失性存储器的寿命的效果。
另外,本发明的非易失性存储器的数据改写方法是设置由只是空块数目依次排列的多个存储部构成的、在各存储部存储用于确定空块的信息的空块登录表,通过根据产生的随机数选定空块登录表内的某一个存储部,来确定成为写入对象的空块的方法。
通过采用上述的结构,取得了容易进行空块的管理,同时通过使各自的空块与作为对构成空块登录表的各存储部分别标明的相对地址而给出的连续整数相联系,仅仅采用在与空块数目相应的规定的数值范围内产生随机数这样的简单方式,就能够以大致相同的概率选定各空块的效果。


图1是示出具备闪速存储器的现有电子装置的概略结构的方框图。
图2是示出非易失性存储器的存储区的逻辑块与物理块的关系的图。
图3是示出存储在物理块内的管理信息的数据结构的图。
图4是示出非易失性存储器中的数据改写工作的流程图。
图5是示出进行数据改写时物理块内的数据变化的图。
图6是示出本发明实施例1的存储状态正常化方法的流程图。
图7是示出异常块中的擦除完毕的物理块的检索处理的流程图。
图8是示出异常块的正常化处理的流程图。
图9是示出在本发明实施例2中使用的空块登录表等的图。
图10是示出本发明实施例2的恰当的空块的检测出方法的流程图。
具体实施例方式
以下参照

本申请的发明的实施例。另外,为了阐明构成实施例的各要素或各工序与构成权利要求书中所述发明的各要素或各工序的对应关系,在以下的详细说明中,紧接着各实施例的各要素或各工序之后恰当地用括号示出与实施例的各要素或各工序对应的权利要求书中所述发明的各要素或各工序。
实施例1图2是示出非易失性存储器的存储区的逻辑块与物理块的关系的图。在可改写的非易失性存储器的代表性产品中有NAND型闪速存储器。这种闪速存储器以块为单位进行管理,数据的擦除(通常对全部位写入二进制数据“1”的工作)以块为单位进行。另外,虽然本申请的发明中的写入基本上以块为单位进行,但关于可以通过只是从“1”向“0”转换1位或多个任意的位的二进制数据进行的数据写入,却能以更小的存储单位进行。
如图2所示,在对闪速存储器进行存取时,例如通过参照在与CPU连接的RAM内存储的地址转换表,将给出的逻辑块地址转换成物理块地址,确定进行数据的擦除、写入、读出等的物理块。采取如此借助于逻辑块地址进行存取的方式,即使存在缺陷的物理块产生时,对该缺陷块的处理工作在替代用的另外的空块中进行时,无论有无块代替,在执行应用程序等的CPU侧可以用同一逻辑块地址进行存取。
图3是示出存储在本申请的发明所采用的物理块内的管理信息的数据结构的图。在图3中,1是存储通常的数据的数据区,2是存储该物理块的管理信息及纠错码等数据的冗余区,物理块由数据区1和冗余区2构成。另外,3是存储与具有该冗余区的物理块对应的逻辑块的地址的逻辑块地址存储区(逻辑块信息存储区),4是存储与具有该冗余区的物理块对应的逻辑块相关联的前1个物理块(以下称这样的物理块为前已使用的物理块)的地址的前已使用的物理块地址存储区(前已使用的物理块信息存储区),5是用于存储在逻辑块地址存储区3中存储的逻辑块地址和在前已使用的物理块地址存储区4中存储的前已使用的物理块地址的纠错码的第1纠错码存储区,6是用于存储分别表示基于对具有该冗余区的物理块进行的处理而发生的各阶段的工作状态的状态信息的状态信息存储区,7是用于存储在数据区1中存储的数据的纠错码的第2纠错码存储区。
下面说明对本申请的发明的闪速存储器进行的数据改写工作。首先,说明在任意的逻辑块中存储的数据的改写工作的概略程序。第1,确定成为数据改写对象的逻辑块。第2,检索空的物理块。第3,向空的物理块中写入改写用的数据。第4,擦除此前与改写对象的逻辑块相关联的物理块的数据。第5,更新地址转换表,使改写对象的逻辑块与进行了写入的物理块相关联。这样,通过采用进行数据改写时在新的物理块中写入数据的同时,擦除在前已使用的物理块中存储的数据的方式,在因停电等发生系统关闭时,可以在改写对象的逻辑块的管理信息残留在写入对象的物理块或前已使用的物理块的某一个中而不消失时进行系统恢复,另外,可以防止因向同一物理块写入的集中而导致的元件变坏,从而延长闪速存储器本身的寿命。
其次,说明数据改写工作的细节。图4是示出数据改写工作的流程图。图5是示出在数据改写时成为擦除处理对象的前已使用的物理块和成为写入处理对象的物理块内的数据变化的图。另外,在图5的左端示出的编号是用于识别在进行数据改写的过程中发生的各阶段的工作状态的状态编号。下面,作为前提条件,设改写对象的逻辑块的地址为L,在地址转换表中最初与该逻辑块关联的前已使用的物理块的地址为P1。另外,在以下的说明中,恰当地将通过地址n进行存取的逻辑块和物理块分别称为逻辑块n和物理块n。首先,确定成为改写对象的逻辑块L(步骤S1(第1步骤))。其次,例如地址以递升次序或递降次序检索闪速存储器的各物理块,检测出空的块,确定该空块的地址P2(步骤S2(第2步骤))。另外,在初始状态(状态0),在成为擦除处理对象的前已使用的物理块P1的冗余区中,作为状态信息存储“0000h”(h表示16进制数),作为逻辑块地址存储L,作为前已使用的物理块地址存储在物理块P1与逻辑块L相关联的前1个与逻辑块L相关联的前已使用的物理块的地址P0。另外,在物理块P2的数据区和冗余区中全部存储二进制数据“1”,即处于擦除状态。
确定了成为数据写入对象的物理块P2后,参照地址转换表确定与逻辑块L相关联的前已使用的物理块的地址P1(步骤S3(第3步骤))。对于物理块P2在数据区1中写入数据的同时,在冗余区2内的逻辑块地址存储区3中写入逻辑块L的地址数据,在前已使用的物理块地址存储区4中写入作为前1个与逻辑块L相关联的擦除对象的前已使用的物理块P1的地址数据,在第1纠错码存储区5中写入对于逻辑块L的地址数据和物理块P1的地址数据的纠错码,在第2纠错码存储区7中写入对于数据区1中存储的数据的纠错码(步骤S4(第4步骤))。另外,在状态信息存储区6中保持状态信息“FFFFh”(第1状态信息)。另外,在图5中,“1->0”表示数据写入正在进行中,在图中的纵方向延伸的箭头表示数据的值从前一阶段的状态原样保持着。另外,关于对上述的物理块P2的数据写入工作,用状态1表示向物理块P2的数据写入正在进行中的工作状态,用状态2表示对物理块P2的数据写入已完成的工作状态,以此使它们相互区别。
对物理块P2的数据写入完成后,将状态信息“AAAAh”(第2状态信息)写入状态信息存储区6,以表示对物理块P2的数据写入完成(步骤S5)。这时,使冗余区2内的其他存储区的数据保持相同的值。另外,关于对上述状态信息存储区6的状态信息写入工作,用状态3表示向状态信息存储区6的数据写入正在进行中的工作状态,用状态4表示对状态信息存储区6写入状态信息“AAAAh”已完成的工作状态,以此使它们相互区别。
在状态信息“AAAAh”的写入完成后,对前已使用的物理块P1的数据进行擦除(步骤S6(第5步骤))。该擦除工作可以通过已述及的对前已使用的物理块P1内的全部存储单元写入二进制数据“1”来实现。另外,图中的“0->1”表示数据擦除正在进行中。另外,关于对上述的前已使用的物理块P1的擦除工作,用状态5表示前已使用的物理块P1的数据的擦除正在进行中的工作状态,用状态6表示前已使用的物理块P1的数据擦除已完成的工作状态,以此使它们相互区别。
对前已使用的物理块P1的数据擦除完成后,将状态信息“0000h”(第3状态信息)写入物理块P2的冗余区2内的状态信息存储区6,以表示对存储在前1个与逻辑块L相关联的前已使用的物理块P1中的数据的擦除完成(步骤S7)。这时,使冗余区2内的其他存储区的数据保持相同的值。另外,关于对上述状态信息存储区6的写入工作,用状态7表示对状态信息存储区6的数据写入正在进行中的工作状态,用状态8表示对状态信息存储区6进行的状态信息“0000h”的写入已完成的工作状态,以此使它们相互区别。然后,在地址转换表中将与逻辑块L相关联的物理块从物理块P1变更为物理块P2(步骤S8(第6步骤)),从而完成数据改写工作。
下面说明随着在因停电、工作不正常等而发生系统关闭后进行的系统恢复处理,使得闪速存储器内的数据存储状态正常化的方法。图6是示出本发明实施例1的存储状态正常化方法的流程图。在系统重新启动时,对作为闪速存储器的存储单位的各物理块进行检索,第1,从冗余区2内的状态信息存储区6读出状态信息(步骤S11)。其次,判断状态信息是否等于“FFFFh”(步骤S12)。当状态信息等于“FFFFh”时,表示在该物理块中存储的数据应该处于擦除状态,因而进行擦除该物理块的数据的处理,即进行对该物理块内的全部存储单元写入二进制数据“1”的处理(步骤S13)。据此,即使在图5所示的状态1或状态2中因停电等发生系统关闭时,也能够擦除正在向该物理块进行写入的数据或已写入其中的数据,将该物理块恢复至与状态信息相应的正常存储状态。另外,关于预定向该物理块写入的数据的再写入,可以通过采用对发生系统关闭的电子装置的主系统或网络服务器进行存取等方法再写入正确的数据来实现。
当在步骤S12中状态信息不等于“FFFFh”时,判断状态信息是否等于“AAAAh”(步骤S14)。当状态信息等于“AAAAh”时,虽然对该物理块的数据写入已完成,但由于存在与该物理块有关的前已使用的物理块的数据擦除未完成的可能性,故而擦除前已使用的物理块的数据(步骤S15),同时向该物理块的状态信息存储区6写入“0000h”(步骤S16)。据此,即使在图5所示的状态4、状态5或状态6中因停电等发生系统关闭时,也能够通过变更检索对象的物理块的状态信息,同时擦除数据未擦除的或正在擦除中的前已使用的物理块的数据,将成为检索对象的物理块和与该物理块有关的前已使用的物理块恢复至的正常的存储状态。
当在步骤S14中状态信息不等于“AAAAh”时,判断状态信息是否等于“0000h”(步骤S17)。当结束步骤S16后,并且在步骤S17中状态信息等于“0000h”时,参照成为检索对象的物理块的逻辑块地址存储区3,确定对应的逻辑块,在地址转换表中登录成为检索对象的物理块作为与该逻辑块对应的物理块(步骤S18)。据此,重新建立了因停电等造成系统关闭而消失了的地址转换表。
当在步骤S17中状态信息不等于“0000h”时,判定成为检索对象的物理块是异常块,将该物理块的地址登录至异常块表中(步骤S19)。在结束步骤S13、结束步骤S18以及结束步骤S19后,判断是否完成对全部物理块的检索(步骤S20)。当对全部物理块的检索未完成时返回步骤S11,对下一个物理块进行同样的处理。另外,当对全部物理块的检索完成时,结束图6所示的处理,进行后述的异常块处理。
在对全部物理块的上述检索处理中,物理块被判定为异常块的主要原因可以考虑如下一些情况在状态3中将写入对象的物理块的状态信息从“FFFFh”变更为“AAAAh”时发生了停电等所致的系统关闭;在状态5中将擦除对象的物理块的状态信息从“0000h”变更为“FFFFh”时发生了停电等所致的系统关闭;以及在状态7中将写入对象的物理块的状态信息从“AAAAh”变更为“0000h”时发生了停电等所致的系统关闭。在这些主要原因之中,当在状态5中将擦除对象的物理块的状态信息从“0000h”变更为“FFFFh”之际发生了停电等所致的系统关闭时,通过对对应的写入对象的物理块进行图6所示的步骤S15的处理,可以使被判定为异常块的物理块成为擦除状态,将该物理块的状态信息纠正为正常值“FFFFh”。因此,可以从异常块表中剔除完成了这样的擦除处理的物理块。
图7是示出异常块中的擦除完毕的物理块的检索处理的流程图。首先,为了对作为异常块被登录的各物理块进行检索,从异常块表中取出登录的物理块的地址,确定检索对象的物理块(步骤S21)。其次,判断状态信息是否等于“FFFFh”(步骤S22)。当状态信息等于“FFFFh”时,表示是完成了擦除处理的前已使用的物理块,故而从异常块表中剔除成为检索对象的物理块的地址(步骤S23)。当结束步骤S23后,并且在步骤S22中状态信息不等于“FFFFh”时,判断是否完成了对作为异常块而被登录的全部物理块的检索(步骤S24)。当未完成对全部物理块的检索时,返回步骤S21,对根据异常块表确定的下一个物理块进行同样的处理。当完成对全部物理块的检索时,结束图7所示的处理,进行后述的关于异常块的下一步处理。
图8是示出异常块的正常化处理的流程图。首先,为了对作为异常块而被登录的各物理块进行检索,从被图7所示的处理纠正了的异常块表中取出登录的物理块的地址,确定成为检索对象的物理块(步骤S31)。其次,从成为检索对象的物理块的冗余区2中取出状态信息,求该状态信息与“AAAAh”的逻辑积(步骤S32)。如已叙述的那样,通过将二进制数据的“1”变为“0”进行NAND型闪速存储器的数据写入。因此,当在状态3中将写入对象的物理块的状态信息从“FFFFh”变更为“AAAAh”时因停电等发生系统关闭而状态信息具有与本来应该取的值不相同的值时,该状态信息与“AAAAh”的逻辑积等于“AAAAh”。另外,当在状态7中将写入对象的物理块的状态信息从“AAAAh”变更为“0000h”时因停电等发生系统关闭而状态信息具有与本来应该取的值不相同的值时,该状态信息与“AAAAh”的逻辑积不等于“AAAAh”。
鉴于状态信息的上述特性,在下一个步骤中判断状态信息与“AAAAh”的逻辑积是否等于“AAAAh”(步骤S33)。当逻辑积等于“AAAAh”时,由于对成为检索对象的物理块的数据写入虽已完成,但与该物理块有关的前已使用的物理块的数据擦除尚未完成,所以擦除由在前已使用的物理块的地址存储区4中存储的地址确定的前已使用的物理块的数据(步骤S34)。当结束步骤S34后,并且在步骤S33中判定逻辑积不等于“AAAAh”时,向成为检索对象的物理块的状态信息存储区6写入“0000h”(步骤S35)。通过进行步骤S34和步骤S35的处理,即使在图5所示的状态3中因停电等而发生系统关闭时,也能够进行前已使用的物理块的数据擦除和新的状态信息的写入,使成为检索对象的物理块和前已使用的物理块恢复至与状态信息相应的正常存储状态。另外,通过进行步骤S35的处理,即使在图5所示的状态7中因停电等而发生系统关闭时,也能够进行新的状态信息的写入,使成为检索对象的物理块恢复至与状态信息相应的正常存储状态。
接着,参照成为检索对象的物理块的逻辑块地址存储区3确定对应的逻辑块,在地址转换表中登录成为检索对象的物理块作为与该逻辑块对应的物理块(步骤S36)。通过对作为异常块而被登录的全部物理块进行步骤S36的处理,可以完成因停电等造成系统关闭而消失了的地址转换表的恢复处理。
接着,判断是否完成了对作为异常块而被登录的全部物理块的检索(步骤S36)。当未完成对全部物理块的检索时返回步骤S31,对根据异常块表确定的下一个物理块进行同样的处理。当完成了对全部物理块的检索时,结束处理。
如以上所述,按照本实施例1,由于在通过对成为数据改写对象的逻辑块分配处于擦除状态的新的物理块、对该物理块写入数据同时擦除在此以前与逻辑块相关联的前已使用的物理块的数据来进行数据改写的闪速存储器中冗余区2具有逻辑块地址存储区3、前已使用的物理块地址存储区4和状态信息存储区6而被构成,所以即使因停电等而发生系统关闭,也能够参照状态信息存储区6检测在系统关闭时成为写入对象的物理块的工作状态,同时能够参照前已使用的物理块的地址存储区4确定与上述物理块有关的前已使用的物理块,因此,可以根据工作状态对存在发生数据破坏的可能性的物理块和与该物理块有关的前已使用的物理块进行恰当的恢复处理,取得可以使闪速存储器恢复至正常存储状态的效果。
另外,由于作为状态信息被构成为具有表示物理块处于擦除状态的“FFFFh”;表示虽完成了对写入对象的物理块的数据写入,但对应的前已使用的物理块的数据尚未擦除的状态的“AAAAh”;以及表示既完成了对写入对象的物理块的数据写入,同时对应的前已使用的物理块的数据也擦除完毕的状态的“0000h”,所以即使在物理块中发生数据破坏时,若状态信息是“FFFFh”,则可对写入对象的物理块进行擦除,另外,若状态信息是“AAAAh”,则可对前已使用的物理块进行擦除,对在数据改写工作时发生的各状态,可以在发生系统关闭时所需的恢复处理的内容改变的时刻变更状态信息,因此,取得通过参照状态信息可以容易地将闪速存储器恢复至正常的存储状态的效果。
另外,由于随着数据改写的进行,写入对象的物理块的状态信息变化为“FFFFh”、“AAAAh”、“0000h”,所以即使在变更状态信息时因停电等而发生系统关闭,从而产生了状态信息不具有本来应取的值的异常,若鉴于可以通过将构成状态信息的位列的规定位的二进制数据从“1”变为“0”来进行状态信息的变更,则通过得到发生异常的状态信息与“AAAAh”的逻辑积,并评价该逻辑积,可以判断是在将状态信息从“FFFFh”变更为“AAAAh”时发生了系统关闭,还是在将状态信息从“AAAAh”变更为“0000h”时发生了系统关闭,可以利用简单的判别方式详细地检测闪速存储器的工作状态,取得可以迅速而可靠地使闪速存储器恢复至正常的存储状态的效果。
实施例2本实施例2在具有空块登录表这一点上与实施例1有差异,该空块登录表用于依次登录例如作为空块地址等而给出的空块确定信息,以便检测出成为数据写入对象的空块。
图9是示出空块登录表等的图。在图9中,11是记录空块数目的空块数计数器,12是由各自依次排列的多个存储部构成的空块登录表。空块数计数器11和空块登录表12两者皆可以在例如与CPU连接的RAM内的工作区构成。如图9所示,当在空块数计数器11中存储的空块的数目为N时,在空块登录表12中的、以作为相对地址给出的地址0至地址(N-1)作为标号可进行存取的各存储部存储各空块的地址。
下面说明本实施例2的存储器控制方法。由于在任意逻辑块中存储的数据的改写工作基本上与图4所示的流程图的改写工作相同,所以省略其说明。如上所述,在本实施例2中,在作为步骤2示出的检测出恰当的空块的方法上有差异。图10是示出本发明实施例2的恰当的空块的检测出方法的流程图。首先,参照空块数计数器11,确认作为在该时刻处于擦除状态、可进行数据写入的物理块的空块的数目(步骤S41(第7步骤))。当设空块数为N时,为了从N个空块中选定恰当的空块,使在0至N-1的范围内产生随机数,决定空块登录表12中的存取地址M(步骤S42)。接着,读出在空块登录表12的地址M中登录的物理块的地址P2,将该物理块P2确定为写入对象的物理块(步骤S43(第8步骤))。写入对象的物理块P2被确定后,以随着该写入动作而成为擦除对象的物理块的地址P1替代地址P2,在空块登录表12的地址M的存储部中进行写入(步骤S44)。另外,关于写入对象的物理块P2被确定后的处理,如图4所示,将数据写入到写入对象的物理块P2中,擦除前已使用的物理块P1的数据,更新地址转换表,由此完成数据改写。
如以上所述,按照本实施例2,在取得与实施例1相同的效果的同时,由于被构成为具有确认空块的数目的步骤S41;以及产生随机数,按照该随机数从多个空块中选定1个空块,将选定的空块确定为写入对象的物理块的步骤S43,所以可以预计当对闪速存储器的数据改写次数增多时,各物理块的改写次数被统计平均,取得可以利用简单的结构使各物理块的改写次数平均化,从而延长闪速存储器的寿命的效果。向NAND型闪速存储器等闪速存储器的同一物理块集中写入时元件易变坏,在物理块之间将改写次数平均,在延长闪速存储器的寿命方面是重要的。
另外,由于被构成为在以空块数目依次排列的存储部中,分别设置存储了空块的地址的空块登录表12,借助于根据产生的随机数选定空块登录表12内的某一个存储部来确定成为写入对象的1个空块,所以取得容易进行空块管理,同时借助于使各自的空块与作为对构成空块登录表的各存储部分别标明的相对地址而给出的连续整数相关联,仅仅采用在与空块数目相应的规定的数值范围内产生随机数这样的简单方式,就能够以大致相同的概率选定各空块的效果。
另外,利用上述实施例1和实施例2说明的闪速存储器和闪速存储器的数据改写方法并不限制本申请的发明,意在作为示例进行公开。本申请的发明的技术范围由权利要求范围的记述定出,在权利要求范围所述的技术范围内可进行种种设计方面的变更。例如,状态信息不限于“FFFFh”、“AAAAh”、“0000h”,如果通过将表现示出处于擦除状态的第1状态信息位列中的1位或多位的二进制数据从“1”变更为“0”来构成表示虽完成了对写入对象的物理块的数据写入,但对应的前已使用的物理块的数据尚未擦除的状态的第2状态信息;通过将表现第2状态信息的位列中的1位或多位的二进制数据从“1”变更为“0”来构成表示既完成了对写入对象的物理块的数据写入,同时对应的前已使用的物理块的数据又擦除完毕的状态的第3状态信息,则可以设定任意的位列作为第1、第2、第3状态信息。
权利要求
1.一种非易失性存储器,它是以具备用于存储数据的数据区和用于存储各种管理信息等的冗余区的物理块为存储单位而构成的非易失性存储器,其特征在于各自的上述冗余区的结构具有存储用于确定与该冗余区所包含的物理块对应的逻辑块的信息的逻辑块信息存储区;存储用于确定作为与对应的逻辑块相关联的前一个物理块的前已使用的物理块的信息的前已使用的物理块信息存储区;以及存储用于识别在进行以该冗余区所包含的物理块为数据写入对象的数据改写工作时发生的各阶段的工作状态的状态信息的状态信息存储区。
2.如权利要求1所述的非易失性存储器,其特征在于在状态信息存储区中至少存储表示该状态信息存储区所包含的物理块处于擦除状态的第1状态信息;表示虽完成了对该状态信息存储区所包含的物理块的数据写入,但对应的前已使用的物理块的数据尚未擦除的状态的第2状态信息;以及表示既完成了对该状态信息存储区所包含的物理块的数据写入,同时对应的前已使用的物理块的数据又擦除完毕的状态的第3状态信息。
3.如权利要求2所述的非易失性存储器,其特征在于用同样的位数表现第1状态信息、第2状态信息和第3状态信息,通过将表现第1状态信息的位列中的1位或多位的二进制数据从“1”变更为“0”构成第2状态信息,通过将表现第2状态信息的位列中的1位或多位的二进制数据从“1”变更为“0”构成第3状态信息。
4.一种非易失性存储器的数据改写方法,这是对以具备用于存储数据的数据区和用于存储各种管理信息等的冗余区的物理块为存储单位而构成的非易失性存储器进行数据改写的数据改写方法,其特征在于具有确定成为改写数据的对象的逻辑块的第1步骤;从作为处于擦除状态、可进行写入的物理块的空块中确定成为数据写入对象的物理块的第2步骤;参照将逻辑块与物理块进行联系的地址转换表确定作为与改写对象的逻辑块关联的物理块的前已使用的物理块的第3步骤;在写入对象的物理块中写入数据的第4步骤;擦除前已使用的物理块的数据的第5步骤;以及更新地址转换表,使得写入对象的物理块与改写对象的逻辑块相关联的第6步骤,对写入对象的物理块,最初设定表示处于擦除状态的第1状态信息,设定表示在第4步骤的处理结束后完成了数据写入的第2状态信息,设定表示在第5步骤的处理结束后前已使用的物理块的数据擦除完毕的第3状态信息。
5.如权利要求4所述的非易失性存储器的数据改写方法,其特征在于用同样的位数表现第1状态信息、第2状态信息和第3状态信息,通过将表现第1状态信息的位列中的1位或多位的二进制数据从“1”变更为“0”构成第2状态信息;通过将表现第2状态信息的位列中的1位或多位的二进制数据从“1”变更为“0”构成第3状态信息。
6.如权利要求4所述的非易失性存储器的数据改写方法,其特征在于第2步骤包括确认空块数目的第7步骤;以及产生随机数,从多个空块中选定1个空块,并将该空块确定为写入对象的物理块的第8步骤。
7.如权利要求6所述的非易失性存储器的数据改写方法,其特征在于设置由只是空块数目依次排列的多个存储部构成的、在各存储部存储用于确定空块的信息的空块登录表,通过根据产生的随机数选定空块登录表内的某一个存储部,确定成为写入对象的空块。
8.一种非易失性存储器的数据改写方法,这是采用以具备用于存储数据的数据区和用于存储各种管理信息等的冗余区的物理块为存储单位而构成的,在各冗余区设置了存储用于识别在进行数据改写工作时在写入对象的物理块中出现的各阶段的工作状态的状态信息的状态信息存储区的非易失性存储器进行数据改写的数据改写方法,其特征在于具有确定成为改写数据的对象的逻辑块的第1步骤;从作为处于擦除状态、可进行写入的物理块的空块中确定成为数据写入对象的物理块的第2步骤;参照将逻辑块与物理块进行联系的地址转换表确定作为与改写对象的逻辑块关联的物理块的前已使用的物理块的第3步骤;在写入对象的物理块中写入数据的第4步骤;擦除前已使用的物理块的数据的第5步骤;以及更新地址转换表,使得写入对象的物理块与改写对象的逻辑块相关联的第6步骤,上述第2步骤包括确认空块数目的第7步骤;以及产生随机数,从多个空块中选定1个空块,并将该空块确定为写入对象的物理块的第8步骤。
全文摘要
本发明是能够容易地检测因停电等致使系统关闭时的工作状态、可以用简单的程序可靠而迅速地恢复至正常的存储状态的非易失性存储器和非易失性存储器的数据改写方法。在以具备数据区(1)和冗余区(2)的物理块为存储单位而构成的非易失性存储器中,冗余区(2)具有下述区域而被构成存储对应的逻辑块的地址的逻辑块地址存储区(3);存储作为擦除对象的物理块的地址的前已使用的物理块地址存储区(4);以及存储用于识别对物理块进行数据改写工作时发生的各阶段的工作状态的状态信息的状态信息存储区(6)。
文档编号G06F11/14GK1535425SQ0281479
公开日2004年10月6日 申请日期2002年7月19日 优先权日2001年7月25日
发明者中田充, 富田光彦, 彦 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1