专利名称:延长贮存在非易失存储器中顺序计数器单元寿命的方法与设备的制作方法
背景技术:
I.发明领域本发明一般涉及电子计数器,尤其涉及用持续使用后会耗尽的存储器件或单元构制的电子计数器,而且更涉及可延长用于构制计数器的存储单元使用寿命的新颖电子计数器。
II.相关技术的说明EEPROM等非易失存储器具有耗尽的存储单元。当将这类非易失存储器里的单元用于构制连续写的典型计数器时,代表计数器最低位的存储单元写得最多,这样使用会很快耗尽。为了保持此计数器,在存储单元耗尽时,必须分配新的存储位置。在许多电子设备中,由于有效的非易失存储单元数量有限,一般不希望为了补偿耗尽的单元而对计数器分配另外的存储单元。因此,提供的计数器能以非易失存储器构制并使得计数器使用的存储单元的损耗最小是有利的。
发明内容
本发明针对用于更新与存贮计数值的方法与设备。根据多个N计数器更新信号的每个信号,从多个二进制存储单元里选择某一个二进制存储单元,并将其状态翻转。在收到N个计数器更新信号后,与多个二进制存储单元分开的寄存器增数,然后根据另外的计数器更新信号重复该过程。在过程每次重复期间,平均以同样的次数翻转每个二进制存储单元。多个二进制存储单元状态和寄存器值代表任何时刻的计数器值。
根据一较佳实施例,利用一换算表有助于确定任一给定时刻的计数值。在该实施例中,对换算表应用多个二进制存储单元状态来确定索引值,然后将该索引值与循环计数值相加而确定计数器值。也可将索引值、循环计数值与偏移值相加来确定该计数器值。
根据另一个方面,在计数器中一个或多个独立的存储单元变成无效时,本发明可以延长计数器的寿命。在该实施例中,在识别出一个二进制存储单元为无效后,可以根据该无效的二进制存储单元修正换算表,并从过程以后重复期间可以选择的多个二进制存储单元中除去该无效的二进制存储单元。
附图简介通过以下结合附图所作的详细描述,本发明的特征、目的和优点就更清楚了,图中用相同的标号表示相应的单元,其中
图1是本发明一较佳实施例中延长单元寿命的计数器的框图。
图2是表示本发明一实例的循环的表,其中根据一连串计数器更新脉冲来翻转本发明的ADDER位。
图3是按本发明的一个较佳实施例的流程图,表示图1所示计数器的增数方法。
图4是一流程图,表示从图1所示计数器中取出计数器值的方法。
较佳实施例的详细描述现在参照图1,这是按本发明的一较佳实施例中延长单元寿命的计数器100的框图。计数器包括非易失存储器10,它包括在对应于ADDER位序列的存储器部分10a中的多个二进制存储单元(位),第二部分10b对应于存贮COUNT值的普通寄存器或二进制计数器,第三部分10c对应于存贮OFFSET值的普通寄存器。非易失存储器的部分10a、10b、10c用控制器20提供的地址信号访问。如下面更全面解释的那样,控制器20有选择地更新贮存在典型计数器里的ADDER位序列、COUNT值和OFFSET值。
举个例说,计数器100的作用如下。控制器20通过把OFFSET值置成开始值,把用于COUNT值的寄存器置零,并把ADDER位序列中所有的位置零,使计数器初始化至开始值。接着,根据多个N计数器更新信号的每个信号,控制器20从ADDER位序列中选出某个二进制存储单元,并且翻转其状态。控制器20在收到N个计数器更新信号后,对用于存贮COUNT值的寄存器增数,然后根据其它计数器更新信号重复该过程。重要的是,正如下面更全面说明的那样,在过程每次重复期间,平均以同样的次数翻转用于构成ADDER位序列的每个二进制存储单元,从而在所有构成ADDER位序列的位之间分布耗损。ADDER位序列的状态和保持COUNT与OFFSET值的寄存器,代表任何规定时刻计数器100存贮的值。如果对ADDER位序列每次连续的写操作(如每次翻转序列中某一位时)以某种方式使被写单元老化,此方式在构成ADDER位序列的所有存储单元之间分布耗损,则构成ADDER位序列的二进制存储单元序列在减少单元磨砂方面非常有效。对于成组擦除和从擦除值开始随每位变化而老化的非易失存储器,可最有效地把ADDER位序列表示成擦除位序列,其中该序列中的一位在每次计数器100增数时翻转。位以任何特定次序改变是无关紧要的。如果ADDER位序列里的任何位因老化或其它故障去擦除或写状态时卡住了,可以考虑将ADDER位序列范围减少每个卡住的位。由于控制器20从ADDER位序列中除去了每个卡住的位(即磨损位),它就响应于每个其它计数器更新信号只用ADDER位序列中的剩余位对ADDER位序列增数。
对于每次修正数据(如一存贮位)都发生老化的非易失存储器,最好用某种序列来代表ADDER位序列,其中一个数据随着计数器100的每次增数改变状态(如翻转)。数据状态变化的序列应该是循环的,从最小ADDER位序列值增加到最大ADDER位序列值,不会对任何特定数造成任额外的老化。相反地,数据翻转的序列将磨损分布于所有代表该ADDER位序列的数据。符合这一准则的位翻转循环很多,通过搜索深度为N的二进制树,可以发现整组序列,其中二进制树的每个节点代表从前一节点的一个数据改变。
现在参照图2,图示的表格表示本发明的一实例的示例性循环,其中本发明的ADDER位响应于一连串控制器20收到的计数器更新脉冲而翻转。在图2示出的实例中,ADDER位序列长度为三位,序列中数据状态变化的循环长度为8(N=8)。因此,在图2实例中,ADDER位序列中位的状态每隔八个计数器更新信号就重复。在循环中接收到最后一个计数器更新信号后,ADDER位序列中位的状态代表的END_OF_CYCLE值,用来指示该COUNT值应响应于下一个计数器更新信号作增数(下面作详述)。
本领域的技术人员应该理解,可以用长度超过三位的ADDER位序列构成本发明的ADDER位序列。他们还应理解,可以用二进制存储单元以外的存储单元(即可以采用两种状态以上的存储单元)构制ADDER位序列。ADDER位序列长度和序列中各数据的状态数的选择,可以认为是设计选择的事项。本发明关注的是响应于每一循环的计数器更新信号,将磨损均匀地分布于所有供ADDER位序列使用的存储单元。
现在参照图3,图示为本发明一较佳实施例的流程图,表示图1示出的计数器的增数方法300。方法300最好在控制器20上以软件实施。在步骤310,控制器20通过把OFFSET值置成开始值、把COUNT值使用的寄存器置零和把ADDER位序列的所有位置零,使计数器100初始化成开始值。在计数器100的开始值为零的情况下(图3所示),OFFSET值将置成零。然而,本领域的技术人员应明白,在步骤310中,通过把某个相应值放入用于存贮OFFSET值的寄存器里,可将计数器100的开始值置成任意选择的值。接着,在收到计数器更新信号(步骤320)之后,在步骤330,将ADDER位序列中的位状态与END_OF_CYCLE值作比较。若ADDER位序列的位与END_OF_CYCLE值相同,就在步骤340对COUNT值增数。由于COUNT值较佳地贮存在普通寄存器里,所以该值以普通方式增数。在步骤350和360,从ADDER位序列中选出某一位,并按某种循环将其翻转(如上述和图2所示),其中在循环每次重复期间,平均以同样的次数翻转每个构成该ADDER位序列的存储单元。
ADDER位序列的状态和保持COUNT与OFFSET值的寄存器,都代表计数器100在任何指定时刻所存贮的值,而且该信息被控制器20用来确定计数器100在任何指定时刻所存贮的值。现在参照图4,该方法400的流程图用于从图1所示计数器里取出计数值。方法400最好在控制器20上以软件实施。在步骤410,控制器20从存储器10里取出OFFSET与COUNT值和ADDER位序列。接着在步骤420,从ADDER位序列中的所有位产生某个数值,该数值用来索引查找表或换算表,而表输出的值(ADDER值)代表自从最近一次到达END_OF_CYCLE值以来ADDER位序列增数的次数。在ADDER位序列中有一个或多个位卡住或磨损的情况中,考虑到失去的位,对换算表作修正。接着在步骤430,控制器将COUNT寄存器里贮存的值乘上对ADDER位序列增数使用的循环长度,算出COUNT值,在图2实例中,循环长度N=4。最后在步骤440,通过将ADDER值(步骤420)、COUNT值(步骤430)和取自存储器的OFFSET值相加,确定计数器100存贮的值。
上面对较佳实施例的描述,可让本领域的任何技术人员掌握和使用本发明。本领域的技术人员显然明白上述诸实施例的各种修改,而且这里确定的一般原理可以应用于其它实施例而无须利用创新才智。因此,本发明并不限于这里示出的方法和设备,而是按照下面权项提出的最广泛的范围。
权利要求
1.一种更新和存贮计数器值的方法,其特征在于包括以下步骤(A)响应于多个N计数器更新信号的每个信号,从多个二进制存储单元里选择一个二进制存储单元,并且翻转所选二进制存储单元的状态;和(B)在步骤(A)之后,对寄存器值增数并重复步骤(A);其中计数值在任何指定时刻都由多个二进制存储单元的状态和寄存器值表示,并且在步骤(A)每次重复期间,平均以同样的次数翻转多个二进制存储单元的每个存储单元。
2.权项1的方法,其特征在于还包括步骤(C)通过对换算表应用多个二进制存储单元的状态,确定索引值;(D)将索引值与循环计数相加,确定计数器值。
3.权项2的方法,其特征在于还包括步骤(E)把多个二进制存储单元之一认定为无效,并根据被认定为无效的该二进制存储单元修正换算表;(F)在步骤(E)之后,从在步骤(A)以后重复期间可以选择的多个二进制存储单元中除去被认定无效的二进制存储单元。
4.权项2的方法,其特征在于,步骤(D)包括将索引值、循环计数与偏移值相加而确定计数器值。
5.权项1的方法,其特征在于,在步骤(B)增数的寄存器对应于普通二进制计数器。
6.一种用于更新和存贮计数器值的设备,其特征在于包括(A)多个二进制存储单元;(B)一个与多个二进制存储单元不同的寄存器;和(C)连接到多个二进制存储单元与寄存器的控制器,用于从多个二进制存储单元里选择一个二进制存储单元,并响应于多个N计数器更新信号的每个信号,翻转所选二进制存储单元的状态;其中控制器每隔N个计数器更新信号对寄存器增数一次,控制器平均以同样的次数翻转多个二进制存储单元的每个二进制存储单元。
7.权项6的设备,其特征在于还包括(C)把多个二进制存储单元的状态转换成索引值的换算表;其中控制器按索引值与寄存器里的值确定计数值。
8.权项7的设备,其特征在于,控制器把多个二进制存储单元之一认定为无效,并根据该被认定无效的二进制存储单元修正换算表;而且从可以响应于后续计数器更新信号选择的多个二进制存储单元中除去该被认定无效的二进制存储单元。
9.权项7的设备,其特征在于,控制器按索引值、寄存器值与补偿值确定计数器值。
10.权项6的设备,其中寄存器对应于普通二进制计数器。
全文摘要
一种更新和存贮计数器值的方法与设备。响应于多个N计数器更新信号的每个信号,从多个二进制存储单元里选出某个二进制存储单元(350),翻转该选出的二进制存储单元的状态(36)。在收到N个计数器更新信号后(320),对与多个二进制存储单元分开的一个寄存器增数(340),然后响应于以后的计数器更新信号重复该过程(320)。在过程每次重复期间,平均以同样的次数翻转多个二进制存储单元的每个存储单元。多个二进制存储单元的状态和寄存器值代表任何指定时刻的计数器值。
文档编号G11C16/06GK1379903SQ00814450
公开日2002年11月13日 申请日期2000年10月19日 优先权日1999年10月19日
发明者J·A·哈钦森四世, L·Y·斯帕尔 申请人:高通股份有限公司