用于双向计数器的装置和系统的制作方法

文档序号:12802492阅读:347来源:国知局
用于双向计数器的装置和系统的制作方法

本实用新型总体上涉及电子电路,诸如使用闪存的电路。本实用新型涉及计数器的形成,计数器的值存储在闪存或EEPROM型的存储器中,以及用于双向计数器的装置和系统。



背景技术:

在许多应用中,需要非易失性地存储计数器的结果使其能够不受电路电源影响地进行保存。这尤其是将微处理器与至少一个非易失性存储器集成的微电路卡的情况,更一般地为要求非易失性存储器计数元件的任何电路的情况。



技术实现要素:

由于闪存的开发,期望能够使用这种存储器来存储计时器的值。

此外,还期望在非易失性存储器(闪存或EEPROM)中具有可以递增或递减计数的计时器。

一个实施例提供了一种用于双向计数器的装置,包括:非易失性存储器;以及电路装置,包括:使用非易失性存储器的至少两个页面来存储计数器值的装置,包括:在至少两个页面的一个页面中存储初始计数器值的装置;和对于所存储的初始计数器值的每次更新,在至少两个页面的一个页面中存储更新值和与更新值相关联的操作码的装置;以及基于所存储的初始值、所存储的更新值和所存储的操作码来确定所述计数器的当前值的装置。

根据一个实施例,当所述一个页面全满时,所述电路装置被配置为:计算所述计数器的当前值;以及在所述至少两个页面的另一页面中将所述计数器的计算出的当前值存储为初始计数器值。

根据一个实施例,所述电路装置被配置为选择性地将所述至少两个页面初始化为第一状态。

根据一个实施例,从包括加法操作码和减法操作码的操作码集合中选择所述操作码。

根据一个实施例,从包括擦除码的操作码集合中选择所述操作码。

根据一个实施例,从包括取消先前操作的代码的操作码集合中选择所述操作码。

根据一个实施例,所述非易失性存储器是闪存。

一个实施例提供了一种用于双向计数器的系统,包括:总线系统;以及控制电路装置,包括:控制计数器在非易失性存储器的多个页面中的存储的装置,包括:在多个页面的一个页面中存储初始计数器值的装置;和对于所存储的初始计数器值的每次更新,在多个页面的一个页面中存储更新值和与更新值相关联的操作码的装置;以及基于所存储的初始值、所存储的更新值和所存储的操作码来确定计数器的当前值的装置。

根据一个实施例,当所述一个页面全满时,所述控制电路装置被配置为:计算所述计数器的当前值;以及在所述多个页面的另一页面中将所述计数器的计算出的当前值存储为初始计数器值。

根据一个实施例,所述控制电路装置被配置为选择性地将所述多个页面初始化为第一状态。

根据一个实施例,包括所述非易失性存储器。

根据一个实施例,所述非易失性存储器是闪存。

根据一个实施例,包括近场通信路由器,所述近场通信路由器包括所述非易失性存储器。

一个实施例提供了一种在至少两个非易失性存储页面中存储计数器的方法,包括:利用初始值来初始化页面,并且对于计数器值的每次更新,存储更新值和与该值相关联的操作码,从操作码集合中选择操作码,通过对页面的初始值施加连续更新操作来给出计数器的当前值。

根据一个实施例,当页面全满时,计算其最终值,然后存储为下一页面的初始值。

根据一个实施例,该方法包括初始化步骤,其中用于计数器的所有存储页面都被初始化为第一状态。

根据一个实施例,操作码包括来自加法和减法中的至少一个代码。

根据一个实施例,操作码包括用于擦除存储器的整个页面的代码。

根据一个实施例,操作码包括用于擦除先前操作的代码。

根据一个实施例,页面包括32、64、128、256、512、1,024或2,048个字节。

一个实施例提供了一种根据上述方法编程的闪存。

一个实施例提供了包括这种闪存的电路。

在一个实施例中,一种方法包括:使用存储器的至少两个非易失性存储页面来存储计数器值,这种存储包括在至少两个非易失性存储页面的一个页面中存储初始计数器值,并且对于所存储的初始计数器值的每次更新,在至少两个页面的该一个页面中存储更新值和与更新值相关联的操作码;以及基于存储的初始值、存储的更新值和存储的操作码来确定计数器的当前值。在一个实施例中,该方法包括:当这一个页面全满时,计算计数器的当前值,以及在至少两个非易失性存储页面的另一页面中将计数器的计算出的当前值存储为初始计数器值。在一个实施例中,该方法包括:将至少两个非易失性存储页面初始化为第一状态。在一个实施例中,从包括加法操作码和减法操作码的操作码集合中选择操作码。在一个实施例中,从包括擦除码的操作码集合中选择操作码。在一个实施例中,从包括取消先前操作的代码的操作码集合中选择操作码。在一个实施例中,页面包括32、64、128、256、512、1,024和2,048字节中的一种。

