uClinux平台下的Flash存储技术

2024-05-12

uClinux平台下的Flash存储技术(精选3篇)

uClinux平台下的Flash存储技术 第1篇

uClinux平台下的Flash存储技术

摘要:较为详细地介绍嵌入式操作系统uClinux平台下的Flash存储技术,并给出基于三星S3C4510系统下Dlash存储器具体设计实例。

关键词:Flash存储技术 uClinux平台 S3C4510

1 Flash类型与技术特点

Flash主要分为NOR和NAND两类。下面对二者作较为详细的比较。

1.1 性能比较

Flash闪存是非易失存储器,可以对存储器单元块进行擦写和再编程。任何Flash器件进行写入操作前必须先执行擦除。NAND器件执行擦除操作十分简单;而NOR则要求在进行擦除前,先要将目标块内所有的位都写为0。擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为1~5s;擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时,块尺寸的不同近一步拉大了NOR和NADN之间的性能差距。统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。因此,当选择存储解决方案时,设计师必须权衡以下的各项因素。

*NOR的读取速度比NAND稍快一些。

*NAND的写入速度比NOR快很多。

*NAND的擦除速度远比NOR快。

*大多数写入操作需要先进行擦除操作。

*NAND的擦除单元更小,相应的擦除电路更少。

1.2 接口差别

NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内容的每一字节。

NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND的读和写操作采用512字节的块,这一点有点像硬盘管理此类操作。很自然地,基于NAND的存储器就可以取代硬盘或其它块设备。

1.3 容量和成本

NAND Flash的单元尺寸几乎是NOR器件的一半。由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

NOR Flash占据了大部分容量为1~16MB的内存市场,而NAND Flash只是用在8~128MB的产品当中。

1.4 可靠性和耐用性

采用Flash介质时,一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。

(1)寿命(耐用性)

在NAND闪存中,每个块的最大擦写次数是100万次,而NOR的擦写次数是10万次。NAND存储器除了具有10:1的块擦除周期优势外,典型的NAND块尺寸要比NOR器件小8位,每个NAND存储器块在给定时间闪的删除次数要少一些。

(2)位交换

所有Flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。

一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障就可能导致系统停机。如果只是报告有问题,多读几次就可能解决。

位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。当然,如果用本地存储设备来存储操作系统、配置文件或其它敏感信息时,必须使用EDC/ECC系统以确保可靠性。

(3)坏块处理

NAND器件中的不坏块是随机分布的。以前做过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理。将导致高故障率。

1.5 易用性

可以非常直接地使用基于NOR的闪存,像其它存储器那样连接,并可以在上面直接运行代码。由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程序,才能继续执行其它操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。

1.6 软件支持

在NOR器件上运行代码不需要任何的软件支持。在NAND器件上进行同样操作时,通常需要驱动程序,也就是闪

存技术驱动程序(MTD)。NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时,所需要的MTD要相对少一些。许多厂商都提供用于NOR器件的更高级的软件,其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Sotrware System、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿零点和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。

目前,NOR Flash的容量从几KB~64MB不等,NAND Flash存储芯片的容量从8MB~128MB,而DiskonChip可以达到1024MB。

2 系统设计

Flash在每MB的存储开销上较RAM要昂贵,但对于uClinux系统来说,选择Flash作为存储器具有一定的优势。UClinux系统在上电后,需要运行的程序代码和数据都可以存储在Flash中,甚至放在CPU起始地址中的uClinux启动内核都可以写入Flash中。从一定意义上讲,嵌入式系统只用Flash就可以完成所需的存储功能。

Flash存储器的分区较硬盘的分区更为简单,分区后的Flash使用起来更加方便。典型的Flash分区如下。

SEGMENT PURPOSE

0 Bootloader

1 factory configuration

2

┆ kernel

X

┆ root filesystem

Y

分区0放置Bootloader,分区1放置factory configuration,分区2到分区X放置系统内核,分区X到分区Y放置根文件系统。Flash的分区可以根据需要划分,uClinux中支持Flash存储器的块设备驱动负责定义上述的分区。

