NAND speed effect.docx
- 文档编号:29547142
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:13
- 大小:1.10MB
NAND speed effect.docx
《NAND speed effect.docx》由会员分享,可在线阅读,更多相关《NAND speed effect.docx(13页珍藏版)》请在冰豆网上搜索。
NANDspeedeffect
发觉这1年多来自己看了太多主控的特性,对闪存反而开始有点陌生了,前段时间对SandForce的写入表现一直感触很深,分别看了1565搭配SLC的表现和1232搭配MLC的成绩,终于不得不承认一个事实:
NAND是原材料,主控只是加工师傅,没有好的原材料,本事再大也没有用。
这里我先举几个例子,太学术性的东西我也不懂,你们也不喜欢看,就从稍微简单点的说。
1.我先拿Indilinx公司的主控SSD来说事,就弄个大家熟悉的厂牌OCZ产品。
OCZOnyxSeriesSATAII2.5"SSD32G
型号OCZSSD2-1ONYX32G
玛瑙系列一直是OCZ的低端,这个是采用IndilinxAmigos主控的SSD。
从图中可以看到,颗粒是8颗IntelJS29F32G08AAMDB(4GB)
从Intel的颗粒DATASHEET里了解到,这个颗粒主要参数如下:
ProductFeatures
OpenNANDFlashInterface(ONFI)2.0
Compliant
Multilevelcell(MLC)technology
Organization:
—Pagesize:
4,320bytes(4,096+224bytes)
—Blocksize:
256pages(1,024K+56Kbytes)
—Planesize:
2,048blocks
Readperformance
—Randomread:
50μs
—Sequentialread:
20ns
Writeperformance
—Pageprogram:
900μs(TYP)
—Blockerase:
2ms(TYP)
Endurance:
—5,000PROGRAM/ERASEcycles
大致如下:
页大小:
4KB。
块大小:
256页=1MB。
Plane大小:
2048块=2GB。
随机读取:
50μs。
持续读取:
20ns。
页编程:
900μs。
块擦除:
2ms。
JS29F32G08AAMDB由2个Plane组成,支持Multi-plane指令。
拿到了数据我们就来算算这个颗粒的速度吧。
下载(54.9KB)
2010-12-3021:
22
上图为NAND的标准读取时钟图,有了这个图即可计算读取消耗的时间并得出传输率。
以上图为例:
重复次数 周期时间 总时间消耗
COMMANDLATCH(00h) 1 20ns 20ns
ADDRESSLATCH 5 20ns 100ns
COMMANDLATCH(30h) 1 20ns 20ns
R/B#LOW(tR) 1 50μs 50μs
数据输出周期 4,320 20ns 86.4μs
读取一个page需要的时间 136.54μs
数据传输率 约30MB/s
流程是这样,发送指令00h,1个时钟周期,发送地址,5个时钟周期,并发送指令30h结束,1个时钟周期,tR(读取)消耗50 μs,开始读取(数据输入),4320字节,1个字节1个时钟周期,所以总共86.4 μs,最终得出一个page读取需要花费136.54 μs,用1秒去除以这个时间,得出数据传输率约30MB/s。
这个就是纯读取一个page(无缓存)模式下的速度,很像我们用CDM测试里SSD的4KBQD1下的速度吧。
我们再来看看写入速度:
下载(27.34KB)
2010-12-3022:
11
上图为NAND的标准编程时钟图,有了这个图即可计算编程消耗的时间并得出传输率。
以上图为例:
重复次数 周期时间 总时间消耗
COMMANDLATCH(80h) 1 20ns 20ns
ADDRESSLATCH 5 20ns 100ns
COMMANDLATCH(10h) 1 20ns 20ns
R/B#LOW(tPROG) 1 900μs 900μs
数据输入周期 4,320 20ns 86.4μs
编程一个page需要的时间 986.54μs
数据传输率 约4.15MB/s
流程是这样,发送指令80h,1个时钟周期,发送地址,5个时钟周期,数据输入数据寄存器,4320字节,1个字节1个时钟周期,所以总共86.4 μs,发送指令10h结束,1个时钟周期,tPROG(编程)消耗900 μs,最终得出一个page读取需要花986.54 μs,用1秒去除以这个时间,得出数据传输率约4.15MB/s。
由于一个LUN(闪存逻辑单元,DIe)分成2个Plane,每个Plane包含一个page大小的数据寄存器和一个page大小的cache寄存器,每个Plane包含2048个Block。
而Intel的34nmMLCL63B支持Muti-Plane操作来提升性能。
对于读取,2个Plane可以一次操作8KB(每个Plane里4KB),这样直接发送2个Plane的地址可以省下1次tR的时间,最终读取速度可以提升到约35MB/s附近每个LUN(DIe),而写入可以省下一次tPROG时间,达到约7.4MB/s的速度。
既然如此,我们来看看实际速度是不是和上面的速度吻合。
我们上面得出的速度是7.4MB/sX8颗粒=59.2MB/s,去掉接口,传输等延迟损耗,CDM持续写入速度54.99MB/s,这个速度就这么出来了。
Amigos是个支持2通道8路交错16位位宽的ARM7主控。
上面这8个颗粒在PCB正面排列就会是这样的样子:
(2通4路)
下载(63.61KB)
2010-12-3117:
10
IntelONFi2.0异步通道速率为50MT/s,16bit就是100MB/s,2通道16bit即可带来200MB/s的带宽。
我们来算读取,上图中颗粒(8bit)1和2组成16bit接口,多plane操作下读取约70MB/s。
颗粒(8bit)3和4组成16bit接口(70MB/s),由于主控只有2通道,所以内部传输率就为70MB/sX2通道=140MB/s最大。
去掉接口,传输等延迟,上面CDM的速度129MB/s也就可以想象了。
-------------------------------------
如果我们不换颗粒,就只把主控换成barefoot,会不会有提升?
答案是读取有提升,因为按照上面的Amigo方案来说,读取被通道数限制了。
那么和OCZONYX采用相同颗粒但是却用的barefoot主控的是哪款?
30GB(32GB)-OCZSSD2-2SLD30G oczsolid230G
主控换成了没阉割过的Barefoot,其他的都没变,让我们看看速度。
主控为IDX110M01-LC 是个4通道8路交错16位位宽的ARM7主控
下载(53.52KB)
2010-12-3117:
26
相比Amigo主控,我们有了4个通道,每个通道100MT/s的带宽(16bit),综合起来就是400MB/s总带宽,已经超过SATA3Gbps的接口带宽,所以已经没有瓶颈。
同样的Barefoot除了通道增加了外,也只支持8路交错(上图32G方案里是4通2路),由于之前看到写入瓶颈不是通道带宽而是颗粒速度,所以写入上换了主控没区别,而读取因为4个通道的关系,提升较明显,不过主控优化的关系并不如字面上的强。
上面只是换了个主控(其实就加了2通道),就能提升读取能力。
那么接下来我们再看看如果增加颗粒会如何?
60GB(64GB)-OCZSSD2-2SLD60G oczsolid260G
背面再加上8个颗粒。
组成了4通4路工作模式。
如图:
下载(76.38KB)
2010-12-3119:
04
写入自然提高1倍(颗粒多了1倍),读取提升不大,主要是因为主控优化的问题。
(越接近外部带宽速度提升越难)
结论:
闪存的容量和性能是息息相关的,特别是MLC的写入性能偏低,没有一定容量的话是上不去的。
这个和主控没关系,主控最多限制闪存的发挥,但是原材料不行,再如何加工也没办法的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NAND speed effect