CN117369724A - 非易失性存储器数据读写控制方法和装置 - Google Patents
非易失性存储器数据读写控制方法和装置 Download PDFInfo
- Publication number
- CN117369724A CN117369724A CN202311380105.XA CN202311380105A CN117369724A CN 117369724 A CN117369724 A CN 117369724A CN 202311380105 A CN202311380105 A CN 202311380105A CN 117369724 A CN117369724 A CN 117369724A
- Authority
- CN
- China
- Prior art keywords
- partition
- state
- bit
- state information
- data
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 136
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000005192 partition Methods 0.000 claims abstract description 235
- 230000001960 triggered effect Effects 0.000 claims abstract description 26
- 230000002159 abnormal effect Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 8
- 230000002035 prolonged effect Effects 0.000 abstract 1
- 230000005856 abnormality Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 102100021568 B-cell scaffold protein with ankyrin repeats Human genes 0.000 description 1
- 101000971155 Homo sapiens B-cell scaffold protein with ankyrin repeats Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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)
- Read Only Memory (AREA)
Abstract
本公开的实施例提供的非易失性存储器数据读写控制方法和装置,包括:根据待写入的非易失数据的数量信息,确定非易失性存储器的存储空间的划分区间,其中,划分区间包括状态位和存储位,状态位包括第一状态位和第二状态位,第一状态位为划分区间的第一个存储空间,第二状态位为划分区间的最后一个存储空间;响应于接收到的目标对象触发的写操作,获取各划分区间的状态位的状态信息;根据各划分区间的状态位的状态信息,确定写入非易失数据的目标划分区间,可对划分为多个划分区间的NVM存储器实现非易失数据的烧写与读取,实现了最大化利用NVM存储空间,增加了NVM存储控制系统的擦写寿命。
Description
技术领域
本发明涉及非易失性存储器技术领域以及相关技术领域,具体地,涉及适用于一种非易失性存储器数据读写控制方法和装置。
背景技术
以非易失性存储器(Nonvolatile Memory,NVM)存储数据在微控制器数据处理和芯片设计等领域都被广泛应用。但随着信息技术的不断发展,对系统擦写使用寿命和数据安全性的要求也在不断提高。
现有技术中,为实现最大化分配NVM的存储空间从而增加擦写寿命,通过选择带有BLOCK块操作的NVM存储器,并进行循环BLOCK块地址控制的设计,可在一定程度上增加控制系统的擦写寿命,但若NVM存储器固有的BLOCK划分与想要存储的数据量匹配较差时,则NVM存储器的存储空间仍具有较低的利用率,这对复杂系统不同存储信息量或可变存储信息量的需求非常不利,需要对带有BLOCK块地址控制的NVM存储器严格选型,成本高泛用性差。
发明内容
本文中描述的实施例提供了一种非易失性存储器数据读写控制方法和装置,解决现有技术存在的问题。
根据本公开的第一方面,提供了一种非易失性存储器数据读写控制方法,包括:
根据待写入的非易失数据的数量信息,确定所述非易失性存储器的存储空间的划分区间,其中,所述划分区间包括状态位和存储位,所述状态位包括第一状态位和第二状态位,所述第一状态位为所述划分区间的第一个存储空间,所述第二状态位为所述划分区间的最后一个存储空间;
响应于接收到的目标对象触发的写操作,获取各所述划分区间的状态位的状态信息;
根据各所述划分区间的状态位的状态信息,确定写入所述非易失数据的目标划分区间。
在本公开一些实施例中,所述根据待操作的非易失数据的数量信息,确定所述非易失性存储器的存储空间的划分区间,包括:
根据待操作的非易失数据的数据信息,确定所述划分区间所占用的存储空间;
根据所述非易失性存储器的存储空间和所述划分区间所占用的存储空间,确定所述非易失存储器的存储空间的划分区间。
在本公开一些实施例中,所述响应于接收到的目标对象触发的写操作,获取各所述划分区间的状态位的状态信息,包括:
响应于接收到的目标对象触发的第一次写操作,向所述非易失性存储器的第一个划分区间的存储位写入所述非易失数据,并更新所述第一个划分区间的状态位的状态信息;
响应于接收到的目标对象触发的再次写操作,获取各所述划分区间的状态位的状态信息。
在本公开一些实施例中,所述根据各所述划分区间的状态位的状态信息,确定将所述非易失数据写入的目标划分区间,包括:
根据与划分区间前后相邻的两个划分区间的状态位的状态信息,确定各所述划分区间的状态信息;
当各所述划分区间的状态信息均为第一状态时,擦除所述非易失性存储器的存储空间的数据;
当至少存在一个所述划分区间的状态信息为第二状态时,根据为第二状态的所述划分区间的状态位的状态信息,确定将所述非易失数据写入的目标划分区间。
在本公开一些实施例中,所述根据与划分区间前后相邻的两个划分区间的状态位的状态信息,确定各所述划分区间的状态信息,包括:
当所述划分区间的第一状态位的状态信息与该划分区间相邻的前一个划分区间的第二状态位的状态信息相同时,该划分区间为第一状态;
当所述划分区间的第二状态位的状态信息与该划分区间相邻的后一个划分区间的第一状态位的状态信息相反时,与该划分区间相邻的后一个划分区间为第二状态。
在本公开一些实施例中,所述当至少存在一个所述划分区间的状态信息为第二状态时,根据为第二状态的各所述划分区间对应的区间标号,确定将所述非易失数据写入的目标划分区间,包括:
当至少存在一个所述划分区间的状态信息为第二状态时,若第K-1个划分区间的第二状态位的状态信息与第K个划分区间的第一状态位的状态信息相同,且第K个划分区间的第二状态位的状态信息与第K+1个划分区间的第一状态位的状态信息相反,确定将所述非易失数据写入第K+1个划分区间。
在本公开一些实施例中,所述向所述非易失性存储器的第一个划分区间的存储位写入所述非易失数据,并更新所述第一个划分区间的状态位的状态信息之前,还包括:
擦除所述非易失性存储器的存储空间的数据。
在本公开一些实施例中,所述方法还包括:
获取向所述目标划分区间写入所述非易失数据时的异常状态信息;
根据向所述目标划分区间写入非易失数据的异常状态信息,确定下一次写入所述非易失数据所对应的目标划分区间。
在本公开一些实施例中,所述方法还包括:
响应于接收到的目标对象的读操作,获取各所述划分区间的状态位的状态信息;
根据各所述划分区间的状态位的状态信息,确定读取所述非易失数据所对应的目标划分区间。
根据本公开的第二方面,提供了一种非易失性存储器数据读写控制装置,包括:
划分区间确定模块,用于根据待写入的非易失数据的数量信息,确定所述非易失性存储器的存储空间的划分区间,其中,所述划分区间包括状态位和存储位,所述状态位包括第一状态位和第二状态位,所述第一状态位为所述划分区间的第一个存储空间,所述第二状态位为所述划分区间的最后一个存储空间;
状态信息获取模块,用于响应于接收到的目标对象触发的写操作,获取各所述划分区间的状态位的状态信息;
写入模块,用于根据各所述划分区间的状态位的状态信息,确定写入所述非易失数据的目标划分区间。
本公开实施例提供的非易失性存储器数据读写控制方法和装置,可对划分为多个划分区间的NVM存储器实现非易失数据的烧写与读取,实现了最大化利用NVM存储空间,增加NVM存储控制系统的擦写寿命的目的。此外,本公开实施例提供的非易失性存储器数据读写控制方法,能够有效避免异常时因读出损坏非易失性数据而导致控制系统工作在非预期甚至不可恢复的错误状态,有效提高NVM数据读写的安全性。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对实施例的附图进行简要说明,应当知道,以下描述的附图仅仅涉及本公开的一些实施例,而非对本公开的限制,其中:
图1是本公开实施例提供的一种非易失性存储器数据读写控制方法的流程示意图;
图2是本公开实施例提供的一种非易失性存储器的存储空间的结构示意图;
图3是本公开实施例提供的另一种非易失性存储器的存储空间的结构示意图;
图4是本公开实施例提供的一种非易失性存储器的存储空间的存储异常的结构示意图;
图5是本公开实施例提供的一种非易失性存储器数据读写控制装置的结构示意图;
图6是本公开实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本公开的实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开的实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域技术人员在无需创造性劳动的前提下所获得的所有其它实施例,也都属于本公开保护的范围。
除非另外定义,否则在此使用的所有术语(包括技术和科学术语)具有与本公开主题所属领域的技术人员所通常理解的相同含义。进一步将理解的是,诸如在通常使用的词典中定义的那些的术语应解释为具有与说明书上下文和相关技术中它们的含义一致的含义,并且将不以理想化或过于正式的形式来解释,除非在此另外明确定义。如在此所使用的,将两个或更多部分“连接”或“耦接”到一起的陈述应指这些部分直接结合到一起或通过一个或多个中间部件结合。
在本公开的所有实施例中,诸如“第一”和“第二”的术语仅用于将一个部件(或部件的一部分)与另一个部件(或部件的另一部分)区分开。
除非上下文中另外明确地指出,否则在本文和所附权利要求中所使用的词语的单数形式包括复数,反之亦然。因而,当提及单数时,通常包括相应术语的复数。相似地,措辞“包含”和“包括”将解释为包含在内而不是独占性地。同样地,术语“包括”和“或”应当解释为包括在内的,除非本文中明确禁止这样的解释。在本文中使用术语“示例”之处,特别是当其位于一组术语之后时,所述“示例”仅仅是示例性的和阐述性的,且不应当被认为是独占性的或广泛性的。
基于现有技术存在的问题,本公开实施例提供一种非易失性存储器数据读写控制方法,非易失性存储器数据读写控制方法应用于NVM控制系统,图1是本公开实施例提供的非易失性存储器读写控制方法的流程示意图,如图1所示,非易失性存储器读写控制方法包括:
S110、根据待写入的非易失数据的数量信息,确定非易失性存储器的存储空间的划分区间。
其中,划分区间包括状态位和存储位,状态位包括第一状态位和第二状态位,第一状态位为划分区间的第一个存储空间,第二状态位为划分区间的最后一个存储空间,存储位为所述划分区间中除状态位之外的存储空间。
在具体的实施方式中,根据待写入的非易失数据的数量信息,确定非易失性存储器的存储空间的划分区间的具体过程包括:根据待操作的非易失数据的数据信息,确定划分区间所占用的存储空间;根据非易失性存储器的存储空间和划分区间所占用的存储空间,确定非易失存储器的存储空间的划分区间。
示例性的,若待写入的非易失数据的数量信息为M bytes,则一个划分区间所占用的存储空间大小Mbank为:
Mbank=M+2 (1)
选取任意存储量为N bytes的NVM存储器,最多可设置划分区间的个数Nbank为:
Nbank=[N÷Mbank] (2)
以使用一块存储空间为32Bytes的NVM存储器存储6byte信息为例,则一个划分区间所占用的存储空间大小为8bytes,最多可划分4个划分区间。
本公开实施例中,首先NVM控制系统根据待写入的非易失数据的数量信息,对非易失性存储器的存储空间进行划分,并对划分后的划分区间设定第一状态位和第二状态位,通过各划分区间对应的第一状态位的状态信息和第二状态位的状态信息,确定该划分区间的状态信息,其中,划分区间的状态信息包括已完成写入状态和待写入状态。
示例性的,当第一个划分区间的第一状态位的状态信息与第Nbank个划分区间的第二状态位的状态信息相同,第一个划分区间的第二状态位的状态信息与第二个划分区间的第二状态位的状态信息相反时,表征第一划分区间为已完成写入状态,第二划分区间为待写入状态。
S120、响应于接收到的目标对象触发的写操作,获取各划分区间的状态位的状态信息。
作为具体的实施例,响应于接收到的目标对象触发的第一次写操作,向非易失性存储器的第一个划分区间的存储位写入非易失数据,并更新第一个划分区间的状态位的状态信息;响应于接收到的目标对象触发的再次写操作,获取各划分区间的状态位的状态信息。
本公开实施例中,首先NVM控制系统根据待写入的非易失数据的数量信息,对NVM存储器的存储空间进行区间划分,在区间划分后,当NVM控制系统接收到目标对象触发的写操作,若目标对象触发的写操作为第一次写操作,则NVM控制系统向非易失性存储器的第一个划分区间的存储位写入非易失数据,并更新第一个划分区间的状态位的状态信息。若目标对象触发的写操作为非第一次写操作,则NVM控制系统首先获取各划分区间的状态位的状态信息,根据获取的各划分区间的状态位的状态信息,确定此次目标对象触发的写操作所需要写入的划分区间。
由于在向NVM存储器写入数据时,若NVM控制系统首次接收到目标对象触发的写操作时,NVM控制系统首先擦除非易失性存储器的存储空间的数据,也即控制系统首先擦除非易失性存储器的存储空间的划分区间中存储的数据,因此,若目标对象触发的写操作为第一次写操作,则NVM控制系统向非易失性存储器的第一个划分区间的存储位写入待写入的非易失数据。
S130、根据各划分区间的状态位的状态信息,确定写入非易失数据的目标划分区间。
当目标对象触发的写操作非第一次写操作,则NVM控制系统根据获取的各划分区间的状态位的状态信息,确定与此次写操作所对应的目标划分区间,也即非易失数据写入的目标划分区间。
具体的,结合图2和图3,首次烧写默认所有划分区间为空,因此首次烧写数据必定从第一个划分区间(BANK1)开始,也即向第一个划分区间(BANK1)的第一个状态位(HEAD1)中烧写与第Nbank个划分区间(BANKNbank)的第二个状态位(TAILNbank)相等的存储值,向第一个划分区间(BANK1)的第二个状态位(TAIL1)中烧写与第二个划分区间的第一个状态位(HEAD2)相反的存储值,以此关系判断当前第一个划分区间(BANK1)已烧写完成,以及当前第二个划分区间(BANK2)处于空状态可烧写下一次的数据。
当目标对象再一次触发写操作时,由于第一个划分区间(BANK1)已烧写完成,第二个划分区间(BANK2)处于空状态,因此,此次将待写入的非易失数据写入第二个划分区间(BANK2)的存储位,在将待写入的非易失数据写入第二个划分区间(BANK2)的存储位的同时,在第二个划分区间(BANK2)的第一个状态位(HEAD2)中烧写与第一个划分区间(BANK1)的第二个状态位(TAIL1)相等的存储值,在第二个划分区间(BANK2)的第二个状态位(TAIL2)中烧写与第三个划分区间(BANK3)的第一个状态位(HEAD3)相反的存储值。也即更新第二个划分区间(BANK2)的状态位的状态信息,通过更新第二个划分区间(BANK2)的状态位的状态信息,确定下一次目标对象触发写操作时,待写入的非易失数据写入的划分区间。即根据第二划分区间(BANK2)的第一状态位的状态信息和第二状态位的状态信息,确定第二划分区间(BANK2)已烧写完成,以及当前第三个划分区间(BANK3)处于空状态可烧写下一次的数据。
以此类推,直至目标对象触发的写操作的操作次数达到Nbank,将向第Nbank个划分区间(BANKN)的第一状态位(HEAD(Nbank))中烧写与第Nbank-1个划分区间(BANKN-1)的第二状态位TAIL(Nbank-1)相等的存储值,向第Nbank个划分区间(BANKN)的第二状态位(TAIL(Nbank))中烧写与第一个划分区间的第一状态位(HEAD1)相反的存储值,此时所有划分区间存储状态已满。
在第Nbank个划分区间(BANKN)烧写已满后,再进行烧写操作时,需要对NVM内存储内容进行擦除,此时默认所有BANK为空,本次烧写数据必定从第一个划分区间(BANK1)开始,再次进行循环操作。
综上所述,一个划分区间个数为Nbank的NVM存储器,若目标对象触发的写操作为第k次写操作,根据如下公式,更新划分区间的状态位的状态信息。
具体的,当目标对象触发的写操作为第一次写操作,则将第一个划分区间的第一状态位的状态信息更新为第Nbank个划分区间的第二状态位的状态信息,将第一个划分区间的第二状态位的状态信息更新为与第二个划分区间的第一状态位的状态信息相反的状态信息,此时,当接收到目标对象触发的第二次写操作时,此时,根据第一划分区间的第一状态位的状态信息和第二状态位的状态信息,可以确定第一个划分区间已烧写完成,以及当前第二个划分区间处于空状态可烧写下一次的数据,因此,将与第二次写操作对应的待写入的非易失数据写入第二个划分区间的存储位,与此同时,将第二个划分区间的第一状态位的状态信息更新为第一个划分区间的第二状态位的状态信息,将第二个划分区间的第二状态位的状态信息更新为第与第三个划分区间的第一状态位的状态信息相反的状态信息,以此类推。
因此,根据各划分区间的状态位的状态信息,确定将非易失数据写入的目标划分区间,可基于如下公式确定:
其中,BANK(k)_present表示第k个划分区间(BANK(k))已被烧入数据,而BANK(k)_next则表示表示第k个划分区间BANK(k)为下次写操作待写入的划分区间。
在写操作情况下,本次写操作对应的非易失性存储器的划分区间满足如公式(5)所示:
如公式(5)所示,定义了当前NVM存储器所划分的所有划分区间的状态信息,其中:
(1)BANK_empty为当前NVM存储器所划分的所有划分区间均为空的判断标志,即对NVM存储器进行擦除操作后的初始标志,此时写操作将从第一个划分区间开始。
(2)BANK_full代表当前NVM存储器所划分的所有划分区间均为满的判断标志,即所有划分区间的标志均为1。
(3)BANK1_ready代表本次写操作准备向NVM存储器的第一个划分区间BANK1中烧入数据的标志。
(4)BANK(k)_ready代表本次写操作准备向NVM存储器第k个划分区间BANK(k)中烧入数据的标志。
也即本申请中,根据各划分区间的状态位的状态信息,确定将非易失数据写入的目标划分区间,包括:根据与划分区间前后相邻的两个划分区间的状态位的状态信息,确定各划分区间的状态信息;当各划分区间的状态信息均为第一状态时,擦除非易失性存储器的存储空间的数据;当至少存在一个划分区间的状态信息为第二状态时,根据为第二状态的划分区间的状态位的状态信息,确定将非易失数据写入的目标划分区间。
其中,根据与划分区间前后相邻的两个划分区间的状态位的状态信息,确定各划分区间的状态信息,包括:当划分区间的第一状态位的状态信息与该划分区间相邻的前一个划分区间的第二状态位的状态信息相同时,该划分区间为第一状态;当划分区间的第二状态位的状态信息与该划分区间相邻的后一个划分区间的第一状态位的状态信息相反时,与该划分区间相邻的后一个划分区间为第二状态。
上述实施例中,第一状态指的是划分区间为满的状态,第二状态指的是划分区间为空的状态,若当各划分区间的状态信息均为第一状态时,此时,擦除非易失性存储器的存储空间的数据,若至少存在一个划分区间的状态信息为第二状态,根据为第二状态的划分区间的状态位的状态信息,确定将非易失数据写入的目标划分区间,例如,若非易失性存储器的存储空间的划分区间为4个划分区间,存在一个划分区间的状态信息为第二状态,此时表征第一个划分区间、第二个划分区间和第三个划分区间均为为满的状态,此时,若第四个划分区间的第一个状态位的状态信息与第三个划分区间的第二个状态位的状态信息相反时,将非易失数据写入的第四个划分区间;若非易失性存储器的存储空间的划分区间为4个划分区间,存在两个划分区间的状态信息为第二状态,此时表征第一个划分区间和第二个划分区间为满的状态,此时,若第三个划分区间的第一个状态位的状态信息与第二个划分区间的第二个状态位的状态信息相反时,选取第三个划分区间作为非易失数据写入的目标划分区间。
本公开实施例中,当需要对非易失性存储器进行读操作时,获取各划分区间的状态位的状态信息,然后根据各划分区间的状态位的状态信息,确定读取非易失数据所对应的目标划分区间。
具体的,如下公式所示:
(1)当读操作对应的划分区间为除最后一个划分区间的任意一个划分区间BANK(k)时,划分区间BANK(k)之前的所有划分区间均为第一状态,且该划分区间的第二状态位的状态信息与与该划分区间相邻的后一个划分区间的第一个状态位的状态信息相反。
(2)当读操作对应的划分区间为最后一个划分区间时,需要各划分区间均为第一状态且第一个划分区间的第一状态位的状态信息与最后一个划分区间的第二个状态位的状态信息相反。
在上述实施例的基础上,本公开实施例提供的非易失性存储器数据读写控制方法还包括:获取向目标划分区间写入非易失数据时的异常状态信息;根据向目标划分区间写入非易失数据的异常状态信息,确定下一次写入非易失数据所对应的目标划分区间。
具体的,在向目标划分区间写入数据会存在在不同时间点损坏情况,以向某个划分区间写入数据过程中,NVM控制系统异常掉电为例,其可分别在向划分区间的第一状态位(HEAD)、存储位(DATA)和第二状态位(TAIL)写的过程中掉电,导致相应位置待写的数据被损坏,结合图4,具体情况如下:
(1)若在写划分区间的第一状态位(HEAD)的过程中发生异常,第一状态位(HEAD)还未写入数据,且下一次可正常向该划分区间的第一状态位(HEAD)写入数据时,则本次异常并未导致数据损坏。此时读取非易失性数据将从与该划分区间相邻的前一个划分区间中读出,且下次写操作将写入该划分区间。
(2)若在写划分区间的第一状态位(HEAD)时发生异常,且该划分区间的第一状态位(HEAD)被烧入异常数据,则本次异常导致划分区间的第一状态位(HEAD)数据损坏,此时判别有写入非易失数据时的异常状态信息BANK_error产生。若NVM控制系统读取非易失性数据将读出系统默认缺省设置值,或一条特定的写入非易失数据时的异常状态信息BANK_error消息NVM控制系统将在下次写非易失数据操作前,对NVM存储器进行擦除操作,并将下次数据写入第一个划分区间,使整个非易失性存储器写循环从第一个划分区间开始。
(3)若在写划分区间的存储位DATA或第二状态位TAIL时发生异常,导致后续第二状态位TAIL烧录失败或为错误的烧录值,则本次异常导致第二状态位TAIL数据损坏,此时判别有写入非易失数据时的异常状态信息BANK_error产生。若NVM控制系统读取非易失性数据将读出系统默认缺省设置值,或一条特定的写入非易失数据时的异常状态信息BANK_error消息。NVM控制系统将在下次写非易失数据操作前,对NVM存储器进行擦除操作,并将下次数据写入第一个划分区间,使整个非易失性存储器写循环从第一个划分区间开始。
(4)若在写划分区间的第二状态位TAIL时发生异常,但此时第二状态位TAIL已被烧入预期烧录数据,则本次异常并未导致数据损坏。此时读取非易失性数据将从该划分区间中给出,下次非易失数据操作将写入与该划分区间项链的后一个划分区间。
总结以上描述,则写入非易失数据时的异常状态信息BANK_error的判别条件为:
若判别出现写入非易失数据时的异常状态信息BANK_error条件,则NVM控制系统将在读取时强制读出系统默认缺省设置值,或一条特定的写入非易失数据时的异常状态信息BANK_error消息,以防止整个控制系统因读出损坏消息而工作在非预期状态,尤其是预防控制系统因读出损坏消息而工作在不可恢复甚至导致系统损伤的非预期状态。
本公开实施例提供的非易失性存储器数据读写控制方法,适用于当前所有类型的NVM存储器,对其存储空间不做严格限制,也能适应擦除后NVM内byte初始值为0、1或随机值的所有类型,对控制系统中NVM选型限制小,泛用性强。
本公开实施例提供的非易失性存储器数据读写控制方法,可对划分为多个划分区间的NVM存储器实现非易失数据的烧写与读取,实现了最大化利用NVM存储空间,增加NVM存储控制系统的擦写寿命的目的。此外,本公开实施例提供的非易失性存储器数据读写控制方法,能够有效避免异常时因读出损坏非易失性数据而导致控制系统工作在非预期甚至不可恢复的错误状态,有效提高NVM数据读写的安全性。
在上述实施例的基础上,本公开实施例还提供一种非易失性存储器数据读写控制装置,图5是本公开实施例提供的一种非易失性存储器数据读写控制装置的结构示意图,如图5所示,非易失性存储器数据读写控制装置包括:
划分区间确定模块510,用于根据待写入的非易失数据的数量信息,确定非易失性存储器的存储空间的划分区间,其中,划分区间包括状态位和存储位,状态位包括第一状态位和第二状态位,第一状态位为划分区间的第一个存储空间,第二状态位为划分区间的最后一个存储空间;
状态信息获取模块520,用于响应于接收到的目标对象触发的写操作,获取各划分区间的状态位的状态信息;
写入模块530,用于根据各划分区间的状态位的状态信息,确定将非易失数据写入的目标划分区间。
本公开实施例提供的非易失性存储器数据读写控制装置,可对划分为多个划分区间的NVM存储器实现非易失数据的烧写与读取,实现了最大化利用NVM存储空间,增加NVM存储控制系统的擦写寿命的目的。此外,本公开实施例提供的非易失性存储器数据读写控制方法,能够有效避免异常时因读出损坏非易失性数据而导致控制系统工作在非预期甚至不可恢复的错误状态,有效提高NVM数据读写的安全性。
在上述实施例的基础上,本申请实施例还提供了一种计算机设备。具体请参阅图6,图6为本实施例计算机设备基本结构框图。
计算机设备包括通过系统总线相互通信连接存储器410和处理器420。需要指出的是,图中仅示出了具有组件410-420的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器410至少包括一种类型的可读存储介质,可读存储介质包括非易失性存储器(non-volatile memory)或易失性存储器,例如,闪存(flashmemory)、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦写可编程只读存储器(erasable programmable read-onlymemory,EPROM)、电可擦写可编程只读存储器(electrically erasable programmableread-onlymemory,EEPROM)、可编程只读存储器(programmable read-only memory,PROM)、磁性存储器、磁盘、光盘等,RAM可以包括静态RAM或动态RAM。在一些实施例中,存储器410可以是计算机设备的内部存储单元,例如,该计算机设备的硬盘或内存。在另一些实施例中,存储器410也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡或闪存卡(FlashCard)等。当然,存储器410还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器410通常用于存储安装于计算机设备的操作系统和各类应用软件,例如上述方法的程序代码等。此外,存储器410还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器420通常用于执行计算机设备的总体操作。本实施例中,存储器410用于存储程序代码或指令,程序代码包括计算机操作指令,处理器420用于执行存储器410存储的程序代码或指令或者处理数据,例如运行上述方法的程序代码。
本文中,总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。该总线系统可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请的另一实施例还提供一种计算机可读介质,计算机可读介质可以是计算机可读信号介质或者计算机可读介质。计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在上述方法中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读介质包含但不限于电子、磁性、光学、电磁、红外的存储器或半导体系统、设备或者装置,或者前述的任意适当组合,存储器用于存储程序代码或指令,程序代码包括计算机操作指令,处理器用于执行存储器存储的上述方法的程序代码或指令。
存储器和处理器的定义,可以参考前述计算机设备实施例的描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请各个实施例中的各功能单元或模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
除非上下文中另外明确地指出,否则在本文和所附权利要求中所使用的词语的单数形式包括复数,反之亦然。因而,当提及单数时,通常包括相应术语的复数。相似地,措辞“包含”和“包括”将解释为包含在内而不是独占性地。同样地,术语“包括”和“或”应当解释为包括在内的,除非本文中明确禁止这样的解释。在本文中使用术语“示例”之处,特别是当其位于一组术语之后时,所述“示例”仅仅是示例性的和阐述性的,且不应当被认为是独占性的或广泛性的。
适应性的进一步的方面和范围从本文中提供的描述变得明显。应当理解,本申请的各个方面可以单独或者与一个或多个其它方面组合实施。还应当理解,本文中的描述和特定实施例旨在仅说明的目的并不旨在限制本申请的范围。
以上对本公开的若干实施例进行了详细描述,但显然,本领域技术人员可以在不脱离本公开的精神和范围的情况下对本公开的实施例进行各种修改和变型。本公开的保护范围由所附的权利要求限定。
Claims (10)
1.一种非易失性存储器数据读写控制方法,其特征在于,包括:
根据待写入的非易失数据的数量信息,确定所述非易失性存储器的存储空间的划分区间,其中,所述划分区间包括状态位和存储位,所述状态位包括第一状态位和第二状态位,所述第一状态位为所述划分区间的第一个存储空间,所述第二状态位为所述划分区间的最后一个存储空间;
响应于接收到的目标对象触发的写操作,获取各所述划分区间的状态位的状态信息;
根据各所述划分区间的状态位的状态信息,确定写入所述非易失数据的目标划分区间。
2.根据权利要求1所述的方法,其特征在于,所述根据待操作的非易失数据的数量信息,确定所述非易失性存储器的存储空间的划分区间,包括:
根据待操作的非易失数据的数据信息,确定所述划分区间所占用的存储空间;
根据所述非易失性存储器的存储空间和所述划分区间所占用的存储空间,确定所述非易失存储器的存储空间的划分区间。
3.根据权利要求1所述的方法,其特征在于,所述响应于接收到的目标对象触发的写操作,获取各所述划分区间的状态位的状态信息,包括:
响应于接收到的目标对象触发的第一次写操作,向所述非易失性存储器的第一个划分区间的存储位写入所述非易失数据,并更新所述第一个划分区间的状态位的状态信息;
响应于接收到的目标对象触发的再次写操作,获取各所述划分区间的状态位的状态信息。
4.根据权利要求1所述的方法,其特征在于,所述根据各所述划分区间的状态位的状态信息,确定将所述非易失数据写入的目标划分区间,包括:
根据与划分区间前后相邻的两个划分区间的状态位的状态信息,确定各所述划分区间的状态信息;
当各所述划分区间的状态信息均为第一状态时,擦除所述非易失性存储器的存储空间的数据;
当至少存在一个所述划分区间的状态信息为第二状态时,根据为第二状态的所述划分区间的状态位的状态信息,确定将所述非易失数据写入的目标划分区间。
5.根据权利要求4所述的方法,其特征在于,所述根据与划分区间前后相邻的两个划分区间的状态位的状态信息,确定各所述划分区间的状态信息,包括:
当所述划分区间的第一状态位的状态信息与该划分区间相邻的前一个划分区间的第二状态位的状态信息相同时,该划分区间为第一状态;
当所述划分区间的第二状态位的状态信息与该划分区间相邻的后一个划分区间的第一状态位的状态信息相反时,与该划分区间相邻的后一个划分区间为第二状态。
6.根据权利要求5所述的方法,其特征在于,所述当至少存在一个所述划分区间的状态信息为第二状态时,根据为第二状态的各所述划分区间对应的区间标号,确定将所述非易失数据写入的目标划分区间,包括:
当至少存在一个所述划分区间的状态信息为第二状态时,若第K-1个划分区间的第二状态位的状态信息与第K个划分区间的第一状态位的状态信息相同,且第K个划分区间的第二状态位的状态信息与第K+1个划分区间的第一状态位的状态信息相反,确定将所述非易失数据写入第K+1个划分区间。
7.根据权利要求3所述的方法,其特征在于,所述向所述非易失性存储器的第一个划分区间的存储位写入所述非易失数据,并更新所述第一个划分区间的状态位的状态信息之前,还包括:
擦除所述非易失性存储器的存储空间的数据。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取向所述目标划分区间写入所述非易失数据时的异常状态信息;
根据向所述目标划分区间写入非易失数据的异常状态信息,确定下一次写入所述非易失数据所对应的目标划分区间。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到的目标对象的读操作,获取各所述划分区间的状态位的状态信息;
根据各所述划分区间的状态位的状态信息,确定读取所述非易失数据所对应的目标划分区间。
10.一种非易失性存储器数据读写控制装置,其特征在于,包括:
划分区间确定模块,用于根据待写入的非易失数据的数量信息,确定所述非易失性存储器的存储空间的划分区间,其中,所述划分区间包括状态位和存储位,所述状态位包括第一状态位和第二状态位,所述第一状态位为所述划分区间的第一个存储空间,所述第二状态位为所述划分区间的最后一个存储空间;
状态信息获取模块,用于响应于接收到的目标对象触发的写操作,获取各所述划分区间的状态位的状态信息;
写入模块,用于根据各所述划分区间的状态位的状态信息,确定写入所述非易失数据的目标划分区间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311380105.XA CN117369724A (zh) | 2023-10-24 | 2023-10-24 | 非易失性存储器数据读写控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311380105.XA CN117369724A (zh) | 2023-10-24 | 2023-10-24 | 非易失性存储器数据读写控制方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117369724A true CN117369724A (zh) | 2024-01-09 |
Family
ID=89407379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311380105.XA Pending CN117369724A (zh) | 2023-10-24 | 2023-10-24 | 非易失性存储器数据读写控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369724A (zh) |
-
2023
- 2023-10-24 CN CN202311380105.XA patent/CN117369724A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168647B (zh) | Flash数据读写方法及系统 | |
EP2003569A2 (en) | Flash memory controller | |
US7725646B2 (en) | Method of using a flash memory for a circular buffer | |
CN107291374B (zh) | 纪录数据区块的使用时间的方法及其装置 | |
US9772937B2 (en) | Data processing method, memory controller and memory storage apparatus | |
CN109558335B (zh) | 一种基于Nor Flash存储器的嵌入式系统的文件存储格式 | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
US10650879B2 (en) | Device and method for controlling refresh cycles of non-volatile memories | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
CN113467709B (zh) | 存储器系统及其操作方法 | |
CN113360303A (zh) | 进行数据存储管理以提升数据可靠度的方法以及相关设备 | |
CN105868046B (zh) | 存储装置中管理、写入及加载固件代码的方法 | |
CN117369724A (zh) | 非易失性存储器数据读写控制方法和装置 | |
US12008249B2 (en) | Memory system and method of performing background operation | |
US11720276B2 (en) | Memory system and controller for managing write status | |
CN114300026A (zh) | 一种单调计数器、计数方法、电子设备及存储介质 | |
CN111258498B (zh) | 一种flash存储器管理方法 | |
KR20220130526A (ko) | 메모리 시스템 및 그 동작 방법 | |
CN110618784B (zh) | 数据存储装置及其操作方法 | |
US6898680B2 (en) | Minimization of overhead of non-volatile memory operation | |
JP4334331B2 (ja) | フラッシュメモリのアクセス制御方法 | |
CN118034610B (zh) | 应用于存储器的密钥数据处理方法、存储器、装置及设备 | |
CN116610269B (zh) | 数据存储方法、装置、存储介质和控制器 | |
CN114637626B (zh) | 减少eeprom数据读写出错的方法、装置、设备及可读存储介质 | |
US20240176519A1 (en) | Operating methods, memory controllers, and memory systems |
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 |