和PC机下的Linux不同,Flash的分区把系统内核文件和根文件系统单独划分到两个分区中,而PC机的硬盘是把内核文件和根文件系统放在一个分区内。PC机下Linux的Bootloader是LILO或GRUB。它们在系统启动时能智能地在分区中找到内核文件块,并把它加载到RAM中运行。对于Flash而言,把内核的镜像文件写进一个单独的分区对嵌入式系统有两大优点:①系统可以直接在Flash上运行;②LILO或GRUB更易找到内核代码并加载,甚至可以不用LILO或GRUB引导而直接运行。

内核文件和根文件系统在Flash中的放置,可以根据系统设计需要适当选择。

3 引导程序选择

系统启动之前的引导过程是CPU初始化的过程。包括ARM和X86在内的许多CPU是从固定地址单元开始运行引导程序(Bootloader)的。其它的部分CPU是从某个地址单元读入引导程序的入口地址,然后再运行引导程序,譬如M68K和Coldfire系列。所以这些都影响到Flash中系统启动代码的存放地址。

系统首先要考虑的是在什么地址存放Bootloader,或者说系统从哪个地址单元开始加载运行系统内核代码。

CPU启动后直接运行系统内核是可以实现的。对于uClinux来说,启动代码必须包括芯片的初始化和RAM的初始化等硬件配置;同时加载内核的代码段到RAM中,并清除初始化的数据段内容。尽管这些实现起来很直观,但是要具体把启动代码存放在Flash中正确的地址偏移单元内,使CPU一启动便能执行就比较困难了。不过,现在技术比较先进的CPU都将默认的偏移地址设置为0,或者在偏移地址为0的附近存放起始地址。

Bootloader是一段单独的代码,用以负责基本硬件的初始化过程,并且加载和运行uClinux的内核代码。作为系统启动工具,Bootloader经过配置可以加载Flash中的多个内核,甚至可以通过串口和网口来加载内核和系统的镜像到RAM中运行。Bootloader同时也提供对内核镜像文件的多级别保护,这一点对于以Flash作为存储设备的系统来说非常重要。譬如,当系统进行内核升级和重要数据备份时,系统突然掉电,正如PC机进行BIOS刷写过程中的旧电一样,都是灾难性的。但是利用Bootloader就可以实现保护性的恢复。

目前运行在uClinux上的免费Bootloader有COLILO、MRB、PPCBOOT和DBUG。也有为特殊需求设计的SNAPGEAR和ARCTURUS NETWORKS。

4 uClinux的块驱动器

对于嵌入式系统的块设备,可选择存储文件系统的块驱动器(Block Driver)主要有三种选择。

①Blkmem driver。Blkmem driver仍是uClinux上使用最普通的Flash驱动器。它是为uClinux而设计的,但是它的结构相对比较简单,并且仅支持NOR Flash的操作,需要在RAM中建立根文件系统。同时它也很难配置,需要代码修改表来建立Flash分区。尽管如此,它还是提供了最基本的.分区擦/写操作。

②MTD driver。MTD driver是Linux下标准的Flash驱动器。它支持大多数Flash存储设备,兼有功能

强大的分区定义和映像工具。借用交叉存取技术(interleaving),MTD driver甚至可支持同一系统中不同类型的Flash,Linux内核中关于MTD driver配置有较为详细的选择项。

③RAM disk driver。在无盘启动的标准Linux中,用得最多的就是RAM disk driver;但它不支持底层的Flash存储器,仅对根文件系统的建立有意义,即根文件系统压缩以后存放在Flash的什么地方。

通过上面的比较可以看到,MTD driver提供对Flash最有力的支持同,同时它也支持在Flash上直接运行文件系统,譬如JFFS和JFFS2,而B1kmem driver则不支持。

5 根文件系统

uClinux中的文件系统可以有多种选择。通常情况下,ROMfs是使用最多的文件系统,它是一种简单、紧凑和只读的文件系统。ROMfs顺序存储文件数据,并可以在uClinux支持的存储设备上直接运行文件系统,这样可以在系统运行时节省许多RAM空间。

