〇、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