uClinux平台下的Flash存储技术

| 收藏本文 下载本文 作者:小豚豚

以下是小编为大家准备了uClinux平台下的Flash存储技术(共含6篇),欢迎参阅。同时,但愿您也能像本文投稿人“小豚豚”一样,积极向本站投稿分享好文章。

uClinux平台下的Flash存储技术

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

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。

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

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] [2] [3] [4] [5]

篇3:基于虚拟扇区的Flash存储管理技术

基于虚拟扇区的Flash存储管理技术

摘要:首先,针对闪存Flash的存储编程特点,提出一种基于虚拟扇区的闪存管理技术,使系统对Flash的擦写次数大大降低,从而提高Flash的使用寿命和整个系统的性能。然后,通过嵌入式系统电子名片管理器,介绍这一技术的使用。随着闪存的广泛应用,对Flash的有效存储管理将有很大的实用意义和社会效益。

关键词:闪存Flash 虚拟扇区VSS 存储管理 扇区分配表SAT

引言

随着嵌入式系统的迅速发展和广泛应用,大量需要一种能多次编程,容量大,读写、擦除快捷、方便、简单,外围器件少,价格低廉的非易挥发存储器件。闪存Flash存储介质就是在这种背景需求下应运而生的。它是一种基于半导体的存储器,具有系统掉电后仍可保留内部信息,及在线擦写等功能特点,是一种替代EEPROM存储介质的新型存储器。因为它的读写速度比EEPROM更快,在相同容量的情况下成本更低,因此闪存Flash将是嵌入式系统中的一个重要组成单元。

然而,由于Flash读写存储的编程特点,有必要对其进行存储过程管理,以使整个系统性能得以改善。

1 闪存Flash的存储编程特点

Flash写:由1变为0,变为0后,不能通过写再变为1。

Flash擦除:由0变为1,不能只某位单元进行擦除。

Flash的擦除包括块擦除和芯片擦除。块擦除是把某一擦除块的内容都变为1,芯片擦除是把整个Flash的内容都变为1。通常一个Flash存储器芯片,分为若干个擦除block,在进行Flash存储时,以擦除block为单位。

当在一个block中进行存储时,一旦对某一block中的某一位写0,再要改变成1,则必须先对整个block进行擦除,然后才能修改。通常,对于容量小的block操作过程是:先把整个block读到RAM中,在RAM中修改其内容,再擦除整个block,最后写入修改后的内容。显然,这样频繁复杂的读-擦除-写操作,对于Flash的使用寿命以及系统性能是很不好的,而且系统也常常没有这么大的RAM空间资源。一种基于虚拟扇区的管理技术可以有效地控制Flash的擦写次数,提高Flash的使用寿命,从而提高系统性能。

2 基本原理

2.1概念

VSS(Visual Small Sector),虚拟小扇区:以它为单位读写Flash内容。

VSS ID(Visual Small Sector Identity),虚拟小扇区号:只通过虚拟扇区号进行存储,不用考虑它的真实物理地址。

SI(Sector Identity),分割号:一个擦写逻辑块中物理扇区的顺序分割号。

BI(Block Identity),块号:Flash芯片中按擦除进行划分的块号。

SAT(Sector Allocate Table),扇区分配表:一个擦写逻辑块中的扇区分配表。一个SAT由许多SAT单元组成,一个SAT表对应一个Block,一个SAT单元对应一个VSS。

每个SAT单元最高两位为属性位,后面各位为VSS ID号。如果一个SAT单元由16位组成,则VSS ID最大可以达到16×1024;而如果SAT单元由8位组成,则VSS ID最大可以达到64,具体约定由应用情况而定。

2.2 实现原理

把每个block分为更小的虚拟逻辑块(visual small sector),称为虚拟扇区,扇区大小根据应用而定。每个block前面的一固定单元用于记录本block中扇区分配的使用情况(即扇区分配表),包括扇区属性及扇区逻辑号。图1为逻辑扇区划分示意图。

在进行数据读写和修改时,以虚拟扇区块的大小为单位。要修改某一扇区的数据时,先读出这个扇区的内容,重新找一个未使用的扇区,把修改后的内容写入这个新扇区。然后,修改原来扇区的属性值为无效,修改这个新扇区的属性为有效,拷贝VSS ID号到新扇区对应的SAT单元中。