Cramfs是针对Linux内核2.4之后的版本所设计的一种新型文件系统,也是压缩和只读格式的。它主要的优点是将文件数据以压缩形式存储,在需要运行的时候进行解压缩。由于它存储的文件形式是压缩的格式,所以文件系统不能直接在Flash上运行。虽然这样可以节约很多Flash存储空间,但是文件系统运行需要将大量的数据拷贝进RAM中,消耗了RAM空间。

考虑到多数系统需要能够读/写的文件系统,可以使用MTD driver的JFFS和JFFS2日志式文件在Flash头部建立根文件系统(Root Filesystem)。日志式文件系统可以免受系统突然掉电的危险,并且在下一次系统引导时不需要文件系统的检查。由于JFFS和JFFS2文件格式是特别为Flash存储器设计的,二者都具一种称为“损耗平衡”的特点,也就是说Flash的所有被擦写的单元都保持相同的擦写次数。利用这些特有保护措施,Flash的使用周期得到相当大的提升。JFFS2使用压缩的文件格式,为Flash节省了大量的存储空间,它更优于JFFS格式在系统中使用。值得注意的是,使用JFFS2格式可能带来少量的Flash空间的浪费,这主要是由于日志文件的过度开销和用于回收系统的无用存储单元,浪费的空间大小约是两个数据段。

如果使用RAM disk,一般应选择EXT2文件格式,但EXT2并不是一块特别高效的文件存储空间。由于存在RAM disk上,所以任何改变在下一次启动后都会丢失。当然,也有许多人认为对嵌入式存储空间来讲,这是一种优势,因为每次系统启动都是从已知的文件系统状态开始的。

虽然在Linux下有许多的文件格式可供选择,但是对于uClinux一般只选择上述的几种文件格式。另外一点就是如何在目标系统上建立根文件系统,步骤如下:首先在开发宿主机上建立一个目标机的根文件系统的目录树,然后利用嵌入式根文件系统生成工具在宿主机上生成目录树的二进制文件镜像,最后下载到目标机上就可以了。对于不同的文件格式有不同的二进制镜像生成工具,譬如JFFS的mkfs.jffs2、ISO9660的mkisofs。

uClinux平台下的Flash存储技术 第2篇

在现代的教育环境下, 为提高教学质量, 对实践教学要求也越来越高, 也要求学校加大实验室建设投入。但普遍存在的矛盾是:一个是各高校教育投资经费与因招生人数增加而产生的实验室设备不足之间的矛盾。另一个是实验设备技术的日异更新与高校的实验室设备更新的矛盾。因此使大部分高校很难建立完善的现代实验室, 一定程度上影响了实验教学的开展和学生实践创新能力的培养。因此, 依托网络构建虚拟实验平台便成为很好的解决方案。虚拟实验平台的建立打破了传统实验室在时间和空间上的局限性而通过基于网络的虚拟实验平台的构建, 不仅可以充分利用教育投入, 有利于改善办学条件和提高办学综合水平。同时学生可提前通过网络实验平台完成实验练习, 为进入真实实验环境节省了时间, 提高了实验效率, 节约了实验教学成本。

虚拟网络互连实验平台分析

虚拟网络实验包括演示型实验和操作型实验两种。前者只是演示完整实验操作步骤;后者则要求实验者亲自操作实验。演示型实验的构建可采取多种方法。如用摄像机拍摄真实的实验操作过程后制成视频文件, 或者采用Flash、Authorware等多媒体软件制成动画进行演示, 但这种实验缺少交互性。操作型实验的构建相对较为复杂, 需用软件来虚拟硬件设备的功能, 具有很好的仿真性和交互性, 其实现方式主要分以下几种:

1.通过使用网络实验模拟软件, 如Network Visualizer、Virtual Lab等。这些模拟软件能模拟实际网络的组建, 能对网络设备进行模拟配置, 还能模拟运行、测试以及对仿真结果的分析。

