




已阅读5页,还剩56页未读, 继续免费阅读
(计算机应用技术专业论文)嵌入式nand+flash存储系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
? _ q _。“-|1。 煳螋 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我- - n t 作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位 本人签名 处,本人承担一切相关责任。 日期: 兰! :垒! 璺! 望 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。 本人签名: 导师签名: 日期: 兰! ! 皇! ! 量 e l 期:趔旦! f :塑 r j , 一、 - l 。 北京邮电大学硕士研究生学位论文 北京邮电大学硕士研究生学位论文 d e s i g na n di m p l e m e n l l a t i o no f e m b e d d e dn a n df l a s hs t o r a g es y s t e m a b s t r a c t w i t ht h ed e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g ya n dw i d eu s a g eo f d i g i t a lp r o d u c t s ,n o w a d a y se m b e d d e ds y s t e mb e c o m e sah o t s p o ti n c o m p u t e rt e c h n o l o g ya r e a n a n df l a s hm e m o r yi san o n v o l a t i l es o l i d s t a t em e m o r ya n di sw i d e l yu s e di nm a n ye m b e d d e ds y s t e m sb e c a u s eo f i t sl o wp o w e rc o n s u m p t i o n ,f a s ti o ,l a r g ec a p a c i t y , l o wc o s t ,s h o c k r e s i s t a n c ep r o p e r t ya n de t c t h e r ea r et w ok i n do f m e t h o d o l o g ya p p l i e dt o m a n a g e m e n to ff l a s hs t o r a g e t h e f i r s to n ei s u s i n gf t l ( f l a s h t r a n s l a t i o nl a y e r ) t os i m u l a t ei ta sat r a d i t i o n a lr wb l o c kd e v i c ea n d a p p l yat r a d i t i o n a lb l o c kf i l es y s t e mt om a n a g ei t t h eo t h e ri st om a n a g e i t u s i n gs p e c i a l i z e df i l es y s t e m s i nt h i sp a p e r , a ne m b e d d e dl i n u x n a n df l a s hs t o r a g es y s t e mu s i n gf t lf o rm o b i l ei n t e r a c td e v i c ei s d e s i g n e da n di m p l e m e n t e d i ti n c l u d e sb l o c kl a y e r ,f t ll a y e ra n dl l d l a y e r t h i sp a p e rf i r s ti n t r o d u c e st h eb a c k g r o u n da n dc u r r e n ts t a t u so f e m b e d d e ds y s t e m t h eb a c k g r o u n da n dv a l u eo fn a n df l a s hs t o r a g e s y s t e md e v e l o p m e n tp r o j e c ta r ea l s ob er e f e r r e d t h e n ,t h i sp a p e rf o c u s e s o nt h ef l a s ht e c h n o l o g ya n df l a s hm e m o r yd e v i c e s n o rf l a s ha n d n a n df l a s ha r ec o m p a r e di nt h i sp a p e r t h eu s a g eo fn a n df l a s hi s i n t r o d u c e dw i t ha ne m p h a s i s t h el a s tp a r to ft h i sc h a p t e ri n t r o d u c e st h e n a n df l a s hc h i p sw eu s e d n e x t ,t h i sp a p e rd e m o n s t r a t e da b o u th o wt o d e s i g na n di m p l e m e n tn a n df l a s hs t o r a g es y s t e mh i e r a r c h i c a l l y , ,a n d e m p h a s i z e do nr e d e s i g no fb l o c ki n t e r f a c el a y e r o p t i m i z a t i o no fc a c h e r e p l a c e m e n ta l g o r i t h m ,m e t h o do fa d d r e s sm a p p i n gt a b l es t o r i n ga n d 一1 1 1 - , ;r 北京邮电大学硕士研究生学位论文 北京邮电大学硕士研究生学位论文 目录 第一章绪论。1 1 1课题研究背景与意义l 1 1 1嵌入式系统1 1 1 2嵌入式存储系统1 1 2课题内容与主要工作2 1 3论文组织结构3 第二章f l a s h 存储设备介绍。4 2 1f l a s h 存储器4 2 1 1 f l a s h 存储器概述4 2 1 2f l a s h 存储器技术分类。5 2 1 3n o r 技术与n a n d 技术比较7 2 2n a n df l a s h 的使用9 2 2 1使用条件和要求9 2 2 2设计中所采用的n a n df l a s h 芯片介绍。1 0 第三章嵌入式l i n u x 存储系统概述1 5 3 1块设备驱动1 6 3 1 1 块设备驱动介绍1 6 3 1 2块设备驱动接口1 8 3 1 - 3 块设备驱动的请求处理方法1 9 3 2针对f l a s h 存储设备的嵌入式l i n u x 存储系统1 9 3 2 1f l a s h 转换层技术2 0 3 2 2闪存日志文件系统2 1 第四章n a n df l a s h 存储系统2 4 4 1n a n df l a s h 存储系统的总体设计2 4 4 2块设备驱动层2 5 4 3 f t l 层2 8 4 3 1地址映射2 8 4 3 2缓存及缓存换出算法改进3 l 4 3 3 坏块管理3 6 4 3 4负载均衡3 7 北京邮电大学硕士研究生学位论文 4 3 5 垃圾收集。3 9 3 9 4 2 4 4 4 5 4 6 4 6 4 7 4 8 ! ;( ) 文5l 一一 北京邮电大学硕士研究生学位论文 1 1 课题研究背景与意义 1 1 1 嵌入式系统 第一章绪论 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适 用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般 由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个 部分组成,用于实现对其他设备的控制、监视或管理等功能l l 】。 嵌入式系统是将不断发展的计算技术、半导体技术以及微电子技术与行业具 体应用紧密结合的产物【2 】。通常,嵌入式系统的c p u 都具有体积小、功耗低、 集成度高等特点,能够把通用系统结构中许多由板卡完成的任务集成在c p u 芯 片内部,从而有利于整个系统设计趋于小型化、高度集成化。由于嵌入式系统资 源相对有限,在设计嵌入式系统的硬件和软件时必须重视效率,尽可能去除冗余, 针对用户的具体要求,对系统进行合理配置,才能达到更加理想的性能。嵌入式 系统的发展历程大致经历了以下四个阶段:无操作系统阶段、简单操作系统阶段、 实时操作系统阶段、面向i n t e r n e t 阶段【3 】。本文所研究的嵌入式系统则是属于第 四阶段,面向i n t e m e t 阶段。所设计的存储系统是应用于移动上网设备。嵌入式 技术兴起于1 9 6 5 1 9 6 7 年集成电路化的第三代计算机期间,如今己成为r r 产业 内的重要发展领域。在7 0 年代,微处理器不仅用来组成微型计算机,而且用来 控制仪器仪表、医疗设备等。8 0 年代将嵌入式应用所需要的微处理器i o 接口、 以及r a m ,r o m 全部集成到一个超大规模集成电路芯片中,制造出面向i l o 设 计的微控制器,使嵌入式系统得到全面而快速的应用。9 0 年代,嵌入式应用面 向实时信号处理算法,向着高速、高精度、低功耗方向发展。到本世纪初,在计 算机、控制、网络相互融合的基础上,出现了信息家电i a ( i n f o r m a t i o n a p p l i a n c e s ) , 使计算机( c o m p u t e r ) 、通信( c o m m u n i c a t i o n ) 、消费电子( c o n s u m e re l e c t r o n i c ) 一体化趋势日渐明显,嵌入式系统再度成为研究与应用的热剧4 1 。 1 1 2 嵌入式存储系统 进入2 l 世纪以后,各种嵌入式相关的技术都取得了突破性的进展,嵌入式 系统也广泛的应用到了工业制造、远程控制、电信通讯、军事装备、消费类产品 等领域。嵌入式系统主要有几大部分组成:微处理器、存储设备、总线标准、i o 北京邮电大学硕士研究生学位论文 外设。嵌入式系统技术的发展也就是这几大部分技术的发展。8 0 年代到9 0 年代, 嵌入系统的技术关键在于如何提高微处理器的运算速度和运算效率。随着制造工 艺的成熟和体系结构的不断优化,如今无论面向低端应用还是高端应用,无论面 向民用设备还是工业控制,不同运算能力的微处理器,都有很大选择范围,能够 很好的完成复杂的数据信息处理。当前需要更多考虑的是如何有效地存储和管理 越来越多的数据信息,以及如何应用这些数据。信息存储空间日益拥挤,信息数 据的采集和数据管理体系的复杂程度越来越高,2 1 世纪信息技术的浪潮将在存 储领域兴起。目前全球包括计算机系统、软件、网络以及家用和服务等领域的存 储市场已超过1 0 0 亿美元,成为2 1 世纪的信息领域主要市场之一。 随着嵌入式系统的日趋复杂,其对存储器的要求也越来越高,例如在要求容 量越来越大同时,还要求扩展方便、功耗低、节省空间等。f l a s h 存储器作为一 类非易失性存储器,具有功耗低、读写快、容量大、成本低、抗震性好等优点【5 1 , 因此被广泛应用于各种嵌入式系统。由于f l a s h 存储器与传统的磁盘存储器相比 有着很大的不同,为了有效地使用f l a s h 存储器,合理地管理存储数据和实现数 据共享,必须采用特殊的技术方法。目前针对嵌入式存储系统的研究也越来越受 到关注。 本课题的目的是为个人上网设备设计并实现n a n df l a s h 存储系统,主要是 n a n df l a s h 驱动的设计与实现,设计的目标是使之能支持多种f l a s h 存储器, 以便于存储系统的扩展,并最终使得f l a s h 存储系统的读写性能能够满足移动上 网设备日常使用的要求。驱动设计主要是基于l i n u x2 6 内核。l i n u x 是一个可裁 剪、完全内存保护、多任务多进程的操作系统,支持多种硬件平台,源码全部公 开,开发的程序大部分相互兼容,使得系统设计更加灵活并便于扩展。 1 2 课题内容与主要工作 本课题的研究工作主要是完成基于嵌入式l i n u x 操作系统的n a n df l a s h 存 储系统,具体工作包括如下: 1 学习n o rf l a s h 、n a n df l a s h 的接口及操作方式,学习f l a s h 控制器的 操作方法和硬件接口方式; 2 研究l i n u x 下驱动编写的方法,并重点研究l i n u x 系统的块设备驱动的 编写方法及块设备r e q u e s t 方法的实现原理; 3 分析l i n u xm t d 子系统的工作原理,学习其中n a n df l a s h 驱动的编写 方法,特别是b l o c k 接口层的编写方法; 4 分层设计实际的n a n df l a s h 存储系统驱动,并编码实现; 5 根据实际系统设计测试用例,编写测试脚本,测试完成的n a n df l a s h - 2 - - ,- 产 北京邮电大学硕士研究生学位论文 存储系统的实际性能; 6 针对测试结果,进行分析,对相应部分进行优化改进,再次进行测试, 验证优化改进的效果。 1 3 论文组织结构 第一章为绪论,主要介绍了嵌入式系统当的背景及发展现状,论文所描述的 嵌入式n a n df l a s h 存储系统开发课题的项目背景、该课题的选题意义以及课题 主要的内容和完成的主要工作。 第二章主要介绍主流的f l a s h 技术和f l a s h 存储设备,对最主流的n o rf l a s h 和n a n df l a s h 进行了对比,并着重介绍了n a n df l a s h 的使用,最后介绍了我 们设计中采用的n a n df l a s h 芯片。 第三章介绍了嵌入式l i n u x 存储系统,l i n u x 块设备驱动的实现,以及常见 的集中文件系统。 第四章是全文的重点,分层具体详细的介绍了这次课题的n a n df l a s h 存储! 系统的设计与实现方法,并重点介绍了对于块接口层的改写、缓存算法的改进、 对地址映射表存放策略的优化以及一种我们使用的负载均衡算法。 第五章,总结了目前我们完成的工作和论文的主要内容,并对未来的方向进 行了展望。 3 北京邮电大学硕士研究生学位论文 第二章f ia s h 存储设备介绍 2 1fla s h 存储器 北京邮电大学硕十研究生学位论文 2 1 2f i a s h 存储器技术分类 n o r 技术 n o r 技术( 亦称为l i n e a r 技术) 闪存存储器是最早出现的闪速存储器,目 前仍是多数供应商支持的技术架构。它源于传统的e p r o m 器件,与其它f l a s h 技术相比,具有可靠性高、随机读取速度快的优势,在擦除和编程操作较少而直 接执行代码的场合,尤其是纯代码存储的应用中广泛使用,所以基于n o r 技术 的f l a s h 也称为代码f l a s h 存储器( c o d eh a s h ) ,如p c 的b i o s 固件、移动电话、 硬盘驱动器的控制存储器等,我们的移动上网设备的固件也使用n o rf l a s h 进行 存储。n o rf l a s h 的特点是:程序和数据可存放在同一芯片上,拥有独立的数据 总线和地址总线,能快速随机读取,允许系统直接从f l a s h 中读取代码执行【3 】, 而无需先将代码下载至r a m 中再执行;可以单字节或单字编程,在对存储器进 行重新编程之前,需要对块或整片进行预编程和擦除操作。由于n o r 技术f l a s h 擦除的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时 间很长,在纯数据存储和文件存储的应用中,n o r 技术显得力不从心。不过,i 仍有支持者在以写入为主的应用,如c o m p a c t f l a s h 卡中继续看好这种技术。 i n t e l 公司的s t r a t a f l a s h 家族中的成员卅8 f 1 2 8 j 3 ,容量为1 6 m b 。该芯片 采用0 2 5 i n n 制造工艺,同时采用了支持高存储容量和低成本的m l c 技术。所 谓m l c ( m u l t i p l el e v e lc e l l ) 技术是指通过向多晶硅浮栅极充电至不同的电平 来对应不同的阈电压,代表不同的数据,在每个存储单元中设有4 个阈电压 ( 0 0 0 1 1 0 1 1 ) ,因此可以存储2 比特信息;而传统s l c 技术中,每个存储单元只 有2 个阈电压( 0 1 ) ,只能存储1 比特信息。m l c 与s l c 相比,寿命更短,数 据准确性更低,存储性能和功耗也更差,但在相同的空间中可以提供双倍的存储 容量,是实现大规模存储的一种经济型方式。 d i n o r 技术 d i n o r ( d i v i d e db i t - l i n en o r ) 技术是m i t s u b i s h i 与h i t a c h i 公司发展的专 利技术,从一定程度上改善了n o r 技术在写性能上的不足。d i n o r 技术按字节 随机编程的速度略低于n o r ,而块擦除速度快于n o r ,这是因为n o r 技术f l a s h 编程时,存储单元内部电荷向晶体管阵列的浮栅极移动,电荷聚集,从而使电位 从1 变为0 ;擦除时,将浮栅极上聚集的电荷移开,使电位从0 变为l 。而d 1 n o r 技术f l a s h 在编程和擦除操作时电荷移动方向与前者相反。d i n o r 技术f l a s h 在 执行擦除操作时无需对页进行预编程,且编程操作所需电压低于擦除操作所需电 压,这与n o r 技术相反。 m i t s u b i s h i 公司推出的d i n o r 技术器件m 5 m 2 9 g b 厂r 3 2 0 ,采用 5 一 北京邮电大学硕士研究生学位论文 m i t s u b i s h i 和h i t a c h i 的专利技术,将闪速存储器分为四个存储区,在向其中任何 北京邮电大学硕士研究生学位论文 优势。 a n d 技术 a n d 技术是h i t a c h i 公司的专利技术,h i t a c h i 和m i t s u b i s h i 共同支持a n d 技术的f l a s h 存储器。a n d 技术与n a n d 一样采用“大多数完好的存储器概 念,且不像其他采用m l c 技术那样写入性能严重下降,芯片尺寸小,引脚少, 存储容量大,位成本低【l 。 h i t a c h i 和m i t s u b i s h i 公司采用0 18 b i n 的制造工艺,并结合m l c 技术,生 产出芯片尺寸更小、存储容量更大、功耗更低的5 1 2 m b - a n df l a s hm e m o r y ,再 利用双密度封装技术d d p ( d o u b l ed e n s i t yp a c k a g et e c h n o l o g y ) ,将2 片5 1 2 m b 芯片叠加在1 片t s o p 4 8 的封装内,形成一片1 g b 芯片。h n 2 9 v 5 1 2 1 1 t 具有突 出的低功耗特性,读电流为2 m a ,待机电流仅为l 衅,同时由于其内部存在与 块大小一致的内部r a m 缓冲区,使得a n d 技术不像其他采用m l c 的闪速存 储器技术那样写入性能严重下降。 2 1 3n o r 技术与n a n d 技术比较 在之前一节介绍的所有f l a s h 技术中,n o r 技术和n a n d 技术是市场上两 大最主流的f l a s h 技术,下面对两者性能结构等特性做一定的比较,表2 - l 对两 种f l a s h 技术进行了简单的对比。 表2 - 1n o rf l a s h 与n a n df l a s h 对比表 臀”j ”一”? 口”? ”7 “一t”, ? 7 撕嚣牛渺糕 锄。“z z 磁二办。,& ,施廓。磐罐矗 i n o rf l a s h # a 一箍僦勉二一“胧旃 舭0 4 钇旗t “m h 女锄 档纽1 学缸|一? t “ 拖,幽。 容量较小很大 片上执行指令 可以不可以 性能很慢的擦除性能( 5 秒)较快的擦写性能( 3 毫秒) 较慢的写性能较快的写性能 较快的读性能 较快的读性能 可靠性更可靠较不可靠 比特反转出现的概率不足比特反转较常见,需要 n a n df l a s h 的1 0 e d c e c c 来克服比特反 转现象 需要坏块管理 擦除寿命 1 0 0 ,0 0 01 ,0 0 0 ,0 0 0 接口独立的地址和数据接口 只有复用的1 1 0 接口 用途代码存储器数据存储器 价格 同 低 i 读写性能 7 一 北京邮电大学硕士研究生学位论文 n a n df l a s h 以页为单位进行写入操作,每次写入至少一个页面;n o rf l a s h 可以按字节写入。n o rf l a s h 执行一个写入擦除操作的时间为5 s ,与此相对, n a n df l a s h 执行相同的操作一般只需要3 m s 。此外,n o rf l a s h 的读速度比 n a n df l a s h 稍快一些,n a n df l a s h 的写入速度比n o rf l a s h 快很多。 2 随机存取 n o rf l a s h 有独立的数据总线和地址总线,拥有足够多的地址引脚用来寻 址,可以实现内部存储空间中每一个字节的存取,随机存取性能比较强,其读写 机制与内存较为的相似;n a n df l a s h 只有控制引脚和8 位复用的i o 引脚来存 取数据,而且各个产品或厂商的存取方法也各不相同,n a n df l a s h 不同厂商之 间的存取方法有着不小的差异,也给开发人员和系统集成人员带来了很大的麻 烦,当前也有很多组织在进行标准化的工作,目前规模比较大的是i n t e l 组织的 o n f i ( o p o nn a n df l a s hi n t e r f a c e ) 组织。由于只有8 个复用的i o 引脚,需要分 时的传送命令、地址和数据信息,不能像n o rf l a s h 那样同时进行,所以随机存 取能力比较差,但还是强于传统的磁盘存储器,因为n a n df l a s h 没有磁头寻找 磁道的过程。 3 容量和成本 n a n df l a s h 的最小单元的尺寸几乎是n o rf l a s h 的一半,由于生产过程更 为简单,n a n df l a s h 结构可以在给定的模具尺寸内提供更高的容量,也就是相 应地降低了同等容量大小的价格。n o rf l a s h 占据了大部分较低容量的闪存市 场,而n a n df l a s h 则广泛应用于更大容量存储、海量的产品当中,比如固态硬 盘等,这也说明了n o rf l a s h 主要应用在代码存储介质中,n a n df l a s h 适合于 大规模数据信息的存储。 4 使用寿命 n a n df l a s h 每个块的典型最大擦写次数是一百万次,而n o rf l a s h 的典型 最大擦写次数是十万次。相对n o rf l a s h ,n a n df l a s h 除了具有l o 比l 的块擦 除周期优势外,典型的n a n df l a s h 块尺寸要比n o rf l a s h 小8 倍,因此,每个 n a n df l a s h 块在给定的时间给定容量内的平均擦除次数比n o rf l a s h 的单块擦 除次数要少一些。 5 坏块 由于n a n df l a s h 的工程制造原因,n a n df l a s h 存储器一般在出厂时都会 有随机分布的坏块,而n o rf l a s h 则没有这种情况。在n a n df l a s h 的生产过程 消除这些坏块,成品率太低,代价太高,额外增加了f l a s h 本身的成本,所以是 十分不合适的。现在对于坏块的处理,通常是在使用n a n df l a s h 前,n a n df l a s h 出厂的时候,进行初始化扫描以发现坏块,并将坏块作上不能使用的标记。一般 - 8 北京邮电大学硕士研究生学位论文 厂家在n a n df l a s h 出厂的时候都会对出厂坏块进行标记,我们在使用n a n d f l a s h 的时候也必须先扫描所有的块,识别出所有的出厂坏块,如果不进行这项 处理,文件可能被存储在坏块的区域,导致很高的故障发生率。同时在平常使用 的过程中,也要做好坏块管理的工作。 6 单比特反转 单比特反转是指在某些情况下,存储的数据的某一个比特位会发生反转或被 报告反转了。如果只是报告有问题,重复读操作可以解决反转的问题;如果某个 位真的改变了,由0 变成1 或者由1 变成0 ,就必须采用错误探测错误更正 ( e o c m c c ) 技术来进行修复纠正。单比特反转发生的频率很小,相比而言,n a n d h a s h 比n o rh a s h 发生的频率要高。一般来说,位反转对于用f l a s h 器件存储 普通的数据信息来说并不是致命的,但如果用来存储操作系统、配置文件或其他 敏感重要的信息时,一个小的错误都可能导致系统的崩溃。所以我们在实际使用 n a n df l a s h 的过程中,通常都使用e c c 来克服单比特反转的问题。 通过以上对n a n df l a s h 与n o rf l a s h 进行的详细比较,我们不难发现,n o r f l 础存储器容量较小,由于拥有独立的地址线接口和数据线接口,可以片上执 行指令,一般用于存放直接执行的代码,其存储数据显得代价太高;n a n df l a s h 更适合作为更大容量的存储器件,存储大规模的用户数据信息数据。我们的存储 系统是针对移动上网设备所设计的,用户更多需要存储的是用户数据信息,比如 音频、视频、文本、应用程序等,所以本文选择n a n df l a s h 存储器作为嵌入式 存储系统的主要研究对象。 2 2n a n dfla s h 的使用 2 2 1 使用条件和要求 综合n a n df l 础以上的特点可以看出在其使用过程中系统必须考虑如何满 足如下的条件和要求。 合理的数据更新方式,由于n a n df l a s h 不能重复写入,所以不能像传统的 磁盘存储器一样原地更新,更新f l a s h 中的数据,必须先擦除原有的数据,但是 擦除操作所耗费的时间又是n a n df l a s h 所有操作中功耗最大、耗时最长的,所 以必须选择合适的更新方式。 磨损均衡( w e a rl e v e l i n g ,w l ) ,由于n a n df l a s h 单块擦写次数有限,上一 节中已经提到,典型的擦除寿命为单块百万次,为避免某一块或部分块在其他块 之前过早地达到擦除次数上限成为坏块不能使用,在存储数据时必须保证擦除次 数在整个f 1 a s h 块之中尽可能地均匀分布,从而延长整个f l a s h 的有效使用寿命。 9 - 北京邮电大学硕士研究生学位论文 坏块管n ( b a db l o c km a n a g e m e n t ,b b m ) ,由于n a n df l a s h 中坏块的出现 是不可避免的,为了正确使用n a n df l a s h ,就需要进行坏块管理,坏块管理的 基本思想是:发现坏块并做上标记,避免在操作中使用坏块,同时在读写操作时 跳过坏块而使得上层操作和用户看来f l a s h 存储区仍然是连续的,使坏块对上层 的应用不造成任何影响。 掉电恢复,突然断电对嵌入式设备来说很常见,所以嵌入式n a n d 存储系 统必须拥有掉电恢复能力,在系统掉电情况下可以尽可能地恢复到原来的正常状 态,确保数据的完整性和正确性。 如果系统使用n a n dm l c 型闪存,系统须保证对于同一块的写操作满足 m l c 顺序写要求。同时由于m l c 单块如果读操作次数太多,有可能造成数据异 常不可靠,所以针对m l c 必须进行读操作管理,如果对单块进行了过多的读操 作,必须采取相应的措施来避免数据异常。 2 2 2 设计中所采用的n a n f l a s h 芯片介绍 我们的设计中所采用的n a n df l a s h 芯片为m i c r o n 公司型号为 2 9 f 3 2 g 0 8 q a a 的芯片,它的容量为3 2 g b i t ( 4 g b y t e ) ,共有8 1 9 2 个块( b l o c k ) , 每个块拥有1 2 8 个页( p a g e ) ,每页的数据区( d a t a a r e a ) 大小为4 0 9 6 字节,空 闲区( s p a r e a r e a ) 区大小为2 1 8 字节,它的逻辑存储结构如图2 1 所示: 每个p h 有 4 0 9 6 块 总的设备有 8 1 9 2 块 偶数块p l a a e ( 0 ,2 4 ,8 1 8 s ,8 1 9 0 ) 奇数块p l a n e l 35 ,8 t 8 9 , 8 1 9 d 图2 - in a n df l a s h 逻辑存储结构图 1 0 i 阳弘= ( 4 r4 - 2 1 8 ) b 炯 lb l o c k r 4 k + 2 1 8 ) b y t e s 1 2 8l g e s = ( 5 1 2 k4 - 2 6 k ) b y 僻 1p l a n e = ( 5 1 2 k4 - 2 6 k ) b y 珏 4 0 9 6b l o c k s = 2 g b y t e s id e v i c e = ,2 gb y t e s ) + 2 p l a n e s = 4 g b 帅= 3 2 g b i t s 北京邮电大学硕士研究生学位论文 它的引脚分布图如图2 - 2 所示: 图2 - 2n a n df l a s h 引脚图 共有4 8 个引脚,各引脚的功能与作用如下: i 0 0 - i 0 7 ( d a r a 烈p u t s o u t p u t s ) :数据输入输出引脚,前面已经介绍 过,n a n df l a s h 不同于n o rf l a s h ,没有单独的地址线和数据线,只有高度复用 的输入输出引脚,这8 个输入输出引脚,可以用来进行命令、地址、数据的输入 输出。 c l e ( c o m m a n dl a t c he n a b l e ) :命令使能,这个引脚为高电平状态 时,代表输入输出引脚上的数据信息为命令数据信息。 a l e ( a d d r e s sl a t c he n a b l e ) :地址使能引脚,这个引脚为高电平状 态时,代表输入输出引脚上的数据信息为地址数据信息。 c e ( c h e n a b l e ) :片选引脚,这个引脚为低电平时,代表这个芯片被 选中。 r e ( r e a de n a b l e ) :读使能引脚,该引脚为低电平时,代表数据输入输 出引脚的数据可以被读出了。 w e ( w r i t ee n a b l e ) z 写使能引脚,当这个引脚为低电平时,代表数据 输入输出引脚中的数据正在被写入。 尺b ( r e a d m u s yo u t p u t ) :状态引脚,显示当前的操作已完成还是 正在进行中,高电平代表r e a d y ,即已完成;低电平代表b u s y ,即未完成还 在进行中。 v c c ( p o w e r ) :电源引脚。 攻。( g r o u n d ) :接地引脚。 埔眦胁耋慨瞄一洲忱妇眦一眦雠耋!呦啪眦一 嬉 眦眦眦嗽删啦胁强删慨悔啦嗽眦眦孵蚋眦舢啦啦 北京邮电大学硕士研究生学位论文 n c ( n oc o n n e c t i o n ) :未连接的引脚。 一般操作n a n df l a s h 芯片分为三步,第一步为命令1 ,第二步为地址,第 三步为命令2 ,但是有的情况下会不需要命令2 ,下面结合时序图具体介绍控制 我们采用的n a n df l a s h 芯片的具体方法。 读芯片i d 操作: 厂弋 c l e 一 琵 弋 谣弋厂弋厂一 墟 r 暑 v o 嚣 i t e m t o c a 啊m 删 d 由e l t y o e m a k e r c e d e1 3 e v t g e c o o t 图2 - 3 读芯片i d 操作时序图 由图2 3 可以看出,c e 始终为低电平,代表选中此芯片工作,第一个周期, c l e 引脚为高电平,w e 为低电平,同时i o 引脚收到9 0 h 的读d 命令字;第 二个周期a l e 引脚为高电平,w e 为低电平,同时i o 引脚收到0 0 h 的地址。 两个周期结束,芯片已经收到命令和地址,知道我们希望读出芯片i d ,在接下 来的几个周期中,r e 引脚每次出现低电平,都会有对应的信息从f o 引脚送出, 我们可以读出来,这样我们就可以得到n a n df l a s h 芯片的d 信息,我们可以 从中获取厂家信息、芯片的具体信息,包括n a n df l a s h 含有多少块,每块包含 多少页,每页大小等等信息。在初始化n a n df l a s h 芯片的过程中,读芯片d 信息是必须要进行的步骤。 页读操作: 囫园柠囝囫囡医囫 图2 - 4 页读操作时序图 1 2 - 啦 一饨 一憔 :| 一腿 一髓 惭 北京邮电大学硕士研究生学位论文 由图2 4 可以看出,命令l 周期i o 引脚收到0 0 h 命令字,命令2 周期i o 引脚收到3 0 h 命令字,地址周期分为5 个单位周期,从i o 引脚读入地址,命令 i ( 0 0 h ) 和命令2 ( 3 0 h ) 联合做成了页读操作的命令字,当尺b 引脚由低电平 ( b u s y ) 跳转到高电平( r e a d y ) 状态时,代表芯片准备就绪,我们就可以 从i o 引脚上读出我们要求地址上的数据内容了。 页写操作: 难厂_ 、厂飞弦广_ 、 西_ 彪 图2 - 5 页写操作时序图 由图2 5 可以看出,命令l 周期i o 引脚收到8 0 h 命令字,命令2 周期i o 引脚收到1 0 h 命令字,地址周期为5 个单位周期,前2 个周期为列地址,后三 个周期为行地址,紧接着地址通过i o 引脚向芯片输入需要写入的数据,以命令 2 ( 1 0 h ) 为结束,接着r b 引脚会由高电平( r e 6 山l y ) 状态跳转为低电平( b u s y ) 状态,代表芯片正在完成写入数据的工作,当尺b 引脚恢复至高电平( i 也址) y ) 状态时,代表写入工作已经完成,这个时候我们需要发送7 0 h 的读状态命令, 并从i 0 0 引脚读出数据,如果i 0 0 引脚的数据为1 ,代表写入成功,如果i 0 0 引脚为0 ,则代表写入失败。 块擦除操作: 1 3 - 一睢 :| 一睢 吼 一髓 北京邮电大学硕士研究生学位论文 s 却c 饼r 时州h 删x 籼巩弘1 目船m h 獬 c a m c r 州 图2 - 6 块删除操作时序图 由图2 - 6 可以看出,命令l 周期i o 引脚收到6 0 h 命令字,命令2 周期i o 引脚收到d o h 命令字,地址周期只有三个,因为是按块为单位进行擦除,故只 读入行地址,命令2 之后,r b 引脚由高电平( r e a d y ) 状态跳转为低电平 ( b u s y ) 状态,当再次恢复高电平( r e 嗵) y ) 状态的时候,代表擦除操作完 成,与写操作相同,我们同样要发送7 0 h 命令读下状态,如果f 0 0 引脚为l 则 代表擦除成功,若为o 则代表擦除失败。 1 4 一能 一睢 雌 一旺 墩 一睢 北京邮电大学硕士研究生学位论文 第三章嵌入式l in u x 存储系统概述 存储系统在l i n u x 中是以块设备的形式实现的,所以本节主要讨论块设备。 n a n df l a s h 就是一种典型的块设备,系统中把能够随机( 不需要按顺序) 访问 固定大小数据片的设备被称作块设备,这些数据片就称作块。最常见的块设备是 硬盘,除此以外,还有软盘驱动器、c d r o m 驱动器和f l a s h 存储器等许多其他 块设备。它们都必须先安装文件系统,才能正常使用的,这也是块设备通常的访 问方式。块设备的主要特点是,c p u 和总线读写数据所花时间与磁盘或其他块 设备硬件的速度不匹配。 l i n u x 块设备由很多层组成,牵涉到内核的很多组件,其中最重要的一些如 图3 1 所示。 | i 映射层 一一,一一一一一一一一一一一一一一, 图3 - 1l i f l u x 块设备层次结构图 虚拟文件系统位于块设备处理体系结构的上层,它提供一个通用的的文件模 型,l i n u x 支持的所有文件系统均采用该模型。虚拟文件系统下面是缓存层,虚 拟文件系统会根据需求判断是对缓存操作,读写数据,还是直接往硬件上进行操 作,往往一般都是对缓存进行操作,因为内核将大多数最近对设备操作的数据都 读入了缓存中,没有必要直接访问硬件。我们假设需要访问实际的硬件,接着往 下层看。再下层是映射层,作用是确定数据的物理位置,映射层主要做两件事情: 1 5 - 北京邮电大学硕士研究生学位论文 一是确定文件所在文件系统的块大小,并根据块的大小计算所请求数据的长度; 二是映射层调用一个具体文件系统的函数,访问文件的磁盘节点,然后根据逻辑 块号确定所请求数据在磁盘的位置。通过映射层确定了长度和位置,就可以对块 设备发出操作请求了,内核利用通用块层启动v o 操作来传送所请求的数据。产 生了各种f o 操作请求以后,必须对这些请求进行调度,就是接下来一层f o 调 度程序层的作用。通过调度以后的i o 操作请求就提交给更下一层块设备驱动程 序去实际执行,直接操作硬件来完成这些f o 请求操作。这就是一个f o 操作请 求,l i n u x 存储系统响应的整个过程。 由于在块设备驱动程序层以上,现有的l i n u x 内核已经帮我们实现,所以这 次我们的设计主要集中在n a n df l a s h 存储系统驱动程序的设计,下面来重点介 绍块设备驱动程序层。 3 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毛皮柔软度智能提升-洞察及研究
- 用户行为特征分析与情感预测-洞察及研究
- 南阳一中高二年级2025年秋期第一次月考数学答案
- 舞蹈教育国际化发展-洞察及研究
- 学生酒店安全培训课件
- 疾病预后评估体系-洞察及研究
- 注册计量师一级考试题及答案
- 中级经济师考试商业专业知识与实务考试试题及答案
- 纸船承重策划
- 慢阻肺营养治疗课件
- 亚朵酒店培训
- 医院医疗服务培训
- 农田植物养护方案(3篇)
- 破产清算审计管理制度
- YY/T 1947-2025重组胶原蛋白敷料
- 洗涤厂设备管理制度
- GB/T 16603-2025锦纶牵伸丝
- 水生入侵物种防控-洞察及研究
- 游戏主题咖啡馆与餐厅行业深度调研及发展项目商业计划书
- T/CCMA 0015-2023高处作业吊篮和擦窗机检查、维护保养和安全操作规则
- 泡沫混凝土常见问题分析与对策
评论
0/150
提交评论