在一个实施例中,一种装置包括非易失性存储器以及电路装置,该电路装置被配置为:使用非易失性存储器的至少两个页面来存储计数器值,这种存储包括在至少两个页面的一个页面中存储初始计数器值,并且对于所存储的初始计数器值的每次更新,在至少两个页面的一个页面中存储更新值和与更新值相关联的操作码;以及基于存储的初始值、存储的更新值和存储的操作码来确定计数器的当前值。在一个实施例中,当一个页面全满时,该电路装置被配置为:计算计数器的当前值;以及在至少两个页面的另一页面中将计数器的计算出的当前值存储为初始计数器值。在一个实施例中,该电路被配置为选择性地将至少两个页面初始化为第一状态。在一个实施例中,从包括加法操作码和减法操作码的操作码集合中选择操作码。在一个实施例中,从包括擦除码的操作码集合中选择操作码。在一个实施例中,从包括取消先前操作的代码的操作码集合中选择操作码。在一个实施例中,非易失性存储器是闪存。

在一个实施例中,一种系统包括总线系统以及控制电路装置,该控制电路装置被配置为:控制计数器在非易失性存储器的多个页面中的存储,这种存储包括在多个页面的一个页面中存储初始计数器值,并且对于所存储的初始计数器值的每次更新,在多个页面的一个页面中存储更新值和与更新值相关联的操作码;以及基于存储的初始值、存储的更新值和存储的操作码来确定计数器的当前值。在一个实施例中,当一个页面全满时,控制电路装置被配置为:计算计数器的当前值;以及在多个页面的另一页面中将计数器的计算出的当前值存储为初始计数器值。在一个实施例中,控制电路被配置为选择性地将多个页面初始化为第一状态。在一个实施例中,该系统包括所述非易失性存储器。在一个实施例中,非易失性存储器是闪存。在一个实施例中,该系统包括近场通信路由器,其包括非易失性存储器。

在一个实施例中,一种非瞬态计算机可读介质,其内容使得计数器执行方法,该方法包括:使用非易失性存储器的多个页面来存储计数器值,这种存储包括在多个页面的一个页面中存储初始计数器值,并且对于所存储的初始计数器值的每次更新,在多个页面的一个页面中存储更新值和与更新值相关联的操作码;以及基于存储的初始值、存储的更新值和存储的操作码来确定计数器的当前值。在一个实施例中,该方法包括:当一个页面全满时,计算计数器的当前值,以及在多个页面的另一页面中将计数器的计算出的当前值存储为初始计数器值。在一个实施例中,该方法包括从包括加法操作码和减法操作码中的至少一个的操作码集合中选择操作码。

附图说明

图1是应用将要描述的实施例的电子电路类型的示例的框图;

图2以框的形式示意性示出了使用NFC路由器的系统的示例;

图3是闪存的示例的简化表示;以及

图4示出了在闪存中编程计数器的方法的实施例。

具体实施方式

在不同附图中用相同的参考标号表示相同的元件。为了简化,只有那些对于理解所述实施例有用的动作和元件才被示出并详细描述。具体地,写、读和擦除步骤期间闪存或EEPROM存储器的电行为没有详细描述,所描述的实施例与通常的闪存和EEPROM技术兼容。此外,也没有详细描述更新存储在闪存或EEPROM存储器中的计数器的应用,所描述的实施例也与通常的应用兼容。

当期望擦除步骤的数量最小化时,使用非易失性存储器来存储计数器会产生一定问题。

传统地,当计数器存储在EEPROM中时,在存储器中以字节或字来执行编程和擦除,这提供了充分的间隔尺寸(granularity)。

另一方面,期望使擦除操作的数量最小化以增加存储器寿命。

另一方面,这种操作不与闪存兼容。

闪存从初始状态编程到状态0(单元的非导电状态)。这意味着存储器单元应该被设置为高态,其中,为了存储数据,选择其不作用于位状态或者将该位编程为0。

EEPROM具有类似的编程,但是从初始状态到状态1。

应该注意,参照状态1或状态0来分别指定充电或放电存储点纯粹是传统方式。

此外,需要对整个存储页面执行擦除(设置回到初始状态)。页面被定义为能够同时被寻址以擦除的最小尺寸。实际上,这对应于串行接收数据以将它们并行传送至存储平面用于存储的寄存器的尺寸。通常,在闪存中,页面目前包括32、64、128、256、512、1,024或2,048字节。

