1、(10)申请公布号 CN 103116549 A(43)申请公布日 2013.05.22CN103116549A*CN103116549A*(21)申请号 201310000414.X(22)申请日 2013.01.04G06F 12/02(2006.01)(71)申请人苏州懿源宏达知识产权代理有限公司地址 215100 江苏省苏州市苏州工业园区淞江路208号8幢112室(72)发明人王媛媛(54) 发明名称基于最大可擦除次数的闪存存储方法(57) 摘要一种闪存存储方法,所述闪存包括第一存储单元和第二存储单元,第一存储单元和第二存储单元均包括具有相同大小的多个存储块,所述多个存储块用于存储待存
2、储数据,其中第一存储单元的最大可擦写次数为M,第二存储单元的最大可擦写次数为N,其中MN,所述方法包括:接收待存储数据;根据第一存储单元的最大可擦写次数M、第二存储单元的最大可擦写次数N、第一存储单元的循环次数X和第二存储单元的循环次数Y,确定需要存储待存储数据的存储单元;将所述待存储数据存储到所确定的存储单元中。其中每当第一存储单元中的所有块都被擦除一次则X加1,每当第二存储单元中的所有块都被擦除一次则Y加1。(51)Int.Cl.权利要求书1页 说明书5页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书5页 附图2页(10)申请公布号 CN 1031
3、16549 ACN 103116549 A1/1页21.一种闪存存储方法,所述闪存包括第一存储单元和第二存储单元,第一存储单元和第二存储单元均包括具有相同大小的多个存储块,所述多个存储块用于存储待存储数据,其中第一存储单元的最大可擦写次数为M,第二存储单元的最大可擦写次数为N,其中MN,所述方法包括:接收待存储数据;根据第一存储单元的最大可擦写次数M、第二存储单元的最大可擦写次数N、第一存储单元的循环次数X和第二存储单元的循环次数Y,确定需要存储待存储数据的存储单元;将所述待存储数据存储到所确定的存储单元中。其中每当第一存储单元中的所有块都被擦除一次则X加1,每当第二存储单元中的所有块都被擦除
4、一次则Y加1。2.根据权利要求1的方法,其中将待存储数据存储到所述第一存储单元中包括:待存储数据被顺序地存储到第一存储单元中的L个存储块中,其中L根据待存储数据的大小和存储块的大小确定;具体地,根据第一指针找到第一存储单元中最后存储数据的存储块,将待存储数据存储到第一存储单元中最后存储数据的存储块之后的连续的L个存储块中。3.根据权利要求2的方法,在第一存储单元中存储了待存储数据后,修改第一指针,使得所述第一指针指示第一存储单元中最后存储数据的存储块。4.根据权利要求1的方法,其中当在第一存储单元的最后一个存储块中存储数据后,如果还有需要存储的数据,则接着在第一存储单元的第一个存储块中继续存储
5、数据。5.根据权利要求4的方法,其中当在第一存储单元的最后一个存储块中存储数据后,X加1。6.根据权利要求1的方法,其中将待存储数据存储到所述第二存储单元中包括:待存储数据被顺序地存储到第二存储单元中的L个存储块中,其中L根据待存储数据的大小和存储块的大小确定;具体地,根据第二指针找到第二存储单元中最后存储数据的存储块,将待存储数据存储到第二存储单元中最后存储数据的存储块之后的连续的L个存储块中。7.根据权利要求6的方法,在第二存储单元中存储了待存储数据后,修改第二指针,使得所述第二指针指示第二存储单元中最后存储数据的存储块。8.根据权利要求1的方法,其中当在第二存储单元的最后一个存储块中存储
6、数据后,如果还有需要存储的数据,则接着在第二存储单元的第一个存储块中继续存储数据。9.根据权利要求8的方法,其中当在第二存储单元的最后一个存储块中存储数据后,Y加1。10.根据权利要求1-9中任意权利要求的方法,其中所述第一存储单元和所述第二存储单元中的存储块的大小为64KB。权 利 要 求 书CN 103116549 A1/5页3基于最大可擦除次数的闪存存储方法技术领域0001 本发明涉及数据存储领域,特别涉及一种基于最大可擦除次数的闪存存储方法。背景技术0002 在服务器设备与终端设备之间或计算机设备内部装置之间进行数据传送时,特别需要用到存储设备作为缓冲设备。目前比较常见存储设备有闪存闪
7、存和电可擦写可编程只读存储器(EEPROM),这两种存储设备分别具有以下优缺点:0003 首先,闪存的优点是容量大且价格低;缺点是擦写速度慢,而且必须先擦后写,每次擦除的最小单位为一个BANK,即64KB。而且单位存储空间可擦写次数少,约为10万次;0004 其次,EEPROM的缺点是容量小且价格高;优点是擦写速度快,可单个字节擦写,而且单位存储空间的可擦写次数多,可达到100万次。0005 现有的存储设备在存储数据时,一般至少有两部分数据需要存储:程序部分和用户数据部分。存储设备出厂后,程序部分一般不会再改变,除非进行软件升级,因此一般都会选择闪存作为程序部分的存储设备。而用户数据部分经常会
8、被用户修改,对存储设备的可擦写次数和稳定性有较高的要求。0006 但是,如果为考虑成本而采用闪存存储用户数据,则会存在以下问题:闪存擦写速度慢,而且大部分闪存必须以BANK(64KB)为最小擦除单位,一次擦除要100ms以上,擦除次数过多的话,势必会影响闪存存储设备的使用寿命,而且,对数据进行存储时,速度也较慢。0007 另一方面,由于不同的生产厂商的工艺、原材料的优劣,闪存设备中的存储单元的最大可擦除次数是不同的,不同擦除次数的存储单元制成闪存后,如果均匀地擦除各个不同的存储单元,会造成最大擦除次数小的存储单元会提前于其它存储单元而不能使用,特别是当不同的存储单元的最大擦除次数的差异相对较大
9、时,这个问题更加突出。发明内容0008 为了解决上述问题,本发明的一个目的在于提供一种闪存存储方法,所述闪存包括第一存储单元和第二存储单元,第一存储单元和第二存储单元均包括具有相同大小的多个存储块,所述多个存储块用于存储待存储数据,其中第一存储单元的最大可擦写次数为M,第二存储单元的最大可擦写次数为N,其中MN,所述方法包括:接收待存储数据;根据第一存储单元的最大可擦写次数M、第二存储单元的最大可擦写次数N、第一存储单元的循环次数X和第二存储单元的循环次数Y,确定需要存储待存储数据的存储单元;将所述待存储数据存储到所确定的存储单元中。其中每当第一存储单元中的所有块都被擦除一次则X加1,每当第二
10、存储单元中的所有块都被擦除一次则Y加1。0009 根据本发明的一个方面,所述闪存包括第一存储单元和第二存储单元,第一存储单元和第二存储单元均包括具有相同大小的多个存储块,所述多个存储块用于存储待存储数据,其中第一存储单元,第一存储单元的最大可擦写次数为M,第二存储单元的最大可擦写次数为N,其中MN,所述方法包括:接收待存储数据;比较X*N与Y*M,其中X为第一存说 明 书CN 103116549 A2/5页4储单元的循环次数,Y为第二存储单元的循环次数;其中每当第一存储单元中的所有存储块都被擦除一次则X加1,每当第二存储单元中的所有存储块都被擦除一次则Y加1;如果X*N小于或等于Y*M,则将待
11、存储数据存储到所述第一存储单元中,否则将待存储数据存储到所述第二存储单元中。0010 根据本发明的另一个方面,其中将待存储数据存储到所述第一存储单元中包括:待存储数据被顺序地存储到第一存储单元中的L个存储块中,其中L根据待存储数据的大小和存储块的大小确定;具体地,根据第一指针找到第一存储单元中最后存储数据的存储块,将待存储数据存储到第一存储单元中最后存储数据的存储块之后的连续的L个存储块中。0011 根据本发明的另一个方面,在第一存储单元中存储了待存储数据后,修改第一指针,使得所述第一指针指示最后存储数据的存储块。0012 根据本发明的另一个方面,其中当在第一存储单元的最后一个存储块中存储数据
12、后,如果还有需要存储的数据,则接着在第一存储单元的第一个存储块中继续存储数据。0013 根据本发明的另一个方面,其中当在第一存储单元的最后一个存储块中存储数据后,X加1。0014 根据本发明的另一个方面,其中将待存储数据存储到所述第二存储单元中包括:待存储数据被顺序地存储到第二存储单元中的L个存储块中,其中L根据待存储数据的大小和存储块的大小确定;具体地,根据第二指针找到第二存储单元中最后存储数据的存储块,将待存储数据存储到第二存储单元中最后存储数据的存储块之后的连续的L个存储块中。0015 根据本发明的另一个方面,在第二存储单元中存储了待存储数据后,修改第二指针,使得所述第二指针指示最后存储
13、数据的存储块。0016 根据本发明的另一个方面,其中当在第二存储单元的最后一个存储块中存储数据后,如果还有需要存储的数据,则接着在第二存储单元的第一个存储块中继续存储数据。0017 根据本发明的另一个方面,其中当在第二存储单元的最后一个存储块中存储数据后,X加1。0018 根据本发明的另一个方面,其中所述第一存储单元和所述第二存储单元中的存储块的大小为64KB。附图说明0019 所包括的附图用于进一步理解本发明,其作为说明书的一个组成部分并与说明书一起解释本发明的原理,在附图中:0020 图1示出了本发明闪存的结构框图;0021 图2示出了本发明一实施例的方法流程图;0022 图3示出了本发明
14、另一实施例的方法流程图;具体实施方式0023 下面参照附图进一步描述本发明的优选实施例。本发明中,所述闪存包括多个存储单元,所述多个存储单元包括多个存储块,所述多个存储块用于存储待存储数据,其中存说 明 书CN 103116549 A3/5页5储单元中的多个存储块具有相同的大小。在一特定实施例中,所述闪存包括第一存储单元和第二存储单元。所述第一存储单元具有的存储块的数量和所述第二存储单元具有的存储块的数量可以相同也可以不同。本领域技术人员知道,在本申请中待存储数据的大小远远小于闪存中多个数据存储单元中每一存储单元的存储空间。0024 附图1示出闪存存储器的结构框图,如附图1所述,闪存存储器包括
15、多个存储单元,所述多个存储单元包括多个存储块。虽然图1中存储单元和存储块都有固定数量,但是仅仅是示例性的,存储单元中和存储块可根据规格及成本的需要设定为任意数量。其中多个不同的存储单元具有不同的最大可擦写次数,也就是说不同的存储单元中的存储块具有不同的最大可擦写次数,当然,在本发明中同一存储单元中的存储块具有相同的最大可擦写次数。0025 附图2示出了根据本发明一优选实施例的闪存存储方法的流程图,所述闪存包括第一存储单元和第二存储单元,第一存储单元和第二存储单元均包括具有相同大小的多个存储块,所述多个存储块用于存储待存储数据,其中第一存储单元的最大可擦写次数为M,第二存储单元的最大可擦写次数为
16、N,其中MN,所述方法包括:接收待存储数据;根据第一存储单元的最大可擦写次数M、第二存储单元的最大可擦写次数N、第一存储单元的循环次数X和第二存储单元的循环次数Y,确定需要存储待存储数据的存储单元;将所述待存储数据存储到所确定的存储单元中。其中每当第一存储单元中的所有块都被擦除一次则X加1,每当第二存储单元中的所有块都被擦除一次则Y加1。0026 图3示出了本发明另一优选实施例,所述闪存包括第一存储单元和第二存储单元,第一存储单元和第二存储单元均包括具有相同大小的多个存储块,所述多个存储块用于存储待存储数据,其中第一存储单元,第一存储单元的最大可擦写次数为M,第二存储单元的最大可擦写次数为N,
17、其中MN,所述方法包括:接收待存储数据;比较X*N与Y*M,其中X为第一存储单元的循环次数,Y为第二存储单元的循环次数;其中每当第一存储单元中的所有块都被擦除一次则X加1,每当第二存储单元中的所有块都被擦除一次则Y加1;如果X*N小于或等于Y*M,则将待存储数据存储到所述第一存储单元中,否则将待存储数据存储到所述第二存储单元中。0027 图2和图3中的实施例,其中第一存储单元和第二存储单元具有不同的最大可擦写次数,也就是说第一存储单元中的存储块和第二存储单元中的存储块具有不同的最大可擦写次数。当然,第一存储单元中的存储块具有相同的最大可擦写次数,并且第二存储单元中的存储块具有相同的最大可擦写次
18、数。0028 图2和图3中的实施例,其中将待存储数据存储到所述第一存储单元中包括:待存储数据被顺序地存储到第一存储单元中的L个存储块中,其中L根据待存储数据的大小和存储块的大小确定;具体地,根据第一指针找到第一存储单元中最后存储数据的存储块,将待存储数据存储到第一存储单元中最后存储数据的存储块之后的连续的L个存储块中。在第一存储单元中存储了待存储数据后,修改第一指针,使得所述第一指针指示最后存储数据的存储块。其中当在第一存储单元的最后一个存储块中存储数据后,如果还有需要存储的数据,则接着在第一存储单元的第一个存储块中继续存储数据。其中当在第一存储单元的最后一个存储块中存储数据后,X加1。其中将
19、待存储数据存储到所述第二存储单元中包括:待存储数据被顺序地存储到第二存储单元中的L个存储块中,其中L根据待存储数据的说 明 书CN 103116549 A4/5页6大小和存储块的大小确定;具体地,根据第二指针找到第二存储单元中最后存储数据的存储块,将待存储数据存储到第二存储单元中最后存储数据的存储块之后的连续的L个存储块中。在第二存储单元中存储了待存储数据后,修改第二指针,使得所述第二指针指示最后存储数据的存储块。其中当在第二存储单元的最后一个存储块中存储数据后,如果还有需要存储的数据,则接着在第二存储单元的第一个存储块中继续存储数据。其中当在第二存储单元的最后一个存储块中存储数据后,Y加1。
20、其中所述第一存储单元和所述第二存储单元中的存储块的大小为64KB。0029 虽然图2和图3中示出的实施例中所述闪存存储器包括第一存储单元和第二存储单元,但是可根据需要设置第三存储单元、第四存储单元甚至更多的存储单元。如同上述包括第一存储单元和第二存储单元的闪存存储器的存储方法,根据各个存储单元的最大可擦除次数及各个存储单元的循环次数确定将要存储待存储数据的存储单元。0030 图2和图3中的实施例,其中将待存储数据存储到所述第一存储单元中包括:待存储数据被顺序地存储到第一存储单元中的L个存储块中,其中L根据待存储数据的大小和存储块的大小确定;具体地,根据第一指针找到第一存储单元中最后存储数据的存
21、储块,将待存储数据存储到第一存储单元中最后存储数据的存储块之后的连续的L个存储块中。具体地,所述第一指针指示第一存储单元中最后存储数据的存储块,其中所述第一存储单元中的所有存储块顺序排列并且由第一地址映射表标识所有块的物理地址,根据所述第一地址映射表顺序访问或存储所有存储块。例如当待存储数据的大小为1024KB,而每一存储块的大小为64KB,则将待存储数据划分为16个数据块;将待存储数据存储到第一存储单元的16个存储块中,所有16个存储块由所述第一地址映射表确定;由于第一指针指示第一存储单元中最后存储数据的存储块,根据第一指针找到第一存储单元中最后存储数据的存储块,由于第一存储单元中的所有存储
22、块顺序排列,在第一地址映射表中找到最后存储数据的存储块的下一个存储块并作为所述16个存储块中的第一个存储块,接着在第一地址映射表中找到第一个存储块的下一个存储块并作为所述16个存储块中的第二个存储块,依次类推,确定所述16个存储块。0031 图2和图3中的实施例,其中将待存储数据存储到所述第二存储单元中包括:待存储数据被顺序地存储到第二存储单元中的L个存储块中,其中L根据待存储数据的大小和存储块的大小确定;具体地,根据第二指针找到第二存储单元中最后存储数据的存储块,将待存储数据存储到第二存储单元中最后存储数据的存储块之后的连续的L个存储块中。具体地,所述第二指针指示第二存储单元中最后存储数据的
23、存储块,其中所述第二存储单元中的所有存储块顺序排列并且由第二地址映射表标识所有存储块的物理地址,根据所述第二地址映射表顺序访问或存储所有存储块。例如当待存储数据的大小为1024KB,而每一存储块的大小为64KB,则将待存储数据划分为16个数据块;将待存储数据存储到第二存储单元的16个存储块中,所有16个存储块由所述第二地址映射表确定;由于第二指针指示第二存储单元中最后存储数据的存储块,根据第二指针找到第二存储单元中最后存储数据的存储块,由于第二存储单元中的所有存储块顺序排列,在第二地址映射表中找到最后存储数据的存储块的下一个存储块并作为所述16个存储块中的第一个存储块,接着在第二地址映射表中找
24、到第一个存储块的下一个存储块并作为所述16个存储块中的第二个存储块,依次类推,确定所述16个存储块。说 明 书CN 103116549 A5/5页70032 本发明一方面在每个存储单元的多个存储块中顺序存储数据,使得每个存储单元中的存储块能够均匀地被擦除,从而延长闪存使用寿命。另一方面,通过为具有不同最大可擦除次数的存储单元设置不同的存储频率,使得具有不同最大可擦除次数的存储单元均匀地被擦除,从而进一步延长闪存使用寿命。0033 应该理解,上述实施例是本发明的示例性实施例,但是本发明并不局限于该实施例,在不脱离本发明精神和范围的情况下,可以对本发明做出多种的改进和变型。说 明 书CN 103116549 A1/2页8图1图2说 明 书 附 图CN 103116549 A2/2页9图3说 明 书 附 图CN 103116549 A
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1