电子发烧友网 > 嵌入式技术 > 正文

采用分块管理和状态转换的嵌入式NOR Flash管理

2020年05月01日 11:45 ? 次阅读

引言

嵌入式系统中通常都需要存放一些非易失性数据, 并且数据量的大小和数据类型根据不同的系统需求差异很大。因此选取合适的存储器是完成数据存储系统的第一步, 更重要的是使存储系统长期稳定、高效的工作, 这就必须寻求一个完备的存储器数据管理方法[ 1] 。本文介绍了一种适用于无文件系统环境下的N OR Flash 管理方法, 采用分块管理和状态转换的方法使得Flash 的使用效率和操作可靠性得到大大提高。

2 NOR Flash 存储器及其特性

NOR Flash 和NAND Flash 是目前市场上两种主要的Flash 存储器。一般在非海量存储型的嵌入式设备中都是直接采用NOR Flash 作为程序代码和非易失性数据的存储器, 这主要是由NOR

Flash 的特点所决定的。NOR Flash 的特点如下:

1) 存储容量较小, 一般在1~ 16MByte 之间。

2) 具有和SRAM 相同的接口, 随机读取速度快, 可以做到芯片内执行( XIP) [ 2] 。

3) 存储单元只能由1 写成0, 因此进行写操作前必须先进行擦除操作, 使对应的单元变成1。

4) 器件有一定的使用寿命, 一般为10~ 100 万次。随着使用次数的增加, 可能有的单元会失效。但是NOR Flash 出厂时器件的每个单元都有效。NOR Flash 的众多特性使得它成为嵌入式系统设计中首选的存储器器件。由于NOR Flash 的擦除操作都是以块为单位的, 并且不同种类的NOR Flash 器件所支持的擦除单位可能不一样, 但是每种NOR Flash 器件都支持64KB 为单位的擦除[ 3~ 4] , 因此后面介绍的分块管理方法将以64KB为块基本单位, 从而解决分块管理方法在不同种类NOR Flash 器件上实现时所出现的数据备份问题。

3 NOR Flash 分块管理方法

为了均衡每个Flash 分块的使用次数, 提高整个存储器件的使用寿命, 对Flash 采用分块管理的方法[ 5] 。以64KB 为单位, 将系统分配用作非易失性数据区域进行分块操作, 其中每个分块又分成16 字节的头部信息与数据区域。分块示意图如图1 所示。

采用分块管理和状态转换的嵌入式NOR Flash管理

图1 分块示意图

正是利用分块的头部信息, 进行擦除次数均衡与分块状态的切换。对于头部几个主要字段的定义如下:

1) Block_Flag ( 8bit) : 用于标志分块的状态, 总共有BF _NOT _ INIT ( 0xFF) 、BF _FREE (0xFE)、BF_COPYING_ DATA ( 0xFC )、BF _ COPY _ FINISHED(0xF8) 、BF_INUSE( 0xF0) 、BF_SRC_DATA ( 0xE0) 、BF_ERASING( 0xC0)、BF_INVALID(0x00) 8 种状态。

2) Blo ck _ Data _ T ype ( 8bit ) 和Blo ck _ Data _Ty pe_Ext ( 8bit ) : 分别表示该分块存储的数据类型和子类型, 这两个字段都由应用程序所存储的数据类型决定。例如学生信息的存储, 可能的一种存储方法是一个分块存储学生的学号信息, 而其它几个分块存储学生的具体信息, 这时它们的数据类型一样, 但是子类型却不一样。

3) Block_Erase_Counter( 32bit ) : 该字段用来动态记录每个分块的擦除次数, 从而方便应用程序对Flash 分块的使用次数进行均衡。

4) Next_Off set ( 16bit ) : 该字段为将来扩展之用, 用来将64K 的分块空间进一步细化, 使得将来1 个64K 空间内可以存储不同类型的数据。

4 NOR Flash 分块状态切换与使用均衡

在Flash 的使用过程中, 必然存在着多次的数据更新, 当前嵌入式系统中数据更新的一般做法是先将新数据写入Flash, 然后将旧的数据置为无效状态[ 6] 。如果每次数据更新都马上将原先数据擦除,

