电子计数器|电子计米器—无锡市华建电子仪器研究所

联系我们

地址:无锡市金山北科创园会北路28-83号
电话:+86-510-83715557
传真:+86-510-83703360
网址:www.hjelectronic.com

当前位置: 首页 > 新闻资讯 > 公司动态

电子计数器以及用于电子计数的方法

关键词:电子计数器 电子码表 电子计米器 来源:华建电子仪器 时间:2016-04-10 18:24:42 浏览量:
电子计数器以及用于电子计数的方法。该电子计数器包括存储单元的序列和增量逻辑,每个存储单元都是非易失性的并且支持1状态和0状态,计数器被配置成,在存储单元的序列的存储单元中,将计数器当前的计数状态的至少一部分表示为1状态和0状态的模式;增量逻辑被配置成使1状态和0状态的模式前进到下一个模式,以表示计数器的增量,增量逻辑包括编程增量逻辑和擦除增量逻辑,增量逻辑被配置成在编程阶段和擦除阶段之间交替,在编程阶段中,编程增量逻辑使模式前进;在擦除阶段中,擦除增量逻辑使模式前进。
【专利说明】电子计数器以及用于电子计数的方法
【技术领域】
[0001]本发明涉及非易失性有限寿命存储器中的电子计数器,该电子计数器包括存储单元的序列和增量逻辑,每个存储单元都是非易失性的并且支持I状态和O状态,该电子计数器被配置成在存储单元的序列的存储单元中,将计数器当前的计数状态的至少一部分表示为I状态和O状态的模式,以及增量逻辑被配置成使I状态和O状态的模式前进到下一个模式,以表示计数器的增量。
【背景技术】
[0002]在许多应用中,电子设备都需要非易失性的非递减计数器。例如,可能需要这样的计数器来跟踪设备的使用量。例如,为了保修的原因,可能要跟踪设备多久被上电一次。需要非易失性的非递减计数器的另一个原因是出于安全的目的。例如,通过引用结合在本文中的申请号为US2010 / 0318786,标题为“用于分布式系统的可信硬件组件”的美国专利申请公开了一种包括单调非递减计数器的可信硬件组件。其他非递减计数器的应用包括避免回滚攻击,在回滚攻击中,攻击者试图将整个设备回滚到以前的状态,例如以延长在数字权利下对内容的访问。
[0003]在非易失性存储器中,特别是在EEPROM存储器中,实现计数器的一个特殊方面是,存储器对它支持的程序擦除周期数可能有限制。
[0004]计数器的典型实现是二进制计数器,其中计数器的值存储在非易失性存储器中。二进制计数器的优势是需要最少的位数来支持特定的计数范围。计数到2~N-L只需要Η位的存储单元。另一方面,使用二进制表示,计数器在每次增量时切换最不重要的位。这导致在EEPROM中,在最不重要的位中周期数非常高,可能会超过EEPROM的寿命(寿命是指EEPROM存储单元直到存储单元的使用寿命结束为止能够被编程然后再被擦除的周期数)。发生故障的设备很可能是、特别是Η的值比较大的设备。
[0005]比二进制计数器值稍好一点的方法是使用格雷编码,在格雷编码中进行位编码以便从一个计数器状态变化到下一个计数器状态时,只有一个位发生变化(并不总是最不重要的位)。这将使周期数分布的稍微好一些,但是与所使用的存储单元的数量相比,周期的总数仍然非常高。即使使用平衡格雷编码,对于Η的值比较大的情况,位的变化数最终将会超过寿命,其中,在平衡格雷编码中,位的变化在各个位上是分布不均的。
[0006]在复杂的系统如闪存中使用非常复杂的方法来均衡耗损。这些方法在编码上需要比较大的付出,只适用于复杂的文件系统。基本概念是:“受损”的存储单元被重新定位到其他存储区域。
[0007]专利号为5231592的美国专利公开了在电可擦可编程只读存储器(EEPROM)上实现的已知的计数器。寿命为V的EEPR0M,每个存储单元被设计为最多可以被擦除和编程V次。EEPROM被划分成数字区域和N个计数区域,在N个计数区域中以二进制表示来存储计数值,每个计数区域能够存储从O到V的计数值,数字区域用于以二进制表示来存储数字,表示目前正在使用中的计数区域。计数区域被用于连续地存储N*V次计数,最大值为V~2。【发明内容】
[0008]虽然已知的计数器能够超出寿命计数,而不会使各个存储单元超出它们的寿命,但是这些已知的计数器有很多缺点。例如,根据上述设计的计数器不能超过V~2这个限制。此外,计数器需要大量的位数来实现计数。
[0009]至少由于这些原因,需要改进的计数器。
[0010]本发明提出的电子计数器包括存储单元的序列和增量逻辑。存储单元的序列中的每个存储单元是非易失性的,并且支持I状态和O状态。I状态可以被称为“编程状态”,O状态可以被称为“擦除状态”。该计数器被配置成,在存储单元的序列的存储单元中,将计数器当前的计数状态的至少一部分表示为I状态和O状态的模式。例如,计数器可以采用另外的存储器,包括可能的另外的序列来表示计数状态。
[0011]增量逻辑被配置成使I状态和O状态的模式前进到下一个模式,以表示计数器的增量。增量逻辑包括编程增量逻辑和擦除增量逻辑,增量逻辑被配置成在编程阶段和擦除阶段之间交替,在编程阶段中,编程增量逻辑使模式前进;在擦除阶段中,擦除增量逻辑使模式前进。编程增量逻辑被配置成将存储单元的序列中的下一个存储单元从O状态编程为I状态。当存储单元的序列中的所有存储单元都处于I状态时,编程阶段结束。擦除增量逻辑被配置成将存储单元的序列中的下一个存储单元从I状态擦除成O状态。当存储单元的序列中的所有存储单元都处于O状态时,擦除阶段结束。
[0012]对在存储单元的序列中表示的计数状态的部分的计数操作在整个计数周期中需要非常少的编程操作和擦除操作。在编程阶段,每个存储单元仅被编程一次,在擦除阶段,每个存储单元仅被擦除一次。用Η来表示序列中的存储单元的数量,计数器可以表示2η个不同的模式,即从O到(2η_1)计数。从计数开始直到计数器溢出的整个周期,即模式重复,每个存储单元只需要一个寿命周期,一个寿命周期是一个编程操作和一个擦除操作。此外,计数器可以达到的最大值仅仅受被分配的存储单元的数量的限制,而不受存储单元的最大寿命的限制。
[0013]存储单元的序列中的一个存储单元被表示为最后一个存储单元。存储单元的序列中的一个存储单元被表示为第一个存储单元。除了最后一个存储单元,每个存储单元都有下一个存储单元。序列可以被实现为一个或多个存储器字或一个或多个存储器字的部分。序列可以被实现为数组数据结构。
[0014]如果存储单元具有有限的寿命,被表示为V,则每个存储单元都可以被编程V次以及擦除V次。使用这样的存储单元,计数器可以从O到2η-1计数V次。该计数器因此可以
重复使用。
[0015]电子计数器特别适合在EEPROM存储器中实现的计数器。在实施例中,存储单元的序列中的存储单元是EEPROM存储单元。某些类型的EEPROM存储单元具有有限的寿命,通常是100000次。我们将使用100000作为寿命的示例值。该计数器设计也适用于具有更高或更低寿命的存储器。
[0016]在实施例中,计数器包括非易失性的高字存储器和高字增量逻辑。高字存储器用来存储该计数器的计数状态的不同部分。然而,使用二进制位数系统将计数状态的这个部分编码为二进制数。通常情况下,高字存储器中的位是从最不重要的位到最重要的位排序。优选地,高字存储器与存储单元的序列在同一个物理存储器中实现,虽然是在不同的位置上实现。
[0017]高字增量逻辑被配置成对高字存储器中表示的二进制数执行增量。在存储单元的序列中表示的计数状态的部分还可以被称为低字。在典型的操作中,通过对低字执行增量来对计数器执行增量。当低字溢出时,低字计数器重新开始,例如低字计数器复位,并且高位字被增加。
[0018]选择编程阶段和擦除阶段其中一个阶段结束来触发对高字执行增量。例如,当编程阶段结束时或擦除阶段结束时,高字增量逻辑对高字执行增量。计数器被配置成在编程阶段和擦除阶段中特定的一个阶段结束时对高字执行增量。
[0019]高字计数器是非常有效的,在这个意义上,它需要很少的存储器来编码大量的不同的模式。然而,由于使用二进制计数,任何增量通过溢出潜在地改变多个存储单元。在实施例中,用于在另外的存储器中计数的存储单元的数量是Ceil (Log(V) / Log(2))。实际上,由于在每次增量时存储单元或者是被编程或者是被擦除,而并不是同时被编程和擦除,因此可以计数到2v次而不会违反寿命要求,这意味着可以在上式中增加一个存储器。
[0020]采用格雷编码可以在一定程度上提高高字计数器的寿命。变化的存储单元最好散布在整个存储器中。在对格雷编码的不同选择中,平衡格雷编码是实现这一点的一个不错的选择。但是,请注意,并不是必须要使用格雷编码。使用更传统的二进制位数系统可以大大简化设计。
[0021]将低寿命但是高存储大小效率的高字计数器与高寿命但是低存储大小效率的低字计数器相结合是相当有效的,其中低寿命就是指不能经常重复使用。通过增加存储单元的序列中的存储单元的数目,计数器可以被配置成计数到任何期望的最大值。
[0022]增量逻辑可以被配置成,从存储单元的序列中的最后一个存储单元的状态来确定存储单元的序列当前的阶段。如果最后一个存储单元是处于O状态,则当前的阶段是编程阶段。如果最后一个存储单元是处于I状态,则当前的阶段是擦除阶段。
[0023]在实施例中,计数器包括多个低字计数器。计数器可以包括存储单元的多个序列,存储单元的多个序列中的每个存储单元是非易失性的并且支持I状态和O状态,计数器被配置成在存储单元的多个序列中的存储单元中,将计数器当前的计数状态的多个子状态表示为I状态和O状态的模式,用表示序列是非激活的模式来配置存储单元的多个序列中除了一个以外的所有序列,用与表示序列是非激活的模式不同的模式来配置存储单元的多个序列中的一个序列,该模式是全I状态或全O状态。增量逻辑被配置成确定存储单元的多个序列中没有存储非激活模式的激活序列,并且增量逻辑被配置成使激活序列前进到下一个模式,在下一个模式达到非激活模式时,增量逻辑进一步使存储单元的多个序列中的下一个序列前进。
[0024]将存储单元组织成多个序列而不是单一序列有很多优点。多个序列显著地扩大了实施者优化设计的自由度。例如,可以在存储器上使用多个序列实现计数器,该计数器不能单独变位。EEPROM存储器通常被组织在字中(例如,在16位字中);对字进行擦除即仅仅是对16位的一组组位进行擦除。在这样的组中的所有单个位被设置之前,编程单个位的操作可能会导致严重妨碍所需的擦除操作。多个序列的多个最后一个存储单元或者甚至所有最后一个存储单元可以被存储在同一个存储器字中。因此,可以通过相对少的存储器访问,很快地获得多个序列中转变要被更新的序列的位置。
[0025]在实施例中,存储单元的多个序列被存储在可写的非易失性存储器的多个存储器字中,每个存储器字包括多个位,存储器字的多个位的每个位实现多个序列的不同序列的存储单元。虽然不是必要的,如果存储器字中的位数等于多个序列中的序列数,则可以减少激活序列中的变化数。如果存储器在存储器字级别上支持编程操作和擦除操作,则该实施例是特别有利的。字中的位数对于所有字都是相同的;对于多个存储器,位数等于8、16、32或64。
[0026]也可以通过增量逻辑来确定一个序列是否是激活的。例如,增量逻辑可以被配置成,从第一个存储单元和最后一个存储单元的状态来确定多个序列中的一个序列当前的阶段。由于这个原因,也有利于将多个第一个存储单元或所有第一个存储单元都放置在相同的存储器字中。
[0027]在实施例中,计数器包括另外的高字存储器,该另外的高字存储器是非易失性的,其中高字增量逻辑被配置成:确定高字存储器和另外的高字存储器哪一个存储器存储较高的数,哪一个存储器存储较低的数,对较高的数执行增量,以及将增量后的较高的数写入存储较低的数的存储器。以这种方式,即使在写入过程中计数器断电,也总是存在有效的高字,即增强了撕裂安全。
[0028]在实施例中,高字存储器以及可选的另外的高字存储器包括头部。头部可以包括高字计数状态的固定模式或高字计数状态的校验和。这允许检测撕裂,即意外断电。
[0029]为了找到下一个要编程或擦除的存储单元,增量逻辑被配置成执行二进制搜索,以找到下一个存储单元。优选地,使用具有两个指针的二进制搜索。
[0030]即使计数器是非易失性的,也可以通过使用一些易失性的存储器来提高它的效率。例如,计数器可以包括易失性的索引存储器。索引存储器存储指向存储单元的序列中表示下一个存储单元的存储单元的索引。增量逻辑被配置成在执行增量时对索引存储器执行增量。在启动时例如通过对序列进行二进制搜索或线性搜索,对索引进行初始化。在实施例中,索引存储器包括另外的索引,该另外的索引指向多个序列中的激活序列。索引存储器可以被实现为寄存器、SRAM等。为了清楚起见,不需要实现索引存储器,因为更新计数状态所需的所有信息都包含在非易失性存储器中,即都包含在序列和高字中。然而,在快速的易失性存储器中跟踪将要发生下一个更新的位置,可以改善更新的运行时间。可以在计数器上电时更新索引存储器,或者在计数器上电后第一次增量之前的某个时刻更新索引存储器。
[0031]可以在EEPROM中实现计数器所需的存储器,例如多个序列和/或高字存储器。
[0032]计数器是一种电子装置,例如便携式电子设备,可以作为便携式移动电子装置诸如移动电话的一部分。通过采用应对措施使计数器屏蔽未经授权的访问,计数器可以作为安全的非递减计数器的一部分,在此不对这些应对措施进行进一步讨论。计数器可以是诸如机顶盒、计算机、电视等电子设备的一部分。
[0033]本发明的另一个方面涉及一种用于电子计数的方法,其中计数器当前的计数状态的至少一部分在存储单元的序列中的存储单元中被表示为I状态和O状态的模式。该方法包括:使存储单元的序列的I状态和O状态的模式前进到下一个模式,以表示计数器的增量,计数器的增量在编程阶段和擦除阶段之间交替,其中,在编程阶段中,将存储单元的序列中的下一个存储单元从O状态编程为I状态,当存储单元的序列中的所有存储单元都处于I状态时,编程阶段结束,在擦除阶段中,将存储单元的序列中的下一个存储单元从I状态擦除成O状态,当存储单元的序列中的所有存储单元都处于O状态时,擦除阶段结束。
[0034]根据本发明的方法可以采用如下方式来实现:作为计算机实现的方法在计算机上实现,或者在专用硬件中实现,或者采用这两种方式相结合实现。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品中。计算机程序产品的实例包括存储器设备,光存储设备,集成电路,服务器,在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上的非临时性程序代码装置,用于当所述计算机程序产品在计算机上执行时,执行根据本发明的方法。
[0035]例如,在系统上包括非易失性存储器,即EEPR0M,以及处理器。该处理器可以执行存储在非易失性存储器中的软件,该软件控制计数器,计数器的计数状态作为软件被存储在存储器的不同部分中。这样的计数器可以对各种事情计数,例如,启动次数,执行的加密操作的次数,签名次数,对存储系统重写的次数。包括安全计数器的计数器应用非常广泛。
想了解更多关于电子计数器,电子计米器的相关信息,请持续关注无锡市华建电子仪器研究所官网www.hjelectronic.com
主营产品:电子计数器 电子码表 电子计米器