The invention discloses a control method of FLASH array based on FPGA, which is characterized by: hierarchical control: the first layer reads, writes and erases the actual physical address of FLASH array by page through timing control; the second layer establishes a mapping table from logical address to physical address, manages the bad blocks of FLASH array, and carries out additional bad blocks in the course of using. Dynamic management; Layer 3: Establishment of cyclic storage management, balanced use of FLASH; Layer 4: Data plus forward error correction coding. The invention realizes the control of AN FLASH array with arbitrary width and depth based on the FLASH array control method of the FPGA.
【技术实现步骤摘要】
一种基于FPGA的FLASH阵列控制方法及控制器
本专利技术涉及FLASH控制领域,尤其是一种基于FPGA的FLASH阵列控制方法及控制器。
技术介绍
当前,以FLASH存储芯片作为介质的SATA、mSATA、NVMe电子盘等应用正在取代传统硬盘得到广泛应用,性能越来越高,成本也越来越低;但是在一些电子设备中,受到体积以及结构功耗等限制,采用嵌入式计算机+电子盘的方案实现有困难,在有些高速流数据的处理系统中,数据需要实时存储,事后分析;比如信号处理领域中高速AD采集数据的存储,这些数据存储带宽超出了普通电子盘的存储带宽,采用高性能计算机+电子盘磁盘阵列的解决方案往往体积较大,并且环境适应性也不能满足一些特定要求;因此在很多定制嵌入式设备中,尤其是军用嵌入式电子设备里,直接采用FPGA控制FLASH芯片阵列的方案,这样集成度更高,结构更可靠,减少了元器件,提高了可靠性。目前使用FPGA直接控制FLASH阵列存储数据在军用电子设备数据存储是常用的解决方案,但是现有的直接采用FPGA控制FLASH阵列,存在如下问题:a)由于FLASH工艺本身的固有缺陷,FLASH芯片结构存在坏块(BLOCK),并且在使用的过程中,坏块数量会增加;b)FLASH芯片的每一块或者页有使用次数限制,SLCNANDFLASH一般在60000~100000次,MLCNANDFLASH的使用次数在5000次左右,TLCNANDFLASH的使用次数在3000次左右;c)FLASH芯片结构按照块(BLOCK)、页(PAGE)操作,擦除以块为单位,编程以页为单位(也可以以少于一页的数量进行编程操 ...
【技术保护点】
1.一种基于FPGA的FLASH阵列控制方法, 其特征在于:包括:进行分层控制:第一层:通过时序控制,对FLASH阵列的实际物理地址按页读、写,按块擦除;第二层:建立逻辑地址到物理地址映射表,对FLASH阵列的坏块进行管理,并在使用过程中对增加的坏块进行动态管理;第三层:建立循环存储管理,对FLASH进行均衡使用;第四层:对数据加前向纠错编码。
【技术特征摘要】
1.一种基于FPGA的FLASH阵列控制方法,其特征在于:包括:进行分层控制:第一层:通过时序控制,对FLASH阵列的实际物理地址按页读、写,按块擦除;第二层:建立逻辑地址到物理地址映射表,对FLASH阵列的坏块进行管理,并在使用过程中对增加的坏块进行动态管理;第三层:建立循环存储管理,对FLASH进行均衡使用;第四层:对数据加前向纠错编码。2.如权利要求1所述的基于FPGA的FLASH阵列控制方法,其特征在于:所述第四层中的前向纠错编码方法包括:使用RS编码进行前向纠错,数据读出后通过并行RS译码恢复数据。3.一种用于权利要求1或2所述的基于FPGA的FLASH阵列控制方法的基于FPGA的FLASH阵列控制器,其特征在于:包括FLASH阵列IO时序控制模块、坏块管理逻辑、FLASH阵列命令控制逻辑、接口管理逻辑、数据流处理器和CPU接口模块;所述FLASH阵列IO时序控制模块,用于FLASH阵列第一层次的控制时序;所述坏块管理逻辑,用于坏块管理,进行FLASH阵列第二层次的控制;所述CPU接口模块,用于控制命令、寄存器的映射,将整个FLASH阵列控制器例化为一个可通过CPU控制寄存器操作的IP,进行FLASH阵列第三层次的控制;分别与坏块管理逻辑和数据流处理器进行交互;所述FLASH阵列命令控制逻辑,用于FLASH阵列非初始化及命令控制逻辑;分别与FLASH阵列IO时序控制模块和接口管理逻辑进行交互,并与CPU接口模块进行交互;所述接口管理逻辑,将FLASH阵列接口转换为按页为单位类似SDRAM的数据读写接口,按照逻辑地址访问;与坏块管理逻辑进行交互;所述数据流处理器,完成外部数据读写访问与接口管理逻辑之间的数据交换。4.如权利要求3所述的基于FPGA的FLASH阵列控制器,其特征在于:还设有控制器对外接口;所述控制器对外接口包括:FLASH阵列接口、数据流读写接口、处理器EMIF接口和坏块管理缓存接口;所述FLASH阵列接口与FLASH阵列IO时序控制模块连接;所述数据流读写接口与数据流处理器连接;所述处理器EMIF接口与CPU接口模块连接;所述坏块管理缓存接口与坏块管理逻辑连接。5.如权利要求3所述的基于FPGA的FLASH阵列控制器,其特征在于:所述FLASH阵列IO时序控制模块的控制方法:将NANDFLASH芯片阵列的执行过程转换为空闲状态(IO_IDLE)、片选输出状态(IO_CS)、命令锁存状态(IO_CLE)、地址锁存状态(IO_ALE)、读异步时序控制状态(IO_ARE)、读同步时序控制状态(IO_SRE...
【专利技术属性】
技术研发人员:张泽渺,何建樑,叶明,
申请(专利权)人:成都旋极历通信息技术有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。