SSDのコントローラー

最終更新日 2023年09月07日

SSDのコントローラーとは

基礎

SSDのコントローラーとは、SSDを操作、制御するハードウェアやソフトウェアです。

SSDのコントローラーの役割

コントローラーなしではフラッシュメモリーにアクセスできませんので、コントローラーはアクセスを実現させる仲介役です。コントローラーによってデータ読み書き速度、データの信頼性、寿命が決まってくるので、SSDにとって頭脳的存在です。

SSDのコントローラーの機能

SSDのコントローラーには、複数のフラッシュメモリーに対する並列動作の制御、不良イレースブロックの管理、データの誤り訂正、ウェアレベリング、論理アドレスから物理アドレスへの変換等の機能があります。

SSDのコントローラーの影響

SSDでは性能が重要ですが、コントローラーの影響が大きいです。例えば、フラッシュメモリーチップへの並列アクセス数が多いほどデータ読み書き速度が速いですが、その並列アクセス数がコントローラーによって決まってきます。キャッシュメモリーを利用して書き込み速度を向上させる処理もコントローラーが担います。

SSDの信頼性に与える影響も大きいです。コントローラーは、ウェアレベリング、不良ブロックの管理、エラー訂正等を担います。どれもSSDの信頼性を確保するために重要な機能です。

コントローラーが行うウェアレベリングの処理によってSSDの寿命が大きく左右されます。ウェアレベリングのアルゴリズム次第でSSDの寿命が大きく変わるので、コントローラーのメーカーはアルゴリズムの開発に力を入れています。

フラッシュメモリーは複数のページをまとめたブロック単位で消去する仕組みであり、この消去回数により寿命が決まるので各ブロックの消去回数をコントローラーが記録しておき、ウェアレベリング処理で利用します。

不良ブロックの管理とは、エラーが発生しデータ読み書きできなくなったブロックを管理する機能です。フラッシュメモリーには多数のセルがあり、セルに対し電子を格納したり放出したりしてデータを記録します。セルはデータを書き換える度に劣化し、劣化が進むとエラーが発生し正常にデータを記録できなくなります。一定数のセルをページ単位でまとめ、さらに複数のページをブロック単位でまとめて管理しますが、記録できなくなったセルが出てきたブロックを不良ブロックとして登録し使用しないようにします。

不良ブロックが発生するとその分SSDの容量が減りますが、冗長ブロックがあると容量が減少しません。冗長ブロックとは、使用できなくなった不良ブロックの代わりに使用する予備のブロックです。冗長ブロックは、まるでデータ書き換え回数がリセットされた新品ブロックのようであり、SSDの書き換え寿命を延ばします。不良ブロックから冗長ブロックへの切り替えもコントローラーが行います。

フラッシュメモリーは劣化によりデータ保持期間が短くなりエラーが発生しやすくなりますが、コントローラーがエラーを訂正しデータを守ります。

SSDのコントローラーのメーカー

主なメーカー

SSDのコントローラーのメーカーには、Indilinx、Intel、JMicron Technology、Marvell Technology、SandForce(後にLSI)、Toshibaがあります。

刻印や型番からわかったメーカーとは別メーカーと認識が妥当な場合あり

コントローラーの刻印や型番からメーカーがわかりますが、そこからわかったメーカーとは別メーカーと言うのが相応しい場合があります。例えば、メーカーが仕様変更を加えたコントローラーの場合です。

例えば、某コントローラーの刻印に大きな「i」がありIntel製とわかりましたが、Intel製ではなくSandForce製と言うのが相応しい場合がありました。SandForce製コントローラーに対しIntelが仕様変更を加えたのですが、それでも仕様変更前のSandForce製コントローラーに近い仕様だったので、SandForce製と言うのが相応しい場合がありました。

選んではいけないコントローラー

成熟していなかったコントローラー

SSDが登場後しばらくは技術が成熟しておらずコントローラーも例外ではありませんでした。性能が低い程度の問題であれば価格が安ければ選ぶのもありでしたが、価格が安くても選んではいけないコントローラーもありました。

昔と違って今ではコントローラー含めSSDの技術が成熟しており、選んではいけないと言えるほどのコントローラーがなく、また出てくる可能性が極めて低いです。(2021/09/21時点)

JMicron製コントローラーJMF602

JMicron製コントローラーJMF602は、選んではいけないと言えるほどでした。プチフリーズと呼ぶ現象が発生する場合があり、使い物にならないほどのトラブルがありました。

プチフリーズとは負荷が高まったときにデータ読み書き速度が遅くなる現象です。どのSSDも負荷次第で速度が低下しますが、プチフリーズではパソコンがフリーズしたようになるほど速度が低下します。

インデックスを無効にすると改善する可能性がありますが、解決にはなりません。インデックスとは、システムがアイドル状態のときにファイルの保存場所(インデックス情報)を作成し、検索にかかる時間を短くする機能です。インデックスを無効にするとインデックス情報を作成しなくなり書き込みの負荷が減るので改善する可能性があります。

第一世代のSSDが主にJMF602を搭載していました。その後のSSDに採用されなくなっていき、新しいコントローラーが続々登場したので市場からなくなりました。

コラム

Windows VistaではSSDのコントローラーに負担がかかる理由

HDDではセクター単位でデータ読み書きします。SSDではページ単位でデータ読み書きし、イレースブロック単位でデータ消去します。Windows Vistaではセクター単位でデータ読み書きすることを前提に処理します。セクター単位の処理から、ページ単位とイレースブロック単位の処理に最適化することを、全てSSDのコントローラーが行うため負担がかかります。SSDのコントローラーに負担がかかればアクセス速度が遅くなります。

出典

SSD徹底解剖 1/2 | SSD徹底解剖 | DOS/V POWER REPORT(2009年3月号)
セクターとファイルの微妙な関係(4ページ目) | 日経クロステック(xTECH)(2009/11/20公開記事)
SSDが登場し、SATAの高速化が続く | 日経クロステック(xTECH)(2020/03/26公開記事)


キャンペーン情報(PR)
マウスコンピューター
・初夏セール
最大45,000円OFF!!
(5月22日迄)
DELL
・今週のおすすめ製品
対象製品が最大15%OFF
(キャンペーン実施中)
パソコン工房
・5月の超おすすめ!ピックアップ
ゲーミングPCやクリエイター向けパソコン等を用意
(キャンペーン実施中)