CN111261214B - 应答保护单调计数器及管理其计数值的方法 - Google Patents
应答保护单调计数器及管理其计数值的方法 Download PDFInfo
- Publication number
- CN111261214B CN111261214B CN202010366817.6A CN202010366817A CN111261214B CN 111261214 B CN111261214 B CN 111261214B CN 202010366817 A CN202010366817 A CN 202010366817A CN 111261214 B CN111261214 B CN 111261214B
- Authority
- CN
- China
- Prior art keywords
- sector
- data
- adjacent sectors
- sectors
- count value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种应答保护单调计数器及管理其计数值的方法,包括:找到存在数据的扇区,如果只有1个扇区有数据,则从该扇区中从后往前找看能否找到2个值满足M1+1=M2,若能找到,则以M2为计数值,若找不到则以该扇区中第一个值为计数值。如果2个扇区都有数据,则判断在先的扇区内的数据是否有效,若无效则以在后扇区内第一个值为计数值,若有效则判断在先扇区内最后一个值M5加1是否等于在后扇区内第一个值M6,如果相等则以M6为计数值,否则以M5为计数值。本实施例通过对扇区中的数值所符合的规律进行判断,从而确定正确的计数值,即使在两个存储块切换时发生了异常掉电或其它异常情况,通过本发明方案亦可确定正确的计数值。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种应答保护单调计数器及管理其计数值的方法。
背景技术
含有应答保护单调计数器(Replay Protection Monotonic Counter,RPMC)的增强型Flash是Intel将主推的基本输入输出***(Basic Input-Output System,BIOS)芯片。它包含一个大容量的Flash芯片和RPMC电路。其中,FLASH芯片用来存储CPU BIOS的代码和数据;RPMC电路保证读写数据的机密性和完整性。RPMC电路与其集成的FLASH一起构成了计算机***中BIOS的硬件平台。正是由于上述原因需要保存每次操作后RPMC的计数值,并且保存的计数值要正确,不然使用带有RPMC的Flash的计算机将被锁定,不能正确操作。
现有技术中,应答保护单调计数器常采用两个存储块轮流对数据进行存储计数,在当前存储块未记满计数数据时,只需要在当前存储块中进行数据的读取或计数;但是当一个存储块存储满计数数据时,把当前的总的计数值数先写入另一个存储块中,并同时把另一个存储块的计数标识位和校验位写入,然后擦除写满数据的存储块,这时就需要对两个存储块进行必要的切换。但是,现有技术中,如果在两个存储块切换时异常掉电或其它异常情况时,例如电压波动等,往往导致难以确定正在进行计数的当前存储块,从而不能确定正确的计数值。
发明内容
本发明的主要目的在于提供一种应答保护单调计数器及管理其计数值的方法,旨在解决现有技术中存在的上述技术问题。
为实现上述目的,本发明实施例提供一种管理应答保护单调计数器的计数值的方法,所述应答保护单调计数器包括eFlash,所述eFlash包括4个存储块,每个所述存储块包括4个扇区,所述管理应答保护单调计数器的计数值的方法包括:
当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;
当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;
若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;
若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;
当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;
若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;
若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;
若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。
可选的,所述检测所述两个相邻扇区中排列在先的扇区中的数据是否有效包括:
以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M4,并检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中存在M3,则确定所述两个相邻扇区中排列在先的扇区中的数据有效;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3,则以所述两个相邻扇区中排列在先的扇区中排列在M4前一位的数据为M4,并执行所述检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1的步骤,直至当M4为所述两个相邻扇区中排列在先的扇区中正数第二个数据,且所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3时,则确定所述两个相邻扇区中排列在先的扇区中的数据无效。
此外,为实现上述目的,本发明实施例还提供一种应答保护单调计数器,所述应答保护单调计数器包括:
eFlash,所述eFlash包括4个存储块,每个所述存储块包括4个扇区,所述扇区用于存储计数数据;
检测模块,用于当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;
检测模块,还用于当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;
设置模块,用于若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;
步骤跳转模块,用于若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;
检测模块,还用于当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;
设置模块,还用于若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;
检测模块,还用于若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;
设置模块,还用于若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。
可选的,所述检测模块,还用于:
以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M4,并检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中存在M3,则确定所述两个相邻扇区中排列在先的扇区中的数据有效;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3,则以所述两个相邻扇区中排列在先的扇区中排列在M4前一位的数据为M4,并执行所述检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1的步骤,直至当M4为所述两个相邻扇区中排列在先的扇区中正数第二个数据,且所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3时,则确定所述两个相邻扇区中排列在先的扇区中的数据无效。
本发明中,当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。本发明通过对扇区中的数值所符合的规律进行判断,从而确定正确的计数值,即使在两个存储块切换时发生了异常掉电或其它异常情况,通过本实施例方案亦可确定正确的计数值。
附图说明
图1为本发明管理应答保护单调计数器的计数值的方法一实施例的流程示意图;
图2为本发明管理应答保护单调计数器的计数值的方法一实施例中eFlash的结构示意图;
图3为本发明管理应答保护单调计数器的计数值的方法一实施例中一个扇区的存储位示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明管理应答保护单调计数器的计数值的方法一实施例的流程示意图。如图1所示,管理应答保护单调计数器的计数值的方法包括:
步骤S10,当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;
本实施例中,在RPMC内部加入一块4K*32eFlash(Embedded Flash),由于RPMC有4组计数器,故将eFlash分为4个存储块,每个存储块包括4个Sector扇区。参照图2,图2为本发明管理应答保护单调计数器的计数值的方法一实施例中eFlash的结构示意图。如图2所示,RPMC的计数器0对应Sector0至Sector3,Sector0至Sector3属于第一存储块;RPMC的计数器1对应Sector4至Sector7,Sector4至Sector7属于第二存储块;RPMC的计数器2对应Sector8至Sector11,Sector8至Sector11属于第三存储块;RPMC的计数器3对应Sector12至Sector15,Sector12至Sector15属于第四存储块。当外部主机HOST发送增加计数值的命令时,RPMC就会把正确的计数值依次写入对应的存储块的扇区中。参照图3,图3为本发明管理应答保护单调计数器的计数值的方法一实施例中一个扇区的存储位示意图。如图3所示,一个扇区包括128个存储位,即一个扇区可存储128个计数值。
其中,上电条件指含RPMC的增强型Flash的电源电压达到启动电压。即含RPMC的增强型Flash的电源电压达到启动电压时,检测4个存储块中任一存储块的4个扇区中是否存在数据。其中,任一存储块可以是第一存储块、第二存储块、第三存储块、第四存储块中的任一个。下面以第一存储块为例进行说明。
步骤S20,当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;
本实施例中,当第一存储块的4个扇区中只有一个扇区存在数据时,例如第一存储块的Sector0中存在数据,则以Sector0中的倒数第一个数据为M2,并检测Sector0中排列在M2之前的数据中是否存在M1,其中M2=M1+1。例如,Sector0中的倒数第一个数据为88,则从Sector0中的倒数第二个数至正数第一个数据中查找是否有一个数据为87,若能找到,即说明存在M1,若不能找到则说明以Sector0中的倒数第一个数据为M2时,不存在M1。
步骤S30,若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;
本实施例中,若存在M1,则设置当前的M2为第一存储块对应的计数值。即当HOST需要从第一存储块中读取计数值时,读取的计数值为M2。
步骤S40,若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;
本实施例中,当M2为Sector0中的倒数第一个数据时,若找不到M1,则以M2前一位的数据为M2,即以Sector0中的倒数第二个数据为M2,并从Sector0中的倒数第三个数至正数第一个数据中查找M1,若能找到M1,则以此时的M2(Sector0中的倒数第二个数据)为第一存储块对应的计数值。若找不到M1,则继续以M2前一位的数据为M2,即以Sector0中的倒数第三个数据为M2,并从Sector0中的倒数第四个数至正数第一个数据中查找M1,若能找到M1,则以此时的M2(Sector0中的倒数第三个数据)为第一存储块对应的计数值。若找不到M1,则重复上述步骤,直至当M2为Sector0中正数第二个数据,且Sector0中排列在M2之前的数据中不存在M1时,设置Sector0中正数第一个数据为第一存储块对应的计数值。
步骤S50,当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;
本实施例中,当第一存储块的4个扇区中存在两个相邻扇区存在数据时,例如Sector2和Sector3中存在数据,则检测两个相邻扇区中排列在先的扇区中的数据是否有效,即检测Sector2中的数据是否有效。
一实施例中,所述检测所述两个相邻扇区中排列在先的扇区中的数据是否有效包括:
以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M4,并检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1;若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中存在M3,则确定所述两个相邻扇区中排列在先的扇区中的数据有效;若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3,则以所述两个相邻扇区中排列在先的扇区中排列在M4前一位的数据为M4,并执行所述检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1的步骤,直至当M4为所述两个相邻扇区中排列在先的扇区中正数第二个数据,且所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3时,则确定所述两个相邻扇区中排列在先的扇区中的数据无效。
本实施例中,以排列在先的扇区为Sector2为例,则以Sector2中的倒数第一个数据为M4,并检测Sector2中排列在M4之前的数据中是否存在M3,其中M4=M3+1。例如,Sector2中的倒数第一个数据为66,则从Sector2中的倒数第二个数至正数第一个数据中查找是否有一个数据为65,若能找到,即说明存在M3,则确定Sector2中的数据有效。
当M4为Sector2中的倒数第一个数据时,若找不到M3,则以M4前一位的数据为M4,即以Sector2中的倒数第二个数据为M4,并从Sector2中的倒数第三个数至正数第一个数据中查找M3,若能找到M3,则确定Sector2中的数据有效。若找不到M3,则继续以M4前一位的数据为M4,即以Sector2中的倒数第三个数据为M4,并从Sector2中的倒数第四个数至正数第一个数据中查找M3,若能找到M3,则确定Sector2中的数据有效。若找不到M3,则重复上述步骤,直至当M4为Sector2中正数第二个数据,且Sector2中排列在M4之前的数据中不存在M3时,确定Sector2中的数据无效。
步骤S60,若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;
本实施例中,若两个相邻扇区中排列在先的扇区中的数据无效,则直接以两个相邻扇区中排列在后的扇区中的正数第一个数据为第一存储块对应的计数值。
步骤S70,若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;
步骤S80,若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。
本实施例中,若两个相邻扇区中排列在先的扇区中的数据有效,则以两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立。当该等式成立时,以M6为第一存储块对应的计数值,当该等式不成立时,以M5为第一存储块对应的计数值。
本实施例中,当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。本实施例通过对扇区中的数值所符合的规律进行判断,从而确定正确的计数值,即使在两个存储块切换时发生了异常掉电或其它异常情况,通过本实施例方案亦可确定正确的计数值。
本实施例还提出一种应答保护单调计数器,应答保护单调计数器包括:
eFlash,所述eFlash包括4个存储块,每个所述存储块包括4个扇区,所述扇区用于存储计数数据;
检测模块,用于当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;
检测模块,还用于当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;
设置模块,用于若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;
步骤跳转模块,用于若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;
检测模块,还用于当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;
设置模块,还用于若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;
检测模块,还用于若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;
设置模块,还用于若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。
检测模块,还用于:
以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M4,并检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中存在M3,则确定所述两个相邻扇区中排列在先的扇区中的数据有效;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3,则以所述两个相邻扇区中排列在先的扇区中排列在M4前一位的数据为M4,并执行所述检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1的步骤,直至当M4为所述两个相邻扇区中排列在先的扇区中正数第二个数据,且所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3时,则确定所述两个相邻扇区中排列在先的扇区中的数据无效。
本发明应答保护单调计数器的具体实施例与上述管理应答保护单调计数器的计数值的方法的各个实施例基本相同,在此不做赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种管理应答保护单调计数器的计数值的方法,其特征在于,所述应答保护单调计数器包括eFlash,所述eFlash包括4个存储块,每个所述存储块包括4个扇区,所述管理应答保护单调计数器的计数值的方法包括:
当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;
当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;
若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;
若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;
当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;
若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;
若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;
若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。
2.如权利要求1所述的管理应答保护单调计数器的计数值的方法,其特征在于,所述检测所述两个相邻扇区中排列在先的扇区中的数据是否有效包括:
以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M4,并检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中存在M3,则确定所述两个相邻扇区中排列在先的扇区中的数据有效;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3,则以所述两个相邻扇区中排列在先的扇区中排列在M4前一位的数据为M4,并执行所述检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1的步骤,直至当M4为所述两个相邻扇区中排列在先的扇区中的正数第二个数据,且所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3时,则确定所述两个相邻扇区中排列在先的扇区中的数据无效。
3.一种应答保护单调计数器,其特征在于,所述应答保护单调计数器包括:
eFlash,所述eFlash包括4个存储块,每个所述存储块包括4个扇区,所述扇区用于存储计数数据;
检测模块,用于当满足上电条件时,检测4个存储块中任一存储块的4个扇区中是否存在数据;
检测模块,还用于当所述任一存储块的4个扇区中只有一个扇区存在数据时,以所述一个扇区中的倒数第一个数据为M2,并检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1;
设置模块,用于若所述一个扇区中排列在M2之前的数据中存在M1,则设置M2为所述任一存储块对应的计数值;
步骤跳转模块,用于若所述一个扇区中排列在M2之前的数据中不存在M1,则以所述一个扇区中排列在M2前一位的数据为M2,并执行所述检测所述一个扇区中排列在M2之前的数据中是否存在M1,其中M2=M1+1的步骤,直至当M2为所述一个扇区中正数第二个数据,且所述一个扇区中排列在M2之前的数据中不存在M1时,设置所述一个扇区中正数第一个数据为所述任一存储块对应的计数值;
检测模块,还用于当所述任一存储块的4个扇区中存在两个相邻扇区存在数据时,检测所述两个相邻扇区中排列在先的扇区中的数据是否有效;
设置模块,还用于若所述两个相邻扇区中排列在先的扇区中的数据无效,则以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为所述任一存储块对应的计数值;
检测模块,还用于若所述两个相邻扇区中排列在先的扇区中的数据有效,则以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M5,以所述两个相邻扇区中排列在后的扇区中的正数第一个数据为M6,并判断M5+1=M6是否成立;
设置模块,还用于若M5+1=M6成立,则以M6为所述任一存储块对应的计数值,若M5+1=M6不成立,则以M5为所述任一存储块对应的计数值。
4.如权利要求3所述的应答保护单调计数器,其特征在于,所述检测模块,还用于:
以所述两个相邻扇区中排列在先的扇区中的倒数第一个数据为M4,并检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中存在M3,则确定所述两个相邻扇区中排列在先的扇区中的数据有效;
若所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3,则以所述两个相邻扇区中排列在先的扇区中排列在M4前一位的数据为M4,并执行所述检测所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中是否存在M3,其中M4=M3+1的步骤,直至当M4为所述两个相邻扇区中排列在先的扇区中的正数第二个数据,且所述两个相邻扇区中排列在先的扇区中排列在M4之前的数据中不存在M3时,则确定所述两个相邻扇区中排列在先的扇区中的数据无效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366817.6A CN111261214B (zh) | 2020-04-30 | 2020-04-30 | 应答保护单调计数器及管理其计数值的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366817.6A CN111261214B (zh) | 2020-04-30 | 2020-04-30 | 应答保护单调计数器及管理其计数值的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111261214A CN111261214A (zh) | 2020-06-09 |
CN111261214B true CN111261214B (zh) | 2020-08-07 |
Family
ID=70951689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010366817.6A Active CN111261214B (zh) | 2020-04-30 | 2020-04-30 | 应答保护单调计数器及管理其计数值的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111261214B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112582009B (zh) * | 2020-12-11 | 2022-06-21 | 武汉新芯集成电路制造有限公司 | 单调计数器及其计数方法 |
CN112582008A (zh) * | 2020-12-11 | 2021-03-30 | 武汉新芯集成电路制造有限公司 | 单调计数器及其操作方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122887A (zh) * | 2007-01-17 | 2008-02-13 | 晶天电子(深圳)有限公司 | 一种采用数据区域切换指针缓冲硬盘驱动器的闪存卡 |
CN102509046A (zh) * | 2010-11-02 | 2012-06-20 | 微软公司 | 带有休眠支持的全局有效的测量的操作***发动 |
CN104484624A (zh) * | 2014-12-15 | 2015-04-01 | 上海新储集成电路有限公司 | 一种单调计数器及单调计数的方法 |
CN104657678A (zh) * | 2013-11-19 | 2015-05-27 | 北京兆易创新科技股份有限公司 | 应答保护单调计数器、读取方法及计数方法 |
CN105095772A (zh) * | 2014-05-19 | 2015-11-25 | 英特尔公司 | 用于安全地保存并恢复计算平台状态的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700642A (zh) * | 2005-05-25 | 2005-11-23 | 北京兆日科技有限责任公司 | 一种单调计数器的实现方法 |
US8184812B2 (en) * | 2009-06-03 | 2012-05-22 | Freescale Semiconductor, Inc. | Secure computing device with monotonic counter and method therefor |
US9405707B2 (en) * | 2011-12-20 | 2016-08-02 | Intel Corporation | Secure replay protected storage |
US10860500B2 (en) * | 2019-01-28 | 2020-12-08 | Intel Corporation | System, apparatus and method for replay protection for a platform component |
-
2020
- 2020-04-30 CN CN202010366817.6A patent/CN111261214B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122887A (zh) * | 2007-01-17 | 2008-02-13 | 晶天电子(深圳)有限公司 | 一种采用数据区域切换指针缓冲硬盘驱动器的闪存卡 |
CN102509046A (zh) * | 2010-11-02 | 2012-06-20 | 微软公司 | 带有休眠支持的全局有效的测量的操作***发动 |
CN104657678A (zh) * | 2013-11-19 | 2015-05-27 | 北京兆易创新科技股份有限公司 | 应答保护单调计数器、读取方法及计数方法 |
CN105095772A (zh) * | 2014-05-19 | 2015-11-25 | 英特尔公司 | 用于安全地保存并恢复计算平台状态的方法和装置 |
CN104484624A (zh) * | 2014-12-15 | 2015-04-01 | 上海新储集成电路有限公司 | 一种单调计数器及单调计数的方法 |
Non-Patent Citations (1)
Title |
---|
基于可信平台模块的虚拟单调计数器研究;李昊 等;《计算机研究与发展》;20111231;第48卷(第3期);第415-422页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111261214A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750191B (zh) | 用于启动固态非易失性存储设备内的刷新操作的方法 | |
CN111261214B (zh) | 应答保护单调计数器及管理其计数值的方法 | |
US20090037646A1 (en) | Method of using a flash memory for a circular buffer | |
US20230205755A1 (en) | Methods and systems for improved search for data loss prevention | |
CN106227625A (zh) | 一种因掉电而损坏的闪存数据的恢复方法及*** | |
CN109685190B (zh) | 一种ic卡掉电保护方法及装置 | |
CN109496292A (zh) | 一种磁盘管理方法、磁盘管理装置及电子设备 | |
US7788550B2 (en) | Redundant bit patterns for column defects coding | |
CN111857600B (zh) | 一种数据读写方法及装置 | |
CN114005476A (zh) | 闪存器、闪存擦写计数方法、电子设备及计算机存储介质 | |
EP3057100A1 (en) | Memory device and operating method of same | |
CN113194161A (zh) | 一种服务器***mmioh基地址的设置方法、装置 | |
US7685356B2 (en) | Chronological identification in flash memory using cyclic numbers | |
EP3404662B1 (en) | A method and system for implementing a non-volatile counter using non-volatile memory | |
CN110008059B (zh) | 非易失性存储介质的数据更新方法、装置及存储介质 | |
CN114300026A (zh) | 一种单调计数器、计数方法、电子设备及存储介质 | |
US9558110B2 (en) | Method for managing a flash memory | |
CN107301073B (zh) | 一种基于固态硬盘***的配置信息检索方法及其装置 | |
CN107515828B (zh) | 一种数据读写方法及移动终端 | |
KR100575657B1 (ko) | 낸드 플래시 읽기 방법 | |
CN107526649B (zh) | 分区修复方法、装置及电子设备 | |
KR100525537B1 (ko) | 인터럽트를 이용한 응용 프로그램의 에러검출장치 및 방법. | |
US20170337104A1 (en) | Counter in a flash memory | |
CN116610269B (zh) | 数据存储方法、装置、存储介质和控制器 | |
CN110888596B (zh) | 一种Flash存储区域的文件擦写方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 518000 Room 101, building 10, Dayun software Town, 8288 Longgang Avenue, he'ao community, Yuanshan street, Longgang District, Shenzhen City, Guangdong Province Patentee after: XTX Technology Inc. Address before: Floor 1, building 10, Dayun software Town, No. 8288, Henggang street, Longgang District, Shenzhen City, Guangdong Province Patentee before: Paragon Technology (Shenzhen) Ltd. |
|
CP03 | Change of name, title or address |