这样,当某一个block中的SAT属性都标为无效时,才对当前block进行擦写。可见,以虚拟扇区大小为单位的存储管理,对Flash块的擦写次数可大大减少,从而提高了系统性能。

(本网网收集整理)

3 VSS管理实现要点

3.1 常数部分

#define BLOCKSIZE 128*1024 //可根据Flash型号修改

#define SECTORSIZE

512 //可根据Flash型号及应用情况修改

#define MAX_BLOCK 8 //可擦除块个数

#define MAX_SI_1B 255 //每个可擦除块中有效SI个数

#define SATSIZE 510 //扇区分配表大小

#define VSS_MASK 0XC000 //VSS属性屏蔽值

#define VSS_FREE 0XC000 //VSS为未使用的属性值

#define VSS_VALID 0X4000 //VSS为有效的属性值

#define VSS_INVALID 0X0000 //VSS为无效的属性值

3.2 数据结构部分

unsigned char VSS_Table[MAX_BLOCK][MAX_SI_1B/8];用于记录Flash中各个block的使用情况。数组中的某位为1,表示相应sector为未使用;否则,为已经写过,系统通过这个表可以跟踪各个block的使用情况。

3.3 函数功能部分

1) Flash_Format//擦除整块Flash存储介质。

2) Flash_Init()//对VSS管理系统参数进行初始化,填充VSS_Table表,统计Flash的使用情况。在系统复位初始时调用。

3) Block_Erase(int blockID)//擦除块号为block ID的块。

4) Find_VSS(int vss)//查找VSS所在的block ID及分割号SI。

5) Get_Addr(int vss)//取得VSS所在的物理地址。

6) Scan_SAT(int blockID)//整理块号为block ID的SAT,填充VSS_Table[]。

7) Flash_Read(long addr,char *pdata,int len)//从物理地址为addr的Flash处读取len个字节到pdata。

8) Flash_Write(long addr,char *pdata,int len)//写pdata中长度为len的数据到指定地址为addr的Flash中。

9) Read_Sat(int bi)//读取块号为blockID的SAT。

10) IsValid(vat)//检查本SAT单元属性是否有效。

11) IsFree(vat)//检查本SAT单元属性是否未使用。

12) IsInvalid(vat)//检查本SAT单元属性是否无效。

13) Read_VSS(addr)//从地址为addr处读一个VSS。

14) Write_VSS(addr,*pData)//把pData中的内容写到从地址addr开始的一个VSS中。

4 计算VSS ID的物理地址

要对某个VSS ID进行读写操作,必须先找到其物理地址。

定位某个VSS ID物理地址的过程如下。

① 查找这个VSS ID所在的块号(BI)以及在这个块中所处的分割号(SI)。

从第一个block开始,搜索这个块的SAT表。首先搜索属性,只有属性为有效的才比较VSS ID号。如果条件满足,记录所在的块号BI及SAT的位置,即扇区分割号SI;否则,block号增加,继续按照上面步骤查找。

bFound=0;

