一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

单调计数器及其操作方法与流程

2021-03-30 21:15:00 来源:中国专利 TAG:计数器 单调 操作方法 通讯
单调计数器及其操作方法与流程

本发明涉及通讯技术领域,尤其涉及一种单调计数器及其操作方法。



背景技术:

应答保护单调计数器(replayprotectionmonotoniccounter,rpmc)是指具有单调计数功能的计数器,在应答保护单调计数器中计入的数据后,应答保护单调计数器只会随着计数值的变化单调递增。通常应答保护单调计数器是与flash(快闪存储器)相结合,用于在数据存储过程中来保证读写数据的机密性和完整性。例如,应答保护单调计数器与flash结合用于确定存储器存储次数,当flash每进行一次数据的读写,就在单调计数器中增加一个计数值,因此为flash提供读写数据次数提供一个完整的数据记录;又如,在数据发送过程中,数据单调计数,保证数据的不重复性,进而可以提升数据发送的机密性。

现有技术下的应答保护单调计数器,通常采用加入附加存储块的方式去处理计数器的异常掉电情况和某些特殊情况,以使当异常情况发生时,应答保护单调计数器可以通过读取附加存储块中的标识位的数据来确定当前存储块。但是,采用这种方式,应答保护单调计数器中的附加存储块的标识位需要时时更新,操作方法较为复杂。



技术实现要素:

本发明提供了一种单调计数器及其操作方法,有效地解决了当异常情况发生时,单调计数器确定当前存储块时的操作方法较为复杂的问题。

为了解决上述问题,本发明提供了一种单调计数器,所述单调计数器包括控制器以及多个存储块,所述存储块包括计数基位、标识位、校验位、以及用于存储计数数据的数据位,其中:

所述控制器用于在只有一个所述存储块的所述标识位以及所述校验位有效时,确定所述标识位以及所述校验位有效的所述存储块为当前存储块,当有多个所述存储块的所述标识位以及所述校验位有效时,通过比较所述计数基位的大小从所述多个存储块中确定当前存储块。

进一步优选的,当有多个所述存储块的所述标识位以及所述校验位有效时,所述控制器还用于:

当每个所述存储块为取反写入时,确定记录数据小的所述计数基位对应的所述存储块为当前存储块;及/或,

当每个所述存储块不为取反写入时,确定记录数据大的所述计数基位对应的所述存储块为当前存储块。

进一步优选的,所述控制器还用于读取所述当前存储块的计数值,所述计数值为所述当前存储块的数据位以及计数基位记录的数据之和。

进一步优选的,所述控制器还用于:

当所述当前存储块未写满时,在所述当前存储块中第一个未存储计数数据的数据位中写入数据进行计数;及/或,

当所述当前存储块写满时,将所述数据位未存储计数数据的所述存储块切换为所述当前存储块,并进行数据写入。

另一方面,本发明还提供了一种单调计数器的操作方法,所述单调计数器包括多个存储块,所述操作方法包括:

读取步骤,读取每个所述存储块的计数基位、标识位以及校验位;

第一确定步骤,当只有一个所述存储块的所述标识位以及所述校验位有效时,确定所述标识位以及所述校验位有效的所述存储块为当前存储块;

第二确定步骤,当有多个所述存储块的所述标识位以及所述校验位有效时,通过比较所述计数基位的大小从所述多个存储块中确定当前存储块。

进一步优选的,所述第二确定步骤具体可以包括:

取反判断子步骤,判断每个所述存储块是否为取反写入;及,

第一子确定步骤,若所述取反判断为是,则确定记录数据小的所述计数基位对应的所述存储块为当前存储块;及/或,

第二子确定步骤,若所述取反判断为否,则确定记录数据大的所述计数基位对应的所述存储块为当前存储块。

进一步优选的,在所述第一确定步骤及/或所述第二确定步骤之后,还可以包括:

计数值读取步骤,读取所述当前存储块的计数值,所述计数值为所述当前存储块的数据位以及计数基位记录的数据之和。

进一步优选的,在所述第一确定步骤及/或所述第二确定步骤之后,所述操作方法还包括计数步骤,所述计数步骤包括:

写满判断步骤,判断所述当前存储块是否写满;及,

第一写入步骤,若所述写满判断为是,则将所述数据位未存储计数数据的所述存储块切换为所述当前存储块,并进行数据写入;及/或,

