CN109766055A - 存储器管理方法以及存储控制器 - Google Patents
存储器管理方法以及存储控制器 Download PDFInfo
- Publication number
- CN109766055A CN109766055A CN201711096410.0A CN201711096410A CN109766055A CN 109766055 A CN109766055 A CN 109766055A CN 201711096410 A CN201711096410 A CN 201711096410A CN 109766055 A CN109766055 A CN 109766055A
- Authority
- CN
- China
- Prior art keywords
- character line
- error value
- value
- processor
- threshold value
- 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.)
- Withdrawn
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储器管理方法与使用所述方法的存储控制器。所述方法包括对存储于可复写式非易失性存储器模块的多个字符线中的第一字符线的第一数据进行解码操作,以判断所述解码操作成功或失败,并且获得所述第一字符线的第一错误值;当判定所述解码操作成功时,根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线;以及当判定所述解码操作失败时,获得相邻于所述第一字符线的第二字符线的第二错误值,根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为该坏字符线。
Description
技术领域
本发明涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法与存储控制器。
背景技术
一般来说,可复写式非易失性存储器模块具有多个实体区块,每一实体区块会具有多个存储单元(Memory Cells),并且所述多个存储单元可构成多个字符线(Word-Lines)(每个实体区块具有所述多个字符线)。可复写式非易失性存储器模块中的所述多个存储单元会随着使用次数等因素而导致损坏,进而导致一或多个实体区块不能再被使用。传统上,可复写式非易失性存储器模块的控制器会检测或是判定此些不可再被使用的实体区块为坏实体区块,并且不使用所述坏实体区块来存储数据。然而,每个被判定的坏实体区块中的多个字符线并非皆是损坏的。如此一来,会因为坏实体区块的判定而过度减少了可复写式非易失性存储器模块整体的可用空间。
举例来说,假设一实体区块经由传统作法被判定/标记为坏实体区块而不可存储数据并且其存在有好的字符线(没有损坏的字符线,并且可适当地存储数据)。在此情况下,所述实体区块的好的字符线会因为所述实体区块已被判定/标记为坏实体区块而不能被使用,导致了所述实体区块的好的字符线不可被用于存储数据,进而浪费了位于所述坏实体区块中的对应所述好的字符线的可用空间。
因此,如何有效地判定/识别每个实体区块中多个字符线是否损坏,以较细致地判定可复写式非易失性存储器模块的多个存储单元的损坏范围,进而提升可复写式非易失性存储器模块的可用空间的利用效率,是本领域人员研究的课题的一。
发明内容
本发明提供一种存储器管理方法与存储控制器,可经由对可复写式非易失性存储器模块的多个实体区块的多个字符线中的一字符线进行解码操作,以判断是否标记所述字符线为坏字符线,藉此可有效率地识别可复写式非易失性存储器模块的所述多个字符线是否损坏。
本发明的一实施例提供适用于可复写式非易失性存储器模块的一种存储器管理方法,其中所述非易失性存储器模块具有多个字符线,并且每一所述多个字符线由一或多个存储单元构成。所述存储器管理方法包括对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作,以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值;当判定所述第一型解码操作成功时,根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线;以及当判定所述第一型解码操作失败时,获得相邻于所述第一字符线的第二字符线的第二错误值,根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为该坏字符线。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器,其中所述非易失性存储器模块具有多个字符线,并且每一所述多个字符线由一或多个存储单元构成。所述存储控制器包括连接接口电路、存储器接口控制电路、处理器、错误检查与校正电路。连接接口电路用以耦接至主机系统。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。错误检查与校正电路用以进行解码操作。处理器,用以指示所述错误检查与校正电路对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作,以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值。当判定所述第一型解码操作成功时,所述处理器更用以根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线。当判定所述第一型解码操作失败时,所述处理器更用以获得相邻于所述第一字符线的第二字符线的第二错误值,根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为该坏字符线。
基于上述,本发明实施例所提供的存储器管理方法以及存储控制器,可对可复写式非易失性存储器模块的多个字符线中的第一字符线所存储的数据所进行的解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线为坏字符线。此外,更可对相邻于所述第一字符线的第二字符线所存储的数据进行解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线与所述第二字符线为坏字符线。如此一来,可有效地判断可复写式非易失性存储器模块的多个字符线是否损坏,进而增进可复写式非易失性存储器模块的可用空间的利用效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所显示的主机系统及存储装置的方块示意图;
图2是根据本发明的一实施例所显示的三维的实体区块的多个字符线的示意图;
图3A、3B、3C、3D是分别根据本发明的一实施例所显示的不同实施方式的字符线短路的示意图;
图4为根据本发明的第一实施例所显示的存储器管理方法的流程图;
图5为根据本发明的第一实施例所显示的图4中的步骤S47的流程图;
图6为根据本发明的第一实施例所显示的图4中的步骤S43的流程图;
图7为根据本发明的第二实施例所显示的存储器管理方法的流程图;
图8为根据本发明的第三实施例所显示的标记坏实体区块的流程图;
图9为根据本发明的第四实施例所显示的执行写入指令的流程图。
附图标号说明:
10:主机系统
20:存储装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器
212:数据传输管理电路
213:存储器接口控制电路
214:错误检查与校正电路
220:可复写式非易失性存储器模块
230:连接接口电路
B1:实体区块
L1~L64:堆叠层
W1~W256:字符线
S41、S43、S45、S47:存储器管理方法的流程步骤
S471、S473、S475:步骤S47的流程步骤
S431、S433、S435、S437:步骤S43的流程步骤
S71、S72、S73、S74、S75、S76、S77、S78:存储器管理方法的流程步骤
S81、S83、S85、S87:标记坏实体区块的流程步骤
S91、S93、S95、S97、S99:执行写入指令的流程步骤
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。
图1是根据本发明的一实施例所显示的主机系统及存储装置的方块示意图。
请参照图1,主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130耦接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130之间利用系统总线(System Bus)彼此耦接。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据管理电路(DataTransfer Management Circuit)212与存储器接口控制电路(Memory Interface ControlCircuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是随身盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线耦接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、序列先进附件(Serial Advanced Technology Attachment,SATA)标准、通用序列总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(MemoryStick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(MultiMedia Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated DeviceElectronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或韧件型式实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数码信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未显示)及随机存取存储器(未显示)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的实体存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器220各部件所执行的操作也可视为存储控制器220所执行的操作。
其中,数据管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个实体单元中读取数据(数据可读取自一或多个实体单元中的一或多个存储单元),并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。
存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,Programming)操作、读取操作或抹除操作。
举例来说,处理器211可执行写入指令序列(或处理器211指示数据管理电路212发送写入指令序列至存储器接口控制电路213),以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列(或处理器211指示数据管理电路212发送读取指令序列至存储器接口控制电路213),以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体单元(也称,目标实体单元)中读取数据;处理器211可执行抹除指令序列(或处理器211指示数据管理电路212发送抹除指令序列至存储器接口控制电路213),以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变预设读取电压组的多个预设读取电压值以进行读取操作,或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
在本实施例中,错误检查与校正电路214用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统11中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC)(编码操作),并且存处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当存处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序(解码操作),以获得正确的读取的数据。
在本实施例中,错误检查与校正电路214所使用的是低密度奇偶检查码(lowdensity parity code,LDPC)演算法。在低密度奇偶检查校正码中,是用一个奇偶检查矩阵来定义有效的码字。对数据位元执行奇偶检查程序(例如,将数据位元所形成的码字与奇偶检查矩阵相乘)后,可判断该码字是否为有效的码字。若所产生的码字为有效的码字(将数据位元所形成的码字与奇偶检查矩阵相乘所获得的向量为零),表示解码成功;反之(将数据位元所形成的码字与奇偶检查矩阵相乘所获得的向量不为零),表示解码失败。其中,若奇偶检查矩阵与码字的相乘是零向量,表示码字为有效的码字。在本实施例中,码字可为正进行解码操作的所读取的数据(包含一或多个数据位元),并且在执行奇偶检查程序后,不论解码成功或是失败,皆可获得对应的校验子。
在一实施例中,上述解码操作会包括叠代解码。具体来说,在对一读取数据(原始码字)执行每一次叠代解码过后,可计算出所产生的码字的每一个数据位元应该被解码为位元“1”或是“0”。接着,在对这些计算出的数据位元执行奇偶检查程序(例如,将数据位元所形成的码字与奇偶检查矩阵相乘)后,可判断所产生码字是否为有效的码字。若所产生的码字为有效的码字,表示对于读取数据(原始码字)的解码成功并且叠代解码会停止。然而,若所产生的码字不是有效的码字,则会进行下一次的叠代,并且累计对读取数据所执行的叠代解码的叠代次数。若对读取数据所执行的叠代解码的叠代次数达到一个预设值,则表示对应所述读取数据的解码操作失败并且叠代解码也会停止。
在本实施例中,错误检查与校正电路214可以通过小幅度地调整用于读取存储单元的读取电压准位或执行几次的叠代解码操作即可有效纠错。举例来说,假设一开始可复写式非易失性存储器模块220中的多个存储单元的损耗程度很低(例如,此些存储单元的P/E计数很小)。若要读取此些存储单元中的至少一存储单元所存储的数据,处理器211会指示数据管理电路212发送一个读取指令序列至可复写式非易失性存储器模块220。根据此读取指令序列,存储器接口控制电路213会使用一个(预设的)读取电压准位来从可复写式非易失性存储器模块220读取此些存储单元并且将所获得的数据位元(读取数据)传送给处理器211。然而,随着可复写式非易失性存储器模块220的使用时间增加(例如,P/E计数增加)和/或操作环境改变,可复写式非易失性存储器模块220中的存储单元可能会发生性能衰退(degradation)。发生性能衰退后,若持续使用相同的读取电压准位来读取此些存储单元,则读取到的数据位元可能会包含许多错误。在本实施例中,若可复写式非易失性存储器模块220为三维堆叠架构的可复写式非易失性存储器模块(例如,三维NAND型快闪存储器模块或垂直NAND型快闪存储器模块),则其多个字符线中的两个或两个以上彼此相邻的字符线有机率会发生字符线短路(Word-Line Short)现象。存储在发生字符线短路现象的字符线的数据会发生错误。以下会通过图2来说明三维堆叠架构的可复写式非易失性存储器模块;以及通过图3A~图3D来详细说明图2的三维堆叠架构的可复写式非易失性存储器模块的字符线短路现象。
在一实施例中,错误检查与校正电路214会根据所获得的数据位元执行第一型解码操作(也称,硬位元(Hard Bits)解码操作),从而尝试快速地更正数据位元中的错误。硬位元解码操作是用于解码所读取的硬位元。
然而,受限于硬位元解码操作的解码能力(或错误更正能力),即便使用再多的硬决策读取电压准位来读取存储单元并对应执行再多次的硬解码程序,可能都无法通过单次读取的硬位元来更正所有错误。此时,错误检查与校正电路214可根据所读取的数据执行第二型解码操作(也称,软位元(Soft Bits)解码操作),从而尝试使用更多信息来检错。软位元解码操作是用于解码所读取的软位元。
若软位元解码操作仍然不能解码出正确的读取数据,则错误检查与校正电路214可根据所读取的数据执行第三型解码操作(也称,冗余阵列(RAID)解码操作),从而尝试使用已验证的信息来检错。上述硬位元解码操作、软位元解码操作与冗余阵列解码操作的细节为本领域现有技术,不赘述于此。
应注意的是,错误检查与校正电路214可经由所执行的第一型解码操作、第二型解码操作以及第三行解码操作分别获得对应的校验子。此外,若第一型解码操作、第二型解码操作以及第三行解码操作被判定为成功,则可分别获得对应的错误位元数(number oferror bits),其可经由比较解码成功后的读取数据与解码前的读取数据之间的数据位元来获得。
可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个位元的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个位元的快闪存储器模块)、三阶存储单元(Triple LevelCell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个位元的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flash memory module)或垂直NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。
存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(LogicalBlock)、逻辑页面(Logical Page)或是逻辑扇区(Logical Sector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。在本实施例中,是以存储单元作为写入(程序化)数据的最小单位。实体单元(实体区块)为抹除的最小单位,即,每一实体区块含有最小数目的一并被抹除的存储单元。
在本实施例中,可复写式非易失性存储器模块220的多个存储单元会构成多个字符线,并且此些字符线会构成多个实体区块(也称,实体抹除单元或实体单元)。具体来说,同一条字符线上的存储单元可划分为一或多个实体程序化单元。如此一来,可复写式非易失性存储器模块220的多个存储单元便可构成多个实体区块(实体单元)。
图2是根据本发明的一实施例所显示的三维的实体区块的多个字符线的示意图。请参照图2,举例来说,假设可复写式非易失性存储器模块220的实体区块B1具有多个由多个存储单元所构成的256个字符线W1~W256,并且每4个字符线会分组为一个堆叠层。即,实体区块B1具有64个堆叠层L1~L64。由于在存储器处理的形成实体区块B1的过程中,会在实体区块B1本身的有限空间中置入多个字符线。因此,两个彼此相邻的字符线有可能会大面积地接触彼此而产生字符线短路的现象(相邻的字符线彼此之间的间距太小)。
图3A、图3B、图3C、图3D是分别根据本发明的一实施例所显示的不同实施方式的字符线短路的示意图。请先参照图3A,图3A的表格用以表示图2中的实体区块B1的多个字符线W1~W256的相对位置、对应的字符线的编号(如,“W1”,“W2”,…“W256”)以及每个堆叠层L1~L64。如上所述,彼此相邻的字符线因为互相接触而导致了字符线短路的现象。所述字符线短路的实施方式可为图3A所示的目标字符线(如,字符线W10)与其上下左右字符线W6、W9、W11、W14中的其中的一或其组合的字符线发生了字符线短路(发生字符线短路现象的字符线以灰底表示)。相似地,请参考图3B~图3C,字符线短路的实施方式也可能为图3B所示的目标字符线(如,字符线W10)与其对角线方向的字符线W5、W7、W13、W15中的其中的一或其组合的字符线发生了字符线短路;字符线短路的实施方式也可为图3C所示的目标字符线(如,字符线W10)与属于同个堆叠层(如,堆叠层L3)的字符线W9、W11、W12发生了字符线短路,或是目标字符线(如,字符线W10)与属于同个堆叠层(如,堆叠层L3)的字符线W11、W12发生了字符线短路;字符线短路的实施方式也可为图3D所示的目标字符线(如,字符线W10)与属于同个堆叠层(如,堆叠层L3)的字符线W9、W11、W12及上下堆叠层L2、L4中的字符线W5~W8、W13~W16中的部份或全部的字符线发生了字符线短路。即,上述的字符线W5~W16共12个字符线中,彼此相邻的多个字符线可区域性地发生字符线短路。例如,字符线W10、W9、W13、W14发生字符线短路。又例如,字符线W5~W12发生字符线短路。又例如,字符线W6~W7、W10~W11、W14~W15发生字符线短路。又例如,字符线W5~W7、W9~W11、W13~W15发生字符线短路。又例如,字符线W6~W8、W10~W11、W14发生字符线短路。甚至,在更严重的情况下,字符线短路的现象可扩散至大于三个堆叠层的范围。
由于在程序化数据至发生字符线短路现象的多个字符线的其中一个字符线时,会使发生字符线短路现象的该些字符线的存储单元的临界电压被影响(因为短路而传递程序化电压至非被程序化的字符线)。因此,存储在发生字符线短路现象的多个字符线的数据会具有较高的错误位元数。此外,在更严重的情况下,存储在发生字符线短路现象的多个字符线的数据的错误不能经由错误检查与校正电路214而被校正,并且使存储在其中的数据永久遗失(可视为发生字符线短路现象的多个字符线已损坏)。在本实施例中,发生字符线短路现象的字符线会被标记为坏字符线。
在本实施例中,用以记录一实体区块的信息的系统数据可利用所述实体区块中的一或多个存储单元来记录,或是利用一个系统区中用以记录所有系统数据的特定实体单元的一或多个存储单元来记录。在本实施例中,系统数据还可包括坏实体区块表、对应可复写式非易失性存储器模块220的多个字符线的字符线错误值表及坏字符线表。上述的系统数据可在存储装置开电时,被处理器211从可复写式非易失性存储器模块220读取至存储控制器的缓冲存储器来进行维护,并且可被即时地更新。此外,在存储装置关电(或其他时机)时,上述系统数据可被备份至可复写式非易失性存储器模块220中。
所述字符线错误值表用以记录了对应每个字符线的多个历史错误值。所述字符线错误值表包括多个字符线与分别对应所述多个字符线的多个条目组,其中每一条目组包括一或多个条目,并且所述一或多个条目记录其所属的条目组所对应的字符线的错误值。换言之,处理器211可记录所获得的错误值于字符线错误值表中,以更新其中的对应的字符线的条目组中的条目。
举例来说,对于每一个字符线,处理器211会存储对应所述每一个字符线的最近N个所获得/计算的错误值于所述字符线错误值表中(成为对应所述字符线的条目组的N个条目)。也就是说,若可复写式非易失性存储器模块220具有X个字符线(所述字符线错误值表会存在对应的X个条目组,并且每个条目组具有N个条目),则所述字符线错误值表会记录分别对应X个字符线的X*N个错误值(共X*N个条目)。
所述坏字符线表用以记录X个字符线中被标记为坏字符线(Bad Word-Line)的字符线。在本实施例中,所述坏字符线表可记录被标记为坏字符线的字符线的索引值。举例来说,假设坏字符线表记录了索引值“B1.W1”,其可表示实体区块B1的字符线W1被标记为坏字符线。
在另一实施例中,坏字符线表会依据所有字符线的所属的实体区块的识别码来排序所有的字符线的标记值,所述标记值用以表示对应的字符线是否为坏字符线。举例来说,假设实体区块B1的识别码为最小的识别码,实体区块B1排序在可复写式非易失性存储器模块220的所有实体区块的最前方,并且字符线W1会排序在实体区块B1的所有字符线的最前方(因为字符线W1的编号最小)。在此例子中,所述坏字符线表的第一个标记值为对应实体区块B1的字符线W1的标记值。所述标记值可为一个位元值(如,“0”或“1”),并且不同位元值用以表示是否损坏。例如,若对应实体区块B1的字符线W1的标记值为“1”,则此标记值表示实体区块B1的字符线W1为坏字符线。
在一实施例中,存储控制器210还包括缓冲存储器与电源管理电路。缓冲存储器是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器中存取所述数据、指令或系统数据。
电源管理电路是耦接至处理器211并且用以控制存储装置20的电源。
在本实施例中,处理器211可在特定时间点来选择可复写式非易失性存储器模块220的多个字符线中其中的一个字符线(也称,第一字符线)来进行坏字符线的检验/标记。所述特定时间点例如是下列时间点的其中的一或其组合:(1)从第一字符线读取数据时;(2)存储装置20闲置时。应注意的是,被选择的字符线是已存储数据的字符线。以下会配合多个附图来详细说明如何进行读取电压最佳化操作与对应的数据读取方法的细节。
[第一实施例]
图4为根据本发明的第一实施例所显示的存储器管理方法的流程图。请同时参照图1与图4,在步骤S41中,处理器211对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作(硬位元解码操作),以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值。
具体来说,在本实施例中,处理器211会主动地从所有字符线中选择一字符线(以下称,第一字符线)来进行检验(也称),以判断是否要将所选择的第一字符线标记为坏字符线(标记为损坏)。举例来说,处理器211可在存储装置闲暇时,或是存储装置开电时,来检验/检查每一个字符线。又例如,第一字符线可从可复写式非易失性存储器模块220的所有字符线中根据特定选择条件来被选择。所述特定选择条件包括(1)被选择的字符线所存储的数据中含有错误率高于一定门槛值者;或(2)被选择的字符线所存储的数据含有最高的位元错误数。在本实施例中,检验的方式为,处理器211会先读取存储在第一字符线的数据(第一数据),并且指示错误检查与校正电路214对所读取的数据执行第一型解码操作。处理器211可根据第一型解码操作的结果来判断所述第一型解码操作是否成功或是失败。此外,错误检查与校正电路214对第一数据执行第一型解码操作后,错误检查与校正电路214会将所产生的校验子传送给处理器211。处理器211会将此校验子作为第一字符线的(最新的)第一错误值。
若判定所述第一型解码操作失败,接续至步骤S45,处理器211获得邻近于所述第一字符线的第二字符线的第二错误值。具体来说,当错误检查与校正电路214对第一数据所进行的第一型解码操作失败时,处理器211会开始去探寻相邻于第一字符线的字符线(也称,第二字符线)的错误值(也称,第二错误值),以获得第二错误值。如图3A~图3D所述,相邻于第一字符线的第二字符线可为紧邻于第一字符线的上下左右,或是对角线方向的字符线的其中的一(以XY平面为例)。在本实施例中,处理器211可根据字符线错误值表与第二字符线来查找对应第二字符线的最新的所记录的错误值,并且将的作为第二错误值。在另一实施例中,处理器211可例如使用步骤S41的方式,对存储在第二字符线中的数据执行第一型解码操作,以获得第二错误值。
在获得第二错误值后,接续至步骤S47,处理器211根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线。
图5为根据本发明的第一实施例所显示的图4中的步骤S47的流程图。请参照图5,于步骤S471中,处理器211判断所述第一错误值与所述第二错误值的总和是否大于所述第二门槛值。若判定所述第一错误值与所述第二错误值的总和大于所述第二门槛值,在步骤S473中,处理器211标记所述第一字符线为所述坏字符线,并且标记所述第二字符线为所述坏字符线。也就是说,若所述第一错误值与所述第二错误值的总和大于一定值(第二门槛值),处理器211会认为第一字符线与第二字符线发生了字符线短路现象,并且处理器211会标记此两个字符线为坏字符线。如上所述,处理器211可利用坏字符线表来标记此第一字符线与第二字符线为坏字符线。
相对地,若判定所述第一错误值与所述第二错误值的总和不大于所述第二门槛值,在步骤S475中,处理器211不标记所述第二字符线为所述坏字符线。接着,处理器211会执行步骤S43来判断第一字符线是否为坏字符线。
应注意的是,若第二字符线的数目大于一个,处理器211可同时或是依序获得此些第二字符线的第二错误值。在获得多个第二错误值后,处理器211再分别利用所获得的多个第二错误值,一个一个地经由与第一错误值相加的总和来与第二门槛值比较,进而判断对应的第二字符线是否为坏字符线。
若在步骤S41中,处理器211判定所述第一型解码操作成功,接续至步骤S43,处理器211根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线。
图6为根据本发明的第一实施例所显示的图4中的步骤S43的流程图。请参照图6,在步骤S431中,处理器211判断所述第一错误值是否大于所述第一门槛值。若判定所述第一错误值大于所述第一门槛值,在步骤S433中,处理器211标记所述第一字符线为所述坏字符线。也就是说,若所述第一错误值大于一定值(第一门槛值),处理器211会认为第一字符线为损坏的字符线(可能发生了字符线短路现象),进而处理器211会标记此第一字符线为坏字符线。如上所述,处理器211可利用坏字符线表来标记第一字符线为坏字符线。
若判定所述第一错误值不大于所述第一门槛值,在步骤S435中,处理器211不标记所述第一字符线为所述坏字符线。接着,在步骤S437中,处理器211根据对应所述第一字符线的当前的所述第一错误值与已记录的旧的一或多个对应所述第一字符线的第三错误值计算对应所述第一字符线的第一平均错误值。具体来说,处理器211会经由字符线错误值表来查找对应的一字符线的一或多个错误值(也称,第三错误值),并且计算一或多个第三错误值与第一错误值的平均值(也称,第一平均错误值)。处理器211可再将第一错误值记录至字符线错误值表。
在另一实施例中,当于步骤S41中获得第一错误值时,处理器211可将第一错误值直接记录至字符线错误值表(成为第三错误值的其中的一),以在步骤S437中,可直接对字符线错误值表中所记录的对应第一字符线的多个第三错误值计算平均值,并且将其作为对应第一字符线的第一平均错误值。
然而,在一实施例中,如上所述,若错误值属于校验子,则可不执行步骤S437,即,处理器211可不计算对应第一字符线的第一平均错误值(如,完成步骤S435后,直接结束步骤S43的整体流程)。
值得一提的是,上述第一门槛值小于第二门槛值。厂商可经由可复写式非易失性存储器模块220的特性来设定第一门槛值与第二门槛值的值。
[第二实施例]
图7为根据本发明的第二实施例所显示的存储器管理方法的流程图。第二实施例的存储控制器与其他硬件元件相同于第一实施例。在第二实施例中的所有错误值皆属于错误位元数。换言之,以下会着重在于当错误值并非第一实施例的校验子时,第二实施例的存储器管理方法(判断坏字符线的方法)相较于第一实施例的不同的处。应注意的是,由于错误值为错误位元数,所以在判定解码成功后,错误检查与校正电路214才可获得对应的错误位元数,以使处理器211将其作为对应的错误值。
请参照图7,步骤S71、S72的细节分别相同于第一实施例中的步骤S41、S43,并且步骤S77、S78的细节分别相同于第一实施例中的步骤S45、S47,不再赘述于此。
在本实施例中,若在步骤S71中,处理器211判定第一型解码操作失败,接续至步骤S73,处理器211对所述第一数据进行第二型解码操作,以判断所述第二型解码操作成功或失败,并且获得所述第一字符线的第四错误值。换句话说,当硬位元解码操作失败,处理器211会指示错误检查与校正电路214对第一数据执行软位元解码操作(也称,第二型解码操作),以继续尝试解码第一数据。同时,错误检查与校正电路214可判断第二型解码操作成功或失败。
在对第一数据执行第二型解码操作后,若判定第二型解码操作成功,接续至步骤S74,处理器211将所述第四错误值作为对应所述第一字符线的所述第一错误值。具体来说,若判定第二型解码操作成功,则第一数据会被解码出正确的数据,并且错误检查与校正电路214可据此计算出错误位元数,即,第四错误值。处理器211会将此第四错误值作为对应第一字符线的第一错误值。
反之,在对第一数据执行第二型解码操作后,若判定第二型解码操作不成功,接续至步骤S75,处理器211对所述第一数据进行第三型解码操作,以获得所述第一字符线的第五错误值,并且将获得的所述第五错误值作为对应所述第一字符线的所述第一错误值。具体来说,若判定第二型解码操作不成功,处理器211会指示错误检查与校正电路214执行冗余阵列解码操作(也称,第三型解码操作),以解码第一数据,并且根据经由第三型解码操作而获得的解码后第一数据来计算出错误位元数,即,第五错误值。处理器211会将此第五错误值作为对应第一字符线的第一错误值。
在获得对应第一字符线的第一错误值后,在步骤S76中,判断所述第一错误值减去对应所述第一字符线的第一平均错误值的差值是否大于第三门槛值。具体来说,如上所述,处理器211可获得对应第一字符线的第一平均错误值。处理器211会进一步地比较此次在第一型解码操作失败后所获得的第一错误值大于的一平均错误值的程度,即,利用第三门槛值来比较所述第一字符线的第一平均错误值的差值。若所述第一错误值减去对应所述第一字符线的第一平均错误值的差值不大于第三门槛值,处理器211会执行步骤S72。若所述第一错误值减去对应所述第一字符线的第一平均错误值的差值大于第三门槛值,处理器211会执行步骤S77。
也就是说,在第一型解码操作失败的情况下,处理器211会利用第二型解码操作或第三型解码操作来获得第一错误值,并且去比较此第一错误值的大小是否过高(即,第一错误值会大于的一平均错误值加上第三门槛值的总和)。若过高,则处理器211更去检查相邻于第一字符线的第二字符线。值得一提的是,上述第三门槛值小于第一门槛值。厂商可经由可复写式非易失性存储器模块220的特性来设定第三门槛值的值。
应注意的是,在错误值为校验子的情况下,处理器211可不维护字符线错误值表。
第一实施例与第二实施例分别使用校验子与错误位元数来作为错误值,以检查字符线是否为坏字符线。在其他实施例中,也可将解码操作所使用的叠代次数作为错误值来检查字符线。
此外,下方会利用第三实施例与第四实施例分别说明在标记坏字符线后,如何利用所标记的坏字符线来进行其他的存储器管理方法。其中,第三实施例用以说明利用实体区块中的坏字符线的数目来判断坏实体区块的方法,并且第四实施例用以说明当执行写入操作以写入数据至字符线时,根据该字符线是否为坏字符线来对应调整所述数据被存储的字符线的位置。
[第三实施例]
图8为根据本发明的第三实施例所显示的标记坏实体区块的流程图。请参照图8,在步骤S81中,处理器211选择多个实体区块中的目标实体区块。具体来说,所述被选择的目标实体区块是可复写式非易失性存储器模块220的所有实体区块中处理器211所选择的用以判断是否为坏实体区块的实体区块。在步骤S83中,处理器211识别所述目标实体区块中被标记为所述坏字符线的一或多个字符线。具体来说,处理器211会根据坏字符线表来查找目标实体单元的所有字符线中是否有被标记为坏字符线的字符线。
接着,在步骤S85中,处理器211判断所述目标实体区块中所述被标记的一或多个字符线的数目是否大于坏字符线门槛值。若判定所述目标实体区块中所述被标记的一或多个字符线的数目大于坏字符线门槛值,在步骤S87中,处理器211会标记所述目标实体区块为坏实体区块。也就是说,若所述目标实体区块中存在有多于一特定值(坏字符线门槛值)的坏字符线,处理器211会将此目标实体单元视为损坏的实体区块。反之,处理器211会不将此目标实体单元视为损坏的实体区块,即,不标记所述目标实体区块为坏实体区块。在使用上述方式来扫瞄可复写式非易失性存储器模块220的全部的实体区块后,处理器211可识别出可复写式非易失性存储器模块220的坏实体区块,并且将此结果记录于坏实体区块表中。
[第四实施例]
图9为根据本发明的第四实施例所显示的执行写入指令的流程图。请参照图9,在步骤S91中,处理器211选择用以执行写入指令的一或多个目标实体地址。具体来说,当处理器211执行写入指令以写入对应该写入指令的写入数据时,处理器211可获取预备存储所述写入数据的一或多个实体地址(也称,目标实体地址)。在一实施例中,所述目标实体地址可为开放实体区块的可用的(空白的)实体地址,并且其被选择用以存储写入数据,以执行写入指令。
接着,在步骤S93中,处理器211判断所述一或多个目标实体地址所属的字符线是否被标记为所述坏字符线。具体来说,处理器211可根据坏字符线表进一步检查目标实体地址所属的字符线是否为坏字符线。若判定所述一或多个目标实体地址所属的字符线被标记为所述坏字符线,在步骤S95中,处理器211写入虚拟数据至所述一或多个目标实体地址。具体来说,若目标实体地址位于坏字符线中,则处理器211会选择其他的实体地址作为存储写入数据的实体地址。但,处理器211会先将虚拟数据写入至原本所选择的目标实体地址。接着,在步骤S97中,处理器211选择其他的一或多个实体地址作为所述一或多个目标实体地址,以取代之前所选择的所述一或多个目标实体地址。接着,处理器211再程序化写入数据至新的目标实体地址,以完成写入指令的执行。
此外,若在步骤S93中,若处理器211判定所述一或多个目标实体地址所属的字符线不被标记为所述坏字符线(即,所述一或多个目标实体地址所属的字符线不为坏字符线),在步骤S99中,处理器211会直接执行写入指令,以将对应所述写入指令的写入数据写入至所述一或多个目标实体地址。如此一来,在执行一写入指令以将一写入数据写入至一或多个目标实体地址之前,处理器211可根据判断所述一或多个目标实体地址所属的字符线是否被标记为该坏字符线来写入所述写入数据。
综上所述,本发明实施例所提供的存储器管理方法以及存储控制器,可对可复写式非易失性存储器模块的多个字符线中的第一字符线所存储的数据所进行的解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线为坏字符线。此外,更可对相邻于所述第一字符线的第二字符线所存储的数据进行解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线与所述第二字符线为坏字符线。如此一来,可有效地判断可复写式非易失性存储器模块的多个字符线是否损坏,进而增进可复写式非易失性存储器模块的可用空间的利用效率。此外,经由标记坏字符线,字符线短路现象所导致的无法校正的数据错误的问题也可进一步地被避免。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
Claims (22)
1.一种存储器管理方法,其特征在于,适用于可复写式非易失性存储器模块,其中所述非易失性存储器模块具有多个字符线,并且每一所述字符线由一或多个存储单元构成,所述方法包括:
对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作,以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值;
当判定所述第一型解码操作成功时,根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线;以及
当判定所述第一型解码操作失败时,获得相邻于所述第一字符线的第二字符线的第二错误值,根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线。
2.根据权利要求1所述的存储器管理方法,其特征在于,根据所述第一错误值、所述第二错误值与所述第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线的步骤包括:
判断所述第一错误值与所述第二错误值的总和是否大于所述第二门槛值;
当判定所述总和大于所述第二门槛值时,标记所述第一字符线为所述坏字符线并且标记所述第二字符线为所述坏字符线;以及
当判定所述总和不大于所述第二门槛值时,不标记所述第二字符线为所述坏字符线,并且执行上述根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线的步骤。
3.根据权利要求2所述的存储器管理方法,其特征在于,根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线为所述坏字符线的步骤包括:
判断所述第一错误值是否大于所述第一门槛值;
当判定所述第一错误值大于所述第一门槛值时,标记所述第一字符线为所述坏字符线;以及
当判定所述第一错误值不大于所述第一门槛值时,不标记所述第一字符线为所述坏字符线,并且根据对应所述第一字符线的当前的所述第一错误值与已记录的旧的一或多个对应所述第一字符线的第三错误值计算对应所述第一字符线的第一平均错误值。
4.根据权利要求1所述的存储器管理方法,其特征在于,获得相邻于所述第一字符线的所述第二字符线的所述第二错误值的步骤包括:
对存储于所述第二字符线的第二数据进行所述第一型解码操作,以获得所述第二字符线的所述第二错误值。
5.根据权利要求1所述的存储器管理方法,其特征在于,还包括:
记录所获得的所述第一错误值于字符线错误值表中,以更新对应所述第一字符线的第一条目组中的第一条目,其中所述字符线错误值表包括所述多个字符线与分别对应所述多个字符线的多个条目组,其中每一条目组包括一或多个条目,并且所述一或多个条目记录其所属的条目组所对应的字符线的错误值;以及
当判定所述第一型解码操作成功时,判断所述第一错误值是否大于第一门槛值,其中当判定所述第一错误值非大于所述第一门槛值时,根据所述字符线错误值表计算对应所述第一字符线的第一平均错误值。
6.根据权利要求5所述的存储器管理方法,其特征在于,还包括:
当判定所述第一型解码操作失败且在获得所述第二错误值之前,判断所述第一错误值减去所述第一平均错误值的差值是否大于第三门槛值;
当判定所述差值大于所述第三门槛值时,从所述字符线错误值表读取对应所述第二字符线的第二条目组中最新的第二条目,以获得所述第二错误值,并且执行上述根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线的步骤;以及
当判定所述差值不大于所述第三门槛值时,执行上述根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线为所述坏字符线的步骤。
7.根据权利要求1所述的存储器管理方法,其特征在于,所述第一错误值与所述第二错误值包括错误位元数或校验子,其中若所述第一错误值与所述第二错误值的值属于所述错误位元数,所述存储器管理方法还包括:
当判定所述第一型解码操作失败且在获得所述第二错误值之前,对所述第一数据进行第二型解码操作,以判断所述第二型解码操作成功或失败,并且获得所述第一字符线的第四错误值;
当判定所述第二型解码操作成功时,将所述第四错误值作为对应所述第一字符线的所述第一错误值;以及
当判定所述第二型解码操作失败时,对所述第一数据进行第三型解码操作,以获得所述第一字符线的第五错误值,并且将获得的所述第五错误值作为对应所述第一字符线的所述第一错误值,其中所述第四错误值、第五错误值的值也属于所述错误位元数。
8.根据权利要求7所述的存储器管理方法,其特征在于,所述第一型解码操作为硬位元解码操作,所述第二型解码操作为软位元解码操作,并且所述第三型解码操作为冗余阵列解码操作。
9.根据权利要求7所述的存储器管理方法,其特征在于,还包括:
当将所述第四错误值或所述第五错误值作为所述第一错误值后,判断所述第一错误值减去对应所述第一字符线的第一平均错误值的差值是否大于第三门槛值;
当判定所述差值大于所述第三门槛值时,获得对应所述第二字符线的所述第二错误值,并且执行上述根据所述第一错误值、所述第二错误值与所述第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线的步骤;以及
当判定所述差值不大于所述第三门槛值时,执行上述根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线为所述坏字符线的步骤。
10.根据权利要求1所述的存储器管理方法,其特征在于,所述多个字符线被划分为多个实体区块,所述存储器管理方法还包括:
选择所述多个实体区块中的目标实体区块;以及
识别所述目标实体区块中被标记的一或多个字符线,并且根据被标记为所述坏字符线的所述一或多个字符线的数目与坏字符线门槛值来判断所述目标实体区块是否为坏实体区块。
11.根据权利要求1所述的存储器管理方法,其特征在于,还包括:
在执行写入指令以将写入数据写入至一或多个目标实体地址之前,根据判断所述一或多个目标实体地址所属的字符线是否被标记为所述坏字符线来写入所述写入数据。
12.一种存储控制器,其特征在于,用于控制配置有可复写式非易失性存储器模块的存储装置,其中所述非易失性存储器模块具有多个字符线,并且每一所述字符线由一或多个存储单元构成,所述存储控制器包括:
连接接口电路,用以耦接至主机系统;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;
错误检查与校正电路,用以进行解码操作;以及
处理器,其中所述处理器用以指示所述错误检查与校正电路对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作,以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值,
其中当判定所述第一型解码操作成功时,所述处理器还用以根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线,
其中当判定所述第一型解码操作失败时,所述处理器还用以获得相邻于所述第一字符线的第二字符线的第二错误值,根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线。
13.根据权利要求12所述的存储控制器,其特征在于,所述处理器还用以根据所述第一错误值、所述第二错误值与所述第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线的运作中,
所述处理器判断所述第一错误值与所述第二错误值的总和是否大于所述第二门槛值,
其中当判定所述总和大于所述第二门槛值时,所述处理器标记所述第一字符线为所述坏字符线并且标记所述第二字符线为所述坏字符线,
其中当判定所述总和不大于所述第二门槛值时,所述处理器不标记所述第二字符线为所述坏字符线,并且执行上述根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线的步骤。
14.根据权利要求13所述的存储控制器,其特征在于,所述处理器还用以根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线为所述坏字符线的运作中,
所述处理器判断所述第一错误值是否大于所述第一门槛值,
其中当判定所述第一错误值大于所述第一门槛值时,所述处理器标记所述第一字符线为所述坏字符线,
其中当判定所述第一错误值不大于所述第一门槛值时,所述处理器不标记所述第一字符线为所述坏字符线,并且根据对应所述第一字符线的当前的所述第一错误值与已记录的旧的一或多个对应所述第一字符线的第三错误值计算对应所述第一字符线的第一平均错误值。
15.根据权利要求12所述的存储控制器,其特征在于,所述处理器还用以获得相邻于所述第一字符线的所述第二字符线的所述第二错误值的运作中,
所述处理器指示所述错误检查与校正电路对存储于所述第二字符线的第二数据进行所述第一型解码操作,以获得所述第二字符线的所述第二错误值。
16.根据权利要求12所述的存储控制器,其特征在于,
其中所述处理器还用以记录所获得的所述第一错误值于字符线错误值表中,以更新对应所述第一字符线的第一条目组中的第一条目,其中所述字符线错误值表包括所述多个字符线与分别对应所述多个字符线的多个条目组,其中每一条目组包括一或多个条目,并且所述一或多个条目记录其所属的条目组所对应的字符线的错误值,
其中当判定所述第一型解码操作成功时,所述处理器判断所述第一错误值是否大于第一门槛值,其中当判定所述第一错误值非大于所述第一门槛值时,所述处理器还用以根据所述字符线错误值表计算对应所述第一字符线的第一平均错误值。
17.根据权利要求16所述的存储控制器,其特征在于,
其中当判定所述第一型解码操作失败且在获得所述第二错误值之前,所述处理器还用以判断所述第一错误值减去所述第一平均错误值的差值是否大于第三门槛值,
其中当判定所述差值大于所述第三门槛值时,所述处理器还用以从所述字符线错误值表读取对应所述第二字符线的第二条目组中最新的第二条目,以获得所述第二错误值,并且执行上述根据所述第一错误值、所述第二错误值与第二门槛值来判断是否标记所述第一字符线与所述第二字符线为所述坏字符线的运作,
其中当判定所述差值不大于所述第三门槛值时,所述处理器执行上述根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线为所述坏字符线的运作。
18.根据权利要求12所述的存储控制器,其特征在于,所述第一错误值与所述第二错误值包括错误位元数或校验子,其中若所述第一错误值与所述第二错误值的值属于所述错误位元数,
当判定所述第一型解码操作失败且在获得所述第二错误值之前,所述处理器指示所述错误检查与校正电路对所述第一数据进行第二型解码操作,以判断所述第二型解码操作成功或失败,并且获得所述第一字符线的第四错误值,
其中当判定所述第二型解码操作成功时,所述处理器将所述第四错误值作为对应所述第一字符线的所述第一错误值,
其中当判定所述第二型解码操作失败时,所述处理器对所述第一数据进行第三型解码操作,以获得所述第一字符线的第五错误值,并且将获得的所述第五错误值作为对应所述第一字符线的所述第一错误值,其中所述第四错误值、第五错误值的值也属于所述错误位元数。
19.根据权利要求18所述的存储控制器,其特征在于,所述第一型解码操作为硬位元解码操作,所述第二型解码操作为软位元解码操作,并且所述第三型解码操作为冗余阵列解码操作。
20.根据权利要求18所述的存储控制器,其特征在于,
当将所述第四错误值或所述第五错误值作为所述第一错误值后,所述处理器判断所述第一错误值减去对应所述第一字符线的第一平均错误值的差值是否大于第三门槛值,
其中当判定所述差值大于所述第三门槛值时,所述处理器获得对应所述第二字符线的所述第二错误值,并且执行上述根据所述第一错误值、所述第二错误值与所述第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线的运作,
其中当判定所述差值不大于所述第三门槛值时,所述处理器执行上述根据所述第一错误值与所述第一门槛值来判断是否标记所述第一字符线为所述坏字符线的运作。
21.根据权利要求12所述的存储控制器,其特征在于,所述多个字符线被划分为多个实体区块,
其中所述处理器还用以选择所述多个实体区块中的目标实体区块,
其中所述处理器还用以识别所述目标实体区块中被标记的一或多个字符线,并且根据被标记为所述坏字符线的所述一或多个字符线的数目与坏字符线门槛值来判断所述目标实体区块是否为坏实体区块。
22.根据权利要求12所述的存储控制器,其特征在于,
在执行写入指令以将写入数据写入至一或多个目标实体地址之前,所述处理器还用以根据判断所述一或多个目标实体地址所属的字符线是否被标记为所述坏字符线来写入所述写入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711096410.0A CN109766055A (zh) | 2017-11-09 | 2017-11-09 | 存储器管理方法以及存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711096410.0A CN109766055A (zh) | 2017-11-09 | 2017-11-09 | 存储器管理方法以及存储控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766055A true CN109766055A (zh) | 2019-05-17 |
Family
ID=66449731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711096410.0A Withdrawn CN109766055A (zh) | 2017-11-09 | 2017-11-09 | 存储器管理方法以及存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766055A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688325A (zh) * | 2019-09-05 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110255329A1 (en) * | 2010-04-19 | 2011-10-20 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device, method of supplying voltage in the same, and semiconductor device |
CN102693758A (zh) * | 2011-03-22 | 2012-09-26 | 群联电子股份有限公司 | 数据读取方法、存储器储存装置及其存储器控制器 |
CN102902626A (zh) * | 2011-07-27 | 2013-01-30 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器储存装置 |
CN104217762A (zh) * | 2013-05-31 | 2014-12-17 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法以及数据读取方法 |
CN105513635A (zh) * | 2014-09-23 | 2016-04-20 | 群联电子股份有限公司 | 编程方法、存储器存储装置及存储器控制电路单元 |
CN106158020A (zh) * | 2015-03-27 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置及其编码方法 |
CN106681856A (zh) * | 2016-08-23 | 2017-05-17 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN106843744A (zh) * | 2015-12-03 | 2017-06-13 | 群联电子股份有限公司 | 数据程序化方法与内存储存装置 |
-
2017
- 2017-11-09 CN CN201711096410.0A patent/CN109766055A/zh not_active Withdrawn
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110255329A1 (en) * | 2010-04-19 | 2011-10-20 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device, method of supplying voltage in the same, and semiconductor device |
CN102693758A (zh) * | 2011-03-22 | 2012-09-26 | 群联电子股份有限公司 | 数据读取方法、存储器储存装置及其存储器控制器 |
CN102902626A (zh) * | 2011-07-27 | 2013-01-30 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器储存装置 |
CN104217762A (zh) * | 2013-05-31 | 2014-12-17 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法以及数据读取方法 |
CN105513635A (zh) * | 2014-09-23 | 2016-04-20 | 群联电子股份有限公司 | 编程方法、存储器存储装置及存储器控制电路单元 |
CN106158020A (zh) * | 2015-03-27 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置及其编码方法 |
CN106843744A (zh) * | 2015-12-03 | 2017-06-13 | 群联电子股份有限公司 | 数据程序化方法与内存储存装置 |
CN106681856A (zh) * | 2016-08-23 | 2017-05-17 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
Non-Patent Citations (2)
Title |
---|
GAURAV PAGARE.ETC: "Associative Memory Model for Distorted On-line Devanagari Character Recognition", 《FIFTH INTERNATIONAL CONFERENCE ON ADVANCES IN COMPUTING AND COMMUNICATIONS》 * |
吴亦寒: "闪速存储上的信号检测", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688325A (zh) * | 2019-09-05 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI625735B (zh) | 記憶體管理方法以及儲存控制器 | |
US10713178B2 (en) | Mapping table updating method, memory controlling circuit unit and memory storage device | |
US10310739B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
CN106158040B (zh) | 读取电压准位估测方法、存储器存储装置及控制电路单元 | |
CN109582216B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
US10642731B2 (en) | Memory management method and storage controller | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN105808371A (zh) | 数据备份与恢复方法、控制芯片及存储装置 | |
CN107590080A (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN106297883A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
US10509583B1 (en) | Memory management method and storage controller | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN107331420A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN106814968A (zh) | 存储器管理方法与系统及其存储器存储装置 | |
CN109766055A (zh) | 存储器管理方法以及存储控制器 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN109032957A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106297896B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN105426113B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN112802512B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190517 |
|
WW01 | Invention patent application withdrawn after publication |