【FileSystem】車載外部ストレージ その4【不揮発性メモリ②】

【FileSystem】車載外部ストレージ その4【不揮発性メモリ②】 車載外部ストレージ

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

はじめに

不揮発性メモリの話の続きで主にFlashROMについて。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

FlashROMの性質

太郎くん
太郎くん

で、
なんで、消去単位以上のRAM容量が必要になるの?

フクさん
フクさん

FlashROMの書き換えは以下の流れになる。

  • Block消去
  • Block書き込み

つまり、書きこむためには必ず特定の範囲を消去する必要がある
この消去する部分をRAMに退避してないと、まっさらに消えてしまう。

太郎くん
太郎くん

あーなるほどー。
言われてみれば、普通のシリアルFlash(NOR型)でも同じようなことしたころあるよ。

太郎くん
太郎くん

ちなみに、NAND-FlashROMの消去単位ってどのくらい?
NOR-FlashROMの時は256byteとかだったけど。

フクさん
フクさん

モノによるところは若干あるけど、
まぁ大体128~256[Kbyte]かな?

太郎くん
太郎くん

え゛
Kbyte?byteじゃなくて?

フクさん
フクさん

Kbyte。byteじゃなくて。

太郎くん
太郎くん

ちなみに、普通のECUのRAM容量ってどのくらい・・・なの・・・?

フクさん
フクさん

普通は量産コスト都合RAM容量128~256[kbyte]あたりマイコンに落ち着くかな?
まぁ一番大容量で2MbyteのRAMをもってるものもマイコンとしては存在してるけど。

太郎くん
太郎くん

ちょっと、RAMが128~256[kbyte]ってことは、
それだけで、NAND-FlashROMの一時退避で使い切っちゃうじゃん!
NAND-FlashROMは使えないよーー!!

フクさん
フクさん

ま、それが答えってことだねー。

SDカードの中身は?

太郎くん
太郎くん

そういうえば、今回使用予定のSDカードの中身はどうなってるの?

フクさん
フクさん

SDカードの中身はNAND-FlashROMだよ。

太郎くん
太郎くん

え゛?
それってやばくないの?

フクさん
フクさん

ヤバくはない。
中身がNAND-FlashROMだけど、
アクセス単位は512byte
この単位で読み書きできる。

太郎くん
太郎くん

え?
ということはSDカードの中でうまくバッファリングとかしてくれてるって感じ?

フクさん
フクさん

そうだね。
あとは、ウェアレベリングっていう利用Blockの平滑化処理も入ってて
NAND-Flashの寿命を縮めないような仕組みもある。

太郎くん
太郎くん

ウェアレベリング?寿命?

フクさん
フクさん

FlashROMは消去するたびに劣化していくんだよ。
同じところ何度も消去するとその部分だけ劣化が早くなる
これを回避するために論理上は同じアドレスでも物理アドレスは別って管理をして、
消去されるBlockをうまく分散してくれてるんだよ。

太郎くん
太郎くん

ほー。
そんな便利な機能が。

フクさん
フクさん

こんなの自分で作ったら気が狂うね。

太郎くん
太郎くん

たしかに。
ということはSDカードを使うというのは結構良い方法なのか。

フクさん
フクさん

そうだね。
大容量でアクセスし易くてまぁまぁ安い
組み込みシステムのストレージで良く使われる理由でもあるね。

まとめ

フクさん
フクさん

まとめだよ。

  • NAND-FlashROMの凶悪な一面を垣間見た。
    • 消去単位が128~256[Kbyte]。
    • 同等のRAMを割り当てできないとまともに制御できない。
  • SDカードの中身はNAND-FlashROM。
    • しかし、NAND-FlashROMの凶悪な一面はうまく隠されている。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました