メモリの中でEEPROMというメモリがあります。
数十円と安価で不揮発性(電源OFFでも消えない)ですが、容量が1kbyteとか数キロバイト程度しかありません。
一体何に使うのでしょうか?
小規模な組み込み機器ならFLASHメモリ内臓のCPUを使っているので、CPU内に数十kB程度のFLASHメモリがあります。
大規模な組み込み機器なら数Gバイトのフラッシュメモリが外付けされています。
そんな場合でも、意外とはじっこにちょこんとついているのがこのEEPROMです。
おそらく、普通はこう思うと思います。
「大きな不揮発性メモリ(フラッシュメモリ)がたくさんあるのに、1kBとか少ないメモリを外付けしてどうするの? 意味ないんじゃない?」
鍵は大量生産にあります。
はじめに答えを言ってしまうと、EEPROMは「設定値の格納」に利用されます。
機器の設定値や、シリアル番号や、LANに繋がる機器ではMACアドレスなどが書かれています。
「そんなのもともと使っているフラッシュに書けばいいじゃん」
と思うかもしれません。
実際、設定値をCPU内部のフラッシュメモリに保持している機器もあるにはあります。
しかし、大量生産の時に困ってしまうのです。
シリアル番号やMACアドレスは1つずつ違うので、全て違う値を書かないといけません。
しかし、もしフラッシュメモリに書く値を変えようとすると大変です。
まず、CPU内のフラッシュメモリや外付けフラッシュメモリにデータを簡単にコピーできるツールが有ります。
なので、全く同じ内容のフラッシュメモリを量産することは簡単なのです。
しかし、1台ずつ内容の一部を変えながらコピーというのは特殊です。
普通のツールでは出来ないことが多いです。
また、ソフトウェアのアップデートの際にも困ってしまいます。
組み込みソフトウェアのアップデートでは通常フラッシュメモリの全領域を書き換えて更新します。
ということは、フラッシュメモリの一部に設定値が入っていると、それも書き換えられてしまいます。
こうなると、特定の領域だけコピーしない仕組みが必要で煩雑になります。
と、このような理由によりフラッシュメモリは1台毎に変えることはせず、共通としたほうが楽なのです。
そこで一台ごとに違う情報はフラッシュメモリに書き込まずに、別付けの小容量メモリのEEPROMに書くということが慣例になっています。
そんなところでわかりましたでしょうか。
以上、小田切でした。