EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——Open-Channel SSD & G9 i: K8 ~" A7 u
3 w4 z# n/ D6 ^
妾身千万难,FTL将栖身何处? 我们知道SSD控制器内部算法核心是FTL(Flash Translation Layer),把用户的地址LBA转换为SSD内部Flash芯片的物理地址。一般的消费级SSD控制器内置FTL,因为功能比较简单和统一,消费级市场 经过WinTel联盟多年的锤炼,各种接口非常统一,大家的需求也很单一,只要支持Intel主板、Windows操作系统就可以了,大大简化了各种外设 的 硬件设计。 但是进入了企业级市场,真是群雄并立,有各种各样的客户和存储厂家,大家使用多种多样的操作系统和主板架构,甚至Google、Facebook、BAT 都可以自己定义硬件、Linux底层。在这种情况下,FTL放在SSD控制器里面已经难以满足需求了,用户希望能够自定义FTL,根据自己的数据特点设计 高效的FTL,比如: 搜索引擎可以把索引表和SSD物理地址对应起来; 日志数据可以直接流式写入SSD内部Flash通道; 数据库希望key-value能对应到SSD物理地址。 这种自定义后面如果有FTL,导致几大缺点: latency变长; 达不到最优的性能; 垃圾回收、磨损平衡等浪费了SSD的存储空间和寿命。 # q4 P1 b x. H( N
* I8 y! t* L8 A4 J7 Z( lOpen-Channel SSD架构 . M: v- K& h6 G5 c3 M
CNEXlabs的SSD控制器把SSD内部的通道开放给用户使用,这样控制器只负责Flash数据传输、ECC、RAID、垃圾回收引擎、错误处理、坏块管理等工作,而FTL层的设计由Host自己根据需求实现。这样也方便用几个控制器组成一个大的SSD,甚至阵列。
& \; {) y, A# p+ l
) n# }& n* f% B6 `. T z P如下图,这样做的一个好处是中间处理变简单了,latency就减少了 ![]()
. Z: w+ ^: p! M& c" T$ b在软件定义存储中的优势 可以集中管理多个SSD; 软件可定制; 根据需求定义FTL; FTL可以不断修改; 针对不同应用开发不同软件。 如下RocksDB例子,数据以日志形式直接写入Flash的块,有点像百度自己做的SSD。CNEXlabs还提供了Linux驱动,支持NVMe以及NULL Driver做FTL性能测试和Debug。
1 p% e( V$ s. a, x7 \
1 \. c. E2 R) C4 m0 S" Y' K
7 `2 D$ a- F$ E; \1 n/ K! R
* i! P- ~) ~8 T6 I, M( k" N, z |