一种基于FPGA的NANDFlash容错系统的制作方法

文档序号:9922730阅读:520来源:国知局
一种基于FPGA的NAND Flash容错系统的制作方法
【技术领域】
[0001 ]本发明涉及Flash容错技术,尤其涉及一种基于FPGA的NAND Flash容错系统。
【背景技术】
[0002]随着信息技术地不断发展,数字产品已经成为生活至关重要的一部分。在人们不断追求高品质生活的过程中,智能手机、数码相机、播放器等数字产品的容量和处理性能亟需提升。与此同时,存储产业面临着由巨大需求带来的发展机遇。现今民用消费电子市场中,闪存(Flash)在非易失性存储介质中扮演着主要角色。由逻辑架构上的差异可分为NORFlash和NAND Flash两种。NOR Flash在早期市场中占据主要地位,技术革新后,NAND Flash强调降低每比特的成本,可像磁盘一样通过接口轻松升级,具有速度高,可靠性高,功耗低,体积小、发热少、抗震强等优点,逐渐取代NOR Flash,日益成为存储器的主流。
[0003]由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此在出场和使用过程中会产生不能擦除错误的无效块,即坏块。出场时存在的坏块不能用于存储数据,已被厂家标识好,而后天由于使用次数增多引起的坏块的某些位不能发生翻转,使系统变得不稳定,导致Flash中数据无法被正常地读取和写入,甚至引起Flash报废等问题。因此,坏块管理一直是NAND Flash管理中的技术关键和难点。通过对坏块的检测和管理,不仅可以在第一时间发现坏块,而且可以根据需要跳过或替换坏块,并把替换的坏块存储在保留区中,可保障数据安全,避免数据丢失等不必要的麻烦。

【发明内容】

