CN109669889B - 一种轻量型Nor Flash闪存控制方法和装置 - Google Patents

一种轻量型Nor Flash闪存控制方法和装置 Download PDF

Info

Publication number
CN109669889B
CN109669889B CN201811581672.0A CN201811581672A CN109669889B CN 109669889 B CN109669889 B CN 109669889B CN 201811581672 A CN201811581672 A CN 201811581672A CN 109669889 B CN109669889 B CN 109669889B
Authority
CN
China
Prior art keywords
data
unit
erasing
address
flash
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
Application number
CN201811581672.0A
Other languages
English (en)
Other versions
CN109669889A (zh
Inventor
徐毅松
李冠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Fangcun Microelectronics Technology Co ltd
Original Assignee
Qingdao Fangcun Microelectronic Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Fangcun Microelectronic Technology Co ltd filed Critical Qingdao Fangcun Microelectronic Technology Co ltd
Priority to CN201811581672.0A priority Critical patent/CN109669889B/zh
Publication of CN109669889A publication Critical patent/CN109669889A/zh
Application granted granted Critical
Publication of CN109669889B publication Critical patent/CN109669889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本发明公开了一种轻量型Nor Flash闪存控制方法和装置,该方法使得使用者无需关心Nor‑Flash操作细节即可方便进行数据存取,有效降低了Nor‑Flash使用复杂度,实现对Nor‑Flash的高效操作,延长器件使用寿命,并保证异常情况下数据安全性。该方法包括以下步骤:构建动态地址管理表、日志信息、数据单元有效计数列表和擦除单元擦写周期计数表;接收数据写入请求,进行数据写入控制,并回收无效空间;接收数据读取请求,进行数据读取控制。

Description

一种轻量型Nor Flash闪存控制方法和装置
技术领域
本公开涉及闪存领域,具体涉及一种轻量型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 (7)

1.一种轻量型Nor Flash闪存控制方法,其特征是,包括以下步骤:
构建动态地址管理表、日志信息、数据单元有效计数列表和擦除单元擦写周期计数表,动态地址管理表存储于系统 RAM 空间内;
接收数据写入请求,进行数据写入控制,并回收无效空间;
所述数据写入控制的方法为:接收调用者发送的数据写入请求,利用请求地址从动态地址管理表中查找对应表项;判断写入指针是否为空,若写入指针为空,利用擦写均衡方法从擦除单元擦写周期计数表中选取一个擦除单元作为当前写入点;更新写入指针中擦除单元标号和数据单元编号,将数据写入所选取擦除单元的数据单元中,并将数据单元的日志信息写入日志单元对应位置;更新动态地址管理表,将数据单元的物理地址填入动态地址管理表中请求地址对应表项;更新数据单元有效计数列表,将数据单元有效计数列表中擦除单元对应的数据单元有效计数值加1;
接收数据读取请求,进行数据读取控制;
所述数据读取控制的方法为:接收调用者发送的数据读取请求,利用请求地址从动态地址管理表中获取待读取数据的存储地址;若待读取数据的存储地址有效,数据单元不为空,读取并回传存储地址对应数据;若存储地址无效,即动态地址管理表中数据单元的表项为空,则回传空数据;
通过向调用者提供Nor-Flash读操作与写操作两个控制过程,调用者提供操作数据的请求地址、长度及操作数据的缓存地址,实现对Nor-Flash的读取、写入与改写操作;通过动态地址管理及无效空间回收方式,在写入操作及系统空闲时自动检测存储数据有效状态,对于无效存储空间进行回收,供后续写入操作使用;采用擦写均衡方式,将Nor-Flash的擦写操作平均分配到Nor-Flash存储空间内,避免出现某些存储单元过度磨损导致的存储数据异常情况;采用日志技术,对于重复写入相同请求地址的数据,在Nor-Flash中保留有若干备份并标记有时间戳;
在系统空闲时对Nor-Flash器件的可用空间进行检测,当发现不足时,比较数据单元有效计数列表中擦除单元计数的大小,选取有效计数最小的擦除单元进行回收,释放该擦除单元的存储空间;
系统断电,再次启动时,读取Nor-Flash 器件信息并依次扫描各日志单元内存储的日志信息,获取各擦除单元擦写周期计数,无效空间回收标志,数据单元有效性标志,请求地址及时间戳,并使用上述信息重建动态地址管理表、数据单元有效计数列表、擦除单元擦写周期计数表,恢复至上次断电前状态。
2.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述动态地址管理表的构建方法为:
获取数据在Nor-Flash器件中的存储地址,并建立数据存储地址与请求地址之间的关联关系,形成动态地址管理表;其中,所述请求地址是数据存取操作时使用的数据地址;所述存储地址是Nor-Flash器件中用于存储数据的数据单元的实际物理地址。
3.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述日志信息位于Nor-Flash器件的日志单元中,其包括日志单元所在的擦除单元所含的数据单元所对应的请求地址、时间戳、数据有效性标志以及该擦除单元的擦写循环计数和无效空间回收标志位。
4.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述数据单元有效计数列表的索引值为擦除单元编号,表项值为该擦除单元内数据单元有效计数;
所述擦除单元擦写周期计数表的索引值为擦除单元编号,表项值为该擦除单元擦写周期计数。
5.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述擦写均衡方法为:
依照特定规则,从擦除单元擦写周期计数表中选取合适的擦除单元进行数据写入操作,其中,所述特定规则是指选取擦写周期计数表中周期计数值最小的擦除单元。
6.根据权利要求1所述的轻量型Nor Flash闪存控制方法,其特征是,所述回收无效空间方法为:
从数据单元有效计数列表中获取有效数据单元计数最小的擦除单元作为待回收单元;
设置待回收的擦除单元的无效空间回收标志为有效,更新回收指针信息;
从写入指针中获取当前数据待写入的擦除单元和数据单元,将待回收的擦除单元中数据单元内有效数据搬移至待写入的擦除单元中数据单元内;
更新写入数据的数据单元的日志信息,将该数据单元的日志信息中数据有效标志位标记为无效;
更新动态地址管理表,将待写入数据的请求地址对应的数据单元由待回收的擦除单元中数据单元更新为写入数据的数据单元;
更新数据单元有效计数列表,将待回收的擦除单元对应的数据单元有效计数值减1;
重复以上步骤,直至待回收的擦除单元中所有有效数据全部转移到其他擦除单元中;
更新擦除单元擦写周期计数表,将擦除单元擦写周期计数表中回收的擦除单元对应的擦写周期计数值加1;
更新数据单元有效计数列表中回收的擦除单元对应的数据单元有效计数为初始值。
7.一种的轻量型Nor Flash闪存控制装置,其特征是,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至6中任一项所述的轻量型Nor Flash闪存控制方法。
CN201811581672.0A 2018-12-24 2018-12-24 一种轻量型Nor Flash闪存控制方法和装置 Active CN109669889B (zh)

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 CN109669889A (zh) 2019-04-23
CN109669889B true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100996B2 (en) * 2017-08-30 2021-08-24 Micron Technology, Inc. Log data storage for flash memory
CN110175001B (zh) * 2019-05-27 2022-06-14 牧星机器人(江苏)有限公司 一种nor-flash数据存储方法、计算机设备及存储介质
CN112711378B (zh) * 2020-12-22 2022-08-05 四川九洲电器集团有限责任公司 数据储存方法及读写设备
CN117707434A (zh) * 2024-02-02 2024-03-15 深圳曦华科技有限公司 一种Flash的数据写入方法、装置、车辆以及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458661B (zh) * 2008-12-29 2010-11-03 北京飞天诚信科技有限公司 一种闪存块磨损平衡的方法和系统
CN101477492B (zh) * 2009-01-21 2010-12-29 华中科技大学 一种用于固态硬盘的循环重写闪存均衡方法
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
CN103077118A (zh) * 2012-12-28 2013-05-01 深圳市硅格半导体有限公司 一种无效数据回收方法及系统

Also Published As

Publication number Publication date
CN109669889A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
CN109669889B (zh) 一种轻量型Nor Flash闪存控制方法和装置
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
US8041884B2 (en) Controller for non-volatile memories and methods of operating the memory controller
CN102081577B (zh) 对Flash存储器的数据存储结构进行数据操作的方法
CN110895514A (zh) 映射表更新方法
CN107818269B (zh) 一种基于Flash的文件保存方法及系统
CN106776376B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN105740163A (zh) 一种Nand Flash坏块管理方法
CN108733510A (zh) 数据储存装置及映射表重建方法
JP2013061799A (ja) 記憶装置、記憶装置の制御方法およびコントローラ
CN109240942A (zh) 固态驱动器中的原子写入命令支持
US20130060991A1 (en) Solid state drive and garbage collection control method thereof
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN110674056B (zh) 一种垃圾回收方法及装置
CN110309077B (zh) 主机与设备协同工作的闪存转换层构建方法及装置
US8261013B2 (en) Method for even utilization of a plurality of flash memory chips
US11841801B2 (en) Metadata management in non-volatile memory devices using in-memory journal
CN106557432A (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN115951839A (zh) 分区命名空间固态硬盘的数据写入方法、装置及电子设备
CN108829342B (zh) 一种日志存储方法、系统及存储装置
JP2009205689A (ja) フラッシュディスク装置
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
CN105335220A (zh) 一种存储设备的事务恢复方法,及装置
CN102521146B (zh) 一种flash存储器块细分的数据寻址存储方法
US20140047161A1 (en) System Employing MRAM and Physically Addressed Solid State Disk

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

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.

TR01 Transfer of patent right