読み出しアクセスが極めて高速な「Z-NAND」技術 ISSCCの講演で、SamsungはZ-SSDの中核技術であるZ-NAND技術の一部を明らかにした。 Z-NANDは、ワード線積層数が48層の3D NANDフラッシュ技術によって、シリコンダイ当たり64Gbitの記憶容量を実現している。 同じ48層の3D NANDフラッシュ技術とTLC(3bit/セル)方式の組み合わせ(従来技術)では、シリコンダイ当たりで256Gbitの記憶容量を実現しているので、Z-NAND技術では記憶容量が4分の1に減っていることが分かる。 そしてZ-NAND技術では、メモリセルアレイのアクセスが速い。メモリセルアレイと入出力バッファの間の遅延時間(レイテンシ)で比較すると、48層の従来技術は読み出し動作時に45μs、書き込み動作時に660μsであるのに対し、同じ48層のZ-NANDは、レイテンシが読み出し動作時にわずか3μsと15分の1に、書き込み動作時に100μsと6分の1以下に短くなっている。 これらのことから、過去に外部から指摘されていた、Z-NAND技術はV-NAND技術のSLC(1bit/セル)バージョンである、ということはほぼ間違いないと見られる。ただしSamsungは、V-NAND技術がSLC技術であるとは公式には述べていない(明言を避けている)ので、注意されたい。 ここで浮かぶ素朴な疑問は、なぜZ-NANDの記憶容量は原理的にはV-NANDの3分の1であるにも関わらず、実際の容量は4分の1とさらに小さくなっているかだ。 この食い違いには、いくつかの理由が考えられる。 最も単純な説明は、Z-NANDはメモリセルアレイがV-NANDに比べて小さくなって64Gbitになっている、つまり、シリコンダイが小さいというものだ。Samsungはシリコンダイ面積を公表していないので、この可能性は残る。 ただし、シリコンダイ全体を再設計して製造するとなると、かなりのコスト増加が避けられない。また64Gbitギリギリに近い物理アレイだと、誤り訂正(ECC)機能の内蔵が必要になってくる。ECCは速度を損なうので、あまり良い手法とは言えない。 もう1つの説明は、メモリセルアレイの設計は共用しているが、周辺回路は設計を変更しているというものだ。 Z-NANDのもう1つの特徴に、ページサイズが4分の1(4KB)あるいは8分の1(2KB)と小さいことがある。周辺回路を変更しないと、これは実現できない。そして、物理的には256Gbitの3分の1に相当する容量の85Gbitを搭載しているものの、その中で64Gbitだけを実際に使う、という手法である。 64Gbitだけを使うと、不良ビットを排除することと、性能の高いビット(具体的には性能の高いページ)だけを選別するという、2つの効果が見込める。ECCを内蔵せずに済むので、性能の劣化が起きないという利点もある。筆者は、こちらの可能性が高いと考える。

SSDの読み出し遅延時間を5分の1に短縮 SamsungはISSCCの講演で、SSDの読み出し遅延時間を構成する要素を6つに分類し、そのなかでNANDフラッシュメモリが関連する要素の比率が大きいことを示した。 6つの要素とは、ホストがコマンドを発行してコントローラに伝えるまでの時間、コントローラでアドレスを変換する時間、コントローラがNANDフラッシュメモリにコマンドを伝えて、メモリセルアレイに読み出しをかけるまでの時間、コマンドを受け取ったNANDフラッシュメモリがメモリセルアレイからデータを出力して、コントローラが受け取るまでの時間、受け取ったデータをコントローラが検証するための時間、コントローラがホストにデータを転送する時間である。 PM963の場合、ホストとコントローラがデータをやり取りするために必要な時間が8.5μs、コントローラ内部でデータを処理する時間が15μsであるのに対し、コントローラがNANDフラッシュメモリとデータをやり取りするために必要な時間は53μsと大きい。読み出し遅延時間は合計で76.5μであり、その約7割を占める。 NANDフラッシュメモリとコントローラでデータをやり取りするために必要な時間(tMedia)は、メモリセルアレイからページデータ(4kBのデータ)を出力バッファに読み出すための時間(tR)と、出力バッファからデータをコントローラまで転送する時間(tDMA)にわけられる。大きな割り合いを占めるのはtRで、「PM963」SSDの場合は45μsに達する。またtDMAは8μsである。 高速SSD技術のZ-SSDでは、専用NANDフラッシュ技術のZ-NANDによって、tRを3μsと大幅に短縮した。さらに、tDMAを4μsと半分に縮めることで、tMediaを7μsと7分の1以下に低減した。具体的には4kBの読み出しを2kBずつの2チャンネルで並行して読み出すことで、tDMAを2分の1に短くしている。 加えて、ホストとのやり取りおよびコントローラ内部の処理を短くすることで、全体の読み出し遅延時間を15.9μsと約5分の1に短縮した。