FLASH芯片寿命试验设计及测试方法

2018-03-23 11:59杨凌云
电子技术与软件工程 2018年4期
关键词:寿命

摘 要卫星数传综合处理器采用了NAND FLASH芯片作为主要的存储介质。芯片资料显示,FLASH芯片具有十万次擦写寿命。随着芯片的使用老化,其坏区将逐渐增加。但在实际使用中,FLASH芯片的坏区增长与擦写次数为怎样的关系,目前尚未有实际实物参照数据。通过FLASH芯片寿命试验,在地面模拟FLASH芯片在空间连续加电并多次擦除、写和读操作,经过10万次擦除试验后芯片坏区并未增加,总坏区比例不超过厂家指标值。

【关键词】FLASH 坏区 寿命

1 引言

卫星数传综合处理器采用大容量NAND FLASH芯片作为主要存储介质,NAND FLASH芯片出厂时便存在坏区,因此单机的存储容量设计时留有一定的容量备份以补充因坏区造成的容量损失。FLASH的坏区数在使用过程中会增加,但产生的坏区数与擦除/编程次数的变化曲线目前还未知。根据厂家提供的资料表明,10万次擦除寿命末期单片的某一层坏区累计不到容量的2%,但缺乏厂家准确的测试曲线,尚无法判断存储芯片在寿命末期的坏区情况。

寿命试验主要是摸底擦除次数增加与坏区的变化趋势,依据该试验数据再对数传综合处理器寿命末期的存储容量做准确计算;同时单机在设计时留有了足够的存储空间余量,以确保卫星寿命末期的任务完成。

2 FLASH芯片出厂测试

寿命试验使用的芯片为64G FLASH芯片,该芯片由8片8Gb NAND FLASH芯片叠装组成,每个芯片包含4096块,每块包含64页,每页包含4K字节的存贮片。FLASH芯片出厂前,生产厂家做的电性能测试仅针对芯片每个层的0#区块。在实际使用过程中发现有FLASH芯片奇数块出错现象,考虑到存储芯片在装配完后拆装返修非常困难,因此在装配前需要对存储芯片所有区块进行测试,确保单机后续阶段不会因为存储芯片本身的问题而影响进度。

3 寿命试验设计

根据FLASH芯片的工作原理,擦除操作可以检测坏块的增长情况,写操作可以检测坏页的增长情况,通过这两个操作可以考核芯片长时间的加电工作后性能是否会下降(监视不同模式下的电流是否增加、擦除时间是否会超时以及编程时间是否延长),芯片的坏区是否会增加。FLASH芯片寿命试验具体包括以下三方面内容:

(1)选用的FLASH芯片在产品寿命末期是否能够满足总体指标要求;

(2)FLASH芯片的擦除次数,以及擦除操作过程中,坏区是否增长,增长的趋势如何;

(3)针对FLASH芯片奇数块出错现象,试验验证平台应同时测试多个芯片,剔除次品。

寿命试验验证平台设计如图1所示。

验证板上使用两块XILINX公司的FPGA XCV600-4CB228(为满足高低温实验考虑温度范围,选用工业级器件),一块FPGA控制三片FLASH,共实现同时测试6块FLASH芯片,利用FPGA内部RAM资源存储数据错误地址,所有控制命令通过一个串口发出,FLASH状态也通过串口传出。

验证板通过定制的朝阳电源供电,该电源有限流、过压、过载保护,承受工作环境温度为-10℃~+70℃,可保证测试设备正常工作。所有的操作都可以通过控制计算机软件界面发出指令来完成。软件由两个部分组成:控制指令模块,工作状态显示模块。

FLASH芯片壽命试验验证平台组成示意图如图2所示。试验设备包括高低温箱一个、试验板1套、稳压电源1套、测试计算机1台、测试电缆一套,试验温度为45℃。

试验过程中,串口1实时显示操作次数,每次操作时的坏区总数,串口2实时显示擦除和编程超时或反馈出错的区块号,串口3用于下传所有的坏区表、接收指令恢复某一坏区等需要交互的操作。寿命试验过程中每隔一定的动作次数后,需进行手动测试,通过串口遥测记录芯片在不同操作模式下的工作电流、坏区表、擦除反馈错误、擦除超时坏区、编程反馈错误、编程超时坏区以及误码率,并进行统计,最后绘成曲线。测试台需断电保持芯片擦写的次数,并在串口遥测中显示。

