CN101752010A - 闪存控制器及设定闪存的错误修正码容量的方法 - Google Patents
闪存控制器及设定闪存的错误修正码容量的方法 Download PDFInfo
- Publication number
- CN101752010A CN101752010A CN200810179664A CN200810179664A CN101752010A CN 101752010 A CN101752010 A CN 101752010A CN 200810179664 A CN200810179664 A CN 200810179664A CN 200810179664 A CN200810179664 A CN 200810179664A CN 101752010 A CN101752010 A CN 101752010A
- Authority
- CN
- China
- Prior art keywords
- ecc
- bug patch
- patch code
- flash memory
- 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.)
- Granted
Links
Images
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明提供一种闪存控制器及设定闪存的错误修正码容量的方法,闪存具有数据区域,以储存数据内容,并且具有第一备用区域,以储存相对应于该数据内容的第一错误修正码值。错误修正码(ECC)模组利用该数据内容产生第二错误修正码(ECC)值,并且比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,依据该比较结果来决定该数据内容是否存在若干个错误码。当存在错误码时,设定单元计算该些错误码的数量,并且设定该数据区域,以分配一部分的数据区域作为第二备用区域,使该错误修正码(ECC)模组修正该数据内容的错误码。
Description
【技术领域】
本发明是关于一种闪存控制器及设定闪存的错误修正码容量的方法,特别是有关于一种具有错误修正码容量设定单元的闪存控制器及设定闪存的错误修正码容量的方法,该闪存控制器及方法依据闪存的使用状态来设定。
【背景技术】
闪存(flash memory)是一种非挥发性内存,即使移除供应电源之后仍能保存数据。非与门(Not AND,NAND)型式的内存是一种闪存,具有高密度特性,并且优于其它种类的内存。特别是NAND闪存具有较大的储存容量、较佳的内存存取速度以及低成本的特点。
在高阶的闪存制程中,错误修正码(error correction code,ECC)是NAND闪存控制器的常用功能。具有多层式芯片(multi-level cell)的NAND闪存的成本较低,广泛应用于固态碟机(solid state drive,SSD)。然而多层式芯片的NAND闪存亦有缺点,例如读取耐久性(read endurance)不佳,而较差的读取耐久性的多层式芯片NAND闪存导致固态碟机(SSD)的可靠度下降。有鉴于此,确有必要发展一种新式的闪存,以解决上述问题。
【发明内容】
本发明的一目的在于提供一种闪存控制器及设定闪存的错误修正码容量的方法,以依据闪存的使用状态来提升该闪存控制器的错误修正码容量。
本发明另一目的在于提供一种闪存控制器及设定闪存的错误修正码容量的方法,以改善该闪存的读取/写入耐久性(read endurance)以及可靠度。
为达成上述目的,本发明提供一种闪存控制器,包括控制单元、缓冲器、错误修正码(ECC)模组以及设定单元。控制单元用以产生一读取命令,以读取该闪存的数据内容,该闪存具有数据区域,以储存该数据内容,并且具有第一备用区域,以储存相对应于该数据内容的第一错误修正码(ECC)值。缓冲器用以储存来自于该闪存的数据区域的数据内容。错误修正码(ECC)模组利用该数据内容产生第二错误修正码(ECC)值,并且比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,然后依据该比较结果来决定该数据内容是否存在若干个错误码(errors)。当该数据内容存在该些个错误码时,该设定单元计算该错误码的数量,以决定该错误码的数量是否超出一预定临界值。
具体来说,当该错误码的数量超出该预定临界值时,该设定单元透过该控制单元设定该闪存的数据区域,以分配一部分的数据区域作为第二备用区域,其中该第一备用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修正码(ECC)模组修正该数据内容的错误码。另一方面,当该些错误码的数量小于该预定临界值,该错误修正码(ECC)模组依据该第二错误修正码(ECC)值与该第一错误修正码(ECC)值的比较结果来修正该些错误码。根据上述,当错误码的数量超过一预定临界值时,该设定单元有效提高该闪存控制器的错误修正码(ECC)容量。
本发明设定闪存的错误修正码容量的方法包括下列步骤:(1)产生一读取命令,以读取该闪存的数据内容;(2)利用该数据内容产生一第二错误修正码(ECC)值;(3)比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,以依据该比较结果来决定该数据内容是否存在若干个错误码;(4)当该数据内容存在该些个错误码时,利用设定单元计算该些错误码的数量,以决定该错误码的数量是否超出一预定临界值;以及(5)该设定单元设定该闪存的数据区域,以分配一部分的数据区域作为一第二备用区域,其中该第一备用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修正码(ECC)模组修正该数据内容的错误码。
相较于现有技术,本发明使用一部分的储存容量来执行高阶的错误修正码(ECC)机制,以改善非与门(NAND)闪存的可靠度。该错误修正码(ECC)机制依据闪存的使用状态具有多段调整式修正数据的能力。因此可以利用额外的错误修正码(ECC)容量来提高快闪记体的使用寿命。
为让本发明的上述内容能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下:
【附图说明】
图1是依据本发明实施例中闪存控制器耦接于闪存的方块图,是以设定单元来适应性设定错误修错误修正码(ECC)容量。
图2是依据本发明实施例中非与门(NAND)型式的闪存的结构示意图,其中该闪存具有第一备用区域以及第二备用区域。
图3是依据本发明实施例中设定闪存的错误修正码(ECC)容量的方法的流程图,以适应性(adaptively)设定错误修正码(ECC)容量。
【具体实施方式】
参考图1,其绘示依据本发明实施例中闪存控制器100耦接于闪存的方块图,以设定单元108来适应性设定错误修正码(ECC)容量。该闪存控制器100包括控制单元102、缓冲器104、错误修正码(error correction code,ECC)模组106以及设定单元108。该闪存控制器100控制设定单元108,以适应性调整闪存110的错误修正码(ECC)容量。错误修正码(ECC)主要是用于提高闪存的数据整合性(data integrity),并且确保数据存取的可靠性(reliability)。该闪存110例如是非与门(NAND)型式的闪存。
该闪存控制器100耦接于该闪存110,该控制单元102耦接于该设定单元108,并且透过若干个控信号耦接至该闪存110。该控制单元102产生一写入命令,用以写入该数据内容至该闪存110,并且写入该第一错误修正码(ECC)值至该第一备用区域(如第2图所示)。该错误修正码(ECC)模组106以及设定单元108分别耦接至该控制单元102,该缓冲器104分别耦接至该错误修正码(ECC)模组106以及闪存110。
参考图1以及图2,图2是绘示依据本发明实施例中非与门(NAND)型式的闪存的结构示意图,其中该闪存具有第一备用区域以及第二备用区域。控制单元102用以产生一读取命令,以读取该闪存110的数据内容,该闪存110具有数据区域,以储存该数据内容,并且具有第一备用区域,以储存相对应于该数据内容的第一错误修正码(ECC)值。在一实施例中,该闪存110是以若干个页面(pages)来储存该数据内容。缓冲器104用以储存来自于该闪存110的数据区域的数据内容。错误修正码(ECC)模组106利用该数据内容产生第二错误修正码(ECC)值,并且比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,然后依据该比较结果来决定该数据内容是否存在若干个错误码(errors)。当该数据内容存在该些个错误码时,该设定单元108计算该错误码的数量,以决定该错误码的数量是否超出一预定临界值。
具体来说,当该错误码的数量超出该预定临界值时,该设定单元108透过该控制单元102设定该闪存110的数据区域,以分配一部分的数据区域作为第二备用区域,其中该第一备用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修正码(ECC)模组106修正该数据内容的错误码。另一方面,当该些错误码的数量小于该预定临界值,该错误修正码(ECC)模组106依据该第二错误修正码(ECC)值与该第一错误修正码(ECC)值的比较结果来修正该些错误码。根据上述,当错误码的数量超过一预定临界值时,该设定单元108有效提高(boost)该闪存控制器100的错误修正码(ECC)容量。
该第一备用区域还包括一计数区域,以储存一计数值,并且依据该计数值来决定该设定单元108是否设定该数据区域,以形成该第二备用区域。当该计数值大于一预定计数值时,该设定单元108设定该闪存110,以分配一部分的数据区域作为该第二备用区域。该预定计数值例如是该闪存的抹存计数值(wear leveling counter),亦即抹存计数值是该闪存的使用状态。
在一实施例中,该错误修正码(ECC)容量表示该闪存110的若干个预定字节(bytes)的可修正若干字元(bits)数量。该第一备用区域与该第二备用区域的总储存容量正相关于该错误修正码(ECC)容量。
继续参考图1,该闪存110的控制信号包括命令栓锁致能信号(commandlatch enable signal,SCLE)、芯片致能信号(chip enable signal,/SCE)、写入致能信号(write enable signal,/SWE)、地址致能信号(address latch enable signal,SALE)、读取致能信号(read enable signal,/SRE)、输入/输出(input/output signal,I/O)信号以及预备/忙碌信号(ready/busy signal,R/B)。芯片致能信号(/SCE)表示当闪存110受到闪存控制器100激发时,该闪存110处于致能(active)状态。例如当闪存110处于低准位时,该闪存110处于有效状态。写入致能信号(/SWE)表示当写入致能信号(/SWE)被激发时,例如是低准位时,将数据写入至该闪存110。
读取致能信号(/SRE)表示当读取致能信号(/SRE)被激发时,例如是低准位时,读取该闪存110内的数据。当该命令栓锁致能信号(SCLE)被激发时,该命令在写入致能信号(/SWE)的上升缘栓锁。当该地址致能信号(SALE)被激发时,该地址在写入致能信号(/SWE)的上升缘栓锁。输入/输出(I/O)信号表示传输于该闪存110与该数据缓存器之间的信号。该预备/忙碌信号(R/B)表示该状态模块报告给该闪存控制装置100的状态信号。
在一实施例中,闪存控制器100提供给闪存110的写入致能信号(/SWE),将选定的页面(page)的字节数据写入至闪存110,且错误修正码(ECC)模组106亦接收该字节数据并产生相对应于该页面的错误修正码(ECC)值。当该页面中全部的字节数据写入至闪存110之后,闪存控制器100将该页面的错误修正码(ECC)值写入至该页面的备用区域。接着当错误修正码(ECC)值写入完毕之后,传送一写入确定命令至该闪存110,并且通过将芯片致能信号(/SCE)设为高准位,以使该闪存110禁能(disable)。
参考图1至图3,图3是依据本发明实施例中设定闪存的错误修正码(ECC)容量的方法的流程图,以适应性(adaptively)设定错误修正码(ECC)容量。该闪存控制器100包括控制单元102、缓冲器104、错误修正码(errorcorrection code,ECC)模组106以及设定单元108,该方法包括下列步骤:
在步骤S300中,控制单元102产生写入命令,用以写入该数据内容至该闪存110。
在步骤S302中,该控制单元102写入该第一错误修正码(ECC)值至该第一备用区域。
在步骤S304中,该控制单元102产生读取命令,以读取该闪存110的数据内容。
在步骤S306中,错误修正码(ECC)模组106利用该数据内容产生第二错误修正码(ECC)值。
在步骤S308中,该错误修正码(ECC)模组106比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,以依据该比较结果来决定该数据内容是否存在若干个错误码。当未包括错误码,返回步骤S304,否则执行步骤S310。
在步骤S310中,当该数据内容存在该些个错误码时,利用设定单元108计算该些错误码的数量,以决定该错误码的数量是否超出一预定临界值。当超出该预定临界值,执行步骤S312a,而当未超出该预定临界值,执行步骤S314。
在步骤S312a中,该设定单元108设定该闪存110的数据区域,以分配一部分的数据区域作为一第二备用区域,其中该第一备用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修正码(ECC)模组106修正该数据内容的错误码。接着执行步骤S318。
在步骤S312b中,储存一计数值于该第一备用区域,以依据该计数值来决定该设定单元108是否设定该数据区域,以形成该第二备用区域。接着在步骤S316中,当该计数值大于一预定计数值时,该设定单元108设定该闪存110,以分配一部分的数据区域作为该第二备用区域。
在步骤S314中,该错误修正码(ECC)模组106依据该第一备用区域的第一错误修正码(ECC)值以及该第二错误修正码(ECC)值,以修正该错误码。
在步骤S318中,该错误修正码(ECC)模组106依据该第一备用区域以及该第二备用区域的第一错误修正码(ECC)值以及该第二错误修正码(ECC)值,以修正该错误码。
综上所述,本发明使用一部分的储存容量来执行高阶的错误修正码(ECC)机制,以改善非与门(NAND)闪存的可靠度。该错误修正码(ECC)机制依据闪存的使用状态具有多段调整式修正数据的能力。因此可以利用额外的错误修正码(ECC)容量来提高快闪记体的使用寿命。
Claims (13)
1.一种闪存控制器,其特征在于:该闪存控制器包括:
一控制单元,用以产生一读取命令,以读取该闪存的一数据内容,其中该闪存具有一数据区域,以储存该数据内容,并且具有一第一备用区域,以储存相对应于该数据内容的一第一错误修正码(ECC)值;
一缓冲器,用以储存来自于该闪存的数据区域的该数据内容;
一错误修正码(ECC)模组,分别耦接于该控制单元以及该缓冲器,利用该数据内容产生一第二错误修正码(ECC)值,并且比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,以依据该比较结果来决定该数据内容是否存在若干个错误码;以及
一设定单元,分别耦接于该错误修正码(ECC)模组以及该控制单元,当该数据内容存在该些个错误码时,该设定单元计算该些错误码的数量,以决定该错误码的数量是否超出一预定临界值;
其中当该错误码的数量超出该预定临界值时,该设定单元透过该控制单元设定该闪存的该数据区域,以分配一部分的该数据区域作为一第二备用区域,其中该第一备用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修正码(ECC)模组修正该数据内容的该错误码。
2.如权利要求1所述的闪存控制器,其特征在于:该第一备用区域更包括一计数区域,以储存一计数值,并且依据该计数值来决定该设定单元是否设定该数据区域,以形成该第二备用区域,当该计数值大于一预定计数值时,该设定单元设定该闪存,以分配一部分的该数据区域作为该第二备用区域。
3.如权利要求2所述的闪存控制器,其特征在于:该预定计数值是该闪存的抹存计数值(wear leveling counter)。
4.如权利要求1所述的闪存控制器,其特征在于:当该些错误码的数量小于该预定临界值,该错误修正码(ECC)模组依据该第二错误修正码(ECC)值与该第一错误修正码(ECC)值的比较结果来修正该些错误码。
5.如权利要求1所述的闪存控制器,其特征在于:该错误修正码(ECC)容量表示该闪存的若干个预定字节(bytes)的可修正若干字元(bits)数量。
6.如权利要求5所述的闪存控制器,其特征在于:该第一备用区域与该第二备用区域的总储存容量正相关于该错误修正码(ECC)容量。
7.如权利要求1所述的闪存控制器,其特征在于:该闪存是非与门(NAND)型式。
8.一种设定一闪存的错误修正码(ECC)容量的方法,其特征在于:该闪存具有一数据区域,以储存一数据内容,并且具有一第一备用区域,以储存相对应于该数据内容的一第一错误修正码(ECC)值,且该第一备用区域更包括一计数区域,该方法包括下列步骤:
产生一读取命令,以读取该闪存的该数据内容;
利用该数据内容产生一第二错误修正码(ECC)值;
比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,以依据该比较结果来决定该数据内容是否存在若干个错误码;
当该数据内容存在该些个错误码时,利用该设定单元计算该些错误码的数量,以决定该错误码的数量是否超出一预定临界值;以及
该设定单元设定该闪存的该数据区域,以分配一部分的该数据区域作为一第二备用区域,其中该第一备用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修正码(ECC)模组修正该数据内容的该错误码。
9.如权利要求8所述的方法,其特征在于:在比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值的步骤之后,更包括:储存一计数值,并且依据该计数值来决定该设定单元是否设定该数据区域,以形成该第二备用区域,当该计数值大于一预定计数值时,该设定单元设定该闪存,以分配一部分的该数据区域作为该第二备用区域。
10.如权利要求9所述的方法,其特征在于:该预定计数值是该闪存的抹存计数值(wear leveling counter)。
11.如权利要求8所述的方法,其特征在于:在利用设定单元计算该些错误码的数量的步骤之后,更包括:当该些错误码的数量小于该预定临界值,依据该第二错误修正码(ECC)值与该第一错误修正码(ECC)值的比较结果来修正该些错误码。
12.如权利要求8所述的方法,其特征在于:在产生该读取命令,以读取该闪存的数据内容的步骤之前,更包括:产生一写入命令,用以写入该数据内容至该闪存。
13.如权利要求12所述的方法,其特征在于:在产生该写入命令的步骤之后,更包括:写入该第一错误修正码(ECC)值至该第一备用区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810179664 CN101752010B (zh) | 2008-12-01 | 2008-12-01 | 闪存控制器及设定闪存的错误修正码容量的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810179664 CN101752010B (zh) | 2008-12-01 | 2008-12-01 | 闪存控制器及设定闪存的错误修正码容量的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101752010A true CN101752010A (zh) | 2010-06-23 |
CN101752010B CN101752010B (zh) | 2013-01-09 |
Family
ID=42478830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810179664 Active CN101752010B (zh) | 2008-12-01 | 2008-12-01 | 闪存控制器及设定闪存的错误修正码容量的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101752010B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915207A (zh) * | 2011-08-01 | 2013-02-06 | 建兴电子科技股份有限公司 | 固态储存装置及其数据储存方法 |
CN103092770A (zh) * | 2013-01-18 | 2013-05-08 | 山东华芯半导体有限公司 | 一种磨损均衡处理时减少内存开销的方法 |
US9678831B2 (en) | 2013-03-18 | 2017-06-13 | Silicon Motion, Inc. | Error correction method and memory device capable of reading pages continuously |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100458718C (zh) * | 2006-12-29 | 2009-02-04 | 福昭科技(深圳)有限公司 | 一种闪存存储装置及其数据读取和写入方法 |
-
2008
- 2008-12-01 CN CN 200810179664 patent/CN101752010B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915207A (zh) * | 2011-08-01 | 2013-02-06 | 建兴电子科技股份有限公司 | 固态储存装置及其数据储存方法 |
CN103092770A (zh) * | 2013-01-18 | 2013-05-08 | 山东华芯半导体有限公司 | 一种磨损均衡处理时减少内存开销的方法 |
CN103092770B (zh) * | 2013-01-18 | 2015-08-12 | 山东华芯半导体有限公司 | 一种磨损均衡处理时减少内存开销的方法 |
US9678831B2 (en) | 2013-03-18 | 2017-06-13 | Silicon Motion, Inc. | Error correction method and memory device capable of reading pages continuously |
Also Published As
Publication number | Publication date |
---|---|
CN101752010B (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8161354B2 (en) | Flash memory controller having configuring unit for error correction code (ECC) capability and method thereof | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
CN101699406B (zh) | 数据储存系统与方法 | |
US10310739B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US8719491B2 (en) | Encoding flash memory data with a randomizer using different seeds for different sectors | |
CN104991738B (zh) | 一种固态盘及其读写操作方法 | |
CN104272393A (zh) | 为存储器的块调整编程步长的系统和方法 | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
CN108268337B (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
US20100287329A1 (en) | Partial Page Operations for Non-Volatile Memory Systems | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US9213631B2 (en) | Data processing method, and memory controller and memory storage device using the same | |
US11176035B2 (en) | Data storage devices and data processing methods | |
US20130346674A1 (en) | Data writing method, memory controller and memory storage device | |
CN106951186B (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
US20110093649A1 (en) | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
US9983805B1 (en) | Memory management method, memory control circuit unit and memory storage apparatus | |
TWI393146B (zh) | 具有錯誤修正碼容量設定單元之快閃記憶體控制器及其方法 | |
CN101752010B (zh) | 闪存控制器及设定闪存的错误修正码容量的方法 | |
CN106959818B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
US9213597B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US8276033B2 (en) | Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same | |
TWI571881B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |