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

时间:2022-09-20 05:39:09

【前言】一种基于ARM与FPGA的大容量固态存储板实现方法由文秘帮小编整理而成,但愿对你的学习工作带来帮助。本文结合某项目的需要,采用由ARM与现场可编程门阵列(FPGA)控制管理固态存储板的实现方法,实现单板(6U CPCI标准板卡)容量不低于4TB固态存储板。 2 系统方案架构 针对不同的应用,以ARM为处理器,可以扩展FPGA来实现不同容量的存储控制板,各种系统架构基本类似。...

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

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

关键词 ARM;FPGA;固态存储

中图分类号:TN957 文献标识码:A 文章编号:1671—7597(2013)021-062-02

1 概述

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

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

2 系统方案架构

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 结束语

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

参考文献

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

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

上一篇:计算机网络发展及其应用研究 下一篇:空压机组综合保护系统的设计研究