期刊发表网电话

全国热线
022-83699069

一种基于ARM与FPGA的大容量固态存储板实现方法

作者: 发布时间:2020-01-20 14:10:06 阅读: 54 次

摘要:

本文介绍了基于ARM 内核的NXPLPC2478FET208)微处理器,以JTAG ISP方式配置双FPGAXILINX XC5VLX155T)的实现过程。阐述了FPGAARM处理器的选用、硬件电路设计总架构、坏块剔除技术、纠错技术、均衡管理技术及开发工具使用与实现的调试过程。

关键字:ARMFPGA;固态存储;

一、概述:

近年来,大容量数据存储设备受到软硬件等发展的限制主要还是采用机械硬盘叠加组合而用。机械硬盘以磁盘片作为载体,采用机械马达,存在抗振性能低、低温性能差、噪声大等缺点。固态硬盘是以半导体作为存储介质及控制载体,无机械装置,具有抗震、宽温、无噪、可靠和节能等特点,在大型、复杂电子设备中发挥着越来越显著的作用。大容量固态存储技术正引起人们广泛的关注。

本文结合某项目的需要,采用由ARM与现场可编程门阵列( FPGA)控制管理固态存储板的实现方法,实现单板(6U CPCI标准板卡)容量不低于4TB固态存储板。

二、系统方案架构

针对不同的应用,以ARM为处理器,可以扩展FPGA来实现不同容量的存储控制板,各种系统架构基本类似。现以本公司某型号双FPGA控制技术实现6U CPCI标准板卡,其单板支持更大4TB存储容量固态板加以说明。

该固态存储板由128NAND FLASH组成(每片32GB),每32NAND FLASH为一组,总存储容量为4TB。其通过2片高性能FPGA1ARM处理器对NAND FLASH进行逻辑控制,共有464-bitFLASH总线。每32NAND FLASH有一条FLASH总线驱动,读写速度可达260MB/S,单板可达到1040MB/s总带宽。由于选择GTP×4高速串行总线方式,其可满足448MByte/s存储速度的项目需求。固态存储板内部组成框图如图1所示。

 图片1.png

1  固态存储板内部组成框图

三、ARM处理器,FPGA的选用及驱动算法实现  

NXP半导体是以1632位的ARM7TDMI-S CPU内核来实现LPC2478微控制器,其自带实时嵌入式跟踪与JTAG调试接口。LPC2478微控制器运行频率高达72MHzFlash程序存储器有512KB,可实现应用编程(IAP)和系统编程(ISP)的功能。LPC2478能够执行16Thumb指令及32ARM,可为技术人员在程序级下就可选择性优化应用。其98KB片内SRAM可由RTC供电存储数据,对于高性能CPU可通过ARM局部总线访问。通过双AHB总线系统,可保证片内Flash程序的执行与同步以太网USB DMADMA之间互不抢占。LPC2478微控制器对于多种用途的通信应用也十分适用,其具有丰富的串行接口及其它的外设。

