提高闪存资料存取可靠性的方法

文档序号:6574207阅读:197来源:国知局
专利名称:提高闪存资料存取可靠性的方法
技术领域
本发明涉及一种提高闪存资料存取可靠性的方法,尤其涉及一种应用于 闪存的资料读、写以及可通过写入编码、读出译码与新、旧错误更正码比对 而提升资料存取可靠性的方法。
技术背景目前,闪存广泛使用于计算机主机或消费性电子产品中,比如现有的 随身碟、MP3播放器中的闪存,即为最常见的闪存应用场合。然而,现有的闪 存资料读写控制模式,就现有技术而言, 一个闪存区块抹除约一百万次,存 放其上的资料即有可能无法正确被读出。当一个闪存区块因为抹除次数过多, 而造成无法正确读出资料时,即称此区块被写穿。由于闪存有此种寿命限制,因此如何确保在闪存区块被写穿的情况下,仍 能正确读出资料,便成为一个重要的研究课题。目前现有的解决方法有两种-一种是通过硬件技术的改进来改善闪存的可靠性;另一种则是通过错误更正码(Error Correction Code, ECC)来修正错误。 但是,错误更正码的能力受到闪存页面(page)的保留区(spare area)大小的 限制,以512字节的页面来说,要能够侦测出两个位的错误,并能更正一个 位的错误,需要24个位的错误更正码,换言之,能够容忍资料错误的位数相 当低,使其错误更正能力与资料存取可靠性、效率均受到限制。如图1所示,现有的闪存资料读写架构,欲写入的资料A1在写入资料区 A2的同时,也产生一错误更正码A3存入该资料区A2后方的保留区A4中,此 种如图1所示的现有的闪存资料读写架构如应用在更不可靠的多级单元 (Multi-Level Cell, MLC)闪存上时,该闪存一个单元(cell)可以储存两个或 以上的位,但是也因此造成位值可能误判的情形发生,虽然增大保留区以提 供错误更正码更多的储存空间可以稍加改善问题,但是此种作法势必将现有 的系统及硬件做大幅度的更新与扩大才行,使闪存于应用上不具有经济效益。 另外,由于闪存有寿命限制,当资料存取于闪存内面临可靠性非常重要 的状态下,现有闪存的作法是去监视每个闪存区块被抹除的次数,当抹除次数接近一百万次时,即避免将资料写到该区块,这种作法除了必须付出额外 大量的内存容量与系统资源去进行监视之外,也有可能造成闪存容量的浪费, 因为并不是所有闪存区块抹除了一百万次就一定会不可靠,相对地,也不能 保证闪存区块在抹除一百万次之前一定可靠,换言之,该现有监测方法并没 有办法直接与真实反映闪存内各区块内的实际资料存取正确或错误状态,所 以这种现有闪存资料存取可靠性的监测作法,仍存有可靠性不佳的问题与缺 点。此外,相关在前专利文献,如中国台湾专利公报第575806号"一种增强 闪存的错误更正能力及同时对资料加密的方法"的发明专利案,则揭示关于 增强闪存的错误更正能力的技术,但对于两个位的低容忍错误能力及各存储 区块的资料存取正确或错误状态无法真实反映等问题及缺点,并无任何妥善 的改进对策,有可能造成各存储区块资料存取可靠性误判情形发生。 发明内容本发明的主要目的在于克服现有产品存在的上述缺点,而提供一种提高 闪存资料存取可靠性的方法,使闪存资料存取具有较多位的错误容忍可靠度。本发明的又一目的在于提供一种提高闪存资料存取可靠性的方法,可以 真实反映闪存中的各存储区块的资料存取错误状态,以精确评估各存储区块 的可靠状态,进而提高闪存资料存取的可靠度。本发明的目的是由以下技术方案实现的。 本发明提高闪存资料存取可靠性的方法,其特征在于,包括(a) 开始;(b) 于闪存存储内规划数个存储单元,将一闪存内规划数个存储单位,该 存储单位规划设有一资料区及保留区;(C)于内存内规划数个计数器;(d) 每个存储单元对应一个计数器,每一个计数器分别对应步骤(b)的 各存储单位,供作为计数各存储单元的新、旧错误更正码比对不一致的次数;(e) 判断资料为写入或读出,如为写入则进行步骤(f),如为读出则进行 步骤(g);(f)进行数据编码写入处理,将所要写入的数据进行随机编码,将数个写 入数据进行随机编码运算,以产生数个额外数据,通过数个写入资料与数个 额外资料等资料进行错误码更正运算,产生一错误更正码,该数个写入资料与数个额外资料写入步骤(b)的存储单位的资料区,该错误更正码写入步骤 (b)的存储单位的保留区,使数个写入资料与数个额外数据供作以后资料读 出译码还原的因子,该错误更正码作为资料读出的新版错误更正码的比较依据,进行步骤(h);(g)进行选取资料译码读出处理,自步骤(b)的闪存存储单位资料区及保 留区读出资料,在资料区的数个写入资料与额外资料还原读出后,进行新的 错误更正码的产生,通过此新的错误更码与步骤(f)的旧的错误更正码的每 一个位内容逐一进行比对,并将两者每一位比对不一致次数记录于步骤(d) 的计数器,通过计数器内容值供作闪存中的每个存储单位的资料存取可靠性 的显示与参考,并自该资料区随机选取一较为可靠的资料群,自步骤(f)的 数个写入资料与数个额外数据中任意选出数个数据为译码因子,并依据如步 骤(e)的随机编码运算的逆向运算进行译码还原出资料区内所写入储存的数 个写入资料; (h)结束。前述的提高闪存资料存取可靠性的方法,其特征在于,所述步骤(b)的 存储单位容量为512X8位。前述的提高闪存资料存取可靠性的方法,其特征在于,所述步骤(c)的 计数器为一连续地址的计数器数组。前述的提高闪存资料存取可靠性的方法,其特征在于,所述步骤(f)的 随机编码运算方式为随机互斥或逻辑运算方式。前述的提高闪存资料存取可靠性的方法,其特征在于,所述步骤(f)的 资料编码写入处理步骤包括(fl)开始;(f2)对要写入的数据进行编码,即将数个写入数据进行随机编码运算, 以产生数个额外数据;(f3)对编码过后的资料进行错误更正码ECC计算,将通过随机编码运算 后所产生的数个写入资料与数个额外资料等资料进行错误码更正运算,以产 生错误更正码;(f4)将编码过后的资料写入闪存的一个存储单位的资料区,计算产生的 错误更正码写入相对应的保留区中,将该步骤(f2)的数个写入数据与数个 额外数据等编码后的资料写入闪存的一存储单位的资料区,该步骤(f3)产生的错误更正码写入该存储单位所对应的保留区中; (f5)结束。前述的提高闪存资料存取可靠性的方法,其特征在于,所述步骤(g)的 选取资料译码读出处理步骤包括(gl)开始;(g2)从闪存的存储单元读取资料区及保留区的数据,即将所欲读出资料 的闪存的存储单位资料区中的数个写入资料与数个额外数据等经随机编码资 料及保留区中的旧版错误更正码资料读出;(g3)从资料区选取一组数据群来进行译码,即将步骤(g2)资料区读出 的数个写入数据与数个额外数据等经随机编码数据,任选其中数个资料所组 成的资料群供作为资料还原译码的因子;(g4)对数据进行译码,即将步骤(g3)选取的数据群进行还原译码,以解 出数个写入数据与数个额外资料等原始资料;(g5)检査译码出来的数据是否正确,如果不是则进行步骤(g6),如果是 则进行步骤(g7),利用步骤(g)所述的新、旧错误更正码比对来检验该解 出数个写入资料与数个额外资料等原始资料是否正确;(g6)重复次数是否超过门槛值,如果超过则进行步骤(g61),如果未超 过则进行步骤(g62),即给予资料读出不正确次数的门槛值限制;(g61)警示读取动作失败,即判定闪存的存储单元资料读取失败,并进行 步骤(g8);(g62)另外重选一组资料群,即至该存储单位资料区重新任意选取若干个 资料群,并重回步骤(g4);(g7)将正确的资料回传输出;(g8)结束。前述的提高闪存资料存取可靠性的方法,其特征在于,所述步骤(g3)的 资料区选取步骤包括-(g31)开始;(g32)将每一个存储单位所对应到的计数器归零,将该存储单位所对应到 的计数器内容值清除归零;(g33)从选取的存储单位读取资料区及保留区的资料,即该选取的存储单 位的资料区及保留区内的资料读出;(g34)从保留区读取之前所储存的错误更正码,将步骤g33中的保留区内 旧的错误更正码读出;(g35)根据从资料区所读出的资料,另外计算新的错误更正码,即根据步 骤g33读出的资料区中的数个写入资料与数个额外资料等资料重新计算出产 生新的错误更正码;(g36)以位为单位,逐一比较新、旧错误更正码内容位值,即将步骤g34 与步骤g35的新、旧错误更正码以一位为单位,逐一将两者的每一个位值进 行比较;(g37)位内容是否一致 如果不同则进行步骤g371,如果相同则进行步骤 g372;(g371)将存储单位所对应到的计数器值加一;(g372)是否是最后一个位,如果是则进行步骤g38,如果不是进行步骤 g373;(g373)继续比较下一个位;(g38)根据存储单位所对应计数器的内容数值来决定是否选取该存储单 位,数值越大,被选取的可能性越低; (g39)选择出所需个数的存储单位; (g40)结束。本发明提高闪存资料存取可靠性的方法的有益效果,其在闪存内规划数 个存储单元及计数器,每一存储单元对应计数器,各计数器用于计数各存储 单元的新、旧错误更正码比对不一致的次数,并于数据写入前先行进行随机 编码,产生一额外资料存入资料区内,并产生一错误更正码写入闪存内的保 留区中,在资料读出时,根据资料写入的存储单位的部份资料与之额外资料 的部份资料随机选取进行译码还原原先资料读出,并产生新的错误更正码而 与原先旧的错误更正码比对,将新、旧错误更正码每一位内容进行比对,通 过各存储单位对应的计数器进行计数比对不一致次数,经由各计数器内容显 示各对应的存储单元可被选取使用的可靠状态,进而达到本发明提高闪存资 料存取的可靠性及效率的功效。


