延长Flash存储器使用寿命的研究

发布者:BlissfulJourney最新更新时间:2017-09-18 来源: eechina关键字:Flash  存储器  使用寿命 手机看文章 扫描二维码
随时随地手机看文章

引言

随着嵌入式系统在数码相机、数字摄像机、移动电话、MP3音乐播放器等移动设备中越来越广泛的应用,Flash存储器已经逐步取代其他半导体存储元件,成为嵌入式系统中主要数据和程序载体。Flash存储器又称闪存,是一种可在线多次擦除的非易失性存储器NVM(Non-Volatile Memo-ry),即掉电后数据不会丢失。Flash存储器还具有体积小、功耗低、抗振性强等优点,是嵌入式系统的首选存储设备。

世面上常用的Flash存储设备有两种:NOR Flash和NAND Flash。根据存储容量,NOR一般为1~16 MB,而NAND为8~512 MB,现在的大容量NAND已经可以达到4 GB;读取速度NOR较NAND快,写入速度NOR比NAND慢一些;擦除速度NOR需要2~5 s,而NAND仅仅需要2~5 ms;NAND的价格比NOR低很多。由于种种原因,较常用的是NAND Flash。但是由于NANDFlash的工艺不能保证NAND的存储阵列(memory ar-ray)在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。其表现是:当编程/擦除这个块时,不能将某些位拉高,这会造成页编程(page program)和块擦除(block erase)操作时的错误;相应地,反映到状态寄存器(status register)的相应位。

总体上,坏块可以分为两大类:第一类为固有坏块,这是生产过程中产生的坏块,一般芯片原厂都会在出厂时将坏块第一个页的扩展区域(Spare Area)的第6个字节标记为不等于0xff的值;第二类为使用坏块,这是在NANDFlash使用过程中,如果块擦除或者页编程错误,就可以简单地将这个块作为坏块来处理,这个时候需要把坏块标记起来。为了和固有坏块信息保持一致,将新发现坏块的第一个页的扩展区域的第6个字节标记为非0xff的值。由于Flash写入数据的时候是先擦除块,这样这个块里面的数据将全部变成0xff,写入1时,该位不变;写入0时,该位由1变为0。如果将扩展区域的第6 个字节标记为非0xff之后,将不可能再恢复为0xff,除非格式化有可能恢复。

我们已经了解到,坏了的块是无法擦除和写人数据的,而在嵌入式系统中,启动的第一步就是将Flash里面的前4KB数据自动复制到SRAM里面去运行。如果仅仅Flash的第一块坏了,而导致引导程序无法下载进去,那么这个块不是不能读取数据,而是读不出我们想再要放入的数据,这样这个 Flash设备就报废了。本文就这个问题作了深入的讨论,用一种基于Flash的地址重映射的方法解决这个问题。本文采用三星(Samscrag)公司的 S3C2440 ARM处理器和NAND Flash存储设备K9F1208UOM讨论地址重映射的思想。

1 S3C2440使用NAND Flash引导系统的方法

自动启动模式顺序:

  ①复位完成;
  ②当设置为自动启动模式,NAND Flash的开始4 KB被拷贝到Steppingstone的4 KB内部缓冲器;
  ③Steppingstone映射到nGCS0;
  ④CPU开始在Steppingstone执行启动代码程序。

由系统引导顺序看出,如果Flash的第一块坏了,那么读出的数据不一定是引导程序,这样,系统将无法启动。而在这种情况下,就只能换一块完好的Flash了,这样就造成了很大的浪费。

2 Flash存储器的内部结构

K9F1208UOM型Flash芯片内部存储器结构如图1所示。

 

典型的NAND Flash由4 096块组成,每一个块包含32页,而每页是512+16=528字节。对于一个页,0~511字节为主存储区,即通常所说的用户可设定地址区,用来存储数据;512~527共16字节为扩展存储区,用来存储页的信息。扩展区的16字节用于描述主存储区的512字节。而对于坏块,也仅仅是将这16字节的第 6字节设置为不等于0xff,来标示坏块。

在NANDFlash使用过程中可能会出现这样的问题:产生坏块或坏页、由此引发的数据丢失、对一些扇区或块的过分磨损导致NANDFlash 寿命缩短等。为了能更好地使用NAND Flash,在其损坏时使损失最小化,需要一种方法,使用相同的地址可以屏蔽掉坏了的块,而指针指向好块。即使第一块坏了,还可以使用O地址去操作一个好块。

3 Flash存储器的读取方法

