CN114115755B - 用于数据写入的方法及装置、存储介质 - Google Patents
用于数据写入的方法及装置、存储介质 Download PDFInfo
- Publication number
- CN114115755B CN114115755B CN202210103951.6A CN202210103951A CN114115755B CN 114115755 B CN114115755 B CN 114115755B CN 202210103951 A CN202210103951 A CN 202210103951A CN 114115755 B CN114115755 B CN 114115755B
- Authority
- CN
- China
- Prior art keywords
- time programmable
- storage area
- state bit
- register
- bit
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及非易失性存储器技术领域,公开一种用于数据写入的方法,该方法包括:响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果;在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中。这样在出现异常掉电的情况下不会使得单次可编程非易失状态位对应的存储区域中的值被异常擦掉,从而能够提高状态寄存器的可靠性。本申请还公开一种用于数据写入的装置及存储介质。
Description
技术领域
本申请涉及非易失性存储器技术领域,例如涉及一种用于数据写入的方法及装置、存储介质。
背景技术
状态寄存器通常用于控制非易失性存储器相关功能的开启或者关闭,对于部分涉及系统安全的存储内容,通常需要在写入数据后将其永久保护住不能再被其余用户擦除或者写入。非易失性存储器状态寄存器中的单次可编程非易失状态位和其余非单次可编程非易失状态位通常是放置在同一个存储区域中,在写入状态寄存器时,先对非易失性存储器中对应的存储区域进行擦除,再将新的状态寄存器的值写入对应的存储区域。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
现有技术中在擦除或者写入状态寄存器对应存储区域过程中发生异常的情况下,会使得状态寄存器单次可编程非易失状态位对应的存储区域被异常擦掉后未进行写入,容易导致对应的存储区域的值异常,使得状态寄存器的可靠性较差。对于单次可编程非易失状态位,攻击者可以采用在其擦写过程中通过掉电的方式予以破坏,降低了存储数据的安全性。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于数据写入的方法及装置、存储介质,以能够提高状态寄存器的可靠性。
在一些实施例中,所述用于数据写入的方法,包括:响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;所述状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;根据更新后的寄存器值获取第一判断结果;在所述第一判断结果为需要对所述非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对所述第一存储区域进行编程操作,将所述非单次可编程非易失状态位对应的寄存器值写入所述第一存储区域中;所述第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;判断是否需要对所述单次可编程非易失状态位进行写入,获得第二判断结果;在第二判断结果为需要对所述单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将所述单次可编程非易失状态位对应的寄存器值写入所述第二存储区域中;所述第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
在一些实施例中,所述用于数据写入的装置,包括:更新模块,被配置为响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;所述状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;第一获取模块,被配置为根据更新后的寄存器值获取第一判断结果;第一写入模块,被配置为在所述第一判断结果为需要对所述非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对所述第一存储区域进行编程操作,将所述非单次可编程非易失状态位对应的寄存器值写入所述第一存储区域中;所述第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;第二获取模块,被配置为判断是否需要对所述单次可编程非易失状态位进行写入,获得第二判断结果;第二写入模块,被配置为在第二判断结果为需要对所述单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将所述单次可编程非易失状态位对应的寄存器值写入所述第二存储区域中;所述第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
在一些实施例中,所述存储介质存储有程序指令,所述程序指令在运行时,执行上述的用于数据写入的方法。
本公开实施例提供的用于数据写入的方法及装置、存储介质,可以实现以下技术效果:响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;根据更新后的寄存器值获取第一判断结果;在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果;在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中;第二存储区域用于存储状态寄存器中单次可编程非易失状态位。通过分配不同的存储区域给寄存器中的非单次可编程非易失状态位和单次可编程非易失状态位,在对单次可编程非易失状态位进行写入时不进行擦除操作,直接进行编程操作,这样在擦除或者写入状态寄存器对应的存储区域过程中发生异常的情况下,不容易导致单次可编程非易失状态位对应的存储区域中的值被异常擦掉,从而能够提高状态寄存器的可靠性。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的第一个用于数据写入的方法的示意图;
图2是本公开实施例提供的第二个用于数据写入的方法的示意图;
图3是本公开实施例提供的第三个用于数据写入的方法的示意图;
图4是本公开实施例提供的一个用于状态寄存器对应的存储区域分配的应用示意图;
图5是本公开实施例提供的一个用于数据写入的电路示意图;
图6是本公开实施例提供的一个用于数据写入的装置的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
本发明实施例的技术方案可以应用于存储介质中。可选地,存储介质为非易失性存储器。在一些实施例中,非易失性存储器包括EEPROM(Electrically erasableprogrammable read only memory,电可擦可编程只读内存)或Flash Memory(闪存)等。在一些实施例中,本发明实施例中的非易失性存储器按照字节的方式进行数据写入,例如:一次只写入一个字节;或,一次写入多个字节。
本发明实施例中,状态寄存器通常用于控制非易失性存储器相关功能的开启或者关闭,通过分配两块存储区域用于存储状态寄存器对应的非易失状态位,存储区域包括:第一存储区域和第二存储区域;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;第二存储区域用于存储状态寄存器中单次可编程非易失状态位,在对单次可编程非易失状态位进行写入时不进行擦除操作,直接进行编程操作,且在使用的生命周期内仅会对第二存储区域进行单次编程,这样在擦除或者写入状态寄存器对应的存储区域过程中发生异常的情况下,不会导致单次可编程非易失状态位对应的存储区域中的值被异常擦掉,能够提高状态寄存器的可靠性。
结合图1所示,本公开实施例提供一种用于数据写入的方法,包括:
步骤S101,非易失性存储器响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位。
步骤S102,非易失性存储器根据更新后的寄存器值获取第一判断结果。
步骤S103,非易失性存储器在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位。
步骤S104,非易失性存储器判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果。
步骤S105,非易失性存储器在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中;第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
采用本公开实施例提供的用于数据写入的方法,通过响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;根据更新后的寄存器值获取第一判断结果;在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果;在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中;第二存储区域用于存储状态寄存器中单次可编程非易失状态位。通过分配不同的存储区域给寄存器中的非单次可编程非易失状态位和单次可编程非易失状态位,在对单次可编程非易失状态位进行写入时不进行擦除操作,直接进行编程操作,这样在擦除或者写入状态寄存器对应的存储区域过程中发生异常的情况下,不会导致单次可编程非易失状态位对应的存储区域中的值被异常擦掉,从而能够提高状态寄存器的可靠性。
可选地,写状态寄存器指令包括写入数据,响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新,包括:将写入数据写入状态寄存器中,对寄存器值进行更新。
可选地,非易失性存储器根据更新后的寄存器值获取第一判断结果,包括:在非单次可编程非易失状态位对应的寄存器值与第一存储区域中的第一可编程状态位的值不相同的情况下,确定第一判断结果为需要对非单次可编程非易失状态位进行写入;第一可编程状态位为与非单次可编程非易失状态位对应的可编程状态位。
可选地,非易失性存储器在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中。
可选地,非易失性存储器根据更新后的寄存器值获取第一判断结果,包括:非易失性存储器在非单次可编程非易失状态位对应的寄存器值与第一存储区域中的第一可编程状态位的值相同的情况下,确定第一判断结果为不需要对非单次可编程非易失状态位进行写入;第一可编程状态位为与非单次可编程非易失状态位对应的可编程状态位。
可选地,非易失性存储器在第一判断结果为不需要对非单次可编程非易失状态位进行写入的情况下,不对第一存储区域中的第一可编程状态位进行写入操作。
可选地,非易失性存储器在第一判断结果为不需要对非单次可编程非易失状态位进行写入的情况下,判断是否需要对单次可编程非易失状态位进行写入。
可选地,非易失性存储器判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果,包括:非易失性存储器在单次可编程非易失状态位对应的寄存器值为由0写1,且在第二存储区域中的第二可编程状态位为1的情况下,确定第二判断结果为需要对单次可编程非易失状态位进行写入;第二可编程状态位为与单次可编程非易失状态位对应的可编程状态位。
在一些实施例中,单次可编程非易失状态位对应的寄存器值为由0写1用于表征:在状态寄存器中的单次可编程非易失状态位中的原始数据为0,写入数据为1的情况。
可选地,非易失性存储器在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中。
在一些实施例中,由于非易失性存储器中的编程操作只能将第二存储区域中的1编程为0,而不能将0编程为1;通过在对第二存储区域中的单次可编程非易失状态位进行写入时,不进行擦除操作,只在状态寄存器中单次可编程非易失状态位为由0写1,且第二存储区域中的第二可编程状态位为1的情况才将单次可编程非易失状态位对应的寄存器值写入第二存储区域中,这样在非易失性存储器中写入0后就不会再写入1了,同时,由于在对单次可编程非易失状态位进行写入时不进行擦除操作,实现了单次可编程非易失位的物理单次可编程。这样,在非易失性存储器的生命周期中仅会对第二存储区域进行一次编程操作,并且在编程操作之前没有进行擦除操作,同时,在写状态寄存器中的其他非单次可编程非易失状态位对应的第一存储区域时,即使发生异常掉电的情况也不会对第二存储区域中的第二可编程状态位产生影响,提高了状态寄存器的可靠性。
可选地,非易失性存储器判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果,包括:在单次可编程非易失状态位对应的寄存器值不为由0写1,和/或,第二存储区域中的第二可编程状态位不为1的情况下,确定第二判断结果为不需要对单次可编程非易失状态位进行写入;第二可编程状态位为与单次可编程非易失状态位对应的可编程状态位。这样,能够防止对当前单元的过写,能够减小对同一位线和同一字线的串扰,能够提高非易失性存储器的可靠性。
在一些实施例中,非易失性存储器在状态寄存器中单次可编程非易失状态位由0写0的情况下,确定不需要对单次可编程非易失状态位进行写入,则不对第二存储区域中的第二可编程状态位进行写入。
在一些实施例中,非易失性存储器在第二存储区域中的第二可编程状态位为0的情况下,确定不需要对单次可编程非易失状态位进行写入,则不对第二存储区域中的第二可编程状态位进行写入。
在一些实施例中,对于支持按字节写入的非易失性存储器,在对单次可编程非易失状态位对应的第二存储区域进行编程操作之前并不会进行擦除操作,而且在非易失性存储器的生命周期中仅进行一次编程操作,因此在第二存储区域中的其余存储区域能够用于存放只读内容,例如UID(User Identification,用户身份证明)或其余单次可编程数据,这些只读数据通常在芯片测试过程中进行写入,并且在芯片使用过程中只会进行读取而不会进行修改,这样能够提高存储资源利用率。
可选地,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中后,还包括:在接收到复位指令或重新上电的情况下,从第一存储区域中读取出第一可编程状态位对应的值,并根据第一可编程状态位对应的值对状态寄存器中的与第一可编程状态位对应的非单次可编程非易失状态位进行恢复;从第二存储区域中读取出第二可编程状态位对应的值,并根据第二可编程状态位对应的值对状态寄存器中的与第二可编程状态位对应的单次可编程非易失状态位进行恢复。
可选地,根据第一可编程状态位对应的值对状态寄存器中的与第一可编程状态位对应的非单次可编程非易失状态位进行恢复,包括:将第一可编程状态位对应的值写入状态寄存器中的与第一可编程状态位对应的非单次可编程非易失状态位中。这样,能够实现对状态寄存器中非单次可编程非易失状态位的寄存器值的恢复。
在一些实施例中,第二存储区域中存储的第二可编程位的值是状态寄存器的单次可编程非易失状态位的值的相反数。
可选地,根据第二可编程状态位对应的值对状态寄存器中的与第二可编程状态位对应的单次可编程非易失状态位进行恢复,包括:从第二存储区域中读取出第二可编程状态位对应的值并进行取反,将取反后的值写入状态寄存器中的与第二可编程状态位对应的单次可编程非易失状态位中。这样,能够实现对状态寄存器中单次可编程非易失状态位的寄存器值的恢复。
在一些实施例中,由于状态寄存器通常用于控制非易失性存储器相关功能的开启或者关闭,对于部分涉及系统安全的存储内容,通常需要在写入数据后将其永久保护住不能再被其余用户擦除或者写入。因此在用户将这部分关键数据“烧录”进非易失性存储器后通过状态寄存器中单次可编程的状态位对该部分内容进行擦写保护。这样,通过在接收到复位指令或者重新上电后,分别从第一存储区域中读取出第一可编程状态位对应的值和从第二存储区域中读取出第二可编程状态位对应的值,分别根据第一可编程状态位对应的值对寄存器中的非单次可编程状态位的寄存器值进行恢复,根据第二可编程状态位对应的值对寄存器中的单次可编程状态位的寄存器值进行恢复,能够避免将异常状态位读取至状态寄存器中造成寄存器值异常出错,从而能够防止对应区域出现异常保护或解保护的情况,提高了非易失性存储器的安全性。
结合图2所示,本公开实施例提供一种用于数据写入的方法,包括:
步骤S201,非易失性存储器响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位。
步骤S202,非易失性存储器根据更新后的寄存器值获取第一判断结果。
步骤S203,非易失性存储器在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位。
步骤S204,非易失性存储器判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果。
步骤S205,非易失性存储器在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中;第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
步骤S206,非易失性存储器在接收到复位指令或重新上电的情况下,从第一存储区域中读取出第一可编程状态位对应的值,并根据第一可编程状态位对应的值对状态寄存器中的与第一可编程状态位对应的非单次可编程非易失状态位进行恢复;从第二存储区域中读取出第二可编程状态位对应的值,并根据第二可编程状态位对应的值对状态寄存器中的与第二可编程状态位对应的单次可编程非易失状态位进行恢复。
采用本公开实施例提供的用于数据写入的方法,通过分配不同的存储区域给寄存器中的非单次可编程非易失状态位和单次可编程非易失状态位,在对单次可编程非易失状态位进行写入时不进行擦除操作,直接进行编程操作,这样在擦除或者写入状态寄存器对应的存储区域过程中发生异常的情况下,不会导致单次可编程非易失状态位对应的存储区域中的值被异常擦掉,从而能够提高状态寄存器的可靠性;同时,在接收到复位指令或者重新上电后,分别从第一存储区域中读取出第一可编程状态位对应的值和从第二存储区域中读取出第二可编程状态位对应的值,分别根据第一可编程状态位对应的值对寄存器中的非单次可编程状态位的寄存器值进行恢复,根据第二可编程状态位对应的值对寄存器中的单次可编程状态位的寄存器值进行恢复,能够避免将异常状态位读取至状态寄存器中造成寄存器值异常出错,从而能够防止对应区域出现异常保护或解保护的情况,提高了非易失性存储器的安全性。
可选地,对状态寄存器的寄存器值进行更新后,还包括:判断是否需要写状态寄存器的非易失状态位。
可选地,根据更新后的寄存器值获取第一判断结果,包括:在需要写状态寄存器的非易失状态位的情况下,根据更新后的寄存器值获取第一判断结果。
结合图3所示,本公开实施例提供一种用于数据写入的方法,包括:
步骤S301,非易失性存储器响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位。
步骤S302,非易失性存储器判断是否需要写状态寄存器的非易失状态位;在需要写状态寄存器的非易失状态位的情况下,执行步骤S303;或,在不需要写状态寄存器的非易失状态位的情况下,执行步骤S308。
步骤S303,非易失性存储器根据更新后的寄存器值获取第一判断结果。
步骤S304,确定第一判断结果是否为需要对非单次可编程非易失状态位进行写入;在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,执行步骤S305;或,在不需要写状态寄存器的非易失状态位的情况下,执行步骤S307。
步骤S305,非易失性存储器对预设的第一存储区域进行擦除操作;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位。
步骤S306,非易失性存储器对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中。
步骤S307,非易失性存储器判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果;在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,执行步骤S308;或,在第二判断结果为不需要对单次可编程非易失状态位进行写入的情况下,执行步骤S309。
步骤S308,非易失性存储器对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中;第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
步骤S309,非易失性存储器确定状态寄存器的数据写入结束。
采用本公开实施例提供的用于数据写入的方法,通过分配不同的存储区域给寄存器中的非单次可编程非易失状态位和单次可编程非易失状态位,在对单次可编程非易失状态位进行写入时不进行擦除操作,直接进行编程操作,这样在擦除或者写入状态寄存器对应的存储区域过程中发生异常的情况下,不会导致单次可编程非易失状态位对应的存储区域中的值被异常擦掉,从而能够提高状态寄存器的可靠性。
结合图4所示,图4是本公开实施例提供的一种状态寄存器对应的存储区域分配的应用示意图;其中,状态寄存器1中包括易失状态位和非易失状态位,易失状态位包括2和7,非易失状态位包括3、4、5、6、7、8和9;非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;非单次可编程非易失状态位包括3、8和9,单次可编程非易失状态位包括4、5和6;第一存储区域10和第二存储区域11为非易失存储器中擦除的最小单位,第一存储区域10和第二存储区域11的容量大小均为4KByte字节。状态寄存器1中的非单次可编程非易失状态位3、8和9对应存储至第一存储区域10中,状态寄存器1中的单次可编程非易失状态位4、5和6对应存储至第二存储区域11中;状态寄存器1中的易失状态位2和7不对应非易失存储器中的任何位。
结合图5所示,图5是本公开实施例提供的一种用于数据写入的电路示意图;其中,状态寄存器数据产生组合逻辑501与第一逻辑或门502连接,逻辑或门502与单次可编程状态寄存器503连接,单次可编程状态寄存器503与第二逻辑或门504连接,第二逻辑或门504与数据缓存寄存器505连接。在一些实施例中,通过状态寄存器数据产生组合逻辑501接收用户发送的写状态寄存器指令,对写状态寄存器指令进行解析获得写入数据,并将写入数据发送给第一逻辑或门502;第一逻辑或门502通过对写入数据和单次可编程状态寄存器503中的存储数据的“或逻辑”实现寄存器写入1后不能再被写为0的逻辑;单次可编程状态寄存器503在上电过程中读取第二存储区域中的与单次可编程非易失状态位对应的第二可编程状态位的值,并将该第二可编程状态位的值放置于单次可编程状态寄存器503中用于非易失存储器的相关功能控制;第二逻辑或门504为状态寄存器中单次可编程非易失状态位对应的第二存储区域中的存储数据的产生逻辑;仅在单次可编程状态寄存器503中的数据为0且写入数据为1时输出存储数据0,在其余条件的情况下则输出存储数据1;数据缓存寄存器505用于缓存状态寄存器中单次可编程非易失状态位写入第二存储区域中的数据。
结合图6所示,本公开实施例提供一种用于数据写入的装置,包括:更新模块601、第一获取模块602、第一写入模块603、第二获取模块604和第二写入模块605;更新模块601被配置为响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新,并将更新后的寄存器值发送给第一获取模块;状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;第一获取模块602被配置为接收更新模块发送的更新后的寄存器值,根据更新后的寄存器值获取第一判断结果,并将第一判断结果发送给第一写入模块;第一写入模块603被配置为接收第一获取模块发送的第一判断结果,在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;第二获取模块604被配置为对第一存储区域进行编程操作后判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果,并将第二判断结果发送给第二写入模块;第二写入模块605被配置为接收第二获取模块发送的第二判断结果,在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中;第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
采用本公开实施例提供的用于数据写入的装置,通过更新模块响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;第一获取模块根据更新后的寄存器值获取第一判断结果;第一写入模块在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中;第二获取模块判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果;第二写入模块在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中。通过分配不同的存储区域给寄存器中的非单次可编程非易失状态位和单次可编程非易失状态位,在对单次可编程非易失状态位进行写入时不进行擦除操作,直接进行编程操作,这样在擦除或者写入状态寄存器对应的存储区域过程中发生异常的情况下,不会导致单次可编程非易失状态位对应的存储区域中的值被异常擦掉,从而能够提高状态寄存器的可靠性。
可选地,第一写入模块在对第一存储区域进行编程操作后,发送编程操作结束信号给第二获取模块,第二获取接收第一写入模块发送的编程操作结束信号,判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果。
本公开实施例提供了一种存储介质,存储有程序指令,程序指令在运行时,执行上述用于数据写入的方法。
可选地,存储介质为非易失性存储器。
采用本公开实施例提供的非易失性存储器,非易失性存储器通过响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;非易失性存储器根据更新后的寄存器值获取第一判断结果;非易失性存储器在第一判断结果为需要对非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对第一存储区域进行编程操作,将非单次可编程非易失状态位对应的寄存器值写入第一存储区域中;第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;非易失性存储器判断是否需要对单次可编程非易失状态位进行写入,获得第二判断结果;非易失性存储器在第二判断结果为需要对单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将单次可编程非易失状态位对应的寄存器值写入第二存储区域中;第二存储区域用于存储状态寄存器中单次可编程非易失状态位。通过分配不同的存储区域给寄存器中的非单次可编程非易失状态位和单次可编程非易失状态位,在对单次可编程非易失状态位进行写入时不进行擦除操作,直接进行编程操作,这样在擦除或者写入状态寄存器对应的存储区域过程中发生异常的情况下,不会导致单次可编程非易失状态位对应的存储区域中的值被异常擦掉,从而能够提高状态寄存器的可靠性。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于数据写入的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于数据写入的方法,其特征在于,包括:
响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;所述状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;
根据更新后的寄存器值获取第一判断结果;
在所述第一判断结果为需要对所述非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对所述第一存储区域进行编程操作,将所述非单次可编程非易失状态位对应的寄存器值写入所述第一存储区域中;所述第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;
判断是否需要对所述单次可编程非易失状态位进行写入,获得第二判断结果;
在第二判断结果为需要对所述单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将所述单次可编程非易失状态位对应的寄存器值写入所述第二存储区域中;所述第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
2.根据权利要求1所述的方法,其特征在于,根据更新后的寄存器值获取第一判断结果,包括:
在所述非单次可编程非易失状态位对应的寄存器值与所述第一存储区域中的第一可编程状态位的值不相同的情况下,确定所述第一判断结果为需要对所述非单次可编程非易失状态位进行写入;所述第一可编程状态位为与所述非单次可编程非易失状态位对应的可编程状态位。
3.根据权利要求1所述的方法,其特征在于,根据更新后的寄存器值获取第一判断结果,包括:
在所述非单次可编程非易失状态位对应的寄存器值与所述第一存储区域中的第一可编程状态位的值相同的情况下,确定所述第一判断结果为不需要对所述非单次可编程非易失状态位进行写入;所述第一可编程状态位为与所述非单次可编程非易失状态位对应的可编程状态位。
4.根据权利要求1所述的方法,其特征在于,判断是否需要对所述单次可编程非易失状态位进行写入,获得第二判断结果,包括:
在所述单次可编程非易失状态位对应的寄存器值为由0写1,且在所述第二存储区域中的第二可编程状态位为1的情况下,确定所述第二判断结果为需要对所述单次可编程非易失状态位进行写入;所述第二可编程状态位为与所述单次可编程非易失状态位对应的可编程状态位。
5.根据权利要求1所述的方法,其特征在于,判断是否需要对所述单次可编程非易失状态位进行写入,获得第二判断结果,包括:
在所述单次可编程非易失状态位对应的寄存器值不为由0写1,和/或,所述第二存储区域中的第二可编程状态位不为1的情况下,确定所述第二判断结果为不需要对所述单次可编程非易失状态位进行写入;所述第二可编程状态位为与所述单次可编程非易失状态位对应的可编程状态位。
6.根据权利要求1所述的方法,其特征在于,将所述单次可编程非易失状态位对应的寄存器值写入所述第二存储区域中后,还包括:
在接收到复位指令或重新上电的情况下,从所述第一存储区域中读取出第一可编程状态位对应的值,并根据所述第一可编程状态位对应的值对所述状态寄存器中的与所述第一可编程状态位对应的非单次可编程非易失状态位进行恢复;从所述第二存储区域中读取出第二可编程状态位对应的值,并根据所述第二可编程状态位对应的值对所述状态寄存器中的与所述第二可编程状态位对应的单次可编程非易失状态位进行恢复。
7.根据权利要求1所述的方法,其特征在于,所述对状态寄存器的寄存器值进行更新后,还包括:
判断是否需要写所述状态寄存器的非易失状态位。
8.根据权利要求7所述的方法,其特征在于,根据更新后的寄存器值获取第一判断结果,包括:
在需要写所述状态寄存器的非易失状态位的情况下,根据更新后的寄存器值获取第一判断结果。
9.一种用于数据写入的装置,其特征在于,包括:
更新模块,被配置为响应于用户发送的写状态寄存器指令,对状态寄存器的寄存器值进行更新;所述状态寄存器包括易失状态位和非易失状态位,非易失状态位包括非单次可编程非易失状态位和单次可编程非易失状态位;
第一获取模块,被配置为根据更新后的寄存器值获取第一判断结果;
第一写入模块,被配置为在所述第一判断结果为需要对所述非单次可编程非易失状态位进行写入的情况下,对预设的第一存储区域进行擦除操作后并对所述第一存储区域进行编程操作,将所述非单次可编程非易失状态位对应的寄存器值写入所述第一存储区域中;所述第一存储区域用于存储状态寄存器中非单次可编程非易失状态位;
第二获取模块,被配置为判断是否需要对所述单次可编程非易失状态位进行写入,获得第二判断结果;
第二写入模块,被配置为在第二判断结果为需要对所述单次可编程非易失状态位进行写入的情况下,对预设的第二存储区域进行编程操作,将所述单次可编程非易失状态位对应的寄存器值写入所述第二存储区域中;所述第二存储区域用于存储状态寄存器中单次可编程非易失状态位。
10.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至8任一项所述的用于数据写入的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103951.6A CN114115755B (zh) | 2022-01-28 | 2022-01-28 | 用于数据写入的方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103951.6A CN114115755B (zh) | 2022-01-28 | 2022-01-28 | 用于数据写入的方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114115755A CN114115755A (zh) | 2022-03-01 |
CN114115755B true CN114115755B (zh) | 2022-04-01 |
Family
ID=80361926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210103951.6A Active CN114115755B (zh) | 2022-01-28 | 2022-01-28 | 用于数据写入的方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114115755B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1110488A (zh) * | 1993-04-13 | 1995-10-18 | 琼希格有限公司 | 非易失性存储器的数据写入 |
CN103955355A (zh) * | 2013-03-18 | 2014-07-30 | 清华大学 | 一种应用于非易失处理器中的分段并行压缩方法及系统 |
CN108122588A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 非易失性存储器设备及包括其的存储设备 |
-
2022
- 2022-01-28 CN CN202210103951.6A patent/CN114115755B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1110488A (zh) * | 1993-04-13 | 1995-10-18 | 琼希格有限公司 | 非易失性存储器的数据写入 |
US5715431A (en) * | 1993-04-13 | 1998-02-03 | Mondex International Limited | Tamper proof security measure in data writing to non-volatile memory |
CN103955355A (zh) * | 2013-03-18 | 2014-07-30 | 清华大学 | 一种应用于非易失处理器中的分段并行压缩方法及系统 |
CN108122588A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 非易失性存储器设备及包括其的存储设备 |
Non-Patent Citations (3)
Title |
---|
《Scalable Logging through Emerging Non-Volatile Memory》;Tianzheng Wang 等;《Proceedings of the VLDB Endowment》;20140601;第7卷(第10期);全文 * |
《面向非易失内存的数据一致性研究综述》;肖仁智 等;《计算机研究与发展》;20200130;第50卷(第1期);全文 * |
基于ARM的NAND Flash数据存储系统的设计与实现;黄培花;《滨州学院学报》;20120615(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114115755A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100531192B1 (ko) | 비휘발성 메모리의 제어방법 | |
EP2638466B1 (en) | Software updating process for an embedded device | |
CN101918928B (zh) | 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子系统及相关方法 | |
CN100380529C (zh) | 非易失性存储器 | |
EP2180408B1 (en) | Method for writing and reading data in an electrically erasable and programmable nonvolatile memory | |
US10310772B2 (en) | Memory control method and memory control apparatus | |
JP3233079B2 (ja) | データ処理システム及びデータ処理方法 | |
KR100316981B1 (ko) | 플래시 메모리를 구비한 마이크로컴퓨터 및 플래시 메모리에 프로그램을 저장하는 방법 | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
KR960701415A (ko) | 프로그램으로 제어되는 시큐리티 액세스 콘트롤을 가진 보안성 메모리 카드 | |
CN110909395B (zh) | 一种非易失性存储设备数据销毁的方法及装置 | |
US11550474B2 (en) | Data storage device and method for rewriting parameters thereof | |
CN109685190B (zh) | 一种ic卡掉电保护方法及装置 | |
CN107045484B (zh) | 数据存储装置 | |
CN107704338B (zh) | 一种资料储存型闪存的数据恢复方法和装置 | |
CN114115755B (zh) | 用于数据写入的方法及装置、存储介质 | |
JP4661369B2 (ja) | メモリコントローラ | |
JP3620478B2 (ja) | 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法 | |
JP4031693B2 (ja) | 不揮発性メモリおよびこれを有したデータ記憶装置 | |
CN101694636A (zh) | 非易失性数据存储器数据更新备份系统及方法 | |
CN114115754B (zh) | 用于数据更新的方法及装置、电子设备、存储介质 | |
CN111090542A (zh) | 基于异常掉电的异常块识别方法、装置及计算机设备 | |
JP4580724B2 (ja) | 不揮発性メモリの制御方法 | |
CN115686373A (zh) | 用于数据加固的方法及装置、电子设备、存储介质 | |
JP3835753B2 (ja) | Icカード |
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 |