一种芯片存储器的读、写数据方法及系统技术方案

技术编号:20865138 阅读:26 留言:0更新日期:2019-04-17 09:06
本发明专利技术公开了一种芯片存储器的读、写数据方法及系统,属于存储技术领域。本发明专利技术首先使用芯片存储器的均衡系数N个存储单元,轮流存储需要频繁更新的数据;然后通过逻辑来控制当前哪个存储单元中的数据有效。本发明专利技术通过均衡写数据,使得单一存储单元中的数据更新次数,被分摊到了多个存储单元,单个存储单元的写次数被直接稀释,稀释程度取决于分摊的存储单元个数,从而变相地延长了芯片存储器单一存储单元的使用寿命。

【技术实现步骤摘要】
一种芯片存储器的读、写数据方法及系统
本专利技术属于存储
,具体涉及一种芯片存储器的读、写数据方法及系统。
技术介绍
芯片制造商一般都会提供指定条件下芯片存储器(Flash、EEPROM)的最小保证写次数,诸如5万次、10万次、50万次等。在该最小保证写次数以内,芯片制造商可以保证芯片存储器数据的读写正确性。当芯片存储器中某个存储单元(可能是某字节、某页或某块地址)的写次数达到或超过该最小保证写次数之后,其可靠性会降低,甚至存储操作会失败。现有智能卡COS(ChipOperatingSystem,芯片操作系统)的设计和实现往往都是被动的接受芯片制造商提供的最小保证写次数,也就是基于芯片存储单元写次数不会超过最小保证写次数,但却未曾考虑写次数达到或超过该次数的情况。在某些应用场景,尤其是M2M(MachinetoMachine,设备到设备)环境中,卡片中的应用会对芯片存储器进行频繁的擦写,其写次数很可能会达到或超过最小保证写次数。而基于芯片软、硬件设计和制造成本的考虑,芯片制造商一般不会提供额外的预防措施。那么如何延长这种极限情况下芯片存储器中数据的可靠性,提高芯片存储寿命?针对这一技术问题,现有技术中存在从文件系统角度设计的延长可擦写芯片寿命的方法。然而在Native应用和Java应用的处理过程中,很多时候并不涉及文件系统,因此从文件系统角度考虑的解决方法具有局限性,并没能够从COS层面和应用层面角度提供好的方法,来延长数据存储的可靠性,提高芯片的使用寿命。现有的COS层存储方法的设计,是根据芯片制造商提供的读写接口,对需要存储的数据进行直接写数据,也就是所谓的普通写数据。如图1所示,普通写数据的过程如下:往目的地址处第一次写数据1;往目的地址处第二次写数据2,完成数据1更新成数据2的过程。至此,目的地址处的数据1替换成数据2,目的地址处至此被写了2次。由此可见:在单一存储单元中,数据更新一次,该存储单元就被写了2次,导致频繁更新数据时,该存储单元被频繁写。由于该存储单元的使用寿命有限,只能接近芯片制造商提供的最小保证写次数,并不能延长芯片单一存储单元的使用寿命。
技术实现思路
针对现有技术中存在的缺陷,本专利技术所要解决的技术问题是提供一种可以延长芯片使用寿命的芯片存储器读、写数据方法及系统。为解决上述技术问题,本专利技术采用的技术方案如下:一种芯片存储器的写数据方法,包括以下步骤:使用芯片存储器的N个存储单元,轮流存储需要频繁更新的数据;所述N为均衡系数,N为正整数,N≥2;通过逻辑控制当前哪个存储单元中的数据有效。如上所述的芯片存储器的写数据方法,其中,所述使用芯片存储器的N个存储单元,轮流存储需要频繁更新的数据的过程包括以下步骤:将芯片存储器划分为普通区域和均衡区域;将数据划分成普通数据和均衡数据,所述普通数据是指不需要频繁更新的数据,所述均衡数据是指需要频繁更新的数据;判断待写数据为普通数据还是均衡数据;如果是普通数据,则将普通数据写入到芯片存储器的普通区域中;如果是均衡数据,则将均衡数据写入到芯片存储器的均衡区域中。如上所述的芯片存储器的写数据方法,其中,所述将芯片存储器划分为普通区域和均衡区域包括以下四种方式:从地址由低到高将芯片存储器划分为普通区域和均衡区域;或者从地址由低到高将芯片存储器划分为均衡区域和普通区域;或者从地址由低到高将芯片存储器划分为普通区域、均衡区域和普通区域;或者从地址由低到高将芯片存储器划分为均衡区域、普通区域和均衡区域。如上所述的芯片存储器的写数据方法,其中,所述判断待写数据为普通数据还是均衡数据依据数据类型来判断,如果待写数据为普通类型,则为普通数据;如果待写数据为均衡类型,则为均衡数据;或者依据写数据时的目的地址位于普通区域还是均衡区域来判断,如果目的地址位于普通区域,则为普通数据;如果目的地址位于均衡区域,则为均衡数据。如上所述的芯片存储器的写数据方法,其中,所述将普通数据写入到芯片存储器的普通区域中的过程包括以下步骤:在普通区域中划出指定大小的空间区域,对该空间区域内的值进行初始化,返回该空间区域的起始地址;将普通数据从所述空间区域的起始地址开始写入芯片存储器。如上所述的芯片存储器的写数据方法,其中,所述在普通区域中划出指定大小的空间区域的方法为:如果芯片存储器支持字节写,则划出的空间区域大小等于指定大小;如果芯片存储器支持页擦页写,当指定大小是页大小的整数倍时,则划出的空间大小为指定大小,当指定大小不是页大小的整数倍时,则划出的空间大小为([指定大小÷页大小]+1)×页大小。如上所述的芯片存储器的写数据方法,其中,所述将均衡数据写入到芯片存储器的均衡区域中的过程包括以下步骤:在均衡区域中划出N个指定大小的空间区域;对该空间区域内的值进行初始化,返回该空间区域的起始地址;将均衡数据从所述空间区域的起始地址开始写入芯片存储器的N个指定大小的空间区域。如上所述的芯片存储器的写数据方法,其中,所述在均衡区域中划出N个指定大小的空间区域采用TLVList数据结构,所述TLV为TagLengthValue的缩写;所述Tag为4字节,用于控制选择哪个TLV来写数据;所述Length为2字节,用于表示实际有效数据的长度;所述Value是指定大小的实际数据;所述List的个数为均衡系数N。如上所述的芯片存储器的写数据方法,其中,所述在均衡区域中划出N个指定大小的空间区域的方法为:如果芯片存储器支持字节写,则划出的空间大小为:(指定大小+6)×均衡系数N;如果芯片存储器支持页擦页写,当(指定大小+6)是页大小的整数倍时,则划出的空间大小为(指定大小+6)×均衡系数N;当(指定大小+6)不是页大小的整数倍时,则划出的空间大小为:([(指定大小+6)÷页大小]+1)×页大小×均衡系数N。如上所述的芯片存储器的写数据方法,其中,所述将均衡数据从所述空间区域的起始地址开始写入芯片存储器的N个指定大小的空间区域的过程包括以下步骤:(1)选择均衡空间TLVList中的第一个TLV1,TLV1的Tag加1,写数据的长度到Length,写数据到Value;(2)在均衡空间TLVList中从前往后或者从后往前遍历查找第一个比TLV1的Tag小的TLVn,遍历查找时取的数据间隔为TLV的实际大小;如果未找到满足要求的TLVn,则表示TLVList已经被全部轮流写过一次,返回到TLV1,重复以上步骤,开始新的一次轮流写数据,直至数据被写完;如果找到了满足要求的TLVn,表示TLVList中还有本次轮流写未曾写过的TLV,TLVn的Tag加1,写数据的长度到Length,写数据到Value;重复步骤(2)。一种芯片存储器的读数据方法,所述数据是按照上述方法写入芯片存储器中的数据,包括以下步骤:在空间区域TLVList中,遍历查找最后一个与TLV1的Tag相同的TLVn,遍历查找时取的数据间隔为TLV的实际大小;选择找到TLVn,读取该TLVn中的数据。如上所述的芯片存储器的读数据方法,其中:所述遍历顺序为从前往后或者从后往前。一种芯片存储器的读、写数据的方法,包括上述写数据方法,以及上述读数据方法。一种芯片存储器的写数据系统,包括:用于使用芯片存储器的N个存储单元轮流存储需要频繁更新数据的存本文档来自技高网
...

