HDDコントローラとかの機能を勉強したい
現代のHDDコントローラは
- 単にLBAを内部のプラッタの「真のアドレス」に変換するだけじゃなくて
- 読み書きキャッシュ (RAM) の利用と管理
- プラッタの回転に都合良く「真のI/O」を並べ替え
- 死んだ駄目セクタをスキップして代替セクタに振り替える
等の機能があるのは知ってる.SSDコントローラはそれに加え
- 物理的に回転するプラッタが無い以上,I/Oリオーダは意味ないかもしれんので無いかもしれんが
- フラッシュメモリは例えば4 KB範囲とかでないと削除できないので,事実上「上書き」が不可能であり,その辺の意味論のずれを取り繕う
- フラッシュメモリは同一ブロックへの書き込み回数に上限があるので同一LBAに対する書き込みを受け付ける「真のアドレス」を分散させるwear leveling
とかやるんだよね.
HDD, SSD, USBメモリやSDカードのデバイス側コントローラって情報があんまり見つからないな.データシートとまで言わないがアプリケーションノートとかホワイトペーパーはどこに落ちてるのかな?
- http://flashmemory.web.fc2.com/usbmemory/ USBメモリのチップ交換で容量を増やす(失敗)
なんだこの狂気の実験... 現代のフランケンシュタインか*1 ←大袈裟
*1:ちなみに フランケンシュタイン の副題は 現代のプロメテウス である.さらに言えばフランケンシュタインってのは怪物の名前じゃなくて怪物を生み出した若きマッドサイエンティストの名前な.