(计算机应用技术专业论文)嵌入式系统中闪存设备管理技术研究与实现.pdf_第1页
(计算机应用技术专业论文)嵌入式系统中闪存设备管理技术研究与实现.pdf_第2页
(计算机应用技术专业论文)嵌入式系统中闪存设备管理技术研究与实现.pdf_第3页
(计算机应用技术专业论文)嵌入式系统中闪存设备管理技术研究与实现.pdf_第4页
(计算机应用技术专业论文)嵌入式系统中闪存设备管理技术研究与实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式系统中闪存设备管理技术研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士学位论文 摘要 随着嵌入式系统领域不断增长的应用需求嵌入式系统的复杂性e 益提高。 闪存设备作为嵌入式系统中最常见的非易失数据存储器,其管理和访问技术对整 个系统的性能和可移植性都有较大的影响。在嵌入式系统中,闪存设备的管理技 术通过闪存设备i o 软件来实现,目前常见嵌入式系统采用的闪存管理实现技术 在可移植性、易用性上都存在不足。因此,如何设计一种统一、高效且可移植性 强的闪存管理技术实现方案成为了嵌入式应用领域的迫切需要。 本文首先从理论上分析了嵌入式系统中闪存设备i o 软件设计思想及基本原 则。在对操作系统软件设计中镱略与机制分离原则的应用分析基础上,提出了闪 存设备管理技术分层实现的软件体系结构,从而将闪存i o 软件由底向上划分成 了硬件驱动层、原始设备层及设备层,并对其在用户空间和内核空间实现方案进 行了优劣比较。然后。深入剖析嵌入式l i n u xi o 设备管理机制,结合分层体系 结构设计了一种模块性、移植性更强且更易使用的闪存设备i o 软件实现方案, 对该实现方案中的关键技术问题,如阻塞型i o 、读写请求处理函数设计等进行 分析,并提出了相应的解决办法。最后,选择基于p o w e r p c 9 6 0 t 开发板的嵌入式 l i n u x 为日标系统平台,对闪存设备i o 软件设计方案进行了具体开发和实现。 i o 软件可移植性的高低可以从设备无关及相关代码的比例进行衡量,在本 实现方案中,设备相关代码仅占代码总量的2 4 1 ,说明该方案具有较好的可移 植性。对实现方案的数据吞吐率及文件操作时间代价等典型性能指标进行了测试。 结果表明:本文提出的设计实现方案不仅能够为应用程序提供统一、易用的闪存 使用接口,同时还具有较强的模块性,易于在不同类型闪存芯片上进行移植。 关键词:嵌入式系统;闪存设备管理:1 1 0 软件:策略与机制分离:l i n u x 嵌入式系统中闪存设备管理技术研究与实现 a b s t r a c t w i t ht h e c o n s t a n t l yg r o w i n gr e q u i r e m e n t s o fa p p l i c a t i o n s ,e m b e d d e d s y s t e m b e c o m e sm o r ea n dm o r ec o m p l i c a t e d f l a s hm e m o r yi st h em o s tc o m m o nn o n v o l a t i l e m e m o r y u s e di ne m b e d d e d s y s t e m ,s ot h em a n a g e m e n t a n da c c e s st e c h n o l o g yo ff l a s h m e m o r yh a v eg r e a te f f e c t so np e r f o r m a n c ea n dp o r t a b i l i t yo f t h ew h o l es y s t e m t h e m a n a g e m e n tt e c h n o l o g yo f f l a s hm e m o r yd e v i c ei ne m b e d d e ds y s t e mi si m p l e m e n t e d t h r o u g h f l a s hi os o f t w a r e a t p r e s e n t ,m o s t f l a s hm a n a g e m e n tt e c h n o l o g i e sa r e i n s u f f i c i e n ti n p o r t a b i l i t ya n df l e x i b i l i t y s o i ti si m p o r t a n tf o re m b e d d e ds y s t e m a p p l i c a t i o n st od e v e l o pas c h e m eo ff l a s hm a n a g e m e n t ,w h i c hi se a s yt ob ep o r t e d , h a sh i g he f f i c i e n c ya n dau n i f i e da c c e s si n t e r f a c e f i r s t l y , t h ep a p e rs t u d i e st h e1 1 0s o f t w a r ed e s i g ni d e a sa n dp r i n c i p l e so ff l a s h m e m o r y d e v i c ei ne m b e d d e ds y s t e mt h e o r e t i c a l l y b a s e do na n a l y s i so ft h ep r i n c i p l e o f p o l i c ya n dm e c h a n i s ms e p a r a t i o nw h i c hi sw i d l yu s e di no p e r a t i n gs y s t e ms o f t w a r e d e s i g n ,t h ep a p e rp r o p o s e sal a y e r e ds o f t w a r ea r c h i t e c t u r eo ff l a s hm e m o r yd e v i c e m a n a g e m e n tt e c h n o l o g y , w h i c hd i v i d et h ef l a s h i 0s o f t w a r ei n t oh a r d w a r ed r i v e r l a y e r , r a wd e v i c el a y e r ,a n dd e v i c el a y e r a l s ot h ep a p e rc o m p a r e st h eu s e rs p a c e s c h e m ew i t hk e r n e ls p a c es c h e m eo ff l a s hm e m o r yd e v i c ei os o f t w a r e s e c o n d l y , t h e p a p e rs t u d i e st h ei od e v i c em a n a g e m e n tm e c h a n i s mi ne m b e d d e dl i n u x ,p r e s e n t sa f l a s hm a n a g e m e n ti m p l e m e n t a t i o ns c h e m e ,w h i c hh a sh i g hm o d u l a r i t y , p o r t a b i l i t y a n df l e x i b i l i t y t h e nt h ep a p e ra n a l y z e st h ek e yt e c h n i c a lp r o b l e m si nt h i ss c h e m e a n d p r e s e n t st h ec o r r e s p o n d i n gm e t h o d s ,s u c ha sb l o c k e di o ,r e a da n dw r i t er e q u e s t f u n c t i o nd e s i g n ,a n ds oo n f i n a l l y ,t h ep a p e rc h o o s e se m b e d d e dl i n u xb a s e do na p o w e r p c 8 6 0 tb o a r da st h et a r g e ts y s t e mp l a t f o r ma n di m p l e m e n t st h ei os o f t w a r e s c h e m eo ft h ef l a s hm e m o r yd e v i c em e n t i o n e da b e v eo ni t t h e p o r t a b i l i t y o fi os o f t w a r ec a nb ee v a l u a t e d b yp r o p o r t i o n o fd e v i c e d e p e n d e n ta n di n d e p e n d e n tc o d es i z ei nt h ei m p l e m e t a t i o n s ot h ep a p e ri sp r o v e dt o h a v e g o o dp o r t a b i l i t yb e c a u s et h ep r o p o r t i o no f d e v i c ed e p e n d e n t c o d ei s2 4 ,1 a l s o t h ep a p e rt e s t st h et y p i c a lp e r f o r m a n c eo ft h es c h e m e ,a sf i l eo p e r a t i o nc o s ta n dd a t a t h r o u g h p u t t h et e s tr e s u l t ss h o w st h a tt h es c h e m ea b o v en o to n l yc a np r o v i d et h e a p p l i c a t i o np r o g r a mw i t hau n i f i e da c c e s si n t e r f a c ew h i c h i se a s yt ob eu s e d ,b u ta l s o h a v e h i g hm o d u l a r i t yw h i c hm a k e t h es c h e m ee a s yt ob ep o r t e dt oo t h e rf l a s hc h i p so f d i f f e r e n tt y p e s i i k e yw o r d s :e m b e d d e ds y s t e m ;f l a s hm e m o r yd e v i c em a n a g e m e n t ;i 0s o f t w a r e p o l i c ya n dm e c h a n i s ms e p a r a t i o n ;l i n u x i i i 湖南大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取 得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其 他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果 由本人承担。 作者签名:? 另翔;i日期:争年弓月矽日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位 论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密团。 ( 请在以上相应方框内打“”) 作者签名:f 鸟稠 导师签名:乞勿赶 占乒 。 e l 期:弘陪年年弓月矽日 日期:御印年弓月刀日 硕士学位论文 第1 章绪论 1 1 课题来源 本课题受到湖南省科学技术厅制造业信息化示范工程项目( h n m i e a 一0 2 6 ) 资 助。 1 2 研究意义和目标 1 2 1 嵌入式系统发展趋势对闪存设备管理技术的影响 从7 0 年代初出现第一个微处理器开始,嵌入式系统的发展已经有二十几年的 历史了【】。目前,嵌入式系统已广泛地应用于计算机网络、通信系统、消费电子 产品,军事设施、医疗设备等领域,并与人们的日常生活紧密联系在一起。 一般认为,嵌入式系统是相对于通用计算系统而言的。嵌入式系统是以应用 为中心,咀计算机技术为基础,软件硬件可裁减,符合应用系统对功能、可靠性、 成本、体积、功耗的严格要求的专用计算机系统f 2 1 】。 嵌入式操作系统是随着嵌入式系统的发展而出现的,它的出现大大地提高了 嵌入式系统开发的效率,避免了早期嵌入式软件设计需要针对具体应用从头做起 的历史,同时还极大地减少了系统开发的工作量,增强了嵌入式系统应用软件的 可移植性。嵌入式系统通常是在一个目标硬件平台上运行某种嵌入式操作系统, 如v x w o r k s 、p s o s 、l i n u x 等,并在操作系统平台之上开发应用程序。嵌入式系 统受硬件条件所限一般不具有磁盘这样的存储设备,因此,闪存器件就成为了嵌 入式系统中最理想的非易失数据存储器。 近年来,嵌入式处理器呈现指数曲线增长,而且从早期的8 位到现在的1 6 位、 3 2 位甚至6 4 位r i s c 芯片或信号处理器d s p ,嵌入式系统的硬件性能一直在不 断地提高。随着应用领域的不断扩展,嵌入式系统呈现出以下几方面的发展趋势: 第一,强大的嵌入式操作系统支持。随着应用需求的不断增长,嵌入式操作 系统的功能不断丰富,复杂性日益提高。尽管嵌入式系统要求小巧、精简,但为 了满足应用领域的需求,嵌入式操作系统的代码尺寸正在不断的增大。 第二,缩短产品开发周期。封闭开发的方式会导致开发效率低下,软件可移 植性和可重用性极差,虽然大部分嵌入式系统的设备接口和应用需求都有诸多相 似之处,开发人员也不得不从头为设备编写驱动控制软件,从而增加了系统开发 的成本,并使系统可靠性、可移植性降低。 第三,提供精巧的多媒体人机界面。随着手持移动设备的不断发展,人们逐 嵌入式系统巾c j ;= | 存设符管理技术研究与实现 渐要求嵌入式系统能够提供g u i 化的操作界面,以及图像、视频处理能力。为此, 嵌入式系统必须具备更大的存储空问、更高效的数据存取机制,为开发人员提供 统一、方便的系统开发架构。 第五,嵌入文件系统和嵌入式数据库的应用。随着系统复杂性的增加、存储 器容量的扩人,嵌入文件系统成为了一种必然趋势。嵌入式文件系统和嵌入式数 据库客观上要求操作系统提供一种方便、高效、统一的存储器管理访问技术,从 而借助它实现对底层存储设各的管理和访问。 综上所述,由于不断发展扩大的应用需求和其它支撑技术的发展,嵌入式系 统的复杂性日益提高。为了缩短产品开发周期,嵌入式系统设备管理软件代码需 要具有更好的可移植性;而随着g u i 图形界面、嵌入式文件系统及嵌入式数据库 的出现,如何管理更大容量闪存器件、如何为系统提供一种统一、高效的数据存 储设备访问技术成为了目前应用领域亟待研究的一个课题。 1 2 2 闪存设备在嵌入式系统中的应用现状分析 与台式机不同,嵌入式系统一般不使用硬盘,所以各种r o m 、c o m p a c t f l a s h 、 d i s k o n c h i p 等非易失存储设备在嵌入式系统中有相当重要的地位,是嵌入式系统 中用来存储代码、数据的存储设备。 闪存是一种可读写的存储器,当掉电时,其中的信息不会丢失。随着闪速存 储器容量、存储密度的提高及价格的不断降低,各种闪存设备逐渐成为了嵌入式 系统中最主要的存储设备。 n o r 型闪存芯片是一种可靠的技术,主要用于代码的存储【5 】。n o rf l a s h 带有 s r a m 接口,有足够的地址引脚来对内部每个字节进行寻址,因此n o r 支持芯 片内执行( x i p , e x e c u t e i np l a c e ) ,这样应用程序就可以直接在闪存中直接运行, 而不必再把代码读到系统r a m 中。n o r 在1 4 m 的小容量时具有很高的成本优 势,但较低的写入和擦除速度大大影响了它的性能。n a n d 的接口更像一个i o 设备,它的存储单元比n o r 设备的要小4 0 ,因此在同样大小的设备上有更大 的存储量。n a n d 设备不是按字节进行编址,其内部的单元像链一样串行排列, 一般为5 1 2 字节,这些链可进一步排列成可擦写的块。n o r 和n a n d 闪存的比 较如表1 1 所示。d i s k o n c h i p 本质上使用的是n a n d 闪存技术,但是它将控制 器与存储器封装在同一块芯片上,因此更易于安装使用。d i s k o n c h i p 单片容量从 2 m b 1 2 m b ,最大可达7 2 m b ,由于出场时已经装有m s y s t e m 公司的闪存文 件系统( t r u e f f s ) 软件,因而d i s k o n c h i p 使用起来非常简单,其读写方式与硬盘 完全相同。 从总体发展趋势上看,由于嵌入式系统复杂性的不断提高及大容量存储器的 出现如何方便、高效的管理存储设备成为了嵌入式系统开发的一个重要问题; 硕士学位论文 表11n o r 和n a n d 型闪存比较 器件特性n o r 型闪存n a n d 型闪存 接口地址,数据总线 i ,o 端口 擦除块大小大 小 每比特价格低尚 读速度快慢 写速度慢 很- 陕 单字节编程速度快慢 擦除速度慢快 支持x i p ( 芯片内执行)是 否 每擦除块寿命( 次数)十万一百万 而u 益丰富的各种嵌入式应用,尤其是移动多媒体技术】贝0 对数据存储、访问 技术提出了更高的要求。作为嵌入式操作系统的主要组成部分,存储子系统的性 能直接决定了系统整体性能的高低,而系统的其它组件及各种应用更要求系统能 够提供一种统一、通用的存储器控制及访问机制。目前n o rf l a s h 占据了容量为 1 16 m b 闪存市场的主要份额,而在综合考虑成本、内核及应用代码尺寸等因素 的基础上,大部分嵌入式系统都是使用了n o r 型闪存作为系统的主要存储设备。 冈此,对闪存设备的管理及访问技术研究成为了嵌入式系统中一个十分重要的课 题。它不仅在嵌入式系统i l o 管理与访问机制上有一定学术研究意义,而且对嵌 入式系统设计开发有着重要的应用指导价值。 1 2 3 研究目标 嵌入式系统应用日益丰富,而系统的硬件和软件复杂性也不断提高。闪存作 为嵌入式系统中代码和数据主要存储设备,其管理和访问技术不仅担负着为系统 其它组件和应用程序提供闪存访问接1 3 的重要作用,而且对嵌入式系统的整体性 能有很大的影响,本文的主要研究目标是:结合操作系统设计研究中的基本设计 原则,对典型嵌入式操作系统的体系结构特点和工作机制进行分析;比较嵌入式 操作系统中i o 软件设计实现方案的优劣,基于对目前闪存设备的管理和访问技 术分析,探讨了一种更加统一、高效且移植性更强的闪存管理和访问设计方案: 最后以嵌入式l i n u x 为日标操作系统在p o w e r p c 8 6 0 开发板上迸行具体实现。尽 管实时性也是嵌入式系统中非常重要的研究问题,但本文并不包括对它的研究。 1 3 研究背景 1 3 1 嵌入式系统中1 1 0 管理机制 在嵌入式操作系统出现之前,嵌入式系统主要用于控制领域,典型的嵌入式 系统由微控制器、r a m 、r o m 和i t 0 部件构成【”。由于采用处理鼹力低的4 位或 嵌入式系统中闪存设备管理技术研究与寅现 8 位微控制器,并受限于r a m 和r o m 的大小,系统通常仪由一些简单的控制程 序来协助硬件完成特定功能。系统的i o 部件直接或通过总线与微控制器相连, 憋个系统由一个主程序控制负责运行。r o m 主要是用来存储控制程序和参数数 据,由丁没有操作系统存在,开发人员基本上可以不受任何限制地通过端口直接 访问i o 部件,对r o m 的使用就如同r a m 一样方便。这种i o 管理和访问机制 对应用程序开发来说,优点是使用方便、灵活、效率高,而缺点是需要开发人员 直接控制、管理i o 设备,这不但会增加开发难度,而且还会导致代码复用性和 可移植性降低。 v x w o r k s 是美国w i n d r i v e rs y s t e m 公司开发的嵌入式操作系统,由于其高度 模块化,因此具有很强的灵活性和适应性,能够根据应用需求的不同方便地对操 作系统进行裁剪。v x w o r k s 有两种设备管理访问方式,第一种方式与前述的早期 嵌入式系统i o 访问机制有些相似,它没有对设备进行抽象统一,而是提供给用 户直接访问i o 端口和i o 内存的能力。这使得开发人员能更加灵活、高效地使 用i o 设备,但同时提高了开发难度并降低了程序的可移植性。第二方式为用户 提供了一个统一的虚拟设备层,它将各种i o 设备抽象成文件形式,这样可以方 便开发使用,并提高了程序的可移植性。此外,由于v x w o r k s 内核结构和内存管 理的特殊性,其i o 操作实现了零拷贝,数据可以直接从用户数据缓冲区拷贝到 设备内存中,从而提高了系统i o 性能。 l i n u x 是最近几年发展最快的操作系统,其特点是开放源代码、模块性强,支 持丰富的通信协议并具备出色的网络处理能力。l i n u x 在i o 管理机制上延用了 u n i x 的设备管理机制【8 ,】,它把设备划分为字符设备和块设备两种,并将其抽象 为设备文件以方便应用开发。 l i n u x 的这种i o 管理机制与v x w o r k s 的第二种方式非常相似,应用程序借助 标准的文件访问例程对设备文件进行操作,然后由i o 软件调用其体的设备驱动 程序例程实现物理设备的控制与访问。l i n u x 的大部分设备驱动程序是在内核空 间 ” 中实现的,由于运行在内核态,因此驱动程序可以方便地使用中断、访问i o 端口和i o 内存,并能够利用内核提供的数据结构和例程。这种方式的缺点是不 够灵活,应用程序不能充分利用设备各自的特点,此外,在从用户空间到设备内 存拷贝数据时,必须要经过一次内核空间的数据缓冲 9 , l o l ,这样就势必会降低数 据传输的效率。与此相对应的是用户空间驱动程序实现,这种机制的主要思想是 通过操作系统提供的某些机制,将中断、i o 端口和i o 内存等资源映射到用户空 间,并在用户空间编写设备驱动程序,使数据可以直接在用户数据缓冲区和设备 内存之问流动,进而提高了i o 性能【1 1 】,但这种方式需要操作系统支持,并且在 驱动程序被换出内存时,会大大降低i o 响应时问。 4 硕士学位论文 1 3 2 嵌入式系统中闪存设备存储管理技术 闪存设备具有特殊的存取特性。任何闪存器件的写入操作只能在空或已擦除 的单元内进行,所以在大多数情况下,在进行写入操作之前必须先执行擦除,因 此,对闪存器件的最基本操作包括读、写和擦除。大部分用于工控领域的嵌入式 系统仅山主程序和一些辅助功能例程构成,系统通过串口与主机相连并提供一个 标准的控制界面。用户可以通过系统提供的闪存读写例程直接按地址对闪存迸行 访问,如常用的p p c b o o t 【12 j 引导软件。在这种方式下,闪存设备没有任何结构性, 其地址线性分布在系统地址空间中,用户可以像访问r a m 一样访问闪存设备, 唯一彳i 同的是它需要用户自己控制何时擦除闪存的某个块。这是最原始的闪存管 理方式,它的优点是访问效率高、控制灵活;缺点是应用程序必须了解闪存的物 理特性,如尺寸、擦除块区域和大小、地址、操作时间等,从而增加了开发难度 并降低了代码的可移植性。此外,由于存储器的无结构性,应用程序还需要自己 管理存储空间,并按需要构造数据存储格式m i 。 r a m d i s k t ”是l i n u x 中经常使用的一种技术,它占用内存中一块空间,并将其 虚拟成一个硬盘分区式的设备。在嵌入式系统中,这种技术可以为系统提供一个 临时的文件系统。l i n u x 的文件系统是可以被随时挂载或卸载的,开发人员可以 将文件系统( 如e x t 2 f s ) 制作为压缩映像并存储在闪存设备中。在内核启动时, l i n u x 通过r a m d i s k 技术在内存中虚拟出一个磁盘分区,然后将压缩映像释放到 该分区以建立文件系统并挂载。这样,系统在运行期间就可以使用可读写的标准 文件系统,在必要时将该文件系统再压缩为映像并保存回闪存中。在这种方式下, 系统只需要具备最基本的闪存读、写、擦除例程,而由l i n u x 决定如何对闪存进 行读写和擦除操作,应用程序面向的是虚拟磁盘设备上的文件系统,它甚至可以 不知道闪存设备的存在。显然,闪存设备在此仅用来存放文件系统映像,而真正 能够访问的文件系统是存在于内存中的。这种方式的优点是大大提高了文件系统 的速度、并间接地利用闪存和r a m 使嵌入式系统能够使用文件系统,此外,由 于减少了很多闪存擦除操作,闪存的使用寿命也得以延长【l5 i ;它的缺点是文件系 统不能充分利用闪存空间并会受系统内存大小的限制,而释放压缩也会耗费很多 时间。此外,由于不能直接在闪存上使用文件系统,修改后的数据不能立刻保存 到闪存中,因而在系统异常时容易造成数据丢失。 嵌入式l i n u x 中的另外一种闪存管理技术【5 】遵循了l i n u x 通用设备管理方法, 它实现了字符设备与块设备的访问接口,因而能够为应用程序提供一个统一、易 用的闪存使用接口。但是它没有考虑到闪存擦除块的使用寿命问题,并且其块设 备处理函数不能为底层闪存访问函数提供一个可睡眠的独立进程空间,因而不能 支持设备共享访问。对于2 4 版之后的可抢占l i n u x 内核来说,这就为应用程序 嵌入式系统巾闪存设符符理技术研究与实现 并发地使用闪存设备带来了不便。此外,该方案的设训框架没有很好地遵循策略 与机制分离的设计原则,主要体现在它没有把底层闪存硬件驱动代码与上层软件 代码相分离,从而导致整个刚存管理软件子系统的模块化程度不高。在需要将代 码移植到其它类型芯片甚至r a m 、r o m 等存储器上刚,该方案的代码改动量较 大,从而会问接地延长产品的开发周期,并可能会引入移植过程中产生的软件 b u g 。 闪存设备管理技术有很多实现方案,依据操作系统设计巾策略与机制分离原 则、i o 软件的执行效率、以及设备对应用程序易用性三方面列它们进行评价。 我们看到,在无操作系统的嵌入式系统中,闪存i o 软件只提供晟基本的读写、 擦除操作,它没有体现策略与机制分离的设计原则,而且应用程序还必须了解闪 存硬件特性,从而降低了设备的易用性及可移植性:对于l i n u x 中第一种方式一 r a m d i s k ,闪存仅起到了存取文件系统映像的作用,所以其闪存i 0 软件复杂性 从本质上说与无操作系统下情况相同;而第二种实现方式虽然能够为应片j 程序提 供了一个通一、易用的闪存使用接口,但它在软件整体架构以及底层设计实现上 的不足导致了该实现方案移植性不强,并且不能支持多进程共享访问闪存设备。 而v x w o r k s 中的设备管理技术可以使应用程序在操作系统之上以设备文件或直 接访问的方式访问闪存设备,并能够为应用程序提供一个统一而标准的访问接口, 因此是一种比较好的闪存设备管理机制。 1 4 本文主要工作 本文针对嵌入式系统中最主要的非易失数据存储器一闪存设备,围绕其管理 技术的研究与实现,从理论、技术及设计实现三个层次进行研究,主要工作如下: ( 1 ) 从理论上分析嵌入式操作系统i 0 软件设计思想及基本原则,探讨操作系统 设计中策略与机制分离原则及其在闪存管理实现技术中的应用:比较闪存设备i o 软件在用户空间和内核空间实现方案的优劣,并针对闪存有限擦写寿命的问题, 提出读写缓冲区的解决办法。 ( 2 ) 深入研究嵌入式l i n u xi o 设备管理机制,对闪存设备管理技术中的关键技 术问题进行分析并提出相应的解决办法,包括阻塞型i o 设计、竞态、操作延迟、 设备共享、接口控制及读写处理函数设计等。 ( 3 ) 在上述分析与讨论的基础上,提出一种模块性、移植性更强并更易使用的闪 存设备管理实现方案,并在p o w e r p c 8 6 0 开发板上以嵌入式l i n u x 为操作系统平 台,对设计方案进行具体开发与实现。 ( 4 ) 对实现方案的文件操作时间代价和数据吞吐率等典型性能指标进行测试,并 对实验结果进行分析;分别统计各层模块实现中设备相关及无关代码比例,以验 证实现方案的可移植性。 6 硕士学位论文 1 5 论文结构 第1 章绪论 第2 章嵌入式系统闪存设备管 理技术中的i o 软件设计 第3 章嵌入式l i n u x 设备管理 机制与闪存i o 软件的关键问题 上 第4 章闪存设备i o 软件的设 计与实现 上 第5 章系统测试f 图1 1 论文结构图 7 嵌入式系统巾闪存设备管理技术研究与实现 第2 章嵌入式系统闪存管理技术中的i o 软件设计 2 1 引言 在嵌入式系统中,闪存设备的管理技术是通过闪存i o 软件实现的。嵌入式操 作系统最大的特点之一是模块性强,针对不同的口标,殴各i o 软件可以按照不 同的原则和方案进行设计,而采用不同的设计原则和实现机制对操作系统性能有 很大的影响。策略与机制分离的设计原则能够使系统具备更强的灵活性和可移植 性。本章在分析l i n u x 内核体系结构及工作机制的基础上,首先讨论该原则在操 作系统及闪存i o 软件设计中的应用,然后对闪存设备内核用户空间i 0 软件的 实现方案进行比较,最后结合闪存设备的擦写寿命问题分析读写缓冲机制对闪存 设备的特殊作用。 2 2 嵌入式操作系统概述 2 2 1 嵌入式l i n u x 内核体系结构 m o n t a v i s t al i n u x 1 6 】( 以下简称m v l ) 是目前影响最大、支持最好的嵌入式 l i n u x 操作系统之一,它采用标准的l i n u x 内核,因而能够为应用程序提供同 r e d h a tl i n u x 相同的内核接口。l i n u x 是类u n i x 操作系统家族中的一员,和大多 数u n i x 变体操作系统类似,l i n u x 内核是单块结构m 1 的,从概念结构上看,它由 几个逻辑上不同的子系统构成,每个子系统负责实现操作系统的某些特定功能, 用户程序通过系统调用的形式使用内核提供的各种服务。图2 1 显示了l i n u x 内 核结构i l8 1 。 内核子系统 图2 1 内核功能模块图 从图2 1 可以看到,单块结构的操作系统内核功能丰富,结构复杂,它不仅包 含基本硬件的控制功能,而且还包括了操作系统所提供的各种服务,如文件系统、 进程管理等。按照完成任务的不同,l i n u x 内核可以划分为如下几部分【1 0 】:进程 管理、内存管理、文件系统、设备控制及网络功能。 硕士学位沦文 进程管理的目的是要在单个或多个c p u 上实现多个进程的管理。进程管理模 块主要负责进程的创建、撤销以及它们与输入输出源的交互。此外,进程问通信 也是进程管理功能模块的主要任务,凼此,进程管理是内核中最基本、最重要的 功能模块。 内存管理担负着管理系统主要资源之内存的使用。采用不同的内存管理 策略对于系统性能有重要的影响。借助内存管理功能,内核能够在有限的内存资 源上为每个进程创建一个专用的虚拟内存空问,从而使进程能够不受实际内存大 小的限制,并相互独立地运行在各自的虚拟地址空间中。 文件系统是类u n i x 操作系统中的一个重要的概念,l i n u x 中几乎所有的对象 都可以被视为文件,以允许用户通过标准的文件访问例程对其进行访问。与 w i n d o w s 操作系统不同,l i n u x 能够通过其特有的v f s ( 虚拟文件系统) 机制支 持多种文件系统类型。通过文件系统模块,内核可以在没有任何结构的硬件设备 上构造结构化的文件系统,从而能够为用户提供统一的访问接口。 设备控制是l i n u x 内核中变化最快的部分。操作系统的大部分操作最终都会 映射到物理设备上,而大部分外部设备在内核中都有其特定的设备管理软件,它 们负责实现相关物理设备的实际管理和访问,并对外提供服务接口。因此,设备 驱动软件的设计实现机制直接决定了用户程序使用设备的方式,并对i 0 操作的 性能有较大的影响。 网络功能模块主要负责操作系统中与网络接口相关的操作,包括为进程提供 网络数据包的发送和接收服务,此外,数据包在协议栈中的传递以及路由和地址 解析等功能也由内核网络功能模块处理。 从对l i n u x 内核体系结构的分析中我们看到,单块结构的操作系统内核不但 包括了如c p u 、内存等基本硬件资源的管理功能,而且还实现了很多操作系统特 定的服务机制,如文件系统接口、网络功能、进程调度策略等。l i n u x 除了具备商 用u n i x 操作系统的主要特点外,还具有可加载内核模块f l ”、开放源代码、广泛 的处理器支持、易于移植等优点。此外,l i n u x 的高度模块性使l i n u x 内核可以 针对特定应用、特定硬件环境进行裁减,因而特别适于嵌入式系统开发。 2 2 2 用户模式和内核模式 操作系统实际上是一个基本的程序集合,其中最重要的一部分程序被称为内 核( k e r n e l ) 。m s d o s 允许用户程序直接与硬件进行交互,与此相反,l i n u x 将 计算机低层硬件信息进行隐藏。当应用程序需要使用某种硬件资源时,它将向系 统提出一个请求,内核对这个请求的合法性和可行性进行评估,如果允许其使用, 则由内核代表用户程序同硬件进行交互并把结果返回用户程序。为了实现这种机 9 嵌入式系统中闪存设薪管理技术研究与实现 制,l i n u x 需要依靠硬件提供的特性来禁止用户程序真接与硬件进行交互,为此, c p u 引入了两种执行模式1 8 j :用户程序的非特权模式和内核的特权模式。l i n u x 把它们分别称为用户模式( u s e r m o d e ) 和山核模式( k e r n e lm o d e ) ( 也称为用户 态利内核态) ,l i n u x 内核运行在内核模式,而应用程序则运行在用户模式下。通 常,这两种执行模式也被分别称为用户空问和内核空问。这两个术语不仅说明两 种模式的优先级不同,而且还说明每种模式都有其各自的内存空间j 。 在2 2 1 小节中我们对l i n u x 内核体系结构进行了讨论,从这可以看出,l i n u x 内核在屏蔽低层硬件信息的基础上,实现了一组服务及接口,进而为应用程序提 供了个运行环境。应用程序通过使用这些接口来间接地与硬件进行交互。 当一个进程运行在用户态时,它将不能直接访问内核中的数据结构和例程。 相反,只有当进程在运行在内核态下,它才能不受限制地访问内核资源。每种c p u 模式都提供了在用户态与内核态间转换的特殊指令,个应用程序大部分时间是 运行在用户态下,而只在需要的时候( 如与硬件交互) 才转换到内核态运行,并 且在内核提供完服务之后立刻返回用户态。图2 2 说明了用户态和内核态之间的 转换过程j 。 ( 进程a )( 进程b )( 进程c ) 用 内 系统调用定时中断设备中断 图2 2 用户态与内核态转换实例图 运行在用户态的进程a 通过执行系统调用而进入内核态,并在系统调用结束 之后返回用户态;进程b 运行在用户态,壹到发生定时中断,调度程序( s c h e d u l e r ) 在内核态被激活并发生进程切换;进程c 运行在用户态,但当硬件设备发出中断 请求时,系统被切换到内核态执行中断处理程序。 2 3 策略与机制分离的设计思想 2 3 1 策略与机制 策略( p o l i c y ) 与机制( m e c h a n i s m ) 分离思想是l e v i n 在h y d r a ”“3 操作系 统设计中最早提出的。操作系统由很多基本功能构成,它们在使用系统基本硬件 资源( 如c p u ,内存,输入输出) 的基础上,为用户提供了一些虚拟功能资源( 如 文件,通信机制等) 。h y d r a 系统的一个重要的设计目标就是将操作系统的这些功 能以用户级程序的方式实现,进而使用户级程序能够对虚拟资源的使用策略进行 1 0 硕士学位论文 控制。 相刘于把使用策略深臧在内核中的方式,如果用户级程序能够定义使用策略 那么系统对应j h j 需求变化的适应性将更强。现实环境r ,一方面,应州程序可能 存在错误或对系统安全会构成威胁;另一方面,考虑到公平性,应用程序也不能 够独f 系统资源。因此,折衷的方案就是采用策略与机制分离( p o l i c y m e c h a n i s m s e p a r a t i o n ) 。策略指的是在用户空问实现的代码,它位于内核之外并与内核进行 通信;机制则是指内核空间中用来实现策略的软件代码。策略与机制联合构成了 操作系统所提供的各种服务。 上面提到的策略代码是位于用户空问的,而只有用来实现不同策略的机制代 码才位于内核空间,然而这只是策略与机制分离原则狭义的概念。在操作系统设 计中,如何区分软件中哪一部分是策略,哪一部分是机制是个相对的概念 1 ”。用 来实现一种资源( 虚拟的) 的软件代码实际上建立了该资源的使用策略,而实现 该策略的机制则可以由其它的软件代码来完成。因此,按照策略与机制分离原则 构造的系统存在着一种层次结构,任意相邻两层中,上层相对与下层被视为策略, 而下层相对于上层则被视为机制。 这种广义的策略与机制分离设计原则是u n i x 系统设计中隐藏的最好思想之 一。在系统设计中,大部分问题都可以分为两部分:“需要提供什么功能”( 机制) 和“如何使用这些功能”( 策略) 【l 。如果软件设计时,这两个部分能够分别用 程序的不同部分甚至不同软件来处理,则这个软件更容易开发也更容易根据需 求变化来调整。 2 3 2 策略与机制分离原则在操作系统设计中的体现 策略与机制分离原则对系统设计来说具有很多优点,因此,该原则在操作系 统软件设计中有着十分广泛的应用。我们将在本小节介绍几个应用实例,以此来 说明策略与机制分离原则如何指导系统软件的设计实现。 ( 1 ) h y d r a 1 9 】操作系统的设计中多处体现了策略与机制分离原则,采用该设 计原则的目的是希望建立一个完全( 或尽量) 由机制( m e c h a n i s m ) 所构成的内 核。按照上一小节中介绍的广义的策略与机制分离原则,h y d r a 中最理想的内核 将完全由那些最低层的机制( m e c h a n i s m ) 代码构成,并且这些机制已经不能够 在被其它更低层次机制来实现。实际上,这些最低层次的机制软件本身就可以被 视为是硬件资源的使用策略。文献 1 9 】中主要介绍了三种机制,分别是进程调度, 页面调度和访问保护,它们分别用于支持用户级进程调度策略,内存页面调度策 略和访问保护策略。 任何个操作系统内核都支持多种调度算法,基于对公平性、有效性及响应 时间、吞吐量等因素的考虑,调度程序可以为进程选择不同的调度算法或调度策 嵌入式系统巾闪存设备管理技术研究与实现 略。由于调度程序位于内核,凶此它无法从用户进程接收信息以决定采取何种调 度策略。h y d r a 基r 策略与机制的设计原则,将调度机制( s c h e d u l i n gm e c h a n i s m ) 和调度策略( s c h e d u l i n gp o l i c y ) 分开。调度机制位于内核并以某种形式参数化, 而用户进程可以填写参数以决定采用何种调度策略。一个主进程可能有许多子进 程在其控制之下运行每个子进程可能处理不同的请求,此时主进程完全可能掌 握哪个子进程最重要,哪个最不重要。如果采用h y d r a 中的用户级调度策略方式, 丰进程就可以根据情况为子进程选择最优的调度算法。 h y d r a 中的另 个例予是访问保护( a c c e s sp r o t e c t i o n ) ,用户进程可以决定如 何使用设备,但内核专门提供一种机制用于对用户操作请求进行检查,只有成功 通过检查的设备操作才能被能内核执行。通过这种方式,h y d r a 还实现了信息隐 藏( i n f o r m a t i o nh i d i n g ) 。 ( 2 ) 策略与机制分离的另一个例子是微内核操作系统 8 】。大部分u n i x 内核都 是单模块结构的,操作系统的大部分服务功能都被集成到了内核中,并且在内核 态下运行。相反,微内核操作系统仅仅是将系统的最基本功能( 机制) 放在一个 小核心中实现,而其它更复杂的功能( 策略) 则尽量放在核心以外,并在用户态 下执行。采用微内核结构的操作系统有v x w o r k s 、q n x 、h o p e n 等 2 3 1 。 这种微内核结构使核心只提供操作系统最基本的功能,精简了核心的大小, 增强了内核的稳定性。此外,由于大部分复杂的操作系统功能模块运行在用户空 间,因而当它们出现错误时,可以方便地将其杀死或重启,而不会影响整个内核 的运行。 ( 3 ) u n i x 中的xw i n d o w s 系统也是采用策略与机制分离设计原则的一个例 子i ”2 4 】。xw i n d o w s 系统从整体上可以分为x 服务器和窗口管理器两部分。这两 部分均运行在用户空间中,x 服务器是负责操作硬件,控制显示器和输入设备( 键 盘和鼠标) 的软件,它可以建立视窗,在视窗中画图形和文字,响应c l i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论