【技术保护点】
1.一种芯片存储器的写数据方法,包括以下步骤:使用芯片存储器的N个存储单元,轮流存储需要频繁更新的数据;所述N为均衡系数,N为正整数,N≥2;通过逻辑控制当前哪个存储单元中的数据有效。

【技术特征摘要】
1.一种芯片存储器的写数据方法,包括以下步骤:使用芯片存储器的N个存储单元,轮流存储需要频繁更新的数据;所述N为均衡系数,N为正整数,N≥2;通过逻辑控制当前哪个存储单元中的数据有效。2.如权利要求1所述的芯片存储器的写数据方法,其特征在于,所述使用芯片存储器的N个存储单元,轮流存储需要频繁更新的数据的过程包括以下步骤:将芯片存储器划分为普通区域和均衡区域;将数据划分成普通数据和均衡数据,所述普通数据是指不需要频繁更新的数据,所述均衡数据是指需要频繁更新的数据;判断待写数据为普通数据还是均衡数据;如果是普通数据,则将普通数据写入到芯片存储器的普通区域中;如果是均衡数据,则将均衡数据写入到芯片存储器的均衡区域中。3.如权利要求2所述的芯片存储器的写数据方法,其特征在于,所述将芯片存储器划分为普通区域和均衡区域包括以下四种方式:从地址由低到高将芯片存储器划分为普通区域和均衡区域;或者从地址由低到高将芯片存储器划分为均衡区域和普通区域;或者从地址由低到高将芯片存储器划分为普通区域、均衡区域和普通区域;或者从地址由低到高将芯片存储器划分为均衡区域、普通区域和均衡区域。4.如权利要求2所述的芯片存储器的写数据方法,其特征在于,所述判断待写数据为普通数据还是均衡数据依据数据类型来判断,如果待写数据为普通类型,则为普通数据;如果待写数据为均衡类型,则为均衡数据;或者依据写数据时的目的地址位于普通区域还是均衡区域来判断,如果目的地址位于普通区域,则为普通数据;如果目的地址位于均衡区域,则为均衡数据。5.如权利要求2所述的芯片存储器的写数据方法,其特征在于,所述将普通数据写入到芯片存储器的普通区域中的过程包括以下步骤:在普通区域中划出指定大小的空间区域,对该空间区域内的值进行初始化,返回该空间区域的起始地址;将普通数据从所述空间区域的起始地址开始写入芯片存储器。6.如权利要求5所述的芯片存储器的写数据方法,其特征在于,所述在普通区域中划出指定大小的空间区域的方法为:如果芯片存储器支持字节写,则划出的空间区域大小等于指定大小;如果芯片存储器支持页擦页写,当指定大小是页大小的整数倍时,则划出的空间大小为指定大小,当指定大小不是页大小的整数倍时,则划出的空间大小为([指定大小÷页大小]+1)×页大小。7.如权利要求2所述的芯片存储器的写数据方法,其特征在于,所述将均衡数据写入到芯片存储器的均衡区域中的过程包括以下步骤:在均衡区域中划出N个指定大小的空间区域;对该空间区域内的值进行初始化,返回该空间区域的起始地址;将均衡数据从所述空间区域的起始地址开始写入芯片存储器的N个指定大小的空间区域。8.如权利要求7所述的芯片存储器的写数据方法,其特征在于:所述在均衡区域中划出N个指定大小的空间区域采用TLVList数据结构,所述TLV为TagLengthValue的缩写;所述Tag为4字节,用于控制选择哪个TLV来写数据;所述Length为2字节,用于表示实际有效数据的长度;所述Value是指定大小的实际数据;所述List的个数为均衡系数N。9.如权利要求7所述的芯片存储器的写数据方法,其特征在于,所述在均衡区域中划出N个指定大小的空间区域的方法为:如果芯片存储器支持字节写,则划出的空间大小为:(指定大小+6)×均衡系数N;如果芯片存储器支持页擦页写,当(指定大小+6)是页大小的整数倍时,则划出的空间大小为(指定大小+6)×均衡系数N;当(指定大小+6)不是页大小的整数倍时,则划出的空间大小为:([(指定大小+6)÷页大小]+1)×页大小×均衡系数N。10.如权利要求7所述的芯片存储器的写数据方法,其特征在于,所述将均衡数据从所述空间区域的起始地址开始写入芯片存储器的N个指定大小的空间区域的过程包括以下步骤:(1)选择均衡空间TLVList中的第一个TLV1,TLV1的Tag加1,写数据的长度到Length,写数据到Value;(2)在均衡空间TLVList中从前往后或者从后往前遍历查找第一个比TLV1的Tag小的TLVn,遍历查找时取的数据间隔为TLV的实际大小;如果未找到满足要求的TLVn,则表示T...

【专利技术属性】
技术研发人员:郑江东王幼君
申请(专利权)人:北京握奇智能科技有限公司北京握奇数据股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1