K9F11208UOM型Flash芯片内部与外部引脚关系如图2所示。对于每一个块的访问,都需要一个固定的物理地址,基于这个固定的物理地址来操作Flash存储器,在对块进行操作的时候,一个块地址对应一个块,如果这个块坏了,那么这个地址的存在就没有意义了。就像ARM芯片在引导的时候,需要复制Flash的前4 KB的数据,这样需要固定块的数据。如果这个块坏了,系统将无法引导。

 

下面通过地址重映射的方法,即在Flash固件里面加入一个地址重映射的区域来解决这一问题。

4 基于地址重映射的读取方法

在实现地址重映射的时候,可以从块逻辑地址O开始,查看相对应的物理块。如果损坏,将地址从最后一个开始向前指,而相应的逻辑块被标示为坏块。例如图3,物理块0损坏,逻辑块地址0指向物理块4095的地址,而逻辑块地址4095被标示为坏块。可以看出,即使块0掼坏,仍然可以通过逻辑地址O进行操作,其内部的变化,并不会影响外部的使用。唯一不同的是,Flash的整体空间变小了。不过即使这样,也不会像以前那样,第一块坏了,就去换一个 Flash。

 

5 性能分析

很明显,在数据读取的时候增加了一步地址重映射的计算。这样使整体性能会略微下降。下面分析一下加入地址重映射之后的性能影响(这里仅仅分析数据的读取性能,因为对Flash操作最多的是数据的读取,用户使用时也是读取最多)。

地址重映射是根据输入的地址计算操作地址的。从图4可以看出,地址重映射的计算是加在地址A25输入之后的,因其在内部操作,延时相对很小。而这个地址重映射在整个块操作之中只操作一次,且其使用时间很短,故在这里可以忽略不计,其对数据的读取操作基本没有影响。

 

加入地址重映射之后,坏块全部集中到了整个Flash设备的最后。也就是说,即使这个Flash中有1024个块坏了,仍然可以当其为一个32 MB的Flash来使用,即其有效块为第0~1 023块;不像前面所描述的那样,就算只有第一个块坏了,这个Flash也就报废了。经过加入地址重映射之后的Flash,即使就剩下一块没有损坏的块了,这个Flash仍然可以作为引导系统使用。

6 结论

通过在Flash内部加入地址重映射机制,对于使用Flash将会有很大的方便,并且,即使第一个块坏了,仍可以继续使用这个Flash,而无需厂家保证第一个块是好的。这样大大延长了Flash的使用寿命,仅仅在坏块达到一定数量的时候才需要换一个。

参考文献

1. 彭兵,步凯,徐欣.NANDFlash坏块管理研究[J].微处理机,2009(2):113.
2. Samsung Electronics.K9F1208UOM 64MX 8 Bit NAND Flash MEMORY USER's M A NUAL.Reversion 0.9.
3. Samsung Electronics.S3C2440 32-BIT CMOS MICROCONTROLLER USER'S MANUAL,Reversion 1.0. 

关键字:Flash  存储器  使用寿命 引用地址:延长Flash存储器使用寿命的研究

上一篇:W90P710的智能音乐播放器系统设计
下一篇:支持Kanal+的双SCART机顶盒方案

推荐阅读最新更新时间:2024-05-03 01:41

连涨两年吃掉全球九成份额 三星等遭中国反垄断调查
  对于 三星 来说,芯片可以说整个电子业务的“发动机”,得益于DRAM和NAND闪存价格的攀升, 三星 芯片排位在去年第二季度还超过了老大英特尔并在单季利润上“逆袭”苹果。下面就随手机便携小编一起来了解一下相关内容吧。   但对于硬件厂商而言,芯片 存储器 价格的上涨让它们“苦不堪言”。   “继去年飙涨40%后,今年年初到现在DRAM价格依然在上涨,虽然幅度不到10%,但对本来获利空间本来就比较小的中国品牌厂来说,是在侵蚀其获利空间。”集邦咨询半导体研究中心首席分析师吴雅婷对一财科技记者表示,对于存储三巨头的调查显示了DRAM价格的上涨已经让下游厂商处于高压状态。 连涨两年吃掉全球九成份额 三星等遭中国反垄断调查
