编辑:Helan 发布:2018-10-19 14:52
FTL算法的好坏,直接决定了SSD在性能(Performance)、可靠性(Reliability)、耐用性(Endurance)等方面的好坏,FTL可以说是SSD固件的核心组成。
FTL是Flash Translation Layer的缩写,完成主机(或者用户,Host)逻辑地址空间到闪存(Flash)物理地址空间的翻译(Translation),或者说是映射(Mapping)。SSD每把一笔用户逻辑数据写入到闪存地址空间,便记录下该逻辑地址到物理地址的映射关系,下次主机想读取该数据,SSD根据这个映射,便能从闪存上把这笔数据读上来然后返回给用户。
完成逻辑地址空间到物理地址空间的映射,这是FTL最原始也是最基本的功能。事实上,现在SSD中的FTL,要做的事情还有很多。SSD使用的存储介质一般是NAND Flash。
SSD的存储介质除了Flash,还有RAM,还有3D XPoint等新型存储介质。如无特别说明,后面说的SSD存储介质都是指NAND Flash,翻译为“闪存”。
闪存有一些特性,比如:
闪存块(block)需先擦除才能写入,不能覆盖写(Update in place);
由于不能覆盖写,当写入一笔新的数据,不能直接在老地方直接更改(闪存不允许在一个闪存页(page)上重复写入,一次擦除只能写入一次),必须写到一个新的位置,因此,FW(Firmware,固件)需要维护一张逻辑地址到物理地址的映射表;另外,往一个新的位置写入数据,会导致老位置上的数据变成无效,这些数据就是垃圾数据。垃圾数据会占用闪存空间,当闪存可用空间不够时,FTL需要做垃圾回收,即把若干个闪存块上的有效数据搬出写到某个新的闪存块,然后把这些闪存块擦除,得到可用的闪存块。这就是GC(Garbage Collection,垃圾回收),是FTL需要做的一件重要事情。
闪存块都是有一定寿命的;
每擦除一次闪存块,都会对闪存块有磨损,因此闪存块都是有寿命的,用PE(Program/Erase Count)数衡量。我们不能集中往某几个闪存块上写数据,不然这几个块很快就会因PE耗尽而死亡,这不是我们想看到的。我们期望所有闪存块都来均摊数据的写入,而不是有些块累死,而其他块眼瞅着那些闪存块死亡而无动于衷;FTL需要做Wear Leveling,让数据写入均摊到每个闪存块上,即让每个块磨损都差不多,从而保证SSD具有最大的数据写入量。
每个闪存块读的次数也是有限的,读的太多了,上面的数据也是会出错,也就是读干扰(Read Disturb)的问题;
FTL需要处理读干扰问题,当某个闪存块读的次数快达到一定阈值时,FTL需要把这些数据从该闪存块上搬走,从而避免数据出错。
闪存的数据保持(Data Retention)问题;
由于电荷的流失,存储在闪存上的数据会丢失。这个时间长则十多年,短则几年甚至几月,甚至更短。(这是在常温下,如果高温的话,电荷流失速度会加快,数据保存的时间就更短了。)
如果SSD不上电,FTL对此也是毫无办法,有劲使不出呀(根本没有运行机会)。但一旦上电,FTL就需要对此做点什么,比如扫描闪存,发现是否存在数据保持问题,如果存在,则需要搬动数据,防患于未然。好的FTL,就需要有处理数据保持问题的能力。
SSD的使用中,也会产生新的坏块;
坏块的症状是擦写失败,或者读失败(ECC不能纠正数据错误)。坏块管理也是FTL的一大任务。
对MLC或者TLC来说,存在Lower Page corruption的问题;
即在对Upper Page/Extra Page (和Lower Page共享存储单元的闪存页)写入时,如果发生异常掉电,也会把之前Lower Page上成功写入的数据破坏掉。好的FTL,应该有机制尽可能避免这个问题;
MLC或者TLC的读写速度都不如SLC,但它们都可以配成SLC模式来使用。
FTL算法会利用这个特性,去改善SSD的性能和可靠性。
对不同的闪存,还有其自身的问题。FTL除了完成基本的地址映射,还需要去做垃圾回收(GC)、磨损平衡(Wear Leveling)、坏块管理、读干扰(Read Disturb)处理、数据保持(Data Retention)处理等事情。随着闪存质量变差,FTL除了完成上述的常规处理,还需要针对具体闪存特性,去做一些特殊处理以获得好的性能和高的可靠性。
FTL有Host Based和Device Based两种:
Host Based的意思是说,FTL的实现是在Host(主机)端的,用的是你计算机的CPU和内存资源。
除了Fusion-IO使用Host Based FTL,据我所知,业界还有方一信息科技、宝存、CNEXLabs等公司在做Host Based FTL。
相反,Device Based的意思是说FTL是在Device(设备)端实现的,用的是SSD上的控制器和RAM资源。
存储原厂 |
三星电子 | 53500 | KRW | +0.94% |
SK海力士 | 169600 | KRW | +0.65% |
铠侠 | 1580 | JPY | -7.33% |
美光科技 | 90.120 | USD | +3.48% |
西部数据 | 60.240 | USD | +1.04% |
南亚科 | 31.00 | TWD | +1.97% |
华邦电子 | 15.20 | TWD | +1.33% |
主控厂商 |
群联电子 | 479.5 | TWD | +3.34% |
慧荣科技 | 53.900 | USD | +1.26% |
联芸科技 | 43.73 | CNY | +2.05% |
点序 | 45.30 | TWD | +0.67% |
国科微 | 72.50 | CNY | -1.53% |
品牌/模组 |
江波龙 | 93.95 | CNY | -1.38% |
希捷科技 | 87.310 | USD | -0.26% |
宜鼎国际 | 214.5 | TWD | +1.90% |
创见资讯 | 90.3 | TWD | +1.46% |
威刚科技 | 79.0 | TWD | +0.13% |
世迈科技 | 18.510 | USD | +0.82% |
朗科科技 | 22.03 | CNY | -3.50% |
佰维存储 | 65.70 | CNY | -2.87% |
德明利 | 90.40 | CNY | -2.16% |
大为股份 | 12.54 | CNY | -4.13% |
封测厂商 |
华泰电子 | 34.60 | TWD | +1.76% |
力成 | 124.5 | TWD | +2.47% |
长电科技 | 39.03 | CNY | -2.38% |
日月光 | 160.5 | TWD | +1.90% |
通富微电 | 29.43 | CNY | -2.49% |
华天科技 | 11.93 | CNY | -2.21% |
深圳市闪存市场资讯有限公司 客服邮箱:Service@ChinaFlashMarket.com
CFM闪存市场(ChinaFlashMarket) 版权所有 Copyright©2008-2023 粤ICP备08133127号-2