4 主控FPGA操作流程

验证板上FPGA主要控制FLASH芯片的擦除、写和读操作,各操作的流程如下。

4.1 块擦除流程

块擦除操作的第一个指令为60H,将其发送到I/O端口,并控制ALE、CLE、CE#、WE#、RE#信号选择命令输入;传输3个周期的块地址信息,在WE#信号的下降沿锁存地址寄存器;发送第二个指令D0H到I/O端口,同时控制相应的控制信号;读状态寄存器,若IO6为1或者R/B忙信号由低变为高表示已经完成擦除操作;判断IO0,若不为0表示该块为坏块。

4.2 写页流程

写页操作的第一个指令是80H;传输5个周期的地址信息;将数据通过I/O接口发送到存储器的数据寄存器中;发送第二个指令10H到I/O端口;读状态寄存器,若IO6为1或者R/B忙信号由低变为高表示已经完成写页操作。若写过程中产生坏块,一般在写过程中不更新坏块表,可根据读出数据内容进行地址定位,然后根据坏块地址注入指令将坏块地址写入坏块表中,以此更新坏块表。

4.3 读页流程

读页操作的第一个指令是00H;传输5个周期的地址信息;发送第二个指令30H到I/O端口;等待R/B忙信号由低变为高,表示存储器已经把目标页中的数据全部读出到其内部的数据寄存器;控制相应的控制信号选择读数据模式,在RE#下降沿将数据读出。

5 等价试验时间估计

查阅依据芯片手册,64G的FLASH芯片理论支持的最高工作时钟为40MHz,40MHz仅是理论值,工程不可实现。因为时钟越高,对芯片控制的时序余量越小,设计难度越大,可靠性越低,因此频率采用一级降额30MHz作为工作时钟。因此用30MHz的工作时钟,周期为33.3ns,先擦后写。

擦除一次时间:依据芯片手册,擦除一块所需时间擦除需1.5~2ms,芯片共有块数4096*8=32768,完成一次擦除操作所需时间32768*2ms=65.536s。

写一次时间:采用8级流水操作,节约了芯片写编程的时间,一次8级流水一页写操作需耗时(4096+24)*8*33ns=1088us,写满整个芯片共需4096*64*1088us,需耗时285s。

读一次时间:读操作读一页所需时间(4096+24)*33ns+26us=162us,读满整个芯片共需耗时4096*64*8*162us=340s。

根据FLASH芯片的产品手册,FLASH芯片的擦除次数最高不超过10万次,考虑到试验的有效性,以及综合考虑试验时间和项目进展情况,采用擦100次写100次读1次模式,完成10万次的擦除试验周期为409天。

由于FLASH芯片坏区增加主要在擦除过程和页编程过程中产生,又分为擦除后反馈错误,擦除超时后判为错误、编程反馈错误和编程超时后判为错误四种情况。因此,试验中必须对擦除操作和页写操作进行监视,检测四种情况下的坏区增长情况,并进行统计。

试验过程必须包含FLASH芯片的擦除和写操作,考核芯片长时间的加电工作后性能是否下降(监视不同模式下的电流是否增加、擦除时间是否会超时和编程时间是否延长),坏区是否增加。

6 验证结果

FLASH芯片寿命试验总擦除次数为100000次,试验开展共409天,试验结束后总坏块数为36个,并未增加。根据厂家提供的资料,10万次擦除寿命末期单片的某一层坏区累计不到容量的2%,试验采用的芯片总共4096块,36個坏块的比率为0.88%,不超过厂家指标值。

参考文献

[1]宋琪,李姗.针对Flash存储特性的航天器大容量固态存储技术[J].电子设计工程,2015,23(04).

[2]刘寅,朱钧.FLASH存储单元擦写过程中的电流分析[J].微电子学与计算机,1999(03).

作者简介

杨凌云(1987-),男,江苏省启东市人。研究生。硬件工程师。研究方向为空间数据处理。

作者单位

上海航天电子技术研究所 上海市 201109

猜你喜欢
寿命
人类寿命极限应在120~150岁之间
滚动轴承寿命高阶计算与应用
仓鼠的寿命知多少
马烈光养生之悟 自静其心延寿命
多轴蠕变-疲劳寿命预测系统软件开发