バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
オープンソース組み込みFatファイルシステムであるFatFsの概要について。
と見せかけけて不揮発性メモリの話。
登場人物
博識フクロウのフクさん

イラスト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
FatFsとは

前回、軽く説明したけど、入手元は以下。
日本語サイトと英語サイトがあって、最新情報が欲しい場合は英語サイトを見るように。
FatFs 日本語サイト
FatFs 英語サイト

簡単に説明するとどういうものになるの?

まぁ公式の情報をそのまま書くと、
FatFsは、小規模な組み込みシステム向けの汎用FAT/exFATファイルシステムモジュールである。FatFsモジュールは、ANSI C(C89)に準拠して記述されており、ディスクI/O層から完全に分離されており、プラットフォームから独立している。8051、PIC、AVR、ARM、Z80、RXなどのリソースが限られたの小規模なマイクロコントローラーに組み込むことができる。
http://elm-chan.org/fsw/ff/00index_e.html の説明を日本語訳

ディスクI/O層ってのが、SDカードドライバってことになるのかな?

そうだね。
ストレージとしてはSDカードである必要はなくて、
セクタの概念が作れるデバイスであべば、何にでも組み込める。
FATファイルシステムを搭載するのに適切なメモリデバイス

EEPROMとかでもできるの?

まぁ出来なくはないけど、FATファイルシステムを組み込むには結構な容量が求められるからEEPROMだとちょっと勿体ないかな。
EEPROMって大体4[Mbyte]が最大なんじゃないかなー。
FATを使おうと思ったら32[MByte]以上は無いとねー。
EEPROM(Electrically Erasable Programmable Read-Only Memory)は不揮発性メモリの一種。E2PROMとも表記される。コンピュータなどの電子機器において、設定情報など、電源を切っても保持すべきデータの記憶に用いられる。USBメモリのように大量のデータを格納する用途では、従来型のEEPROMよりもその一種であるフラッシュメモリなどの方が経済的である。EEPROMはフローティングゲートMOSFETの配列でできている。
Wikipediaより

シリアルFlashとかは?

シリアルFlashのNOR型だと256Mbyteとかあるからいけるかもねー。
NOR型フラッシュメモリ(ノアがたフラッシュメモリ)は、フラッシュメモリの一種である。NAND型フラッシュメモリとは異なり、データの読み出しにおいて、RAMと同様にアドレス指定によるアクセスができ、コードをRAMにコピーすることなく直接実行すること(execute in place)が可能。データの書き込みについては、一度ブロック単位で消去した後、書き込むという手順を踏む。この手順についてはIntel系コマンドやAMD系コマンドなどがあるが、チップの特性情報を読み出すコマンドは共通フラッシュメモリインターフェース(Common Flash memory Interface) として標準化されている。用途として、マイコンをはじめ、高い信頼性が求められるルーター、プリンター、デジタルカメラ、GPS、車載機器、携帯電話やPDAなど、どれもハードディスクが使用できない環境でファームウェアの格納等に使われる。
Wikipediaより

NOR型?
FLASHメモリっていろいろ種類があるの?

NOR型フラッシュメモリの引用にも書いてるけど、
NAND型ってのがあるね。
NAND型フラッシュメモリ(ナンドがたフラッシュメモリ、NANDフラッシュメモリ)は、不揮発性記憶素子のフラッシュメモリの一種である。NOR型フラッシュメモリと比べて回路規模が小さく、安価に大容量化できる。また書き込みや消去も高速であるが、バイト単位の書き替え動作は不得手である。従来のフロッピーディスクに代わるPC用のUSBメモリやソリッドステートドライブ(SSD)、デジタルカメラ用のメモリーカード、携帯音楽プレーヤー、携帯電話などの記憶装置として使用される。
Wikipediaより

んー、これ見るとNAND Flashがストレージとしては適切ってことになるのかな?

そうだね。
ただ、消去単位がNOR-Flashよりもとてつもなく大きいから、
それなりと消去単位以上のRAM容量を持ってるようなシステムじゃないと使えないだろうね。

え?どういうこと?

まぁそこらへんの説明はまぁまぁのボリュームがあるから、次回説明にしようかな。

まじかー。
まとめ

まとめだよ。
- ストレージとして使える不揮発性メモリはおおよそ3種類
- EEPROM。
- NOR-FLASH。
- NAND-FLASH。
- EEPROMは4[Mbyte]程度なのでファイルシステムを組み込むのは不向き。
バックナンバーはこちら。
コメント