基于FLASH阵列的高速存储系统设计

2014-05-25 00:34王静马婷婷杜科丁德锋
制导与引信 2014年2期
关键词:存储容量存储系统列表

王静, 马婷婷, 杜科, 丁德锋

(上海无线电设备研究所,上海 200090)

基于FLASH阵列的高速存储系统设计

王静, 马婷婷, 杜科, 丁德锋

(上海无线电设备研究所,上海 200090)

介绍了一种高速存储系统的设计方案。系统采用NAND Flash构建存储阵列,通过并行操作技术和流水操作技术提高存储带宽和存储容量。针对Flash阵列的操作管理和坏块检测问题,引入信息表管理方式进行高效智能化管理,保证系统可靠性同时提高了系统灵活性。测试结果表明,该系统存储速度高、存储容量大、稳定性高。

高速存储器;FLASH阵列;智能化管理

0 引言

数据存储系统是现代多功能雷达系统的重要组成部分,以保存在研制过程中各种试验数据进行后续分析处理。由于现代雷达系统采样率、分辨率较高,对存储系统的存储容量和存储带宽提出了较高的要求。

另外,由于弹载或者挂飞试验时环境相对比较恶劣,而且其系统存放空间有限,这就要求存储系统体积小、能够抗震动冲击。

目前常用的存储方案主要有磁带存储、磁盘存储、光存储、半导体存储等。这些存储技术由于各自的缺点已经不适用对恶劣环境下的高速数据存储。Flash作为一种新兴半导体存储器具有非易失、功耗低、体积小、重量轻、可靠性高等优点,成为复杂环境下数据存储设备的首选存储介质[1]。

Flash技术主要有2种类型:NOR和NAND。相比NOR Flash,NAND Flash具有存储密度更高、功耗更低、芯片引脚兼容性更好和成本效益更高等优点,因此,更适于大容量数据存储场合[2]。

单片NAND Flash芯片本身存在存储容量小、写入速度慢、存在无效块等缺点[3],因此必须采用合理的硬件设计和逻辑控制来克服。当前主流的存储模块多采用多片Flash并行的思想来提高存储速度,但却存在存储带宽不够、存储功能单一等缺点。本文构建Flash阵列采用并行加流水操作模式获得较大存储带宽,另外,本文通过操作信息管理模块来进行无效块和操作信息的管理,在保证存储可靠性同时提高了存储的灵活性,可以实现更高效和智能化的Flash阵列管理和访问机制。

1 基于Flash阵列的存储系统方案

1.1 存储系统硬件架构

基于Flash阵列高速存储系统主要由NAND Flash阵列、高性能FPGA、高速ADC、USB数据传输等模块构成,其结构框图如图1所示。

系统分为外场试验模式和数据验证模式两种工作模式。外场试验模式时,高速ADC根据USB命令传输来的控制参数按照特定的时序采集原始信号,经FPGA缓存后存储在Flash阵列中。试验结束后,根据USB命令传输的数据读取指令,将Flash阵列中的数据经FPGA缓存后通过USB将数据传输到计算机。

数据验证模式时,将PC机上原始数据文件写入到Flash阵列中,FPGA控制Flash阵列按照时序将数据读出,并通过高速接口传输到信号处理板进行信号处理的验证。

1.2 Flash阵列设计

图1 弹载SAR高速存储系统结构框图

NAND Flash芯片选用SAMSUNG公司的K9WBG08U1M,位宽为8位,容量为4 G*8 bit,最大访问速度为40 MB/s[4]。为了达到200 MB的读写带宽和256 GB的存储容量,系统中采用8组Flash芯片并行操作,每组内8片FLASH流水读写的方式,另外为了进行操作信息和坏块信息的存储,每组内又多加了一片Flash。这样,整个存储系统由72片Flash芯片组成Flash阵列,其结构框图如图2所示。