-图1为现有闪存资料存取及错误更正码产生和储存架构示意图 图2为本发明提高闪存资料存取可靠性的方法的流程图。图3为本发明方法中的存储单位与计数器间的对应结构图。图4为本发明方法中的写入资料及额外资料的随机编码运算图。图5为本发明方法中的存储单位的资料区与保留区数据结构图。图6为本发明方法中的资料编码写入处理步骤详细流程图。图7为本发明方法中的选取资料译码读出处理步骤详细流程图。图8为本发明方法中的选取资料译码读出处理步骤资料区选取详细流程图。图9为本发明方法的较佳应用例图。图10为本发明方法应用于多级单元闪存中针对有争议位值单元选择的电压逻辑图。图中主要标号说明IO开始、20于闪存存储内规划数个存储单元、30于 内存内规划数个计数器、40每个存储单元对应一个计数器、50判断资料为写 入或读出、60进行数据编码写入处理、61开始、62对要写入的数据进行编 码、63对编码过后的资料进行错误更正码ECC计算、64将编码过后的资料写 入闪存之一个存储单位的资料区,而计算产生的错误更正码则写入相对应的 保留区中、65结束、70进行选取数据译码读出处理、71开始、72从闪存的 存储单元读取资料区及保留区的数据、73从资料区选取一组数据群来进行译 码、731开始、732将每一个存储单位所对应到的计数器归零、733从选取的 存储单位读取资料区及保留区的资料、734从保留区读取之前所储存的错误更 正码、735根据从资料区所读出的资料,另外计算新的错误更正码、736以位 为单位,逐一比较新、旧错误更正码内容位值、737位内容是否一致、7371 将存储单位所对应到的计数器值加一、7372是否是最后一个位、7373继续比 较下一个位、738根据存储单位所对应计数器的内容数值来决定是否选取该存 储单位,数值越大,被选取的可能性越低、739选择出所需个数的存储单位、 740结束、74对数据进行译码、75检查译码出来的数据是否正确、76重复次 数是否超过门槛值、761警示读取动作失败、762另外重选一组资料群、77将 正确的资料回传输出、78结束、80结束、100闪存、110存储单位、111资料 区、U2保留区、120计数器、Di至Dn写入资料、L至TK额外资料、ECC错误 更正码、LP0至LP17位、CP0至CP5位、A位值点、VT逻辑电压、Al欲写入 资料、A2资料区、A3错误更正码、A4保留区。
具体实施方式
参阅图2、图3、图4及图5所示,图2为本发明提高闪存资料存取可靠 性的方法的流程图,包括步骤10至步骤80;其中 IO为开始。20为在闪存存储内规划数个存储单元,如图3所示,将一闪存100内规 划成数个存储单位IIO,该存储单位110的大小不限,在本发明中是以每一个 存储单位110为512X 8个位大小为例。30为在内存内规划数个计数器,在内存内规划有数个计数器120,该计 数器120可以是连续地址的计数数组方式组成。40为每个存储单元对应一个计数器,每一个计数器120分别对应步骤20 的各存储单位IIO,供作为计数各存储单元110的新、旧错误更正码比对不一 致的次数。50为判断资料为写入或读出?如为写入则进行步骤60;如为读出则进行 步骤70。60为进行数据编码写入处理,将所要写入的数据进行随机编码,如图4 所示的将N个写入数据Di至a进行随机编码运算,该随机编码方式不限,在 本发明中是以二分随机(龙巻风)编码方式为例,以产生K个额外资料L至Tk, 其中,N〉K,该N个写入资料D,至a与K个额外资料L至TK间的运算方式为 互斥或(XOR)逻辑的运算方式,例如图3中的额外数据T^ D4X0R D6X0R D9, 但其它的逻辑编码运算方式也应属于本发明的技术范畴。通过随机编码运算 后所产生的N个写入数据"至D。与K个额外资料L至TK等资料进行错误码更 正运算,产生一错误更正码ECC,该N个写入资料D,至Dn与K个额外资料T, 至TK等资料写入图5所示存储单位110的资料区lll,该错误更正码ECC写入 存储单位110的保留区112,使该N个写入资料Di至a与K个额外资料1\至 TK等数据供作以后数据读出译码还原的因子,只要随机选择其中M个数据, N〈M〈N+K,即可译码还原出N个写入资料D,至D 。而该错误更正码ECC则作为 资料读出的新版错误更正码的比较依据,再进行步骤80。70为进行选取资料译码读出处理,自该闪存100的存储单位110的资料 区111及保留区112读出资料,进行新的错误更正码ECC的产生,通过此新 的错误更码ECC与旧的错误更正码ECC的每一个位内容逐一进行比对,并将 两者比对不一致次数记录于步骤40的计数器120,以通过计数器120内容值 供作闪存100中的每个存储单位110的资料存取可靠性的显示与参考,并自该资料区111随机选取一较为可靠的资料群,如自步骤60所述的N个写入资 料Di至D。与K个额外资料1\至TK等资料中任意选出M个较为可靠的数据为译 码因子,并依据如同步骤60所述的互斥或逻辑运算的逆向运算进行译码还原 出资料区111内所写入储存的N个写入资料Di至Dn。 80为结束。参阅图6所示,为本发明上述提高闪存资料存取可靠性的方法的资料编 码写入处理步骤的详细流程图,即图2中的步骤60的详细流程,其包括步骤 61至65;其中61为开始。62为对要写入的数据进行编码,即将图4所示的N个写入数据"至K进 行随机编码运算,以产生K个额外数据T,至TK。63为对编码过后的资料进行错误更正码ECC计算,将通过随机编码运算 后所产生的N个写入数据D,至Dn与K个额外资料至TK等资料进行错误码更 正运算,以产生错误更正码ECC。64为将编码过后的资料写入闪存的一个存储单位的资料区,计算产生的 错误更正码则写入相对应的保留区中,将该步骤62的N个写入资料D,至D 与K个额外数据L至TK等编码后的资料写入闪存100的某一个存储单位110 的资料区111;该步骤63产生的错误更正码ECC写入该存储单位110所对应 的保留区U2中。65为结束。参阅图7所示,为本发明上述提高闪存资料存取可靠性的方法的选取资 料译码读出处理步骤的详细流程图,即图2中的步骤70的详细流程,包括步 骤71至78;其中71为开始。72为从闪存的存储单元读取资料区及保留区的数据,即将所欲读出资料 的闪存100的存储单位110的资料区111中的N个写入资料"至Dn与K个额 外数据L至TK等经随机编码资料及保留区112中的旧版错误更正码ECC资料读出。73为从资料区选取一组数据群来进行译码,即将步骤72的资料区111读 出的N个写入资料D,至a与K个额外数据T,至TK等经随机编码数据,任选其 中M个资料所组成的资料群供作为资料还原译码的因子。74为对数据进行译码,即将步骤73选取的数据群进行还原译码,以解出 N个写入数据Di至D。。75为检査译码出来的数据是否正确 如果不是进行步骤76,如果是则进 行步骤77。76为重复次数是否超过门槛值 如果超过进行步骤761,如果未超过则进 行步骤762,即给予资料读出不正确次数的门槛值限制。761为警示读取动作失败,即判定闪存100的存储单元110数据读取失败, 并进行步骤78。762为另外重选一组资料群,即至该存储单位110的资料区111重新任意 选取M个资料群,并重回步骤74。 77为将正确的资料回传输出。 78为结束。参阅图8所示,为本发明上述提高闪存资料存取可靠性的方法的选取资 料译码读出处理步骤的资料区选取的详细流程图,即图7所示中的步骤73的 详细流程,其包括步骤731至740;其中731为开始。732为将每一个存储单位所对应到的计数器归零即将该存储单位IIO所对 应到的计数器120内容值清除归零。733为从选取的存储单位读取资料区及保留区的资料,即该选取的存储单 位110的资料区111及保留区112内的资料读出。734为从保留区读取的前所储存的错误更正码,将步骤733中的保留区 112内旧的错误更正码ECC读出。735为根据从资料区所读出的资料,另外计算新的错误更正码,即根据步 驛733读出的资料区111中的N个写入资料Di至Dn与K个额外资料1\至TK等 资料重新计算出产生新的错误更正码ECC。736为以位为单位,逐一比较新、旧错误更正码内容位值,即将步骤734 与步骤735的新、旧错误更正码ECC以一位为单位,逐一将两者的每一个位 值进行比较。737为位内容是否一致 如果不同则进行步骤7371,如果相同则进行步骤 7372。7371为将存储单位所对应到的计数器值加一。7372为是否是最后一个位?如果是则进行步骤738,如果不是进行步骤 7373。7373为继续比较下一个位。738为根据存储单位所对应计数器的内容数值来决定是否选取该存储单 位,数值越大,被选取的可能性越低。 739为选择出所需个数的存储单位。 740为结束。参阅图9所示,为本发明提高闪存资料存取可靠性的方法的较佳应用例图, 列举一简单说明例,以阐明本发明提高可靠性的功效;其中,为一个512字 节的存储单元110的错误更正码例子,该错误更正 码ECC共有24个位(位 LPO至LP17与位CPO至CP5),可以侦测两个错误位并更正一个错误位。每个 错误更正码位都对应到一组特定的资料区111位。例如位LPO即是字节 ByteO、字节Byte2到字节Byte510(即索引为偶数的字节),所含全部位经互 斥或(XOR)逻辑运算后所得到的结果,在既有系统的读取动作中,会从保留区 112读出之前所储存的旧的错误更正码ECC,另外会根据资料区111的资料计 算出新的错误更正码ECC,通过比较新、旧两组错误更正码ECC的异同,来侦 测并更正错误。在本发明方法及架构下,以512字节的单级单元闪存100的存储单元110 搭配24个位的错误更正码ECC为例,计数器120必须能记录0至24的数值(需 要6个位),每一个存储单元IIO,共计512X8位都对应到一个计数器120, 所以总共需要3KB的空间。当某组新、旧错误更正码ECC的位的数值不同时,产生该错误更正码ECC 位的资料位群所对应到的计数器120都加一。如图9所示,假设两个新、旧错误更正码ECC的位LPO不一致,则图9 所示斜线区域的位是有可能发生错误的;同样的,假设位CP5的值也不一致, 则点状区域涵盖的位也是有可能发生错误的,因此得到推论,被重复涵盖越 多的位,错误的可能性越高。当比较完所有的错误更正码ECC位之后,对应 到计数器120数值越高的存储单位110,被选取译码的可能性越低。参阅图10所示,为上述本发明提高闪存资料存取可靠性的方法,以在闪 存100资料读出的过程中,针对在多级单元闪存IOO应用上,将逻辑电压级 别做更进一步的区分,如区分四个逻辑电压级别,分别代表"11、 10、 01"与"00"等值,并将有争议的位值信息挑出,例如在图10中所示的横轴为逻 辑电压VT;纵轴为单元个数, 一位值点A介于"11"与"10"两个值之间, 无法判定有争议时,经由图2至图9所示本发明的提高闪存资料存取可靠性 的方法的各个处理步骤,可以将此有争议的位值点A所代表的位值予以滤除, 应用在多级单元闪存100上进行数据存取,达到提高可靠度的功效。在以上图2至图10中所示本发明提高闪存资料存取可靠性的方法,其中 所揭示的相关说明及图式,仅为便于阐明本发明的技术内容及技术手段,所 揭示较佳实施例之一隅,即仅是本发明的较佳实施例而已,并非对本发明作 任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简 单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
权利要求
1. 一种提高闪存资料存取可靠性的方法,其特征在于,包括(a)开始;(b)于闪存存储内规划数个存储单元,将一闪存内规划数个存储单位,该存储单位规划设有一资料区及保留区;(c)于内存内规划数个计数器;(d)每个存储单元对应一个计数器,每一个计数器分别对应步骤(b)的各存储单位,供作为计数各存储单元的新、旧错误更正码比对不一致的次数;(e)判断资料为写入或读出,如为写入则进行步骤(f),如为读出则进行步骤(g);(f)进行数据编码写入处理,将所要写入的数据进行随机编码,将数个写入数据进行随机编码运算,以产生数个额外数据,通过数个写入资料与数个额外资料等资料进行错误码更正运算,产生一错误更正码,该数个写入资料与数个额外资料写入步骤(b)的存储单位的资料区,该错误更正码写入步骤(b)的存储单位的保留区,使数个写入资料与数个额外数据供作以后资料读出译码还原的因子,该错误更正码作为资料读出的新版错误更正码的比较依据,进行步骤(h);(g)进行选取资料译码读出处理,自步骤(b)的闪存存储单位资料区及保留区读出资料,在资料区的数个写入资料与额外资料还原读出后,进行新的错误更正码的产生,通过此新的错误更码与步骤(f)的旧的错误更正码的每一个位内容逐一进行比对,并将两者每一位比对不一致次数记录于步骤(d)的计数器,通过计数器内容值供作闪存中的每个存储单位的资料存取可靠性的显示与参考,并自该资料区随机选取一较为可靠的资料群,自步骤(f)的数个写入资料与数个额外数据中任意选出数个数据为译码因子,并依据如步骤(e)的随机编码运算的逆向运算进行译码还原出资料区内所写入储存的数个写入资料;(h)结束。
2、根据权利要求1所述的提高闪存资料存取可靠性的方法,其特征在于, 所述步骤(b)的存储单位容量为512X8位。
3、 根据权利要求1所述的提高闪存资料存取可靠性的方法,其特征在于, 所述步骤(c)的计数器为一连续地址的计数器数组。
4、 根据权利要求1所述的提高闪存资料存取可靠性的方法,其特征在于, 所述步骤(f)的随机编码运算方式为随机互斥或逻辑运算方式。
5、 根据权利要求1所述的提高闪存资料存取可靠性的方法,其特征在于,所述步骤(f)的资料编码写入处理步骤包括 (fl)开始;(f2)对要写入的数据进行编码,即将数个写入数据进行随机编码运算, 以产生数个额外数据;(f3)对编码过后的资料进行错误更正码ECC计算,将通过随机编码运算 后所产生的数个写入资料与数个额外资料等资料进行错误码更正运算,以产 生错误更正码;(f4)将编码过后的资料写入闪存的一个存储单位的资料区,计算产生的 错误更正码写入相对应的保留区中,将该步骤(f2)的数个写入数据与数个 额外数据等编码后的资料写入闪存的一存储单位的资料区,该步骤(f3)产 生的错误更正码写入该存储单位所对应的保留区中;(f5)结束。
6、 根据权利要求1所述的提高闪存资料存取可靠性的方法,其特征在于, 所述步骤(g)的选取资料译码读出处理步骤包括(gl)开始;(g2)从闪存的存储单元读取资料区及保留区的数据,即将所欲读出资料 的闪存的存储单位资料区中的数个写入资料与数个额外数据等经随机编码资 料及保留区中的旧版错误更正码资料读出;(g3)从资料区选取一组数据群来进行译码,即将步骤(g2)资料区读出 的数个写入数据与数个额外数据等经随机编码数据,任选其中数个资料所组 成的资料群供作为资料还原译码的因子;(g4)对数据进行译码,即将步骤(g3)选取的数据群进行还原译码,以解 出数个写入数据与数个额外资料等原始资料;(g5)检查译码出来的数据是否正确,如果不是则进行步骤(g6),如果是 则进行步骤(g7),利用步骤(g)所述的新、旧错误更正码比对来检验该解出数个写入资料与数个额外资料等原始资料是否正确;(g6)重复次数是否超过门槛值,如果超过则进行步骤(g61),如果未超 过则进行步骤(g62),即给予资料读出不正确次数的门槛值限制;(g61)警示读取动作失败,即判定闪存的存储单元资料读取失败,并进行 步骤(g8);(g62)另外重选一组资料群,即至该存储单位资料区重新任意选取若干个资料群,并重回步骤(g4);(g7)将正确的资料回传输出; (g8)结束。
7、根据权利要求6所述的提高闪存资料存取可靠性的方法,其特征在于, 所述步骤(g3)的资料区选取步骤包括 (g31)开始;(g 32)将每一个存储单位所对应到的计数器归零,将该存储单位所对应 到的计数器内容值清除归零;(g33)从选取的存储单位读取资料区及保留区的资料,即该选取的存储单 位的资料区及保留区内的资料读出;(g34)从保留区读取之前所储存的错误更正码,将步骤g33中的保留区内 旧的错误更正码读出;(g35)根据从资料区所读出的资料,另外计算新的错误更正码,即根据步 骤g33读出的资料区中的数个写入资料与数个额外资料等资料重新计算出产 生新的错误更正码;(g36)以位为单位,逐一比较新、旧错误更正码内容位值,即将步骤g34 与步骤g35的新、旧错误更正码以一位为单位,逐一将两者的每一个位值进 行比较;(g37)位内容是否一致 如果不同则进行步骤g371,如果相同则进行步骤 g372;(g371)将存储单位所对应到的计数器值加一 ;(g372)是否是最后一个位,如果是则进行步骤g38,如果不是进行步骤 g373;(g373)继续比较下一个位;(g38)根据存储单位所对应计数器的内容数值来决定是否选取该存储单位,数值越大,被选取的可能性越低; (g39)选择出所需个数的存储单位; (g40)结束。
全文摘要
本发明提供一种提高闪存资料存取可靠性的方法,是在闪存内规划数个存储单元及计数器,每一存储单元对应计数器,各计数器用于计数各存储单元的新、旧错误更正码(Ecc)比对不一致的次数,并于数据写入前先行进行随机编码,产生一额外资料存入资料区内,并产生一错误更正码写入闪存内的保留区中,在资料读出时,根据资料写入的存储单位的部份资料与之额外资料的部份资料随机选取进行译码还原原先资料读出,并产生新的错误更正码而与原先旧的错误更正码比对,并将新、旧错误更正码每一位内容进行比对,再通过各存储单位对应的计数器进行计数比对不一致次数,经由各计数器内容显示各对应的存储单元可被选取使用的可靠状态,进而提升闪存资料存取的可靠性及效率。
文档编号G06F11/10GK101256521SQ200710079568
公开日2008年9月3日 申请日期2007年3月1日 优先权日2007年3月1日
发明者谢享奇, 谢仁伟, 郭大维 申请人:创惟科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1