CN104681100B - 用于闪存装置的错误更正码单元、自我测试方法及控制器 - Google Patents

用于闪存装置的错误更正码单元、自我测试方法及控制器 Download PDF

Info

Publication number
CN104681100B
CN104681100B CN201410010124.8A CN201410010124A CN104681100B CN 104681100 B CN104681100 B CN 104681100B CN 201410010124 A CN201410010124 A CN 201410010124A CN 104681100 B CN104681100 B CN 104681100B
Authority
CN
China
Prior art keywords
data
flash memory
random data
error correcting
self
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.)
Active
Application number
CN201410010124.8A
Other languages
English (en)
Other versions
CN104681100A (zh
Inventor
翁晟佑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN201711172528.7A priority Critical patent/CN107845405B/zh
Publication of CN104681100A publication Critical patent/CN104681100A/zh
Application granted granted Critical
Publication of CN104681100B publication Critical patent/CN104681100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/02Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本发明公开了一种应用于一闪存装置的错误更正码单元、一种应用于一闪存装置的自我测试方法以及一种记忆装置的控制器。所述自我测试方法包括:产生一输入数据;对所述输入数据进行编码以产生相对应的一错误更正码;使用所述输入数据与所述错误更正码来模拟产生读取所述闪存装置中一闪存的一数据页所得到的一软信息;以及对所述软信息进行译码以得到一译码结果。通过本发明,由于可以利用数据量很少的种子数据来仿真产生读取所述闪存装置中一闪存的一数据页所得到的一软信息,因此,自我测试电路具有很小的芯片面积,且可以产生类似实际自闪存中所读取的数据,供闪存装置在出厂前进行测试以判断其读取与译码质量,有成本低以及高效率的优点。

Description

用于闪存装置的错误更正码单元、自我测试方法及控制器
技术领域
本发明是有关于闪存,尤指一种应用于闪存装置的自我测试方法。
背景技术
闪存可通过电子式的抹除(erase)与写入/程序化(program)以进行数据储存,并且广泛地应用于记忆卡(memory card)、固态硬盘(solid-state drive)与可携式多媒体播放器等等。由于闪存是非挥发性(non-volatile)内存,因此,不需要额外电力来维持闪存所储存的信息,此外,闪存可提供快速的数据读取与较佳的抗震能力,而这些特性也说明了闪存为何会如此普及的原因。
闪存可区分为NOR型闪存与NAND型闪存。对于NAND型闪存来说,其具有较短的抹除及写入时间且每一内存单元需要较少的芯片面积,因而相较于NOR型闪存,NAND型闪存会允许较高的储存密度以及较低的每一储存位的成本。一般来说,闪存是以内存单元数组的方式来储存数据,而内存单元是由一浮动闸极晶体管(floating-gate transistor)来加以实作,且每一内存单元可通过适当地控制浮动闸极晶体管的浮动闸极上的电荷个数来设定导通所述浮动闸极晶体管所实作的所述内存单元的所需临界电压,进而储存单一个位的信息或者一个位以上的信息,如此一来,当一个或多个预定控制闸极电压施加于浮动闸极晶体管的控制闸极之上,浮动闸极晶体管的导通状态便会指示出浮动闸极晶体管中所储存的一个或多个二进制数(binary digit)。
然而,由于某些因素,闪存单元中原本储存的电荷的个数可能会受到影响/扰乱,举例来说,闪存中所存在的干扰可能来自于写入干扰(write/program disturbance)、读取干扰(read disturbance)及/或保持干扰(retention disturbance)。以具有各自储存一个位以上的信息的内存单元的NAND型闪存为例,一个物理内存分页(physical page)会包括多个逻辑内存分页(logical page),且每一逻辑内存分页是采用一个或多个控制闸极电压来进行读取。举例来说,对于一个用以储存3个位的信息的闪存单元来说,所述闪存单元会具有分别对应不同电荷个数(亦即不同临界电压)的8种状态(亦即电荷位准)的其中的一种,然而,由于写入/抹除次数(program/erase count,P/E count)及/或数据保留时间(retentiontime)的缘故,闪存单元中的内存单元的临界电压分布(threshold voltage distribution)便会有所改变,因此,使用原本的控制闸极电压设定(亦即临界电压设定)来读取内存单元中所储存的信息可能会因为改变后的临界变压分布而无法正确地获得所储存的信息。
上述有关于闪存单元中的内存单元的临界电压分布改变或偏移通常会造成数据读取上的错误,而此一问题可以通过使用错误更正码(Error Correction Code,ECC)与软译码(soft decode)方式来获得改善。然而,由于目前闪存在制程上的缩减,读取闪存的数据并进行软译码的过程也相对更容易产生错误,因此,闪存装置在出厂前需要进行测试以判断其读取与译码质量,因此,如何提供一个便宜且有效率的测试方法是一个重要的课题。
发明内容
因此,本发明的一目的在于公开一种应用于闪存装置的自我测试方法,其具有很小的芯片面积,且可以产生大量且十分类似实际自闪存中所读取的数据,以供闪存装置在出厂前进行测试以判断其读取与译码质量。
依据本发明一实施例,一种应用于一闪存装置的错误更正码单元包括一编码器、一自我测试电路以及一译码器,其中所述编码器用以对所接收到的一输入数据进行编码以产生相对应的一错误更正码;所述自我测试电路是耦接于所述编码器,且用来产生所述输入数据至所述编码器,接收来自所述编码器的所述错误更正码,并使用所述输入数据与所述错误更正码来模拟产生读取所述闪存装置中一闪存的一数据页所得到的一软信息;以及所述译码器是耦接于所述自我测试电路,且用来在不读取该闪存的情形下直接自该自我测试电路接收所述软信息,并对所述软信息进行译码以得到一译码结果;其中所述自我测试电路包括:一随机数据产生器,用来使用同一个种子数据来分别产生多笔随机数据以作为所述输入数据;以及一噪声产生器,耦接于所述随机数据产生器,用来将所述多笔随机数据与所述错误更正码加上噪声成分,以模拟产生读取所述闪存中所述数据页所得到的所述软信息。
依据本发明另一实施例,一种应用于一闪存装置的自我测试方法包括:使用同一个种子数据来分别产生多笔随机数据以作为一输入数据;对所述输入数据进行编码以产生相对应的一错误更正码;使用一自我测试电路来使用所述输入数据与所述错误更正码加上噪声成分,来模拟产生读取所述闪存装置中一闪存的一数据页所得到的一软信息;以及在不读取该闪存的情形下直接自该自我测试电路接收所述软信息,并对所述软信息进行译码以得到一译码结果。
依据本发明另一实施例,是公开一种记忆装置的控制器,其中所述控制器是用来存取一闪存,所述闪存包含多个区块,且所述控制器包括一只读存储器、一微处理器以及一错误更正码单元,其中所述只读存储器用来储存一程序代码;所述微处理器用来执行所述程序代码以控制对所述闪存的存取以及管理所述多个区块;以及所述错误更正码单元包括一编码器、一自我测试电路以及一译码器,其中所述编码器用以对所接收到的一输入数据进行编码以产生相对应的一错误更正码;所述自我测试电路是耦接于所述编码器,且用来产生所述输入数据至所述编码器,接收来自所述编码器的所述错误更正码,并使用所述输入数据与所述错误更正码来模拟产生读取所述闪存装置中一闪存的一数据页所得到的一软信息;以及所述译码器是耦接于所述自我测试电路,且用来在不读取该闪存的情形下直接自该自我测试电路接收所述软信息,并对所述软信息进行译码以得到一译码结果;其中所述自我测试电路包括:一随机数据产生器,用来使用同一个种子数据来分别产生多笔随机数据以作为所述输入数据;以及一噪声产生器,耦接于所述随机数据产生器,用来将所述多笔随机数据与所述错误更正码加上噪声成分,以模拟产生读取所述闪存中所述数据页所得到的所述软信息。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为依据本发明一实施例的错误更正码单元的示意图。
图3为读取闪存中一内存单元的软信息的示意图。
图4为依据本发明一实施例的随机数据产生器的示意图。
图5为依据本发明一实施例的应用于一闪存装置的自我测试方法的流程图。
其中,附图标记说明如下:
100 记忆装置
110 内存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 接口逻辑
120 闪存
130 错误更正码单元
210 编码器
220 自我测试电路
222 随机数据产生器
224 噪声产生器
226、242 缓冲器
228 控制信号有限状态机
230 多任务器
240 数字信号处理器
244 译码器
302、304 曲线
410 加扰器
412_1~412_12 加法器
420 种子储存单元
R1~R13 缓存器
FF1~FF13 正反器
en 致能信号
Vc_normal 输入控制信号
Vout_normal 输出信号
V1~V7 电压
fb_strt 自我测试开始信号
ECC 错误更正码
fb_stop 自我测试结束信号
fb_done 测试结束信号
fb_cdwd_cnt 测试区段数量
fb_fail_cnt 区段解码失败数量
500~506 步骤
具体实施方式
请参考图1,图1为依据本发明一实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100尤其是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)。记忆装置100包括一闪存(Flash Memory)120以及一控制器,所述控制器可为一内存控制器110,且是用来存取闪存120。依据本实施例,内存控制器110包括一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116与一接口逻辑118。只读存储器是用来储存一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存120的存取(Access)。此外,控制逻辑114包括一错误更正码(Error CorrectingCode,ECC)单元130。
于典型状况下,闪存120包括多个区块(Block),而所述控制器(例如:通过微处理器112执行程序代码112C的内存控制器110)对闪存120进行复制、抹除、合并数据等运作是以区块为单位来进行复制、抹除、合并数据。另外,一区块可记录特定数量的数据页(Page),其中所述控制器(例如:通过微处理器112执行程序代码112C的内存控制器110)对闪存120进行写入数据的运作是以数据页为单位来进行写入。
实作上,通过微处理器112执行程序代码112C的内存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)沟通。
另外,请参考图2,图2为依据本发明一实施例的错误更正码单元130的示意图。如图2所示,错误更正码单元130包括一编码器210、一自我测试电路220、一多任务器230以及一数字信号处理器240,其中自我测试电路220包括一随机数据产生器222、一噪声产生器224、一缓冲器226以及一控制信号有限状态机228,且数字信号处理器240包括一缓冲器242以及一译码器244。其中,错误更正码单元130的操作具有两种模式:自我测试模式以及正常操作模式,当错误更正码单元130处于自我测试模式时,自我测试电路220会产生致能信号en至多任务器230以使得数字信号处理器240可以接收来自自我测试电路220中的数据,而自我测试电路220与编码器210会产生测试数据至数字信号处理器240中,并据以输出所需要的测试结果;而当错误更正码单元130处于正常操作模式时,自我测试电路220的全部或部分功能会关闭,多任务器230则会让数字信号处理器240接收内存控制器110于正常操作时所输入的输入控制信号Vc_normal,并产生输出信号Vout_normal至内存控制器110中的其他电路。以下将详细叙述这两种模式的操作细节。
首先,自我测试模式是用来测试数字信号处理器240中的译码器244的功能是否正常,亦即测试当自闪存120中所读取的数据质量很差时,译码器244是否可以译码出正确的数据。于本实施例中,为了节省内存的使用量以及充分测试译码器244的功能,自我测试电路220使用随机数据产生器222与噪声产生器224以使用很低的数据量来大量产生非常类似实际自闪存120中所读取的数据,特别是自闪存120中所读取的“软信息”。
举例说明“软信息”的意义,请参考图3,图3为读取闪存120中一内存单元的软信息的示意图,其中所述内存单元是以一浮动闸极晶体管来实作,且曲线302是用来表示当所述内存单元记录信息“0”时的临界电压机率分布图,而曲线304是用来表示当所述内存单元记录信息“1”时的临界电压机率分布图,其中由于写入/抹除次数(program/erase count,P/Ecount)及/或数据保留时间(retention time)的缘故,内存单元的临界电压分布(亦即曲线302与304)可能会改变或偏移,甚至曲线302与304会重迭,因此,内存控制器110会使用7种不同的电压V1~V7施加在所述内存单元(浮动闸极晶体管)的闸极,并通过是否侦测到所述内存单元的电流来产生对应的位值。举例来说,假设当施加电压V1、V3、V5、V7时所述内存单元有电流产生(亦即电压V1、V3、V5、V7大于所述内存单元的临界电压值),且当施加电压V2、V4、V6时所述内存单元没有电流产生(亦即电压V2、V4、V6小于所述内存单元的临界电压值),则自所述内存单元所读取的软信息为“1010101”;另外,假设当施加电压V1~V7时所述内存单元均有电流产生(亦即电压V1~V7均大于所述内存单元的临界电压值),则自所述内存单元所读取的软信息为“1111111”。需注意的是,以上用来解释“软信息”的细节仅为一范例说明,于本发明的其他实施例中,所施加的电压可以具有其他数量,而不一定是七个。
此外,在闪存120的结构中,闪存120包括多个区块(block),每一个区块包括多个数据页(page),每一个数据页包括多个区段(sector),而每一个区段则包括多个内存单元,其中“区块”为最小抹除单位,“数据页”为最小读取写入单位(亦即读取数据页时一定要一次读取整个数据页的内容),因此,图2中的随机数据产生器222与噪声产生器224是用来仿真产生读取一个数据页中所有内存单元的软信息,详细来说,随机数据产生器222与噪声产生器224首先会仿真内存控制器110使用电压V1来读取一数据页中的每一个内存单元,以产生所述数据页的第一笔数据;接着,随机数据产生器222与噪声产生器224仿真内存控制器110使用电压V2来读取所述数据页中的每一个内存单元,以产生所述数据页的第二笔数据;以此类推,随机数据产生器222与噪声产生器224仿真内存控制器110分别使用电压V3、V4、V5、V6、V7来读取所述数据页中的每一个内存单元,以分别产生所述数据页的第三、四、五、六、七笔数据,而所述数据页的第一至七笔数据则构成所述数据页中每一个内存单元的软信息。
详细来说,请参考图4,图4为依据本发明一实施例的随机数据产生器222的示意图。如图4所示,随机数据产生器222包括一加扰器410以及一种子储存单元420,其中加扰器410包括多个缓存器R1~R13与多个加法器412_1~412_12,且种子储存单元420包括多个与缓存器R1~R13相连的正反器FF1~FF13。在以下的说明中,随机数据产生器222是以图4所示的电路架构来进行说明,然而,图4所示的随机数据产生器222的电路架构并非作为本发明的限制,只要可产生类似的数据,随机数据产生器222中的缓存器、加法器以及正反器的数量可以改变,且随机数据产生器222的电路也可以有其他的实现方式。
当工程师准备让错误更正码单元130进入自我测试模式时,工程师会将一自我测试开始信号fb_strt输入至图2的自我测试电路220中,而当自我测试电路220接收到自我测试开始信号fb_strt后,控制信号有限状态机228便会产生一第一种子数据至随机数据产生器222中的种子储存单元420,于本实施例中,所述第一种子数据可以为“0000000000001”,且这13个位值分别储存于正反器FF1~FF13中。接着,加扰器410便会开始依据所述第一种子数据来循序产生第一笔随机数据,且在产生第一笔随机数据的过程中,正反器FF1~FF13中所储存的种子信息也会持续变化。
随机数据产生器222所产生的第一笔随机数据接着进入编码器210以及噪声产生器224中,其中编码器210会将第一笔随机数据进行编码以产生相对应的错误更正码(ErrorCorrection Code)ECC之后,再输入至噪声产生器224。简单来说,噪声产生器224所接收到的数据即为第一笔随机数据及其相对应的错误更正码,而于本发明一实施例中,噪声产生器224所接收到的数据类似于闪存120中一个数据页中的数据内容(包括多组数据即相对应的错误更正码),举例来说,假设闪存120中一个数据页包括8个区段,且每一个区段为1KB(kilobyte),且这1KB的数据包括120为元的错误更正码,则噪声产生器224所接收到的数据就类似上述这个数据页的内容。接着,噪声产生器224将所接收到的第一笔随机数据及其相对应的错误更正码加上噪声成分(亦即加上一个错误量),以模拟实际在读取闪存120时的状况,举例来说,噪声产生器224可以是一个加性白高斯噪声(Additive White GaussianNoise)电路,其可以改变所接收到数据的少部分内容,以使得所接收到数据具有一定比例的错误量,例如使上述一个数据页具有0.01%的列位错误率(row bit error rate),亦即一个数据页中大约具有90个错误位值。
如上所述,噪声产生器224所产生的数据即可被视为图3中使用电压V1来读取一数据页的结果,而噪声产生器224所产生的数据通过缓冲器226、控制信号有限状态机228与多任务器230输入至数字信号处理器240中的缓冲器242。
此外,噪声产生器224会将所输出的数据中错误位的位置及其位值记录下来(举例来说,可以记录至控制信号有限状态机228中),以供后续使用。
接着,控制信号有限状态机228再次产生所述第一种子数据(亦即上述的“0000000000001”)至随机数据产生器222中的种子储存单元420,同样地,随机数据产生器222依据所述第一种子数据产生第二笔随机数据,其中由于第二笔随机数据与上述的第一笔随机数据是使用相同的种子数据来产生,因此,第二笔随机数据实际上会完全等于第一笔随机数据。接着,随机数据产生器222将所产生的所述第二笔随机数据输入至编码器210中以产生相对应的错误更正码,而噪声产生器224接着接收第二笔随机数据及其相对应的错误更正码。噪声产生器224接着对第二笔随机数据及其相对应的错误更正码加入噪声以仿真图3中使用电压V2来读取数据页的结果,由于噪声产生器224此时是仿真使用电压V2来读取同一个数据页,因此其错误位值的位置与先前仿真使用电压V1来读取数据页时的错误位值位置具有相依性,因此,控制信号有限状态机228会将先前所储存的错误位的位置其位值传送给噪声产生器224,而噪声产生器224则利用这些信息来将第二笔随机数据及其错误更正码加上噪声后输出。
如上所述,噪声产生器224所产生的数据即可被视为图3中使用电压V2来读取一数据页的结果,而噪声产生器224所产生的数据通过缓冲器226、控制信号有限状态机228与多任务器230输入至数字信号处理器240中的缓冲器242。
此外,噪声产生器224会将所输出的数据中错误位的位置及其位值记录下来(举例来说,可以记录至控制信号有限状态机228中),以供后续使用。
以此类推,随机数据产生器222会再次利用所述第一种子数据分别产生第三笔随机数据、第四笔随机数据、第五笔随机数据、第六笔随机数据、第七笔随机数据,其分别被编码器210与噪声产生器224处理以模拟类似图3中使用电压V3、V4、V5、V6、V7来读取同一数据页的结果。噪声产生器224所产生的这些数据通过缓冲器226、控制信号有限状态机228与多任务器230输入至数字信号处理器240中的缓冲器242。
在数字信号处理器240接收到模拟类似图3中使用电压V1~V7来读取同一数据页的结果后,译码器244对这些数据进行类似使用低密度校验码(Low Density ParityCheck,LDPC)译码的软译码操作,以测试是否可以解码成功。
上述有关于自我测试电路220与数字信号处理器240的操作可视为仿真内存控制器110实际在读取闪存120中一数据页的数据(软信息),并加以解码的操作。
接着,自我测试电路220重复以上的操作,并模拟产生多个不同数据页的软信息至译码器244进行译码。详细来说,控制信号有限状态机228可以产生一第二种子数据(例如“0000000000010”)至随机数据产生器222中的种子储存单元420,并依照上述步骤以产生另一数据页的软信息至译码器244进行译码;接着控制信号有限状态机228可以产生一第三种子数据(例如“0000000000011”)至随机数据产生器222中的种子储存单元420,并依照上述步骤以产生另一数据页的软信息至译码器244进行译码,…,以此类推,自我测试电路220可以依据工程师的设定来仿真产生多个不同数据页(例如1万个数据页)的软信息至译码器244进行译码。
当工程师认为需要停止测试时,可以通过输入一自我测试结束信号fb_stop至自我测试电路220中以停止产生数据至数字信号处理器240,而此时自我测试电路220会输出一测试结束信号fb_done、一测试区段数量fb_cdwd_cnt以及区段解码失败数量fb_fail_cnt以供工程师参考。
如上所述,由于图2中的自我测试电路220仅需要数据量很低的种子数据便可以仿真产生很大量的数据页数据,因此,自我测试电路220的芯片面积便可以大幅度的减少以节省成本,且由于所仿真产生的数据具有很高的真实性,因此也可以增加测试的可靠度。
另一方面,当错误更正码单元130处于正常操作模式时,自我测试电路220的全部或部分功能会关闭,但此时图2中的编码器210与译码器244仍会正常操作,亦即编码器210会将所需要写入至闪存120中的数据进行编码后再写入至闪存120中,而译码器244则用来接收输入控制信号Vc_normal,并对自闪存120中所读取的数据进行译码。
另外,请参考图5,图5为依据本发明一实施例的应用于一闪存装置的自我测试方法的流程图。参考以上针对2~4图的叙述,本发明的自我测试方法的流程如下所示:
步骤500:产生一输入数据;
步骤502:对所述输入数据进行编码以产生相对应的一错误更正码;
步骤504:使用所述输入数据与所述错误更正码来模拟产生读取所述闪存装置中一闪存的一数据页所得到的一软信息;以及
步骤506:对所述软信息进行译码以得到一译码结果。
简要归纳本发明,于本发明的应用于闪存装置的错误更正码单元、自我测试方法及相关的控制器中,由于可以利用数据量很少的种子数据来仿真产生读取所述闪存装置中一闪存的一数据页所得到的一软信息,因此,相关的自我测试电路具有很小的芯片面积,且可以产生大量且十分类似实际自闪存中所读取的数据,以供闪存装置在出厂前进行测试以判断其读取与译码质量,因此,本发明所公开的测试方法及相关电路确实具有成本低以及有效率的优点。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种应用于一闪存装置的错误更正码单元,其特征在于包括:
一编码器,用以对所接收到的一输入数据进行编码以产生相对应的一错误更正码;
一自我测试电路,耦接于所述编码器,用来产生所述输入数据至所述编码器,接收来自所述编码器的所述错误更正码,并使用所述输入数据与所述错误更正码来模拟产生读取所述闪存装置中一闪存的一数据页所得到的一软信息;以及
一译码器,耦接于所述自我测试电路,用来在不读取该闪存的情形下直接自该自我测试电路接收所述软信息,并对所述软信息进行译码以得到一译码结果;
其中所述自我测试电路包括:
一随机数据产生器,用来使用同一个种子数据来分别产生多笔随机数据以作为所述输入数据;以及
一噪声产生器,耦接于所述随机数据产生器,用来将所述多笔随机数据与所述错误更正码加上噪声成分,以模拟产生读取所述闪存中所述数据页所得到的所述软信息。
2.如权利要求1所述的应用于一闪存装置的错误更正码单元,其特征在于,所述多笔随机数据中每一笔随机数据的内容均相同。
3.如权利要求2所述的应用于一闪存装置的错误更正码单元,其特征在于,所述噪声产生器在对每一笔随机数据加上噪声成分时会同时记录错误位的位置及其位值,而所述噪声产生器在对第N笔随机数据加上噪声成分时会参考所述噪声产生器在对第1~(N-1)笔随机数据加上噪声成分时所记录的错误位的位置及其位值,其中N大于1。
4.如权利要求1所述的应用于一闪存装置的错误更正码单元,其特征在于,所述软信息包括使用多个不同电压值来分别读取所述数据页所得到的信息。
5.一种应用于一闪存装置的自我测试方法,其特征在于包括:
使用同一个种子数据来分别产生多笔随机数据以作为一输入数据;
对所述输入数据进行编码以产生相对应的一错误更正码;
使用一自我测试电路来使用所述输入数据与所述错误更正码加上噪声成分,来模拟产生读取所述闪存装置中一闪存的一数据页所得到的一软信息;以及
在不读取该闪存的情形下直接自该自我测试电路接收所述软信息,并对所述软信息进行译码以得到一译码结果。
6.如权利要求5所述的应用于一闪存装置的自我测试方法,所述多笔随机数据中每一笔随机数据的内容均相同。
7.如权利要求6所述的应用于一闪存装置的自我测试方法,其特征在于,
将所述多笔随机数据与所述错误更正码加上噪声成分,以模拟产生读取所述闪存中所述数据页所得到的所述软信息的步骤包括:
当对每一笔随机数据加上噪声成分时,同时记录错误位的位置及其位值;
参考对第1~(N-1)笔随机数据加上噪声成分时所记录的错误位的位置及其位值,以对第N笔随机数据加上噪声成分,其中N大于1。
8.如权利要求5所述的应用于一闪存装置的自我测试方法,其特征在于,
所述软信息包括使用多个不同电压值来分别读取所述数据页所得到的信息。
9.一种记忆装置的控制器,其特征在于,所述控制器是用来存取一闪存,
所述闪存包含多个区块,且所述控制器包括:
一只读存储器,用来储存一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存的存取以及管理所述多个区块;以及
一错误更正码单元,耦接于所述微处理器,其中所述错误更正码单元包括:
一编码器,用以对所接收到的一输入数据进行编码以产生相对应的一错误更正码;
一自我测试电路,耦接于所述编码器,用来产生所述输入数据至所述编码器,接收来自所述编码器的所述错误更正码,并使用所述输入数据与所述错误更正码来模拟产生读取所述闪存中一数据页所得到的一软信息;以及
一译码器,耦接于所述自我测试电路,用来在不读取该闪存的情形下直接自该自我测试电路接收所述软信息,并对所述软信息进行译码以得到一译码结果;
其中所述自我测试电路包括:
一随机数据产生器,用来使用同一个种子数据来分别产生多笔随机数据以作为所述输入数据;以及
一噪声产生器,耦接于所述随机数据产生器,用来将所述多笔随机数据与所述错误更正码加上噪声成分,以模拟产生读取所述闪存中所述数据页所得到的所述软信息。
10.如权利要求9所述的一种记忆装置的控制器,其特征在于,所述多笔随机数据中每一笔随机数据的内容均相同。
11.如权利要求10所述的一种记忆装置的控制器,其特征在于,所述噪声产生器在对每一笔随机数据加上噪声成分时会同时记录错误位的位置及其位值,而所述噪声产生器在对第N笔随机数据加上噪声成分时会参考所述噪声产生器在对第1~(N-1)笔随机数据加上噪声成分时所记录的错误位的位置及其位值,其中N大于1。
12.如权利要求9所述的一种记忆装置的控制器,其特征在于,所述软信息包括使用多个不同电压值来分别读取所述数据页所得到的信息。
CN201410010124.8A 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器 Active CN104681100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711172528.7A CN107845405B (zh) 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW102143853A TWI527048B (zh) 2013-11-29 2013-11-29 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
TW102143853 2013-11-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201711172528.7A Division CN107845405B (zh) 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器