for(int i=0;i

{//读取对应block的SAT表

psat=ReadSat(i)

for(j=0;j

{//分析每个SAT单元

sat=*psat++;

if(IsValid(sat))//比较属性是否有效

{//比较逻辑号是否相等,相等设置标志退出

if(Equal(sat,VSSID)){bFound=1;break;}

}

}

if(bFound){bi=i;si=j;break;}//找到后记录块号和分割号退出

}

②找到VSS ID所在的块号及分割号(SI)后,这个VSS ID的物理地址为:

ADDR=整个Flash的偏地址+

BLOCKID*BLOCKSIZE+SATSIZE+SI*SECTERSIZE。

5 应用

应用于名片记录管理系统:由于名片记录很大,而且记录很多,存在常常修改的情况,因此可以使用Flash作存储介质。

名片记录结构为:

struct CARD

{

char name[10]; //姓名:10字节

char position[15]; //出职务:15字节

char companyname[40]; //公司名称:15字节

char mobilephone[11]; //手机号码:11字节

char homephone[15]; //家庭电话:15字节

char officephone[15]; //办公电话:15字节

char Email[30]; //邮件地址:30字节

char homepage[30]; //公司主页:30字节

char remark[40]; //备注:40字节

}card_record;

每个名片记录大小为:181字节。

对于1MB的Flash,分为8个block,每个block为128KB(131072字节)。

针对以上情况,作如下分配:

每个扇区大小为181字节;

SAT大小为1432字节,每个SAT单元用16位(2字节);

分为716个扇区,也相当于1个block能存716条名片记录,则131072-1432-716×181=44字节为空闲。

常数定义部分修改如下:

#define blockSIZE 128*1024 //每个block大小

#define SECTORSIZE 181 //每个扇区大小

#define MAX_SI_1B 716 //每个可擦除块中有SI个数

#define SATSIZE 1432 //扇区分配表大小

#define VSS_MASK 0XC000 //VSS属性屏蔽值

#define VSS_FREE 0XC000 //VSS为未使用的属性值

#define VSS_VALID 0X4000 //VSS为有效的属性值

#define VSS_INVALID 0X0000 //VSS为无效的属性值

约定:首先对名片进行编号,且约定名片的编号对应于VSS ID逻辑号。

a) 记录增加。增加一个记录时,根据提供的VSS ID号,首先查找这个记录号是否在使用。如果还没有使用,首先查找这个记录号是否在使用。如果还没有使用,则申请一个未使用的VSS,把相在内容写入这个VSS,修改其对应的.SAT单元,写入有效属性值和VSSID号;否则,进入记录修改过程。

b) 记录删除。要删除一个记录时,根据提供的VSS ID号,查找SAT表。如果找到,修改其对应的SAT属性为无效;否则,说明这个记录不存在。

c) 记录查找。①由VSS ID号进行的查找:根据提供的VSS ID号,查找所有的SAT表中属性为有效的VSS ID,返回相应的BI及SI。②根据名片的用户名查找:检测所有的SAT表中属性为有效的VSS ID,得到相应的BI及SI,由BI及SI定位到指定Flash物理地址读入用户各到RAM中,比较是否相等。如果相等,读取并返回SAT单元的VSS ID;否则,继续查找。

d) 记录修改。当要修改一名片记录时,由VSS ID先把这个记录读入到RAM中,然后修改其内容,重新找一个未使用的扇区,把修改后的内容写入到这个新扇区中,并拷贝其VSS ID

号到这个新扇区对应的SAT单元,修改其属性为高,修改原来的扇区属性为无效。

结语

本文提出的Flash存储管理技术原理简单实用。它是对那些复杂的Flash文件管理系统的一种剪裁、简化和定制。对于那些不需要复杂的文件管理系统,而又使用了Flash作为存储介质的嵌入式系统有很好的借鉴意义和使用价值,如手机电话号码簿管理、短信管理等都可以利用这种技术进行管理。

篇4:基于虚拟扇区的Flash存储管理技术

基于虚拟扇区的Flash存储管理技术

摘要:首先,针对闪存Flash的存储编程特点,提出一种基于虚拟扇区的闪存管理技术,使系统对Flash的擦写次数大大降低,从而提高Flash的使用寿命和整个系统的性能。然后,通过嵌入式系统电子名片管理器,介绍这一技术的.使用。随着闪存的广泛应用,对Flash的有效存储管理将有很大的实用意义和社会效益。

关键词:闪存Flash 虚拟扇区VSS 存储管理 扇区分配表SAT

引言

随着嵌入式系统的迅速发展和广泛应用,大量需要一种能多次编程,容量大,读写、擦除快捷、方便、简单,外围器件少,价格低廉的非易挥发存储器件。闪存Flash存储介质就是在这种背景需求下应运而生的。它是一种基于半导体的存储器,具有系统掉电后仍可保留内部信息,及在线擦写等功能特点,是一种替代EEPROM存储介质的新型存储器。因为它的读写速度比EEPROM更快,在相同容量的情况下成本更低,因此闪存Flash将是嵌入式系统中的一个重要组成单元。

