【技术实现步骤摘要】
一种芯片存储器的读、写数据方法及系统
本专利技术属于存储
,具体涉及一种芯片存储器的读、写数据方法及系统。
技术介绍
芯片制造商一般都会提供指定条件下芯片存储器(Flash、EEPROM)的最小保证写次数,诸如5万次、10万次、50万次等。在该最小保证写次数以内,芯片制造商可以保证芯片存储器数据的读写正确性。当芯片存储器中某个存储单元(可能是某字节、某页或某块地址)的写次数达到或超过该最小保证写次数之后,其可靠性会降低,甚至存储操作会失败。现有智能卡COS(ChipOperatingSystem,芯片操作系统)的设计和实现往往都是被动的接受芯片制造商提供的最小保证写次数,也就是基于芯片存储单元写次数不会超过最小保证写次数,但却未曾考虑写次数达到或超过该次数的情况。在某些应用场景,尤其是M2M(MachinetoMachine,设备到设备)环境中,卡片中的应用会对芯片存储器进行频繁的擦写,其写次数很可能会达到或超过最小保证写次数。而基于芯片软、硬件设计和制造成本的考虑,芯片制造商一般不会提供额外的预防措施。那么如何延长这种极限情况下芯片存储器中数据的可靠性,提高芯片存储寿命?针对这一技术问题,现有技术中存在从文件系统角度设计的延长可擦写芯片寿命的方法。然而在Native应用和Java应用的处理过程中,很多时候并不涉及文件系统,因此从文件系统角度考虑的解决方法具有局限性,并没能够从COS层面和应用层面角度提供好的方法,来延长数据存储的可靠性,提高芯片的使用寿命。现有的COS层存储方法的设计,是根据芯片制造商提供的读写接口,对需要存储的数据进行直接写数据, ...
【技术保护点】
1.一种芯片存储器的写数据方法,包括以下步骤:判断待写数据是普通数据还是均衡数据;所述普通数据是指不需要频繁更新的数据,所述均衡数据是指需要频繁更新的数据;如果是普通数据,则对待写数据进行普通写;如果是均衡数据,则判断芯片操作系统是否支持均衡写,如果支持,则芯片操作系统对待写数据进行均衡写;如果芯片操作系统不支持均衡写,则应用程序对待写数据进行均衡写;所述均衡写是使用N个存储空间,轮流存储需要频繁更新的数据;所述N为均衡系数,N为正整数,N≥2。
【技术特征摘要】
1.一种芯片存储器的写数据方法,包括以下步骤:判断待写数据是普通数据还是均衡数据;所述普通数据是指不需要频繁更新的数据,所述均衡数据是指需要频繁更新的数据;如果是普通数据,则对待写数据进行普通写;如果是均衡数据,则判断芯片操作系统是否支持均衡写,如果支持,则芯片操作系统对待写数据进行均衡写;如果芯片操作系统不支持均衡写,则应用程序对待写数据进行均衡写;所述均衡写是使用N个存储空间,轮流存储需要频繁更新的数据;所述N为均衡系数,N为正整数,N≥2。2.如权利要求1所述的芯片存储器的写数据方法,其特征在于,所述芯片操作系统对待写数据进行均衡写的过程包括以下步骤:将芯片存储器划分为普通区域和均衡区域,所述普通区域用于存储普通数据,所述均衡区域用于存储均衡数据;在均衡区域中划出N个指定大小的空间区域;将均衡数据从所述空间区域的起始地址开始写入芯片存储器的N个指定大小的空间区域。3.如权利要求2所述的芯片存储器的写数据方法,其特征在于,所述将芯片存储器划分为普通区域和均衡区域包括以下四种方式:从地址由低到高将芯片存储器划分为普通区域和均衡区域;或者从地址由低到高将芯片存储器划分为均衡区域和普通区域;或者从地址由低到高将芯片存储器划分为普通区域、均衡区域和普通区域;或者从地址由低到高将芯片存储器划分为均衡区域、普通区域和均衡区域。4.如权利要求2所述的芯片存储器的写数据方法,其特征在于,所述在均衡区域中划出N个指定大小的空间区域的大小为:如果芯片存储器支持字节写,则划出的空间大小为:(指定大小+6)×均衡系数N;如果芯片存储器支持页擦页写,当(指定大小+6)是页大小的整数倍时,则划出的空间大小为(指定大小+6)×均衡系数N;当(指定大小+6)不是页大小的整数倍时,则划出的空间大小为:([(指定大小+6)÷页大小]+1)×页大小×均衡系数N。5.如权利要求2至4中任一项所述的芯片存储器的写数据方法,其特征在于:所述在均衡区域中划出N个指定大小的空间区域采用TLVList数据结构,所述TLV为TagLengthValue的缩写;所述Tag为4字节,用于控制选择哪个TLV来写数据;所述Length为2字节,用于表示实际有效数据的长度;所述Value是指定大小的实际数据;所述List的个数为均衡系数N。6.如权利要求5所述的芯片存储器的写数据方法,其特征在于,所述将均衡数据从所述空间区域的起始地址开始写入芯片存储器的N个指定大小的空间区域的过程包括以下步骤:(1)选择均衡空间区域TLVList中的第一个TLV1,TLV1的Tag加1,写数据的长度到Length,写数据到Value;(2)下一次写数据时在均衡空间区域TLVList中从前往后或者从后往前遍历查找第一个比TLV1的Tag小的TLVn,遍历查找时取的数据间隔为TLV的实际大小;如果未找到满足要求的TLVn,则转至步骤(1);如果找到了满足要求的TLVn,TLVn的Tag加1,写数据的长度到Length,写数据到Value;下一次写数据时转至步骤(2)。7.如权利要求1所述的芯片存储器的写数据方法,其特征在于,所述应用程序对待写数据进行均衡写的过程包括以下步骤:在应用数据空间中划出N个指定大小的空间区域;将待写数据写入N个指定大小的空间区域中。8.如权利要求7所述的芯片存储器的写数据方法,其特征在于,所述在应用数据空间中划出N个指定大小的空间区域的方法如下:对于页擦页写芯片,所述划出N个指定大小的空间区域不连续,所述不连续是指N个指定大小的空间区域中任意两个空间区域不在同一页中;对于字节写芯片,所述划出N个指定大小的空间区域连续或者不连续。9.如权利要求7或8所述的芯片存储器的写数据方法,其特征在于,所述将待写数据写入N个指定大小的空间区域中的过程包括以下步骤:遍历所述N个指定大小的空间区域,找到最旧数据所在的指定大小的空间区域,所述最旧数据是指最先存储在N个指定大小的空间区域中的数据;将待写数据写入所述最旧数据所在的指定大小的空间区域;下一次写数据时,重复以上步骤。10.如权利要求9所述的芯片存储器的写数据方法,其特征在于:所述遍历的顺序为从前往后或者从后往前。11.一种芯片存储器的读数据方法,所述数据是按照权利要求6所述的方法写入芯片存储器中的数据,包括以下步骤:在均衡空间区域TLVList中,遍历查找最后一个与TLV1的Tag相同的TLVn,遍历查找时取的数据间隔为TLV的实际大小;选择找到TLVn,读取该TLVn中的数据。12.如权利要求11所述的芯片存储器的读数据方法,...
【专利技术属性】
技术研发人员:郑江东,王幼君,
申请(专利权)人:北京握奇智能科技有限公司,北京握奇数据股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。