CN110580130A - 一种防止电源中断影响的将数据写入闪存模块的方法 - Google Patents
一种防止电源中断影响的将数据写入闪存模块的方法 Download PDFInfo
- Publication number
- CN110580130A CN110580130A CN201910775465.7A CN201910775465A CN110580130A CN 110580130 A CN110580130 A CN 110580130A CN 201910775465 A CN201910775465 A CN 201910775465A CN 110580130 A CN110580130 A CN 110580130A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- writing
- state table
- written
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种防止电源中断影响的将数据写入闪存模块的方法,包括:构建页状态表:在写过程中,页状态表与写入页每一位相对应,如果正常写入数据时,页状态表中对应位的值为0;当出现写入异常时,页状态表中对应位的值为1,在存储模块的缓冲器中将分配空间来备份写入损坏的页的数据,通过页状态表确定数据要写入的特定页面是否已损坏;将数据写入存储模块;若在写入过程中断电,则重启存储模块;重启之后,存储模块从已写入数据的页中读取数据来重新建立页状态表;根据页状态表将数据写入页,通过页状态表中的值确定数据要写入的页是否已损坏:当页没有损坏时,直接将数据写入该页;当页已损坏时,将备份在缓冲器中的数据写入该页。
Description
技术领域
本发明属于闪存,更具体地说,一种将数据写入存储模块的方法。
背景技术
最近几十年人类存储数据的方法日新月异,追求高可靠性,永久性的存储非常重要,其中闪存(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中的页,从而增强页的使用。
Claims (1)
1.一种防止电源中断影响的将数据写入闪存模块的方法,包括下列步骤:
1)启动存储模块;
2)构建页状态表:在写过程中,页状态表与写入页每一位相对应,如果正常写入数据时,页状态表中对应位的值为0,即存储模块不备份数据;当出现写入异常时,页状态表中对应位的值为1,在存储模块的缓冲器中将分配空间来备份写入损坏的页的数据,通过页状态表确定数据要写入的特定页面是否已损坏;
3)将数据写入存储模块;存储模块包括多个闪存芯片,每个闪存芯片包括多个块,每个块包括多个页,写操作是以页为单位进行的;
4)若在写入过程中断电,则重启存储模块,如果字线上的LSB页在写入操作期间突然断电,则字线上的CSB页面和MSB页面也将被损坏;
5)重启之后,存储模块从已写入数据的页中读取数据来重新建立页状态表;
6)根据页状态表将数据写入页,通过页状态表中的值为0还是1来确定数据要写入的页是否已损坏:当页没有损坏时,直接将数据写入该页;当页已损坏时,将备份在缓冲器中的数据写入该页;
7)判断存储模块中的所有可写页的写操作是否都完成;如果已完成所有可写页的写操作,删除页状态表;如果没有,重复步骤6一直到写操作都完成,然后进行步骤7,删除页状态表;
8)如果已完成存储模块所有可写页的写操作,则删除页状态表;将数据写入存储模块的过程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910775465.7A CN110580130A (zh) | 2019-08-21 | 2019-08-21 | 一种防止电源中断影响的将数据写入闪存模块的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910775465.7A CN110580130A (zh) | 2019-08-21 | 2019-08-21 | 一种防止电源中断影响的将数据写入闪存模块的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110580130A true CN110580130A (zh) | 2019-12-17 |
Family
ID=68811674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910775465.7A Pending CN110580130A (zh) | 2019-08-21 | 2019-08-21 | 一种防止电源中断影响的将数据写入闪存模块的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110580130A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433959A (zh) * | 2020-11-24 | 2021-03-02 | 合肥大唐存储科技有限公司 | 实现数据存储处理的方法、装置、计算机存储介质及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
CN103309619A (zh) * | 2012-03-16 | 2013-09-18 | 国民技术股份有限公司 | 一种闪存数据存储方法 |
CN108614744A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NAND flash的掉电保护方法和装置 |
CN109426451A (zh) * | 2017-08-31 | 2019-03-05 | 慧荣科技股份有限公司 | 将数据写入闪存模块的方法及相关闪存控制器与电子装置 |
-
2019
- 2019-08-21 CN CN201910775465.7A patent/CN110580130A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
CN103309619A (zh) * | 2012-03-16 | 2013-09-18 | 国民技术股份有限公司 | 一种闪存数据存储方法 |
CN108614744A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NAND flash的掉电保护方法和装置 |
CN109426451A (zh) * | 2017-08-31 | 2019-03-05 | 慧荣科技股份有限公司 | 将数据写入闪存模块的方法及相关闪存控制器与电子装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433959A (zh) * | 2020-11-24 | 2021-03-02 | 合肥大唐存储科技有限公司 | 实现数据存储处理的方法、装置、计算机存储介质及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324789B2 (en) | Flash memory controller and memory device for accessing flash memory module, and associated method | |
US10643733B2 (en) | Method, flashing memory controller, memory device for accessing 3D flash memory having multiple memory chips | |
US7545682B2 (en) | Erase block data splitting | |
CN107845405B (zh) | 用于闪存装置的错误更正码单元、自我测试方法及控制器 | |
US20090248965A1 (en) | Hybrid flash memory device and method of controlling the same | |
US20190065361A1 (en) | Method for writing data into flash memory module and associated flash memory controller and electronic device | |
CN107608628A (zh) | 闪存控制器 | |
CN107741913B (zh) | 用来管理一记忆装置的方法、记忆装置与控制器 | |
CN107391389B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
JP2017157257A (ja) | 半導体記憶装置及びメモリシステム | |
CN115658556A (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
TWI690928B (zh) | 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置 | |
US11068201B2 (en) | Flash memory controller, method for managing flash memory module and associated electronic device | |
US11487655B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations | |
JP2007094921A (ja) | メモリカードとその制御方法 | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
CN110580130A (zh) | 一种防止电源中断影响的将数据写入闪存模块的方法 | |
US8885406B2 (en) | Memory device, memory control device, and memory control method | |
CN104094238A (zh) | 用于存储有效性掩码及操作设备的设备及方法 | |
CN113094307A (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
JP2004030849A (ja) | データの一部書き換え機能を有する半導体不揮発性メモリ | |
US12056367B2 (en) | Memory system and operating method thereof for performing urgent fine program operation | |
CN116185309B (zh) | 一种数据处理方法及数据存储设备 | |
US11809748B2 (en) | Control method of flash memory controller and associated flash memory controller and electronic device | |
US11687290B1 (en) | Method for improve read disturbance phenomenon of flash memory module and associated flash memory controller and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191217 |
|
RJ01 | Rejection of invention patent application after publication |