SSD主控与NAND闪存之多通道交互

一块SSD容量的大小,取决于SSD中NAND闪存颗粒的多少和每个颗粒的存储量。

市面上的SSD至少都包含4个NAND闪存颗粒。由于目前技术的限制,SSD主控做不到同时对4个NAND闪存颗粒进行操作。如何优化多个NAND闪存颗粒性能成为了SSD主控又一个挑战。

办法总比困难多,SSD主控提出了多通道(Multi-Channel)的架构,如下图:

先暂停一下哈,有个概念还需要交代一下。什么是通道(Channel)呢? 通常,一个8位(8-bit)的总线(bus)称为一个通道(Channel)。

OK,交代完毕,继续...

在一个通道上的操作是可以有交错的(Interleaved)。当一个NAND闪存处在被占用状态Busy时,可以让第一个NAND闪存自己忙着,主控可以访问同一个通道上的第二个NAND闪存。

举个例子,主控需要连续对一个通道上所有的NAND闪存进行写入(Write)操作,在Interleave功能的帮助下,同一个通道上的NAND闪存形成了一个最大通道利用率的流水线(Pipeline), 如下图:

事实上,在NAND闪存内部执行写入操作时,通道上是处于空闲状态的,所以这时可以对其他的NAND闪存继续操作。

说得再多,不如让数据说话,看看Interleave这个功能到底功力如何。直接上图,
从上图中可以看到,在特定闪存写入时间(program time)时,SSD的数据吞吐量(throughput)随着NAND闪存数量的增加而大大上升。

目前主流的SSD会有4或者8个Channel,SSD主控有一个专门的模块管理不同Channel之间的读写操作。


更多精彩内容,敬请关注公众号: 存储随笔,Memory-logger.