CN102981780B - 与非闪存单元的数据处理方法 - Google Patents

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

Info

Publication number
CN102981780B
CN102981780B CN201210480776.9A CN201210480776A CN102981780B CN 102981780 B CN102981780 B CN 102981780B CN 201210480776 A CN201210480776 A CN 201210480776A CN 102981780 B CN102981780 B CN 102981780B
Authority
CN
China
Prior art keywords
page
data
copy
memory unit
flash memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210480776.9A
Other languages
English (en)
Other versions
CN102981780A (zh
Inventor
付建云
奚靖
卢丹华
徐建辉
麻伟建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAGE MICROELECTRONICS CORP.
Original Assignee
HANGZHOU SAGE MICROELECTRONICS TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HANGZHOU SAGE MICROELECTRONICS TECHNOLOGY Co Ltd filed Critical HANGZHOU SAGE MICROELECTRONICS TECHNOLOGY Co Ltd
Priority to CN201210480776.9A priority Critical patent/CN102981780B/zh
Publication of CN102981780A publication Critical patent/CN102981780A/zh
Application granted granted Critical
Publication of CN102981780B publication Critical patent/CN102981780B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种与非闪存单元的数据处理方法,其包括:请求将所述存储阵列中的一个源页内的数据拷贝至一个目的页内;获取记录的源页内的数据的内拷贝次数;根据所述源页内的数据的内拷贝次数判断是采用内拷贝方式还是采用读/写方式将所述源页内的数据拷贝至所述目的页内;如果采用内拷贝方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为所述源页的数据的内拷贝次数加一步长值,如果采用读/写方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为一初始值。这样,既可以发挥内拷贝方式的速度快的优势,又能及时采用读/写方式打断误码的累积。

Description

与非闪存单元的数据处理方法
【技术领域】
本发明涉及存储器领域,尤其涉及一种与非闪存单元的数据处理方法。
【背景技术】
Nand Flash(与非闪存)在存储器领域已经得到了广泛应用。与非闪存的存储阵列中通常包括若干个块(block),比如1024、2048、4096或其他数目个block,每个block包括有若干个页(Page),比如128、256、512或其他数目个Page,每个page具有一定的字节数,比如256、512、1024或其他数目的字节数。
与非闪存的读/写操作的最小单位是page,擦除(Erage)操作的最小单位为block。此外,与非闪存的另一个特性为同一个page如需重复写,则必须擦除该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)装置1 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所示,其示意性的示出了该页表,该列表有记录有n个块(分别为B1、B2、Bn)每个块的m个页(分别为P1、P2、Pm)内的数据的内拷贝次数。
步骤430,判断所述源页内的数据的内拷贝次数是否小于一预定阈值,如果是,则进入步骤440,否则,则进入步骤450。
由于与非闪存的特性,每次在一个页内写数据都会有一定的误码率(BitError,单位为: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为1。举例来说,假如数据采用内拷贝方式由Page1(源页)拷贝到Page2(目的页),记录的Page1内的数据的内拷贝次数为Zps,那么目的页Page2内的数据的内拷贝次数将被记录为Zpd=Zps+S。
所述方法经过步骤450后,进入步骤470,更新目的页内数据的内拷贝次数,具体为将所述目的页内的数据的内拷贝次数记录为一初始值Z0,即表示目前该目的页内的数据的内拷贝次数为零。典型的,所述初始值为0。
综上所述,本发明可以追踪每个页内的数据的内拷贝次数,从而可以充分利用内拷贝操作的优势,同时也不会利用读/写操作及时打断内拷贝操作累积的误码率,从而可以避免过多次的内拷贝操作而导致的数据出错的问题。
在一个示例中,Copyback操作的实测的处理时间Tc=1.1ms/Page,R/W实测的处理时间Trw=1.56ms/Page,两者相差还是较大的,因此更多次的利用内内拷贝操作可以提升整个系统的性能和效率。
上文对本发明进行了足够详细的具有一定特殊性的描述。所属领域内的普通技术人员应该理解,实施例中的描述仅仅是示例性的,在不偏离本发明的真实精神和范围的前提下做出所有改变都应该属于本发明的保护范围。本发明所要求保护的范围是由所述的权利要求书进行限定的,而不是由实施例中的上述描述来限定的。

Claims (8)

1.一种与非闪存单元的数据处理方法,其特征在于,该与非闪存单元内记录有其存储阵列中的各个页内的数据的内拷贝次数,其包括:
请求将所述存储阵列中的一个源页内的数据拷贝至一个目的页内;
获取记录的源页内的数据的内拷贝次数;
根据所述源页内的数据的内拷贝次数判断是采用内拷贝方式还是采用读/写方式将所述源页内的数据拷贝至所述目的页内;
如果采用内拷贝方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为所述源页的数据的内拷贝次数加一步长值,如果采用读/写方式将所述源页内的数据拷贝至所述目的页内,那么将所述目的页内的数据的内拷贝次数记录为一初始值。
2.根据权利要求1所述的与非闪存单元的数据处理方法,其特征在于,根据所述源页内的数据的内拷贝次数判断是采用内拷贝方式还是采用读/写方式将所述源页内的数据拷贝至所述目的页内包括:
判断所述源页内的数据的内拷贝次数是否大于或等于一预定阈值,如果是,则采用采用读/写方式将所述源页内的数据拷贝至所述目的页内,否则,则采用内拷贝方式将所述源页内的数据拷贝至所述目的页内。
3.根据权利要求2所述的与非闪存单元的数据处理方法,其特征在于,根据错误校正码处理电路的容错能力和与非闪存单元的页的误码率计算得到所述预定阈值。
4.根据权利要求3所述的与非闪存单元的数据处理方法,其特征在于,所述步长值为1,所述初始值为0。
5.根据权利要求1所述的与非闪存单元的数据处理方法,其特征在于,所述存储阵列中的每个页包括有效负荷数据和冗余数据,所述冗余数据中记录有对应页内的数据的内拷贝次数。
6.根据权利要求1所述的与非闪存单元的数据处理方法,其特征在于,在存储阵列中存储有一个页表,该页表中记录有各个页内的数据的内拷贝次数。
7.根据权利要求1-6任一所述的与非闪存单元的数据处理方法,其特征在于,所述采用内拷贝方式将所述源页内的数据拷贝至所述目的页内包括:
闪存控制器发送内拷贝命令给所述与非闪存单元,该内拷贝命令包括有源页的地址和目的页的地址;
所述与非闪存单元根据所述内拷贝命令将所述源页内的数据读出至页缓存中,之后再将所述页缓存中的数据写入所述目的页中。
8.根据权利要求7所述的与非闪存单元的数据处理方法,其特征在于,所述采用读/写方式将所述源页内的数据拷贝至所述目的页内包括:
闪存控制器发送读命令给所述与非闪存单元,该读命令包括有源页的地址;
所述与非闪存单元根据所述读命令将所述源页内的数据读出至页缓存中,之后将所述页缓存中的数据读出至所述闪存控制器中;
所述闪存控制器中的错误校正码处理电路对读入所述闪存控制器内的数据进行校正;
所述闪存控制器发送写命令给所述与非闪存单元,该写命令包括有目的页的地址;和
所述闪存控制器将校正后的数据写入至所述页缓存中,之后再将所述页缓存中的数据写入至所述目的页中。
CN201210480776.9A 2012-11-21 2012-11-21 与非闪存单元的数据处理方法 Active CN102981780B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210480776.9A CN102981780B (zh) 2012-11-21 2012-11-21 与非闪存单元的数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210480776.9A CN102981780B (zh) 2012-11-21 2012-11-21 与非闪存单元的数据处理方法

Publications (2)

Publication Number Publication Date
CN102981780A CN102981780A (zh) 2013-03-20
CN102981780B true CN102981780B (zh) 2015-05-06

Family

ID=47855856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210480776.9A Active CN102981780B (zh) 2012-11-21 2012-11-21 与非闪存单元的数据处理方法

Country Status (1)

Country Link
CN (1) CN102981780B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762976A (zh) * 2018-05-30 2018-11-06 郑州云海信息技术有限公司 一种读取纠删码数据的方法、装置和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079322A (zh) * 2006-03-31 2007-11-28 三星电子株式会社 多位存储装置和存储系统
KR20080114208A (ko) * 2007-06-27 2008-12-31 주식회사 하이닉스반도체 에러 정정 기능을 갖는 불휘발성 메모리 장치의 카피투프로그램방법
KR20100006660A (ko) * 2008-07-10 2010-01-21 주식회사 하이닉스반도체 불휘발성 메모리 장치의 듀얼 플레인 카피백 방법
CN101763904A (zh) * 2008-12-24 2010-06-30 海力士半导体有限公司 非易失性存储装置及其操作方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120119321A (ko) * 2011-04-21 2012-10-31 에스케이하이닉스 주식회사 반도체 메모리 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079322A (zh) * 2006-03-31 2007-11-28 三星电子株式会社 多位存储装置和存储系统
KR20080114208A (ko) * 2007-06-27 2008-12-31 주식회사 하이닉스반도체 에러 정정 기능을 갖는 불휘발성 메모리 장치의 카피투프로그램방법
KR20100006660A (ko) * 2008-07-10 2010-01-21 주식회사 하이닉스반도체 불휘발성 메모리 장치의 듀얼 플레인 카피백 방법
CN101763904A (zh) * 2008-12-24 2010-06-30 海力士半导体有限公司 非易失性存储装置及其操作方法

Also Published As

Publication number Publication date
CN102981780A (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
US11175984B1 (en) Erasure coding techniques for flash memory
TWI639917B (zh) 資料儲存裝置及映射表重建方法
CN104750615B (zh) 数据储存装置以及快闪存储器控制方法
CN109871333B (zh) 存取闪存模块的方法及相关的闪存控制器与电子装置
US7761655B2 (en) Storage system and method of preventing deterioration of write performance in storage system
US10061710B2 (en) Storage device
US9778986B2 (en) Storage system
KR102198609B1 (ko) 모바일 장치 및 그것의 동작 방법
US10942849B2 (en) Use of a logical-to-logical translation map and a logical-to-physical translation map to access a data storage device
US20110231713A1 (en) Flash memory module
EP3352071B1 (en) Data check method and storage system
US20130346829A1 (en) Flash memory device and storage control method
CN103995784A (zh) 快闪存储器控制器与存储装置以及快闪存储器控制方法
US11029857B2 (en) Offloading device maintenance to an external processor in low-latency, non-volatile memory
CN103164342A (zh) 数据可用性的挂载时协调
US20110320689A1 (en) Data Storage Devices and Data Management Methods for Processing Mapping Tables
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
CN104021089A (zh) 快闪存储器控制芯片与存储装置以及快闪存储器控制方法
KR20130069364A (ko) 비휘발성 반도체 기억 장치 및 그 관리 방법
US9043675B2 (en) Storage device
TWI744049B (zh) 記憶體控制器與資料處理方法
KR20200058867A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 블록의 반복 접근을 줄이는 방법 및 장치
KR101369408B1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
CN102981780B (zh) 与非闪存单元的数据处理方法
CN105404475A (zh) MCU片内小容量flash的存储管理系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HANGZHOU SAGE MICROELECTRONICS, CORP.

Free format text: FORMER NAME: HANGZHOU SAGE MICROELECTRONICS CO., LTD.

CP03 Change of name, title or address

Address after: Hangzhou City, Zhejiang province 311200 Xiaoshan District Road No. 66 Building No. 1 building 22 layer Huarui Center

Patentee after: SAGE MICROELECTRONICS CORP.

Address before: Hangzhou City, Zhejiang province 311202 Xiaoshan District Road No. 66 Building No. 1 building 22 layer Huarui Center

Patentee before: Hangzhou Sage Microelectronics Technology Co., Ltd.