多重错误更正码的可配置编码系统及方法

文档序号:6771574阅读:256来源:国知局
专利名称:多重错误更正码的可配置编码系统及方法
技术领域
本发明涉及编码,特别是涉及一种适用于内存装置的多重错误更正码(ECC)的可配置编码系统及方法。
背景技术
由于一般的非挥发性内存装置(non-volatile memory),例如闪存,容易产生错误,故通常会配置编解码器(encoder/decoder或codec),用以更正内存存取时所产生的错误。目前所发展的各种闪存类型,各具不同的数据长度及检查码长度。在某些应用中,同一个闪存控制器必须能支持不同类型的闪存,用以确保所有闪存的数据正确性。换句话说,编解码器必须具有多重错误更正码的可配置功能。然而,若要使用多重错误更正码,则必须使用各种参数来初始化编解码器,而部分的参数长度却是相当长的,因而会增加编解码器或闪存控制器的电路面积。再者,储存参数于编解码器或控制器中会使得电路的设计缺乏弹性。鉴于传统编解码器不能对闪存有效率地且经济地提供多重错误更正码,因此亟需提出一种新颖的编码系统及方法,在不增加成本的前提下,能减轻编解码器对于储存大量参数的负担。

发明内容
鉴于上述,本发明实施例的目的之一在于提出一种适用于内存装置的多重错误更正码(ECC)的可配置编码系统及方法,用以有效且经济地提供无误的参数。根据本发明第一实施例,错误更正码(ECC)编解码器选择地使用不同参数以进行各种错误更正。使用至少一个无误储存装置以储存无误参数,其中,将一选择无误参数从储存装置下载到ECC编解码器,用以对ECC编解码器进行初始化。根据本发明第二实施例,ECC编解码器选择地使用不同参数以进行各种错误更正。 使用外部内存装置以储存不同参数。辅助编解码器从外部内存装置中选择并下载储存参数其中之一。辅助编解码器根据内建参数以更正下载参数,因而产生无误参数以提供给ECC 编解码器,用以对ECC编解码器进行初始化。根据本发明第三实施例,ECC编解码器选择地使用不同参数以进行各种错误更正。 使用无误储存装置以储存无误固定参数,其被下载至ECC编解码器,用以对其进行初始化。 外部内存装置储存不同参数。ECC编解码器从外部内存装置中选择并下载储存参数其中之一,并根据固定参数以更正下载参数,因而产生无误参数。