为了在有限的面积内排放72片Flash芯片,在布局布线时需要采取一些措施在减少体积的同时保证系统功能,例如Flash器件正反面重叠放置、共用Flash写保护电路、电源模块电路、重组Flash数据线方便FPGA连线等。

2 基于FPGA的Flash阵列管理方法

2.1 Flash阵列管理的模块组成

弹载SAR高速存储系统的Flash阵列管理架构如图3所示。FPGA接收USB的命令,判断并解析命令的类型对Flash进行相应操作。整个管理系统主要包括输入数据控制模块、存储表信息模块、Flash控制模块、非流水模式Flash控制模块、流水模式Flash控制模块、输出数据控制模块以及USB命令解析模块。其中,流水模式Flash控制模块用于管理每组前8片芯片,完成流水模式下Flash的擦除、读、写等操作,非流水模式Flash控制模块用于管理每组第9片芯片,完成信息的存储功能。

图2 Flash阵列结构图

图3 FLASH阵列管理的整体架构

整个系统的信息管理由非流水模式Flash控制模块和存储表信息模块共同组成,用于存储和管理所有Flash芯片的操作信息和坏块信息。Flash控制模块控制整个Flash阵列操作的过程,完成Flash芯片的擦除、写、读等操作。

2.2 流水操作技术

Flash的写入首先是写寄存器,再进行自动页编程。写寄存器时间很短,以每个Flash芯片的接口速度为25 MB/s来进行设计,一页写寄存器的时间为105.6 us,而页编程时间最大为700 us[5],利用这一特点,对Flash采用流水方式进行读写操作,在页编程期间,可以进行页编程时间/写页寄存器时间=700 us/105.6 us≈7,说明经过7组的页写入加载操作后,第1组Flash编程结束,又可以进行再次循环加载。因此,采取每组并行8片Flash组成流水线结构,如图4所示。这样在时间上实现了复用,缩短了整个Flash阵列的页编程周期,提升了整体Flash阵列的写速度。

图4 Flash流水操作示意图

2.3 坏块列表建立和更新

Flash芯片在出厂时,在每一块第1页和第2页的空闲区的首字节处标记了是否为坏块[6],因此初步建立坏块列表时要检查第1页和第2页信息,如果不是FFH则为坏块,需要做出标记,这样进行读写或擦除时才能屏蔽掉坏块保证信息存储的正确性。

另外,Flash在长期使用过程会产生新的坏块[7],需要及时对坏块信息进行更新。建立坏块列表和更新坏块列表流程如图5(a)所示。RAM存储列表更换的详图,如图5(b)所示。

图5 建立及更新无效块列表流程图

在进行坏块表存储时,若每片Flash都独自建立坏块列表,会大大增加存储容量和复杂度,由于Flash芯片总的坏块数量很少,把每组8片Flash各自的坏块信息相与,建立一个以组为基准的坏块列表,那么对每组Flash的操作控制都基于一个坏块列表,实现和操作起来更加简单。

2.4 操作信息管理

为了保证信息存储的可靠性与灵活性,必须对Flash阵列的操作信息和坏块信息进行管理。在对Flash阵列进行流水线读写和擦除之前,需要读取坏块列表信息以及相应的操作基本信息, Flash操作完成以后,需要相应的更新这些信息,为后续操作提供依据。

在进行坏块信息管理时,对读、写操作分别建立独立的坏块列表,读操作时对应的坏块列表为读表,写操作时对应的坏块列表为写表,写表更新以后,读表相应的进行更新,保证读写表的一致性。读写表的独立管理不仅使得设计简明操作简单,而且还可以防止写操作过程中出现新的坏块。

本文对写表、读表和操作基本信息表统一管理,管理流程及存储表信息如图6所示。采用FPGA内部的双口RAM和每组第9片Flash来共同存储信息表,Flash地址与RAM地址是一一对应的。

操作过程中出现坏块以及产生的操作基本信息,可以先更新RAM信息,等存储操作结束后再将更新的RAM信息写入Flash中保存。这样读取或更新所有表信息时,只需对FPGA内部RAM进行操作,提高了访问速度,而系统掉电后所有信息都保存在Flash中,保证信息不会丢失。

