原本在企业市场里使用SLC闪存的SSD,因为价格高、容量小的关系,逐渐被使用MLC闪存的SSD取代。对于密集混合读写的应用场景,为了保证5年以上的服务期,闪存制造商们又提出了eMLC这种比普通MLC更高耐久度的概念。eMLC闪存到底是销售吹嘘还是真的有其独到的优势呢?本文我会详细解释。
eMLC的e代表"Enterprise",也就是企业级的意思。eMLC比MLC品质更好,成本更高?简单来说是的。eMLC是一个统称,做法有很多种,大部分情况下,eMLC和MLC的区别主要是Die里的bit数不同,还有就是闪存颗粒内部控制器操作方式不同。(和SSD的主控一样,闪存颗粒内部也有一个控制器,这个控制器和SSD主控通过固件程序进行交流并数据处理,这个闪存颗粒控制器里面有很多参数可以调节,通过改变这些参数就可以让闪存颗粒达到不同的速度和耐久度需求)
要想明白MLC和eMLC的区别,有必要先了解当闪存数据手册上标注的擦写限制到达时会发生什么。我用洗衣机举例,这个洗衣机保修1年,但是并不代表1年后(366天)就一定坏。代入到MLC上,当突破数据手册上标注的3000次P/E并到达3001次P/E后,你会感觉到闪存写入速度得到一些提升。是的,你没看错,闪存写入速度提升了。这是因为经过多次擦写后,不少电子卡住,表现就像"终身"写入状态,这样在写入的时候需要的总时间反而降低了,这同时会带来擦除时间的延长,读取的时间则不受多大到影响,但是擦除时间延长后如果SSD主控固件处理的不好,反而会增加SSD的最大延迟。当MLC闪存擦写次数到达数据手册标称3000P/E的值后并不代表闪存就不工作了,这个值只是闪存制造商保证闪存品质的数值,这是基于JEDEC标准,在特定的测试环境、特定的温度、特定的数据保存期下闪存依然保证坏块不突破制造厂标称的最大范围。那么这些说明了什么呢?我之前提到了闪存内部控制器和参数,闪存制造厂可以依靠调节这些参数, 使得容量,性能,数据保存期和耐久度这4点达到一个平衡,自然也可以制造出不同客户需求的闪存。
下面我会对MLC和eMLC闪存数据表做假设举例,基于同一制造商的相同工艺闪存下的对比。(参数并无实际参考价值,真实数据请联系制造厂,这里纯为举例而设立,如有雷同纯属巧合)
举例1 : 看起来两者一样,实际不是。
参数 | MLC | eMLC | P/E 官标擦写次数
| 3000 | 10000 | P/E 达到官标后的数据保存时间
| 1年
| 1年
| ECC 的基本需求
| 30 bits (每1KB) | 30 bits (每1KB) | 平均编程时间(写入 - 单位Page)
| 1.5 ms | 1.5 ms | 平均擦除时间(擦除 - 单位Block)
| 5 ms | 5 ms | 官标保证每个晶片里最少有效Block数
| 4096 | 4096 |
上表中我们可以看到,两者区别只有P/E数。
做为制造厂切换到新工艺,每次生产都可以依靠之前的经验教训来调整参数,也就是我们说的步进更新,一般来说后期的良品率会比先期的更高。另外由于晶圆大小是固定的,如果要提升产量,就需要降低晶片(Die)的尺寸,这也是为何越是先进的工艺,价格越低的道理。
但是我们也知道,对闪存来说,越是小的晶片尺寸,越是不稳定,因为小意味着:
1、每个存储单元内的电子数量更少,更难区分当前数据状态是0还是1。
2、每个存储单元之间距离更短,更容易出现互相之间的干扰。
3、晶片中存储单元和高压放大元件之间的距离缩短,造成存储单元阵列间的干扰增大。
因此制造厂就必须平衡闪存的品质和良率,因为良率关系到生产成本,同时也关系到最终消费者的花费。
为满足不同客户需要,制造厂就可能同时卖2种不同类型的闪存,虽然都标称为20nm MLC,但是做为eMLC的这些晶片,存储单元之间的间距可以做的比MLC大。又或者eMLC的晶片,存储单元和高压放大元件之间的间隙也可以做的比MLC晶片大等等,依靠这些微小的差异即可造成颗粒耐久度全然不同,但也增加了产品制造成本。这个例子说明要想有好的闪存品质,大多数情况下只需要造更大更贵的闪存就好了,不过价格竞争激烈的市场又有多少最终消费者会为这种东西买单呢?下面我再来举例,如何不增加闪存晶片大小的情况下,提升耐久度。
举例2 : 大多数晶片都很不错,但有部分晶片则更优秀。
参数 | MLC | eMLC | P/E 官标擦写次数
| 3000 | 10000 | P/E 达到官标后的数据保存时间
| 1年
| 1年
| ECC 的基本需求
| 30 bits (每1KB) | 30 bits (每1KB) | 平均编程时间(写入 - 单位Page)
| 1.5 ms | 1.5 ms | 平均擦除时间(擦除 - 单位Block)
| 5 ms | 5 ms | 官标保证每个晶片里最少有效Block数 | 4096 | 4096 |
这个表和前面那个表没有两样嘛,难道又是硬件不同?非也,这里的不同来自于“分级、特挑”。就像CPU供应商出售不同时钟速率的处理器一样,闪存制造商也会对自己的产品进行分级和挑选。这种情况下的eMLC颗粒,一般出现于相同工艺MLC颗粒已经卖了不少时间后。制造厂在同种工艺下依靠生产经验并达到优秀的良品率后,再进行针对性的筛选分级。
由于挑选闪存晶片是件非常费时费力的工作(假设一个闪存晶片有4000个Block,每个Block有256个Page,编程1个Page需要1.5ms,那相当于每半小时才能写满整个晶片并做一次完整擦除来判断坏块数和其它信息),挑烂晶片比挑极品晶片简单很多,因此挑eMLC晶片需要等到同工艺的MLC成熟后(良品率接近100%,P/E普遍较高后)才值得进行,不然还不如放弃挑选或者索性如前面的例子1那样,增加晶片尺寸来提高耐久度。
所以说eMLC闪存颗粒可以是专门“造出来”的(例子1),也可以是专门“挑出来”的(例子2),自然也可以是专门“改出来”的(下面举例)。
举例3:提高ECC要求,增加闪存耐久度
参数 | MLC | eMLC | P/E 官标擦写次数
| 3000 | 10000 | P/E 达到官标后的数据保存时间
| 1年
| 1年
| ECC 的基本需求
| 30 bits (每1KB) | 60 bits (每1KB) | 平均编程时间(写入 - 单位Page)
| 1.5 ms | 1.5 ms | 平均擦除时间(擦除 - 单位Block)
| 5 ms | 5 ms | 官标保证每个晶片里最少有效Block数 | 4096 | 4096 |
这里的eMLC需要比MLC更多的ECC需求来保证耐久度。对生产商来说,唯一的区别是增加小部分的SA区域(生产成本增加有限)来放更多的ECC信息。
举例4:增加擦写所需时间,增加闪存耐久度
参数 | MLC | eMLC | P/E 官标擦写次数
| 3000 | 10000 | P/E 达到官标后的数据保存时间
| 1年
| 1年
| ECC 的基本需求
| 30 bits (每1KB) | 30 bits (每1KB) | 平均编程时间(写入 - 单位Page)
| 1.5 ms | 2.0 ms | 平均擦除时间(擦除 - 单位Block)
| 5 ms | 6 ms | 官标保证每个晶片里最少有效Block数 | 4096 | 4096 |
这个例子中,制造厂增加了闪存的擦写时间,使得耐久度提高。注:制造厂依靠针对闪存内的控制器参数做调节,降低速度来保证耐久度,对他们来说生产成本没有增加,但却可以卖高价,因为标称耐久度增加了。
举例5:降低数据保存期和最小保证Block数,增加闪存耐久度
参数 | MLC | eMLC | P/E 官标擦写次数
| 3000 | 10000 | P/E 达到官标后的数据保存时间
| 1年
| 3个月
| ECC 的基本需求
| 30 bits (每1KB) | 30 bits (每1KB) | 平均编程时间(写入 - 单位Page)
| 1.5 ms | 1.5 ms | 平均擦除时间(擦除 - 单位Block)
| 5 ms | 5 ms | 官标保证每个晶片里最少有效Block数 | 4096 | 4080 |
只需要把最小数据保存期从1年降低到3个月,并且把突破官标P/E后保证的最低有效Block数量降低(8GB的变7.96GB),就能把官标耐久度标称提高。仔细想一下你就会发现这里的2个闪存颗粒其实完全相同,区别就是制造厂的保修标准不同罢了。
本文总结:归结到底,eMLC只是一个统称,实际制造厂做了什么需要根据产品本身来判断。但是万变不离其宗,目的都是为了拉开和MLC闪存颗粒的耐久度差距,eMLC闪存品质比MLC好则是必然,价格摆在那里不是么?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|