与非闪存单元的数据处理方法

文档序号:6382108阅读:154来源:国知局
专利名称:与非闪存单元的数据处理方法
与非闪存单元的数据处理方法技术领域
本发明涉及存储器领域,尤其涉及一种与非闪存单元的数据处理方法。背景技术
Nand Flash(与非闪存)在存储器领域已经得到了广泛应用。与非闪存的存储阵列中通常包括若干个块(block),比如1024、2048、4096或其他数目个block,每个block包括有若干个页(Page),比·如128、256、512或其他数目个Page,每个page具有一定的字节数,比如256、512、1024或其他数目的字节数。
与非闪存的读/写操作的最小单位是page,擦除(Erage)操作的最小单位为 block。此外,与非闪存的另一个特性为同一个page如需重复写,贝U必须擦除该page所在的整个块。需要注意的是,此处的擦除操作不同于普通应用中的删除操作,删除操作只是删除了文件链表,实际在相应的页中的数据还是存在的,这里的擦除是指将整个块的数据完全清除。在对与非闪存的实际写的过程中,为了提高速度以及有些小文件,导致不是每次都把一个块里面的所有页全写满的,这样过一段时间后,所有的块都有数据了,其实可能每个块里面还有很多的“空页”,这样形成了很多“碎片”,特别是对数据删除的操作多了之后“碎片”更容易出现。
由于与非闪存采用的是块擦除操作,因此需要经常对与非闪存中的存储空间进行整理,即需要对与非闪存进行“Merge (合并)”操作。所述合并操作的一个关键步骤就是将一个源页(source page)中的数据搬运至一个目的页(destination page)中。这样,经过多次操作,可以将不同块(block)中分布的多页(page)零散有效数据,搬运到同一个块 (block)中的不同页(page)中,从而使这几个不同的块空间可以被释放。
现有技术中有两种方式可以执行实现上述数据转移的操作,第一种是读/写 (Read/Write,简称R/W)方式,第二种是内拷贝(Copyback)方式。所述R/W方式就是先将与非闪存单元中的源页中的数据读取至闪存控制器中,随后利用闪存控制器中的错误校正码(Error Correcting Code,简称ECC)处理电路对读出的数据进行校正,随后所述闪存控制器再将校正后的数据写入与非闪存单元中的目的页中。很显然,这种R/W方式由于需要将数据搬移至闪存控制器而操作时间较长,效率较低。所述Copyback方式就是将与非闪存单元中的源页中的数据读入与非闪存单元中的页缓存(page register),之后再将页缓存内的数据写入与非闪存单元中的目的页内,这样相对于R/W方式,其去掉了数据读出至闪存控制器,再由闪存控制器写入的时间,因此操作时间较短,效率较高。但是,用CopyBack 方式搬移数据由于没有经过ECC处理电路的校正,因此会累积误码,数据在多次CopyBack 操作后,可能会累积更多错误而最终出错。
因此,本发明希望提出一种改进的技术方案来克服上述技术问题。
发明内容
本发明要解决的技术问题在于提供一种与非闪存单元的数据处理方法,其可以发挥内拷贝方式的速度快的优势,又能及时打断误码的累积以避免错误。
为了解决上述问题,根据本发明的一个方面,本发明提供了一种与非闪存单元的数据处理方法,该与非闪存单元内记录有其存储阵列中的各个页内的数据的内拷贝次数, 其包括请求将所述存储阵列中的一个源页内的数据拷贝至一个目的页内;获取记录的源页内的数据的内拷贝次数;根据所述源页内的数据的内拷贝次数判断是采用内拷贝方式还是采用读/写方式将所述源页内的数据拷贝至所述目的页内;如果采用内拷贝方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为所述源页的数据的内拷贝次数加一步长值,如果采用读/写方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为一初始值。
与现有技术相比,在本发明中,其可以根据源页内的数据经过内拷贝次数来选择读/写方式或内拷贝方式中的一种对源页内的数据进行操作,可以发挥内拷贝方式的速度快的优势,又能及时采用读/写方式打断误码的累积。
关于本发明的其他目的,特征以及优点,下面将结合附图在具体实施方式
中详细描述。