则将造成Flash 的擦除次数急剧增加。随着数据更新次数的增多, 也就导致Flash 存储系统中的可用资源不断减少, 因此在某个时刻就必须对系统中的垃圾资源进行回收。通过巧妙设置Flash 分块的状态,并在资源回收过程中对源、目标两个分块进行适当的状态切换, 可以确保在资源回收过程中不会因掉电原因而产生数据的丢失。令回收源分块为A, 新目标分块为B, 资源回收流程如图2 所示。

采用分块管理和状态转换的嵌入式NOR Flash管理

图2 资源回收流程图

对于每次系统上电后, 应用程序将读取每个Flash 数据分块的头部信息, 在内存中建立相应的分块信息表, 同时根据头部信息和空闲地址搜索算法去初始化每种数据类型的起始地址与空闲区域首地址, 同时必须对异常状态进行检测恢复。其中对每个分块的初始化主要是根据分块头部的状态信息进行判断, 检测是否之前有掉电过, 然后做出相应处理, 主要有以下几种可能:

1) 状态为BF _NOT _INIT, 则将其初始化为BF_FREE 状态。

2) 状态为BF_FREE 或BF_INUSE, 则在内存中建立分块信息, 无需其它操作。

3) 状态为BF _ COPYIN G _ DAT A 或BF _ERASING, 则将其擦除后置为BF_FREE 状态。

4) 分块A 状态为BF_SRC_DATA, 如果有另一个分块B 为BF_COPY _FINISHED, 则根据流程图继续完成资源回收操作。如果有另一个分块B 为BF_COPYING_DAT A, 则擦除B 后置为BF_FREE 状态, 然后对A 重新进行资源回收操作。

5) 状态为BF_INVA LID, 则该块为坏块, 不在内存中建立分块信息。

为了均衡每一个分块的使用次数, 延长整块Flash 的使用寿命, 在每次进行分块擦除之后, 必须先将之前记录下来的Block_Erase_Counter 加1, 然后组成新的头部信息重新写回分块头部, 从而达到动态记录每个分块擦除次数的功能。在进行空闲分块申请的时候, 必须遍历所有状态为BF_FREE 分块, 选取Block_Erase_Counter 数值最小的作为新分块分配, 从而使得每个分块的使用次数趋于一致。

5 分块管理在嵌入式软件系统中的实现

在嵌入式软件的设计中, 良好的软件架构设计可以使得软件具有更好的可靠性及可扩展性。目前分层架构是嵌入式软件系统设计中最为流行的一种[ 7] 。因此在软件实现过程中, 采用了分层的软件架构将分块管理软件分为Flash 驱动层、No rFlash 分块管理层和数据类型管理层三层。

具体的软硬件分层示意图如图3 所示。

采用分块管理和状态转换的嵌入式NOR Flash管理

图3 存储模块软件构架

软件最底层为Flash 驱动层, 考虑到NOR Flash存储器的多样性, 并且各种器件的底层驱动可能不同, 因此Flash 驱动层的建立可以向分块管理层屏蔽具体的硬件信息。一般驱动层的实现主要采用函数指针的方法进行[ 8] , 初始化时通过读取不同Flash 的ID 分别对read、write 和erase 等基本操作函数指针进行赋值, 此后上层软件在对Flash 进行实际操作时则通过函数指针进行, 并不清楚具体的Flash 信息。在嵌入式系统中, 非易失性数据的种类有多种多样, 因此分块管理层本身并不涉及具体类型数据的存储方法, 只是预留几个字段用于记录数据类型等信息[ 9] 。这些字段用于数据类型管理程序初始化时使用。数据类型管理层的主要功能是管理NOR Flash存储器中不同类型的数据, 向应用程序提供基于数据类型的各种操作, 屏蔽掉具体的分块管理信息。

分块管理层程序负责资源回收算法、开机Flash 异常恢复算法的实, 同时向数据类型管理层提供各种类型数据的所在的分块地址信息。通过这种构架使得每一层的实现都易于采用面向对象的思想实现, 其中从底层至上层的对象分别为Flash、分块、数据类型。

6 结语