现在,计数器要求切换单个位(或者少量位,根据递增/递减步骤)的状态。

在闪存或EEPROM中,与字节编程操作(通常为数十微妙的级别)相比,页面擦除操作相对较长(通常为几毫秒的级别)。

包括擦除页面以对于每次递增编程新的计数器状态的处理将占用太多的时间。具体地,在许多应用中,可用于写入非易失性存储器的时间是有限的。这在使用非接触近场通信技术(NFC)中尤其如此,这是因为两个通信元件之间的交易的持续时间仅仅是暂时的并且在任何时间中断都存在风险。现在,在这种应用中,在非易失性存储器中使用计数器总是与访问特定数据的安全问题相关。计数器的可靠性是关注点。必须实施所谓的原子性过程来提高可靠性。然而,这种过程进一步增加了更新非易失性存储器中的数据的需要。

图1以框的形式示意性示出了将要描述的实施例可应用于其的电路1的示例。电路1包括:处理单元12(PU),其能够通信一个或多个数据、地址;以及控制总线13,具有不同的元件,例如包括与电路1的外部进行通信的输入/输出接口14(I/O);一个或多个易失性或非易失性存储器15(MEM);一个或多个功能模块(通过块16来表示,FCT),与应用相关联;以及至少一个闪存3(FLASH)或EEPROM,期望在其中存储计数器。其他元件能够连接至总线13和/或包括在电路中。存储器3可以在电路1的外部。

下文将描述存储计数器的闪存的示例。然而,将要描述的技术还应用于存储在EEPROM中的计数器的管理,尽管写和擦除操作不是必须具有相同的间隔尺寸。

图2是设备2的示例的简化表示,其中设备2包括一个或多个电路1’,形成能够经由不同的总线13与设备2的剩余部件通信的近场通信路由器(NFC)。NFC路由器被用作设备2的不同元件和近场通信的天线22与相邻设备(未示出)之间的接口。在图2的示例中,NFC电路包括至少一个闪存3。

一个实施例具有至少一个计数器,其值存储在闪存中。

图3较为示意性地示出了闪存3的架构的示例,诸如一般组织成块32(BLOCK)的存储器,每一块都包括多个页面34(PAGE),每一个页面都具有给定数量的字节,例如512、1,024或2,048字节。经由输入寄存器36(REG)来执行将数据DATA写入存储器3或者擦除数据。数据通常以串行通信或以字节发送到写寄存器36中,然后并行地朝向存储器块释放。在读模式中,区域的寻址还使得通过输出读取数据的输出寄存器38来读取页面。

图3的表示是简化的,并且没有示出不同的控制和寻址电路。

闪存存储数据的大小小于一个页面的数据的一般用法占用太多的时间。确实,对于每个将要存储在计数器中的新值,需要擦除整个页面以能够重新编程新值。

在将要描述的实施例中,为计数器分配了多个页面(至少两个)并且通过擦除它们来初始化这些页面(例如,用状态1填充,或者十六进制表示法的FF)。然后,代替在存储器中存储计数器值,在存储器中存储计数器的初始值,然后是一系列递增或递减值和与其相关联的操作。

因此,计数器的控制电路(处理单元12)管理允许非易失性存储器中的计数器的操作的至少一个以及可能更多(例如,四个)的操作码。在一个实施例中,四个操作码可以是:

-不操作(任选):该操作相当于取消之前的操作;

-加法:该操作包括递增与操作码相关联的操作数的计数器的值;

-减法:该操作包括递减与操作码相关联的操作数的计数器的值;以及

-擦除(任选):该操作相当于删除所有页面(例如,整个设置为1(FF))。

在写入计数器期间,即,递增或递减期间,处理单元管理计数器向存储器中写入操作码和与该码相关联的操作数。

在读取计数器值期间,处理单元读取存储在该页面的第一个字中的页面的初始值以及存储在有效页面中的不同操作(操作码和操作数)。

当页面全满时,通过作为初始值存储前一页面的结果(用所有页面操作来更新初始值)来初始化下一页面。因此,处理单元不需要对于每个读操作重新计算所有页面来获得计数器的当前值,而是仅需要计算当前页面。

实施例利于快速以字节写入,当整个页面全满时保留相对较长的擦除步骤(与写操作相比)。

应注意,不管怎样,以全页面来读取闪存。因此,不会不利地必须读取整个页面以计算计数器的当前值。

图4示意性示出了更新闪存中的计数器的方法的实施例。

