首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
嵌入式系统中基于闪存平台的存储管理策略
来源:本站整理  作者:佚名  2010-06-27 10:08:24



2.1 存储扇区管理
    本文开发的FFS存储结构类似于MS-DOS的FAT,是FAT系统的修改。图2显示了一系列模式的基本存储结构。

    系统记录区(SRA)存储介质信息和最重要的文件系统信息,如闪存类型、容量、扇区数和扇区利用现状。这个扇区的利用状况包括文件数、未使用的扇区数、损坏扇区数、第一个和最后一个未使用的扇区编号。图3显示了在SRA上的内存分配。文件信息区域(FIA)用于存储文件的详细信息,如文件名、文件类型、文件大小、文件属性和闪存链表项。程序数据区(PDA)用于存储程序数据。在图2阴影部分是每个区域损坏的扇区。如果损坏的扇区数达到给定界限值,警报将自动启动。图3为SRA上的内存分配情况,不同部分存储特定的记录信息:1为闪存内存类型;2为闪存内存容量;3为扇区数;4为文件数;5为未使用扇区数;6为损坏的扇区数;7为最后一次写入FIA的扇区组数;8为第一个未使用扇区号;9为最后未使用扇区号;10为系统记录控制的关键字;11为下一个要写入的扇区号。

    不同的系统有不同的存储空间管理模式,最简单的可能是一个命令模式,但它并不适用于某些特殊应用。例如,在计算机数控系统中使用命令模式,用户不方便编辑、修改或者删除由各种机器处理指令组成的G代码程序。另一个常用的方式是静态存储模式,这意味着每一个文件分配固定的扇区数。在这种情况下,如果文件大小超过了给定的空间,虽然仍有未使用的扇区,但写操作却不能成功完成。同样,小文件显然将导致存储空间浪费。此外,由于过度频繁地访问同一个文件,与其他的扇区相比这样的扇区更易于损坏。因此,静态存储模式不是一个很好的选择。
    为了克服这些问题,提出了一个动态存储空间管理模式,采用平均擦除和写入策略。先入先出(FIFO)的引入,保证了闪存存储扇区的平均使用。当系统第一次加电,未使用的扇区都初始化为一个双链表。此后,这些扇区应该从链表头节点转到尾节点。这样,在访问每个扇区的频率将趋于平等,每个扇区将不会过度频繁读取/写入。假设链表有N个节点,每个扇区访问的概率只有1/N,因此,闪存的使用寿命可以明显延长。
    相对而言,基于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] [3] [4] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:40,468.75000 毫秒