SSDの重要な部品として、NANDフラッシュメモリ以外に、SSDコントローラやバッファメモリが挙げられる。今回は、SSDコントローラの役割を軸に、SSDの動作を説明しよう。
SSD(Solid State Drive)を実現するためは、NANDフラッシュメモリの他にも重要な部品が必要となる。最も重要な部品は「SSDコントローラ」だろう。SSDコントローラはホストマシンとやり取りしながら、SSDの全ての機能を制御する役割を担う。非常に高度な処理を高速に実行する必要があるので、通常は32ビットCPUコアを内蔵するSoC(System on a Chip)がSSDコントローラに使われる。
この他の主な部品には、バッファメモリがある。バッファメモリも、SSDが高い性能を確保するためには欠かせない。
ホストマシンからSSDに格納するデータの流れで、SSDの内部構造を見ていこう。ホストマシンからケーブルを介してSSDに送信されたデータは、SSDコントローラを通じていったん、バッファメモリに蓄えられる。バッファメモリに蓄えられたデータは「少しずつ」、SSDコントローラを通じてNANDフラッシュメモリにプログラムされる。
ここで「少しずつ」と強調したのは、バッファメモリであるDRAMに比べると、NANDフラッシュメモリではデータの書き込みに要する時間がはるかに長いからである。ホストマシンがSSDに書き込むデータのスループットが高い場合、バッファメモリを経由せずにそのままNANDフラッシュメモリにデータをプログラム(書き込み)していくと、途中でプログラム作業が追いつかなくなり、ホストマシンがSSD側の処理を待たなければならなくなる。
そこでSSDではふつう、ホストマシンからのデータを初めはバッファメモリに書き込む。全てのデータがバッファメモリに書き込まれると、SSDコントローラはホストマシンにデータの書き込みが完了したとの信号を送る。ホストマシンはSSDへのデータ保存が完了したと認識し、次の処理に移行する。一方、SSDコントローラはバッファメモリのデータを適切な速度でNANDフラッシュメモリに転送し、プログラム作業を遂行する。この処理はホストマシンからは見えず、隠されている。
NANDフラッシュメモリのリード(読み出し)動作は、プログラム動作に比べるとはるかに速い。ホストマシンがSSDのデータを読み出すときは、NANDフラッシュメモリから直接、ホストマシンにデータを送信できる。ただし実際には、データ誤りの検出と訂正の処理が入るため、バッファメモリを経由することになる。
Copyright © ITmedia, Inc. All Rights Reserved.