K75thunderbirdのブログスマートフォン用の表示で見るK75thunderbirdのブログどちらかというと自分の頭の整理用です。ネタとしてはモバイル、自動車、ロードバイク、電気関係やPC関係の突っ込んだ話題、ややデバイスやコンポーネント寄りの偏った内容になると思われます。この広告は、90日以上更新していないブログに表示しています。SSD前回は、チップレベルの話について。今回は、それを制御するコントローラーの話に移る。最初に認識したいことは、NANDメモリは使いにくいメモリだ、ということだ。NANDメモリには書き換え回数に制限がある。書き換えるときはブロック単位で書き換えなければならない。HDDのようにセクター単位で書き換えることができないのだ。そのため、あるファイルに1bitの修正を加えただけで、そのファイルが書き込まれたブロックを読み出し、ブロック内を消去し、修正後の情報を書き込むという動作をしなければならない。限りある書き換え回数が必要以上に減ってしまう仕様、それがNANDメモリだ。そのブロックはどれくらいの単位なのか。手持ちのSSDで、予備ブロックと無効化された容量から計算したところ、512GBの製品で2MB、960GBの製品で4MBのようだ。製品の容量に応じてブロックの粒度は異なると思われる。参考までに、上の2製品はCrucialで、コントローラーはMarvellで、NANDはMLCである。NANDメモリの仕様は上に書いた通りなので、下手な使い方をすると頻繁に同じ場所を使用することで早期に寿命を迎えることは想像に難くない。そこで、コントローラーには「ウェアレベリング」という機能が搭載されている。名前のとおり、摩耗の平均化だ。3ステップが必要である。書き込む先として使用頻度の少ないブロックを優先的に使用し、書き換えが特定のブロックに集中しないようにするのが、この機能の目的だ。空き容量が少なくなってくると、ウェアレベリングに使用できる領域が減ってくる。極端な話、空き容量が数%といった状態で使用していると、書き換え対象のブロックを分散させることが難しくなり、どうしても特定のブロックを酷使することになる。NANDメモリは読み出しこそ高速なものの消去には時間がかかるため、空き容量が減少すると消去待ちの時間が表面化する。これの顕著な例が「プチフリ」である。このような時、消去に要する時間を隠蔽し、パフォーマンス低下を抑制するための手法が「オーバープロビジョニング領域」である。一定量の消去済みブロックを用意しておく、というもので、別名は余剰領域である。漢字の方が分かりやすいだろう、読んで字のとおりだ。ユーザーが使用できない領域を事前に確保しておけば、パフォーマンス低下を防ぐことができ、ウェアレベリングも行いやすい。容量が256や512や1024といった数値ではなく、240や480や960といった数値になっているSSDは、出荷時にオーバープロビジョニング領域として何GBか確保されていることになる。余談であるが、SSDにパーティションを作成する際に敢えて未使用領域を確保しておくという使い方も、同じ効果をもたらすようだ。ここで疑問には思うかもしれない。パーティションで区切ってしまえば、その領域は一生使われないままなのではないか?と。これに関しては全く問題とはならない。確かに、HDDのような媒体であれば論理アドレスと物理アドレスは一致しているため、一度パーティションを区切ってしまえば当該領域は物理的に未使用となる。これに対してSSDの場合は論理アドレスと物理アドレスが一致しない(参照テーブルはコントローラーだけが持つ)ため、PCから見て同じ場所であるとしても、物理的に同じ場所であり続けることはない。当該領域はウェアレベリングにより移動し続けることになるため、未使用領域が固定されることはない。NANDのチップレベルでの耐久性低下については前回書いたとおりだが、コントローラーも手をこまねいているわけではない。NANDの多値化に伴ってECCを強化し、仮にある程度までセルが劣化してエラーレートが増えたとしても問題なく使用できるようにしている。これにより、同じNANDを使用していてもSSDとしての耐久性を上げることができる・・・とされている。書き足りない点もあるが、脳内メモとしては以上としたい。Trimの話や、NVMeタイプの発熱の話、仮想SLCキャッシュの話、TLCの書き込み速度の話などについては、別途書くことにしたい。KryoM.2に関連した話も、少しだけあるかもしれない。それでは皆さん、ごきげんよう。14:33SSDでコントローラーが重要である理由Tweet広告を非表示にする関連記事2018-02-21PC内配線・コネクター・スロットの許容電流を知る何故かPCに5枚も6枚もGPUが刺さっている方々向けの考察情報。!何年か前に作成したPCを不満なく使用していたものの、Windows7...2017-10-28今、SSDの信頼性と寿命を考える(NANDメモリ編)このBlog開設から1年経ったというメールが届いた。CSM月別アーカイブはてなブログをはじめよう!K75thunderbirdさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。