CN109669889A - 一种轻量型Nor Flash闪存控制方法和装置 - Google Patents
一种轻量型Nor Flash闪存控制方法和装置 Download PDFInfo
- Publication number
- CN109669889A CN109669889A CN201811581672.0A CN201811581672A CN109669889A CN 109669889 A CN109669889 A CN 109669889A CN 201811581672 A CN201811581672 A CN 201811581672A CN 109669889 A CN109669889 A CN 109669889A
- Authority
- CN
- China
- Prior art keywords
- data
- flash
- erasing unit
- write
- address
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004064 recycling Methods 0.000 claims description 21
- 239000003550 marker Substances 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 claims description 2
- 230000006399 behavior Effects 0.000 claims 1
- 238000000151 deposition Methods 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种轻量型Nor Flash闪存控制方法和装置,该方法使得使用者无需关心Nor‑Flash操作细节即可方便进行数据存取,有效降低了Nor‑Flash使用复杂度,实现对Nor‑Flash的高效操作,延长器件使用寿命,并保证异常情况下数据安全性。该方法包括以下步骤:构建动态地址管理表、日志信息、数据单元有效计数列表和擦除单元擦写周期计数表;接收数据写入请求,进行数据写入控制,并回收无效空间;接收数据读取请求,进行数据读取控制。
Description
技术领域
本公开涉及闪存领域,具体涉及一种轻量型Nor Flash闪存控制方法和装置。
背景技术
Nor-Flash是一种非易失性存贮介质,由Intel于1988年发明。目前,其已成为各类电子设备普遍采用的存储介质之一,用于存放程序代码及文件数据。
Nor-Flash标准操作包括读、写及擦除等。Nor-Flash读操作类似于RAM器件,只需使用者提供数据的地址,数据总线即可给出相应的数据;Nor-Flash写操作需要遵循特定的命令序列,最终在芯片内部的控制单元控制下,完成数据写入过程。Nor-Flash擦除操作同样需要遵循特定的命令序列,由于Nor-Flash存储单元基于浮栅技术,因此在对Nor-Flash进行写操作前,需要对待写入区域进行擦除操作,否则将会导致数据存储错误;同时,出于器件效率考虑,Nor-Flash擦除操作单元大小通常大于其写入单元。
在Nor-Flash传统使用方式下,调用者通常需要自行记录并管理Nor-Flash的相关状态,例如存储数据的物理地址,存储单元的写入状态,存储单元的擦写次数等。对于读取操作,可直接通过给出相应地址,将所需数据读出。对于写入操作,则存在如下限制:
(1)写入操作前需要事先判别当前写入地址是否处于擦除状态,若已擦除,可直接写入数据,若尚未擦除,则需首先进行擦除操作,待其完成后方可写入数据。
(2)对部分数据进行二次更新改写时,不可直接写入,同样需要先行擦除。而此时由于擦除单元大于写入单元,为保证其他有效数据不被破坏,通常需要将整个擦除单元的数据全部读出,修改相应位置数据,待单元擦除完成后,再将全部数据回写至原有位置;
(3)调用者需要保证存储单元处于合理的使用寿命内,若对同一地址进行反复擦写进而导致存储单元过度磨损,Nor-Flash器件将无法保证数据存储的正确性;
(4)调用者需要保证数据写入过程不被中断,否则将会导致当前写入操作失败,造成数据异常。
Nor-Flash器件读取传输效率较高,但是较低的写入和擦除速度及较高的使用复杂度影响了其作为数据存储器件的效能。
综上所述,对于现有的NorFlash使用过程中,使用者需要实时关心NorFlash相关状态,并在操作时规避因器件物理特性而导致的种种限制,使用过程较为复杂与繁琐的问题,尚缺乏有效技术方案。
发明内容
为了克服上述现有技术的不足,本公开提供了一种轻量型Nor Flash闪存控制方法和装置,该方法使得使用者无需关心Nor-Flash操作细节即可方便进行数据存取,有效降低了Nor-Flash使用复杂度,实现对Nor-Flash的高效操作,延长器件使用寿命,并保证异常情况下数据安全性。
本公开所采用的技术方案是:
一种轻量型Nor Flash闪存控制方法,该方法包括以下步骤:
构建动态地址管理表、日志信息、数据单元有效计数列表和擦除单元擦写周期计数表;
接收数据写入请求,进行数据写入控制,并回收无效空间;
接收数据读取请求,进行数据读取控制。
进一步的,所述动态地址管理表的构建方法为:
获取数据在Nor-Flash器件中的存储地址,并建立数据存储地址与请求地址之间的关联关系,形成动态地址管理表;其中,所述请求地址是数据存取操作时使用的数据地址;所述存储地址是Nor-Flash器件中用于存储数据的数据单元的实际物理地址。
进一步的,所述日志信息位于Nor-Flash器件的日志单元中,其包括日志单元所在的擦除单元所含的数据单元所对应的请求地址、时间戳、数据有效性标志以及该擦除单元的擦写循环计数和无效空间回收标志位。
进一步的,所述数据单元有效计数列表的索引值为擦除单元编号,表项值为该擦除单元内数据单元有效计数;
所述擦除单元擦写周期计数表的索引值为擦除单元编号,表项值为该擦除单元擦写周期计数。
进一步的,所述数据写入控制的方法为:
接收调用者发送的数据写入请求,利用请求地址从动态地址管理表中查找对应表项;
判断写入指针是否为空,若写入指针为空,利用擦写均衡方法从擦除单元擦写周期计数表中选取一个擦除单元作为当前写入点;
更新写入指针中擦除单元标号和数据单元编号,将数据写入所选取擦除单元的数据单元中,并将数据单元的日志信息写入日志单元对应位置;
更新动态地址管理表,将数据单元的物理地址填入动态地址管理表中请求地址对应表项;
更新数据单元有效计数列表,将数据单元有效计数列表中擦除单元对应的数据单元有效计数值加1。
进一步的,所述擦写均衡方法为:
依照特定规则,从擦除单元擦写周期计数表中选取合适的擦除单元进行数据写入操作。
进一步的,所述数据读取控制的方法为:
接收调用者发送的数据读取请求,利用请求地址从动态地址管理表中获取待读取数据的存储地址;
若待读取数据的存储地址有效,数据单元不为空,读取并回传存储地址对应数据;若存储地址无效,即动态地址管理表中数据单元的表项为空,则回传空数据。
进一步的,所述回收无效空间方法为:
从数据单元有效计数列表中获取有效数据单元计数最小的擦除单元作为待回收单元;
设置待回收的擦除单元的无效空间回收标志为有效,更新回收指针信息;
从写入指针中获取当前数据待写入的擦除单元和数据单元,将待回收的擦除单元中数据单元内有效数据搬移至待写入的擦除单元中数据单元内;
更新写入数据的数据单元的日志信息,将该数据单元的日志信息中数据有效标志位标记为无效;
更新动态地址管理表,将待写入数据的请求地址对应的数据单元由待回收的擦除单元中数据单元更新为写入数据的数据单元;
更新数据单元有效计数列表,将待回收的擦除单元对应的数据单元有效计数值减1;
重复以上步骤,直至待回收的擦除单元中所有有效数据全部转移到其他擦除单元中;
更新擦除单元擦写周期计数表,将擦除单元擦写周期计数表中回收的擦除单元对应的擦写周期计数值加1;
更新数据单元有效计数表中回收的擦除单元对应的数据单元有效计数为初始值。
进一步的,还包括:
在系统空闲时对Nor-Flash器件的可用空间进行检测,当发现不足时,比较数据单元有效计数列表中擦除单元计数的大小,选取有效计数最小的擦除单元进行回收,释放该擦除单元的存储空间。
一种的轻量型Nor Flash闪存控制装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的轻量型NorFlash闪存控制方法。
通过上述技术方案,本公开的有益效果是:
(1)本公开向调用者提供Nor-Flash读操作与写操作两个控制过程,通过使用该控制方法,调用者仅需提供操作数据的请求地址、长度及操作数据的缓存地址,即可完成对Nor-Flash的读取、写入与改写操作,而无需关心存储单元是否擦除等内部细节,降低了调用者的操作复杂度;
(2)本公开使用动态地址管理及无效空间回收方法,可在写入操作及系统空闲时自动检测存储数据有效状态,对于无效存储空间进行回收,供后续写入操作使用,因此不必在每次写入之前均对Nor-Flash进行擦除操作,与传统方式相比,可提高整体写入效率;
(3)本公开采用擦写均衡方法,会将Nor-Flash的擦写操作平均分配到Nor-Flash存储空间内,避免出现某些存储单元过度磨损导致的存储数据异常情况;
(4)本公开采用日志技术,对于重复写入相同请求地址的数据,在Nor-Flash中保留有若干备份并标记有时间戳;当写入过程出现掉电等异常时,仍可通过运行信息重构过程找到相对较新的数据,而不会出现数据完全丢失的现象,保证了应用数据的安全性。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本申请,并不构成对本公开的不当限定。
图1是操作单元的关系示意图;
图2是动态地址管理表结构示意图;
图3是日志单元结构示意图;
图4是数据单元有效计数列表示意图;
图5是擦除单元擦写周期计数表示意图;
图6是数据写入控制流程示意图;
图7是数据读取控制流程示意图;
图8是无效空间回收流程示意图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本公开使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
一种或多种实施例提供一种轻量型Nor Flash闪存控制方法。所述Nor Flash器件包括若干个擦除单元,每个擦除单元包含一个日志单元及若干个数据单元,其中日志单元位于擦除单元起始位置,后续为编号连续且全局唯一的若干数据单元,如图1所示。
所述轻量型Nor Flash闪存控制方法包括以下步骤:
S101:构建动态地址管理表、日志信息、数据单元有效计数列表和擦除单元擦写周期计数表。
所述步骤101中,动态地址管理表的构建方法为:
依据当前运行状态,获取数据在Nor-Flash器件中的存储地址,并建立数据存储地址与请求地址之间的关联关系,形成动态地址管理表。其中,所述请求地址是调用者进行数据存取操作时使用的数据地址;所述存储地址是Nor-Flash器件中存储数据的数据单元的实际物理地址。
图2是动态地址管理表的结构示意图。如图2所示,所述请求地址与存储地址为一对多的映射关系,即一个请求地址可对应多个存储地址,多个存储地址的时间戳不同,而每个存储地址仅唯一对应一个请求地址。
动态地址管理表存储于系统RAM空间内,采用线性表结构,其索引值为请求地址,表项内容为当前请求地址对应的最新数据单元存储地址或为空值。该动态地址管理表用于记录请求地址与存储地址间的对应关系。
当调用者进行数据读取操作时,依据调用者发送的请求地址从动态地址管理表中查找到实际数据单元的存储地址,从Nor-Flash器件相应的数据单元中将数据读出;当调用者进行数据写入操作时,在数据写入到Nor-Flash器件中数据单元后,将实际使用的数据单元存储地址更新至动态地址管理表的相应表项中。
所述步骤101中,所述日志信息位于Nor-Flash器件的日志单元中,其内容主要包括本擦除单元所含的数据单元所对应的请求地址,数据单元时间戳,数据单元数据有效性标志以及本擦除单元擦写循环计数,无效空间回收标志位等。日志信息结构示意图如图3所示。
本实施例所建立的日志信息主要用于运行信息重构操作时动态地址管理表恢复、擦除单元使用状态建建立等操作。
所述步骤101中,数据单元有效计数列表构建的构建方法为:
所述数据单元有效计数列表为线性结构,索引值为擦除单元编号,表项值为该擦除单元内当前有效数据单元计数或初始值,初始值表明该擦除单元尚未使用。数据单元有效计数列表示意图如图4所示。
当某一数据单元被写入新数据时,该数据单元对应的擦除单元计数值加1;当数据单元数据不再有效时(请求地址被重写或该数据单元被回收),其对应的擦除单元计数值减1;擦除单元擦除完成后其计数值为初始值。
所述步骤101中,擦除单元擦写周期计数表的构建方法为:
如图5所示,该擦除单元擦写周期计数表采用线性结构,索引值为擦除单元编号,表项值为该擦除单元擦写周期计数。
每当擦除单元完成一次擦除时,擦写周期计数加1,该擦除单元擦写周期计数值同样保存于该擦写单元的日志单元日志信息中。
S102,数据写入控制。
图6是数据写入控制的流程示意图。所述数据写入控制方法具体为:
S102-1,接收调用者发送的数据写入请求,使用请求地址x作为索引在动态地址管理表中查找对应表项,此时请求地址x在动态地址管理表中对应表项为空。
S102-2,检查写入指针是否为空,写入指针包括擦除单元编号和数据单元编号。
S102-3,若写入指针为空,检索擦除单元擦写周期计数表,根据特定规则从擦除单元擦写周期计数表中选取一个擦除单元M作为当前写入点。
在本实施例中,当需要选取某个擦除单元进行数据写入时,将查询该擦除单元擦写周期计数表,依照特定规则,选取合适的擦除单元进行数据写入操作,实现擦写均衡。其中,所述特定规则是指选取擦写周期计数表中周期计数值最小的擦除单元。
本实施例采用擦写均衡方法,将擦写操作平均分配至各擦除单元,避免因调用者对某些区域集中过度使用而造成的数据存储失效。在一般应用条件下,擦写均衡将有效的延长Nor-Flash器件整体使用寿命。
S102-4,更新写入指针信息,此时写入指针中擦除单元标号为M,数据单元编号k。
S102-5,将待写入数据写入擦除单元M的数据单元k中。
S102-6,将数据单元k的日志信息写入日志单元对应位置,日志信息包括请求地址、时间戳及数据有效标志。
S102-7,更新动态地址管理表,将数据单元k的物理地址填入动态地址管理表中请求地址x对应表项。
S102-8,更新数据单元有效计数列表,将数据单元有效计数列表中擦除单元M对应表项由初始值更改为1。
S103,数据读取控制。
图7是数据读取控制过程示意图。所述数据读取控制方法具体为:
S103-1,接收调用者发送的数据读取请求,使用请求地址x作为索引在动态地址管理表中查找对应表项,获取待读取数据的存储地址,即数据单元k。
S103-2,若待读取数据的存储地址有效,数据单元k不为空,读取并回传存储地址对应数据;若存储地址无效,即动态地址管理表中数据单元K的表项为空,则回传空数据。
S104,回收无效空间。
随着应用数据的不断更新写入,部分数据单元中的数据将不再有效,本公开通过回收无效擦除单元,释放Nor-Flash器件的存储空间。本实施例通过建立的数据单元有效计数列表作为无效空间回收时选取擦除单元的依据,即选取计数最小的擦除单元进行回收。
(1)在数据写入过程中,回收计数最小的擦除单元。
在数据写入过程中,当检测到Nor-Flash器件的可用空间不足时,比较数据单元有效计数列表中擦除单元计数的大小,选取有效计数最小的擦除单元进行回收,释放该擦除单元的存储空间。
如图8所示,所述数据写入过程中,无效空间的回收方法具体为:
S1041-1,查询数据单元有效计数列表,寻找待回收单元。
S1041-2,从数据单元有效计数列表中获取有效数据单元数最小的擦除单元M作为回收目标。
S1041-3,设置擦除单元M为无效空间回收标志,并从日志单元中搜索擦除单元日志信息。
S1041-4,获取该擦除单元内有效数据单元地址,更新回收指针信息,即擦除单元M,数据单元k。
S1041-5,从写入指针中获取当前数据写入点,即擦除单元L,数据单元a。
S1041-6,有效数据搬移,将擦除单元M的数据单元K内有效数据搬移至数据单元a中。
S1041-7,更新数据单元a日志信息,包括请求地址、时间戳和数据有效标志。
S1041-8,将数据单元k日志信息中数据有效标志位标记为无效。
S1041-9,更新动态地址管理表,将待写入数据的请求地址x对应的数据单元由k更新为a。
S1041-10,更新数据单元有效计数列表,将擦除单元M对应的表项值减1。
S1041-11,重复步骤S1041-4~S1041-10,直至回收目标(擦除单元M)中所有有效数据全部搬移完毕;
S1041-12,对回收目标(擦除单元M)进行擦除操作后,更新擦除单元擦写周期计数表,将擦除单元擦写周期计数表中擦除单元M表项值加1。
S1041-13,更新数据单元有效计数表中擦除单元M对应表项值为初始值。
(2)在系统空闲时,回收计数最小的擦除单元。
在系统空闲时对Nor-Flash器件的可用空间进行检测,当发现不足时,比较数据单元有效计数列表中擦除单元计数的大小,选取有效计数最小的擦除单元进行回收,释放该擦除单元的存储空间。
所述系统空闲时,无效空间回收的方法为:
S1042-1,查询数据单元有效计数列表,寻找待回收单元。
S1042-2,从数据单元有效计数列表中获取有效数据单元数最小的擦除单元M作为回收目标。
S1042-3,设置擦除单元M为无效空间回收标志,并从日志单元中搜索擦除单元日志信息。
S1042-4,获取该擦除单元内有效数据单元地址,更新回收指针信息,即擦除单元M,数据单元k。
S1042-5,有效数据搬移,将擦除单元M的数据单元K内有效数据搬移至其他数据单元b中。
S1042-6,更新数据单元b日志信息,包括请求地址、时间戳和数据有效标志。
S1042-7,将数据单元k日志信息中数据有效标志位标记为无效。
S1042-8,更新动态地址管理表,将待写入数据的请求地址x对应的数据单元由k更新为b。
S1042-9,更新数据单元有效计数列表,将擦除单元M对应的表项值减1。
S1042-10,重复步骤S1041-2~S1041-9,直至回收目标(擦除单元M)中所有有效数据全部搬移完毕;
S1042-11,对回收目标(擦除单元M)进行擦除操作后,更新擦除单元擦写周期计数表,将擦除单元擦写周期计数表中擦除单元M表项值加1。
S1042-12,更新数据单元有效计数表中擦除单元M对应表项值为初始值。
本公开通过在系统空闲时,回收无线空间,使得系统在空闲时最大限度的提前释放Nor-Flash存储空间,有效降低因空间不足导致的写入延迟,大幅提高写入效率。
S105,运行信息重构。
系统断电,再次启动时,读取Nor-Flash器件信息并依次扫描各日志单元内存储的日志信息,获取各擦除单元擦写周期计数,无效空间回收标志,数据单元有效性标志,请求地址及时间戳等信息,并使用上述信息重建动态地址管理表、数据单元有效计数表、擦除单元擦写周期计数表等表项及其他运行信息,恢复至上次断电前状态,为后续Nor-Flash操作提供基本保证。
本实施例提出的控制方法,具备动态地址管理、无效空间回收、擦写均衡及运行信息重构等功能,使用者无需关心Nor-Flash操作细节即可方便进行数据存取,有效降低了Nor-Flash使用复杂度,实现对Nor-Flash的高效操作,延长器件使用寿命,并保证异常情况下数据安全性。
从以上的描述中,可以看出,针对现有Nor-Flash使用繁琐,器件操作限制较多,异常掉电数据丢失等问题,上述的一种或多种实施例实现了如下技术效果:
(1)本公开向调用者提供Nor-Flash读操作与写操作两个控制过程,通过使用该控制方法,调用者仅需提供操作数据的请求地址、长度及操作数据的缓存地址,即可完成对Nor-Flash的读取、写入与改写操作,而无需关心存储单元是否擦除等内部细节,降低了调用者的操作复杂度;
(2)本公开使用动态地址管理及无效空间回收方法,可在写入操作及系统空闲时自动检测存储数据有效状态,对于无效存储空间进行回收,供后续写入操作使用,因此不必在每次写入之前均对Nor-Flash进行擦除操作,与传统方式相比,可提高整体写入效率;
(3)本公开采用擦写均衡方法,会将Nor-Flash的擦写操作平均分配到Nor-Flash存储空间内,避免出现某些存储单元过度磨损导致的存储数据异常情况;
(4)本公开采用日志技术,对于重复写入相同请求地址的数据,在Nor-Flash中保留有若干备份并标记有时间戳;当写入过程出现掉电等异常时,仍可通过运行信息重构过程找到相对较新的数据,而不会出现数据完全丢失的现象,保证了应用数据的安全性。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
Claims (10)
1.一种轻量型Nor Flash闪存控制方法,其特征是,包括以下步骤:
构建动态地址管理表、日志信息、数据单元有效计数列表和擦除单元擦写周期计数表;
接收数据写入请求,进行数据写入控制,并回收无效空间;
接收数据读取请求,进行数据读取控制。
2.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述动态地址管理表的构建方法为:
获取数据在Nor-Flash器件中的存储地址,并建立数据存储地址与请求地址之间的关联关系,形成动态地址管理表;其中,所述请求地址是数据存取操作时使用的数据地址;所述存储地址是Nor-Flash器件中用于存储数据的数据单元的实际物理地址。
3.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述日志信息位于Nor-Flash器件的日志单元中,其包括日志单元所在的擦除单元所含的数据单元所对应的请求地址、时间戳、数据有效性标志以及该擦除单元的擦写循环计数和无效空间回收标志位。
4.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述数据单元有效计数列表的索引值为擦除单元编号,表项值为该擦除单元内数据单元有效计数;
所述擦除单元擦写周期计数表的索引值为擦除单元编号,表项值为该擦除单元擦写周期计数。
5.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述数据写入控制的方法为:
接收调用者发送的数据写入请求,利用请求地址从动态地址管理表中查找对应表项;
判断写入指针是否为空,若写入指针为空,利用擦写均衡方法从擦除单元擦写周期计数表中选取一个擦除单元作为当前写入点;
更新写入指针中擦除单元标号和数据单元编号,将数据写入所选取擦除单元的数据单元中,并将数据单元的日志信息写入日志单元对应位置;
更新动态地址管理表,将数据单元的物理地址填入动态地址管理表中请求地址对应表项;
更新数据单元有效计数列表,将数据单元有效计数列表中擦除单元对应的数据单元有效计数值加1。
6.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述擦写均衡方法为:
依照特定规则,从擦除单元擦写周期计数表中选取合适的擦除单元进行数据写入操作,其中,所述特定规则是指选取擦写周期计数表中周期计数值最小的擦除单元。
7.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述数据读取控制的方法为:
接收调用者发送的数据读取请求,利用请求地址从动态地址管理表中获取待读取数据的存储地址;
若待读取数据的存储地址有效,数据单元不为空,读取并回传存储地址对应数据;若存储地址无效,即动态地址管理表中数据单元的表项为空,则回传空数据。
8.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述回收无效空间方法为:
从数据单元有效计数列表中获取有效数据单元计数最小的擦除单元作为待回收单元;
设置待回收的擦除单元的无效空间回收标志为有效,更新回收指针信息;
从写入指针中获取当前数据待写入的擦除单元和数据单元,将待回收的擦除单元中数据单元内有效数据搬移至待写入的擦除单元中数据单元内;
更新写入数据的数据单元的日志信息,将该数据单元的日志信息中数据有效标志位标记为无效;
更新动态地址管理表,将待写入数据的请求地址对应的数据单元由待回收的擦除单元中数据单元更新为写入数据的数据单元;
更新数据单元有效计数列表,将待回收的擦除单元对应的数据单元有效计数值减1;
重复以上步骤,直至待回收的擦除单元中所有有效数据全部转移到其他擦除单元中;
更新擦除单元擦写周期计数表,将擦除单元擦写周期计数表中回收的擦除单元对应的擦写周期计数值加1;
更新数据单元有效计数表中回收的擦除单元对应的数据单元有效计数为初始值。
9.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,还包括:
在系统空闲时对Nor-Flash器件的可用空间进行检测,当发现不足时,比较数据单元有效计数列表中擦除单元计数的大小,选取有效计数最小的擦除单元进行回收,释放该擦除单元的存储空间。
10.一种的轻量型Nor Flash闪存控制装置,其特征是,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至9中任一项所述的轻量型Nor Flash闪存控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811581672.0A CN109669889B (zh) | 2018-12-24 | 2018-12-24 | 一种轻量型Nor Flash闪存控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811581672.0A CN109669889B (zh) | 2018-12-24 | 2018-12-24 | 一种轻量型Nor Flash闪存控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109669889A true CN109669889A (zh) | 2019-04-23 |
CN109669889B CN109669889B (zh) | 2021-03-02 |
Family
ID=66145935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811581672.0A Active CN109669889B (zh) | 2018-12-24 | 2018-12-24 | 一种轻量型Nor Flash闪存控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669889B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175001A (zh) * | 2019-05-27 | 2019-08-27 | 牧星机器人(江苏)有限公司 | 一种nor-flash数据存储方法、计算机设备及存储介质 |
CN111133410A (zh) * | 2017-08-30 | 2020-05-08 | 美光科技公司 | 快闪存储器的日志数据存储 |
CN112711378A (zh) * | 2020-12-22 | 2021-04-27 | 四川九洲电器集团有限责任公司 | 数据储存方法及读写设备 |
CN117707434A (zh) * | 2024-02-02 | 2024-03-15 | 深圳曦华科技有限公司 | 一种Flash的数据写入方法、装置、车辆以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458661A (zh) * | 2008-12-29 | 2009-06-17 | 北京飞天诚信科技有限公司 | 一种闪存块磨损平衡的方法和系统 |
CN101477492A (zh) * | 2009-01-21 | 2009-07-08 | 华中科技大学 | 一种用于固态硬盘的循环重写闪存均衡方法 |
CN103077118A (zh) * | 2012-12-28 | 2013-05-01 | 深圳市硅格半导体有限公司 | 一种无效数据回收方法及系统 |
US20130311701A1 (en) * | 2012-05-18 | 2013-11-21 | Silicon Motion, Inc. | Data storage device and method for flash block management |
-
2018
- 2018-12-24 CN CN201811581672.0A patent/CN109669889B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458661A (zh) * | 2008-12-29 | 2009-06-17 | 北京飞天诚信科技有限公司 | 一种闪存块磨损平衡的方法和系统 |
CN101477492A (zh) * | 2009-01-21 | 2009-07-08 | 华中科技大学 | 一种用于固态硬盘的循环重写闪存均衡方法 |
US20130311701A1 (en) * | 2012-05-18 | 2013-11-21 | Silicon Motion, Inc. | Data storage device and method for flash block management |
CN103077118A (zh) * | 2012-12-28 | 2013-05-01 | 深圳市硅格半导体有限公司 | 一种无效数据回收方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111133410A (zh) * | 2017-08-30 | 2020-05-08 | 美光科技公司 | 快闪存储器的日志数据存储 |
US11100996B2 (en) | 2017-08-30 | 2021-08-24 | Micron Technology, Inc. | Log data storage for flash memory |
US11705201B2 (en) | 2017-08-30 | 2023-07-18 | Micron Technology, Inc. | Log data storage for flash memory |
CN110175001A (zh) * | 2019-05-27 | 2019-08-27 | 牧星机器人(江苏)有限公司 | 一种nor-flash数据存储方法、计算机设备及存储介质 |
CN110175001B (zh) * | 2019-05-27 | 2022-06-14 | 牧星机器人(江苏)有限公司 | 一种nor-flash数据存储方法、计算机设备及存储介质 |
CN112711378A (zh) * | 2020-12-22 | 2021-04-27 | 四川九洲电器集团有限责任公司 | 数据储存方法及读写设备 |
CN112711378B (zh) * | 2020-12-22 | 2022-08-05 | 四川九洲电器集团有限责任公司 | 数据储存方法及读写设备 |
CN117707434A (zh) * | 2024-02-02 | 2024-03-15 | 深圳曦华科技有限公司 | 一种Flash的数据写入方法、装置、车辆以及存储介质 |
CN117707434B (zh) * | 2024-02-02 | 2024-05-17 | 深圳曦华科技有限公司 | 一种Flash的数据写入方法、装置、车辆以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109669889B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109669889A (zh) | 一种轻量型Nor Flash闪存控制方法和装置 | |
CN103425588B (zh) | 数据储存装置和快闪存储器的区块管理方法 | |
CN102081577B (zh) | 对Flash存储器的数据存储结构进行数据操作的方法 | |
JP5213965B2 (ja) | 1セル当り単一ビットnandフラッシュメモリをエミュレートする1セル当り多ビットnandフラッシュメモリ用コントローラ | |
CN101354681B (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
CN102768644B (zh) | 闪存系统及其闪存无效数据页信息的管理方法与回收方法 | |
CN109783004A (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN101515276B (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
CN107168647A (zh) | Flash数据读写方法及系统 | |
CN104516471B (zh) | 一种管理存储器系统的电源的方法和装置 | |
CN107346290A (zh) | 使用并行化日志列表重放分区逻辑到物理数据地址转换表 | |
CN100501868C (zh) | 基于NAND Flash存储器文件系统的实现方法 | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
CN110175001A (zh) | 一种nor-flash数据存储方法、计算机设备及存储介质 | |
CN109344088A (zh) | 固态驱动器中的原子写入命令支持 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN101425041A (zh) | 在nand flash存储器上建立fat文件系统的优化方法 | |
CN106201335B (zh) | 存储系统 | |
CN109582593A (zh) | 一种基于计算的ftl地址映射方法及数据读、写方法 | |
CN103365786A (zh) | 数据存储方法、装置和系统 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN109558335A (zh) | 一种基于Nor Flash存储器的嵌入式系统的文件存储格式 | |
CN108762989A (zh) | 固态硬盘的数据存储方法、装置、设备及可读存储介质 | |
CN102981977A (zh) | 一种可延长flash使用寿命的数据存储方法 | |
CN102521146B (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240104 Address after: Room 803-1, North Building, Building 9, Shuntai Plaza, No. 2000 Shunhua Road, Jinan Area, China (Shandong) Pilot Free Trade Zone, Lixia District, Jinan City, Shandong Province, 250000 Patentee after: Shandong Fangcun Microelectronics Technology Co.,Ltd. Address before: 266111-1, building 5, zone a, Yuanchuang international Blue Bay Creative Park, No. 31, Xinye Road, high tech Zone, Qingdao City, Shandong Province Patentee before: QINGDAO FANGCUN MICROELECTRONIC TECHNOLOGY Co.,Ltd. |