Publications (2)

Publication Number Publication Date
CN104681100A CN104681100A (zh) 2015-06-03
CN104681100B true CN104681100B (zh) 2017-12-15

Family

ID=53265881

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201711172528.7A Active CN107845405B (zh) 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器
CN201410010124.8A Active CN104681100B (zh) 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201711172528.7A Active CN107845405B (zh) 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器

Country Status (3)

Country Link
US (2) US9703627B2 (zh)
CN (2) CN107845405B (zh)
TW (1) TWI527048B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI575531B (zh) * 2015-08-10 2017-03-21 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TWI611405B (zh) * 2015-11-25 2018-01-11 旺宏電子股份有限公司 將資料自記憶體寫回儲存裝置的方法及應用其的資料存取系統
TWI595498B (zh) 2016-01-20 2017-08-11 大心電子(英屬維京群島)股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10270471B2 (en) * 2016-08-02 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Memory system having ECC self-checking function and associated method
CN107918571B (zh) * 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置
US10621038B2 (en) * 2017-08-08 2020-04-14 Silicon Motion, Inc. Decoding method, associated flash memory controller and electronic device
TWI692771B (zh) * 2017-11-14 2020-05-01 慧榮科技股份有限公司 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
CN108804025B (zh) * 2018-03-07 2021-10-01 深圳忆联信息系统有限公司 一种降低闪存滞留错误的方法及固态硬盘
US10680745B2 (en) 2018-04-11 2020-06-09 Samsung Electronics Co., Ltd. Blind detection of preempted resources in orthogonal frequency division multiplexing (OFDM) systems
US10725862B2 (en) * 2018-07-06 2020-07-28 Macronix International Co., Ltd. Data recovery method to error correction code in memory
TWI697906B (zh) * 2018-10-12 2020-07-01 慧榮科技股份有限公司 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法
TWI677876B (zh) * 2018-10-12 2019-11-21 慧榮科技股份有限公司 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法
US11258466B1 (en) * 2020-03-13 2022-02-22 Kioxia Corporation System and method for high reliability fast raid soft decoding for NAND flash memories
US11238953B2 (en) * 2020-05-07 2022-02-01 Micron Technology, Inc. Determine bit error count based on signal and noise characteristics centered at an optimized read voltage
US11049582B1 (en) 2020-05-07 2021-06-29 Micron Technology, Inc. Detection of an incorrectly located read voltage
CN113671350B (zh) * 2021-08-23 2024-02-27 集创北方(珠海)科技有限公司 测试装置及电子设备
TWI771252B (zh) * 2021-12-21 2022-07-11 南亞科技股份有限公司 電子測試系統及電子測試方法
CN114822669B (zh) * 2022-06-29 2022-09-02 北京得瑞领新科技有限公司 闪存错误注入系统、固态存储设备及测试系统
CN117971704B (zh) * 2024-03-28 2024-06-04 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种青少年编程场景的自我引导代码纠错数据集生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101405810A (zh) * 2006-01-20 2009-04-08 马维尔国际贸易有限公司 在闪存中用于纠错的方法和系统
CN102160120A (zh) * 2008-07-01 2011-08-17 Lsi公司 使用调制编码减轻单元间干扰的方法和设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5925144A (en) * 1997-03-13 1999-07-20 Western Digital Corporation Error correction code circuit that performs built-in self test
TW533420B (en) * 2001-11-14 2003-05-21 Taiwan Semiconductor Mfg Memory read test method
US7293206B2 (en) * 2004-09-13 2007-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Test data pattern for testing a CRC algorithm
KR100702300B1 (ko) 2005-05-30 2007-03-30 주식회사 하이닉스반도체 테스트 제어 회로를 갖는 반도체 메모리 장치
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
WO2009072103A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
US8627163B2 (en) * 2008-03-25 2014-01-07 Micron Technology, Inc. Error-correction forced mode with M-sequence
TW200947450A (en) * 2008-05-09 2009-11-16 A Data Technology Co Ltd Storage system capable of data recovery and method thereof
CN102543208B (zh) * 2010-12-30 2015-01-21 深圳市硅格半导体有限公司 快速确定闪存错误分布的方法及装置
US8938658B2 (en) * 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US9214963B1 (en) * 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
US9235488B2 (en) * 2013-03-15 2016-01-12 Pmc-Sierra Us, Inc. System and method for random noise generation
US9286155B1 (en) * 2013-05-24 2016-03-15 Marvell International Ltd. Systems and methods for generating soft information in a flash device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101405810A (zh) * 2006-01-20 2009-04-08 马维尔国际贸易有限公司 在闪存中用于纠错的方法和系统
CN102160120A (zh) * 2008-07-01 2011-08-17 Lsi公司 使用调制编码减轻单元间干扰的方法和设备