第二写入步骤,若所述写满判断为否,则在所述当前存储块中第一个未存储计数数据的数据位中写入数据进行计数。

进一步优选的,所述第一写入步骤具体可以包括:

计数基位写入子步骤,将所述计数值写入所述当前存储块的计数基位;

标识位写入子步骤,对所述当前存储块的标识位进行写入;

校验位写入子步骤,对所述当前存储块的校验位进行写入;

数据位写入子步骤,在所述当前存储块中第一个未存储计数数据的数据位中写入数据进行计数。

进一步优选的,在所述第一写入步骤之后,还可以包括:

擦除步骤,对除所述当前存储块以外的所述存储块进行擦除。

本发明的有益效果为:本发明提供了一种单调计数器,包括控制器以及多个存储块,且每个存储块包括计数基位、标识位、校验位、以及用于存储计数数据的数据位,其中:控制器用于在只有一个存储块的标识位以及校验位有效时,确定标识位以及校验位有效的存储块为当前存储块,当有多个存储块的标识位以及校验位有效时,通过比较计数基位的大小从多个存储块中确定当前存储块,从而无需在单调计数器中额外引入附加存储块,就能使单调计数器在发生异常情况时可以找到当前时刻进行计数的当前存储块,简化了单调计数器的操作方法。

附图说明

为了更清楚地说明本发明的技术方案,下面将对根据本发明而成的各实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明而成的实施例所提供的单调计数器的结构示意图。

图2是根据本发明而成的实施例所提供的单调计数器的操作方法的流程示意图。

图3是根据本发明而成的实施例所提供的单调计数器的操作方法的进一步流程示意图。

图4是根据本发明而成的实施例所提供的单调计数器的操作方法中的计数步骤的流程示意图。

图5是根据本发明而成的实施例所提供的单调计数器的操作方法中的计数步骤的进一步流程示意图。

具体实施方式

下面将结合本发明而成的实施例中的附图,对本发明而成的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明针对现有技术下的应答保护单调计数器,当异常情况发生时,应答保护单调计数器确定当前存储块时的操作方法较为复杂的问题,根据本发明而成的实施例用以解决该问题。

具体地,应答保护单调计数器的异常是指计数器出现异常掉电、复位以及电压不稳定等情况。

请参阅图1,图1是根据本发明而成的实施例所提供的单调计数器100的结构示意图,从图1可知根据本发明而成的实施例的各组成部分,以及各组成部分的相对位置关系。

如图1所示,该单调计数器100包括控制器110以及多个存储块120,且每个存储块120包括计数基位121、标识位122、校验位123、以及多个用于存储计数数据的数据位124,其中:

控制器110用于在只有一个存储块120的标识位122以及校验位123有效时,确定标识位122以及校验位123有效的存储块120为当前存储块,当有多个存储块120的标识位122以及校验位123有效时,通过比较计数基位121的大小从多个存储块120中确定当前存储块。

需要说明的是,单调计数器100用以保证其对应的存储器读写数据的机密性和完整性,单调计数器100中的计数数据可以单调性地递增,而由于单调计数器100中每个存储块120的数据位124所能记录的数值有限,因此,当单调计数器100中的一个存储块120中的计数值达到上限后,会切换一个没有进行计数、或者进行过计数但计数数据已经被擦除的存储块120继续进行计数。在切换存储块120进行计数时,必须将切换前的存储块120的计数数据保存到切换后的存储块120中,以作为切换后的存储块120计数的基础,切换后的存储块120会在这个计数基础上继续进行计数,计数基位121就是用于记录上一个当前存储块写满切换时所计入的计数数据;

标识位122中记录的数据用于表征存储块120是否需要进行擦除及编程操作,具体地,标识位122只具有两种数据状态,一种数据状态表征存储块120需要进行擦除及编程操作(如00),一种数据状态表征存储块120已经进行擦除及编程、不需要再进行擦除及编程操作(如ff);

校验位123的有效性用于表征存储块120的计数基位121以及标识位122中的数据是否有效。具体地,计数基位121与标识位122会通过某种校验运算(譬如加法运算、奇偶运算、异或运算或循环冗余校验(cyclicredundancycheck)运算)生成一数值,之后,将该数值与校验位123中的数值进行比较,若二值相等,则表征校验位123有效,也即,该校验位123对应的存储块120中的数据有效、未出现异常、也指示了该存储块是当前存储块;而若这二值不等,则表征校验位123无效,也即,该校验位123对应的存储块120中的数据无效、或发生了异常、也指示了该存储块不是当前存储块;

所以,在只有一个存储块120的标识位122以及校验位123有效时,可以确定标识位122以及校验位123有效的存储块120为当前存储块;

数据位124则是用于存储计数数据的单元,一般,为了增加存储块120的存储量、减少擦除次数,每个存储块120中会包括多个数据位124,每当单调计数器100对应的flash进行一次数据的读写,就会将单调计数器100中的存储块120的一个数据位124写为1。

进一步地,当有多个存储块120的标识位122以及校验位123有效时,控制器110还用于:

当每个存储块120为取反写入时,确定记录数据小的计数基位121对应的存储块120为当前存储块;或,

当每个存储块120不为取反写入时,确定记录数据大的计数基位121对应的存储块120为当前存储块。

需要说明的是,计算机系统的有符号数有三种表示方法:原码、反码以及补码。原码包括数值位和符号位,数值位就是该原码所代表的真值的绝对值,符号位为“0”时表示正数,符号位为“1”时表示负数,举例来说,原码为“10101”的四位二进制数据表示的真值为-5。将原码除符号位以外的所有位取反(取反是将二进制数据中的“0”变为“1”、且同时将“1”变为“0”),就得到该原码的反码。对于负数来说,其补码等于其原码除符号位以外的所有位取反后加1,而对于正数,其原码等于其反码等于其补码。

举例来说,十进制真值-12的原码用带符号位的四位二进制数据表示为11100,其反码为10011,该反码所表示的十进制值为-3;十进制真值-13的原码用带符号位的四位二进制数据表示为11101,其反码为10010,该反码所表示的十进制值为-2。所以,当存储块120为取反写入时,计数基位121上的反码的值越小的,其对应的原码的值越大,计数基位121上的反码的值越大的,其对应的原码的值越小。由于计数基位121是用于记录单调计数器100的计数数据的总数,所以,当存储块120为取反写入时,记录数据小的计数基位121对应的存储块120为当前存储块。而当存储块120不为取反写入时,计数基位121上的二进制数据是其要表示的真值的原码,原码的值与真值相对应,所以,当存储块120不为取反写入时,记录数据大的计数基位121对应的存储块120为当前存储块。

进一步地,控制器110还用于控制单调计数器100的当前存储块进行计数,比如:

当当前存储块未写满时,在当前存储块中第一个未存储计数数据的数据位124中写入数据进行计数;或,

当当前存储块写满时,将数据位124未存储计数数据的存储块120切换为当前存储块,并进行数据写入。

进一步地,控制器110还用于读取当前存储块的计数值,其中,计数值为当前存储块的数据位124以及计数基位121记录的数据之和,所述计数值为当前存储块的数据位124以及计数基位121记录的数据之和是指将前存储块的数据位124的值和所有数据位中的值求和。

在实际应用中,单调计数器100常和闪存一同使用,闪存每进行一次数据的读写,就在单调计数器100的当前存储块中的数据位写1,所以一个存储块120中所有的数据位124加上计数基位121的值等于当前时刻的计数值。举例来说,数据位124可以用n个0代表该单调计数器100的计数值加1(n为大于等于1的整数),当单调计数器100的计数基位121是1000,n是8,数据位124有3个byte的0时,则当前时刻,该单调计数器100的计数值是1003。

区别于现有技术,本发明提供了一种单调计数器100,包括控制器110以及多个存储块120,且每个存储块120包括计数基位121、标识位122、校验位123、以及用于存储计数数据的数据位124,其中:控制器110用于在只有一个存储块120的标识位122以及校验位123有效时,确定标识位122以及校验位123有效的存储块120为当前存储块,当有多个存储块120的标识位122以及校验位123有效时,通过比较计数基位121的大小从多个存储块120中确定当前存储块,从而无需在单调计数器100中额外引入附加存储块,就能使单调计数器100在发生异常情况时可以找到当前时刻进行计数的当前存储块,简化了单调计数器100的操作方法。

请参阅图2,图2是根据本发明而成的实施例所提供的单调计数器100的操作方法的流程示意图,该操作方法应用于单调计数器100,且该单调计数器100包括多个存储块,该操作方法的具体流程可以如下:

