SSDと同様に、USBメモリもNANDフラッシュメモリを内蔵する。USBメモリは軽く、小さい。簡単に持ち運べる。その代わりにUSBメモリの長期信頼性はあまり高くない。市販されているUSBメモリは、書き換え可能回数や平均故障間隔(MTBF)などを保証していないし、ユーザーもあまり気にしていない。USBメモリのユーザーが気にするのは、記憶容量と価格、それから外観と外形寸法くらいだとみられる。
SSDとUSBメモリの最も大きな違いは、コントローラの仕様にある。USBメモリのコントローラに比べると、SSDコントローラの仕様ははるかに複雑であり、性能とコストを高い水準でバランスさせている。
SSDコントローラは、NANDフラッシュメモリの動作とバッファメモリの動作を制御するとともに、論理アドレスと物理アドレスの変換を実行し、誤りの検出と訂正の処理を担う。さらに、NANDフラッシュメモリのメモリブロックごとの消去回数を記憶し、書き換え回数の平準化(ウェアレベリング)を実施する。また何らかの不良が発生したメモリブロックを使用禁止にし、予備のブロック(冗長ブロック)を代わりに割り当てる。そしてホストマシンと、信号とデータをやり取りする。
これらの処理の中で、負荷が大きいのが誤りの検出と訂正の処理である。ECC(Error Checking and Correction)符号と呼ぶ誤り検出・訂正用符号をデータに付加し、特定のアルゴリズムによって誤りの検出と訂正を実行する。例えば512バイトのセクタに対し、16ビット(2バイト)あるいは24ビット(3バイト)のECC符号を付加する。
動作周波数が83MHzのNANDフラッシュメモリで512バイトあたりに16ビットのECC符号(BCH符号)を付加するSSDがあったとしよう。コピーバック動作(NANDフラッシュのあるブロックからデータを読み込んで別のブロックに書き戻す動作)の実行時に誤り訂正に要する時間は76マイクロ秒に達する(大手NANDフラッシュメモリベンダーの資料から引用)。
ECC符号を長くすると誤り訂正能力は高くなるものの、処理の実行時間が長大化し、SSDの性能に影響を与えてしまう。しかし現実には多値化と微細化がNANDフラッシュメモリのデータ誤り率を増加させており、誤り訂正処理をさらに強力にすることが避けられない。これは、誤り訂正時間の長大化に直結する。
SSDの最大記憶容量は、新しい製品が発表される都度に増大してきた。記憶容量の増加は、管理するブロックの数が増えることを意味する。このことも、SSDコントローラの負荷を増加させる。またバッファメモリの記憶容量を増加させることになる。バッファメモリの標準的な容量は64Mバイト〜128Mバイトから、最近では256Mバイト〜1Gバイトへと移行しつつある。
(次の記事を読む)
福田 昭(ふくだ あきら)
フリーランスのテクノロジージャーナリスト/アナリスト。
Copyright © ITmedia, Inc. All Rights Reserved.