Also Published As

Publication number Publication date
TWI527048B (zh) 2016-03-21
US20150155058A1 (en) 2015-06-04
US10521292B2 (en) 2019-12-31
TW201521032A (zh) 2015-06-01
US20170262333A1 (en) 2017-09-14
CN107845405A (zh) 2018-03-27
US9703627B2 (en) 2017-07-11
CN104681100A (zh) 2015-06-03
CN107845405B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
CN104681100B (zh) 用于闪存装置的错误更正码单元、自我测试方法及控制器
KR101919934B1 (ko) 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법 및 극 부호화된 부호어를 불휘발성 메모리 장치의 멀티 비트 데이터에 매핑하는 매핑 패턴을 선택하는 매핑 패턴 선택 방법
US8612667B2 (en) Method for performing data pattern management regarding data accessed by a controller of a flash memory, and associated memory device and controller thereof
CN103473146A (zh) 存储器控制方法、存储器控制器以及电子装置
CN102543196B (zh) 数据读取方法、存储器储存装置及其控制器
Tanakamaru et al. Highly reliable and low power SSD using asymmetric coding and stripe bitline-pattern elimination programming
KR20160017983A (ko) 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
CN107918571A (zh) 测试储存单元的方法以及使用该方法的装置
CN104733051A (zh) 奇偶校验码的解码方法、存储器储存装置及控制电路单元
CN105005453A (zh) 星载nand flash固存坏区管理系统
CN103631670A (zh) 存储器储存装置、存储器控制器与数据处理方法
CN111813591B (zh) Nand Flash的数据纠错方法、装置、电子设备及存储介质
CN109753375A (zh) 存储器系统及其操作方法
CN109949839A (zh) 存储器控制器及存储器控制器的操作方法
US11625298B2 (en) Memory block defect detection and management
CN104969198A (zh) 数据路径完整性验证
US11514995B2 (en) Memory sub-system self-testing operations
CN110444243A (zh) 存储设备读错误纠错能力的测试方法、系统及存储介质
CN103942115A (zh) 一种nand闪存系统的数据存储容错编码方法
CN105161137A (zh) 一种MLC架构中Nand Flash控制器电路实现装置
CN109215726A (zh) 存储器测试方法及其存储器装置
CN104679441A (zh) 时间估测方法、存储器存储装置、存储器控制电路单元
CN115859877A (zh) 一种仿真测试中信息同步方法、装置、设备及存储介质
CN115910181A (zh) 基于预处理条件生成测试多核ssd固件的系统和方法
CN109559774A (zh) 解码方法、存储器控制电路单元以及存储器存储装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant