イベントレポート
オーバークロックでSSDの性能を高める
~SanDiskらがFMSで性能向上の手法を講演
(2015/8/21 00:00)
NANDフラッシュメモリ応用製品のベンダーであるSanDiskとストレージコントローラのベンダーであるPMC-Sierra、工科大学のRensselaer Polytechnic Instituteで構成する共同チームは、SSD(Solid State Drive)の性能をオーバークロックによって高める手法を考案し、検討結果を「Flash Memory Summit(FMS)」の一般講演セッションで8月12日午前(現地時間)に公表した。
SSDの構成要素を大別すると、NANDフラッシュメモリ(記憶部)、NANDコントローラ(制御部)、バッファメモリ、ホストインターフェイスなどに分かれる。SanDiskらの共同チームは、NANDフラッシュメモリとNANDコントローラを結ぶインターフェイスの動作クロックをオーバーさせることを考えた。オーバークロックによって主に、読み出し性能を向上させることが目的である。
コントローラの誤り訂正(ECC)機能を活用
SSDのNANDコントローラ(NANDフラッシュメモリコントローラ)は、誤り訂正(ECC)機能を標準的に装備している。またSSDには、データの書き換えを繰り返すと読み出しのデータ誤り率が増加するという傾向がある。データの誤り率が増加していくことをあらかじめ見込んで、ECC機能の能力は強めに設計してある。
SanDiskらの共同チームはここで、興味深いことに気付いた。SSDのデータ書き換え回数が少ない時は、データの誤り率が少ない。すなわち、ECC機能の能力には大きな余裕がある。オーバークロックによって読み出しのデータ誤り率とインターフェイスのデータ誤り率が増えても、ECC機能の許容範囲内であれば、不良率(誤り訂正後の不良率)を製品仕様の低い値に抑えられるのだ。つまり、オーバークロックによってSSDの性能を向上できることになる。
もちろん、書き換え回数が増えていくと標準のクロック周波数でも誤りが増加し、ECCの能力に余裕がなくなる。書き換え回数の累積状況をみながら、オーバークロックの量を適切に調整していくことで、対応は可能だとした。
標準166MHzの入出力クロックを275MHzまで上げてみた
SanDiskらの共同チームは、SSDの読み出し動作における遅延時間を以下の3つに分けて検討した。(1)NANDフラッシュメモリからデータを読み出すまでの遅延時間(読み出しレイテンシ)、(2)読み出したデータの転送に要する遅延時間(転送レイテンシ)、(3)誤りの訂正処理にかかる時間(ECCレイテンシ)、である。この中で最後のECCレイテンシはきわめて短く、全体の性能に与える影響は小さい。(1)と(2)のレイテンシは(3)に比べると長く、両者は同程度である。そこで(2)のレイテンシをオーバークロックによって短くすれば、読み出し全体のレイテンシもかなり短かくなると推定した。
そこで実際に、ONFI 2.2仕様に準拠したNANDフラッシュメモリに対し、オーバークロックをかけてみた。製品仕様でのデータ転送速度とクロック周波数は、それぞれ166MB/secと166MHzである。このNANDフラッシュメモリに対してデータ転送速度を275MB/sec(クロック周波数を275MHz)まで上げてみた。オーバークロックは読み出し動作と書き込み動作の両方で実施した。
するとクロック周波数が237.5MHz以下では、不良率の上昇は見られなかった。237.5MHzを超えると不良率は急速に上昇し、275MHzでは1,000倍~1万倍に達した。この結果、237MB/secまでは不良が増加することなく、オーバークロックできることが判明した。
そこでどの程度の性能向上(遅延時間の短縮)を見込めるかを、シミュレーションによって確認した。条件にもよるが、おおよそ20%くらいの遅延時間の短縮効果があることが分かった。
書き換え回数の増加による劣化を対策する
ただし、累積の書き換え回数が増えることにより、オーバークロックの効果は減少していく。例えば、ECCによる誤り訂正が上手くいかなくなり、再読み出し(リトライ)をかける割合が増加する。平均的には読み出し性能が低下する(オーバークロックによる性能向上の割合が減る)。
この対策としては、オーバークロックを加味した誤り訂正アルゴリズムの導入、例えばLDPC(低密度パリティ検査符号)が有望であるとしていた。