一种防止电源中断影响的将数据写入闪存模块的方法

文档序号:1719603 发布日期:2019-12-17 浏览:15次 >En<

阅读说明:本技术 一种防止电源中断影响的将数据写入闪存模块的方法 (Method for writing data into flash memory module for preventing influence of power interruption ) 是由 张为 赵创 于 2019-08-21 设计创作,主要内容包括:本发明涉及一种防止电源中断影响的将数据写入闪存模块的方法,包括:构建页状态表:在写过程中,页状态表与写入页每一位相对应,如果正常写入数据时,页状态表中对应位的值为0;当出现写入异常时,页状态表中对应位的值为1,在存储模块的缓冲器中将分配空间来备份写入损坏的页的数据,通过页状态表确定数据要写入的特定页面是否已损坏;将数据写入存储模块;若在写入过程中断电,则重启存储模块;重启之后,存储模块从已写入数据的页中读取数据来重新建立页状态表;根据页状态表将数据写入页,通过页状态表中的值确定数据要写入的页是否已损坏:当页没有损坏时,直接将数据写入该页;当页已损坏时,将备份在缓冲器中的数据写入该页。(The invention relates to a method for writing data into a flash memory module, which can prevent the influence of power interruption, and comprises the following steps: constructing a page state table: in the writing process, the page state table corresponds to each bit of the writing page, and if data is normally written, the value of the corresponding bit in the page state table is 0; when the write-in is abnormal, the value of a corresponding bit in the page state table is 1, space is allocated in a buffer of the storage module to backup data written in a damaged page, and whether a specific page to which the data is written is damaged or not is determined through the page state table; writing data into the storage module; if the power is off in the writing process, restarting the storage module; after restarting, the storage module reads data from the page written with data to reestablish the page state table; writing data to the page according to the page status table, determining whether the page to which the data is to be written is corrupted by a value in the page status table: when the page is not damaged, directly writing the data into the page; when a page has been corrupted, the data backed up in the buffer is written to the page.)

一种防止电源中断影响的将数据写入闪存模块的方法

技术领域

本发明属于闪存,更具体地说,一种将数据写入存储模块的方法。

背景技术

最近几十年人类存储数据的方法日新月异,追求高可靠性,永久性的存储非常重要,其中闪存(Nand Flash)保存数据时间长,可靠性高,密度大且价格便宜,因此在存储市场占有很大的空间。在闪存架构中,存储单元以每32个或者64个进行串联来进行组织的。每个存储单元串都有位线(bitline)用来与其他串进行连接。控制门用于连接字线(wordlines,WLs)。页(Page)是闪存芯片读取的最小单位,块(Block)为闪存芯片写入的最小单位,每64个页为一个块。

当在写入操作期间闪存的电源突然中断时,不仅当前正在写入的页面可能被损坏,与页面位于相同字线上的其他页面也将被损坏。例如,假设上述闪存是三级单元(TLC)闪存芯片,并且TLC闪存中的每个字线形成最低有效位(LSB)页,中央有效位(CSB)页面和最高位(MSB)页。如果字线上的LSB页在写入操作期间突然断电,则字线上的CSB页面和MSB页面也将被损坏。因此,突然断电恢复(SPOR)程序对于维持闪存的数据可靠性至关重要。

发明内容

本发明的一个目的是提供一种将数据写入存储模块的方法,该方法可以在写入页损坏时有效地继续后续的SPOR程序和数据写入。技术方案如下:

一种防止电源中断影响的将数据写入闪存模块的方法,包括下列步骤:

1)启动存储模块;

2)构建页状态表:在写过程中,页状态表与写入页每一位相对应,如果正常写入数据时,页状态表中对应位的值为0,即存储模块不备份数据;当出现写入异常时,页状态表中对应位的值为1,在存储模块的缓冲器中将分配空间来备份写入损坏的页的数据,通过页状态表确定数据要写入的特定页面是否已损坏;

3)将数据写入存储模块;存储模块包括多个闪存芯片,每个闪存芯片包括多个块,每个块包括多个页,写操作是以页为单位进行的;

4)若在写入过程中断电,则重启存储模块,如果字线上的LSB页在写入操作期间突然断电,则字线上的CSB页面和MSB页面也将被损坏;

5)重启之后,存储模块从已写入数据的页中读取数据来重新建立页状态表;

6)根据页状态表将数据写入页,通过页状态表中的值为0还是1来确定数据要写入的页是否已损坏:当页没有损坏时,直接将数据写入该页;当页已损坏时,将备份在缓冲器中的数据写入该页;

7)判断存储模块中的所有可写页的写操作是否都完成;如果已完成所有可写页的写操作,删除页状态表;如果没有,重复步骤6一直到写操作都完成,然后进行步骤7,删除页状态表;

8)如果已完成存储模块所有可写页的写操作,则删除页状态表;将数据写入存储模块的过程结束。

附图说明

图1为本发明实施例的存储模块的内部结构。

