背景技术
闪存(Flash Memory)是一种长寿命的非易失性存储器,在断电情况下仍能保持所存储的数据信息。闪存是电子可擦除只读存储器(EEPROM)的变种,与EEPROM不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(Personal Digital Assistant,个人数字助理)、数码相机中保存资料等。
现有技术中的闪存包括NAND闪存和NOR闪存。NOR闪存与NAND闪存的区别很大,NOR闪存更像内存,有独立的地址线和数据线。NAND闪存更像硬盘,地址线和数据线是共用的I/O(输入/输出)线,所有信息都通过一条线传送。NOR闪存比较适合频繁随机读写的场合,通常用于存储程序代码并直接在闪存内运行,手机就是使用NOR闪存的大户,所以手机的“内存”容量通常不大;NAND闪存主要用来存储资料,我们常用的闪存产品,如闪存盘、数码存储卡都是用NAND闪存。
NOR闪存应用在装置例如手机内,通常分为两个区域,分别为代码区域和文件系统区域,代码区域存储装置的配置信息和生产信息,文件系统区域可以用来进行存储文件,由于装置的配置信息和生产信息不能被修改,因此代码区域应为只读区域,保证装置的配置信息和生产信息不被外界修改。现有技术中,通常会对NOR闪存的文件系统区域进行检测,防止NOR闪存中有坏区存在影响存储性能。在NOR闪存生产完成后将其要应用的装置的配置信息和生产信息存储在只读区域中,通常不对只读区域进行检测。
然而,在应用中,有时会发现由于外界的因素或者是NOR闪存的只读区域数据记忆能力差,只读区域中的配置信息和生产信息也会发生变化。因此,也需要检测NOR闪存的只读区域的数据记忆能力,确保只有经过检测的NOR闪存才能进行应用,以免只读区域记忆能力差的NOR闪存流入市场,确保装置的性能。
现有技术中,有许多关于存储器、存储器检测方法的专利和专利申请,例如2000年4月5日公开的公开号为“CN1249519A”的中国专利申请公开的“非易失性存储器件及其检测方法”,然而均没有解决以上技术问题。
发明内容
本发明解决的问题是提供一种检测存储器记忆能力的方法,检测存储器中只读区域的记忆能力,确保随机重要只读数据不易丢失。
为解决上述问题,本发明提供一种检测存储器记忆能力的方法,所述存储器包括只读区域,包括:
利用校验算法计算需要向所述只读区域中写入的只读数据,获得第一校验值;
将所述只读数据写入所述只读区域;
将所述存储器置于容易造成数据丢失的模拟环境中;
读出只读区域中存储的只读数据;
利用所述校验算法计算读出的只读数据,获得第二校验值,在所述第一校验值和所述第二校验值相等时,判定所述存储器记忆能力合格。
可选的,所述校验算法为CRC算法、MD5算法,MEMOBUS算法或者奇偶校验算法。
可选的,将所述存储器置于容易造成数据丢失的模拟环境中为对所述存储器进行烘焙。
可选的,在N2氛围中,对所述存储器进行烘焙。
可选的,在200~300℃温度范围内,对所述存储器进行大于两天时间的烘焙。
可选的,所述只读数据包括所述存储器的配置信息以及生产信息。
可选的,所述利用校验算法计算需要向所述只读区域中写入的只读数据,获得第一校验值包括:
向校验程序中输入所述只读数据;
所述校验程序利用校验算法计算所述只读数据,输出第一校验值。
可选的,将所述只读数据写入所述只读区域包括:在所述存储器的只读区域的存储单元上施加写入电压,将所述只读数据写入所述只读区域。
可选的,所述读出只读区域中存储的只读数据包括:
在所述存储器的只读区域的存储单元上施加读取电压,将所述只读数据从所述只读区域读出。
可选的,利用所述校验算法计算读出的只读数据,获知第二校验值,包括:
向校验程序中输入从所述只读区域中读出的只读数据;
所述校验程序利用校验算法计算所述读出的只读数据,输出第二校验值。
可选的,所述存储器为NOR闪存。
可选的,所述存储器为非挥发性只读存储器。
与现有技术相比,本发明具有以下优点:
本发明具体实施例的检测存储器记忆能力的方法,在存储器的只读区域中存入只读数据之前,首先利用校验算法计算只读数据获得第一校验值;然后,将只读数据写入只读区域;接着将存储器置于可能造成数据丢失的模拟环境中,例如对存储器进行烘焙;接着,读出只读区域中存储的只读数据;在利用校验算法计算读出的只读数据获得第二校验值,如果第一校验值和第二校验值相等说明存储器记忆能力合格,也就说明存储器的只读区域的数据记忆能力可以经受容易造成数据丢失的环境的考验。只有经过检测的NOR存储器才能进行应用,以免只读区域记忆能力差的NOR存储器流入市场,确保装置的性能。
具体实施方式
本发明具体实施方式的检测存储器记忆能力的方法,对闪存进行烘焙,使闪存经受高温,并将烘焙之前只读区域中只读数据经校验算法计算后的第一校验值和烘焙后只读区域中只读数据经校验算法计算后的第二校验值进行比较,如果第一校验值和第二校验值相等,判定闪存记忆能力良好,具体的说是闪存中只读区域记忆能力的好坏。如果存储器为非挥发性存储器(nonvolatile memory,简称NVR存储器),则用来检测该非挥发性存储器的记忆能力。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
本发明具体实施例的存储器可以为闪存,也可以为非挥发性只读存储器,如果为闪存,该闪存包括只读区域,可以为NOR闪存。
图1是本发明具体实施方式的检测存储器记忆能力的方法的流程示意图,参考图1,本发明具体实施方式的检测存储器记忆能力的方法包括:
步骤S11,利用校验算法计算需要向所述只读区域中写入的只读数据,获得第一校验值;
步骤S12,将所述只读数据写入所述只读区域;
步骤S13,将所述存储器置于容易造成数据丢失的模拟环境中;
步骤S14,读出只读区域中存储的只读数据;
步骤S15,利用所述校验算法计算读出的只读数据,获得第二校验值,在所述第一校验值和所述第二校验值相等时,判定所述存储器记忆能力合格。
下面结合具体实施例详述本发明具体实施方式的检测存储器记忆能力的方法。
步骤S11,利用校验算法计算需要向所述只读区域中写入的只读数据,获得第一校验值。本发明具体实施例中,如果存储器为非挥发性只读存储器,则只读区域即为整个存储器的存储区域;如果存储器为闪存,则只读区域为闪存中的只读区域。闪存一般包括NAND闪存和NOR闪存。NOR闪存通常应用于嵌入式系统,包括两个区域,分别为代码区域和文件系统区域,代码区域存储装置的配置信息和生产信息,文件系统区域可以用来进行存储文件。由于装置的配置信息和生产信息不能被修改,因此代码区域应为只读区域,保证装置的随机重要芯片配置信息和生产信息不被外界修改。本发明具体实施例中的闪存主要指NOR闪存,但是,本发明中的闪存不限于NOR闪存,在其他闪存中如果也有只读区域,也可以用本发明的方法检测只读区域数据的记忆能力。
存储器中存储的信息以0和/或1组成的代码序列表示,因此只读区域中即将存入的只读数据是0和/或1组成的代码序列。由于只读区域中的只读数据不能被篡改,因此只读数据应该是由0和/或1组成的固定的代码序列,可以将该代码序列输入校验程序中,然后利用校验程序中的校验算法计算由该代码序列表示的只读数据,之后校验程序输出第一校验值。因此本发明中,利用校验算法计算需要向所述只读区域中写入的只读数据,获得第一校验值包括:向校验程序中输入所述只读数据;所述校验程序利用校验算法计算所述只读数据,输出第一校验值。
在本发明具体实施例中,校验算法采用CRC算法(循环冗余校验算法,Cyclic Redundancy Check),CRC是一种根据网络数据封包或电脑档案等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者储存之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。
但本发明中的校验算法不限于CRC算法,也可以采用本技术领域中可以用于校验的其他算法。例如,MD5算法,MEMOBUS算法或者奇偶校验算法等。
步骤S12,将所述只读数据写入所述只读区域。本发明具体实施例中,第一校验值也写入只读区域中。具体的实现方式为:在所述存储器的只读区域的存储单元上施加写入电压,将所述只读数据、第一校验值写入所述只读区域。对存储单元执行相应写入过程,也就是将代表只读数据、第一校验值的代码序列写入对各个存储单元中,每一个存储单元中存储1或0。
步骤S13,将所述存储器置于容易造成数据丢失的模拟环境中。本发明具体实施例中,将所述存储器置于容易造成数据丢失的模拟环境中为对所述存储器进行烘焙。本发明中,对存储器进行烘焙的目的是模拟现实环境中可能造成存储器数据记忆能力下降的环境,也就是容易导致存储器中数据丢失的环境,以检测存储器经过模拟环境后,是否还具有良好的数据记忆能力。本发明具体实施例中,为了防止存储器在高温环境下被氧化,在N2氛围中,对所述存储器进行烘焙,且在200~300℃温度范围内,对所述存储器进行大于两天时间的烘焙。本发明具体实施例中,容易造成数据丢失的模拟环境不限于高温环境,也就是说,不限于对存储器进行烘焙,也可以为其他容易造成存储器数据丢失的其他环境。
步骤S14,读出只读区域中存储的只读数据。本发明具体实施例中,也读出第一校验值,具体的实现方式为:在所述存储器的只读区域的存储单元上施加读取电压,将所述只读数据、第一校验值从所述只读区域读出。对存储单元施加读取电压的过程,也就是将只读区域中存储的只读数据、第一校验值从只读区域中的各个存储单元中读出。
本发明具体实施例中,计算出的第一校验值也可以写入只读区域中,存储在只读区域的目的是对第一校验值进行记录。在其他实施例中,第一校验值也可以不保存在只读区域中,只要记录下第一校验值,以使后续可以与第二校验值进行比较即可。
由于只读区域中的只读数据不能被篡改,因此将存储器的只读区域中存储的只读数据从只读区域中读出后,期望读出的代码序列和写入的代码序列相同,即写入的信息经过长时间的烘焙后,读出的数据仍需与写入的数据相同。如果写入的数据和读出的数据是由0和1组成的固定的代码序列,而非全0或全1,并且代码序列非常长,所以单纯比较写入的数据和读出的数据基本很难判断出写入的数据和读出的数据是否相同。在步骤S15中利用所述校验算法计算读出的只读数据,获得第二校验值,在所述第一校验值和所述第二校验值相等时,可以判定所述存储器记忆能力合格。本发明将从读出的只读数据输入校验程序中,然后利用校验程序中的校验算法计算由该代码序列表示的只读数据,之后校验程序输出第二校验值。然后,判断第一校验值和第二校验值是否相同,如果第一校验值和第二校验值相同,说明写入的信息和读出的信息相同,存储器只读区域的数据记忆能力合格;如果第一校验值和第二校验值不同,说明写入的数据和读出的数据不同,存储器只读区域的数据记忆能力不合格,存储器不能进行应用。基于以上所述,本发明具体实施例中,利用所述校验算法计算读出的只读数据,获得第二校验值包括:向校验程序中输入从所述只读区域中读出的只读数据,利用校验算法计算,输出第二校验值。
举例来说,在步骤S11中,需要输入的只读数据为(十六进制):33,14,12,33,03,11,00,00,00,ff,ff,ff,ff,ff,ff,ff,17,06,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,07,0b,05,ff,a8,ff,ff,ff,ff,00,ff,ff,ff,ff,ff,ff,f8,00,b5,04,00,00,00,30,80,28,ff,ff;利用CRC检验得到的第一校验值是(十六进制):9649;烘焙存储器后,在步骤S14,从只读区域中读出的只读数据仍然为(十六进制):33,14,12,33,03,11,00,00,00,ff,ff,ff,ff,ff,ff,ff,17,06,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,07,0b,05,ff,a8,ff,ff,ff,ff,00,ff,ff,ff,ff,ff,ff,f8,00,b5,04,00,00,00,30,80,28,ff,ff;在步骤S15,利用CRC检验得到的第二校验值仍是(十六进制):9649,第一校验值=第二校验值,存储器记忆能力合格。如果步骤S14读出的数据出现差错,相应地,步骤S15得出的第二校验值就不是9649,由此也可以判断出存储器的记忆能力被环境破坏。
本发明具体实施例的检测存储器记忆能力的方法,在存储器的只读区域中存入只读数据之前,首先利用校验算法计算只读数据获得第一校验值;然后,将只读数据以及第一校验值写入只读区域;接着对存储器进行烘焙,对存储器进行烘焙的目的是让存储器经受高温,模拟现实环境中可能造成数据丢失的环境;接着,读出只读区域中存储的只读数据和第一校验值;再利用校验算法计算读出的只读数据获得第二校验值,如果第一校验值和第二校验值相等说明存储器记忆能力合格,也就说明存储器的只读区域的数据记忆能力可以符合设计的数据保存周期。只有经过这种检测的NOR存储器才能进行应用,以免只读区域记忆能力差的NOR存储器流入市场,确保装置的可靠性。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。