图IA是显示了本发明实施例的用于内存装置的多重错误更正码的可配置编解码器的方块图。图IB是显示了图IA的另一种实施例的用于内存装置的多重错误更正码的可配置编解码器的方块图。图2A是显示了本发明第一实施例的用于内存装置的多重错误更正码的可配置编码系统的方块图。图2B是显示了第一实施例的用于内存装置的多重错误更正码的可配置编码方法的流程图。图2C是显示了图2A的另一种实施例的方块图,其可用于内存装置的多重错误更正码的可配置编码系统。图2D是显示了图2C实施例的用于内存装置的多重错误更正码的可配置编码方法的流程图。图3A是显示了本发明第二实施例的用于内存装置到的多重错误更正码的可配置编码系统的方块图。图;3B是显示了第二实施例的用于内存装置的多重错误更正码的可配置编码方的流程图法。图4A是显示了本发明第三实施例的用于内存装置的多重错误更正码的可配置编码系统的方块图。图4B是显示了第三实施例的用于内存装置的多重错误更正码的可配置编码方法的流程图。主要组件符号说明1控制器10编解码器100编码器102解码器12内存装置12a-12n 内存装置14计算机20可配置编码系统20B可配置编码系统22a-22n 非挥发性内存200错误更正码编解码器201-204 步骤201B-204B 步骤30可配置编码系统300A第一错误更正码编解码器300B第二错误更正码编解码器301-305 步骤40可配置编码系统400A错误更正码编解码器400B储存装置401-405 步骤
SDl-SDn 储存装置SD储存装置
具体实施例方式图IA显示本发明实施例的多重错误更正码(error correcting code, ECC)的可配置编解码器(configurable codec) 10的功能方块图,其可适用于内存装置12a-12n。在本实施例中,编解码器10可使用其中的一种错误更正码来更正错误。例如,编解码器10可切换成第一错误更正码用于第一内存装置12a,并于下一次切换成第二错误更正码用于第二内存装置12b。编解码器10可以是控制器1的一部分,或者与控制器1分开。控制器1或编解码器10更可受计算机14的控制。本实施例的内存装置1加-1211可为易错(error-prone) 的内存装置,例如闪存,其在一般操作下必须仰赖错误更正码来更正所产生的错误位。在本实施例中,编解码器10主要包括编码器(encoder) 100及/或解码器 (decoder) 102。换句话说,编解码器10可包括编码器100和解码器102,也可只包括其中之
ο图IB的方块图显示图IA的另一种实施例的用于内存装置12的多重错误更正码的可配置编解码器10。在本实施例中,内存装置12包含非挥发性内存单元数组,其分割成多个区块,每一区块又包含多页(page)。编解码器10可使用不同的错误更正码来分别更正所对应页(或区块)的错误。图2A显示本发明第一实施例的多重错误更正码的可配置编码系统20的功能方块图,其适用于内存装置,例如非挥发性内存(如闪存)2h-22n。图2B显示第一实施例的用于内存装置的多重错误更正码的可配置编码方法的流程图。在本实施例中,编码系统20包括一错误更正码(ECC)编解码器200,其可经配置用以对不同的非挥发性内存22a-22n进行不同的错误更正。编码系统20还包括多个无误 (error-free)的储存装置SDl-SDn,用以分别储存不同错误更正码的参数,因而可提供无误的参数给ECC编解码器200。在一实施例中,每一个无误的储存装置SDl-SDn都可以是静态随机存取内存(SRAM)或只读存储器(ROM)。储存装置SDl-SDn中所储存的参数用于ECC 编解码器200的初始化或其组态(configuring status)。本说明书中所述的无误储存装置 SDl-SDn,其错误率远小于ECC编解码器200的错误率。换句话说,在实际的应用中,储存装置SDl-SDn的错误机率是可被忽略的。在步骤201,储存参数于储存装置SDl-SDn中。例如,编码系统20在出厂前,即先储存参数于储存装置(如只读存储器)SDl-SDn中;或者,可在使用者端藉由计算机14(图 1A)将参数储存至储存装置SD I-SDn(如静态随机存取内存)中。接着,在步骤202,使用者选出其中一个可配置错误更正码。之后,在步骤203a-203n中,从相应的储存装置(SD1, SD2...或SDn)中,将所选到的参数,例如初始化所需的错误更正码,下载到ECC编解码器 200。在完成初始化之后,在步骤204,ECC编解码器200开始对相应的非挥发性内存(22a, 22b...或22η)或非挥发性内存Qh,22b...或22η)的相应页(或区块)的数据进行编码及/或解码。举例来说,如果选择了第二错误更正码,则从第二储存装置SD2下载参数,而 ECC编解码器200即可开始对第二非挥发性内存22b进行编码及/或解码。在另一个例子中,若选择了其中一个错误更正码,则从相应的储存装置(SD1,SD2...或SDn)下载参数,而ECC编解码器200即可对相应的非挥发性内存Qh,22b...或22η)的至少一页(或区块) 的数据进行编码及/或解码。根据上述第一实施例,ECC编解码器200的错误更正码可藉由将新的参数取代先前的参数而轻易地进行配置或改变,其中新的参数可从储存装置SDl-SDn下载。藉此,ECC 编解码器200本身即无须储存大量的参数。图2C的方块图显示了图2Α的另一种实施例,其可用于内存装置的多重错误更正码的可配置编码系统20Β。图2D显示了图2C实施例的用于内存装置的多重错误更正码的可配置编码方法的流程图。本实施例的编码系统20Β类似于编码系统20,不同的是,仅使用一个无误储存装置SD来储存不同错误更正码的参数。在步骤201Β,将多重错误更正码的参数储存于储存装置SD。例如,将不同错误更正码的参数对应至储存装置SD上的不同地址。接着,在步骤 202Β,选择其中一个可配置错误更正码。在步骤20;3Ba-20;3Bn,初始化所需的参数可藉由寻址方法从储存装置SD下载。完成初始化后,在步骤204B,ECC编解码器200开始对相应的非挥发性内存Oh,22b...或22η)或非挥发性内存Qh,22b...或22η)的相应页(或区块)的数据进行编码及/或解码。图3Α显示了本发明第二实施例的多重错误更正码的可配置编码系统30的功能方块图,其适用于内存装置,例如非挥发性内存(如闪存)2h-22n。图:3B显示第二实施例的用于内存装置的多重错误更正码的可配置编码方法的流程图。在本实施例中,编码系统30包括第一 ECC编解码器300A,其可经配置用以对不同的非挥发性内存22a-22n进行不同的错误更正。编码系统30还包括第二(或辅助)ECC编解码器300B,其可从易错(error-prone)的外部内存装置(如非挥发性内存)下载第一ECC 编解码器300A初始化所需的参数。其中,储存参数的非挥发性内存可以是前述非挥发性内存22a-22n的其中一个,或者是其它的非挥发性内存。值得注意的是,第二 ECC编解码器300B可无须进行初始化,即能更正所下载参数的错误。举例来说,第二 ECC编解码器300B具有内建的参数,因而能够进行错误更正。接着,第二 ECC编解码器300B即将已更正或无误的参数传送给第一 ECC编解码器300A。在步骤301,将参数事先储存(或更新)于一个或多个(易错的)非挥发性内存 (22a, 22b...或22η)中。随后,在步骤302,使用者从非挥发性内存下载所储存的相应参数至第二 ECC编解码器300Β。接着,在步骤303,第二 ECC编解码器300Β对所下载的参数进行错误更正。接着在步骤304中,将已更正的参数传送至第一 ECC编解码器300Α以利相关的初始化。在完成初始化后,在步骤305,第一 ECC编解码器300Α开始对相应的非挥发性内存Qh,22b...或22η)数据进行编码及/或解码。举例来说,如果下载到的参数是相应于第二错误更正码,则第一 ECC编解码器300Α即可开始对第二非挥发性内存22b进行编码及 /或解码。第二实施例具有第一实施例的优点,亦即,无须储存大量的参数。相较于第一实施例,由于各种错误更正码的参数是储存于非挥发性内存,例如非挥发性内存的备用储存空间,因此本实施例对于参数的储存成本远小于无误储存装置的储存成本。此外,第二实施例具有两个ECC编解码器300A、300B可供使用。例如,第一 ECC编解码器300A可作为低密度同位检查码(low-density parity-check, LDPC)的编解码器,而第二 ECC编解码器300B可作为BCH(其由Bose,Ray-Chaudhuri及Hocquenghem所发明)的编解码器。图4A显示了本发明第三实施例的多重错误更正码的可配置编码系统40的功能方块图,其适用于内存装置,例如非挥发性内存(如闪存)2h-22n。图4B显示了第三实施例的用于内存装置的多重错误更正码的可配置编码方法的流程图。在本实施例中,编码系统40包括ECC编解码器400A,其可经配置用以对不同的非挥发性内存22a-22n进行不同的错误更正。编码系统40还包括一储存装置400B,如静态随机存取内存(SRAM)或只读存储器(ROM),用以储存(无误的)固定参数。根据固定参数, ECC编解码器400A可从易错(error-prone)的外部内存装置(如非挥发性内存)下载并更正初始化所需的参数。值得注意的是,ECC编解码器400A可使用固定参数以更正所下载参数的错误。其中,储存参数的非挥发性内存可以是前述非挥发性内存22a-22n的其中一个, 或者是其它的非挥发性内存。在步骤401,将参数事先储存(或更新)于一个或多个(易错的)非挥发性内存 (22a, 22b,... ,22η)中。接着,在步骤402,藉由固定参数来初始化ECC编解码器400Α。之后,使用者从非挥发性内存下载相应的参数至ECC编解码器400Α (步骤40 。在步骤404, ECC编解码器400A根据固定参数对下载的参数进行错误更正。ECC编解码器400A根据已更正参数完成初始化之后,在步骤405,ECC编解码器400A开始对相应的非挥发性内存(22a, 22b...或22η)数据进行编码及/或解码。举例来说,如果下载的参数对应于第二错误更正码,则ECC编解码器400A即可开始对第二非挥发性内存22b进行编码及/或解码。第三实施例具有第一实施例的优点,亦即,无须储存大量的参数。此外,第三实施例也具有第二实施例的优点,亦即,储存参数至非挥发性内存的成本远小于储存参数至无误储存装置的成本。在一实施例中,选择低密度同位检查码(LDPC)用以对相应非挥发性内存的数据进行编解码。具体来说,使用产生矩阵(generating matrix)对数据进行编码,且使用同位检查码矩阵(parity check matrix)对接收信号进行解码。在硬件实作上,用以初始化编码器的产生矩阵所需要的参数相当大;同样地,用以初始化解码器的同位检查码矩阵所需要的参数也相当大。为了支持多重错误更正码,系统必须对每一种LDPC储存不同的矩阵。 根据上述第二和第三实施例,可从非挥发性内存下载这些矩阵,因而使系统在设计上更具弹性,且减少编码系统的成本。以上所述仅为本发明的优选实施例而已,并非用以限定本发明;凡其它在未脱离发明所公开的精神下所完成的等效改变或修饰,均应包含在权利要求书中。
权利要求
1.一种多重错误更正码的可配置编码系统,包含一错误更正码(ECC)编解码器,选择地使用不同参数以进行不同的错误更正;及一参数提供装置,提供一选择参数给所述ECC编解码器,以初始化所述ECC编解码器; 其中,用以初始化所述ECC编解码器的所述参数为无误参数。
2.如权利要求1所述的多重错误更正码的可配置编码系统,其中所述ECC编解码器包含一编码器、一解码器或其组合。
3.如权利要求1所述的多重错误更正码的可配置编码系统,其中所述ECC编解码器对以下之一进行错误更正非挥发性内存至少一页的数据、非挥发性内存至少一区块的数据、 非挥发性内存的数据或上述的组合。
4.如权利要求3所述的多重错误更正码的可配置编码系统,其中所述非挥发性内存为一闪存。
5.如权利要求1所述的多重错误更正码的可配置编码系统,其中所述参数提供装置包含至少一个无误储存装置,用以分别储存所述无误参数,在进行错误更正之前,所述选择参数从所述储存装置下载到所述ECC编解码器。
6.如权利要求5所述的多重错误更正码的可配置编码系统,其中所述储存装置为一静态随机存取内存(SRAM)或一只读存储器(ROM)。
7.如权利要求1所述的多重错误更正码的可配置编码系统,其中所述参数提供装置包含一外部内存装置,用以储存不同的参数;及一辅助编解码器,用以从所述外部内存装置中选择并下载所储存的参数的其中之一; 其中,所述辅助编解码器根据一内建参数来更正所下载的该参数,因而产生所述无误参数以提供给所述ECC编解码器。
8.如权利要求7所述的多重错误更正码的可配置编码系统,其中所述外部内存装置为一非挥发性内存。
9.如权利要求1所述的多重错误更正码的可配置编码系统,其中所述参数提供装置包含一无误储存装置,用以储存一无误固定参数,该固定参数被下载至所述ECC编解码器, 用以对该ECC编解码器进行初始化;及一外部内存装置,用以储存不同的参数;其中,所述ECC编解码器从所述外部内存装置中选择并下载所储存的参数的其中之一,并根据所述固定参数来更正下载的该参数,因而产生所述无误参数。
10.如权利要求9所述的多重错误更正码的可配置编码系统,其中所述储存装置为一静态随机存取内存(SRAM)或一只读存储器(ROM),且所述外部内存装置为一非挥发性内存。
11.一种多重错误更正码的可配置编码方法,包含 储存多个不同的参数;提供一选择参数至一错误更正码(ECC)编解码器,以初始化该ECC编解码器;及根据所述选择参数来选择地执行错误更正;其中,用以初始化所述ECC编解码器的所述参数为无误参数。
12.如权利要求11所述的多重错误更正码的可配置编码方法,其中所述ECC编解码器执行编码、解码、或其组合。
13.如权利要求11所述的多重错误更正码的可配置编码方法,是对以下之一进行错误更正非挥发性内存至少一页的数据、非挥发性内存至少一区块的数据、非挥发性内存的数据或上述的组合。
14.如权利要求13所述的多重错误更正码的可配置编码方法,其中所述非挥发性内存为一闪存。
15.如权利要求11所述的多重错误更正码的可配置编码方法,其中所述不同的参数储存于至少一个无误储存装置中,在进行所述错误更正之前,所述选择参数从所述储存装置下载到所述ECC编解码器。
16.如权利要求15所述的多重错误更正码的可配置编码方法,其中所述储存装置为一静态随机存取内存(SRAM)或一只读存储器(ROM)。
17.如权利要求11所述的多重错误更正码的可配置编码方法,其中所述不同的参数储存于一外部内存装置,且一辅助编解码器从该外部内存装置中选择并下载所储存的参数的其中之一;其中,所述辅助编解码器根据一内建参数来更正所下载的参数,因而产生该无误参数以提供给所述ECC编解码器。
18.如权利要求17所述的多重错误更正码的可配置编码方法,其中所述外部内存装置为一非挥发性内存。
19.如权利要求11所述的多重错误更正码的可配置编码方法,其中所述不同的参数储存于一外部内存装置,且一无误储存装置储存一无误固定参数,该固定参数被下载至该ECC 编解码器,用以对该ECC编解码器进行初始化;其中,所述ECC编解码器从所述外部内存装置中选择并下载所储存的参数的其中之一,并根据所述固定参数来更正所下载的参数,因而产生所述无误参数。
20.如权利要求19所述的多重错误更正码的可配置编码方法,其中所述储存装置为一静态随机存取内存(SRAM)或一只读存储器(ROM),且所述外部内存装置为一非挥发性内存。
全文摘要
一种多重错误更正码(ECC)的可配置编码系统及方法,可适用于内存装置。该系统包括错误更正码(ECC)编解码器,其可选择地使用不同参数以进行不同的错误更正。该系统还包括一参数提供装置,用以提供一选择参数给ECC编解码器,用以对其初始化。其中,选择参数为无误(error-free)参数。
文档编号G11C16/08GK102298969SQ20111012030
公开日2011年12月28日 申请日期2011年5月10日 优先权日2010年5月17日
发明者邓宇轩, 郑莊 申请人:擎泰科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1