flash存储管理子系统的设计与实现

flash存储管理子系统的设计与实现

ID:34436827

大小:315.56 KB

页数:14页

时间:2019-03-06

flash存储管理子系统的设计与实现_第1页
flash存储管理子系统的设计与实现_第2页
flash存储管理子系统的设计与实现_第3页
flash存储管理子系统的设计与实现_第4页
flash存储管理子系统的设计与实现_第5页
资源描述:

《flash存储管理子系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛FLASH存储管理子系统的设计与实现123易军曹龙汉周熙(重庆通信学院网络与信息安全教研室重庆400035)[摘要]:本文以TRI公司的基于NORFlash的Flash管理软件FMM为例,详细介绍嵌入式系统中如何根据Flash的物理特性来进行Flash存储管理,并比较与不采用FMM的Flash在性能上的优劣。关键词:嵌入式系统FlashFMMDesignandRealizeofFMMinthee

2、mbeddedsystem123YijunCaolonghanZhouxi(networkandinformationsecuritydepartmentcollegeoftele-communicationinchongqingchongqing400035)Abstract:ThepaperintroducesindetailshowtomanageFlashintheembeddedsystembybasingFlash’sphysicalfeaturessuchFMMwhichismadebyTRI

3、asaexample,andshowsdifferencesbetweenFMMandFlashineveryaspects.Keywords:embeddedsystem;Flash;FMM中图分类号:TN919.2文献标识码:B引言Flash存储器是一种安全、快速的存储体,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点。目前已经逐步取代其它半导体存储元件,成为嵌入式系统中主要数据和程序载体。作为嵌入式系统存储和管理数据的功能单位,Flash存储管理的主要功能是针对Flash自身的物理特性,利用一

4、些特定的算法来提高Flash的使用效率,加快操作速度和管理Flash各单元的使用频率。1.FMM子系统结构介绍:FLASH存储管理一般位于文件系统之下,FLASH底层驱动之上,当不存在文件系统时,可以由应用程序直接使用。FMM以扇区为基本管理单元,FMM上层(为应用程序或者为文件系统)只能看到逻辑扇区。逻辑扇区的总个数为FLASH可分配的虚拟扇区个数,编号从0开始。一个2M的FLASH,如果虚拟扇区大小为516字节,则支持的虚拟扇区个数为4064个,逻辑扇区从0~4063编号。物理扇区是指从FLASH的物理

5、地址开始的扇区编号,每隔一个虚拟扇区大小,编号加1。由于Flash不能像普通磁盘那样进行字节的修改,甚至不能以扇区为单位进行修改;而只能以块为单位进行修改;但如果只是简单将物理扇区和逻辑扇区一一对应,那么如果我们想对扇区修改就必须将整个块的内容都擦除,然后再将修改后的内容回写;势必会造成时间和Flash寿命的损失。因此,建立一个物理扇区号和逻辑扇区号的空间映射表,使逻辑扇区与物理扇区号进行动态的匹配。这样,在修改某个扇区的内容时只要将数据写入一个新的扇区,然后将原扇区标记为DIRTY就可以了。这样,还可以消

6、除频繁修改某个扇区带来的寿命不均的影响。该项目由重庆市自然科学基金资助项目编号:CSTC2006BB2131http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛映射表是建立在内存中的项数为M(扇区总数)的数组,每项占用2字节,用于存放对应的物理扇区号。当某项为空(NULL,用0xffff表示)时,认为该逻辑扇区空闲,未使用。为了实现以扇区为基础的数据管理,FMM首先对Flash中的块内存储空间逻辑上进行了重新定义,每个物理块内部又重新划分成了若干

7、物理扇区。每个物理块内部又重新划分成了若干物理扇区。每个物理扇区由512+4字节=516(0x204)字节组成。512字节为有效数据空间,另外4字节(32位)用于存放逻辑扇区另和当前状态。定义如下:扇区状态逻辑扇区号数字空间4位28位512字节扇区状态有4种,用于进行掉电数据恢复:FREE—空扇区(0xF);INVALID—扇区数据无效(0xE);INUSE—扇区数据有效(0xC);DIRTY—扇区数据无用,可擦除(0x8)。一个物理块为一个基本擦除单位,从0开始编号。其内部包含n个扇区和一个标记。标记指示

8、了下一个被整理的块,如果无下一个被整理的块则标记为0xffffffff。以64K大小的块为例,可以计算出每个块中可以划分出127个扇区;另外,还会有4字节的空间,专门用于标志下一个被整理块。标记为0x80808080,否则为0xffffffff。因此可以得出:物理扇区和绝对地址之间的对应关系:绝对地址=Flash基地址+物理扇区号×0x204+所在块号×4。块号与绝对地址之间的关系:绝对地址=Flash基地址+所

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。