基于FPGA的Nandflash存储模块设计

2021.13科学技术创新表4优化前后性能值比较
通常在实际项目中,开发者无法针对特定的模型制定合理的切片方式,因此会出现大型3D 场景无法加载的问题。通过模型切片数据加载及贴图切片数据渲染的优化,
使得效率有一定程度的提升,特别对于大型的切片方式及小型的切片方式。算法提高了各种不同大小切片方式下的效率值,并使得在加载大型的切片和小型的切片时,终端运行正常,不会出现卡死等情况,运行得到保障。
3结论
目前类似于智慧社区的大规模型3D 场景基本都是基于客户端程序,大多使用U3D 工具开发,开发周期长,且移植性和扩展性不是很好。本课题通过算法研究,使大型3D 场景能以网页的形式展示,通过加载渲染优化算法,方便了产品的部署和维护,并能和其他网页直接交互,有更强的适应性和交互性。通过研究,使得大型3D 实景能通过WebGL 框架展现在任意载体上,达到自适应效果。同时使得实景加载渲染效率有大幅度的
提升,从而能更好地与其他页面完美交互,节省了大量的接口开发成本,从而获得一定的经济价值。
目前的初步研究成果虽然能应用于大多数的3D 场景,但还不是非常完美,在今后有进一步的提升空间,
主要包含如下方面:目前的研究主要在保持加载渲染时间稳定的基础上,避免了终端资源的利用超负荷,今后可以进一步通过算法节省加载和渲染时间;在研究过程使用的社区案例具有一定的规模,
在加载和渲染过程需要等待,今后可考虑设计预加载的技术来提高用户体验;目前的模型和贴图切割方法可以进一步优化,在保证质量的情况下进行压缩,控制模型切片数据加载及贴图切片数据大小。参考文献
[1]叶梦轩.基于HTML5和WebGL 的三维点云可视化方法[J].工
程勘察,2017(01):40-44+63.
[2]郑华.基于WebGL 的三维模型及其信息化技术研究[J].石家庄
铁路职业技术学院学报,2017(01):64-70.
[3]周昌权.基于HTML5WebGL 技术的校园全景漫游系统研究[J].电脑知识与技术,2016(35):86-88.组号
M1
M2
M3
M4
M5
M6
M7
M8
原始效率值 22.2 24.1 37.5 36.7 23.6 13 9.7    3.2
优化后效率值 29.7 31.5 37.6 38 36 35.5 27.8 21.1
效率值增量
7.5 7.4 0.1    1.3 12.4 22.5 18.1 17.9
基于FPGA 的Nandflash 存储模块设计
唐超
(深圳市汇顶科技股份有限公司,四川成都610041)
1概述
该基于FPGA 的Nandflash 存储模块的设计是隶属于随钻
测井系统的科研子项目,总体上要求该模块达到以下指标:a.数据出错概率不大于0.1%。存储模块作为随钻测井系统中保存原始数据的唯一单元,其可靠性和安全性就是仪器的生命线,
保证数据安全可靠将是本设计的重中之重。b.存储容量不小于32Gb ,电路面积尽可能小。随钻测井系统一次工作会生成大量的数据,一般最大可达30Gb ,为保证测井数据不丢失,存储模块必须有足够的空间容纳数据,同时要留出一定裕量空间。另外仪器上的空间资源是非常珍贵的,要求在设计存储模块时在保证存储容量的前提下应尽量减小电路面积。c.数据下载速率不小于5Mbps 。
Nandflash 属于闪存的一种,是一种非易失性存储器,相较
于Norflash 具有单片容量大、读写速度快、功耗低、温度性能好等优点[1],但其控制器设计相对也更加复杂。目前常见的随钻密度测井系统的存储介质一般都是Norflash ,主要是因为Norflash 控制简单
、操作方便,但由于Norflash 单片容量较小,常见的有512Mb/1Gb/2Gb [2],一般使用Norflash 的随钻测井系统的存储容量都较小,因为要想实现较大的存储容量将会占随钻测井仪器上很大的物理空间,这在实际应用中是不被允许的。因此本设计使用Nandflash 作为存储介质,牺牲控制器的复杂度换取存储大容量、小面积的特性。
要:根据随钻测井系统对数据可靠性和存储容量的需求,以“FPGA+Nandflash ”为框架定制化设计了一种大容量存储模
块,实现了大量测井数据的实时存储。本设计使用Verilog HDL 硬件描述语言对FPGA 进行硬件编程,实现各种功能接口,数据经采集量化、缓存,实时存储到Nandflash 存储器中,并将存储器中的数据通过UART 总线下载到PC 端作分析、判断。实验结果表明,基于FPGA 的Nandflash 存储模块的数据出错概率为0.029%,存储容量达32Gbit ,下载速率达5Mbps ,满足随钻测井系统要求。
关键词:随钻测井;FPGA ;Nandflash ;存储模块中图分类号:TP391.4文献标识码:A
文章编号:2096-4390(2021)13-0083-03
(转下页)
83--
科学技术创新
2021.13
对于Nandflash 控制器的选择,本设计在全面比较FPGA 和MCU 的基础上,决定采用并行处理能力更强的FPGA 作为控制器,同时由于FPGA 的设计更为灵活,发现问题可直接更改设计,减少了投片的风险,
发热涂料节省开支[3]。2硬件设计
Nandflash 存储模块包括数据采集、
实时存储以及数据下载三个单元。采集单元由FPGA 控制高速ADC 实现;实时存储单元由FPGA 控制Nandflash 实现,同时使用RAM 缓存数据;数据下载单元由FPGA 控制UART 收发器实现。按照数据采集->缓存->存储->下载流程,硬件设计考虑如下。
2.1数据采集
构建“FPGA+ADC ”的数据采集架构,
通过FPGA 控制高速ADC 采样、量化函数信号发生器输出的稳定模拟信号,将采样数据作为存储模块的输入数据存入存储器中。
全方位接触2.2数据缓存
构建“FPGA+双RAM ”数据缓存架构,采用乒乓切换技术[4],一片RAM 用于实时缓存ADC 采集到的数据,另一片RAM 用于将缓存的数据存入Nandflash ,以保证数据连续采集。在数据下载阶段,
一片RAM 用于接收缓存从Nandflash 中读取的数据,另一片RAM 用于将已缓存好的数据上传到PC 端,可实现数据的连续不间断下载。
2.3数据实时存储
以Nandflash 为存储介质,FPGA 为控制器,构建“FPGA+Nandflash ”数据实时存储架构,由FPGA 控制Nandflash 实现数据的实时存储。
2.4数据下载
采用UART 串口总线为数据下载总线,以FPGA 为串口控制器,构建“FPGA+UART 收发器”数据下载架构,同时使用乒乓切换技术,实现数据连续不间断下载。
基于以上考虑,设计的基于FPGA 的Nandflash 存储模块结构框图如图1所示。FPGA 通过标准的O NFI 接口与Nandflash 通信,实现数据的写入与读出;使用两块乒乓RAM 缓存数据;通过UART 串口将数据传输下载搭配PC 端。
图1基于FPGA 的Nandflash 存储模块硬件框图3软件设计
软件设计的主要任务是在FPGA 内设计实现各种功能接口,保证各功能单元正常运行,
柳编水果篮
下面逐一介绍各功能接口。3.1数据采集
在FPGA 内实现一个ADC 接口控制器单元,
控制高速ADC 定时连续采集量化信号发生器输出的信号,并将采样得到的数
据作为存储模块的输入数据。3.2数据缓存
在FPGA 内实现RAM 接口控制单元,该接口控制单元可由FPGA 厂商提供的IP 核生成。数据缓存采用的是乒乓切换技术将数据依次缓存于在两块RAM 中,在RAM 接口单元内,ADC
端的输入数据将被转换为RAM 地址,然后在对应的地址上执行加一操作,完成数据记录。上电初始,系统默认设置RAM1为用于缓存数据的RAM ,RAM2为空闲态;正常工作期间,当接收到切换RAM 命令时,RAM 接口控制单元首先检测当前RAM 是否正在被占用,如果有程序正在对RAM 进行操作,那么RAM 接口控制单元就会等到RAM 空闲的时候再切换RAM ,否则立
即切换。3.3数据存储
在FPGA 内实现Nandflash 控制器模块。设计的重点是坏块管理和ECC 校验的实现,本设计中使用的是基于块替换的坏块
管理办法,基于汉明码的ECC 校验方法。控制器模块逻辑结构图2所示,分为底层逻辑和上层逻辑,其中底层逻辑是对Nandflash 的基本操作,上层逻辑是将基本的Flash 操作进行封装以实现实际功能需求。3.3.1坏块管理
坏块是指Nandflash 中不能保证数据可靠的block 块,坏块一般有两种来源:一个是出厂坏块,
厂商会进行标记,另一个是用户坏块,是用户在使用过程中产生的[5],所谓坏块管理就是正确识别、标识坏块并采用一定的办法保证坏块的存在不影响Nandflash 的使用。设计中使用了三种方法来认定坏块:第一,第一次上电时读取特定位置的出厂信息,到出厂坏块;第二,当
擦除某个block 失败时,
将该块标识为坏块;第三,当发生编程失败时,直接将当前block 标识为坏块。本设计采用的是基于块替换的坏块管理办法,
基本思路是将Nandflash 存储空间划分为划分为工作区和保留区,保留区占比一般为2%左右[6],工作区是数据存储区;当工作区出现坏块时,从保留区出一块空闲的好块,更新逻辑地址-物理地址映射表,将坏块对应的逻辑地址映射到保留区的好块上,从而达到规避坏块的目的。基于块替换的坏块管理办法可使逻辑地址始终保持联系,对上层用户来说是感觉不到坏块有坏块存在的。
3.3.2ECC 校验
Nandflash 由于其物理特性和制造工艺的限制,存在bit 翻转误码现象,需要进行纠错处理。因此使用了基于汉明
钥匙复制机图2Nandflash 控制器逻框图
真空超导84--
2021.13科学技术创新(hanmming code)的ECC 校验方法,该方法能够纠正1-bit 错误,发现2-bit 错误
[7]
。ECC 校验方法的基本思路是当往Nandflash 中写入数据时,把每256字节的原始数据按照一定的规则进行异或运算生成3字节的ECC 校验码,然后将ECC 校验码写入OOB 区(out-of-band );当从Nnandflash 中读取数据时,把每256字节的读出数据再按相同的规则进行异或运算生成3字节的ECC 校验码,最后将写入时生成的ECC 校验码和读出是生成的
ECC 校验码按位异或,若结果为全0,则表示无错误(或出现了ECC 无法纠正的错误),若结果中有11个bit 为1,则表示存在一个错误且可以纠正,若结果中自存在1个bit 为1,则表示OOB 去发生错误,其余情况表示出现了无法纠正的错误。
3.4数据下载
在FPGA 内实现UART 串口控制单元。串口控制单元的核心是UART 收发串口,再辅以命令解析、执行模块,当收到下载数据的命令后,自动完成数据下载。
4测试结果实验条件如下:
4.1FPGA 芯片为Xilinx 的XA3S500E-4PQ G208;Nandflash 存储器为青岛智腾的LDMF4GA ;ADC 为TI 的ADS7883;SRAM 为CYPRESS 的CY7C1049CV 33;UART 串口芯片为HO LT 公司的HI-4853。
4.2测试环境:Nandflash 控制模块、
上位机PC 。使用FPGA 内部生成的模拟数据测试,通过写入1Gb 数据后再读出,观察数据是否与预期一致,表1列出了数据可靠性测试结果,共进行了4组测试。
表1模块读写可靠性测试
使用FPGA 内部生产的模拟数据,分批写入1Gbit.2Gbit,3Gbit,……,30Gbit,31Gbit,32Gbit ,测试模块的数据下载速率。图3为下载速率测试结果,其中值为100次实验平均值。
图3下载速率测试曲线
结果分析,基于FPGA 的Nandflash 存储模块相较于常规的
以Norflash 为存储介质的存储模块在容量上有了很大的提高,同时电路面积也减小了很多,数据错误概率约为0.029%,数据
下载的平均速率约5Mbps ,以上指标均满足设计要求。此外,所有的控制接口单元均在FPGA 内部以硬件电路的形式实现,降低了对操作系统的依赖。5结论
本文介绍了基于FPGA 的Nandflash 存储模块的性能指标
要求、软硬件设计,该型存储模块针对随钻测井系统对数据可靠性要求高、数据量大的特点,定制化的给出了基于“FPGA+Nandflash ”架构的设计方案,其核心就是通过FPGA 对Nandflash 进行读写调度和差错控制,辅以数据采集和下载功能。本设计的重点难点是Nandflash 控制核心的设计,
其中尤以坏块管理和ECC 校验的实现最为重要,这是保证数据可靠性的关键。当前,该型存储模块已
成功实现商用,各项性能指标均满足用户需求。下一步考虑从数据的实时压缩和Nandflash 磨损均衡的实现这两方面入手,以期大幅提升模块的存储容量、
数据的可靠性以及延长Nandflash 的使用寿命。
参考文献
[1]董海涵.随钻密度测井仪峰值检测方法研究及能谱采集存储
模块设计[D].成都:电子科技大学,2019.
[2]钟天明.基于FPGA 的Norflash 控制器的设计与实现[D].西安:西安电子科技大学,2013.[3]Xilinx 文档,PG070-selectioInterfaceWizard.
[4]张峰.基于SRIO 的高速图像串行传输系统设计[J].光电工程,2010,37(10):89-92.
ZHANGFeng.A High-speed Serial Transport Platform Based on SRIO for High -resoluti on
Image [J].O pto -Electronic
Engineering,2010,37(10):89-92.(in Chinese)
[5]彭晓光.新型全谱岩性密度测井仪的研制[D].中国舰船研究院,2012.
[6]李绪金.NAND Flash 固态存储可靠性关键技术研究[D].哈尔滨:哈尔滨工业大学,2018.
[7]Hai Ke Liu;Shun Wang;Xin Gna Kang;Jin Liang Wang.
Realization of NAND
FLASH
还春C ontrol Glueless Interface
Circuit[J].Advanced Materials ResearchVolume 3383,2014.PP
659-662.作者简介:唐超(1994,09-),男,汉族,籍贯:
四川眉山,职称:工程师,全日制研究生(硕士),研究方向:图像信号处理、大容量存储。
测试总次数/
(次)
正确次数/ (次) 出错次数/ (次)
错误率 (%) 1000 1000 o o 4000 3999    1 0.025 7000 6997    3 0.043 10000
9998
2
0.02
85--

本文发布于:2024-09-22 20:35:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/278031.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   设计   坏块   实现   下载   控制   存储模块
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议