EEPROMの存在意義

  • このエントリーをはてなブックマークに追加

メモリの中でEEPROMというメモリがあります。

数十円と安価で不揮発性(電源OFFでも消えない)ですが、容量が1kbyteとか数キロバイト程度しかありません。

一体何に使うのでしょうか?

 

小規模な組み込み機器ならFLASHメモリ内臓のCPUを使っているので、CPU内に数十kB程度のFLASHメモリがあります。

大規模な組み込み機器なら数Gバイトのフラッシュメモリが外付けされています。

そんな場合でも、意外とはじっこにちょこんとついているのがこのEEPROMです。

 

おそらく、普通はこう思うと思います。

 

「大きな不揮発性メモリ(フラッシュメモリ)がたくさんあるのに、1kBとか少ないメモリを外付けしてどうするの? 意味ないんじゃない?」

 

鍵は大量生産にあります。

 

はじめに答えを言ってしまうと、EEPROMは「設定値の格納」に利用されます。

機器の設定値や、シリアル番号や、LANに繋がる機器ではMACアドレスなどが書かれています。

 

「そんなのもともと使っているフラッシュに書けばいいじゃん」

 

と思うかもしれません。

実際、設定値をCPU内部のフラッシュメモリに保持している機器もあるにはあります。

しかし、大量生産の時に困ってしまうのです。

 

シリアル番号やMACアドレスは1つずつ違うので、全て違う値を書かないといけません。

しかし、もしフラッシュメモリに書く値を変えようとすると大変です。

まず、CPU内のフラッシュメモリや外付けフラッシュメモリにデータを簡単にコピーできるツールが有ります。

なので、全く同じ内容のフラッシュメモリを量産することは簡単なのです。

しかし、1台ずつ内容の一部を変えながらコピーというのは特殊です。

普通のツールでは出来ないことが多いです。

 

また、ソフトウェアのアップデートの際にも困ってしまいます。

組み込みソフトウェアのアップデートでは通常フラッシュメモリの全領域を書き換えて更新します。

ということは、フラッシュメモリの一部に設定値が入っていると、それも書き換えられてしまいます。

こうなると、特定の領域だけコピーしない仕組みが必要で煩雑になります。

 

と、このような理由によりフラッシュメモリは1台毎に変えることはせず、共通としたほうが楽なのです。

そこで一台ごとに違う情報はフラッシュメモリに書き込まずに、別付けの小容量メモリのEEPROMに書くということが慣例になっています。

 

そんなところでわかりましたでしょうか。

 

以上、小田切でした。

  • このエントリーをはてなブックマークに追加

Warning: extract() expects parameter 1 to be array, string given in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 314

Warning: Illegal string offset 'title' in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 318

Warning: Cannot assign an empty string to a string offset in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 318

Warning: Illegal string offset 'content' in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 320

Warning: Cannot assign an empty string to a string offset in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 320

Warning: Illegal string offset 'button_text' in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 322

Warning: Cannot assign an empty string to a string offset in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 322

Warning: Illegal string offset 'button_url' in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 323

Warning: Cannot assign an empty string to a string offset in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 323

Warning: Illegal string offset 'button_cvtag' in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 324

Warning: Cannot assign an empty string to a string offset in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 324

Warning: Illegal string offset 'image' in /home/kisukunanato/kairo-consulting.com/public_html/blog/wp-content/themes/xeory_base/lib/functions/bzb-functions.php on line 332

SNSでもご購読できます。