在计数器初始化阶段中,通过初始化分配给计数器的所有页面来开始(块41,初始化页面)。这种初始化对应于以状态1填充所有位。在图4中,以十六进制表示法写入字节的内容。因此,在图4的示例中,每条线都包括8个字节。

在一个实施例中,将四个字节分配给每个计数器更新操作(操作码和操作数)。

一旦页面被初始化,就通过将该初始值存储在地址页面的第一地址中来初始化第一页面(块43,初始化页面0)。例如,该初始化为零值00且页面的前四个字节被写入0。

然后,准备使用计数器。

在更新计数器值的第一操作中,处理单元发送表示分配给计数器的递增或递减的操作(块45,操作)。对应于该操作的操作码OPi及其操作数(V1)被存储在存储器的第一页面P0的下一地址处。

根据应用,处理单元可以在写入之前引起或不引起计数器的当前值的读取。

在计数器寿命期间,顺序执行更新操作(块45,操作)并且渐进地填充第一存储页面(例如,V2、OPi、…、Vn、OPi)。

当页面P0全满时,在下一写入操作中,控制单元根据初始值(00)和存储在页面P0中的n个更新操作计算计数器的当前值(块47,计算)。然后,在下一页面P1中作为初始值来存储值VAL(块43’,初始化页面1)。

此后,从值VAL开始执行更新操作。因此,不用从开头重新计算计数器的整个内容,只需要计算当前页面的计数器的内容即可。

在一个实施例中,一旦一个页面全满且其最终值已经作为初始值传送至下一个页面,则擦除该页面,即,所有位被设置为1。这利于通过擦除其历史来保护计数器。

因此,当另一页面全满时,可通过计数器再次使用一个页面。例如,在简化实施例中,计数器仅使用两个页面并从一个页面交替到另一个页面。

在一个实施例中,计数器可使用一个或多个(例如,四个)可能的操作码。例如,对于严格增加的计数器,不使用减法操作码。相反,对于严格减小的计数器,初始值可以为FF且不使用加法操作码。

然而,根据一个实施例,计数器增加或减小,以能够在非易失性存储器中递增或递减相同的计数器。

任选不操作代码对应于取消先前操作。例如,如果队列i的操作将计数器递增3且下一操作期望将其递减3,则代替存储两个连续的递增和递减操作,可以取消递增操作。为此,可以取消存储递增操作的存储区域(设置为值0)。该线丢失,但是仅使用过一条线来代替两条线。例如将这种操作用于保护免受集成电路攻击的计数器,其中如果没有检测到攻击,则计数器通常在功能被监控之前递增,然后在功能的结束处递减相同的值。

选择页面的大小调整计算计数器值所需的时间(从页面的开始计算操作所需的时间)。

一个实施例可以较快,尤其与要求从闪存(或EEPROM)中擦除页面的时间相比。

已经描述了各个实施例。各种改变、修改和改善对于本领域技术人员来说是显而易见的。具体地,本领域技术基于上面给出的功能表示以及通过使用通用电路能够实践所描述的实施例。具体地,组织非易失性存储器的寻址以及生成用于其控制及其寻址的信号使用常用的技术。

这种改变、修改和改善作为本公开的一部分,并且落入本公开的精神和范围内。因此,前面的描述只是示例而不用于限制。

一些实施例可以采用计算机程序产品的形式或包括计算机程序产品。例如,根据一个实施例,提供了一种计算机可读介质,其包括用于执行上述一种或多种方法或功能的计算机程序。该介质可以为物理存储介质(诸如只读存储器(ROM)芯片、或者如数字通用盘(DVD-ROM)、压缩盘(CD-ROM)的磁盘、硬盘、存储器)、网络或通过适当的驱动器或经由适当的连接读取的便携式介质物,包括以在一个或多个这种计算机可读介质上存储且通过适当的读取设备读取的一个或多个条形码或其他相关代码来编码。

此外,在一些实施例中,可以以其他方式来实施或提供一些系统和/或模块和/或电路和/或块,诸如至少部分地以固件和/或硬件实现,包括但不限于一个或多个专用集成电路(ASIC)、数字信号处理器、分立电路、逻辑门、标准集成电路、状态机、查找表、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等以及采用RFID技术的设备,以及它们的各种组合。

上述各个实施例可以进行组合以提供又一些实施例。如果需要的话可以修改实施例的各个方面以采用各种专利、申请和公开的改变,从而提供又一些实施例。

根据上面详细的描述,可以对实施例进行这些和其他改变。通常,在以下权利要求书中,所使用的术语不应将权利要求限于说明书和权利要求书中公开的具体实施例,而是应该包括所有可能的实施例连同这些权利要求享受权利的等效物的全部范围。因此,不通过本公开来限制权利要求。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1