新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于NAND FLASH的高速大容量存储系统设计

基于NAND FLASH的高速大容量存储系统设计

作者:时间:2011-05-23来源:网络收藏

摘要:为了解决目前记录系统容量小、速度低的问题,采用性能优良的固态介质,大规模集成电路FPGA为控制核心,通过使用并行处理技术和流水线技术实现了多片低速时高速数据的,提高了整个系统的存储容量和存储速度。针对内部存在坏块的自身缺陷,建立一套查询、更新和屏蔽坏块的处理机制,有效的提高了数据存储的可靠性。
关键词:高速;流水线;FLASH;FPGA

0 引言
在数据采集存储系统中,往往需要对采集后的数据进行存储以方便后续分析处理。随着我国航空电子技术和雷达成像技术的快速发展,分辨率和采样率大幅提升,由此便带来了高速数据的存储问题。同时存储系统又要求掉电存储数据并具有良好的抗振动能力,因此存储电路通常采用非易失的电路芯片构成,而传统的DOC,E2PROM等存储技术由于容量小、速度低等缺点已经不适用高速数据的存储。快速发展的闪速存储器(FLASH MEMORY)因其具有体积小、成本低、功耗小、寿命长、抗振动和宽温度适应范围等特点,逐渐成为高速存储系统设计的主流方案。

1 FLASH的控制逻辑
目前FLASH芯片主要分为NOR型和型。NOR型具有可靠性高,随机读取速度快等优点,适用于程序代码的存储。型是一种线性存储设备,适用于大容量数据和文件的存储。 K9WBG08U1M是三星公司推出的一款NAND型FLASH芯片,存储容量达到4 GB,它内部由两片2 GB的FLASH构成,通过片选信号CE1/CE2进行选择控制,每片FLASH由8 192个块组成,每块有64页,每页能存储(4 096+128)个字节的数据。因此,访问芯片需要5个地址周期,其中3个周期的行地址用来确定某一页,2个周期的列地址用来确定每页的某个字节。对FLASH进行的操作主要有:存储、读取和擦除。由于指令、地址和数据复用芯片的8个I/O口,因此需要2个控制信号CLE和ALE分别锁存指令和地址。
存储操作一般使用基于页的连续存储模式,所有的命令字、地址、数据都是在的下降沿将数据驱动到I/O总线输出。
擦除操作与存储、读取操作略有不同,它是以块为单位进行的,因此只需要3个周期的地址即可。在输入擦除命令后,芯片便自动进行擦除操作,将存储体内的数据全部恢复为“FF状态,随后也可通过输入读状态命令字70H判断端口输出是否为0来检测此次擦除操作的成功性。

2 系统存储关键技术
K9WBG08U1M一页的存储容量是4KB,最短25ns时间写入一个字节。因此,芯片接口的写入速度最高为40MB/s。芯片的存储时间分为加载时间和编程时间两部分,写满一页所需的命令、地址和数据的加载时间总共为102.5μs,编程时间的典型值为200μs,最大编程时间为700μ-s。为了减小数据在存储过程中出错的概率,设计中使用最大的编程时间进行计算,因此对单片FLASH而言,存储速度最高可达5.1MB/s。
2.1 并行总线处理技术
按照操作FLASH的传统方法,存储完一片FLASH后,再进行下一片FLASH的操作,这样最高存储速度也只是单片FLASH的存储速度即5.1 MB/s,显然无法适用于高速数据传输存储的场合。通过并行处理技术可以很直观的提高存储速度,具体实现方法是:将N片低速FLASH芯片并联起来,使用相同的控制线、片选线和读写信号线,构成一个多位宽的FLASH组。这样N片FLASH并行工作,进行相同的操作,存储量可达到单片FLASH的N倍,所以理论上存储速度也是单片FLASH的N倍。
2.2 流水线技术
流水线技术在计算机领域得到广泛运用,它是在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。借鉴这种技术在进行FLASH存储时可以大大节省存储时间,提高存储速度。FLASH每页数据的加载时间和编程时间是器件本身所决定的,当加载完一页数据后,FLASH就进入忙状态,此时需要等待加载的数据自动编程,即将数据从寄存器中写入存储单元内,这期间不能进行其余的操作,当编程结束后,FLASH才恢复空闲状态,此后才能进行下一页数据的加载,然后再进行编程。因此如果可以善加利用编程时间,使FLASH在进行本页数据编程的同时去执行下一页数据的加载,这样便可节省存储时间,提高速度。加载完一页数据的时间约为102.5μs,最大编程时间为700μs,这样在每页的编程时间内可以完成7次的FLASH加载操作(700/102.5≈7),由此画出8级流水操作的时序图如图1所示。

本文引用地址:http://www.eepw.com.cn/article/191199.htm

c.jpg


图1中每片FLASH都分为加载时间和编程时间,当第一片FLASH完成第一页的数据加载后进入数据编程阶段。此时第二片FLASH开始进行第一页数据加载,加载完成后也进入数据编程阶段。然后依次对第三片到第八片FLASH进行相同的操作,当第八片FLASH也完成了第一页数据的加载后,此时系统耗费的总时间约为7×102.5=717.5μs,大于单片FLASH的最大编程时间700μs即第一片FLASH已经完成了数据编程,可以接着进行第二页的数据加载。当第二页数据加载完成后,第三片FLASH便完成了第一页的数据编程,可以接着进行随后操作。这种循环流水操作,使FLASH在高速存储过程中不必去考虑页编程是否完成,节省了页编程时间,从而使存储速度近似达到芯片接口写入速度即40 MB/s。由此可见,运用流水操作技术的存储速度将是单片FLASH存储速度的8倍,实现了FLASH的快速高效无丢失存储。


上一页 1 2 3 下一页

关键词: FLASH NAND 大容量 存储

评论


相关推荐

技术专区

关闭