Virtex-5 系列作为第二代芯片组合模块(ASMBLTM)列式架构,有5个截然不同的子系列(LXLXTSXTTXT FXT,FPGA系列中选择最为丰富的系列。主要应用包括具备串行连接功能的高性能逻辑、具备双密度串行连接功能的高性能系统、具备串行连接功能的高性能信号处理应用、具备串行连接功能的高性能嵌入式系统、其高性能通用逻辑应用每个平台都拥有独特特性,以满足诸多逻辑设计的需求。除更先进的高性能逻辑结构外,Vritex-5 FPGA内置大量IP硬核系统级模块、可支持多达330,000个逻辑单元及多达17个外部模拟输入通道、具有多速率FIFO支持逻辑、也可以通过JTAG TAP或内部结构访问系统监控器。

本例固态存储板中的同样为Vritex-5 FPGA芯片具备FLASH控制器功能,在整个FLASH控制技术中融入了均衡管理技术、实时坏块剔除技术、纠错技术等多项技术,对存储数据的正确性、稳定性及安全性得到了保障。这几项FLASH控制技术已在多个项目中稳定应用。产品实物正面图 如图2

图片2.png 

2  产品实物正面图

其中,均衡管理技术是采用顺序循环管理算法,包含线性表内含顺序表和链表,依据数据记录设备对数据读写访问的方式,在整个存储空间的BLOCK中均衡的进行ERASEPROGRAM操作方法,从而保证硬件的整体寿命。

实时坏块剔除技术是采用坏块实时监测电路方法,在读写过程对FLASHBLOCK状态进行实时监测,从而识别整个存储空间的BAD BLOCK,进行标识和替换,有效的保证了对BAD BLOCK的实时剔除。

纠错技术是采用针对二进制通道的BCH算法,具有严格的纠错能力、构造简单、编码较其它编码容易等特点,其中又采用了硬件高速电路并行工作方式,从而实现了高性能的BCH编码、解码算法,保证FLASH数据的正确性。

虽然以NAND Flash大容量存储器具有许多优点,但其有随机产生不可避免的坏块可能,此时如不能很好解决该坏块问题,将导致较高故障率。当在FLASH芯片出现硬件故障时,产品在存储速度或存储数据容量上还要满足紧急、临时侦查任务的数据存储实际使用要求时。这需要进一步提高存储板的容错能力,在发生硬件故障时可以通过降额使用的方式,保证产品仍能继续使用。降额设计包括硬件故障自动检测和降额处理两项功能。硬件故障时降额处理原理框图如图3所示。

产品上电时,硬件故障自动检测功能会对存储板的所有NAND FLASH进行硬件状态检测,如果发现硬件故障,则向上层报告硬件故障的区域。

为了保证存储板发生故障时仍能正常工作,上层的降额处理功能在接收到硬件故障报告后,能有效的屏蔽故障区域对硬件故障进行处理。

图片3.png 

3  硬件故障时降额处理原理框图

四、开发工具使用与实现的调试过程

a)ARM调试:本例中与NXPLPC2478FET208)微处理器使用的单片机开发环境为Keil uVision4 界面如图5所示,对已调试好的程序可通过ARM下载仿真器查看下载是否正确,并且确认程序是否能正常加载运行。若出现异常现象,可以进行相应排查处理及后期的低格处理。

图片4.png 

4  开发环境界面

b)FPGA调试:本例是以Xilinx ISE Design Suite 13.3为开发环境,通过仿真器可对其硬件FPGA程序进行编译、调试及下载、包括对其FLASH阵列焊接情况扫描,如果发现FLASHIDSTATUS信号线有异常情况,可通过FLASHIO值及片选信号确定FLASH出错具体位置。下图5为通过ChipScope Pro Analyzer工具,扫描FLASH状态以便排除不良焊接及有坏道的FLASH

图片5.png

5 ChipScope Pro Analyzer

同样在调试前期工作完成后,再通过内部信号源模拟测试记录、回放。既可判别整块固态存储板卡的数据的存储与读取的正确性。

五、 结束语

本文介绍了大容量固态存储板的实现方法,选用了MICRON公司MT29F256G08CJAAAWP:A NAND FLASH芯片作为基本的存储介质,采用了两片FPGAARM处理器协同控制管理的方法。充分利用了FPGA高性能逻辑结构、ARM高速率等特点,灵活而有效的使得12832GBNAND FLASH组成一体,实现了单板总存储容量为4TB大容量阵列固态板,单板可达到1040MB/s总带宽。由于其具有低功耗、体积小、重量轻、无噪音、抗震性强等显著特点,可满足在大型、海量数据存储要求、条件恶劣的应用领域。

参考文献

[ 1 ] 张瑜. ARM嵌入式程序设计[M ]. 北京:北京航空航天大学出版社, 2009.

[ 2 ] 田耘,徐文波.Xilinx FPGA开发实用教程[M ]. 北京:清华大学出版社, 2008.