2.使用虚拟现实 (Virtual Reality) 平台, 虚拟现实 (Virtual Reality, 简称VR) 是近年来出现的高新技术, 是人们通过计算机对复杂数据进行可视化操作与交互的一种全新方式, 通过计算机模拟出的三维虚拟世界, 提供使用者关于视觉、听觉、触觉等感官的模拟, 让使用者如同身临其境一般, 及时、没有限制地观察三度空间内的事物。如;瑞典Cycore公司开发的Cult3D;中视典数字科技公司开发的等。在平台中组合各种实验素材, 实验动画完成一定交互功能。

3.使用面向对象程序语言开发的实验软件。如java、vc、flash等语言开发的网络实验软件。笔者多年来一直致力于仿真实验方面的工作, 尝试过数种开发软件, 总结发现FLASH开发出的软件文件小、画面形象、交互性强、支持流媒体, 同时开发方法也较容易掌握。

虚拟网络互连实验平台设计

1.虚拟网络互连实验平台结构

根据教学需要, 我们认为网络互连实验平台可以完成如下几种功能:

⑴、用于自学网络互连的实验演示功能;⑵、用于自训网络互连的实验操作功能;

⑶、用于自测网络互连的相关知识点考核功能;其功能结构如下:

2.虚拟网络互连实验平台模块设计与实现

根据实验教学的需要, 系统总体设计时, 将全系统划分为多个模块, 各模块安排如下图所示:

该实验平台分13个实验模块, 各模块包括演示型实验和操作型实验两种。前者只是演示完整实验操作步骤;后者则要求实验者亲自操作实验。

其实验操作步骤:

⑴实验时通过平台进入实验模块。⑵选择实验方式, 是演示还是操作实验。⑶按实验要求完成实验, 实验要求在操作时系统会给予提示。⑷完成后检测, 学生可以通过点击完成健, 系统自动测试结果是否与实验要求相一致。如果不正确系统提示出错位置, 学生可再次修改直到正确完成。⑸进入下一个实验环节。

实验平台总结

⑴本平台在设计过程中充分考虑到网络互连实验教学特性, 通过模块功能实验来完成知识的内在逻辑衔接, 使知识掌握更系统。

⑵无需事先教授。任何专业学生可以在没有教授的情况下, 通过实验平台系统学习网络互连知识。

⑶有较好的辅助学习功能, 出错提醒功能。

小结

uClinux平台下的Flash存储技术 第3篇

关键词:计算机;信息技术;存储平台;二进制

现如今,计算机技术逐渐的应用于社会各领域,信息数据也就变得日益重要。在企业的前进发展道路上,信息数据其中起到了关键性的作用。为了不断的提升企业的竞争力,那么就必须要充分的利用信息技术,要对信息技术的存储技术进行不断的发展与研究,以提升数据资源的高效利用。

一、计算机的存储方式

随着计算机在社会各领域得到了广泛的应用,企业在经营时要处理的数据也逐渐增多。数据大体可以分为以下两种:一种是非数值型数据,另一种是数值型数据。在计算机信息技术中,通常采用二进制来对数据进行表示,二进制数不仅仅可以对汉字进行表示,还能够对字符以及数量值等进行表示。数据不同也就意味着二进制数所表示的含义也不同。信息计算的存储也就是计算机的存储设备对相应的数据进行存储。

在计算机中,数据的最小单位是用“位”来表示,英文是bit,主要是由以下两个数字组成,一个是数字1,另一个是数字0[1]。数据的下一个单位是用“字节”来表示,英文是byte,一般简写为“B”。在信息处理过程中,字节是最基本的单位。所以,对信息进行解释就要用到字节。1个整数需要两个字节来进行表达,1个汉字国际码也需要两个字节来表示,1个ASCII用一个字节来表达。所以,计算机不同,那么其字长也会不同。常用的字长有以下几种,一种是64位,一种是32位,一种是16位,还有一种是8位。字长是衡量一台计算机性能的最好标准,字长越长,那么就说明这台计算机的性能也就越好。

