連載
» 2014年09月16日 10時00分 UPDATE

福田昭のストレージ通信(11):SSDの内部構造と動作をみる (1/2)

SSDの重要な部品として、NANDフラッシュメモリ以外に、SSDコントローラやバッファメモリが挙げられる。今回は、SSDコントローラの役割を軸に、SSDの動作を説明しよう。

[福田昭,EE Times Japan]

SSDを構成する主な部品

 SSD(Solid State Drive)を実現するためは、NANDフラッシュメモリの他にも重要な部品が必要となる。最も重要な部品は「SSDコントローラ」だろう。SSDコントローラはホストマシンとやり取りしながら、SSDの全ての機能を制御する役割を担う。非常に高度な処理を高速に実行する必要があるので、通常は32ビットCPUコアを内蔵するSoC(System on a Chip)がSSDコントローラに使われる。

 この他の主な部品には、バッファメモリがある。バッファメモリも、SSDが高い性能を確保するためには欠かせない。

mm140916_ssd1.jpg SSDの内部ブロック。NANDフラッシュメモリ、SSDコントローラ、バッファメモリ(DRAM)で構成される

データの保存と読み出しの実際

 ホストマシンからSSDに格納するデータの流れで、SSDの内部構造を見ていこう。ホストマシンからケーブルを介してSSDに送信されたデータは、SSDコントローラを通じていったん、バッファメモリに蓄えられる。バッファメモリに蓄えられたデータは「少しずつ」、SSDコントローラを通じてNANDフラッシュメモリにプログラムされる。

 ここで「少しずつ」と強調したのは、バッファメモリであるDRAMに比べると、NANDフラッシュメモリではデータの書き込みに要する時間がはるかに長いからである。ホストマシンがSSDに書き込むデータのスループットが高い場合、バッファメモリを経由せずにそのままNANDフラッシュメモリにデータをプログラム(書き込み)していくと、途中でプログラム作業が追いつかなくなり、ホストマシンがSSD側の処理を待たなければならなくなる。

 そこでSSDではふつう、ホストマシンからのデータを初めはバッファメモリに書き込む。全てのデータがバッファメモリに書き込まれると、SSDコントローラはホストマシンにデータの書き込みが完了したとの信号を送る。ホストマシンはSSDへのデータ保存が完了したと認識し、次の処理に移行する。一方、SSDコントローラはバッファメモリのデータを適切な速度でNANDフラッシュメモリに転送し、プログラム作業を遂行する。この処理はホストマシンからは見えず、隠されている。

 NANDフラッシュメモリのリード(読み出し)動作は、プログラム動作に比べるとはるかに速い。ホストマシンがSSDのデータを読み出すときは、NANDフラッシュメモリから直接、ホストマシンにデータを送信できる。ただし実際には、データ誤りの検出と訂正の処理が入るため、バッファメモリを経由することになる。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

RSSフィード

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.