オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

NANDフラッシュとリアルタイムクロック

»

皆さんはパソコンに電池が入っているのをご存じでしょうか?ノートPCのバッテリーはもちろん使われていますが、デスクトップPCでも電池が入っています。大抵はボタン電池がマザーボードに装着されています。

この電池は基本的には時計のためにあります。パソコンの電源を切っても、内蔵時計(リアルタイムクロック:RTC)が動き続けるために必要なのです。この内蔵時計のことをリアルタイムクロックと呼びます。パソコンで時計を自分で設定したり、あるいはNTPなどのネットワークで同期させると、この内蔵時計も修正され、そのまま時計自身でも動き続けます。

ところが、組み込み用のハードウェアの場合、コストや大きさの面から、この時計が入っていないことも多いのです。当社の不正接続検知システムIntraGuardian回線遅延シミュレータEthdelayで使っているArmadillo200シリーズも時計が入っていません。従って、電源を切ると時計がリセットされてしまい、次に電源を投入すると、1970年1月1日から始まってしまいます。

IntraGuardianでは、Webのユーザインターフェースで時刻を合わせたり、NTPサーバを指定することができるようになっていて、基本的にはネットワークにつなげっぱなしの運用形態がほとんどですので、NTPサーバの使用を推奨しています。

Ethdelayは一つ前のバージョンまでは時計は無視していましたが、現バージョンからはログ取得機能が追加され、ログに記録される日時をあわせるために、Webのユーザインターフェースにログインした瞬間に自動でブラウザの時刻をセットするようになっています。

組み込み用のハードウェアは意外と時刻を管理するのが大変なのです。

さて、もう一つ組み込み用のハードウェアで不便なのが、外部記憶装置、つまり普通のパソコンのハードディスクに相当するものが使えないことが多い点です。OSやアプリケーションはフラッシュメモリーやROMに記憶され、電源を入れると、RAMディスクにディスクイメージを展開して運用するタイプがほとんどです。フラッシュメモリーをディスクのように使うこともできるのですが、フラッシュメモリーは書き込み回数の限界がそれほど大きくなく、常時読み書きをするような使い方にはあまり向きません。また書き込みのスピードが遅いのもネックになります。

RAMは比較的安価で高速なのですが、電源を切るとデータが消えてしまいます。設定ファイルなど保持したいデータのみをフラッシュメモリーに書き戻しておくような使い方をすることが多いものです。

こんな感じに、組み込み用のハードウェアは制限が厳しいものが多いのですが、今日はArmadillo200シリーズにNANDフラッシュモジュールを増設して製品化の検討をしてみました。フラッシュメモリーなので電源を切ってもデータが消えません。容量は256Mバイトで、今時大きくもありませんが、無いよりはずいぶん応用範囲が広がります。ついでに、このモジュールにはリアルタイムクロックが装備されていて、Armadillo200シリーズでも内蔵時計を使えるようになります。

もちろん、モジュールはタダではないので、59,800円シリーズに加えるのは難しいのですが、少し価格をUPするだけで、実現できることがかなり広がります。

今回製品化を検討しているのは、実はオルタナブロガーの某氏のご希望を実現してみようということで取り組んでみています。プログラム的には瞬時にできあがったのですが、組み込み用ハードで簡単に使える状態にするまでは結構試行錯誤が必要です。ユーザーインターフェース以外は何とか目処がつきました。ちょうどフラッシュと内蔵時計が必要なシステムなのです。

本当に製品として販売するかどうかはまだわかりませんが、ある程度方向性が見えてきたらブログでも披露しますので、お楽しみに・・・。

Comment(3)