读取步骤s1o1.读取每个存储块的计数基位、标识位以及校验位。

需要说明的是,单调计数器100用以保证其对应的存储器读写数据的机密性和完整性,单调计数器100中的计数数据可以单调性地递增,而由于单调计数器100中每个存储块的数据位所能记录的数值有限,因此,当单调计数器100中的一个存储块中的计数值达到上限后,会切换一个没有进行计数、或者进行过计数但计数数据已经被擦除的存储块继续进行计数。在切换存储块进行计数时,必须将切换前的存储块的计数数据保存到切换后的存储块中,以作为切换后的存储块计数的基础,切换后的存储块会在这个计数基础上继续进行计数,计数基位就是用于记录上一个当前存储块写满切换时所计入的计数数据;

标识位中记录的数据用于表征存储块是否需要进行擦除及编程操作,具体地,标识位只具有两种数据状态,一种数据状态表征存储块需要进行擦除及编程操作(如00),一种数据状态表征存储块已经进行擦除及编程、不需要再进行擦除及编程操作(如ff);

校验位的有效性用于表征存储块的计数基位以及标识位中的数据是否有效。具体地,计数基位与标识位会通过某种校验运算(譬如加法运算、奇偶运算、异或运算或循环冗余校验(cyclicredundancycheck)运算)生成一数值,之后,将该数值与校验位中的数值进行比较,若二值相等,则表征校验位有效,也即,该校验位对应的存储块中的数据有效、未出现异常、也指示了该存储块是当前存储块;而若这二值不等,则表征校验位无效,也即,该校验位对应的存储块中的数据无效、或发生了异常、也指示了该存储块不是当前存储块;

数据位则是用于存储计数数据的单元,一般,为了增加存储块的存储量、减少擦除次数,每个存储块中会包括多个数据位,每当单调计数器100对应的flash进行一次数据的读写,就会将单调计数器100中的存储块的一个数据位写为1。

第一确定步骤s1o2.当只有一个存储块的标识位以及校验位有效时,确定标识位以及校验位有效的存储块为当前存储块。

具体地,当只有一个存储块的标识位以及校验位有效时,此时无需通过额外的判定来寻找当前时刻进行计数的当前存储块,单调计数器即确定处于有效状态的标识位以及校验位对应的存储块为该当前存储块。

第二确定步骤s1o3.当有多个存储块的标识位以及校验位有效时,通过比较计数基位的大小从多个存储块中确定当前存储块。

具体地,当有多个存储块的标识位以及校验位有效时,此时单调计数器100因发生了异常情况(比如异常掉电、复位以及电压不稳定等)而导致有多个存储块的标识位处于有效状态,此时需要通过判断计数基位存储的数据的大小来确定当前存储块。

进一步地,请继续参阅图2,在第一确定步骤s102及/或第二确定步骤s103之后,还可以包括:

计数值读取步骤s104.读取当前存储块的计数值,计数值为当前存储块的数据位以及计数基位记录的数据之和。

需要说明的是,计数值为当前存储块的数据位以及计数基位记录的数据之和,所述计数值为当前存储块的数据位以及计数基位记录的数据之和是指将前存储块的数据位的值和所有数据位中的值求和。

在实际应用中,单调计数器100常和闪存一同使用,闪存每进行一次数据的读写,就在单调计数器100的当前存储块中的数据位写1,所以一个存储块中所有的数据位加上计数基位的值等于当前时刻的计数值。举例来说,数据位可以用n个0代表该单调计数器100的计数值加1(n为大于等于1的整数),当单调计数器100的计数基位是1000,n是8,数据位有3个byte的0时,则当前时刻,该单调计数器100的计数值是1003。

请参阅图3,图3是根据本发明而成的实施例所提供的单调计数器100的操作方法的进一步流程示意图,如图3所示,该第二确定步骤s103具体可以包括:

取反判断子步骤s1031.当有多个存储块的标识位以及校验位有效时,判断每个存储块是否为取反写入;及,

第一子确定步骤s1032.若取反判断为是,则确定记录数据小的计数基位对应的存储块为当前存储块;或,

第二子确定步骤s1033.若取反判断为否,则确定记录数据大的计数基位对应的存储块为当前存储块。

