闪存的双模式错误纠正码装置及其方法 【技术领域】
本发明关于一种内存装置及其方法,特别是关于一种用于闪存(flashmemory)的双模式(dual mode)错误纠正码(error correction code,ECC)装置及其方法。
背景技术
随着半导体制程技术的快速发展,内存组件的几何尺寸逐渐缩小。闪存作为一种非挥发性内存,即使移除供应电源之后仍能保存数据。与非门型(Not AND,NAND)闪存是一种闪存,具有高储存密度的特性,且优于其它种类的内存。特别是与非门型(NAND)闪存具有较大的储存容量、较佳的内存存取速度以及成本低廉的特点。以闪存为例,其控制方式必须进一步提升,才能改善其可靠度(reliability)。在高阶的闪存制程中,错误纠正码(ECC)为与非门型(NAND)闪存控制器的常用功能。然而由于半导体制程的微细化,与非门型(NAND)闪存产生错误码(errors)的数量快速、大幅地增加,导致具有错误纠正码(ECC)功能的与非门型(NAND)闪存的成本大幅增加,该错误纠正码(ECC)功能用来纠正该错误码(errors)。有鉴于此,确有必要发展一种新式的闪存,以解决上述问题。
【发明内容】
本发明的目的在于提供一种闪存的双模式错误纠正码装置及其方法,以快速纠正闪存的错误码。
为达成上述目的,本发明提供一种闪存的双模式错误纠正码装置及其方法。该双模式错误纠正码装置包括错误检测单元、第一错误纠正码(ECC)单元、第二错误纠正码(ECC)单元、切换模块以及接口模块。
错误检测单元用以检测来自该闪存的数据内容,以计算该数据内容的若干个错误码的数量,并决定所述若干个错误码的数量是否超出预定临界值。切换模块分别耦接该错误检测单元至该第一错误纠正码(ECC)单元以及该第二错误纠正码(ECC)单元,当该错误码的数量小于该预定临界值时,该切换模块切换至该第一错误纠正码(ECC)单元的第一编码模式,以使能该第一错误纠正码(ECC)单元的第一编码模式;第一错误纠正码(ECC)单元依据第一编码模式,用以选择性纠正该数据内容的错误码。当该错误码的数量大于该预定临界值时,切换模块切换至该第二错误纠正码(ECC)单元的第二编码模式,以使能该第二错误纠正码(ECC)单元的第二编码模式;第二错误纠正码(ECC)单元依据第二编码模式,用以选择性纠正该数据内容的错误码。
本发明执行双模式错误纠正码装置的方法包括下列步骤:
(1)接收来自该闪存的数据内容。
(2)错误检测单元检测该数据内容,以计算该数据内容的若干个错误码的数量,并决定所述若干个错误码的数量是否超出预定临界值。当所述若干个错误码的数量未超出该预定临界值,则执行步骤(3a)、步骤(4a)以及步骤(5a);当所述若干个错误码的数量超出该预定临界值,则执行步骤(3b)、步骤(4b)以及步骤(5b)。
(3a)当所述若干个错误码的数量小于该预定临界值时,利用切换模块切换至该第一错误纠正码(ECC)单元,以使能该第一错误纠正码(ECC)单元的第一编码模式;(4a)利用第一译码单元对所检测到的数据内容进行译码,以找出所述若干个错误码的位置;(5a)第一错误纠正模块依据该第一编码模式,以纠正该数据内容的错误码。
(3b)当所述若干个错误码的数量大于该预定临界值时,利用该切换模块切换至该第二错误纠正码(ECC)单元,以使能该第二错误纠正码(ECC)单元的第二编码模式。(4b)利用第二译码单元对所检测到的数据内容进行译码,以找出所述若干个错误码的位置。(5b)第二错误纠正模块依据该第二编码模式,以纠正该数据内容的错误码。
为让本发明的上述内容能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下:
【附图说明】
图1是依据本发明实施例中双模式错误纠正码装置的方块图;
图2是依据本发明实施例中执行双模式错误纠正码装置的方法流程图。
图中主要元件符号说明
100双模式错误纠正码装置 102错误检测单元
104a第一错误纠正码单元 104b第二错误纠正码单元
106切换模块 108闪存
110通用串行端口装置 112接口模块
114a第一译码单元 114b第二译码单元
116a第一错误纠正模块 116b第二错误纠正模块
【具体实施方式】
参考图1,其显示依据本发明实施例中双模式错误纠正码装置100的方块图。该双模式错误纠正码装置100包括错误检测单元102、第一错误纠正码(ECC)单元104a、第二错误纠正码(ECC)单元104b、切换模块106以及接口模块112。该双模式错误纠正码装置100耦接该闪存108至该主机装置(例如通用串行端口装置(universal serial bus,USB))110,该闪存108分别耦接至该双模式错误纠正码装置100的错误检测单元102、第一错误纠正码(ECC)单元104a以及第二错误纠正码(ECC)单元104b。该切换模块106分别耦接该错误检测单元102至该第一错误纠正码(ECC)单元104a以及第二错误纠正码(ECC)单元104b。第一错误纠正码(ECC)单元104a以及第二错误纠正码(ECC)单元104b透过该接口模块112分别耦接至该主机装置110。
错误检测单元102用以检测来自该闪存108的数据内容,以计算该数据内容的若干个错误码的数量,并决定所述若干个错误码的数量是否超出预定临界值(pre-determined threshold value)。切换模块106分别耦接该错误检测单元至该第一错误纠正码(ECC)单元104a以及该第二错误纠正码(ECC)单元104b,当该错误码的数量小于该预定临界值时,该切换模块106切换至该第一错误纠正码(ECC)单元104a的第一编码模式,以使能该第一错误纠正码(ECC)单元104a的第一编码模式;第一错误纠正码(ECC)单元104a依据第一编码模式,用以选择性纠正该数据内容的错误码。当该错误码的数量大于该预定临界值时,切换模块106切换至该第二错误纠正码(ECC)单元104b的第二编码模式,以使能该第二错误纠正码(ECC)单元104b地第二编码模式;第二错误纠正码(ECC)单元104b依据第二编码模式,用以选择性纠正该数据内容的错误码。
在一实施例中,该第一错误纠正码(ECC)单元104a还包括第一译码单元114a以及第一错误纠正模块116a。第一译码单元114a耦接于该切换模块106,对来自该错误检测单元102所检测到的数据内容进行译码,以找出所述若干个错误码的位置。第一错误纠正模块116a耦接于该第一译码单元114a,依据该第一编码模式,用以纠正该数据内容的错误码。该第一译码单元114a可以依据RS(Reed-Solomon)结构算法执行该第一编码模式。
在一实施例中,该第二错误纠正码(ECC)单元104b还包括第二译码单元114b以及第二错误纠正模块116b。第二译码单元114b耦接于该切换模块106,对来自该错误检测单元102所检测到的数据内容进行译码,以找出所述若干个错误码的位置。第二错误纠正模块116b耦接于该第二译码单元114b,依据该第二编码模式,用以纠正所述若干个数据内容的错误码。该第二译码单元114b可以依据BCH(Bose,Ray-Chaudhuri andHocquenghem)结构算法执行该第二编码模式。
该第一错误纠正模块116a找出该数据内容中所述若干个错误的时间大于该第二错误纠正模块116b找出该数据内容中所述若干个错误的时间。换言之,若错误码的数量相同,则依据该第一编码模式来纠正该错误码的纠正时间比依据该第二编码模式来纠正该错误码的纠正时间短,亦即更快速。
该错误检测单元102依据RS结构算法或是BCH结构算法。若错误码的数量相同,则该错误检测单元102依据该RS结构算法来检测该错误码的检测时间比依据该BCH结构算法来检测该错误码的检测时间短,亦即更快速。
该第一编码模式的第一纠正单位(correction unit)与该第二编码模式的第二纠正单位两者不同。在一实施例中,该第一编码模式的第一纠正单位大于该第二编码模式的第二纠正单位。BCH结构算法以及RS结构算法的特性分别叙述如下:
(1)二位BCH结构算法
此BCH结构算法是以二位的数据区块作运算,其纠正的单位为比特(bit),亦即相较于RS结构算法,BCH结构算法的是以较少数量的比特之方式作为运算的单位,且BCH结构算法的编码/译码架构以循序对数据区块中的位进行处理。进行BCH结构算法时,其数据区块的编码/译码的延迟量(latency)高于RS结构算法。
(2)RS结构算法
此RS结构算法是以符号(symbol)的数据区块作运算,其纠正的单位为符号,亦即相较于BCH结构算法,RS结构算法的是以较大数量的符号之方式作为运算的单位,且RS结构算法的编码/译码架构是循序对数据区块中的符号进行处理。进行RS结构算法时,其数据区块的编码/译码的延迟量(latency)低于BCH结构算法。
参考图1以及图2,图2显示依据本发明实施例中执行双模式错误纠正码装置的方法流程图。该双模式错误纠正码装置100包括错误检测单元102、第一错误纠正码(ECC)单元104a、第二错误纠正码(ECC)单元104b、切换模块106以及接口模块112。该方法包括下列步骤:
在步骤S200中,接收来自该闪存108的数据内容。
在步骤S202中,错误检测单元102检测该数据内容,以计算该数据内容的若干个错误码的数量,并决定所述若干个错误码的数量是否超出预定临界值。当所述若干个错误码的数量未超出该预定临界值,则执行步骤S204a、步骤S206a以及步骤S208a;当所述若干个错误码的数量超出该预定临界值,则执行步骤S204b、步骤S206b以及步骤S208b。
在步骤S204a中,当所述若干个错误码的数量小于该预定临界值时,利用切换模块106切换至该第一错误纠正码(ECC)单元104a,以使能该第一错误纠正码(ECC)单元104a的第一编码模式。在步骤S206a中,利用第一译码单元114a对所检测到的数据内容进行译码,以找出所述若干个错误码的位置。在步骤S208a中,第一错误纠正模块116a依据该第一编码模式,以纠正该数据内容的错误码。
在步骤S204b中,当所述若干个错误码的数量大于该预定临界值时,利用该切换模块106切换至该第二错误纠正码(ECC)单元104b,以使能该第二错误纠正码(ECC)单元104b的第二编码模式。在步骤S206b中,利用第二译码单元114b对所检测到的数据内容进行译码,以找出所述若干个错误码的位置。在步骤S208b中,第二错误纠正模块116b依据该第二编码模式,以纠正该数据内容的错误码。
该第一错误纠正模块116a找出该数据内容中所述若干个错误的时间大于该第二错误纠正模块116b找出该数据内容中所述若干个错误的时间。换言之,若错误码的数量相同,则依据该第一编码模式来纠正该错误码的纠正时间比依据该第二编码模式来纠正该错误码的纠正时间短,亦即更快速。
该第一编码模式的第一纠正单位(correction unit)与该第二编码模式的第二纠正单位两者不同。在一实施例中,该第一编码模式的第一纠正单位大于该第二编码模式的第二纠正单位。
综上所述,虽然本发明已揭露了较佳的实施例,但所述若干个较佳实施例并非用以限制本发明,该领域的普通技术人员,在不脱离本发明的精神和范围内,可以用其它具体形式来体现本发明的精神,因此本发明的保护范围应以权利要求界定的范围为准。