结合参考附图及接下来的详细描述,本发明将更容易理解,其中同样的附图标记对应同样的结构部件,其中
图1为本发明中的与非闪存装置在一个实施例中的结构框图2为本发明中的存储阵列中的一个页的存储结构示例图;
图3为本发明中的存储有各个页内的数据的内拷贝次数的页表的示例图4为本发明中的与非闪存单元的数据处理方法在一个实施例中的流程示意图5为图4中的内拷贝步骤在一个实施例中的流程示意图;和
图6为图4中的读/写步骤在一个实施例中的流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
本发明的详细描述主要通过程序、步骤、逻辑块、过程或其他象征性的描述来呈现,其直接或间接地模拟本发明中的技术方案的运作。所属领域内的技术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。
此处所称的“一个实施例”或“实施例”是指与所述实施例相关的特定特征、结构或特性至少可包含于本发明至少一个实现方式中。在本说明书中不同地方出现的“在一个实施例中”并非必须都指同一个实施例,也不必须是与其他实施例互相排斥的单独或选择实施例。此外,表示一个或多个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。
本发明既要利用内拷贝(Copyback)方式的速度优势,又要及时利用读/写(R/W) 方式打断误码的累积,从而可以提高与非闪存(NADN)装置中合并(Merge)操作的效率,提升整体系统的性能。
图1为本发明中的与非闪存(NADN FLASH)装置I 00在一个实施例中的结构框图。 如图1所示,所述与非闪存装置100包括闪存控制器110和与非闪存单元120。
所述闪存控制器110可以与主机进行交互,并对所述与非闪存单元120进行管理控制,所述闪存控制器110包括有错误校正码(Error Correcting Code)处理电路111。所述与非闪存单元120包括有存储阵列121和页缓存122 (pageregister)。所述存储阵列121 通常包括若干个块(block),比如1024、2048、4096或其他数目个block,每个block包括有若干个页(Page),比如128、256、512或其他数目个Page,每个page具有一定的字节数,比如256、512、1024或其他数目的字节数。
图4为本发明中的与非闪存单元的数据处理方法400在一个实施例中的流程示意图。所述数据处理方法400主要用于与非闪存单元120的合并(merge)操作中,其可以将存储阵列121中的一个源页(source page)内的数据拷贝(copy)至一个目的页(destination page)内。在进行数据搬运时,需要搬出数据的页被称为源页,需要搬入数据的页被称为目的页,对于每次数据搬运,其都对应有自己的源页和目的页。
如图4所示,所述数据处理方法400包括如下操作。
步骤410,请求将所述存储阵列121中的一个源页内的数据拷贝至一个目的页内。
所述与非闪存装置100通常与主机(比如计算机或智能手机等设备)配合使用。 在使用过程中,需要进行合并操作或其它需要将一个页内的数据搬运至另一个页的操作时,所述闪存控制器120或主机会请求将所述存储阵列121中的一个源页内的数据拷贝至一个目的页内。
步骤420,获取记录的源页内的数据的内拷贝次数。
在本发明中,为了了解数据进行内拷贝的次数情况,可以对存储阵列121中的可能进行数据搬运的页都记录其 内数据的内拷贝次数。
图2示出了存储阵列121中的一个页的存储结构示例图,每个页都包括有有效负荷区(payload Bytes)和冗余区(Redundant Bytes),所述有效负荷区可以存储有效负荷数据,所述冗余区可以存储冗余数据,所述冗余数据包括错误校正码数据、页/块映射数据和擦除/合并数据。在一个实施例中,每个页的数据的内拷贝次数可以记录在擦除/合并数据中,在使用所述与非闪存装置100时,可以将从各个页中的冗余区中读取出相应的数据以形成一个页表,该页表中存储有各个页内的数据的内拷贝次数,这样从该页表中可以获取其记录的任意一个页的数据的内拷贝次数。
在另一个实施例中,也可以直接建立页表,并将该表存储到存储阵列的某个位置, 在使用所述与非闪存装置100时,可以读出该页表,这样从该页表中可以获取其记录的任意一个页的数据的内拷贝次数。如图3所示,其示意性的示出了该页表,该列表有记录有η 个块(分别为Β1、Β2、Βη)每个块的m个页(分别为P1、P2、Pm)内的数据的内拷贝次数。
步骤430,判断所述源页内的数据的内拷贝次数是否小于一预定阈值,如果是,则进入步骤440,否则,则进入步骤450。
由于与非闪存的特性,每次在一个页内写数据都会有一定的误码率(BitEiror,单位为bit/page),这个误码率总是存在于一定的范围内,这里可以将最大误码率记为Y,而 ECC处理电路111的容错能力(bit/page)通常是一定的,其可以记为X。在一个实施例中, 可以根据ECC处理电路111的容错能力X和页的误码率Y计算得到所述预定阈值N。
具体的,N为小于X/Y-1的整数,比如X=48bit/page, Y=5bit/page,那么N可以为 小于等于8的整数。假如Y=5bit/page,那么经过10次copyback之后,页的误码率就累积 至少50bit/page,再加上第一次写入一个页(不计算在copyback次数内)的误码率5bit, 那么将高达55bit/page,超出了 ECC处理电路111的容错能力48bit/page,因此需要限定 copyback次数。假如经过8次copyback之后,页的误码率就累积至少Y*8=40bit/page, 再加上第一次写入一个页(不计算在copyback次数内)的误码率5bit,那么达到45bit/ page,如果再经过一次copyback之后那么将超出ECC处理电路111的容错能力,因此在内 拷贝次数等于8时则需要采用R/W方式操作。
在一个优选的实施例中,预定阈值N等于X/Y-1的整数。
步骤440,采用内拷贝方式将所述源页内的数据拷贝至所述目的页内,其也可以简 称为内拷贝操作。
在一个实施例中,如图5所示,所述内拷贝操作包括如下操作。
步骤441,闪存控制器110发送内拷贝命令给所述与非闪存单元120,该内拷贝命 令包括有源页的地址和目的页的地址。
步骤442,所述与非闪存单元120根据所述内拷贝命令将所述源页内的数据读出 至页缓存122中。步骤443,所述与非闪存单元120再将所述页缓存中的数据写入所述目的页中。 这样就完成了一次读/写操作,可以采用同样的方法来完成多个读/写操作。 步骤450,采用读/写方式将所述源页内的数据拷贝至所述目的页内,其也可以简 写操作。在一个实施例中,如图6所示,所述读/写操作包括如下操作。步骤451,闪存控制器110发送读命令给所述与非闪存单元120,该读命令包括有步骤452,所述与非闪存单元120根据所述读命令将所述源页内的数据读出至页 步骤453,所述与非闪存单元120将所述页缓存中的数据读出至所述闪存控制器
称为读
源页的地址。
缓存中,
110 中。
步骤454,所述闪存控制器110中的错误校正码处理电路11对读入所述闪存控制 器内的数据进行校正。
步骤455,所述闪存控制器110发送写命令给所述与非闪存单元120,该写命令包 括有目的页的地址。
步骤456,所述闪存控制器110将校正后的数据写入至所述页缓存中。
步骤457,所述闪存控制器110再将所述页缓存中的数据写入至所述目的页中。
这样就完成了一次读/写操作,可以采用同样的方法来完成多个读/写操作。
所述方法经过步骤440后,进入步骤460,更新目的页内的数据的内拷贝次数,具 体为将所述目的页内的数据的内拷贝次数记录为所述源页的数据的内拷贝次数加一步长 值S。典型的,该步长值S为I。举例来说,假如数据采用内拷贝方式由Pagel (源页)拷贝 到Page2 (目的页),记录的Pagel内的数据的内拷贝次数为Zps,那么目的页Page2内的数 据的内拷贝次数将被记录为Zpd=Zps+S。
所述方法经过步骤450后,进入步骤470,更新目的页内数据的内拷贝次数,具体为将所述目的页内的数据的内拷贝次数记录为一初始值Z0,即表示目前该目的页内的数据的内拷贝次数为零。典型的,所述初始值为O。
综上所述,本发明可以追踪每个页内的数据的内拷贝次数,从而可以充分利用内拷贝操作的优势,同时也不会利用读/写操作及时打断内拷贝操作累积的误码率,从而可以避免过多次的内拷贝操作而导致的数据出错的问题。
在一个示例中,Copyback操作的实测的处理时间Tc=L lms/Page,R/W实测的处理时间Trw=L 56ms/Page,两者相差还是较大的,因此更多次的利用内内拷贝操作可以提升整个系统的性能和效率。
上文对本发明进行了足够详细的具有一定特殊性的描述。所属领域内的普通技术人员应该理解,实施例中的描述仅仅是示例性的,在不偏离本发明的真实精神和范围的前提下做出所有改变都应该属于本发明的保护范围。本发明所要求保护的范围是由所述的权利要求书进行限定的,而不是由实施例中的上述描述来限定的。
权利要求
1.一种与非闪存单元的数据处理方法,其特征在于,该与非闪存单元内记录有其存储阵列中的各个页内的数据的内拷贝次数,其包括 请求将所述存储阵列中的一个源页内的数据拷贝至一个目的页内; 获取记录的源页内的数据的内拷贝次数; 根据所述源页内的数据的内拷贝次数判断是采用内拷贝方式还是采用读/写方式将所述源页内的数据拷贝至所述目的页内; 如果采用内拷贝方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为所述源页的数据的内拷贝次数加一步长值,如果采用读/写方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为一初始值。
2.根据权利要求I所述的与非闪存单元的数据处理方法,其特征在于,根据所述源页内的数据的内拷贝次数判断是采用内拷贝方式还是采用读/写方式将所述源页内的数据拷贝至所述目的页内包括 判断所述源页内的数据的内拷贝次数是否大于或等于一预定阈值,如果是,则采用采用读/写方式将所述源页内的数据拷贝至所述目的页内,否则,则采用内拷贝方式将所述源页内的数据拷贝至所述目的页内。
3.根据权利要求2所述的与非闪存单元的数据处理方法,其特征在于,根据错误校正码处理电路的容错能力和与非闪存单元的页的误码率计算得到所述预定阈值。
4.根据权利要求3所述的与非闪存单元的数据处理方法,其特征在于,所述步长值为I,所述初始值为O。
5.根据权利要求I所述的与非闪存单元的数据处理方法,其特征在于,所述存储阵列中的每个页包括有效负荷数据和冗余数据,所述冗余数据中记录有该对应页内的数据的内拷贝次数。
6.根据权利要求I所述的与非闪存单元的数据处理方法,其特征在于,在存储阵列中存储有一个页表,该页表中记录有各个页内的数据的内拷贝次数。
7.根据权利要求1-6任一所述的与非闪存单元的数据处理方法,其特征在于,所述以内拷贝方式将所述源页内的数据拷贝至所述目的页内包括 闪存控制器发送内拷贝命令给所述与非闪存单元,该内拷贝命令包括有源页的地址和目的页的地址; 所述与非闪存单元根据所述内拷贝命令将所述源页内的数据读出至页缓存中,之后再将所述页缓存中的数据写入所述目的页中。
8.根据权利要求7所述的与非闪存单元的数据处理方法,其特征在于,所述以读/写方式将所述源页内的数据拷贝至所述目的页内包括 闪存控制器发送读命令给所述与非闪存单元,该读命令包括有源页的地址; 所述与非闪存单元根据所述读命令将所述源页内的数据读出至页缓存中,之后将所述页缓存中的数据读出至所述闪存控制器中; 所述闪存控制器中的错误校正码处理电路对读入所述闪存控制器内的数据进行校正; 所述闪存控制器发送写命令给所述与非闪存单元,该写命令包括有目的页的地址;和所述闪存控制器将校正后的 数据写入至所述页缓存中,之后再将所述页缓存中的数据写入至所述目的页中。
全文摘要
本发明公开了一种与非闪存单元的数据处理方法,其包括请求将所述存储阵列中的一个源页内的数据拷贝至一个目的页内;获取记录的源页内的数据的内拷贝次数;根据所述源页内的数据的内拷贝次数判断是采用内拷贝方式还是采用读/写方式将所述源页内的数据拷贝至所述目的页内;如果采用内拷贝方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为所述源页的数据的内拷贝次数加一步长值,如果采用读/写方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为一初始值。这样,既可以发挥内拷贝方式的速度快的优势,又能及时采用读/写方式打断误码的累积。
文档编号G06F11/08GK102981780SQ20121048077
公开日2013年3月20日 申请日期2012年11月21日 优先权日2012年11月21日
发明者付建云, 奚靖, 卢丹华, 徐建辉, 麻伟建 申请人:杭州华澜微科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1