SSDのキャッシュメモリーとは?

最終更新日 2019年10月11日

SSD のキャッシュメモリーとは何か

多くの SSD にはキャッシュメモリーがありますが、 SSDの仕組を大解剖! | SSD完全攻略マニュアル | DOS/V POWER REPORT には、以下のとおり書かれています。
キャッシュメモリは、通常、NANDメモリの管理情報の保管やデータのキャッシュに使用される。
NANDメモリの管理情報とは何か具体的に書かれていませんので不明です。データのキャッシュに使用されることについても具体的に書かれていませんが、NAND フラッシュメモリーに対しデータを書き込む前に、そのデータを一時的にキャッシュメモリーに保持しデータ書き込み速度を向上させると考えられます。

読み込みが行われる可能性が高いデータをキャッシュメモリーに保持しておきデータ読み込み速度を向上させているかもしれませんが、データのキャッシュについて詳しく書かれていませんので不明です。

SSD[Solid State Disk]とは?|Logitec データ復旧技術センター には、以下のとおり書かれています。
またNANDフラッシュメモリが苦手とするデータの書き込み速度の向上にも工夫が凝らされており、SSD上に設けられたキャッシュメモリ(SDRAM)に一時的に書き込みデータを保持して順次書き込み処理を行ったり、

(略)
この記事によると、データ書き込み時にキャッシュメモリーを使うようです。

キャッシュメモリーがない場合、パソコンにて SSD へデータ書き込みを行う時は NAND フラッシュメモリーへのデータ書き込みが完了するまでパソコンは待機する必要があります。

キャッシュメモリーがある場合、NAND フラッシュメモリーよりもデータ書き込みにかかる時間が短いキャッシュメモリーへデータ書き込みを行い、その書き込みが完了したらパソコンでは次の処理へ移行します。

SSD 本体では、キャッシュメモリーから NAND フラッシュメモリーへのデータ書き込みを行います。

このようにしてデータ書き込み速度を向上させていると考えられます。

福田昭のストレージ通信(11):SSDの内部構造と動作をみる (1/2) - EE Times Japan には、キャッシュメモリーを使ってデータを書き込む処理について、以下のとおり詳しく書かれています。この記事では、キャッシュメモリーではなくバッファメモリと呼んでいます。
ホストマシンからケーブルを介してSSDに送信されたデータは、SSDコントローラを通じていったん、バッファメモリに蓄えられる。バッファメモリに蓄えられたデータは「少しずつ」、SSDコントローラを通じてNANDフラッシュメモリにプログラムされる。

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

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

 NANDフラッシュメモリのリード(読み出し)動作は、プログラム動作に比べるとはるかに速い。ホストマシンがSSDのデータを読み出すときは、NANDフラッシュメモリから直接、ホストマシンにデータを送信できる。ただし実際には、データ誤りの検出と訂正の処理が入るため、バッファメモリを経由することになる。
一連の処理の流れを見ると、キャッシュメモリーから NAND フラッシュメモリーへのデータ書き込みにかかる時間が長いので、パソコンにて大量のデータ書き込みを長時間続けるとキャッシュメモリーはデータを書き込めないほど一杯になり、パソコンは SSD 側の処理を待たなければならなくなると考えられます。

このような問題は、キャッシュメモリーの容量が小さすぎる、または SSD コントローラーの性能が低くキャッシュメモリーから NAND フラッシュメモリーへのデータ書き込み速度が遅すぎると発生すると考えられます。

この記事によると、NAND フラッシュメモリーからデータ読み込みをする場合でも、どのような処理となるのか詳細に書かれていませんが、データ誤りの検出と訂正の処理のため読み込むデータはキャッシュメモリーを経由するそうです。

・SSD のキャッシュメモリーとは NAND フラッシュメモリーの管理情報の保管やデータ読み書きのキャッシュに使うもの


キャンペーン情報
マウスコンピューター
冬のボーナスセール icon
期間限定で大幅値引き!最大60,000円OFF!!(一部モデルのみ)
(12月18日迄)
DELL
・年末大還元 冬のボーナスセール
13,14インチモバイル、15インチ売れ筋ノートがお買得、クーポンで最大17%Off
(キャンペーン実施中)
ドスパラ
・最大20%還元 冬のボーナスセール 第2弾
特価パソコンをはじめ、お買得なパソコンパーツ、周辺機器を多数ご用意
(12月19日迄)
パソコン工房
・冬のボーナスセール第1弾
BTOパソコンやPCパーツ・周辺機器などがお得な価格
(12月11日迄)