然而,由于Flash读写存储的编程特点,有必要对其进行存储过程管理,以使整个系统性能得以改善。

1 闪存Flash的存储编程特点

Flash写:由1变为0,变为0后,不能通过写再变为1。

Flash擦除:由0变为1,不能只某位单元进行擦除。

Flash的擦除包括块擦除和芯片擦除。块擦除是把某一擦除块的内容都变为1,芯片擦除是把整个Flash的内容都变为1。通常一个Flash存储器芯片,分为若干个擦除block,在进行Flash存储时,以擦除block为单位。

当在一个block中进行存储时,一旦对某一block中的某一位写0,再要改变成1,则必须先对整个block进行擦除,然后才能修改。通常,对于容量小的block操作过程是:先把整个block读到RAM中,在RAM中修改其内容,再擦除整个block,最后写入修改后的内容。显然,这样频繁复杂的读-擦除-写操作,对于Flash的使用寿命以及系统性能是很不好的,而且系统也常常没有这么大的RAM空间资源。一种基于虚拟扇区的管理技术可以有效地控制Flash的擦写次数,提高Flash的使用寿命,从而提高系统

[1] [2] [3] [4] [5] [6] [7]

篇5:浅谈网络教学平台下的数据挖掘技术论文

1 数据挖掘技术的基本认识

数据挖掘(Data Mining),就是从大量数据中挖掘以及抽取出有用的数据知识。数据挖掘技术,可以在大量的数据中,以及信息不完全的海量碎片式信息中,挖掘出隐含在其中的有用信息数据;同时也可以避免在数据决策过程中的噪声影响,能够精确挖掘数据,将具有潜在关联的数据组合在一起,整理集合对决策有用的信息资料。在数据挖掘技术之中,通常可以依据关联规则、分类技术、预测技术等,实现对有用数据信息的挖掘。在网络自主学习的平台中,应用数据挖掘技术,可以发挥积极应用价值。

2 网络教学平台用户的学习需求

设计基于数据挖掘技术的网络教学平台,提供基于网络的浏览教案、知识点;收看微课、视频;还可进行信息检索、下载保存、提交作业、在线测试,满足对学生个性化网络教学服务需求。除了这些日常教学功能外,还可以通过数据挖掘分析教学平台服务器日志数据,挖掘有用教学信息数据,以图文界面形式,将数据挖掘分析结果反馈给用户,提升该教学平台设计性能,满足学生对该平台的应用需求。

3 数据挖掘技术基础上的网络教学平台优化设计

3.1 总体设计结构

基于数据挖掘技术,设计网络教学平台,可以从学生、数据挖掘、教师三个基本模块出发,优化网络教学平台结构设计,以确保该网络教学平台符合实际需求。典型网络教学平台的总体结构如下图所示:

在网络教学平台中,应用数据挖掘技术,更好的评估学生对该平台的喜好,优化平台教学策略,能有效增强学生的学习兴趣,提高了学生的自学能力,培养学生主动性学习能力。

3.2 功能设计

(1)学生模块的功能:可以获取学生的基本状况、学习路劲与行为,分析学生的学习现状,并准确判断出学生在网络教学平台中各学习特征。

(2)教师模块的功能:确保教师可进行“课程资料管理”,同时能够在线进行相关课程信息的编辑,并应用论坛管理模块完成教学平台中师生互动行为。

(3)数据挖掘模块功能:根据所采集数据构建学生特征库,并分析处理数据。

3.3 数据挖掘

应用数据挖掘技术,可以有效识别在网络教学平台中不同学生群体的特征,并根据关键特征对学生群体进行划分,把大多数学生的学习行为、认知进行分类,分析每类学习行为的特性,增强对学生个性的认知。具体如下:

(1)学生网络学习行为与学习效果的关联分析:通过挖掘学生相关网络学习行为与考试成绩数据,反映两者之间的关系,给教师、学生提供借鉴。通过分析,让教师们充分了解不同学生的学习情况及特点。