图2为本发明所使用的具有TLC结构的块A。

图3为本发明方法的流程图(过程B)。

具体实施方式

图1为本发明实施例存储器件的示图。存储器件包括闪存模块和闪存控制器。闪存控制器被布置为访问闪存模块。闪存控制器包括微处理器,只读存储器(ROM),控制逻辑,缓冲器和接口逻辑。ROM用于存储程序代码,微处理器用于执行程序代码并控制访问闪存控制器。控制逻辑包括编码器和解码器。编码器用于编码写入闪存模块的数据,从而产生相应的校验代码(ECC),而解码器用于解码从中读取的数据。

图2块A包括N个字线WL0-WLN,并且每个字线形成三个页。存储在字线上的多个单元中的LSB位形成字线的第一页(LSB页),存储在字线上的多个单元中的CSB位形成字线的第二页(CSB页)和存储在其中的MSB位字线上的多个单元形成字线的第三页(MSB页)。图2块A存储在字线WL1上的多个单元中的LSB位形成页P1,存储在字线WL1上的多个单元中的CSB位形成页P24,并且存储在字线WL1上的多个单元中的MSB位形成页P25。如果页P1由于在写入操作期间发生突然断电而被损坏,则页P24和页P25也将被损坏。因此,在页面P1已经被损坏之后,如果仍然希望将数据写入后续页面,则闪存控制器可操作来写入。从页P1到页P25的伪数据和从页P26写入有效数据,使得数据不会被写入字线WL1上的页P24和P25,这种方法可以避免数据写入错误,但是页面P2-P23也被浪费了。特别是当闪存模块是3D NAND时,LSB页面,CSB页面和MSB页面之间的距离较大(页面序列数之间的差异也较大)。因此,3DNAND型闪存中会浪费更多页面。为了解决上述由于突然断电导致页面浪费的问题,通过下面的方法,从而在SPOR之后以更有效的方式使用块中的页面。

以图2的块A为例图3为本发明的流程图,包括以下步骤:

步骤1,流程开始,其中闪存控制器将块分配为准备写入数据的目标块。

步骤2:闪存控制器建立页面状态表,其记录块内的页是否被损坏并临时将页状态表存储到缓冲器中。页状态表只能记录损坏的页,即当在开始没有数据写入块时,页状态表不会记录有关任何页的损坏信息。相反,页状态表仅在页被确定为已损坏时记录信息。

步骤3:闪存控制器从主机设备接收写命令。闪存控制器根据写入命令开始在页上顺序地写入数据。如果在闪存控制器将数据写入页时发生突然断电,则页中的数据可能有错误,并且存储在缓冲器中的页状态表也会丢失。

步骤4:重新给存储器设备供电,并且闪存控制器和闪存模块在通电之后执行初始化。

步骤5:闪存控制器重建对应块的页状态表。在重建页状态表期间,闪存控制器首先从页中读取数据,并确定这些页的数据质量。对于已写入数据的任何一个页,如果确定页的数据质量不符合标准,则将其记录在页状态表中页面被损坏,它也是记录与页共享相同字线的其他页也被损坏。

步骤6:闪存控制器参考页状态表将数据写入块。如图2,闪存控制器首先参考页状态表中的对应位,由于对应位的值是“O”,因此页P2没有被损坏。所以,闪存控制器直接将数据写入页P2。然后,闪存控制器参考页状态表中P3-P23的对应位,并直接将数据写入页P3-P23。因此,在闪存控制器将数据写入下一页P24之前,闪存控制器参考页状态表中对应位的值。当P24状态表对应位的值为“1”,就意味着页P24已被损坏。闪存控制器将伪数据写入页P24。然后,闪存控制器参考页状态表中P25的对应位。由于页状态表对应的是“1”,这意味着页P25已经被损坏,所以闪存控制器还将伪数据写入页P25。因此,闪存控制器参考页状态表中P26对应位的值是“O”,这意味着页P26没有被损坏,所以闪存控制器直接将数据写入页P26。

步骤7,闪存控制器确定是否已完成对块中的可写页的所有写操作。也就是说,确定数据是否已写入最后有效页。如果否,则流程进入步骤,继续在块A上写入数据。否则,流程进入步骤8。

在步骤8,闪存控制器从缓冲器中删除与块相对应的页面状态表。在块A上的写入器操作已经完成之后,如果闪存控制器需要在下面将数据写入另一个块,接下来的流程可以包括:可以重复过程B以构建与另一个块相对应的页面状态表,作为写入操作的参考。

当需要再次将数据写入块时,闪存控制器可以从中读取页状态表并根据页状态表将数据写入块。在图3中,只有在块A中标记为已损坏的页面才会被写入有效数据,并且其他页面仍可用于存储数据(即,在图2仅有页面P1,P24,P25将不用有效数据写入),使得可以充分利用块A中的页,从而增强页的使用。

7页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:打印控制方法及装置、系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类