数据储存系统与方法

文档序号:6583216阅读:254来源:国知局

专利名称::数据储存系统与方法
技术领域
:本发明有关于数据储存系统与方法,特别应用于具有拷贝回存(copyback)操作的存储器。
背景技术
:除了盘式硬盘、光盘等,现今已发展出其他数据储存技术。以固态式硬盘(SolidStateDisc,SSD)为例,其中利用NANDFlash(与非门快闪存储器)作为储存单元,以取代传统的盘式硬盘。此外,携带式电子装置,例如市面上常见的mp3随身听等,亦常使用与非门快闪存储器来储存数据。与非门快闪存储器具有一拷贝回存(copyback)操作,也可以称为内部拷贝操作(InternalCopy)。图1以方块解一与非门快闪存储器的架构,并示意其中一种拷贝回存操作。如图所示,与非门快闪存储器100具有多个区块(blocks,编号为block。、bloc、、…、block》以及一缓冲器102。区块为block。、…、bloc、提供物理空间以储存数据,各自还可划分为多个页(pages);例如,区块为block。包括多个页page(0,0)、page(O,1)…,区块block!包括多个页page(1,0)、page(1,1)…,区块blockn包括多个页page(n,0)、page(n,1)…。于读/写操作中,主机端(host)程序(program)所使用的地址信息称为"逻辑地址",需先经映射表(mappingtable)转换为"物理地址"才能对应至与非门快闪存储器100上的物理空间(上述区块或页或更小的储存单位)。缓冲器102则是设计来供拷贝回存操作使用。—逻辑地址中的数据可能自与非门快闪存储器IOO的一物理空间搬移至另一物理空间,其一操作即拷贝回存操作。拷贝回存操作有多种型式,例如,执行垃圾收集(garbagecollection)释放储存空间时,通常会大量运用到拷贝回存操作。垃圾收集通常以"区块"作为空间释放的单位。以释放图1区块blodq为例,需先将区块bloc、内有效数据(validdata)拷贝至另一区块,如区块blockn,方能将区块bloc、的储存空间释放并将其标示为可用空间;其中,搬移有效数据的技术即拷贝回存操作的一种型式。以拷贝一页page(l,O)至另一页page(n,l)为例,拷贝回存操作首先把页page(1,0)所储存的数据送至缓冲器102,再由缓冲器102传递至页page(n,1);整个数据传送过程限制于与非门快闪存储器100内部,外界不得窥。除了图1所示的技术,拷贝回存操作另有一种型式——于"页"内搬移数据。此型式的拷贝回存操作将数据从一页的一区域读到该页内部的缓冲器,再由该缓冲器搬移到该页的另一区域;其数据传送过程同样也是限制在与非门快闪存储器内部。由于拷贝回存操作的数据传送过程限制于与非门快闪存储器内部,其间若发生拷贝错误也无法得知。更甚者,拷贝错误会累积至无法校正的程度。
发明内容本发明提供一种数据储存系统以及方法。本发明所揭露的数据储存系统,包括一第一存储器、一控制器、一计次模块以及一校错模块。第一存储器具有一拷贝回存操作。控制器负责将第一存储器耦接计次模块以及校错模块。计次模块负责对第一存储器的多个逻辑地址的拷贝回存操作进行一计次操作,且据以判断上述逻辑地址是否满足一校错条件。校错模块负责接收自第一存储器读出的满足校错条件的逻辑地址中的数据,并对满足校错条件的逻辑地址中的数据进行校错。本发明所揭露的数据储存方法应用于具有一拷贝回存操作的一第一存储器上。该数据储存方法包括对第一存储器的多个逻辑地址的拷贝回存操作进行一计次操作,且据以判断上述逻辑地址是否满足一校错条件;以及接收自第一存储器读出的满足校错条件的逻辑地址中的数据,并对满足该校错条件的逻辑地址中的数据进行校错,以订正该第一存储器。本发明可对拷贝回存操作的数据进行校错,从而避免拷贝错误,尤其是多次拷贝回存操作可能造成的累计错误。图1以方块解一与非门快闪存储器的架构,并示意其中一种拷贝回存操作;图2图解本发明数据储存系统的一种实施方式;图3以表格显示本发明计次操作的结果,可暂存于本发明第二存储器210中;图4A与图4B图解待校错数据的多种来源;图5A与图5B以流程解本发明数据储存方法的多种实施方式。具体实施例方式本发明还有许多实施方式。以下举例说明。图2图解本发明数据储存系统的一种实施方式,其中包括一第一存储器202、一控制器204、一计次模块206、一校错模块208与一第二存储器210。第一存储器202可施行拷贝回存(copyback)操作,且其物理储存空间动态地配置给多个逻辑地址(主机端程序所使用的地址信息)使用。在一种实施方式中,第一存储器202可以一与非门快闪存储器(NANDFlash)实现。控制器204将第一存储器202耦接计次模块206、校错模块208以及第二存储器210。计次模块206对第一存储器202所对应的各逻辑地址的拷贝回存操作进行一计次操作,且根据该计次操作的结果判断上述逻辑地址是否满足一校错条件。校错模块208负责接收自第一存储器202读出的满足该校错条件的逻辑地址中的数据,对满足该校错条件的逻辑地址中的数据进行校错,以订正该第一存储器202。第二存储器210则用于暂存该计次模块206上述计次操作的结果,可由动态随机存取存储器(DRAM)实现。上述计次操作用来反映各逻辑地址发生拷贝回存操作的频度,可有多种实施方式。在一种实施方式中,上述计次操作包括计数第一存储器202所对应的各逻辑地址发生拷贝回存操作的次数。该计次操作的结果由第二存储器210记录,图3以表格显示其内容。如图3所示,各逻辑地址LBA(0)、…、LBA(p)对应一计次记录m。、…、nip;计次记录m。、…、mp为各逻辑地址LBA(0)、…、LBA(p)发生拷贝回存操作的次数。根据第二存储器210所暂存的计次记录m。、…、nv计次模块206判定拷贝回存操作发生次数超过一上限值的逻辑地址满足校错条件,需要自第一存储器202读出以进行校错。以上限值为8为例,计次记录m。、…、mp需各占至少三位的空间。由于第一存储器202的物理储存空间所对应的逻辑地址的数量可能很大,因此如果每个逻辑地址都占用三位的空间,则要求第二存储器210必须具备很大的储存空间,为善用第二存储器210的空间,计次操作可采用其他实施方式。在另一种实施方式中,上述计次操作包括于每次拷贝回存操作发生时,根据一概率为对应的逻辑地址设定一频度标示。上述频度标示可为一位数据,常态值为'O'。以下举例说明。假设使用者希望同一逻辑地址每发生n次拷贝回存操作即有PX的机率进行一次校错,则可于该逻辑地址每回发生拷贝回存操作时以概率X变化该频度标示为'l';其中,概率X设定为1-(1-P%)~(1/n)。若使用者希望同一逻辑地址每发生10次拷贝回存操作即有90%的机率进行一次校错(即n=10,P%=90%),则概率X的理想设定范围约为0.2260.268,为了工程方便,可设定概率X为0.25;意即,针对同一逻辑地址,拷贝回存操作发生其上一次时,计次模块206会以概率0.25尝试把该逻辑地址的频度标示自'0'变化为'l',如此一来,从较大的样本空间上看,一逻辑地址上平均发生拷贝回存操作10次,则进行校错的机率可达90%。各逻辑地址的频度标示同样可由第二存储器210暂存为图3的表格,在此实施方式中,计次记录mo、…、mp即各逻辑地址LBA(0)、…、LBA(p)的频度标示。根据第二存储器210所暂存的频度标示m。、…、nv计次模块206判定其中满足一特定值(如数据'r)的频度标示所对应的逻辑地址满足校错条件,需要自第一存储器202读出进行校错。在另一实施例中,概率设定逻辑地址的频度标示可通过在该计次模块206中设置一随机数产生器来实现,其产生随机数的值可为099:使用者可以当前的系统时间、中央处理器的时间标记或硬件实现的随机数产生器得到一高斯白噪声随机数,并通过对该高斯白噪声随机数取模数(除以100求余数),即可得范围为099的随机数。而后,通过比较该随机数与一临界值(举例而言该临界值设定为25),若随机数小于或等于该临界值,则将该逻辑地址的频度标示由'0'设置为'l';若随机数大于该临界值,则维持该逻辑地址的频度标示。如此,当一逻辑地址发生一次拷贝回存操作时,该逻辑地址的频度标示会以25%的概率被设置为'l';若该随机数的值为'l',则代表该逻辑地址有90%的可能性进行了10次拷贝回存操作,则计次模块206会判定该逻辑地址满足校错条件,需要自第一存储器202读出进行校错。本发明所采用的校错技术可有多种实施方式,其中一种为错误检查与校正(errorcheckingandcorrecting,ECC)。在此实施方式中,数据储存将还包括ECC码,且图2的校错模块208包括ECC技术。满足校错条件的逻辑地址中的数据称为"待校错数据",控制器204自第一存储器202读出该"待校错数据",并将其暂存至第二存储器210以供校错模块208进行ECC校错。待校错数据可有多种来源,图4A与图4B举例说明。参阅图4A,待校错数据为相关拷贝回存操作"完成后"的数据将数据由页6page(l,O)送至缓冲器402再写入页page(n,1),待此拷贝回存操作"完成后",该逻辑地址即满足校错条件,则当此拷贝回存操作完成后,相关逻辑地址中的数据方自页page(n,1)被控制器204读出第一存储器202之外作为待校错数据暂存于第二存储器210,以由校错模块208进行校错。若校错模块208显示待校错数据有错误,则进行校正,此时校错结果必须被写回第一存储器202中,当第一存储器202为与非门快闪存储器(NANDFlash)时,由于与非门快闪存储器的特性必须先擦除后方能写入,因此只能由控制器204新分配一闲置的物理地址,如blockn的未写入数据的物理页page(n,k),以写入该校错结果订正所对应的逻辑地址中的数据,图中以虚线表示此订正动作。反之,若校错模块208显示待校错数据没有错误,则可略过此次校正和写回程序,无须订正第一存储器202的内容。参阅图4B,其中,待校错数据为相关拷贝回存操作"执行前"的数据。即是说,当下的拷贝回存操作执行之前,该逻辑地址已经满足校错条件,则满足校错条件的逻辑地址当下的拷贝回存操作(虚线所示)将被此校错动作(实线所示)取代。页page(l,O)将被控制器204读出第一存储器202之外作为待校错数据暂存于第二存储器210中,以交由校错模块208进行校错。不论待校错数据有无错误发生,校错结果都将重新写入第一存储器202,即填入第一存储器202的一闲置空间,例如页page(n,1),以取代虚线所示的拷贝回存操作,即是说满足校错条件的逻辑地址,当接收到另一次拷贝回存操作的指令时,并不执行它,反而以上述校错动作取代。图2的计次模块206与校错模块208除了用独立于控制器204的模块实现外,还可以用控制器204内部的模块实现。此外,图2的计次模块206与校错模块208除了可以硬件电路实现、由控制器204操控外,还可以软件方式(例如作为第一存储器202的控制固件,即控制器204的固件)实现、由控制器204执行。或者,计次模块206与校错模块208亦可采用软硬件共同设计实现。除了以上"数据储存装置",本发明还揭露"数据储存方法",应用于图2的第一存储器202上。此数据储存方法包括对第一存储器202所对应的多个逻辑地址的拷贝回存操作进行一计次操作;根据上述计次操作的结果判断上述逻辑地址是否满足一校错条件;以及接收自该第一存储器202读出的满足该校错条件的逻辑地址中的数据,并对满足该校错条件的逻辑地址中的数据进行校错,以订正该第一存储器202。其中,上述方法同样可应用一第二存储器(如图2的第二存储器210)暂存上述计次操作的结果。此外,此方法所应用的计次、校错技术,皆可以前述说明书内容实现。本发明的数据储存方法有多种实施方式,参阅图5A与图5B,分别对应图4A与4B图举例说明。参阅图5A,并一并参照图4A:首先,对应一逻辑地址进行一拷贝回存操作(例如,由图4A的页page(1,0)将数据拷贝至页page(n,1))后对该逻辑地址的拷贝回存操作进行一计次操作(S501A);然后判断上述逻辑地址是否满足一校错条件;该校错条件,举例而言是根据该逻辑地址在第二存储器210中所对应储存的计次记录判断该逻辑地址发生拷贝回存操作的次数是否超过一上限值(S502A);如果满足该校错条件,则自第一存储器202读出该逻辑地址对应的待校错数据(如页page(n,l))并将其暂存至第二存储器210以进行错误校验,判断该待校错数据是否错误(S503A);如果S503A的校验显示该待校错数据有误,则对该待校错数据进行校正(如ECC)(S504A),然后将校错结果写回第一存储器202—闲置空间(如页page(n,k))(S505A);如果S503A的错误校验显示待校错数据没有错误,则可略过S504A与S505A的校正和写回程序,无须订正第一存储器202的内容,直接跳至步骤S506A执行;无论错误校验结果如何,只要步骤S502判断到满足该校错条件,最后均将第二存储器210中所对应储存的计次操作的结果清零(S506A)。接下来参阅图5B,并一并参照图4B:首先,对一逻辑地址的拷贝回存操作进行一计次操作(S501B);然后判断上述逻辑地址是否满足一校错条件,该校错条件举例而言是根据该逻辑地址在第二存储器210中所对应储存的计次记录判断该逻辑地址发生拷贝回存操作的次数是否超过一上限值(S502B);如果满足该校错条件,则判断是否收到该逻辑地址另一次拷贝回存操作的指令;这里要特别说明的是,在等待另一次拷贝回存操作指令的同时,控制器204还会进行其它指令和操作,此处略去不表(S503B);当接收到对该逻辑地址的另一次拷贝回存操作指令(例如,欲将页page(l,O)拷贝回存至页page(n,l))时,并不执行该拷贝回存操作,而是自第一存储器202读出该逻辑地址对应的待校错数据(读取页page(l,O))并将其暂存至第二存储器210以进行错误校验,判断该待校错数据是否错误(S504B);如果S504B的错误校验显示该待校错数据有错误,则对该待校错数据进行校正(如ECC)(S505B),接着将校错结果写回第一存储器202(写至一闲置空间,例如页page(n,l)),这里校错结果可为图4B的校错模块208输出的数据(S506B);如果S504B的错误校验显示待校错数据没有错误,则可略过校正步骤S505B,直接执行步骤S506B将未校正过的数据写回第一存储器202(如页page(n,1));无论错误校验结果如何,只要步骤S502B判断到满足该校错条件,最后均将第二存储器210中所对应储存的计次操作的结果清零(S507B)。图5B实施例的方法较之图5A实施例,不同之处在于当一逻辑地址满足一校错条件时,图5B实施例的方法并不立即对其进行错误校验和校正,而是待收到下一次拷贝回存操作指令时,直接将待校错数据读出第一存储器202以进行错误校验和校正,无论错误校验显示该待校错数据是否正确,均将校错结果(已校正或无校正)写回第一存储器202中,而并不执行拷贝回存操作。图5B实施例的优势在于减少了拷贝回存操作的次数,即减少了对第一存储器202的写入次数,可延长第一存储器202的使用寿命。而图5A实施例在拷贝回存操作未出现错误(即待校错数据正确)的情形下,可略去将校错结果(无校正发生)写回第一存储器202的动作,因此图5A实施例在拷贝回存操作错误率低的情形下会显现效率。以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。附图中符号的简单说明如下IOO:与非门快闪存储器102:缓冲器202:第一存储器204:控制器206:计次模块208:校错模块210:第二存储器402:缓冲器block。、block"…、bloc、区块LBA(O)、…、LBA(p):逻辑地址m0、…、nip:计7欠记录page(i,j):页,i与j为变量。权利要求一种数据储存系统,其特征在于,包括一第一存储器,具有一拷贝回存操作;一控制器,将该第一存储器与一计次模块以及一校错模块耦接;该计次模块,对该第一存储器的多个逻辑地址的拷贝回存操作进行一计次操作,且根据上述计次操作的结果判断上述逻辑地址是否满足一校错条件;以及该校错模块,接收自该第一存储器读出的满足该校错条件的逻辑地址中的数据,并对上述满足该校错条件的逻辑地址中的数据进行校错。2.根据权利要求1所述的数据储存系统,其特征在于,该控制器还耦接一第二存储器,该第二存储器暂存上述计次操作的结果。3.根据权利要求2所述的数据储存系统,其特征在于,该控制器自该第一存储器读出上述满足该校错条件的逻辑地址中的数据,并将其暂存至该第二存储器以供该校错模块进行校错。4.根据权利要求l所述的数据储存系统,其特征在于,上述计次操作包括计数上述各逻辑地址发生拷贝回存操作的次数,其中,拷贝回存操作发生次数超过一上限值的逻辑地址即满足上述校错条件。5.根据权利要求l所述的数据储存系统,其特征在于,上述计次操作包括于每次拷贝回存操作发生时,根据一概率为对应的逻辑地址设定一频度标示,其中,上述频度标示满足一特定值的逻辑地址即满足上述校错条件。6.根据权利要求1所述的数据储存系统,其特征在于,该第一存储器为与非门快闪存储器。7.—种数据储存方法,其特征在于,用以控制具有拷贝回存操作的一第一存储器,该数据储存方法包括对该第一存储器的多个逻辑地址的拷贝回存操作进行一计次操作;根据上述计次操作的结果判断上述逻辑地址是否满足一校错条件;以及接收自该第一存储器读出的满足该校错条件的逻辑地址中的数据,并对满足该校错条件的逻辑地址中的数据进行校错。8.根据权利要求7所述的数据储存方法,其特征在于,在上述校错步骤之后还包括将上述计次操作的结果清零。9.根据权利要求7所述的数据储存方法,其特征在于,上述计次操作包括计数上述各逻辑地址发生拷贝回存操作的次数,其中,拷贝回存操作发生次数超过一上限值的逻辑地址即满足上述校错条件。10.根据权利要求7所述的数据储存方法,其特征在于,上述计次操作包括于每次拷贝回存操作发生时,根据一概率为对应的逻辑地址设定一频度标示,其中,上述频度标示满足一特定值的逻辑地址即满足上述校错条件。11.根据权利要求7所述的数据储存方法,其特征在于,上述校错步骤还包括自该第一存储器读出一待校错数据,并将其暂存至一第二存储器以进行校错,其中,该待校错数据即满足上述校错条件的逻辑地址中的数据。12.根据权利要求ll所述的数据储存方法,其特征在于,上述校错步骤还包括判断该待校错数据是否错误,如果错误,则对该待校错数据进行校正,并将一校错结果写回该第一存储器。13.根据权利要求12所述的数据储存方法,其特征在于,上述校错步骤于最近一次拷贝回存操作执行后实施,如果判断到该待校错数据正确,则不执行将该校错结果写回该第一存储器的操作。14.根据权利要求12所述的数据储存方法,其特征在于,上述校错步骤于最近一次拷贝回存操作执行前实施,如果判断到该待校错数据正确,则将未经校正的该待校错数据写回该第一存储器,且该最近一次拷贝回存操作被略过不执行。全文摘要本发明公开一种数据储存系统与方法。数据储存系统包括一第一存储器、一控制器、一计次模块以及一校错模块。第一存储器具有一拷贝回存操作。控制器负责将第一存储器耦接计次模块、校错模块以及第二存储器。计次模块对第一存储器的多个逻辑地址的拷贝回存操作进行一计次操作,且据以判断上述逻辑地址是否满足一校错条件。校错模块接收自第一存储器读出的满足校错条件的逻辑地址中的数据,并对满足校错条件的逻辑地址中的数据进行校错。本发明可对拷贝回存操作的数据进行校错,从而避免拷贝错误。文档编号G06F11/10GK101699406SQ200910212398公开日2010年4月28日申请日期2009年11月12日优先权日2009年11月12日发明者张博,柴红刚,陈亮申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1