[0004]本发明的目的在于针对现有技术的不足,提供一种基于FPGA的NANDFlash容错系统。
[0005]本发明的目的是通过以下技术方案实现的:一种基于FPGA的NANDFlash容错系统,包括Flash坏块管理子系统、USB通信子系统和上位机。Flash坏块管理子系统由FPGA和Flash阵列组成,通过查询Flash在spare area的标志位检测出厂坏块,查询读、写和擦除操作的返回状态检测损耗坏块,并记录所有坏块的地址。将Flash分为3个逻辑区域,分别为映射好块区、坏块区和信息存储区,并建立地址映射表,存储到信息存储区JPGA作为核心控制器,通过USB通信子系统和上位机进行通信,可接收上位机发送的控制指令以及上传数据。通过上位机可以查询当前NAND Flash阵列的使用情况,包括好块区的空间大小、数据存储状态等,还可进行自动检测,更新地址映射表,并且可以读取Flash阵列中的存储数据以及将数据存储到Flash阵列中。
[0006]进一步地,所述Flash坏块管理子系统还包括FPGA配置电路和电源模块。电源模块用于将供电电压稳定到各个模块所需要的额定电压。FPGA配置电路和FPGA相连。FPGA选用的是Xilinx Virtex V芯片族中的XC5VLX330,FPGA配置电路选用的配置芯片为PlatformFlash XL系列下的XCF128XFT64C,选用40MHz晶振为其提供配置时钟,采用16位并行总线配置,配置方式选用从并配置,Is之内就可以完成系统配置。Flash阵列由16块Flash芯片组成,Flash芯片采用美光公司的NAND Flash系列下的MT29F8G16JPGA和MT29F8G16通过8根控制信号线相连,分别为CLE,ALE,CE,WE,RE,WP,R/B和一个16位的1 口。CLE是命令锁存信号,ALE是地址锁存信号,CE是片选信号,WE是写使能信号,RE是读使能信号,WP是写保护信号,R/B是状态信号(空或忙)。16位的1 口为地址、数据和命令时分复用总线。
[0007]所述Flash坏块管理子系统对Flash坏块的容错分为坏块检测、逻辑区域的划分和地址映射表的更新。开始坏块检测时,通过FPGA遍历Flash的所有块,查询每个块第一页第一个512字节对应spare area的第6个byte,若为非Oxff,贝Ij为出厂坏块。再对其他好块分别进行擦除、写入和读取操作,若擦除后写入和读取的数据一致,则标记为好块,否则标记为坏块。然后,将每块Flash划分为3个逻辑区域,分别为映射好块区、坏块区和信息存储区,信息存储区从好块区选取。检测完毕后,更新地址映射表,将所有好块的物理地址映射到好块区,所有坏块的物理地址映射到坏块区,并将地址映射表存储到信息存储区。
[0008]进一步地,所述USB通信子系统包括USB控制芯片。USB控制芯片选用CYPRESS的CYUSB3014,该芯片是基于ARM的USB3.0外设控制芯片,选择同步Slave FIFO从机方式实现卩卩64对0¥1^83014的控制,采用19.2MHz无源晶振为其提供时钟输入。采用32MHz晶振作为看门狗定时器,用于中断USB控制芯片内部的ARM内核,自动唤醒休眠模式下的USB控制芯片和复位ARM内核。FPGA和CYUSB3014通过11根控制信号线相连。分别为IFCLK ,FLAGA ,FLAGB,FLAGC,FLAGD/SLCS#,SLOE,SLRD,SLffR,PKTEND,FD[ 15:0],FIF0ADR[ 1:0]。IFCLK为通信接口的时序时钟,由USB控制芯片提供;FLAGA?FLA⑶为USB控制芯片内部的FIFO状态管脚,用于指示FIFO的当前状态;SLCS#为Slave FIFO的片选信号,低电平有效;FD[ 15:0]为16位双向驱动数据总线,用于FPGA和USB接口的数据交换;FIF0ADR[ 1: O]用于选择与H)数据总线通信的端点地址;SLOE为使能信号,高电平时使能数据总线FD的输出;SLRD和SLWR为读写选通信号,控制数据的流向。PKTEND用于选择数据包的长度,置低可传零长度或短长度数据包。
[0009]FPGA通过USB通信子系统和上位机进行通信,一方面,可接收上位机发送的控制指令并执行,所述控制指令包括下载数据、读取数据、自动检测等。另一方面,Flash坏块管理子系统工作完成之后,FPGA可以通过USB通信子系统向上位机传输数据、使用信息等。
[0010]进一步地,所述上位机通过USB3.0和USB通信子系统进行连接,其功能如下:
[0011](I)自动检测:点击自动检测按键,上位机通过USB通信子系统向FPGA发送自动检测控制信号,FPGA控制Flash坏块管理子系统对Flash阵列进行坏块检测、逻辑区域划分及建立地址映射表。
[0012](2)Flash阵列监测:执行完自动检测后,FPGA通过USB通信子系统把检测结果发送给上位机,并在上位机上显示Flash阵列的使用信息,包括好块区的空间大小、数据存储状态等O
[0013](3)数据下载:将需要存储的数据以文本的形式保存,点击数据下载按键,可以把文本数据下载到Flash阵列中。
[0014](4)数据读取:点击数据读取按键,可以从Flash阵列中读取存储的数据,并将数据保存到指定的文件夹中。
[0015]本发明具有的有益效果是:基于FPGA的NANDFlash容错系统的搭建,可以有效地解决坏块检测和管理问题,从而提高Flash存储性能,延长其使用寿命,保障用户的数据安全。系统包括Flash坏块管理子系统、USB通信子系统和上位机。USB通信子系统和控制中心之间建立连接,上行方向中可接收控制中心发送的控制指令并执行,下行方向中坏块管理子系统工作完成后可传输使用信息。Flash使用过程中的实时信息能得到及时更新,提高了动态管理的准确性和有效性。根据需要可通过上位机发送指令,实现Flash阵列自动坏块检测,并在上位机上显示Flash阵列使用信息的功能。此外,还可进行数据自由下载和读取操作,将指定文件夹中的文本数据下载到Flash阵列中或逆向读取并保存。系统具有成本较低、测量准确、部署与维护方便等优点,针对现有技术的不足提出了切实可行的处理方法。总之,通过NAND Flash容错系统,能对使用过程中遇到的坏块进行动态管理,动态更新坏块信息表,直接提高块空间利用效率,使Flash整体性能和处理速度得到重要的保障,对新一代大容量NAND Flash的应用发展具有参考意义。
【附图说明】
[0016]图1是本发明的整体结构框图;
[0017]图2是Flash坏块管理子系统结构图;
[0018]图3是Flash坏块管理方案流程图;
[0019]图4是USB通信子系统的USB控制芯片和FPGA的连接图;
[0020]图5是上位机结构图。
【具体实施方式】
[0021]下面结合附图和实施例对本发明作进一步说明。
[0022]如图1所示,本发明提出的基于FPGA的NAND Flash容错系统,包括Flash坏块管理子系统、USB通信子系统和上位机。Flash坏块管理子系统由FPGA和Flash阵列组成,通过查询Flash在spare area的标志位检测出厂坏块,查询读、写和擦除操作的返回状态检测损耗坏块,并记录所有坏块的地址。将Flash分为3个逻辑区域,分别为映射好块区、坏块区和信息存储区,并建立地址映射表,存储到信息存储区。FPGA作为核心控制器,通过USB通信子系统和上位机进行通信,可接收上位机发送的控制指令以及上传数据。通过上位机可以查询当前NAND Flash阵列的使用情况,包括好块区的空间大小、数据存储状态等,还可进行自动检测,更新地址映射表,并且可以读取Flash阵列中的存储数据以及将数据存储到Flash阵列中。
[0023]如图2所示,Flash坏块管理子系统核心部分包括FPGA、Flash阵列、FPGA配置电路。FPGA配置电路和FPGA相连。FPGA选用的是Xilinx Virtex V芯片族中的XC5VLX330,FPGA配置电路选用的配置芯片为Platform Flash XL系列下的XCF128XFT64C,选用40MHz晶振为其提供配置时钟,采用16位并行总线配置,配置方式选用从并配置,Is之内就可以完成系统配置。Flash阵列由16块Flash芯片组成,Flash芯片米用美光公司的NAND Flash
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1