
SSD固态硬盘FLASH NAND同步、异步是什么鬼?我想许多初涉SSD的玩家都不是很明白。为什么我们要讲它们呢?是为了通过FLASH NAND的同步和异步来判断FLASH NAND的好坏。来兴趣了吧?
在讲FLASH NAND同步、异步之前,我们先来了解NAND FLASH的两个标准,Toggle和ONFI。
Toggle,全称Toggle DDR,DDR(Double Data Rate)。Toggle是东芝、三星以DDR接口技术为它们的NAND FLASH建立的标准。Toggle没有clock,写数据用DQS差分信号跳变沿触发,读数据用Host发的REN差分信号跳变沿发读request,DQS跳变沿输出数据。因此说Toggle为异步。
原来的SDR NAND FLASH速度为每秒40MB/s,Toggle DDR 1.0的最大传输速度提升至每秒133MB/s,Toggle DDR 2.0的最大传输速度更提升至400MB/s。(这里的传输速度仅仅指一个NAND FLASH的速度,不是SSD的速度。SSD是几个 NAND FLASH组成的RAID并联阵列,速度相比单个的NAND FLASH要快得多。)
ONFI,全称Open NAND Flash Interface。ONFI标准是由INTEL、镁光、海力士、SMI、群联、 索尼、飞索半导体等统一制定的连接NAND闪存和控制芯片的接口标准。
ONFI 1.0主要制定了闪存的物理接口、封装、工作机制、控制指令、寄存器等规范,增加了ECC支持,带宽从Legacy接口的40MB/s提升到50MB/s,提升不大,主要目的在于统一闪存接口规范,减轻产品厂商的开发压力。
ONFI 2.0标准将带宽速度提高到133MB/s。该版本使用了DDR技术,同时也使用源同步时钟来精确控制锁存信号,使其能够达到更高的工作频率。
ONFI 2.1标准带宽提升到166MB/s和200MB/s(工作模式不同速度不同),传输延时降低,改良电源管理降低写入操作能耗,加强ECC纠错能力,新增“Small Data Move”与“Change Row Address”指令。
ONFI 2.2增加了LUN(逻辑单元号)重置、增强页编程寄存器的清除和ICC测量和规范。LUN重置和页编程寄存器清除提升了拥有多个NAND闪存芯片设备的处理效率,ICC则简化了下游厂家的测试程序。
ONFI 2.3加入了EZ-NAND协议。EZ-NAND是Error Zero NAND的简写,这一协议将NAND闪存的纠错码管理由主控芯片中转移到闪存自身,减轻了主控芯片负担。
ONFI 3.0规范发布,使用NV-DDR2接口(和Toggle一样),不再使用clock。NAND闪存接口的传输速度得以翻番达到400MB/s,同时保持向下兼容。
从上面我们看出Toggle NAND为异步模式但是性能也很强悍,和ONFI 3.0差不多。ONFI标准下,同步和异步的NAND FLASH性能上却是有差异的。
为什么同一厂家,甚至同一批次的NAND FLASH,却存在异步和同步之分,或者ONFI协议不同?因为NAND FLASH生产时品质有好坏之分。NAND FLASH等级太次,无法实现同步模式,所以厂家就只能用ONFI1.0协议做成异步闪存来出货了。ONFI 1.0的带宽是50MB/s,而ONFI3.0是400MB/S,这个性能差异是非常大的。
由于世界晶圆紧缺,价格上涨,不排除有一些小厂为了节约成本而使用ONFI1.0的异步闪存。
逆向思维,除开东芝和三星的NAND FLASH,我们只需要知道NAND FLASH是同步闪存还是异步闪存,或者它的ONFI标准版本就可以知道NAND FLASH和SSD的好坏了。