使い始めるとSSDの性能は低下する(前編):福田昭のストレージ通信(12)(2/2 ページ)
NANDフラッシュメモリを内蔵する全てのSSDに共通の特性として、SSDは使い始めると必ず性能が低下する。今回は、性能低下が起こる過程を見ていきたい。
書き込みの履歴が定常状態の性能を左右
定常状態といっても、FOB状態からデータをSSDに保存するシナリオによって、その様相は大きく違う。例えばビデオファイルのような、非常に大きなボリュームのデータを保存し続けた場合は、遷移状態での性能低下がゆるく、しかも、比較的短い時間(トータルの書き込み時間)で定常状態に達する。そして定常状態での性能は比較的高い。これに対し、文書ファイルのような、非常に小さなボリュームのデータを保存し続けた場合は、遷移状態での性能低下が著しく、しかも、定常状態に達するまでの時間が長い。
これらの違いは、NANDフラッシュメモリの特徴と大きく関わっている。NANDフラッシュメモリは「ブロック」と呼ぶ比較的大きな単位で消去(イレ―ズ)動作を管理しており、「ページ」と呼ぶ比較的小さいが、HDDのセクタ(512バイト)よりも大きな単位でプログラム(書き込み)動作とリード(読み出し)動作を管理しているからだ。
ビデオファイルのような大きなデータは1個のブロック全体に書き込んでも収容しきれず、数多くのブロックの全てのページにデータを書き込むことになる。そうすると書き込まれたページの数は多いものの、メモリマップ全体でみるとまだ、数多くの空きブロックが残っている。
これに対して文書ファイルのような小さなデータは、書き込んでも1個のブロックのわずかな割合しか占有しない。100個の文書ファイルを、100個のブロックに割り当てたとしよう。全体のボリュームはビデオファイルよりもはるかに小さいものの、ビデオファイルよりも多くのブロックをデータ保存に使うことになってしまう。
この違いを具体的な数値で見てみよう。ビデオファイル1本の大きさを100Mバイト、文書ファイル1本の大きさを50Kバイトとする。文書ファイルは2000本あるとしよう。文書ファイルの総量は100Mバイトで、ビデオファイル1本と同じになる。NANDフラッシュメモリのページサイズは16Kバイト、ブロックは64ページで構成されている。すると1ブロックの容量は1Mバイトとなる。
この条件でFOB状態のSSDに1本のビデオファイルを書き込むと、100個のブロックにちょうど収まる(注:ここでは誤り訂正符号などは考慮しない)。これに対して文書ファイル1本を1個のブロックに割り当てていくと(これが最も単純で書き込むときの性能が高い)、2000個のブロックにデータが書き込まれる。ここでNANDフラッシュメモリの記憶容量を2Gバイト(16Gビット)とすると、全体のブロック数は約2000個になる。つまり、ビデオファイルを保存したときは、未使用のブロックが1900個ほど残っているのに対し、同じ容量の文書ファイルを保存すると、未使用のブロックがほぼゼロになる。
未使用のブロックがゼロになったNANDフラッシュメモリにデータを書き込もうとするには、ブロックの中の空き領域を確認する必要がある。この手間が、書き込み性能を著しく下げてしまう。
(後編に続く)
筆者紹介
福田 昭(ふくだ あきら)
フリーランスのテクノロジージャーナリスト/アナリスト。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SSDの内部構造と動作をみる
SSDの重要な部品として、NANDフラッシュメモリ以外に、SSDコントローラやバッファメモリが挙げられる。今回は、SSDコントローラの役割を軸に、SSDの動作を説明しよう。 - 組み込みSSDの最新動向 〜高速な新規格から耐環境性の強化まで〜
高温、高湿度でも安定した動作が期待できるフラッシュメモリストレージは、これまでも組み込み機器や、産業用機器に広く採用されている。そのフラッシュストレージの最新動向を、台湾・台北市で開催されたIT見本市「COMPUTEX TAIPEI 2013」(2013年6月4〜8日)で追った。 - 東芝、SSD並みの性能を実現する組み込みNANDメモリ用コントローラ開発
東芝は、組み込み式ストレージメモリ標準規格である「JEDEC Universal Flash UFS Version 2.0」などに準拠し、「世界最高速」(同社)というUFSメモリコントローラを開発した。従来コントローラに比べ、ランダムリード性能で約10倍の性能を達成したという。