APP下载

一种存储芯片的坏块识别与管理分析

2012-02-07朱伟亭中国船舶重工集团公司第七一研究所湖北宜昌443003

自动化博览 2012年9期
关键词:存储芯片存储器流程图

朱伟亭(中国船舶重工集团公司第七一○研究所,湖北 宜昌 443003)

1 引言

目前在许多水中兵器中都需要一种测量仪器来测量各种数据与信息。在这些测量仪器中都需要存储芯片来进行数据的存储与运算。因此,存储器的选择是至关重要的,因为NAND FLASH芯片具有高密度、大容量、高数据存储速率和非易失性等优点,在许多测量仪器中都使用了这一存储芯片。这种芯片具有记录准确,数据完整有效;因此应用效果良好。然而实际工作中我们发现,有时候因为记录大容量数据而发现了NAND FLASH芯片有坏块的现象,导致了试验数据记录的不连续性,本文针对存储芯片的特性进行分析,进行了坏块识别和处理,使测量仪器的存储可靠性和安全性得以提高。

2 NAND FLASH存储芯片特性简介

测量仪器选用的NAND FLASH芯片为K9K8G08U0M,图1为K9K8G08U0M的结构示意图,整个芯片共由8192块(block)组成,每个块又由64页(page)组成,每页包含2112字节,其中前2048个字节为主存储区,后64个字节是每页保留的扩展区(space area),主要存储效验信息、效验码之类的数据,具体对应方式如图1所示。页是写入数据的最小单元,块是擦除的最小单元,在对FLASH进行写操作(页编程)时,只能把相应的位由1写为0,只有对块进行擦写操作时,才能把该块内所有位由0写为1,所以,写入数据时如果该页内已有数据,必须先擦除该块。

由于工艺和使用环境问题,NAND FLASH会不可避免出现一定比例的坏块。坏块是指包含一位或多位错误的块,由于制造工艺不能保证存储单元在其生命周期中保持性能的可靠,因此,在NAND的生产及使用过程中会产生坏块,而且坏块是随机分布的,可能在出厂时就存在坏块,也可能于使用过程中产生坏块。

图1 扩展区具体对应方式

3 坏块的识别和管理分析

3.1 坏块定义

坏块定义为包含一位或多位错误的块,分为初始坏块和使用坏块。

初始坏块:是在生产过程中产生的坏块,在芯片出厂时通常对每块的前两页进行检查,若没能有效清零则将坏块信息标志在该块第一页的扩展区的某一特定位置。

使用坏块:在NAND FLASH使用过程中,出现块清零、编程、读取错误时,均可定义该块在使用过程中产生了新的坏块。

在FLASH中块与块之间是相互独立的,坏块不会影响好块的性能。

3.2 坏块识别

初始坏块识别:第一次使用FLASH芯片时,清零之前先要读取坏块信息,依次读出FLASH所有块对应扩展区的初始坏块标志,并建立初始坏块信息表,程序流程如图2所示。

图2 初始坏块信息表程序流程图

使用坏块识别:K9K8G08U0M内包含了一个状态寄存器,向命令寄存器写入70h命令后,可以将状态寄存器的内容输出到I/O管脚上。可以通过读I/O管脚电平来判断写/擦除操作是否成功:低电平代表成功,高电平代表失败。以擦除操作为例,将依次对每块进行擦除,将擦除失败的信息形成使用坏块信息表,程序流程如图3所示。

3.3 坏块管理

当坏块被识别到后,对存储区内坏块进行相应管理才能有效完成存储。其中坏块管理包括:(1)坏块信息存储:将获取的坏块信息存储在好块中以防丢失,这是坏块管理中非常关键的一步。(2)屏蔽坏块:根据坏块信息表内容,在进行存储操作时,可直接进行坏块跳过或进行坏块替换来达到屏蔽坏块的目的。下面介绍具体处理方法和实现途径。

图3 使用坏块信息表程序流程图

4 具体实现方法和验证结果

4.1 处理方法

设要求测量仪器记录的数据总量为L(Mbyte),现考虑开辟存储器一块存储空间为3L(Mbyte),存储量是数据量的3倍,即有2倍冗余量。K9K8G08U0M存储总量为1(Gbyte)=1024(Mbyte),实际使用时3L是远小于1(Gbyte)的。根据图2、图3的流程分别建立初始坏块表1和使用坏块表2,设初始坏块表1内坏块总数为X块,3L使用存储空间内坏块总数为X1块;使用坏块表2内坏块总数为Y块,3L使用存储空间内坏块总数为Y1块。先在使用存储器前对存储器进行器件筛选,确保在预留的3L(Mbyte)空间内初始坏块总数为0,并保证总初始坏块率≤1‰,因K9K8G08U0M有8192块,则X≤Y,X1≤Y1且X≤8,X1=0。编制存储专用测试程序针对3L特定存储区进行专门测试,如回收数据量、回收速度、回收错误率及坏块信息等。

在进行存储操作前必须将上一次记录的数据全部擦除后才能正确存储,利用这一特点,在每次进行试验记录前先进行清零操作,即将FLASH所有块依次执行块擦除操作,每块块擦除指令执行后查询是否成功,如果不成功,便将此信息列入使用坏块表中,因X1=0,意味着没有初始坏块,则现在记载的坏块信息全部为使用过程中产生的,那么必须实时更新。每次操作一次清零,就将坏块信息表内容更新。

由于三星公司能确保FLASH芯片出厂时第0块第0页是不会损坏的,将坏块总数和使用坏块信息表内容存储在第0块第0页中,目前内记仪中采用了按页存储技术,在每次进行页编程时,将当前块与使用坏块信息表进行比对,若是坏块,则跳过整块,在下一块第0页继续存储,每块依次比较,确保存储的正确性,当坏块总数等于比较次数时,表明后续存储内已无坏块,可顺序按块按页存储。流程图如图4所示。

图4 坏块处理程序流程图

4.2 验证结果

前面已提到在一次试验时分析试验数据时发现了在存储器存在坏块时,数据记录不连续的情况,具体表现形式如图6所示。由于在内记仪进行数据记录时,在固定时间间隔内会提供准确的北京时间信息,在碰到坏块时,存储的数据在坏块前后时间是不连续的。在图5中可明显看出在画面中间部位数据发生了不连续现象。

当运用上述处理坏块的方法,进行软硬件优化设计后,在碰到坏块时,前后块的存储数据连续,时间信息也连续,没有产生漏记现象。记录的数据如图6所示。

图5 数据记录不连续图

图6 坏块处理后数据连续记录图

5 结语

FLASH芯片因其存储容量大、体积小、掉电数据不丢失及可多次擦写的优点,已广泛应用于各个领域,但始终受到坏块问题的制约,因此坏块的处理尤为重要,本文介绍了一种坏块处理方法,成功的应用在产品型号研制中,提高了记录的可靠性和安全性。

[1]董永帅.FLASH文件系统及存储管理技术研究与实现[D].华中科技大学,2008.

[2]彭兵,步凯,许欣. NAND Flash坏块管理研究[J].微处理机.2009,4,(2): 114.

[3]张胜勇,高世杰,吴志勇.基于FPGA的NAND Flash坏块处理方法[J].计算机工程.36(6):239-240.

猜你喜欢

存储芯片存储器流程图
云的识别指南
静态随机存储器在轨自检算法
一种程序源代码的标准化流程图转化方法∗
中国存储芯片打破韩美日垄断局面迈出坚实一步
基于单片机的点餐系统硬件设计
任意2~k点存储器结构傅里叶处理器
基于单片机的存储测试电路
存储器——安格尔(墨西哥)▲
嵌入式系统中无线通信技术的设计与实现
一种存储器容错设计方法