CN101441891B - 一种提高闪存利用率的方法 - Google Patents
一种提高闪存利用率的方法 Download PDFInfo
- Publication number
- CN101441891B CN101441891B CN2007101873128A CN200710187312A CN101441891B CN 101441891 B CN101441891 B CN 101441891B CN 2007101873128 A CN2007101873128 A CN 2007101873128A CN 200710187312 A CN200710187312 A CN 200710187312A CN 101441891 B CN101441891 B CN 101441891B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- page
- leaf
- bad
- data
- 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
Links
Images
Abstract
本发明公开了一种利用闪存的方法,包括步骤:扫描闪存,根据闪存的质量,对闪存进行分类;根据闪存分类的结果,存储相应重要程度的数据;根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。本发明在根据闪存质量对闪存进行分类,在分类的基础上进行相应重要程度数据的存储,并将没有坏扇区的页设置为正常页,根据坏扇区数的数量对正常页执行相应存储操作,从而有效地利用了闪存中坏扇区之外的正常页进行数据存储,提高了闪存的利用率。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种提高闪存利用率的方法。
背景技术
闪存(Flash Memory,Flash),作为一种非挥发性的半导体存储芯片,它在没有电流供应的条件下也能够长久地保存数据,而挥发性的内存(如DDR、SDRAM或者RDRAM)只要停止电流供应,那么数据便无法保存。因此,闪存成为了各类便携型数字设备的存储介质的基础,普遍应用于数码电视、数码便携式摄像机、移动电话、数码相机、掌上电脑(Personal DigitalAssistant,PDA)、游戏机、MP3播放器等设备中。
闪存由许多个块(block)组成,每个块(block)包括64页(page),每一个页(page)包括4个扇区(sector)。闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此当对闪存进行读写的次数多了,一个块中就可能出现坏扇区。为了防止由于将数据写到坏扇区,而造成数据的丢失,通常采用的方法为:在使用闪存前,对闪存先进行初始化扫描,只要一个块中出现一个坏扇区,即将整个块标记为坏块,然后将数据存储到好块中,该方法通过防止将数据写到坏扇区来实现数据的安全存储。
但是,如上所述,运用这种方法,只要一个块中出现坏扇区时,即将整个块标记为坏块,对整个块都进行屏蔽,那么在该块没有完全坏掉的时,这个块中的好扇区会被屏蔽掉,由于该方法无法对出现坏扇区的块中的好扇区进行有效利用,造成了有限的闪存存储资源的浪费。
发明内容
有鉴于此,本发明解决的问题是提供一种提高闪存利用率的方法,可以充分地利用闪存中的好扇区进行数据存储,提高闪存存储资源的利用率。
为此,本发明提供了一种提高闪存利用率的方法,包括以下步骤:
扫描闪存,根据闪存质量的高低,将闪存划分为不同等级;
根据闪存不同等级的划分结果,存储相应重要程度的数据;
根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;
当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;所述第一预设操作为:在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入通过对其他三个扇区中写入数据执行异或运算获得的特定数据;
当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作;所述第二预定操作为:将需要存储的数据写入每个正常页的四个扇区。
优选地,根据闪存质量的高低,将闪存划分为不同等级具体为:
按照闪存类型抽取部分闪存样品;
用读或写操作模式扫描闪存样品,获得各个闪存的特性;所述闪存的特性为:所述闪存的奇数块的坏块比例高于偶数块的坏块比例,或者为偶数块的坏块比例高于奇数块的坏块比例,或者为闪存按顺序写入时不出错,随机写入时出错;
根据闪存的特性,对闪存进行扫描;
根据扫描结果,将闪存划分为不同的等级。
优选地,当所述闪存的特性为闪存的奇数块的坏块比例高于偶数块的坏块比例时,对偶数块扫描一次,对奇数块进行多次扫描。
优选地,当所述闪存的特性为闪存偶数块的坏块比例高于奇数块的坏块比例的闪存时,对奇数块进行一次扫描,对偶数块进行多次扫描。
优选地,当所述闪存的特性为:所述闪存按顺序写入不出错,随机写入出错,对闪存进行多次扫描。
优选地,根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页之后还包括步骤:
设置一组预定数目的正常页为替换页;
当扫描出禁止写入页时,用替换页将其替换。
优选地,还包括步骤:将替换出的禁止写入页放在替换页组之后。
与现有技术相比,本发明在根据闪存质量对闪存进行分类,在分类的基础上进行相应重要程度数据的存储,并将没有坏扇区的页设置为正常页,根据坏扇区数的数量对正常页执行相应存储操作,从而有效地利用了闪存中坏扇区之外的正常页进行数据存储,而不是一个块中出现坏扇区时对整个块禁止写入,有效地利用一个闪存中没有出现坏扇区的页,提高了闪存的利用率。
附图说明
图1是本发明提供的一种利用闪存方法的实施例的流程图;
图2为对闪存进行扫描分类的方法流程图;
图3为一个正常页中存储数据A、B、C、D的示意图;
图4为一个正常页的扇区中存储数据E的示意图;
图5为本发明对闪存中的禁止写入页进行动态补偿的流程图。
具体实施方式
为使本领域技术人员更好地理解本发明,下面结合具体实施例对本发明提供的利用闪存的方法作具体说明。
信息是通过语言、文字、声音、图形、图像等信号表示,信息不能独立存在,它需要转化为某种物理形式存在,即我们通常所说的数据。数据是各种各样的物理符号及其组合,它反映了信息的内容。数据的形式会随着物理媒介的改变而发生变化。比如,一首歌,用磁带录制下来,用CD刻录出来,他们都可以传递歌曲。在磁带上,数据是磁性强度不同的磁信号,在光盘上,他们是深浅不同的凹坑。但是他们记录的信息是相同的。
在计算机领域,计算机的基本功能是对数据进行运算和加工处理,数据的类型有两种:一种是数值数据,如3.1416、-2.71828......,另一种是非数值数据(信息),如A、b、+、=......。无论哪一种数据在计算机中都是用二进制数码表示的。计算机中只有二进制数值,所有的符号都是用二进制数值代码表示的,数的正、负号也是用二进制代码表示。数值的最高位用“0”、“1” 分别表示数的正、负号。一个数(连同符号)在计算机中的表示形式称为机器数,数值处理采用二进制运算,非数值处理采用二进制编码,它们具有运算简单、电路实现方便、成本低廉等优点。
基于计算机领域中的数据是用二进制数码来表示,本发明提供了一种利用闪存的方法,保证数据存储安全的同时,充分地利用闪存中的好扇区进行数据存储,提高闪存存储资源的利用率。参见图1,具体步骤如下:
步骤S101:根据闪存的质量,对闪存进行扫描分类。
为了更有效地利用有限的闪存资源,可以根据数据的重要性程度将数据存储到对应质量的闪存,即将重要的数据存储到质量高的闪存,将重要性较低的数据存储到质量较低的闪存。
为了区分闪存的质量,使用户可以根据数据的重要性程度将数据存储到对应质量的闪存,更好地利用有限的闪存资源,从而需要将闪存的质量分为不同的等级。参见图2,具体进行闪存分类的流程为:
步骤S101A:按照闪存类型抽取部分闪存样品。
闪存的类型主要有:储存容量大的数据存储型(NAND)和处理速度快的代码存储型(NOR)。
即使为同一种类型的闪存,由于在不同的生产批次生产,闪存特性可能也不相同,因此,抽取的闪存样品需要为同一批次。
步骤S101B:用读或写操作模式扫描闪存样品。
需要说明的是,在闪存未进行初始化之前,只能通过读或写的操作模式扫描闪存,从而得出闪存特性。
步骤S101C:根据扫描结果,获得各个闪存的特性。
闪存的特性例如为:奇数块的坏块数高于偶数块的坏块数或者偶数块的坏块数高于奇数块的坏块数。
通过安装在测试单元中的量产模块,对闪存进行扫描,从而可以得出闪存的特性。一般来说,一个测试单元可与多个测试架连接,在一个测试架设置一个闪存,因此,将特性相同的多个闪存设置在一个测试单元连接的测试架上,可以根据相同的测试方法对多个闪存同时进行测试,从而可以节约测 试闪存的成本和时间。例如:奇数块的坏块比例高于偶数块的坏块比例的闪存,或者偶数块的坏块比例高于奇数块的坏块比例的闪存,可以作为特性相同的闪存一起设置于与测试单元连接的测试架上。
上述的测试架通常由控制芯片厂家生产提供。
测试单元可以为电脑主机或其他具有控制、测试功能的装置。
步骤S101D:根据闪存的特性,对闪存进行扫描。
当闪存的特性为:奇数块的坏块比例高于偶数块的坏块比例时,对偶数块扫描一次,对奇数块进行多次扫描。
当闪存的特性为:偶数块的坏块比例高于奇数块的坏块比例的闪存时,对奇数块进行一次扫描,对偶数块进行多次扫描。
当闪存的特性为:闪存按顺序写入时不出错,随机写入时出错,对整个闪存进行多次扫描。
步骤S101E:根据扫描结果,将闪存划分为不同的等级。
具体为:将没有坏块的闪存划分为一级闪存;
当一个闪存中扫描出的坏块比例小于或等于预设值时,划分该闪存为二级闪存;
当一个闪存中扫描出的坏块比例大于预设值时,划分该闪存为三级闪存。
当然,用户可以根据需要将闪存划分为多个等级。
步骤S102:根据闪存分类的结果,存储相应重要程度的数据。
如上所述,通过将闪存划分为不同的等级,将相应重要程度的数据存储到对应等级的闪存中,可以更有效地利用有限的闪存资源,使用户能够根据数据的重要性程度将数据存储到对应质量的闪存。
步骤S103:根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页。
步骤S104:当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作。
在数据存储前,需要对闪存进行初始化扫描。
需要说明的是,运用本发明提供的方法,在本次(即当前)需要对闪存进行数据存储时,在初始化扫描中如果发现一个块的某个页中出现坏扇区,则将该页标记为禁止写入页,禁止对出现问题的坏扇区所在页进行写入操作,当然,该禁止写入页依然可以进行读取操作。
在这里,禁止写入页之外的其他页为正常页,由于不存在坏扇区,本发明对其进行数据写入、读取操作。
需要说明的是,扫描出的坏块数体现了该闪存的稳定性,坏块数越多,则该闪存越不稳定。
所述的预设值可以根据所存储数据的重要性进行调整设定,可以为闪存总块数的一半、三分之一或其他预设定的值。
基于闪存的每个页中包括有4个扇区,所述第一预定操作为:在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入特定数据,该特定数据通过对其他三个扇区中写入的数据执行异或运算后得到。
这里,异或是用于逻辑运算的数学运算符。
例如,本次需要存储时,在一个正常页中的三个扇区分别写入要存储的数据A、B、C,在余下的扇区存储特定数据D,那么使所述特定数据 图3为在一个正常页中存储数据A、B、C、D的示意图。由于特定数据 那么根据异或运算法则, 所以下次对闪存进行读取数据B时,如果B数据所在的扇区损坏时,可以运算得到B;C数据所在的扇区损坏时,可以运算得到C;A数据所在的扇区损坏时,可以运算得到A。
计算机中数据的存储是一字节(8BIT)来存储的,假设A为十进制数1,存储时转化成二进制为00000001;B为十进制数2,存储时转化成二进制为00000010;C为十进制数4,存储时转化成二进制为00000100,那么对A、B、C执行异或运算, D会被存储为二进制00000111,十进制值为7。
由于闪存的每个页中包括有4个扇区,本次需要将数据写入闪存时,通过在每个正常页的三个扇区用来存储需要写入的数据,一个扇区用来存储特定数据,从而即使在下次进行闪存数据读取时,扫描出数据存储页中的某个扇 区出现损坏,而将坏扇区所在页设置为禁止写入页时,由于可以对禁止写入页进行读写操作,因此仍然可以还原得到在该扇区所存储的数据,达到安全存储数据的目的。
目前在使用闪存前,对闪存先进行初始化扫描,只要一个块中出现一个坏扇区,即将整个块标记为坏块,从而对该块进行屏蔽。本发明在本次存储数据时,通过执行第一预定操作,使得不需由于闪存一个页中有一个坏扇区时,而对该页所在的整个闪存块执行屏蔽操作,本发明只是禁止对出现问题的页进行写入操作,从而有效利用了一个块中其他页剩余的好扇区,提高了闪存的利用率。
所述第二预定操作为:将需要存储的数据写入一个页的四个扇区。在本次需要对闪存存储数据时,通过这个操作,只要在一个页的四个扇区中还存在一个好的扇区,那么就能保证下次使用闪存时,能够读到所存储的数据,使数据不会丢失。假定需要存储的数据为E,图4为在一个页的扇区中存储数据E的示意图。
需要说明的是,目前的存储方法为:如果一个块的一个扇区坏掉了,整个坏都要屏蔽掉,这样严重减少闪存能够用来存储数据的容量,浪费闪存存储资源。而运用本发明提供的方法,在本次需要存储数据时,在扫描中发现有坏扇区,仅禁止对坏扇区所在页进行写入操作,仍然可以对所在页的其他好扇区进行读取操作,且通过执行第二预定操作,只要下次使用闪存时,闪存块中存储数据的页的四个扇区中还存在一个好的扇区,就能保证用户可以读取到所存储的数据,因此,本次存储数据时,通过执行第二预定操作,使得下次使用闪存时,只有对数据存储页的扇区的扫描结果全是坏扇区时,才无法读取到该页所存储的数据,从而有效提高了所存储数据的安全性。
为了更好地使用闪存,保证数据的存储安全,本发明可以对已经进行分类的闪存,即在上述步骤S103之后,利用替换页对闪存中的禁止写入页进行动态补偿,来减少闪存出错的概率。参见图5,具体进行动态补偿的流程如下:
步骤S501:设置一组预定数目的正常页为替换页。
替换页需要为本次扫描闪存扫描出的没有坏扇区的正常页,用于替换坏扇区所在页(即禁止写入页)。
所述预定数目与闪存的容量成正比、与闪存的质量等级成反比关系。例如:对于两个容量相同的闪存,质量等级高的闪存的替换页的预定数目小于质量等级低的闪存的替换页预定数目;对于两个质量等级相同的闪存,容量大的闪存的替换页预定数目大于容量小的闪存的替换页预定数目。
步骤S502:当扫描出禁止写入页时,用替换页将其替换。
通过上述动态补偿的方法,可以确保数据只在正常页进行写入和读取操作,从而保证数据的存储安全。
对于已经精确分类质量等级的闪存,质量等级高的闪存的坏扇区数量并不多,本发明采用替换页动态补偿坏扇区所在页(即禁止写入页)的方法,对使用过程中由于闪存的不稳定性而出现的坏扇区进行处理,使用户在好的存储页中进行数据存储,进一步保证数据的存储安全。
可以理解的是,本次扫描出的一个坏扇区,在下次扫描时可能显示为好扇区,那么下次使用闪存时,该扇区所在页可能为正常页,因而在执行步骤S502之后,可以将替换出的禁止写入页放在替换页组之后,那么下次使用闪存时,该禁止写入页可能成为正常页而作为替换扇区使用。
以上所述仅是本发明的优选实施方式,并不用以限制本发明。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干修改,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种提高闪存利用率的方法,其特征在于,包括以下步骤:
扫描闪存,根据闪存质量的高低,将闪存划分为不同等级;
根据闪存不同等级的划分结果,存储相应重要程度的数据;
根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页;
当扫描出的坏扇区数小于或等于预设值时,对正常页执行第一预定操作;所述第一预定操作为:在每个正常页中的三个扇区写入需要存储的数据,在余下的一个扇区写入通过对其他三个扇区中写入数据执行异或运算获得的特定数据;
当扫描出的坏扇区数大于预设值时,对正常页执行第二预定操作;所述第二预定操作为:将需要存储的数据写入每个正常页的四个扇区。
2.如权利要求1所述的方法,其特征在于,根据闪存质量的高低,将闪存划分为不同等级具体为:
按照闪存类型抽取部分闪存样品;
用读或写操作模式扫描闪存样品,获得各个闪存的特性;所述闪存的特性为:所述闪存的奇数块的坏块比例高于偶数块的坏块比例,或者为偶数块的坏块比例高于奇数块的坏块比例,或者为闪存按顺序写入时不出错,随机写入时出错;
根据闪存的特性,对闪存进行扫描;
根据扫描结果,将闪存划分为不同的等级。
3.如权利要求2所述的方法,其特征在于,当所述闪存的特性为闪存的奇数块的坏块比例高于偶数块的坏块比例时,对偶数块扫描一次,对奇数块进行多次扫描。
4.如权利要求2所述的方法,其特征在于,当所述闪存的特性为闪存偶数块的坏块比例高于奇数块的坏块比例的闪存时,对奇数块进行一次扫描,对偶数块进行多次扫描。
5.如权利要求2所述的方法,其特征在于,当所述闪存的特性为:所述闪存按顺序写入不出错,随机写入出错,对闪存进行多次扫描。
6.如权利要求1所述的方法,其特征在于,根据扫描结果,设置坏扇区所在页为禁止写入页,没有坏扇区的页为正常页之后还包括步骤:
设置一组预定数目的正常页为替换页;
当扫描出禁止写入页时,用替换页将其替换。
7.如权利要求6所述的方法,其特征在于,还包括步骤:将替换出的禁止写入页放在替换页组之后。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101873128A CN101441891B (zh) | 2007-11-19 | 2007-11-19 | 一种提高闪存利用率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101873128A CN101441891B (zh) | 2007-11-19 | 2007-11-19 | 一种提高闪存利用率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101441891A CN101441891A (zh) | 2009-05-27 |
CN101441891B true CN101441891B (zh) | 2011-06-29 |
Family
ID=40726281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101873128A Active CN101441891B (zh) | 2007-11-19 | 2007-11-19 | 一种提高闪存利用率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101441891B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347082A (zh) * | 2011-05-30 | 2012-02-08 | 福州思迈特数码科技有限公司 | 录音/录像设备的flash坏块重用方法 |
CN102412823A (zh) * | 2011-10-25 | 2012-04-11 | 深圳芯邦科技股份有限公司 | 一种电容式触摸按键装置 |
CN103309619A (zh) * | 2012-03-16 | 2013-09-18 | 国民技术股份有限公司 | 一种闪存数据存储方法 |
CN103049389B (zh) * | 2012-12-14 | 2016-08-03 | 锐迪科科技有限公司 | Nand闪存控制器及其写入控制方法 |
CN106484629B (zh) * | 2016-10-18 | 2019-06-25 | 深圳大学 | 一种感知制程变异的三维闪存读写控制方法及其系统 |
CN109119123B (zh) * | 2018-07-20 | 2021-09-14 | 江苏华存电子科技有限公司 | 一种高中低阶闪存的分类方法 |
CN112947842A (zh) * | 2019-12-10 | 2021-06-11 | 北京兆易创新科技股份有限公司 | 一种存储器及存储设备 |
CN113360080A (zh) * | 2020-03-06 | 2021-09-07 | 瑞昱半导体股份有限公司 | 存储空间管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1933026A (zh) * | 2006-08-18 | 2007-03-21 | 福昭科技(深圳)有限公司 | 高可靠排序管理扇区的存储结构 |
CN101046769A (zh) * | 2006-03-29 | 2007-10-03 | 群联电子股份有限公司 | 闪存及其使用方法 |
-
2007
- 2007-11-19 CN CN2007101873128A patent/CN101441891B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046769A (zh) * | 2006-03-29 | 2007-10-03 | 群联电子股份有限公司 | 闪存及其使用方法 |
CN1933026A (zh) * | 2006-08-18 | 2007-03-21 | 福昭科技(深圳)有限公司 | 高可靠排序管理扇区的存储结构 |
Also Published As
Publication number | Publication date |
---|---|
CN101441891A (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101441891B (zh) | 一种提高闪存利用率的方法 | |
CN101369463B (zh) | 闪存检测分类方法 | |
US20110202709A1 (en) | Optimizing storage of common patterns in flash memory | |
CN110335635B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
US8484406B2 (en) | Method of evenly using a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
US8433844B2 (en) | Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof | |
US8949689B2 (en) | Storage control system with data management mechanism and method of operation thereof | |
US8892812B2 (en) | Flash memory device and data writing method for a flash memory | |
US20100146194A1 (en) | Storage Device And Data Management Method | |
US9514042B2 (en) | Method for managing memory apparatus to perform writing control according to monitored data amount of received data, associated memory apparatus thereof and associated controller thereof | |
US9947412B1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US10613932B2 (en) | Method for controlling operations of memory device, associated memory device and controller thereof, and associated electronic device | |
CN102880432A (zh) | 利用数据有限寿命提高闪存芯片写入速度的方法、系统及其控制器 | |
US10289334B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
CN102543184B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN111913890A (zh) | 一种基于安全模组的非易失存储器随机化读写方法 | |
CN101425337B (zh) | 一种闪存数据存储方法和装置 | |
US8065468B2 (en) | Data storing methods and apparatus thereof | |
CN101369462A (zh) | 一种用于瑕疵闪存动态补偿方法及装置 | |
US8634239B2 (en) | Hybrid multi-level cell programming sequences | |
US7206893B2 (en) | Linking method under mother and child block architecture for building check area and logic page of the child block | |
US20070081385A1 (en) | [method for managing memory blocks in flash memory] | |
CN112347524A (zh) | 闪存编程方法、装置及电子设备 | |
CN110322913B (zh) | 存储器管理方法与存储控制器 | |
US11327770B2 (en) | Data storage devices, access device and data processing methods |
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 |