通过采用分块管理与状态转换的方法, Flash的存储性能有了较大的改善, 而且数据的可靠性也有很大提高, 特别适用于无文件系统嵌入式设备中的数据存储。同时通过合理的软件构架使得各个分层都易于采用面向对象的思想实现, 这样有利于软件的扩展与移植。目前这种方法已经在数字电视机顶盒中采用, 实现效果甚好, 并且为上层软件的设计带来很大方便。

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

《嵌入式技术ARM裸机开发》之存储器

我们将《嵌入式工程师-系列课程》分成两大阶段:第一阶段:《计算机体系结构》课程   分成4篇:分别是
发烧友学院发表于 2019-01-20 00:00? 1414次阅读
《嵌入式技术ARM裸机开发》之存储器

华米OV存储器供应商普冉半导体拟登陆A股IPO,...

普冉半导体主要从事集成电路产品的研发设计和销售,专注于NOR Flash和EERPOM两大非易失性存....
发表于 2020-04-30 17:30? 158次阅读
华米OV存储器供应商普冉半导体拟登陆A股IPO,...

SRAM随机存储器的特点及结构

随着微电子技术的迅猛发展,SRAM存储器逐渐呈现出高集成度、快速及低功耗的发展趋势。在半导体存储器的....
发表于 2020-04-30 15:48? 62次阅读
SRAM随机存储器的特点及结构

国产SRAM芯片XM8A51216随机X型存储器

XM8A51216采用异步SRAM接口并结合独有的XRAM免刷新专利技术,在大容量、高性能和高可靠及....
发表于 2020-04-30 15:00? 37次阅读
国产SRAM芯片XM8A51216随机X型存储器

旺宏Q1 Nor Flash价量齐涨,下半年杀入...

存储厂商旺宏今日举行法说会,发布了2020年第一季财报,该季度合并营收94.15亿元新台币,环比减少....
发表于 2020-04-30 10:16? 657次阅读
旺宏Q1 Nor Flash价量齐涨,下半年杀入...

关于SRAM存储器的读操作分析

一个典型的SRAM基本结构中,每个存储单元都通过字线和位线与它所在的行和列中的其它存储单元有电学连接关系。水平...
发表于 2020-04-29 17:27? 205次阅读
关于SRAM存储器的读操作分析

RS-485总线如何引导加载程序

嗨,我正在研究一个定制的RS-485总线引导加载程序,在相同的时间将用户应用程序上传到多个设备。我正在用汇编语言编...
发表于 2020-04-29 09:43? 50次阅读
RS-485总线如何引导加载程序

意法半导体推出的新型EEPROM存储器

意法半导体(纽约证券交易所代码:STM),一家横跨多重电子应用领域、为客户提供半导体服务的全球领先供....
发表于 2020-04-28 14:28? 315次阅读
意法半导体推出的新型EEPROM存储器

物联网安全的防御条款是什么样子的

如今物联网技术高速发展,各形态物联网设备层出不穷,从无人机到智能交换机,甚至到供热通风与空气调节系统....
发表于 2020-04-28 11:10? 48次阅读
物联网安全的防御条款是什么样子的

汽车产业对存储器的需求与日俱增

多款GigaDevice存储器解决方案中,NOR Flash产品主要针对容量、封装、安全等方面,满足....
发表于 2020-04-28 09:23? 605次阅读
汽车产业对存储器的需求与日俱增

如何从用户空间写入和读取设备存储器?

你好, 我有一个带有一些寄存器的简单硬件。 我有内核驱动程序。 我从内核空间知道我可以使用iowrite32()写入一些...
发表于 2020-04-28 09:04? 25次阅读
如何从用户空间写入和读取设备存储器?

被吹捧的LPDDR5到底是个啥?DDR5 的主要...

选择合适的存储器解决方案是满足目标系统对各种应用(从云计算和人工智能 (AI),再到汽车和移动应用)....
发表于 2020-04-27 17:22? 600次阅读
被吹捧的LPDDR5到底是个啥?DDR5 的主要...

NAND Flash 行业动态与趋势:国产突围,...

