闪存控制器及设定闪存的错误修正码容量的方法

文档序号:6783355阅读:119来源:国知局
专利名称:闪存控制器及设定闪存的错误修正码容量的方法
闪存控制器及设定闪存的错误修正码容量的方法
技术领域
本发明是关于一种闪存控制器及设定闪存的错误修正码容量的方法,特别是有关
于一种具有错误修正码容量设定单元的闪存控制器及设定闪存的错误修正码容量的方法, 该闪存控制器及方法依据闪存的使用状态来设定。
背景技术
闪存(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)容量。 本发明设定闪存的错误修正码容量的方法包括下列步骤(l)产生一读取命令,以读取该闪存的数据内容;(2)利用该数据内容产生一第二错误修正码(ECC)值;(3)比较 该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,以依据该比较结果来决定该数 据内容是否存在若干个错误码;(4)当该数据内容存在该些个错误码时,利用设定单元计 算该些错误码的数量,以决定该错误码的数量是否超出一预定临界值;以及(5)该设定单 元设定该闪存的数据区域,以分配一部分的数据区域作为一第二备用区域,其中该第一备 用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修 正码(ECC)模组修正该数据内容的错误码。 相较于现有技术,本发明使用一部分的储存容量来执行高阶的错误修正码(ECC) 机制,以改善非与门(NAND)闪存的可靠度。该错误修正码(ECC)机制依据闪存的使用状态 具有多段调整式修正数据的能力。因此可以利用额外的错误修正码(ECC)容量来提高快闪 记体的使用寿命。 为让本发明的上述内容能更明显易懂,下文特举较佳实施例,并配合所附图式,作 详细说明如下


图1是依据本发明实施例中闪存控制器耦接于闪存的方块图,是以设定单元来适 应性设定错误修错误修正码(ECC)容量。 图2是依据本发明实施例中非与门(NAND)型式的闪存的结构示意图,其中该闪存 具有第一备用区域以及第二备用区域。 图3是依据本发明实施例中设定闪存的错误修正码(ECC)容量的方法的流程图, 以适应性(ad即tively)设定错误修正码(ECC)容量。
具体实施方式
参考图l,其绘示依据本发明实施例中闪存控制器IOO耦接于闪存的方块图,以设 定单元108来适应性设定错误修正码(ECC)容量。该闪存控制器100包括控制单元102、缓 冲器104、错误修正码(error correction code,ECC)模组106以及设定单元108。该闪存 控制器IOO控制设定单元108,以适应性调整闪存110的错误修正码(ECC)容量。错误修正 码(ECC)主要是用于提高闪存的数据整合性(data integrity),并且确保数据存取的可靠 性(reliability)。该闪存IIO例如是非与门(NAND)型式的闪存。 该闪存控制器100耦接于该闪存IIO,该控制单元102耦接于该设定单元108,并 且透过若干个控信号耦接至该闪存110。该控制单元102产生一写入命令,用以写入该数据 内容至该闪存IIO,并且写入该第一错误修正码(ECC)值至该第一备用区域(如第2图所 示)。该错误修正码(ECC)模组106以及设定单元108分别耦接至该控制单元102,该缓冲 器104分别耦接至该错误修正码(ECC)模组106以及闪存110。 参考图1以及图2,图2是绘示依据本发明实施例中非与门(NAND)型式的闪存的 结构示意图,其中该闪存具有第一备用区域以及第二备用区域。控制单元102用以产生一 读取命令,以读取该闪存110的数据内容,该闪存110具有数据区域,以储存该数据内容,并 且具有第一备用区域,以储存相对应于该数据内容的第一错误修正码(ECC)值。在一实施 例中,该闪存IIO是以若干个页面(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, 1/0)信号以及预备 /忙碌信号(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)的字节数据写入至闪存IIO,且错误修正码(ECC)模组106亦接收该字节数 据并产生相对应于该页面的错误修正码(ECC)值。当该页面中全部的字节数据写入至闪存 IIO之后,闪存控制器IOO将该页面的错误修正码(ECC)值写入至该页面的备用区域。接着 当错误修正码(ECC)值写入完毕之后,传送一写入确定命令至该闪存110,并且通过将芯片致能信号(/SCE)设为高准位,以使该闪存110禁能(disable)。 参考图1至图3,图3是依据本发明实施例中设定闪存的错误修正码(ECC)容量的 方法的流程图,以适应性(ad即tively)设定错误修正码(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)容量来提高快闪记体 的使用寿命。
权利要求
一种闪存控制器,其特征在于该闪存控制器包括一控制单元,用以产生一读取命令,以读取该闪存的一数据内容,其中该闪存具有一数据区域,以储存该数据内容,并且具有一第一备用区域,以储存相对应于该数据内容的一第一错误修正码(ECC)值;一缓冲器,用以储存来自于该闪存的数据区域的该数据内容;一错误修正码(ECC)模组,分别耦接于该控制单元以及该缓冲器,利用该数据内容产生一第二错误修正码(ECC)值,并且比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,以依据该比较结果来决定该数据内容是否存在若干个错误码;以及一设定单元,分别耦接于该错误修正码(ECC)模组以及该控制单元,当该数据内容存在该些个错误码时,该设定单元计算该些错误码的数量,以决定该错误码的数量是否超出一预定临界值;其中当该错误码的数量超出该预定临界值时,该设定单元透过该控制单元设定该闪存的该数据区域,以分配一部分的该数据区域作为一第二备用区域,其中该第一备用区域以及该第二备用区域的总储存容量相关于该错误修正码(ECC)容量,以使该错误修正码(ECC)模组修正该数据内容的该错误码。
2. 如权利要求l所述的闪存控制器,其特征在于该第一备用区域更包括一计数区域, 以储存一计数值,并且依据该计数值来决定该设定单元是否设定该数据区域,以形成该第 二备用区域,当该计数值大于一预定计数值时,该设定单元设定该闪存,以分配一部分的该 数据区域作为该第二备用区域。
3. 如权利要求2所述的闪存控制器,其特征在于该预定计数值是该闪存的抹存计数 值(wear leveling counter)。
4. 如权利要求1所述的闪存控制器,其特征在于当该些错误码的数量小于该预定临界值,该错误修正码(ECC)模组依据该第二错误修正码(ECC)值与该第一错误修正码(ECC) 值的比较结果来修正该些错误码。
5. 如权利要求1所述的闪存控制器,其特征在于该错误修正码(ECC)容量表示该闪 存的若干个预定字节(bytes)的可修正若干字元(bits)数量。
6. 如权利要求5所述的闪存控制器,其特征在于该第一备用区域与该第二备用区域 的总储存容量正相关于该错误修正码(ECC)容量。
7. 如权利要求l所述的闪存控制器,其特征在于该闪存是非与门(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)值至该第一备用区域。
全文摘要
本发明提供一种闪存控制器及设定闪存的错误修正码容量的方法,闪存具有数据区域,以储存数据内容,并且具有第一备用区域,以储存相对应于该数据内容的第一错误修正码值。错误修正码(ECC)模组利用该数据内容产生第二错误修正码(ECC)值,并且比较该第二错误修正码(ECC)值与该第一错误修正码(ECC)值,依据该比较结果来决定该数据内容是否存在若干个错误码。当存在错误码时,设定单元计算该些错误码的数量,并且设定该数据区域,以分配一部分的数据区域作为第二备用区域,使该错误修正码(ECC)模组修正该数据内容的错误码。
文档编号G11C29/42GK101752010SQ20081017966
公开日2010年6月23日 申请日期2008年12月1日 优先权日2008年12月1日
发明者陈如芃 申请人:创惟科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1