图6 操作信息管理流程及存储表信息

3 系统调试和测试

在实验室环境下,以弹载SAR雷达导引头为例,按照图7所示搭建的测试平台对整个系统进行测试。

图7 系统测试平台

3.1 存储基本功能测试

该高速存储系统具有的基本功能:擦除、数据文件写入、数据读取、Flash状态检测(包括ID号、当前状态、操作次数以及使用量等)。

读写测试时,PC机将指定数据文件write. bin通过USB接口写入到Flash阵列中,存储结束后,再通过USB接口将读取的数据上传到PC机并存储在read.bin中,通过write.bin和read. bin的数据对比,可以验证该高速存储系统数据读、写、无效块管理的正确性。

3.2 实时存储验证

对弹载SAR雷达导引头产生的信号进行采集和存储,高速ADC的采集速率为200 MB/s,存储时间持续20 min。采集结束后,从FLASH阵列中读取的数据通过USB上传到PC机中,在PC机中对存储的数据进行分析。通过数据对比和验证,该高速存储系统能够完成20 min的数据完整不间断的存储,图8为利用ChipScope软件进行读、写操作并将数据读入到Matlab中画图显示结果。

图8 实时存储验证结果

4 结束语

本文采用FPGA和NAND Flash阵列构建高速存储阵列,通过并行+流水的方式提高了数据存储的带宽,增大了存储容量。采用对操作信息表及无效块进行专项管理技术,增强了Flash操作的灵活性,避免了对坏块的操作,保证了数据高度准确性。

试验表明,该高速存储系统具有体积小、操作灵活、可靠性高等特点,既可以作为高速数据实时采集存储系统也可以作为数据回放验证系统,可以满足SAR雷达或者宽带雷达的数据存储需求。

[1] 朱知博.基于NAND FLASH的高速大容量存储系统设计[J].现代电子技术,2011,34(8):170-173.

[2] 胡世明,康怀祺,腾云龙.高速大容量存储系统的应用设计[J].火控雷达技术,2012,41(1):34-38.

[3] 李毅.高速数据采集、存储及处理系统设计[D].西安:西安电子科技大学,2009.

[4] Samsung.K9XXGG08XXM Flash Memory Data-Sheet rev.13[EB/OL].http://www.sumsung.com,2011.

[5] 李超,王虹现,邢孟道.高速大容量Flash存储系统设计[J].火控雷达技术,2007,36(3).

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

[7] 侯佳娜,姚爱琴,孙运强.提高FLASH存储系统速度和安全性的研究[J].仪表技术,2009,(12):45-47.

Design of High-speed Storage System Based on FLASH Array

WANG Jing, MA Ting-ting, DU Ke DING De-feng
(Shanghai Radio Equipment Institute,Shanghai 200090,China)

Design of storage system and the implementation of the system is preduced. NAND Flash is used to construct the storage array;the parallel bus operation and pipeline operation technique is used in the system to improve storage capacity and bandwidth.The information table is introduced to solve the problem of management of this Flash array and invalid-block problem reliability and flexibility.Test results indicate that this storage system features high-speed,large capacity and stable performance.

high-speed storage;FLASH array;intelligent managenat

TN958

A

1671-0576(2014)02-0028-06

2013-10-08

王静(1984-),女,工程师,硕士,主要从事SAR信号处理技术研究。

猜你喜欢
存储容量存储系统列表
学习运用列表法
扩列吧
天河超算存储系统在美创佳绩
基于Hadoop 的海量医药电商数据存储系统设计与开发
列表画树状图各有所长
浅析云盘技术及存储原理
高速信号采集及存储系统的信号完整性研究分析
基于电池管理系统的数据存储系统设计
2011年《小说月刊》转载列表
Buffalo推出四硬盘网络存储器 主打Soho一族