(2)学生网络学习行为的聚类分析:由于学生个体之间存在极大的差异性,学生的学习兴趣不同,学生网络学习行为不同,并且学生对知识的需求也是不同的;学生可以在网络教学平台中,在线进行教学主题讨论,根据学生读帖次数、发帖次数、频率、时间等因素,应用聚类分析的方法,挖掘网络学习行为规律;根据学生实时学习(使用工具、交流时间、交流对象、交流内容)状况,可以预测在网络环境下什么样的学习行为是有效的。

篇6:浅谈网络教学平台下的数据挖掘技术论文

4.1 收集相关数据

在进行网络教学过程中,平台会记录大量的信息数据,供数据挖掘分析使用。本案例选取本校学生在2016 年1 月份通过网络教学平台参加计算机基础考试的成绩作为数据源。

4.2 数据预处理

数据挖掘中需要进行冗余数据的清除,修复缺失的数据信息。根据挖掘目的和需要,在网络教学平台学生原始数据表的基础上建立数据库。该部分的目的在于,通过数据挖掘技术,对学生在网络教学平台中的主要网络学习行为或者网络练习环节与学习效果之间的关系进行分析,找出对学习效果影响较大的学习行为。

4.3 模式识别

对预处理得到的网络教学数据,采用数据挖掘的方法进行数据分析,挖掘数据之间存在的关联规则,制定出符合该平台进行网络教学管理的挖掘算法。通过关联或决策规则,了解在网络教学平台中各种学习行为之间的关联性,分析其对学生学习成绩的影响程度;通过数据挖掘技术还可以分析出学生之间的'特征,做好前期的网络教学平台教学设计工作,为优化网络教学策略提供参考依据。对照学生成绩表,为了进行有效的分类,对各项数据变量进行离散化处理。

4.4 模式分析

模式分析阶段可以解释以及评估数据挖掘的结果,清除那些无用、冗余、错误的信息知识,并且将感兴趣的信息转化为规则模型,供网络教学管理者进行教学决策管理。本案例选择Microsoft SQL Server 2008 的决策树算法对网络教学平台数据进行挖掘。将总分(total)作为主要预测对象,选择题(XZT)、WIN、WORD、EXCEL、PPT 和网络题(wlt)作为输入对象,建立决策树分类模型。

基于数据挖掘技术分析,EXCEL 属性与 total(总分)属性依赖关系最强,其次是 WORD 属性,再次是 wlt(网络题),最后是PPT 和 XZT(选择题),WIN 由于操作题目比较简单,平均考分较高,所以图中显示WIN 属性与 total(总分)属性没有依赖性,由此提醒教师和学生要注意教学目标重点,从而促进教学质量整体提升。

4.5 教学实践应用

结合教学实际,学生普遍认为 EXCEL 操作难度较大,也验证了数据挖掘分析结果。在网络教学平台中,应用数据挖掘技术,可以提高网络平台对学生学习过程的监控能力,能追踪学生的各项网络学习活动及在活动中花费的时间等。增强对网络学习过程数据的收集功能,以及增强网络学习的平台的统计分析功能。教师应该充分发挥在网络教学中各主导作用,引导学生积极练习重难点;同时可以在该网络教学平台中,设计分层次的网络教学资源,以便可以满足教学中不同层次学生对于网络教学的学习需求,也可以全面提升网络平台的教学质量。

5 结语

综上所述,在当前网络教学改革实践过程中,随着网络教学平台的应用普及,教学平台处理数据量急剧增加,各类平台用户本身具备差一定异性,应用数据挖掘技术,可以挖掘网络教学平台中有用信息,用于改善用户自主应用该平台学习体验,提升学习者学习积极性。同时在网络教学平台中,应用数据挖掘技术,通过网络教学平台学生数据进行分析,可以找出影响学生网络教学成绩的关键环节及知识点,为今后教师调整网络教学平台教学重点提供理论参考依据,发挥积极影响价值。本文研究了网络教学平台中数据挖掘技术的应用,并为之提出优化策略,以供参考。

微信公众平台下的班主任工作计划

flash论文

flash天气预报

浅析Windows平台下Android应用抓包挖掘漏洞方法漏洞预警

flash入门教案

flash课件下载

flash教学课件

机械制图Flash课件

flash动画学习心得

flash教学设计

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

欢迎下载DOC格式的uClinux平台下的Flash存储技术,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档