需要说明的是,计算机系统的有符号数有三种表示方法:原码、反码以及补码。原码包括数值位和符号位,数值位就是该原码所代表的真值的绝对值,符号位为“0”时表示正数,符号位为“1”时表示负数,举例来说,原码为“10101”的四位二进制数据表示的真值为-5。将原码除符号位以外的所有位取反(取反是将二进制数据中的“0”变为“1”、且同时将“1”变为“0”),就得到该原码的反码。对于负数来说,其补码等于其原码除符号位以外的所有位取反后加1,而对于正数,其原码等于其反码等于其补码。

举例来说,十进制真值-12的原码用带符号位的四位二进制数据表示为11100,其反码为10011,该反码所表示的十进制值为-3;十进制真值-13的原码用带符号位的四位二进制数据表示为11101,其反码为10010,该反码所表示的十进制值为-2。所以,当存储块为取反写入时,计数基位上的反码的值越小的,其对应的原码的值越大,计数基位上的反码的值越大的,其对应的原码的值越小。由于计数基位是用于记录单调计数器100的计数数据的总数,所以,当存储块为取反写入时,记录数据小的计数基位对应的存储块为当前存储块。而当存储块不为取反写入时,计数基位上的二进制数据是其要表示的真值的原码,原码的值与真值相对应,所以,当存储块不为取反写入时,记录数据大的计数基位对应的存储块为当前存储块。

进一步地,该单调计数器100的操作方法还包括计数步骤,请参阅图4,图4是根据本发明而成的实施例所提供的单调计数器100的操作方法中的计数步骤的流程示意图,如图4所示,在第一确定步骤s1o2及/或第二确定步骤s1o3之后,该计数步骤具体可以包括:

写满判断步骤s201.判断当前存储块是否写满;及,

第一写入步骤s202.若写满判断为是,则将数据位未存储计数数据的存储块切换为当前存储块,并进行数据写入;或,

第二写入步骤s203.若写满判断为否,则在当前存储块中第一个未存储计数数据的数据位中写入数据进行计数。

进一步地,请继续参阅图4,在第一写入步骤s202之后,还可以包括:

擦除步骤s204.对除当前存储块以外的存储块进行擦除。

具体地,该擦除步骤s204是用于保证当当前存储块记满数据后,存在未存储计数数据的存储块可供切换并继续进行计数。

请参阅图5,图5是根据本发明而成的实施例所提供的单调计数器100的操作方法中的计数步骤的进一步流程示意图,如图5所示,该第一写入步骤s202具体可以包括:

计数基位写入子步骤s2021.将数据位未存储计数数据的存储块切换为当前存储块,并将计数值写入当前存储块的计数基位;

标识位写入子步骤s2022.对当前存储块的标识位进行写入;

校验位写入子步骤s2023.对当前存储块的校验位进行写入;

数据位写入子步骤s2024.在当前存储块中第一个未存储计数数据的数据位中写入数据进行计数。

具体地,在对存储块进行数据写入时,单调计数器100可能会发生掉电等异常情况,而导致正在写入的数据发生错误,若同时对计数基位、标识位以及校验位进行写入,当发生异常情况时,有可能导致计数基位、标识位以及校验位中的数据均发生错误,而使得校验位发生误匹配的情况,所以,在进行第一写入步骤s202时,可以用依次写入的方式写入计数基位、标识位以及校验位,具体地,写入顺序可以是:先写入计数基位,再写入标识位,最后写入校验位;也可以是:先写入计数基位,再写入校验位,最后写入标识位,等等。这样依次进行写入的方式可以防止在单调计数器100发生异常情况时,计数基位、标识位以及校验位中的数据均发生错误,而使得校验位发生误匹配。

区别于现有技术,本发明提供了一种单调计数器100的操作方法,该操作方法应用于单调计数器100,且该单调计数器100包括多个存储块,该操作方法包括:读取每个存储块的计数基位、标识位以及校验位;当只有一个存储块的标识位以及校验位有效时,确定标识位以及校验位有效的存储块为当前存储块;当有多个存储块的标识位以及校验位有效时,通过比较计数基位的大小从多个存储块中确定当前存储块,从而无需在单调计数器100中额外引入附加存储块,就能使单调计数器100在发生异常情况时可以找到当前时刻进行计数的当前存储块,简化了单调计数器100的操作方法。

除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效替换形成的技术方案,均落在本发明要求的保护范围。

综上所述,虽然本发明已将优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