nand

标题:为什么Micron的NAND Flash能达到200MB/s的读取速度
2008-08-03 10:12:36
今天看到新闻 Intel, Micron claim world’s fastest NAND flash,就直接到Micron的网站上浏览了一下。Micron的新产品分类为 High Speed NAND Flash Products,用“High Speed”与原有NAND产品系列区分(估计ONFI 3.0兼容的产品出来后,还要加上“Ultra”,才能再分出一个类别来)。  riple  
      Micron的High Speed系列目前按照容量分为8Gb、16Gb、32Gb三种,按照接口个数分为单端口(8Gb)和双端口(16、32Gb)两种。在Micron的网站上还看不到详细的datasheet,只能看到一个 Product BriefFlyer。  riple  
      通过Product Brief可以得到8Gb芯片的如下信息:采用了50nm而不是72nm工艺生产;是SLC而不是MLC结构;4096Byte/Page,128Page/Block,512Block x 1/Plane,4Planes;I/O分为异步和同步(DDR)两种模式;速度最高的同步传输模式,读写I/O时间都是6ns/Toggle;读Array 30us/Page,写Array 160us/Page,擦Array 3ms/Block。  riple 
      从上面的信息可以看出,High Speed特性要归功于6ns/Toggle的I/O时间,对于8bit的接口来说,相当于166MB/s的传输速度。  riple 
      但是,NAND Flash的访问速度不仅仅取决于I/O速度,还和Array传输时间、芯片内部缓冲结构和Plane数量有关。  riple

点击看大图

 

〇、NAND Flash访问时间分析 riple

      访问操作 =  命令输入 + I/O操作 + Array传输操作,第一项的操作时间所占比例很小,在性能估算中可以忽略。 riple 
      访问时间 = I/O时间 + Array传输时间,在上一代NAND Flash中,第一项占的比例最大,是第二项的4-5倍。 riple

      Micron主要采用了如下的4种技术缩短了平均的访问时间。其中第一种技术是第一次在NAND Flash上应用,也是这次“大提速”的核心技术。正是这项技术的采用,使上述公式中的第一项缩小到上一代的1/5,才使得其他3项技术发挥了最佳的效果。 riple

 

 

一、接口传输模式对I/O速度的影响 riple

      采用ONFi 2.0提出的DDR接口,提高了I/O数据传输速率:源同步(缩小了建立保持时间要求)、双边沿触发(加倍了数据传输速率)。 riple

 

三、缓冲与缓存对速度的影响 riple

      Micron的NAND Flash的一大特点是:每一个Plane对应一个Page大小的缓冲(data register)和一个Page大小的缓存(cache register)。数据写入的顺序是:I/O -> cache register -> data register -> Plane,数据读出的顺序刚好相反。缓冲(data register)与缓存(cache register)之间的数据传输速度很快,data register可以把I/O操作和Array操作分隔开,形成I/O操作和Array操作的“两级流水线”。这种结构与上一代NAND Flash一样。(其实,4个Plane对应4个data register和1个cache register即可) riple

 

四、多Plane操作对速度的影响 riple

      4个Plane对应4组缓冲与缓存,每一组可以分别操作。2个Plane交替操作,可以实现“乒乓操作”,达到2倍的Array访问带宽。4个Plane交替操作,可以实现“乒乒乓乓操作”,达到4倍的Array访问带宽。在上一代的NAND Flash芯片中,采用2Plane结构是比较常见的。 riple

 

五、200MB/s的读速度和100MB/s的写速度是怎样得到的 riple

      读I/O时间:1Toggle/Byte x 6ns/Toggle x 4096Byte/Page = 24.6us/Page,与读Array时间30us/Page近似。在采用cache模式的读操作下,两级流水线的速度取决于“I/O速度”和“读Array速度”中较慢的一个,不采用多Plane操作,平均速度只能达到读Array速度,即4096Byte/30us =136MB/s;在2Plane模式下,读Array时间缩短至15us/Page,小于读I/O时间24.6us/Page,两级流水线的速度取决于“I/O速度”,平均速度达到I/O速度4096Byte/24.6us = 166MB/s,这与宣传中200MB/s的速度还有些差距。我们采用的I/O周期值是数据手册给出的,芯片实际能够运行的I/O速度往往要略高一些:在上面的分析中,只要I/O周期缩短至5ns/Toggle,“超频”后的读I/O时间就缩短至20us/Page,大于读Array时间15us/Page,两级流水线的速度仍然取决于“I/O速度”,这样一来平均读取速度就能达到4096Byte/20us =200MB/s。(从上面的分析看,如果不对I/O速度进行“超频”,平均读取速度是达不到200MB/s的,看来宣传还是略有夸张的) riple 
      写I/O时间:1Toggle/Byte x 6ns/Toggle x 4096Byte/Page = 24.6us/Page,与写Array时间160us/Page相差很多,单独采用cache模式不够,还要采用4Plane的“乒乒乓乓操作”,缩短写Array时间,尽量均衡流水线的两级操作时间。4Plane模式平均Array写操作时间为一次Array写操作时间的1/4,40us/Page。所以在cache模式配合4Plane模式的写操作下,流水线的速度等于流水线两级中最慢的“平均Array写速度”,可以近似为:4096Byte/40us = 102MB/s。 riple

 

 

      从上面的分析可以看出,I/O速度限制了读取速度的最大值,在ONFi 3.0预计的400MB/s的I/O速度实现后,NAND Flash的平均读取速度也能够达到400MB/s(这回就要采用4Plane模式了);Array传输速度限制了写入速度的最大值,如果不对芯片的内部结构和生产工艺进行改进的话,NAND Flash的平均写入速度很难进一步提高。 riple

 

PS:上述分析是针对8bit位宽接口的单个芯片的性能分析。如果两片8bit的芯片并联使用,位宽可以加倍,性能也会加倍,这是Samsung生产的SSD采用的技术。这样一来,SSD的性能就能达到400MB/s,惊人啊!。

 

相关链接: riple

NAND Flash Technical Notes,“车上的东西实在是好哇~”,连FPGA实现的控制器和ECC代码都有了,好! riple

TN-29-07: Small Block vs. Large Block NAND Devices增大Block容量的效果。 riple

TN-29-01: NAND Flash Performance Increase - Using the Micron? PAGE READ CACHE MODE Commandcache模式读操作。 riple

TN-29-14: NAND Flash Performance Increase with PROGRAM PAGE CACHE MODE Commandcache模式写操作。 riple

TN-29-25: Improving NAND Flash Performance Using Two-Plane Command Enabled Micron Devices2Plane操作。 riple

ONFi Webcast Series,“宁舍一顿饭,不舍二人转”。 riple

ONFi BREAKS SPEED BARRIER FOR NAND FLASH,ONFi的网站上暂时还不提供2.0的specification下载,只有这个Press Release可以看看。 riple

http://www.onfi.org/docs/ONFI_1_0_Gold.pdf riple

Intel发表15篇论文 公布多项全新技术,其中包括此项NAND技术,还包括PCM(相变存储器)。 riple

Spoke to Micron about NAND and SSD

避开误区全面对比MLC和SLC架构

MLC Challenges Mobile-Entry Barriers

Memory Motivates Cell-Phone Growth

二、Block结构和生产工艺对Array传输速度的影响 riple

      与上一代NAND Flash相比,Page容量加倍,在Array传输时间基本不变的情况下,等效地加倍了Array传输速度。 riple 
      72nm到50nm的工艺改进,缩小了芯片面积,提高了芯片速度(读Array速度提升不明显,写Array速度提升了1倍),降低了功耗。 riple

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到,NAND闪存的存储结构和操作方式可以从NAND的datasheet中了解到。每种NAND的datasheet都会介绍NAND的组成结构和操作命令。大多数NAND的datasheet在这方面都相似,只是容量大小和读写速度等基本特性有所不同。而引用中提到,NAND闪存相比于NOR闪存有更高的寿命(耐用性)。NAND闪存中每个块的最大擦写次数是一百万次,而NOR闪存的擦写次数是十万次。此外,NAND闪存的块尺寸比NOR器件小8倍,因此每个NAND存储器块在给定时间内的删除次数要少一些。同时,NAND闪存也存在位交换的问题,即某些情况下一个比特位可能会发生反转或被报告反转了。位反转的问题更多见于NAND闪存,因此使用NAND闪存时,建议同时使用错误探测/错误更正(EDC/ECC)算法来保证可靠性。另外,NAND闪存中的坏块是随机分布的,因此在使用NAND器件时需要对介质进行初始化扫描以发现坏块,并将其标记为不可用。与NOR闪存相比,NAND闪存的使用更为复杂,因为需要进行虚拟映射以避免写入坏块。 根据上述引用内容,NAND interleave是指在NAND闪存中进行读写操作时的交叉方式。由于NAND闪存的存储结构和操作方式可以从各种NAND的datasheet中得到,因此具体的NAND interleave方式可能因厂家而异。在实际开发NAND驱动时,需要了解MTD NAND Driver Programming Interface,这可以让我们对MTD有一个直观而又相对具体的认识。但是该文档似乎主要针对NOR闪存,对实际开发NAND驱动的帮助并不是很大。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [NandFlash驱动移植基础知识](https://blog.csdn.net/qq_41882586/article/details/123375973)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值