全球半导体协会 SIA 数据显示,存储芯片产业 2019 年全球销售额约 1200 亿美元,约占全球....
发表于 2020-04-27 09:57? 154次阅读
NAND Flash 行业动态与趋势:国产突围,...

基于语音专用芯片UniSpeech和39VF08...

一般使用DVD播放器时要同时使用电视机来显示所播放的图像。因此必须同时使用DVD播放器的遥控器以及电....
发表于 2020-04-25 11:02? 193次阅读
基于语音专用芯片UniSpeech和39VF08...

PIC18F14K50用什么替代

你好,我用PIC18F14k50开始了我的项目,我不需要USB,但是我有存货……现在我的内存需求已经改变了,我需要更多...
发表于 2020-04-24 11:24? 40次阅读
PIC18F14K50用什么替代

采用NET+50和MVBC01芯片实现MVB 2...

硬件系统设计主要包括应用处理器模块、通信存储器模块、通信控制器模块、存储器模块、PC104接口模块、....
发表于 2020-04-23 09:04? 114次阅读
采用NET+50和MVBC01芯片实现MVB 2...

基于PCI Expres总线实现DMA控制逻辑的...

主要特点如下:(1)符合PCI Express Base Specification 2.0规范。(....
发表于 2020-04-18 13:45? 411次阅读
基于PCI Expres总线实现DMA控制逻辑的...

台积电下修全球半导体销售预期,不包含存储器产业在...

台积电总裁魏哲家16日下修今年全球半导体扣除存储器的销售预期,由原估年增8%,降至零成长甚至小幅衰退....
发表于 2020-04-17 15:29? 431次阅读
台积电下修全球半导体销售预期,不包含存储器产业在...

PIC 18F67K22根本无法写入EEPROM

嗨,我在写18F67K22的EEPROM存储器时遇到了一些麻烦。一些细节-3.3v的外部调节器(这意味着ENVREG绑定到...
发表于 2020-04-17 08:23? 31次阅读
PIC 18F67K22根本无法写入EEPROM

如何选择流媒体存储服务器,硬件条件不能差

流媒体存储服务器是流媒体应用的核心系统,是运营商为用户提供视频服务的关键平台。它的主要功能是收集、缓....
发表于 2020-04-16 10:54? 271次阅读
如何选择流媒体存储服务器,硬件条件不能差

武汉国家存储器基地复工 总投资达1600亿元

随着武汉重启,新兴建设承建的国家级高科技重点项目武汉国家存储器基地,经过前期科学有序的疫情防控和复工....
发表于 2020-04-16 10:06? 305次阅读
武汉国家存储器基地复工 总投资达1600亿元

GLOBALFOUNDRIES为存储器技术设置了...

无论是笔记本电脑的固态硬盘、物联网/汽车硬件、基于边缘的人工智能还是嵌入式非易失性内存(eNVM),....
发表于 2020-04-15 21:26? 153次阅读
GLOBALFOUNDRIES为存储器技术设置了...

武汉国家存储器基地加速推进施工

据通用技术集团消息,经过前期科学有序的疫情防控和复工复产准备,日前武汉国家存储器基地施工生产加速推进....
发表于 2020-04-15 16:20? 238次阅读
武汉国家存储器基地加速推进施工

浅析云计算,它的核心技术都有哪些

云计算的核心技术包括三个方面:存储器、云计算资源管理器和信息安全保证。
发表于 2020-04-13 17:44? 412次阅读
浅析云计算,它的核心技术都有哪些

带有PICKit3的MPLAB X IDE表示范围0x0-0xabfb不在器件范围内

大家好,在构建我的程序之后,在MPLLABXIDEwithPICKit3上的“项目属性”窗口以红色显示以下错误消息:范...
发表于 2020-04-13 10:16? 39次阅读
带有PICKit3的MPLAB X IDE表示范围0x0-0xabfb不在器件范围内

PIC32MX795从SRAM运行Bootloader

我想知道如何把一个74KB的引导加载程序存储在程序存储器中,47KB的数据存储在RAM中,然后运行来自SRAM的代...
发表于 2020-04-13 10:05? 32次阅读
PIC32MX795从SRAM运行Bootloader

MAX7456结构、工作原理及实现视频分划瞄准系...

长期以来,部队执勤、反恐所使用的轻武器大部分使用机械瞄准,即三点一线,这种依靠射手目视估计运动目标的....
发表于 2020-04-12 18:17? 99次阅读
MAX7456结构、工作原理及实现视频分划瞄准系...

血氧饱和度传感器的工作原理和应用

患有糖尿病、呼吸系统疾病甚至睡眠呼吸暂停的患者可以使用佩戴在任何地方的传感器来监测其血氧水平。
发表于 2020-04-12 18:12? 898次阅读
血氧饱和度传感器的工作原理和应用

各种存储器接口控制器设计和Xilinx解决方案

20 世纪 90 年代后期,存储器接口从单倍数据速率 (SDR) SDRAM 发展到了双倍数据速率 ....
发表于 2020-04-12 10:57? 180次阅读
各种存储器接口控制器设计和Xilinx解决方案

I2C总线系统中引起电压失常的原因和检修方法

I2C总线系统传送的是脉冲数字信号,总线上要传送少则十几项、多则数百项的控制项目和数据,被控集成电路....
发表于 2020-04-12 09:50? 455次阅读
I2C总线系统中引起电压失常的原因和检修方法

直接时钟控制技术方案应用于存储器中的设计及实现

大多数存储器接口都是源同步接口,从外部存储器器件传出的数据和时钟/ 选通脉冲是边沿对齐的。在 Vir....
发表于 2020-04-11 09:55? 149次阅读
直接时钟控制技术方案应用于存储器中的设计及实现

存储器收入预计将增长13.9%,2020年总体市...

全球领先的信息技术研究和顾问公司Gartner预测,由于新冠疫情对半导体供需的影响,2020年全球半....
发表于 2020-04-10 16:17? 417次阅读
存储器收入预计将增长13.9%,2020年总体市...

如何防止单片机遭到技术性的攻击

微控制器通常有内部只读存储器/可编程只读存储器/闪存供用户存储程序。为了防止未经授权访问或复制片上程....
发表于 2020-04-09 16:53? 156次阅读
如何防止单片机遭到技术性的攻击

中科大发现铁性隧道结信息原型存储器,写入速度超快

4月8日消息,中国科学技术大学李晓光团队一直致力于铁性隧道结信息存储原型器件研究,在磁电耦合、超快、....
发表于 2020-04-09 14:11? 449次阅读
中科大发现铁性隧道结信息原型存储器,写入速度超快

无法调试PIC 16/32 Explorer工具包中的任何代码

你好,论坛。这是我在论坛上的第二篇文章。我正在尝试调试包含PIC32MX570F512L作为微控制器的资源管理器工具包...
发表于 2020-04-09 13:14? 46次阅读
无法调试PIC 16/32 Explorer工具包中的任何代码

美光第二代高带宽存储器即将出货,传输速度达2GT...

众所周知,高端显卡和服务器处理器方面的存储在市场上相当紧缺。近日,美光科技(Micron Techn....
发表于 2020-04-09 10:55? 170次阅读
美光第二代高带宽存储器即将出货,传输速度达2GT...

基于DSP小系统接口电路实现在PC机调试电路中的...

所谓可移植性是指系统或电路不改动或者通过跳线、可编程器件的擦写等简单改动就可以适应不同的外部系统的能....
发表于 2020-04-09 10:11? 144次阅读
基于DSP小系统接口电路实现在PC机调试电路中的...

全球存储器产品最重要生产区域宣布封城 对半导体产...

近期,受新冠肺炎影响,全球两大存储器产品生产重镇新加坡和日本分别于4月3日和4月6日宣布封城。
发表于 2020-04-08 16:25? 602次阅读
全球存储器产品最重要生产区域宣布封城 对半导体产...

GLOBALFOUNDRIES为先进非易失性存储...

无论是笔记本电脑的固态硬盘、物联网/汽车硬件、基于边缘的人工智能还是嵌入式非易失性内存(eNVM),....
发表于 2020-04-08 10:52? 260次阅读
GLOBALFOUNDRIES为先进非易失性存储...

SK海力士正式宣布年底前量产并提供业界频率达到8...

韩国存储器大厂SK海力士在2020年的CES上曾经展出过64GB的DDR5-4800存储器,其频宽和....
发表于 2020-04-07 14:34? 247次阅读
SK海力士正式宣布年底前量产并提供业界频率达到8...

存储器现货市场开始出现价格下滑趋势 将对存储器芯...

随着新冠病毒在全球蔓延,各国防疫措施不断升级,全球经济表现也出现急剧疲软的态势。
发表于 2020-04-07 14:20? 552次阅读
存储器现货市场开始出现价格下滑趋势 将对存储器芯...

LabView嵌入式开发模块有什么要点?

无论使用什么设计语言,不良的编程技术都会给一个应用的性能带来负面影响,对一个嵌入式应用尤其如此。尽管对于绝大部...
发表于 2020-04-07 08:31? 82次阅读
LabView嵌入式开发模块有什么要点?

嵌入式Flash管理有什么特点?

嵌入式系统中通常都需要存放一些非易失性数据, 并且数据量的大小和数据类型根据不同的系统需求差异很大。因此选取合适...
发表于 2020-04-07 06:10? 81次阅读
嵌入式Flash管理有什么特点?

FRAM存储器技术在汽车高温环境中的应用

为了让FRAM存储技术能够实现引擎盖下的应用,必需开发出把两部分温度图考虑在内的数据保持规格。第一部....
发表于 2020-04-06 10:41? 90次阅读
FRAM存储器技术在汽车高温环境中的应用

操作系统内存的详细资料讲解分析

主存(RAM) 是一件非常重要的资源,必须要认真对待内存。虽然目前大多数内存的增长速度要比 IBM ....
发表于 2020-04-06 09:48? 573次阅读
操作系统内存的详细资料讲解分析

单片机与闪速存储器的软硬件设计的注意事项

在单处机应用系统中,经常遇到大容量的数据存储问题。闪速存储器由于容量大、存储速度快、体积小、功耗低等....
发表于 2020-04-04 18:07? 131次阅读
单片机与闪速存储器的软硬件设计的注意事项

基于微处理器的CAN智能节点的软硬件设计方案

控制器局域网CAN(Controller Aera Network)是德国Bosch公司在80年代初....
发表于 2020-04-04 11:14? 91次阅读
基于微处理器的CAN智能节点的软硬件设计方案

计算机外围设备的分类,都有哪些设备

计算机外围设备的结构,功能,工作原理,有很大的差别,通常机械的,电子的,电磁的,激光的等各种设备。若....
发表于 2020-04-03 16:24? 552次阅读
计算机外围设备的分类,都有哪些设备

物联网安全的防御条款是怎样的

基于指令的存储器访问控制:一种将堆栈的数据部分与返回地址部分分开的技术。
发表于 2020-04-02 17:09? 116次阅读
物联网安全的防御条款是怎样的
最可靠的足球外围网站 现金体育网 365体育直播 外围买球app 香港全年资料内部公开 香港马会免费资枓大全 hg0088平台 外围足球 沙巴体育

赌外围足球什么意思

沙巴体育 外围足球论坛 外围买球 365bet体育在线 hg6686集团app 皇冠现金app网 hg0088官网 hg0088皇冠开户 足球外围app 万博体育网 新万博网站 威廉希尔 威廉希尔平台 188bet bet体育 bt365官方网站 hg0088正网 bet36体育在线 皇冠足球走地 皇冠体育 皇冠体育 沙巴体育 沙巴体育外围 沙巴体育开户 皇冠比分 皇冠走地 hg0088皇冠 滚球技巧 足球滚球 什么是滚球盘 欧洲杯外围足球 沙巴体育 最可靠的足球外围网站 对冲套利滚球篮球实战 外网足球 玩滚球什么网站 滚球有人长期赚钱吗 狗65网站是什么 滚球狗65买球 狗65是哪个平台 狗65下载 狗65买球 狗洲地址 皇冠滚球在线 滚球平台有哪些 怎样靠滚球盈利 足球套利一天几千 滚球正规网址 买滚球用什么平台 谁有好的滚球APP 滚球平台哪些靠谱 滚球最稳的平台 滚球平台哪个安全可靠 滚球高手心得