为什么Micron的NAND Flash能达到200MB/s的读取速度
0赞今天看到新闻Intel, Micron claim world’s fastest NAND flash,就直接到Micron的网站上浏览了一下。Micron的新 产品分类为High Speed NAND Flash Products,用“High Speed”与原有NAND产品系列区分(估计ONFI 3.0兼容的产品出来后,还要加上“Ultra”,才能再分出一个类别来)。
Micron的High Speed系列目前按照容量分为8Gb、16Gb、32Gb三种,按照接口个数分为单端口(8Gb)和双端口(16、32Gb)两种。在Micron的网 站上还看不到详细的datasheet,只能看到一个Product Brief和Flyer。
通过Product Brief可以得到8Gb芯片的如下信息:采用了50nm而不是72nm工艺生产;是SLC而不是MLC结构;BGA封装取代了TSOP封 装;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。
从上面的信息可以看出,High Speed特性要归功于6ns/Toggle的I/O时间,对于8bit的接口来说,相当于166MB/s的传输速度。
但是,NAND Flash的访问速度不仅仅取决于I/O速度,还和Array传输时间、芯片内部缓冲结构和Plane数量有关。
〇、NAND Flash访问时间分析
访问操作 = 命令输入 + I/O操作 + Array传输操作,第一项的操作时间所占比例很小,在性能估算中可以忽略。
访问时间 = I/O时间 + Array传输时间,在上一代NAND Flash中,第一项占的比例最大,是第二项的4-5倍。
Micron主要采用了如下的4种技术缩短了平均的访问时间。其中第一种技术是第一次在NAND Flash上应用,也是这次“大提速”的核心技术。正是这项技术的采用,使上述公式中的第一项缩小到上一代的1/5,才使得其他3项技术发挥了最佳的效 果。
一、接口传输模式对I/O速度的影响
采用ONFi 2.0提出的DDR接口,提高了I/O数据传输速率:源同步(缩小了建立保持时间要求)、双边沿触发(加倍了数据传输速率)。
二、Block结构和生产工艺对Array传输速度的影响
与上一代NAND Flash相比,Page容量加倍,在Array传输时间基本不变的情况下,等效地加倍了Array传输速度。
72nm到50nm的工艺改进,缩小了芯片面积,提高了芯片速度(读Array速度提升不明显,写Array速度提升了1倍),降低了功耗。
三、缓冲与缓存对速度的影响
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即可)
四、多Plane操作对速度的影响
4个Plane对应4组缓冲与缓存,每一组可以分别操作。2个Plane交替操作,可以实现“乒乓操作”,达到2倍的Array访问带宽。4个Plane 交替操作,可以实现“乒乒乓乓操作”,达到4倍的Array访问带宽。在上一代的NAND Flash芯片中,采用2Plane结构是比较常见的。
五、200MB/s的读速度和100MB/s的写速度是怎样得到的
读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的,看来宣传还是略有夸张的)
写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。
从上面的分析可以看出,I/O速度限制了读取速度的最大值,在ONFi 3.0预计的400MB/s的I/O速度实现后,NAND Flash的平均读取速度也能够达到400MB/s(这回就要采用4Plane模式了);Array传输速度限制了写入速度的最大值,如果不对芯片的内部 结构和生产工艺进行改进的话,NAND Flash的平均写入速度很难进一步提高。
PS:上述分析是针对8bit位宽接口的单个芯片的性能分析。如果两片8bit的芯片并联使用,位宽可以加 倍,性能也会加倍,这是Samsung生产的SSD采用的技术。这样一来,SSD的性能就能达到 400MB/s,惊人啊!。
相关链接:
NAND Flash Technical Notes,“车上的东西实在是好哇~”,连FPGA实现的控制器和ECC代码都有了,好!
TN-29-07: Small Block vs. Large Block NAND Devices增大Block 容量的效果。
TN-29-01: NAND Flash Performance Increase - Using the Micron? PAGE READ CACHE MODE Commandcache模式读操作。
TN-29-14: NAND Flash Performance Increase with PROGRAM PAGE CACHE MODE Commandcache模式写操作。
TN-29-25: Improving NAND Flash Performance Using Two-Plane Command Enabled Micron Devices2Plane操作。
ONFi Webcast Series,“宁舍一顿饭,不舍二人转”。
ONFi BREAKS SPEED BARRIER FOR NAND FLASH,ONFi的网站上暂时还 不提供2.0的specification下载,只有这个Press Release可以看看。
http://www.onfi.org/docs/ONFI_1_0_Gold.pdf
Intel 发表15篇论文 公布多项全新技术,其中包括此项NAND技术,还包括PCM(相变存储器)。
Spoke to Micron about NAND and SSD
MLC Challenges Mobile-Entry Barriers
Memory Motivates Cell-Phone Growth
Sat Sep 6 200817:47:10 UTC+0800英特尔发布新款固态硬盘 读取速度达240MB/s
Wed Jul 01 2009 18:29:53 GMT-0700 (Pacific Daylight Time)Micron Introduces New 34-Nanometer High-Density NAND Products, Increasing Performance and Reducing Die Size
Fri Aug 14 2009 23:25:46 GMT+0800Micron Validates Denali's NAND Controllers for High-Performance Applications