CN107045890A - 数据保护方法、存储器控制电路单元及存储器存储装置 - Google Patents
数据保护方法、存储器控制电路单元及存储器存储装置 Download PDFInfo
- Publication number
- CN107045890A CN107045890A CN201610080845.5A CN201610080845A CN107045890A CN 107045890 A CN107045890 A CN 107045890A CN 201610080845 A CN201610080845 A CN 201610080845A CN 107045890 A CN107045890 A CN 107045890A
- Authority
- CN
- China
- Prior art keywords
- data
- entity
- instance
- cell
- memory
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种数据保护方法、存储器控制电路单元及存储器存储装置。此方法包括在存储器存储装置被致能后的初始化作业期间,反复从第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为存储器存储装置断电前最后被程序化的实体程序化单元。此方法也包括倘若每次所读取数据的错误比特数目不大于错误比特数门槛值,并且读取第一实体程序化单元的次数大于预定次数,根据第一实体程序化单元更新逻辑‑实体映射表。因此,可避免从不稳定的实体程序化单元中读取到不可校正的数据。
Description
技术领域
本发明涉及一种数据保护方法,尤其涉及一种可复写式非易失性存储器模块的数据保护方法、存储器控制电路单元及存储器存储装置。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内置于上述所举例的各种可携式多媒体装置中。
一般来说,在将数据程序化至可复写式非易失性存储器模块时,倘若在程序化快结束时存储器存储装置发生断电,可复写式非易失性存储器模块将呈现不稳定状态。而当存储器存储装置被致能后,因为可复写式非易失性存储器模块的不稳定状态,可能导致在存储器存储装置被致能后的初始化作业期间,断电前所程序化的数据可以被正确地读取。但在初始化作业逾时之后的实际运作时,断电前所程序化的数据却发生读取错误的情况。基于此,如何避免因可复写式非易失性存储器模块的不稳定状态而造成数据读取错误,为此领域技术人员所关心的议题。
发明内容
本发明提供一种数据保护方法、存储器控制电路单元及存储器存储装置,可避免从不稳定的实体程序化单元中读取到不可校正的数据。
本发明的数据保护方法用于存储器存储装置。存储器存储装置具有可复写式非易失性存储器模块,可复写式非易失性存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元。本数据保护方法包括在存储器存储装置被致能后的初始化作业期间,反复从实体抹除单元中的第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为存储器存储装置断电前最后被程序化的实体程序化单元,并且第一实体程序化单元的数据属于一逻辑程序化单元。本数据保护方法也包括判断每次所读取的数据的错误比特数目是否大于错误比特数门槛值。倘若错误比特数目不大于错误比特数门槛值,并且反复读取的次数大于预定次数,将第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
在本发明的一范例实施例中,其中倘若错误比特数目大于错误比特数门槛值,将第一实体程序化单元的数据标记为无效数据。
在本发明的一范例实施例中,上述的数据保护方法还包括当预定次数为一时,倘若错误比特数目不大于错误比特数门槛值时,不将第一实体程序化单元与逻辑程序化单元的映射关系记录在逻辑-实体映射表中。再者,校正所读取的数据,将校正后的数据存储至实体抹除单元中的第二实体抹除单元的第二实体程序化单元。此外,将第二实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
在本发明的一范例实施例中,上述的数据保护方法还包括接收指示读取所述逻辑程序化单元的读取指令,并且根据逻辑-实体映射表读取第二实体程序化单元中的数据以回应读取指令。
在本发明的一范例实施例中,上述的读取指令是在初始化作业逾时之后至接收到第一个写入指令之前所接收。
在本发明的一范例实施例中,上述的将所读取数据存储至实体抹除单元中的第二实体抹除单元的第二实体程序化单元的步骤还包括将第一实体抹除单元的至少一第三实体程序化单元的数据存储至第二实体抹除单元中,其中至少一第三实体程序化单元与第一实体程序化单元是由相同的多个记忆胞所组成。
在本发明的一范例实施例中,上述的将校正后的数据存储至实体抹除单元中的第二实体抹除单元的第二实体程序化单元的步骤包括使用单层记忆胞模式、下实体程序化模式、混合程序化模式或少层记忆胞模式将校正后的数据程序化至实体抹除单元中的第二实体抹除单元的第二实体程序化单元。
本发明的存储器控制电路单元,用于控制可复写式非易失性存储器模块。可复写式非易失性存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元。本存储器控制电路单元包括主机接口、存储器接口及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口,用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口与存储器接口。在存储器存储装置被致能后的初始化作业期间,存储器管理电路用以反复从实体抹除单元中的第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为在存储器存储装置断电前最后被程序化的实体程序化单元,并且第一实体程序化单元的数据属于逻辑程序化单元。再者,存储器管理电路还用以判断每次所读取的数据的错误比特数目是否大于错误比特数门槛值。倘若错误比特数目不大于错误比特数门槛值,并且反复读取的次数大于预定次数,存储器管理电路还用以将第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
在本发明的一范例实施例中,倘若错误比特数目大于错误比特数门槛值,上述的存储器管理电路还用以将第一实体程序化单元的数据标记为无效数据。
在本发明的一范例实施例中,当预定次数为一时,倘若错误比特数目不大于错误比特数门槛值时,上述的存储器管理电路不将第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。再者,上述的存储器管理电路还用以校正所读取的数据,将校正后的数据存储至实体抹除单元中的第二实体抹除单元的第二实体程序化单元。此外,上述的存储器管理电路还用以将第二实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
在本发明的一范例实施例中,上述的存储器管理电路还用以接收指示读取所述逻辑程序化单元的读取指令,并且根据逻辑-实体映射表读取第二实体程序化单元中的数据以回应读取指令。
在本发明的一范例实施例中,上述的存储器管理电路是在初始化作业逾时之后至接收到第一个写入指令之前接收到读取指令。
在本发明的一范例实施例中,倘若错误比特数目不大于错误比特数门槛值,上述的存储器管理电路还用以将第一实体抹除单元的至少一第三实体程序化单元的数据存储至第二实体抹除单元中,其中至少一第三实体程序化单元与第一实体程序化单元是由相同的多个记忆胞所组成。
在本发明的一范例实施例中,上述的存储器管理电路还用以使用单层记忆胞模式、下实体程序化模式、混合程序化模式或少层记忆胞模式将校正后的数据程序化至实体抹除单元中的第二实体抹除单元的第二实体程序化单元。
本发明的存储器存储装置包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块包括多个实体抹除单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。在存储器存储装置被致能后的初始化作业期间,存储器控制电路单元用以反复从实体抹除单元中的第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为在存储器存储装置断电前最后被程序化的实体程序化单元,并且第一实体程序化单元的数据属于一逻辑程序化单元。再者,存储器控制电路单元还用以判断每次所读取的数据的错误比特数目是否大于错误比特数门槛值。倘若错误比特数目不大于错误比特数门槛值,并且反复读取的次数大于预定次数,存储器控制电路单元还用以将第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
在本发明的一范例实施例中,倘若错误比特数目大于错误比特数门槛值,上述的存储器控制电路单元还用以将第一实体程序化单元的数据标记为无效数据。
在本发明的一范例实施例中,当预定次数为一时,倘若错误比特数目不大于错误比特数门槛值时,上述的存储器控制电路单元不将第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。再者,上述的存储器控制电路单元还用以校正所读取的数据,将校正后的数据存储至实体抹除单元中的第二实体抹除单元的第二实体程序化单元。此外,上述的存储器控制电路单元还用以将第二实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
在本发明的一范例实施例中,上述的存储器控制电路单元还用以接收指示读取所述逻辑程序化单元的读取指令,并且根据逻辑-实体映射表读取第二实体程序化单元中的数据以回应读取指令。
在本发明的一范例实施例中,上述的存储器控制电路单元是在初始化作业逾时之后至接收到第一个写入指令之前接收到读取指令。
在本发明的一范例实施例中,倘若错误比特数目不大于错误比特数门槛值,上述的存储器控制电路单元还用以将第一实体抹除单元的至少一第三实体程序化单元的数据存储至第二实体抹除单元中,其中至少一第三实体程序化单元与第一实体程序化单元是由相同的多个记忆胞所组成。
在本发明的一范例实施例中,上述的存储器控制电路单元还用以使用单层记忆胞模式、下实体程序化模式、混合程序化模式或少层记忆胞模式将校正后的数据程序化至实体抹除单元中的第二实体抹除单元的第二实体程序化单元。
基于上述,可在存储器存储装置被致能后的初始化作业期间,针对可能处于不稳定状态的实体程序化单元反复执行读取操作以及判断所读取的数据是否为可校正数据。并且,将所读取到的可校正数据存储至另外的实体抹除单元中。由此可避免从处于不稳定状态的实体程序化单元中读取到不可校正数据,确保数据的可靠度与正确性。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图2是根据另一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图3是根据另一范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是根据一范例实施例所示出的主机系统与存储器存储装置的概要方块图;
图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图;
图6与图7是根据一范例实施例所示出的管理实体抹除单元的范例示意图;
图8A是根据一范例实施例所示出的在存储器存储装置被断电前最后被程序化的实体抹除单元的示意图;
图8B是根据一范例实施例所示出的对断电前最后被程序化的实体程序化单元反复执行读取操作的示意图;
图8C是根据另一范例实施例所示出的对断电前最后被程序化的实体程序化单元反复执行读取操作的示意图;
图9是根据另一范例实施例所示出的将断电前最后被程序化的实体程序化单元的数据存储至另一实体抹除单元的示意图;
图10是根据一范例实施例所示出的数据保护方法的流程图;
图11是根据另一范例实施例所示出的数据保护方法的流程图。
附图标记说明:
10:存储器存储装置;
11:主机系统;
12:输入/输出(I/O)装置;
110:系统总线;
111:处理器;
112:随机存取存储器(RAM);
113:只读存储器(ROM);
114:数据传输接口;
20:主机板;
201:随身盘;
202:记忆卡;
203:固态硬盘;
204:无线存储器存储装置;
205:全球定位系统模块;
206:网路接口卡;
207:无线传输装置;
208:键盘;
209:荧幕;
210:喇叭;
30:存储器存储装置;
31:主机系统;
32:SD卡;
33:CF卡;
34:嵌入式存储装置;
341:嵌入式多媒体卡;
342:嵌入式多芯片封装存储装置;
402:连接接口单元;
404:存储器控制电路单元;
406:可复写式非易失性存储器模块;
410(0)~410(N)、820、920、930:实体抹除单元;
502:存储器管理电路;
504:主机接口;
506:存储器接口;
508:缓冲存储器;
510:电源管理电路;
512:错误检查与校正电路;
602:数据区;
604:闲置区;
606:系统区;
608:取代区;
LBA(0)~LBA(H):逻辑单元;
LZ(0)~LZ(M):逻辑区域;
801:数据;
810:逻辑抹除单元;
810(0)~810(N)、910(E):逻辑程序化单元;
820(0)~820(N)、920(0)~920(N)、930(0)~930(N):实体程序化单元;
840、940:逻辑-实体映射表;
Data_1、Data_2、Data_3、Data_5:可校正数据;
Data_4:不可校正数据;
S1001:从第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为存储器存储装置断电前最后被程序化的实体程序化单元的步骤;
S1003:计算对应第一实体程序化单元的读取次数的步骤;
S1005:判断读取次数是否大于预定次数的步骤;
S1007:判断所读取的数据的错误比特数目是否大于错误比特数门槛值的步骤;
S1009:根据第一实体程序化单元来更新逻辑-实体映射表的步骤;
S1101:从第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为存储器存储装置断电前最后被程序化的实体程序化单元的步骤;
S1103:判断所读取的数据的错误比特数目是否大于错误比特数门槛值的步骤;
S1105:校正所读取的数据,将校正后的数据存储至第二实体抹除单元的第二实体程序化单元,并且根据第二实体程序化单元来更新逻辑-实体映射表的步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路单元)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图,且图2是根据另一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(random access memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆电性连接至系统总线(system bus)110。
在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10电性连接。例如,主机系统11可经由数据传输接口114将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12电性连接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114是可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式电性连接至存储器存储装置10。存储器存储装置10可例如是随身盘201、记忆卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通信(NearField Communication Storage,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通信技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110电性连接至全球定位系统(GlobalPositioning System,GPS)模块205、网路接口卡206、无线传输装置207、键盘208、荧幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通信装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的SD卡32、CF卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded MMC,eMMC)341和/或嵌入式多芯片封装存储装置(embedded Multi Chip Package,eMCP)342等各类型将存储器模块直接电性连接于主机系统的基板上的嵌入式存储装置。
图4是根据一范例实施例所示出的主机系统与存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本范例实施例中,连接接口单元402是兼容于串行高级附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级附件(Parallel AdvancedTechnology Attachment,PATA)标准、电气和电子工程师协会(Institute ofElectrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、安全数字(Secure Digital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多芯片封装(embedded Multi Chip Package,eMCP)接口标准、小型快闪(CompactFlash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于包含存储器控制电路单元的芯片外。
存储器控制电路单元404用以执行以硬件形式或固件形式实作的多个逻辑闸或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的记忆胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含8个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块406为多阶记忆胞(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个记忆胞中可存储2个数据比特的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块406也可是单阶记忆胞(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个记忆胞中可存储1个数据比特的快闪存储器模块)、复数阶记忆胞(Trinary Level Cell,TLC)NAND型快闪存储器模块(即,一个记忆胞中可存储3个数据比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图5是根据一范例实施例所示的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504与存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路502的控制指令是以固件形式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路502的控制指令也可以程序码形式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路502的控制指令也可以硬件形式来实作。例如,存储器管理电路502包括微控制器、记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,记忆胞管理电路用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。
主机接口504是电性连接至存储器管理电路502并且用以电性连接至连接接口单元402,以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是兼容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是电性连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。
缓冲存储器508是电性连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。
电源管理电路510是电性连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
错误检查与校正电路512是电性连接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking andCorrecting Code,ECC Code),并且存储器管理电路502会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路512会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图6与图7是根据一范例实施例所示的管理实体抹除单元的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。
请参照图6,存储器控制电路单元404(或存储器管理电路502)会将实体抹除单元410(0)~410(N)逻辑地分组为数据区602、闲置区604、系统区606与取代区608。
逻辑上属于数据区602与闲置区604的实体抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区602的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器管理电路502会从闲置区604中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区602的实体抹除单元。
逻辑上属于系统区606的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,存储器管理电路502会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区602、闲置区604、系统区606与取代区608的实体抹除单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区602、闲置区604、系统区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。
请参照图7,存储器控制电路单元404(或存储器管理电路502)会配置逻辑单元LBA(0)~LBA(H)以映射数据区602的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器控制电路单元404(或存储器管理电路502)会从闲置区604中提取一个实体抹除单元来写入数据,以轮替数据区602的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别每个逻辑单元的数据被存储在哪个实体抹除单元,在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统11欲在逻辑子单元中存取数据时,存储器控制电路单元404(或存储器管理电路502)会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)会在可复写式非易失性存储器模块406中存储逻辑地址-实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元404(或存储器管理电路502)会将逻辑地址-实体地址映射表载入至缓冲存储器508来维护。
值得一提的是,由于缓冲存储器508的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑地址-实体地址映射表。特别是,当存储器控制电路单元404(或存储器管理电路502)欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑地址-实体地址映射表会被载入至缓冲存储器508来被更新。
当存储器存储装置10上电(或致能)后,存储器控制电路单元404(或存储器管理电路502)会执行相关的初始化作业(initial)以使存储器存储装置10进入可接收与处理来自于主机系统11的指令的待命状态,使存储器存储装置10可在运作时间(run time)里正常地运作。例如,在初始化作业期间,存储器控制电路单元404(或存储器管理电路502)会更新逻辑-实体映射表,使主机系统11可正常地存取可复写式非易失性存储器模块406中所存储的数据。
然而,在将数据程序化至可复写式非易失性存储器模块406的一个实体抹除单元时,倘若在程序化期间发生异常断电,此实体抹除单元可能会处于不稳定状态。例如,实体抹除单元所存储的电荷处于不稳定的现象,而造成此实体抹除单元中存在跳动比特(dancing bit)。特别是,当一个实体抹除单元存在跳动比特时,此实体抹除单元上的数据也许可被正确读取,但在一段时间后,数据就会遗失。例如,倘若某个实体抹除单元中存在跳动比特,在存储器存储装置10上电后的初始化作业期间(也即初始化作业逾时之前),存储器控制电路单元404(或存储器管理电路502)可从此实体抹除单元中读取到正确数据,或者所读取的数据的错误比特数目不大于错误检查与校正电路512的最大可校正错误比特数。但在初始化作业完成后(也即初始化作业逾时之后)的运作时间里,当存储器控制电路单元404(或存储器管理电路502)读取此实体抹除单元中的数据时,所读取的数据的错误比特数目却大于错误检查与校正电路512的最大可校正错误比特数,而造成读取错误的情形。
一般来说,在存储器存储装置10断电前最后被程序化的实体抹除单元可能会处于不稳定状态。因此在一范例实施例中,在存储器存储装置10上电后的初始化作业期间,存储器控制电路单元404(或存储器管理电路502)在扫描断电前最后被程序化的实体抹除单元(以下也称为第一实体抹除单元)时,会针对断电前最后被程序化的实体程序化单元(以下也称为第一实体程序化单元)反复执行N次读取操作。N为正整数,可根据初始化作业的执行时间来决定。换句话说,针对所要执行的读取操作可预先设定一个预定次数。例如,在一范例实施例中,预定次数可被设定为等于在初始化作业逾时之前所能执行的最多读取次数。或者,在另一范例实施例中,预定次数可被设定为1。然而,预定次数也可根据实际应用上的需求来设定,本发明并不以此为限。
更详细来说,存储器控制电路单元404(或存储器管理电路502)会预设要对第一实体程序化单元执行N次读取操作。在每次对第一实体程序化单元的读取操作中,倘若可正确地读取数据,存储器控制电路单元404(或存储器管理电路502)就会对第一实体程序化单元执行下一次的读取操作。存储器控制电路单元404(或存储器管理电路502)也会计算读取次数,例如在每次执行读取操作时将读取次数加1。在对第一实体程序化单元的N次读取操作中,倘若所读取的数据的错误比特数目皆不大于错误比特数门槛值,存储器控制电路单元404(或存储器管理电路502)会判断第一实体程序化单元所存储的数据为可校正(correctable)的数据。进一步地,存储器控制电路单元404(或存储器管理电路502)会根据第一实体程序化单元来更新逻辑-实体映射表。例如,将第一实体程序化单元与对应的逻辑程序化单元的映射关系记录至存储在可复写式非易失性存储器模块406中的逻辑-实体映射表。倘若其中一次所读取到的数据的错误比特数目大于错误比特数门槛值,存储器控制电路单元404(或存储器管理电路502)会判断第一实体程序化单元所存储的数据为不可校正(uncorrectable)的数据,而舍弃第一实体程序化单元中所存储的数据。例如,不根据第一实体程序化单元来更新逻辑-实体映射表,或者将第一实体程序化单元中所存储的数据标记为无效数据。
错误比特数门槛值可根据错误检查与校正电路512的校正能力来设定。例如,将错误比特数门槛值设定为错误检查与校正电路512的最大可校正错误比特数。然而,错误比特数门槛值也可根据实际使用上的需求来设定,本发明不加以限制。
值得一提的是,倘若程序化至第一实体程序化单元的数据是用以更新某逻辑程序化单元的数据,也即在写入数据至第一实体程序化单元之前,在逻辑-实体映射表中已存在对应此逻辑程序化单元的映射信息。倘若判断第一实体程序化单元中的数据为可校正数据,存储器控制电路单元404(或存储器管理电路502)可以通过以此逻辑程序化单元映射至第一实体程序化单元的新的映射信息覆盖掉旧的映射信息的方式来更新逻辑-实体映射表。另一方面,倘若程序化至第一实体程序化单元的数据是写入至某逻辑程序化单元的全新数据,也即在写入数据至第一实体程序化单元之前,在逻辑-实体映射表中并未记录对应此逻辑程序化单元的映射信息。在此种情况下,倘若判断第一实体程序化单元中的数据为可校正数据,存储器控制电路单元404(或存储器管理电路502)可通过新增此逻辑程序化单元映射至第一实体程序化单元的映射信息的方式来更新逻辑-实体映射表。
在本范例实施例中,是在判断第一实体程序化单元中的数据为可校正数据时才会更新逻辑-实体映射表。因此,倘若第一实体程序化单元中的数据为不可校正数据,在初始化作业逾时后的运作时间里,存储器控制电路单元404(或存储器管理电路502)根据逻辑-实体映射表就不会读取到存储在第一实体程序化单元中的数据。
图8A是根据一范例实施例所示出的在存储器存储装置被断电前最后被程序化的实体抹除单元的示意图。
请参照图8A,存储器控制电路单元404(或存储器管理电路502)接收到指示将数据801写入至逻辑抹除单元810的逻辑程序化单元810(K)的写入指令。存储器控制电路单元404(或存储器管理电路502)将欲写入的数据801写入至实体抹除单元820的实体程序化单元820(K)。此时,存储器存储装置10发生异常断电。也就是说,实体抹除单元820为存储器存储装置10被断电前最后一个被程序化的实体抹除单元,而其中的实体程序化单元820(K)为存储器存储装置10断电前最后一个被程序化的实体程序化单元(已程序化数据的实体程序化单元以斜线表示)。
在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)可以将欲写入的数据801以及对应的错误检查与校正码一并存储至实体程序化单元820(K)。在执行读取操作时,存储器控制电路单元404(或存储器管理电路502)便可根据对应的错误检查与校正码来计算所读取的数据的错误比特数目。
图8B是根据一范例实施例所示出的对断电前最后被程序化的实体程序化单元反复执行读取操作的示意图。
请参照图8A及图8B,在本范例实施例中,由于存储器存储装置10被断电前,实体抹除单元820是最后一个被程序化的实体抹除单元。因此,当存储器存储装置10重新上电后,在扫描实体抹除单元820时,存储器控制电路单元404(或存储器管理电路502)会针对最后一个被程序化的实体程序化单元820(K)反复执行读取操作。在本范例实施例中,假设初始化作业的执行时间为1秒,在初始化作业逾时之前要对实体程序化单元820(K)反复执行3次读取操作,也就是将预定次数设定为3。而错误比特数门槛值设定为20。倘若所读取的数据的错误比特数目不大于错误比特数门槛值,存储器控制电路单元404(或存储器管理电路502)会判断所读取的数据为可校正数据,反之则为不可校正数据。
如图8B所示,在对实体程序化单元820(K)执行第1次读取操作时,存储器控制电路单元404(或存储器管理电路502)计算读取次数为1,并且计算所读取的数据Data_1的错误比特数目为8。由于读取次数小于预定次数,并且数据Data_1的错误比特数目小于错误比特数门槛值(也即数据Data_1为可校正数据),存储器控制电路单元404(或存储器管理电路502)会继续对实体程序化单元820(K)执行第2次读取操作。在执行第2次读取操作时,存储器控制电路单元404(或存储器管理电路502)计算读取次数为2,并且计算所读取的数据Data_2的错误比特数目为20。由于读取次数小于预定次数,并且数据Data_2的错误比特数目等于错误比特数门槛值,存储器控制电路单元404(或存储器管理电路502)会继续对实体程序化单元820(K)执行第3次读取操作。在执行第3次读取操作时,存储器控制电路单元404(或存储器管理电路502)计算读取次数为3,并且计算所读取的数据Data_3的错误比特数目为16。由于读取次数等于预定次数,并且数据Data_3的错误比特数目小于错误比特数门槛值(也即数据Data_3为可校正数据),表示对实体程序化单元820(K)所执行的预定次数的读取操作中,每次皆可读取到可校正数据。因此,存储器控制电路单元404(或存储器管理电路502)会判定可以从实体程序化单元820(K)中读取到可校正数据。尔后,存储器控制电路单元404(或存储器管理电路502)会根据实体程序化单元820(K)来更新逻辑-实体映射表840。例如,将逻辑程序化单元810(K)映射至实体程序化单元820(K)的逻辑-实体映射信息记录在逻辑-实体映射表840中。
虽然,在本范例实施例中,预定次数为3,而错误比特数门槛值为20。但在其他范例实施例中,预定次数可设定为大于或小于3,而错误比特数门槛值也可设定为大于或小于20。本发明不以此为限。此外,在本范例实施例中,虽然是以读取次数小于或等于(也即非大于)预定次数来说明判断机制,然而,在其他范例实施例中,也可以读取次数是否大于预定次数作为判断机制。本发明并不限制读取次数与预定次数之间的判断机制,只要是可以判断出已反复执行了预定次数的读取操作,并且每次皆读取到可校正数据即可作为本发明的判断机制。
图8C是根据另一范例实施例所示出的对断电前最后被程序化的实体程序化单元反复执行读取操作的示意图。
请参照图8A及图8C,当存储器存储装置10重新上电后,在扫描实体抹除单元820时,存储器控制电路单元404(或存储器管理电路502)会针对最后一个被程序化的实体程序化单元820(K)执行反复读取操作。在本范例实施例中,在对实体程序化单元820(K)执行第1次读取操作时,计算所读取的数据Data_4的错误比特数目为32。由于数据Data_4的错误比特数目大于错误比特数门槛值(也即数据Data_4为不可校正数据),存储器控制电路单元404(或存储器管理电路502)不会执行下一次读取操作。也就是说,存储器控制电路单元404(或存储器管理电路502)会判断无法从实体程序化单元820(K)中读取到可校正数据,因此存储器控制电路单元404(或存储器管理电路502)不会根据实体程序化单元820(K)来更新逻辑-实体映射表840。进一步地,存储器控制电路单元404(或存储器管理电路502)会将存储在实体程序化单元820(K)中的数据标记为无效数据。因此,倘若逻辑-实体映射表840中已存在对应逻辑程序化单元810(K)的逻辑-实体映射信息,在运作时间里,存储器控制电路单元404(或存储器管理电路502)根据逻辑-实体映射表840读取逻辑程序化单元810(K)的数据时,就不会读取实体程序化单元820(K)所存储的数据,由此避免发生读取错误的情况。
在上述的范例实施例中,是将预定次数N设定为大于1,也即存储器控制电路单元404(或存储器管理电路502)在上电后的初始化程序执行期间,会针对断电前最后被程序化的实体程序化单元(以下也称为第一实体程序化单元)执行多次读取操作。而在另一范例实施例中,是将预定次数N设定为1,也即存储器控制电路单元404(或存储器管理电路502)在上电后的初始化程序执行期间,仅会针对第一实体程序化单元执行一次读取操作。在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)在扫描第一实体抹除单元(也即断电前最后被程序化的实体抹除单元)时,会针对第一实体程序化单元判断是否要进行备份。具体来说,在对第一实体程序化单元所执行的一次读取操作中,存储器控制电路单元404(或存储器管理电路502)从第一实体程序化单元读取数据并且计算所读取的数据的错误比特数目后,会根据错误比特数目是否大于错误比特数门槛值,以判断所读取的数据是否为可校正数据。倘若所计算的错误比特数目不大于错误比特数门槛值,也即表示所读取的数据为可校正数据。存储器控制电路单元404(或存储器管理电路502)会从可复写式非易失性存储器模块406中提取另一个实体抹除单元(以下也称为第二实体抹除单元)作为备份实体抹除单元,并将从第一实体抹除单元的第一实体程序化单元中所读取的可校正数据存储至第二实体抹除单元中。在本范例实施例中,存储器控制电路单元404(或存储器管理电路502)是将校正后的数据存储至第二实体抹除单元中。而且,存储器控制电路单元404(或存储器管理电路502)还会根据第二实体抹除单元来更新逻辑-实体映射表,而不会根据第一实体抹除单元来更新逻辑-实体映射表。例如,存储器控制电路单元404(或存储器管理电路502)会将第二实体抹除单元中存储此数据的实体程序化单元(以下也称为第二实体程序化单元)与对应的逻辑程序化单元的映射关系记录至实体-逻辑映射表中。而在运作时间里,存储器控制电路单元404(或存储器管理电路502)可根据实体-逻辑映射表从第二实体抹除单元中读取数据。由于第二实体抹除单元不会处于不稳定状态(例如,不存在跳动比特),由此便可正确地读取数据。
图9是根据另一范例实施例所示出的将断电前最后被程序化的实体程序化单元的数据存储至另一实体抹除单元的示意图。
请参照图9,假设实体抹除单元920为存储器存储装置10断电前最后一个被程序化的实体抹除单元,而其中的实体程序化单元920(E)为存储器存储装置10断电前最后一个被程序化的实体程序化单元(已程序化数据的实体程序化单元以斜线表示)。在存储器存储装置10断电前被程序化至实体程序化单元920(E)的数据是属于逻辑程序化单元910(E)。在本范例实施例中,假设预定次数N是设定为1。当存储器存储装置10上电后,存储器控制电路单元404(或存储器管理电路502)从实体程序化单元920(E)读取数据,并计算所读取的数据Data_5的错误比特数目。在本范例实施例中,假设数据Data_5的错误比特数目不大于错误比特数门槛值,也即数据Data_5为可校正数据。因此,存储器控制电路单元404(或存储器管理电路502)从可复写式非易失性存储器模块406中提取实体抹除单元930,并且将所读取的数据Data_5存储至实体抹除单元930的实体程序化单元930(0)。更进一步地,存储器控制电路单元404(或存储器管理电路502)会将逻辑程序化单元910(E)与实体程序化单元930(0)的映射关系记录至逻辑-实体映射表940。
在本范例实施例中,假设可复写式非易失性存储器模块406的实体抹除单元可以多阶记忆胞(MLC)程序化模式、复数阶(TLC)记忆胞程序化模式或类似模式来被程序化。
然而,存储器控制电路单元404(或存储器管理电路502)还可以单层记忆胞(single layer memory cell,SLC)模式、下实体程序化(lower physicalprogramming)模式、混合程序化(mixture programming)模式及少层记忆胞(less layer memory cell)模式来对备份实体抹除单元执行程序化。在单层记忆胞模式中,一个记忆胞只存储一个比特的数据。在下实体程序化模式中,只有下实体程序化单元会被程序化,而此下实体程序化单元所对应的上实体程序化单元可不被程序化。在混合程序化模式中,有效数据(或,真实数据)会被程序化于下实体程序化单元中,而同时虚拟数据(dummy data)会被程序化至存储有效数据的下实体程序化单元所对应的上实体程序化单元中。本发明并不限制对备份实体抹除单元的程序化模式。
在本范例实施例中,在初始化作业逾时之后的运作时间里,倘若在接收到第一个写入指令之前,欲读取逻辑程序化单元910(E)的数据,存储器控制电路单元404(或存储器管理电路502)可根据逻辑-实体映射表940从实体程序化单元930(0)读取数据,而不会从实体程序化单元920(E)中读取数据。
此外,在一个记忆胞中可存储2个以上数据比特的可复写式非易失性存储器模块中,存储器控制电路单元404(或存储器管理电路502)也可将与断电前最后一个被程序化的实体程序化单元属于成对页(pair page)的实体程序化单元的数据一并存储至备份实体抹除单元中。在此,属于成对页的实体程序化单元是指由相同的记忆胞所组成的实体程序化单元。
图10是根据一范例实施例所示出的数据保护方法的流程图。
在步骤S1001中,在存储器存储装置10上电后的初始化作业期间,存储器控制电路单元404(或存储器管理电路502)从第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为存储器存储装置10断电前最后被程序化的实体程序化单元。第一实体程序化单元中所存储的数据是属于一逻辑程序化单元。
在步骤S1003中,存储器控制电路单元404(或存储器管理电路502)会计算对应第一实体程序化单元的读取次数。例如,在每次对第一实体程序化单元执行读取操作之后,存储器控制电路单元404(或存储器管理电路502)会将读取次数加1。
在步骤S1005中,存储器控制电路单元404(或存储器管理电路502)会判断读取次数是否大于预定次数。
倘若判定读取次数非大于预定次数,在步骤S1007中,存储器控制电路单元404(或存储器管理电路502)会判断所读取的数据的错误比特数目是否大于错误比特数门槛值。其中,错误比特数门槛值可根据错误检查与校正电路的校正能力来设定。此外,存储器控制电路单元404(或存储器管理电路502)可根据对应的错误检查与校正码来计算所读取的数据的错误比特数目。
倘若判定所读取的数据的错误比特数目不大于错误比特数门槛值,存储器控制电路单元404(或存储器管理电路502)会再次执行步骤S1001。也就是说,倘若读取次数非大于预定次数,并且错误比特数目不大于错误比特数门槛值,存储器控制电路单元404(或存储器管理电路502)会反复执行对第一实体程序化单元的读取操作。并且,存储器控制电路单元404(或存储器管理电路502)也会再次执行步骤S1003以及步骤S1005,并根据步骤S1005的判断结果决定是否执行步骤S1007。
倘若判定读取次数大于预定次数,在步骤S1009中,存储器控制电路单元404(或存储器管理电路502)会根据第一实体程序化单元来更新逻辑-实体映射表。
在本范例实施例中,虽然存储器控制电路单元404(或存储器管理电路502)是以图10的顺序来执行步骤S1001至步骤S1009中的各步骤。然而,本发明并不以此为限。例如,在另一范例实施例中,在从第一实体程序化单元读取数据(也即步骤S1001)之后,可接续执行判断读取次数是否小于预定次数的操作。倘若判定读取次数小于预定次数,可接续执行判断错误比特数目是否大于错误比特数门槛值的操作(也即步骤S1007),并且当错误比特数目大于错误比特门槛值时,执行计算读取次数的步骤。
图11是根据另一范例实施例所示出的数据保护方法的流程图。
在步骤S1101中,在存储器存储装置10上电后的初始化作业期间,存储器控制电路单元404(或存储器管理电路502)从第一实体抹除单元的第一实体程序化单元读取数据,其中第一实体程序化单元为存储器存储装置10断电前最后被程序化的实体程序化单元,且第一实体程序化单元中所存储的数据属于逻辑程序化单元。在本范例实施例中,预定次数是设定为等于1。也就是说,在存储器存储装置10上电后的初始化作业期间,存储器控制电路单元404(或存储器管理电路502)仅会对第一实体程序化单元执行一次读取操作。
在步骤S1103中,存储器控制电路单元404(或存储器管理电路502)会判断所读取的数据的错误比特数目是否大于错误比特数门槛值。
倘若错误比特数目不大于错误比特数门槛值,在步骤S1105中,存储器控制电路单元404(或存储器管理电路502)会将所读取的数据存储至第二实体抹除单元的第二实体程序化单元,并且根据第二实体程序化单元来更新逻辑-实体映射表。
上述的流程图中的各步骤已于前述的范例实施例中说明,在此不再赘述。
综上所述,本发明通过在存储器存储装置被致能后的初始化作业期间,对可能处于不稳定状况的实体程序化单元反复执行读取操作以判断是否可从此实体程序化单元中读取到可校正数据,进而决定是否保留此实体程序化单元中的数据。此外,还可在从此实体程序化单元中读取到可校正数据时,将所读取的可校正数据存储至备份实体抹除单元中。由此,在初始化作业逾时之后的运作时间里,将可有效避免从不稳定的实体程序化单元中读取到不可校正的数据,确保数据的可靠度与正确性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种数据保护方法,用于存储器存储装置,其特征在于,所述存储器存储装置具有可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元,所述方法包括:
在所述存储器存储装置被致能后的初始化作业期间,反复从所述多个实体抹除单元中的第一实体抹除单元的第一实体程序化单元读取数据,其中所述第一实体程序化单元为所述存储器存储装置断电前最后被程序化的实体程序化单元,并且所述第一实体程序化单元的所述数据属于逻辑程序化单元;
判断每次所读取的所述数据的错误比特数目是否大于错误比特数门槛值;以及
倘若所述错误比特数目不大于所述错误比特数门槛值,并且反复读取的次数大于预定次数,将所述第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
2.根据权利要求1所述的数据保护方法,其特征在于,倘若所述错误比特数目大于所述错误比特数门槛值,将所述第一实体程序化单元的所述数据标记为无效数据。
3.根据权利要求1所述的数据保护方法,其特征在于,还包括:
当所述预定次数为一时,倘若所述错误比特数目不大于所述错误比特数门槛值时,不将所述第一实体程序化单元与所述逻辑程序化单元的映射关系记录在所述逻辑-实体映射表中;
校正所读取的数据,将校正后的所述数据存储至所述多个实体抹除单元中的第二实体抹除单元的第二实体程序化单元;以及
将所述第二实体程序化单元与所述逻辑程序化单元的映射关系记录在所述逻辑-实体映射表中。
4.根据权利要求3所述的数据保护方法,其特征在于,还包括:
接收指示读取所述逻辑程序化单元的读取指令;以及
根据所述逻辑-实体映射表读取所述第二实体程序化单元中的所述数据以回应所述读取指令。
5.根据权利要求4所述的数据保护方法,其特征在于,所述读取指令是在所述初始化作业逾时之后至接收到第一个写入指令之前所接收。
6.根据权利要求3所述的数据保护方法,其特征在于,将校正后的所述数据存储至所述多个实体抹除单元中的所述第二实体抹除单元的所述第二实体程序化单元的步骤还包括:
将所述第一实体抹除单元的至少一第三实体程序化单元的数据存储至所述第二实体抹除单元中,其中所述至少一第三实体程序化单元与所述第一实体程序化单元是由相同的多个记忆胞所组成。
7.根据权利要求3所述的数据保护方法,其特征在于,将校正后的所述数据存储至所述多个实体抹除单元中的所述第二实体抹除单元的所述第二实体程序化单元的步骤还包括:
使用单层记忆胞模式、下实体程序化模式、混合程序化模式或少层记忆胞模式将校正后的所述数据程序化至所述多个实体抹除单元中的所述第二实体抹除单元的所述第二实体程序化单元。
8.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其特征在于,所述可复写式非易失性存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元,所述存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至所述可复写式非易失性存储器模块;以及
存储器管理电路,电性连接至所述主机接口与所述存储器接口,
其中,在所述存储器存储装置被致能后的初始化作业期间,所述存储器管理电路用以反复从所述多个实体抹除单元中的第一实体抹除单元的第一实体程序化单元读取数据,其中所述第一实体程序化单元为所述存储器存储装置断电前最后被程序化的实体程序化单元,并且所述第一实体程序化单元的所述数据属于逻辑程序化单元,
其中,所述存储器管理电路还用以判断每次所读取的所述数据的错误比特数目是否大于错误比特数门槛值,
其中,倘若所述错误比特数目不大于所述错误比特数门槛值,并且反复读取的次数大于预定次数,所述存储器管理电路还用以将所述第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
9.根据权利要求8所述的存储器控制电路单元,其特征在于,倘若所述错误比特数目大于所述错误比特数门槛值,所述存储器管理电路还用以将所述第一实体程序化单元的所述数据标记为无效数据。
10.根据权利要求8所述的存储器控制电路单元,其特征在于,当所述预定次数为一时,倘若所述错误比特数目不大于所述错误比特数门槛值时,所述存储器管理电路不将所述第一实体程序化单元与所述逻辑程序化单元的映射关系记录在所述逻辑-实体映射表中,
其中所述存储器管理电路还用以校正所读取的数据,将校正后的所述数据存储至所述多个实体抹除单元中的第二实体抹除单元的第二实体程序化单元,
其中所述存储器管理电路还用以将所述第二实体程序化单元与所述逻辑程序化单元的映射关系记录在所述逻辑-实体映射表中。
11.根据权利要求10所述的存储器控制电路单元,其特征在于,所述存储器管理电路还用以接收指示读取所述逻辑程序化单元的读取指令,并且根据所述逻辑-实体映射表读取所述第二实体程序化单元中的所述数据以回应所述读取指令。
12.根据权利要求11所述的存储器控制电路单元,其特征在于,所述存储器管理电路是在所述初始化作业逾时之后至接收到第一个写入指令之前接收到所述读取指令。
13.根据权利要求10所述的存储器控制电路单元,其特征在于,倘若所述错误比特数目不大于所述错误比特数门槛值,所述存储器管理电路还用以将所述第一实体抹除单元的至少一第三实体程序化单元的数据存储至所述第二实体抹除单元中,其中所述至少一第三实体程序化单元与所述第一实体程序化单元是由相同的多个记忆胞所组成。
14.根据权利要求10所述的存储器控制电路单元,其特征在于,所述存储器管理电路还用以使用单层记忆胞模式、下实体程序化模式、混合程序化模式或少层记忆胞模式将校正后的所述数据程序化至所述多个实体抹除单元中的所述第二实体抹除单元的所述第二实体程序化单元。
15.一种存储器存储装置,其特征在于,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,包括多个实体抹除单元;以及
存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中,在所述存储器存储装置被致能后的初始化作业期间,所述存储器控制电路单元用以反复从所述多个实体抹除单元中的第一实体抹除单元的第一实体程序化单元读取数据,其中所述第一实体程序化单元为所述存储器存储装置断电前最后被程序化的实体程序化单元,并且所述第一实体程序化单元的所述数据属于逻辑程序化单元,
其中,所述存储器控制电路单元还用以判断每次所读取的所述数据的错误比特数目是否大于错误比特数门槛值,
其中,倘若所述错误比特数目不大于所述错误比特数门槛值,并且反复读取的次数大于预定次数,所述存储器控制电路单元还用以将所述第一实体程序化单元与所述逻辑程序化单元的映射关系记录在逻辑-实体映射表中。
16.根据权利要求15所述的存储器存储装置,其特征在于,倘若所述错误比特数目大于所述错误比特数门槛值,所述存储器控制电路单元还用以将所述第一实体程序化单元的所述数据标记为无效数据。
17.根据权利要求15所述的存储器存储装置,其特征在于,当所述预定次数为一时,倘若所述错误比特数目不大于所述错误比特数门槛值时,所述存储器控制电路单元不将所述第一实体程序化单元与所述逻辑程序化单元的映射关系记录在所述逻辑-实体映射表中,
其中所述存储器控制电路单元还用以校正所读取的数据,将校正后的所述数据存储至所述多个实体抹除单元中的第二实体抹除单元的第二实体程序化单元,
其中所述存储器控制电路单元还用以将所述第二实体程序化单元与所述逻辑程序化单元的映射关系记录在所述逻辑-实体映射表中。
18.根据权利要求17所述的存储器存储装置,其特征在于,所述存储器控制电路单元还用以接收指示读取所述逻辑程序化单元的读取指令,并且根据所述逻辑-实体映射表读取所述第二实体程序化单元中的所述数据以回应读取指令。
19.根据权利要求18所述的存储器存储装置,其特征在于,所述存储器控制电路单元是在所述初始化作业逾时之后至接收到第一个写入指令之前接收到所述读取指令。
20.根据权利要求18所述的存储器存储装置,其特征在于,倘若所述错误比特数目不大于所述错误比特数门槛值,所述存储器控制电路单元还用以将所述第一实体抹除单元的至少一第三实体程序化单元的数据存储至所述第二实体抹除单元中,其中所述至少一第三实体程序化单元与所述第一实体程序化单元是由相同的多个记忆胞所组成。
21.根据权利要求17所述的存储器存储装置,其特征在于,所述存储器控制电路单元还用以使用单层记忆胞模式、下实体程序化模式、混合程序化模式或少层记忆胞模式将校正后的所述数据程序化至所述多个实体抹除单元中的所述第二实体抹除单元的所述第二实体程序化单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610080845.5A CN107045890B (zh) | 2016-02-05 | 2016-02-05 | 数据保护方法、存储器控制电路单元及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610080845.5A CN107045890B (zh) | 2016-02-05 | 2016-02-05 | 数据保护方法、存储器控制电路单元及存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107045890A true CN107045890A (zh) | 2017-08-15 |
CN107045890B CN107045890B (zh) | 2020-02-07 |
Family
ID=59542588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610080845.5A Active CN107045890B (zh) | 2016-02-05 | 2016-02-05 | 数据保护方法、存储器控制电路单元及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107045890B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110308872A (zh) * | 2019-05-16 | 2019-10-08 | 深圳市金泰克半导体有限公司 | 一种固态硬盘数据处理方法、装置、固态硬盘及存储介质 |
CN111078149A (zh) * | 2019-12-18 | 2020-04-28 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN112802512A (zh) * | 2019-11-13 | 2021-05-14 | 深圳宏芯宇电子股份有限公司 | 存储控制器以及存储装置初始化方法 |
CN114327265A (zh) * | 2021-12-23 | 2022-04-12 | 群联电子股份有限公司 | 读取干扰检查方法、存储器存储装置及控制电路单元 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100177564A1 (en) * | 2009-01-14 | 2010-07-15 | Micron Technology, Inc. | Method for detecting flash program failures |
CN102033814A (zh) * | 2009-09-25 | 2011-04-27 | 慧荣科技股份有限公司 | 存取一闪存的方法以及相关的记忆装置 |
CN102842342A (zh) * | 2011-06-20 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | 数据存储测试系统及方法 |
CN103593296A (zh) * | 2012-08-15 | 2014-02-19 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
US20140136925A1 (en) * | 2012-11-14 | 2014-05-15 | SK Hynix Inc. | Method of operating a data storage device |
US20150049554A1 (en) * | 2013-08-14 | 2015-02-19 | Samsung Electronics Co., Ltd. | Memory system including a memory device, and methods of operating the memory system and the memory device |
-
2016
- 2016-02-05 CN CN201610080845.5A patent/CN107045890B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100177564A1 (en) * | 2009-01-14 | 2010-07-15 | Micron Technology, Inc. | Method for detecting flash program failures |
CN102033814A (zh) * | 2009-09-25 | 2011-04-27 | 慧荣科技股份有限公司 | 存取一闪存的方法以及相关的记忆装置 |
CN102842342A (zh) * | 2011-06-20 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | 数据存储测试系统及方法 |
CN103593296A (zh) * | 2012-08-15 | 2014-02-19 | 群联电子股份有限公司 | 数据储存方法、存储器控制器与存储器储存装置 |
US20140136925A1 (en) * | 2012-11-14 | 2014-05-15 | SK Hynix Inc. | Method of operating a data storage device |
US20150049554A1 (en) * | 2013-08-14 | 2015-02-19 | Samsung Electronics Co., Ltd. | Memory system including a memory device, and methods of operating the memory system and the memory device |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110308872A (zh) * | 2019-05-16 | 2019-10-08 | 深圳市金泰克半导体有限公司 | 一种固态硬盘数据处理方法、装置、固态硬盘及存储介质 |
CN112802512A (zh) * | 2019-11-13 | 2021-05-14 | 深圳宏芯宇电子股份有限公司 | 存储控制器以及存储装置初始化方法 |
CN112802512B (zh) * | 2019-11-13 | 2024-04-16 | 深圳宏芯宇电子股份有限公司 | 存储控制器以及存储装置初始化方法 |
CN111078149A (zh) * | 2019-12-18 | 2020-04-28 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN111078149B (zh) * | 2019-12-18 | 2023-09-26 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN114327265A (zh) * | 2021-12-23 | 2022-04-12 | 群联电子股份有限公司 | 读取干扰检查方法、存储器存储装置及控制电路单元 |
CN114327265B (zh) * | 2021-12-23 | 2023-05-30 | 群联电子股份有限公司 | 读取干扰检查方法、存储器存储装置及控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
CN107045890B (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN109491588A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US10437484B2 (en) | Data protecting method, memory control circuit unit and memory storage device | |
CN106681932A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN107590080A (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN103514103B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
TW201346551A (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN107045890A (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
CN106951186A (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN107357520A (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
CN106775479A (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN106814968A (zh) | 存储器管理方法与系统及其存储器存储装置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106959818A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN106484308A (zh) | 数据保护方法、存储器控制电路单元及存储器储存装置 | |
CN107204205A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107103930A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
TWI653632B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN107102951A (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
CN110442299A (zh) | 数据写入方法、存储器控制电路单元以及存储器储存装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |