当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于闪存的大容量存储阵列

摘要 大容量、高速度、高密度、低功耗、低成本、高可靠性和灵活性一直是星上记录设备信息存储技术的主要研究内容和追求目标。文中研究并实现了一种基于NAND型Flash的高速大容量固态存储系统,成果为实际研制应用于星的基于闪存的大容量存储器奠定了基础,具体较好的指导和借鉴意义。
关键词 记录设备;数据存储;大容量;NAND

    基于NAND的高速大容量存储阵列,是作为高速大容量存储原理样机中200 MB速率存储板的部分,而高速大容量存储样机,是针对星载大容量实时存储需求而进行的前期演示研究。
    高速大容量存储原理样机由高速接口、存储控制、存储阵列及通信母板组成,如图1所示。


    存储控制器是系统的核心,分为存储控制一和存储控制二,两者都通过10/100 M以太网络与上位机通信,接收上位机的指令。其中控制一接收指令后产生高速数据源,通过高速数据接口传至控制二,在上位机的指令下从而完成高速数据缓冲、数据速率变换、存储阵列控制。存储控制二将收到的上位机命令进行处理后转发至存储板,存储板根据NFlash的特性进行编程存储。
    文中研究重点是基于Nand Flash的200 MB速率存储板的设计与实现。电路设计和Verilog HDL程序,其编译、调试、综合、布线、配置和下载是在ISE 10.1开发平台下完成的,功能与时序仿真在Modelsim 6.2b平台下完成。
    ISE是集成综合环境的简称,它作为Xilinx FPGA/CPLD的综合性集成设计平台,可以完成整个FPGA/CPLD开发过程,其集成的在线逻辑分析仪ChipScopePro更是在硬件设计验证方面起到了不可忽略的作用。

1 存储芯片的介绍
1.1 Nand闪存的选型
    全球支持NAND技术闪存的生产厂商主要有Samsurrg、Toshiba、Fujistu等,其中Samsung呈现出比较突出的技术优势:容量大、存取速度快、体积小、成本低、芯片间的兼容性好,便于升级和更新。由于本系统对高速和大容量的需求,故选用K9WBG08U1M型4GNAND闪存作为存储阵列的存储芯片。
1.2 三星K9WBG08U1M型NAND闪存
    NFlash内部包含了两个独立的K9KAG08UOM。其基本存储结构按页和块划分。K9KAG08UOM芯片每片共有8 192块,每块有64页,共有8 192 ×64=512页。每页中有4 000+128 Byte的存储单元,每片的容量约有4×512 kB=2 GB。因此,单片K9KAG08U1M的存储容量为4GB。[!--empirenews.page--]
    由于NAND Flash特殊的基本结构,在进行读写操作的时候,外部控制器不能通过普通总线的形式对其内部某一位进行操作,而是以页为最小操作单位,在擦除操作时以块为最小操作单位。
    对NAND Flash芯片内部的某一页进行操作时,要先将操作命令字和地址信息写入,芯片才会根据操作命令字对给定地址的存储单元进行相应的操作。芯片的主要操作命令字可以查阅芯片手册。
    K9KAG08UOM的页编程写入时序图如图2所示,其中写周期tWC最小为25 ns;地址到数据加载的延迟时间tADL最小为75 ns;编程命令到编程开始的延迟时间tWH最大为100 ns;编程时间tPROG的典型值为200μs。


    设Flash芯片一页的容量为4 224 Byte,按典型时间计算,完成一页编程写入所需时间约为
    6×25 ns+75 ns+4 224×25 ns+100 ns+300μs=405.95μs
    其中,编程命令和数据传送的总时间为105.95 s,编程时间为300 s。单片K9KAG08UOM最高数据存储速率为
    4 224/405.95μs=10.405 B·μs-1=10.405 MB·s-1
    上述时间是按照最高速度计算的,实际使用时单片存储器的数据存储速率会小于它。如果留有足够的裕度,单片数据存储速率按照5 MB·s-1考虑,则对于200MB·s-1的要求,需要40片存储器并行工作,才能满足实时存储的要求。

2 FPGA芯片的选型
    存储器阵列控制单元利用高性能FPGA实现,它对器件速度的要求不高,主要是必须提供足够的IO引脚,具体要求如下:(1)输入LVDS通道数为16+2,其中接收8个,发送8个,高速时钟2个通道。(2)输入读写速度:>200 MHz。(3)输出LVTTL电平的IO数为(80+24)x 4,其中数据80位,控制信号12位。(4)命令地址等其它低速信号线为14线。(5)输出读写速度>20 MHz。(6)引脚需求数:(16+2)×2+104×4+4+10=466。
    拟采用Xilinx公司的Virtex-4系列FPGA可以满足设计要求,如XC4VLX80。其相关技术参数:(1)18 kBRAM模块:200个,3 600 kB。(2)内部存储器读写速度>500 MHz。(3)LVDS通道数为384。(4)用户可利用的IO引脚数为768。

3 FPGA控制逻辑设计
3.1 并行的NAND接口的设计
    并行操作可以按照需要将多片闪存芯片的数据线结合起来共同使用,以此提高系统读写带宽和读写效率。在并行系统中,引进模块化的思想,即将多片闪存芯片当作一个模块,把这个模块作为整个系统最小的数据存储单元,任何操作都是面向这些模块来进行。也就是说,多片闪存芯片作为一个整体,对外输出8×n位的数据。同时,并行操作也大大提高了系统的操作速度。以下以写4 kByte的数据进入一个由5片闪存芯片组成的的模块为例:当只对一片闪存芯片操作时,典型的写入时间为200μs。但当闪存芯片模块进行操作时,由于是对模块内的5片芯片进行同时写入,因此系统的整体操作速度提高了4倍。
    并行操作的实现依赖于并行的NAND接口的设计。板卡中采用的K9WBG08U1M的IO位宽为8 bit。由上节的分析可知,对于200 MB·s-1的要求,需要40片存储器并行工作,才能满足实时存储的要求。板上共载有40片NAND,分为4组,每组10片存储芯片,则单板容量为40×单片存储容量4 GB。为满足信号驱动特性的要求,每5片Flash存储芯片由FPGA单独驱动。[!--empirenews.page--]
    由Verilog HDL语言编写模块后编译下载,用ChipSeope Pro采集到与NAND芯片的接口控制信号如图3所示。


    图3中信号是第一级存储芯片的接口信号,是以cle_wrl的上升沿来作为触发的,其中dio_wrl信号对应于上面编程时序图的I/Ox信号,ale_wrl、cle_wrl、we_wrl、re_wrl、wp_wrl信号为Flash芯片的地址锁存、命令锁存、写使能、读使能、写保护信号。其中写命令h80后的00、40、1B是上位机通过控制板发至存储板的行地址,由时序可知,与Flash芯片的所需要的编程时序一致。
3.2 流水的缓存模块设计
    根据NAND Flash芯片的特点,高速数据控制模块的数据流按照页访问方式进行管理。设计选取的Flash芯片的页大小为4 kB,因此在写入的数据进入高速数据控制模块后,首先进行按照页大小进行数据分割。
    在FPGA内开辟出40个容量为4 kB的双口RAM的缓冲区,每10个为一组,相对应一组Flash阵列中的10片芯片。数据传输通道工作时序如图4所示。


    当数据率为200 MB·s-1时,数据传输周期是Tc1=5 ns,传送1页的时间是Tp1=4 096×Tc1=20.48μs,4级高速FIFO的延迟时间为△Tm=20 ns。在数据传输开始后,第1个10页数据(P1,P3,P5,P7,P9,P11,P13,P15、P17,P19)以200 MB·s-1的速率分别写入对应的存储器组缓冲区G0,第2个10页的数据以200 MB·s-1的速率分别写入相应的存储器组缓冲区G1,第3个10页的数据以200 MB·s-1的速率分别写入相应的存储器组缓冲区G2,第4个10页的数据以200 MB·s-1的速率分别写入相应的存储器组缓冲区G3。[!--empirenews.page--]
    当存储器组缓冲区G0写满之后,同时启动对该组内的10片Flash的数据传输然后进行编程,编程时间约为300 s。类似地,当存储器组缓冲区G1/G2/G3写满后,也按照相同的发送启动对其组内的10片Flash的数据传输和编程。


    这种过程可以看出,对存储器组的写入是顺序和串行的,而对存储器组的读出是同时和并行的。利用存储器组缓冲区的写入和读出速度之差,将输入数据速率降低为20 MB·s-1,同时又不会丢失数据。按照上述设计,后续的数据也以存储器组为单位,交替的被分配给4个存储器组的Flash阵列,并且完成对它的编程。数据缓存RAM组第一组与第二组各取一片的示意图如图5所示。

4 调试问题及其解决方案
4.1 行与数据不同步问题
    存储板需要从控制板接收行信号和数据,其中行信号与数据是同步的传输的,但是在实际的存储板接收数据采集的结果来看,行信号下的数据有时会丢失,有时会错乱,情况不太确定。而存储板与控制板的接口中,存储板接收控制板发送的写命令后,会在行信号的触发下进行写入操作,这种不确定性造成了整个Flash中数据的混乱。
4.2 异步时钟域数据同步的思想
    查阅资料后,发现这是属于异步时钟域同步问题中的同频异相问题。行信号与数据在传输过程中由于路径的不同,造成两者相位出现了偏差。而且在编程初期,为程序简单,在数据进行存储板时,未在随路时钟的控制下进入FIFO缓存,由此造成数据与行的不同步。选取的触决办法是在数据进入双口RAM缓存以前,用随路时钟对数据采样两次,即通常所述的用寄存器打两次。这样的做法可以有效地减少亚稳态的传播,使后级电路数据都是有效电平值。

5 结束语
    文中介绍了基于Virtex-4为控制核心的以NAND Flash芯片为基本存储单元所构成的大容量数据存储系统,对固态存储技术进行了探索。重点在于FPGA内部实现了并行流水处理技术,将高速数据无丢失地存入相对慢速的Flash芯片中。本文是在实际工程项目的基础上完成的,经过实践检验,达到了系统设计要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