在计算机中,数据信息的储存主要依靠存储设备,常用的存储设备有以下几种,第一种是光盘,第二种是软盘,第三种是硬盘,第四种是内存,在以上的存储设备中,依然是用字节为单位来进行数据存储的。在计算机中,使用以下两种度量单位来进行容量计算的,一种是MB,另一种是KB。与此同时,计算机大多具有外存容量,也就是我们经常用到的软盘以及硬盘,一般用以下两种度量单位进行计算,一种是GB,另一种是MB。

二、计算机的存储平台

随着计算机的不断普及,数据的数量也逐渐增多,那么就使得整理工作变得更加困难。以往的人工记录方法难以适应时代的发展,例如效率低下,错误率高,数据较易丢失。这就要求我们要对数据管理进行改良,以达到适应时代发展的要求[2]。

计算机的存储技术能够提供强大的数据备份,大大提高了数据管理效率的提升。其不仅能够对数据进行更新与录入,而且能够对数据进行逻辑管理。所以计算机的存储技术在今后的发展过程中有着较大的发展潜力,值得我们去对它进行研究与探讨。

三、计算机存储设计中的问题

计算机的存储技术已经广泛的应用于各大企业,企业利用存储技术实行对企业内部数据的有效管理,如对员工信息的管理,对内部信息的管理等,大大提升了企业的管理效率,促进了企业经济效益的提高。但是,各企业的实际情况往往不尽相同,那么对计算机的存储技术的需求也不尽相同,这就使得计算机的存储技术的开发与应用有着一定的困难。

在对存储技术进行开发时,E-R模型异常关键,其应用的范围也非常广泛。主要是因为E-R模型能够对用户的需求进行精准的分析。通过分析E-R模型,我们就可以对不同的需求进行表格分离,并且能够对不同的需求点进行针对性的分析。在存储技术的开发过程中,E-R模型得到了广泛的应用是因为它能够进行实体间的联系[3],有着严格的结构逻辑关系。最终可以对不同的实体附属关系进行连接,从而使得该模型更加完善。

四、存储平台的设计过程

(一)设计存储平台的需求

在存储平台的开发研究过程中,需求设计在其中非常关键,是存储技术中属于基础设计阶段[4]。因为在设计时,我们需要知道用户的实际需求,这样才能使得后期的开发与设计能够不偏离轨迹。所以在进行需求设计时,我们需要对用户的需求进行整理,这样才能够设计出符合用户要求的存储平台。

(二)具体的开发过程

在需求设计阶段,还仅仅是对用户的需求进行分析,在这个阶段,用户的需求还仅仅停留在模拟阶段。“模拟阶段”主要是指这些需求还没有一个具体的概念。在进行存储平台设计时,设计员就需要将这些抽象的概念最终定义,并对概念之间存在的关系进行深入的解析。

此外,在存储平台的开发流程中还有以下几个环节:一个是存储技术的维护,一个是物理实现,另一个是逻辑设计。这些流程在开发过程中都有着极其重要的作用。

五、结语

计算机的发展无疑对人们的生活有着巨大的影响,在计算机的发展过程中,大量的数据信息随之产生。企业在前进发展的道路上,就一定要对计算机的存储技术进行重视,通过存储技术来提高企业数据的利用率。在进行存储技术的开发以及应用过程中,设计员就必须要对用户的需求进行深入的了解,这样才能设计出符合用户需求的存储平台。在今后的发展过程中,计算机的存储平台有着较大的发展空间,这就要求研究人员要不断的进行创新,推动存储平台的开发与应用,从而推动整个社会的进步与发展。

参考文献:

[1]娄艺,晁松杰.计算机信息技术存储平台的开发与应用[J].科技与创新,2015,(12):74-75.

[2]刘京.计算机信息技术存储平台的开发与应用[J].电子技术与软件工程,2014,(16):201-202.

[3]王金金.云计算服务模式下的知识产权保护研究[D].中国科学技术大学,2015.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【uClinux平台下的Flash存储技术】相关文章:

上一篇:十大管理理念下一篇:员工基本守责

全站热搜

    相关推荐