下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于flash介质嵌入式存储方案的设计与实现flash(闪速存储器)作为一种平安、迅速的存储体,具有体积小、容量大、成本低、掉电数据不走失等一系列优点,已成为系统中数据和程序最主要的载体。因为flash在结构和操作方式上与硬盘、e2rom等其他存储介质有较大区分,用法flash时必需按照其自身特性,对存储系统举行特别设计,以保证系统的性能达到最优。2 flash的特点flash是一种非易失性存储器nvm(non-volatile memory),按照结构的不同可以将其分成nor flash和nand flash两种。但不管哪一种都具有如下特点:(1)区块结构flash在物理结构上分成若干个区块
2、,区块之间互相自立。比如nor flash把囫囵memory分成若干个sector,而nand flash把囫囵memory分成若干个block;(2)先擦后写因为flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器举行写入之前必需先执行擦操作,将预写入的数据位初始化为1。擦操作的最小单位是一个区块,而不是单个字节。(3)操作命令除了nor flash的读,flash的其它操作不能像ram那样,挺直对目标地址举行操 作。比如执行一次写操作,它必需输入一串特别的命令(nor flash),或者完成一段时序(nand flash)才干将数据写入到flash中。(4)位反转因为f
3、lash固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误。这就是位反转。位反转无法避开,只能通过其他手段对结果举行事后处理。(5)坏块flash在用法过程中,可能导致某些区块的损坏。区块一旦损坏,将无法举行修复。假如对已损坏的区块举行操作,可能会带来不行预测的错误。尤其是nand flash在出厂时就可能存在这样的坏块(已经被标识出)。3 关键设计3.1 flash通用设计对于一个嵌入式系统,设备的兼容性越好,系统可行性就越好,产品也就越有竞争力。所以,为了兼容不同类型的flash设备,对flash举行通用设计至关重要。对于nor flash,数据的读操作可以通过自立的数据总线和
4、地址总线迅速完成,然而nor flash的其他操作需要通过特别的命令来完成,更糟糕的是不同厂商生产的芯片这些命令互不相同。这就导致了设备的不兼容。对于nand flash,也存在这样的问题。nand flash可以按照相同的命令读取芯片的厂商号和设备号,从而通过识别设备号调用对应的时序流程实现操作。但是,系统中太多的推断,会使得程序的结构变得十分复杂。所以,在一定的条件下,nand flash设备还是不兼容的。为了解决这一问题,一个较好的办法是将flash的各个操作命令以及结构特性根据统一的格式存放到flash中固定位置。系统初始化时,将这个结构读入系统,通过分析这个结构,可以获得关于芯片全部
5、相关信息,包括操作命令,区块分布等等。这样,系统可以轻松实现对不同型号flash的全部操作,极大地提高了设备的扩展性。3.2 双模式文件系统设计嵌入式系统中文件数据的存放普通有两种结构,一种是索引格式的线性结构,一种是非线性的链表式结构。这两种结构各有优缺点。比如对于系统配置、点阵字库等一些具有固定结构的系统数据,索引结构比链表式结构更有效率。但对于常常更新的用户数据,链表式结构要比索引结构更灵便。假如系统能将两种结构集成,势必能将性能发挥到最优。实现这种集成的办法是将设备定义成若干个分区,每个分区互相自立,不同分区可以用法不同的文件模式。这样,不同类型的数据就可以按照自己的属性挑选存放的分区
6、。比如系统数据存放在用法索引线性结构的分区,用户数据存放在用法链式非线性结构的分区。3.3 坏块处理flash中的坏块处理是一件很麻烦的问题,假如没有有效的管理,对系统的稳定性会造成严峻影响。一个可行的解决办法是生成一张坏块表,坏块表中记录全部坏块的块号,并且按块号从小到大排序,坏块表在读写过程中动态更新。当读写数据时,遍历坏块表中的块号,将文件的规律地址转换成对应flash 物理地址,以保证所用的flash地址空间不存在坏块。4 系统实现4.1 结构定义系统的存储结构1所示,在flash的block0位置存放囫囵系统最重要的数据系统记录sr(system record)。挑选block0的缘
7、由是普通flash出厂时,都能保证block0是完好的,因此可以避开坏块问题带来的不便。sr其实就是一个定义好的数据结构,它包括媒质信息和文件系统信息两部分。媒质信息包括flash存储器的类型、容量、块类型的大小和数量(blockinfo)、flash 操作指令( commandinfo )等。文件系统信息包括版本信息、各规律分区的起始地址(物理地址)和结束地址。flash设备可以被分成一个或多个规律分区,每个规律分区采纳的操作方式可以互不相同,1中device0分区采纳的是线性文件系统,device1分区采纳的是链式文件系统。假如采纳的是线性文件系统,在分区信息后面加入文件索引表index起
8、始地址、大小等信息;假如采纳的是链式文件系统,则加入文件系统页大小、文件分配表fat和文件记下表frt所在的位置等信息。文件记下表frt位于fat后的页中,存放着规律分区中文件的信息,如文件总数、每个文件的文件代号、位置、长度以及校验模式。其中,校验模式用来标识文件读写时采纳差错校验的级别。不同类型的文件采纳不同级别的校验方式。0级不举行校验,1级ecc校验,2级逐个字节比较。对于线性文件系统分区,全部文件挨次存储,读取数据时,挺直通过index索引得到某个文件的规律起始地址,然后从这个地址开头挨次搜寻,猎取某个偏移位置下的n个延续byte。链式文件系统是将地址空间分成若干个等分,即secto
9、r,它是操作的最小单位;一个大文件可以分布在不延续的多个 sector中,然后通过fat表将它们衔接起来;在flash介质上实现链式文件系统,sector大小的挑选是一个关键,因为flash的写操作,擦操作是以page,block为单位的,设小了使大块结构的flash写操作复杂,设多了又铺张空间,因此最好的挑选是将sector大小设为擦操作的最小单位16k。囫囵规律分区中,index,fat,frt表中的内容十分重要,一旦由于异样产生错误,可能会影响到全部文件;所以,这三个文件都做了备份处理,备份存放于不同的block中。同时,在对他们处理时,改写表中的更新状态。0xff表示开头更新,0x00
10、表示更新结束。在文件系统初始化时,读取它们的更新状态,假如表中的更新状态为0xff,解释该表存在操作异样,可用备份表更正。4.2 层次接口囫囵存储系统分成三层,2所示。(1)操作系统层在囫囵存储系统中,操作系统饰演的是用法者的角色。当需要数据时,它通过调用文件系统层提供的接口函数猎取数据,它不关怀数据的来源和正确性。(2)文件系统层文件系统层的任务是实现它和操作系统层的函数接口。在实现方式上,线性文件系统和链式文件系统有较大区分。比如文件读取mfread,线性文件系统挺直读取所要的字节,而链式文件系统是每次先把对应的囫囵页读到文件缓冲区,然后再把所需数据拷贝到读到指定内存。文件删除mfdele
11、te,线性文件系统需要重新收拾,不然就会由于大量的数据空洞(因为空间太小,无法放入新文件的小块区域)使得系统很快没有可用空间。链式文件系统只需修改文件系统的 fat和frt,而不用做其他任何处理,当下次写入操作用到该块时,自动完成擦除。(3)驱动层驱动层的任务是完成与flash之间的通讯协议,实现它和文件系统层的函数接口。接口函数包括页面读mpageread,页面写mpagewrite, 块擦除mblockerase, 随机读取mrnread, 随机写入mrnwrite。mpageread,mpagewrite,mblockerase对整页或块举行操作,在链式文件系统中调用; mrnread, mrnwrite对字节单位举行操作,在线性文件系统中调用。其中mrnwrite比较棘手,以写一个byte为例,它的操作分三步,首先将目标块中的全部数据读到内存buffer中,然后将要写入的数据更新到buffer,擦除目标块,最后将已更新的buffer写回到目标块,这里的buffer大小是一个block。因为嵌入式系统的内存资源比较紧急,系统采纳了块交换技术以降低成本,办法是在flash中搜寻一个空闲块,用它充当buffer的角色。5 结论通过上面的设计,所实现的存储系统具有以下的特点:(1)用法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44801-2024系统级封装(SiP)术语
- 福建省2024八年级数学上册第12章整式的乘除12.5因式分解第2课时公式法-平方差公式课件新版华东师大版
- 酒店人力资源管理培训
- 消防安全应急演练宣贯会
- 肝衰竭的诊断与治疗
- 初中生物教案说课稿
- 猜猜我是谁游戏教案反思
- 班会教案反思
- 智慧门店解决方案
- 骨骼健康的保养方法
- 高中英语外研版 单词表 选择性必修4
- 2024年秋季人教版七年级上册生物全册教学课件(2024年秋季新版教材)
- 2024年医疗机构医疗废物管理规范考试试题及答案
- 两弹一星精神(教学设计)-2023-2024学年小学科学课后服务科普课程
- 部编人教版六年级上册道德与法治全册知识点考点+典型考题【每课】
- 《第3课 数据的价值》参考课件5
- 农小蜂-2024年中国花卉产业数据分析简报
- 2024年国家教育部留学服务中心非编招聘5人历年(高频重点复习提升训练)共500题附带答案详解
- 智能控制技术专业教学标准调研报告
- 艺术品金融化与资产证券化
- 监视和测量设备台账
评论
0/150
提交评论