微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 嵌入式系统中基于闪存平台的存储管理策略

嵌入式系统中基于闪存平台的存储管理策略

时间:06-29 来源:电子技术应用 点击:

以明显延长。

相对而言,基于MS-DOS的FAT系统只为数据区提供损害管理,却忽视了文件系统结构区域。相对地,SRA作为FFS结构区域,由于存储了系统关键信息而成为最重要的区域。而且,由于频繁访问, SRA往往更易损坏。因此,这一区域应当运用一种安全策略。根据在SRA、FIA和PDA存放的数据的重要性不同,不同存储区域应当分配不同的可靠性要求。因此,可以充分利用闪存存储能力,写校验时间将会减少,从而写速度将有所改善。

2.2 SRA的平均擦除和写入管理

为了实现对System record area(SRA)平均擦除和写管理,避免由系统记录扇区物理损伤而导致整体系统的故障,SRA被平均划分成3个小组。3组依次进行写操作,可以为系统记录存储安全提供一个冗余策略,从而提高系统的可靠性,延长系统寿命。这对于每次在系统通电之后获取SRA代码值是必要的。由系统记录关键字(SysKeyword)控制的值,标记着系统关闭前最后一次写操作的系统扇区的执行记录,它显示为:


在系统初始化时,SRA中每组的相应系统变量关键字(1~3)初始化为0。在后续操作中,各组关键字(SysKeyword)的真实值应该更新,在系统每次启动时分别从SRA读出。因此,SysCodeValue的值可根据式(1)得到。执行最后一次写操作的组号可以通过调用函数GetLastGroup-Num()获得。一旦SRA的记录数据被更改,系统关键字应该相应更新。然后包括SysKeyword的记录数据,应写入到根据以下方法获得的相应扇区。

下一次将被写入的该系统记录扇区的组号与转移的参量LastGroupNum可以通过调用函数GetNextGroupNum(Uchar LastGroupNum)共同获得。SysCodeValue的值将更新如下:
SysCodeValue=SysCodeValue∧2NextGroupNum-1 (2)

通过组合式(1)和式(2)可以得到每组SysKeyword的值,因此,可以迅速查出最新和最旧的记录。该方法是一种快速计算和跟踪策略,这样,根据得到的组号和SysKeyword的值,写操作可以顺利执行。

该系统记录扇区的详细参数值如表1所示。

3 文件管理

文件管理层(FML)封装了整个文件系统,并且为操作系统和上层的应用程序提供统一标准的程序接口(APIs)。用户操作请求将被APIs移交到文件的逻辑层(FLL),然后将请求发送到文件的物理层(FPL)。

3.1 文件编辑

文件系统应提供友好的用户界面,用户可以操作文件,无需考虑文件的结构或物理位置。图4显示编辑一个存储在闪存的文件流程图。首先要遍历文件信息链表,根据文件名来查找存储此文件信息的节点。因此,该文件存储空间的第一个扇区可获取,后续扇区依次获取。然后,每个扇区将逐个读取,数据将被写入缓冲区。通过建立一个双链表显示数据,然后通过人机界面进行编辑操作。最后,将修改后的数据写回到闪存,文件信息和系统记录将自动更新。

3.2 文件存储和文件删除

连续的文件存储结构模式(如图5中的文件N005和N011)在存储前,文件通常被划分成为大小相等的多个数据块(除最后一个块的大小可能小于其他块)。块的数量是由文件和块大小决定,而块的大小与存储介质有关。在本文中,闪存的存储单元(即扇区)为256 B,因此,该块的大小建议不超过256 B。在这里,把文件划分为252 B大小的块,每个数据块占用一个扇区的存储空间。因此,块的数量(即被占用的扇区数)可以计算出,这是最低整数不少于文件字节大小除以块字节大小所得的商数。然后未使用的扇区链表的头节点作为这个文件存储空间的第一个扇区。紧随第一个扇区,很多未使用的扇区被取出后,整个文件的存储空间可用。因此,该文件成功保存。

闪存的地址空间不允许随意被删除,删除一个文件时必须把扇区作为一个删除单元。因此,删除一个文件,要使用与编辑操作相同的手段获得该文件节点的存储信息,这样文件的信息可以使用。有了文件信息,文件的存储空间的第一个扇区可以得到,其他的也可以依次得到。然后未使用的扇区链表上的扇区可以通过调用函数FreeSect(Ulong SectNum)释放第一个扇区。最后,根据双链表的原则,这个节点将被删除。

图5为一个文件创建和删除过程的示例。要创建一个文件(文件名为N005,大小为912 B,第一个扇区是5号),未使用扇区链表的头节点作为这个文件的存储空间的第一个扇区(扇区号为5)。同时,在文件信息链表的尾节点写文件信息。这个文件的存储扇区数可以计算出来,结果被证明是4。然后,从未使用的扇区链表头部,4个扇区依次用于存储文件数据。从而,文件信息和系统记录更新后,文件的创建操作完成。

要删除文件(文件名是N011,文件大小为2 026 B,第一个扇区编号为6),根据文件名N011,通过遍历文件信息

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top