[手机便携]
ATmega168 Flash程序存储器
系统内可编程的Flash 程序存储器 ATmega168具有16K 字节的在线编程 Flash,用于存放程序指令代码。因为所有的AVR指令为16 位或32 位,故而 Flash 组织成8K x 16。 对于 ATmega168,用户程序的安全性要根据Flash程序存储器的两个区:引导(Boot)程序区和应用程序区分开来考虑。 ATmega48中没有分为引导程序区和应用程序区,SPM 指令可在整个Flash中执行。详见P235“存贮程序存储器(SPM)控制和状态寄存器 – SPMCSR” 与 P243 中 SPMEN 部分的描述。。 Flash存储器至少可以擦写10,000次。ATmega168的程序计数器(PC)为12位,因此可以
[单片机]
ATmega168 <font color='red'>Flash</font>程序<font color='red'>存储器</font>
值得回顾 看Flash在Android上衰亡之路
    去年11月,Adobe对其相当流行的Flash插件做了个惊人的改变,他们宣布将停止为移动设备继续开发Flash。而就在前天,Adobe正式宣布,尚未安装Flash Player的安卓设备将无法再从Google Play商店中下载安装Flash,这也标志着Flash彻底退出了安卓平台,也在某种程度上意味着Flash放弃了未来移动设备领域的竞争。 安卓(图片来源于驱动之家)     尽管Adobe曾经断言说Flash将会在移动设备上为用户带来“全方位网络浏览体验”,如今,Adobe却把自家产品撤出了移动领域的主战场,并开始主攻HTML5。接下来,就让我们一起来回顾一下Flash在安卓平台上的衰亡之路吧。     2007年,A
[手机便携]
HOLTEK新推出HT66F0172、HT66F0174 Enhanced A/D Flash MCU系列
Holtek新推出Enhanced A/D Flash Type MCU系列,此系列有两颗MCU分别为HT66F0172及HT66F0174,符合工业上-40℃ ~ 85℃工作温度与高抗噪声之性能要求,并具有2Kx16 Flash程序内存,SRAM为128 Bytes、I/O 18个。 此系列产品内建Holtek新设计的Timer Module,有Capture、Compare、Timer/Event、Single Pulse Output、PWM等5种模式,并内建12-bit快速ADC,可广泛的应用于各式有温控或电压讯号量测需求的家电,如温控电热水瓶、红酒柜、消毒柜、电烤箱、冷暖空调控制器等。 HT66F0172的Osc
[单片机]
STM32-FSMC机制的NOR Flash存储器扩展技术
引言 STM32是ST(意法半导体)公司推出的基于ARM内核Cortex-M3的32位微控制器系列。Cortex-M3内核是为低功耗和价格敏感的应用而专门设计的,具有突出的能效比和处理速度。通过采用Thumb-2高密度指令集,Cortex-M3内核降低了系统存储要求,同时快速的中断处理能够满足控制领域的高实时性要求,使基于该内核设计的STM32系列微控制器能够以更优越的性价比,面向更广泛的应用领域。 STM32系列微控制器为用户提供了丰富的选择,可适用于工业控制、智能家电、建筑安防、医疗设备以及消费类电子产品等多方位嵌入式系统设计。STM32系列采用一种新型的存储器扩展技术——FSMC,在外部存储器扩展方面具有独特的优
[单片机]
基于Lonworks技术的网络打印服务器设计
  本文描述的网络打印服务器(NPS)可以为工业现场的多个智能装置提供可靠的打印共享服务,极大地节约了系统成本;并且还可以方便地对NPS的功能进一步扩充,构成一个分布式控制系统。Lonworks网络技术 是由Echelon公司开发的一种现场总线网技术,具有通信可靠、抗干扰能力强的优点,使其在航天控制、工业过程控制、楼宇自动化、通信等领域得到了广泛的应用。其采用的LonTalk协议完全支持OSI/ISO网络协议参考模型从物理层直至应用层的全部7层服务。Toshiba公司的TMPN3150/3120神经元芯片 内嵌了LonTalk协议,LonTalk协议和一个网络操作系统作为神经元芯片的固件提供给用户,方便了用户开发。神经元芯片支持多
[应用]
S3C2440裸机------Nor Flash编程_擦写读
1.读NorFlash 我们首先来实现读flash的函数,我们默认每次读取64个字节,然后我们把读取到的内容打印出来,其中前面打印数值,后面打印字符,对于不可见字符用...代替。 void do_read_nor_flash(void) { unsigned int addr; volatile unsigned char *p; int i, j; unsigned char c; unsigned char str ; /* 获得地址 */ printf( Enter the address to read: ); addr = get_uint(); p =
[单片机]
S3C2440裸机------Nor <font color='red'>Flash</font>编程_擦写读
MSP430 flash写入(三)
/* --COPYRIGHT--,BSD_EX * Copyright (c) 2012, Texas Instruments Incorporated * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above c
[单片机]
热门资源推荐
热门放大器推荐
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved