(57)【要約】【課題】組み込みシステムの論理機能を変更するにはファームウェアを変更しなければならず、その結果として開発期間の長期化や開発コストの増大が発生する。【解決手段】ファームウェアを記憶する第１の不揮発性メモリ（フラッシュＲＯＭ１１２）と、論理式を記憶する第２の不揮発性メモリ（ＥＥＰＲＯＭ１２）と、揮発性メモリ（ＲＡＭ１１３）と、これらに接続されたプロセッサ１１１とを備える。ファームウェアは、第２の不揮発性メモリから論理式を読み出して解析し、その解析結果を揮発性メモリに記憶する初期化ルーチンと、揮発性メモリから論理式の解析結果を読み出して実行する論理演算実行ルーチンとを有する。【選択図】図１
2011065246.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアを記憶する第１の不揮発性メモリと、
論理式を記憶する第２の不揮発性メモリと、
揮発性メモリと、
前記第１の不揮発性メモリと前記第２の不揮発性メモリと前記揮発性メモリとに接続されたプロセッサとを備え、
前記ファームウェアは、
前記第２の不揮発性メモリから前記論理式を読み出して解析し、その解析結果を前記揮発性メモリに記憶する初期化ルーチンと、
前記揮発性メモリから前記論理式の解析結果を読み出して実行する論理演算実行ルーチンとを有する、
ことを特徴とする組み込みシステム。
【請求項２】
前記初期化ルーチンは、前記論理式を逆ポーランド式に変換する、
ことを特徴とする請求項１に記載の組み込みシステム。
【請求項３】
前記論理演算実行ルーチンは、前記ポーランド式に変換された論理式を解釈して論理演算を実行する、
ことを特徴とする請求項２に記載の組み込みシステム。
【請求項４】
前記プロセッサに接続された入出力ポートを備え、
前記論理式は、前記入出力ポートから入力される電気信号と前記入出力ポートから出力される電気信号とに関する論理演算を規定する、
ことを特徴とする請求項１乃至４の何れか１項に記載の組み込みシステム。
【請求項５】
前記第１の不揮発性メモリと前記揮発性メモリと前記入出力ポートと前記プロセッサとは一つの半導体チップ上に搭載されており、前記第２の不揮発性メモリは、前記半導体チップに外付けされている、
ことを特徴とする請求項１乃至４の何れか１項に記載の組み込みシステム。
【請求項６】
プロセッサが、電源投入直後の初期化時に、自プロセッサに接続された第１の不揮発性メモリに記憶されたファームウェアの初期化ルーチンを実行して、自プロセッサに接続された第２の不揮発性メモリに記憶された論理式を読み出して解析し、その解析結果を自プロセッサに接続された揮発性メモリに記憶し、
前記プロセッサが、前記ファームウェアの論理演算実行ルーチンを実行して、前記揮発性メモリから前記論理式の解析結果を読み出して実行する、
ことを特徴とする論理演算実行方法。
【請求項７】
前記初期化ルーチンは、前記論理式を逆ポーランド式に変換し、
前記論理演算実行ルーチンは、前記ポーランド式に変換された論理式を解釈して論理演算を実行する、
ことを特徴とする請求項６に記載の論理演算実行方法。
【請求項８】
ファームウェアを記憶する第１の不揮発性メモリと、揮発性メモリと、プロセッサとを内蔵し、論理式を記憶する第２の不揮発性メモリが外付けされたマイクロプロセッサユニットであって、前記ファームウェアは、前記第２の不揮発性メモリから前記論理式を読み出して解析し、その解析結果を前記揮発性メモリに記憶する初期化ルーチンと、前記揮発性メモリから前記論理式の解析結果を読み出して実行する論理演算実行ルーチンとを有する、
ことを特徴とするマイクロプロセッシングユニット。
【請求項９】
前記初期化ルーチンは、前記論理式を逆ポーランド式に変換し、
前記論理演算実行ルーチンは、前記ポーランド式に変換された論理式を解釈して論理演算を実行する、
ことを特徴とする請求項８に記載のマイクロプロセッシングユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリにファームウェアが組み込まれ、プロセッサによって動作する組み込みシステムに関する。
【背景技術】
【０００２】
現在、パソコン、サーバ、メインフレーム以外でコンピュータ制御されている機器の多くが組み込みシステムとなっている。組み込みシステムは、フラッシュＲＯＭ等の不揮発性メモリに記憶されたファームウェアをプロセッサが実行することにより、システムの動作や状態などを制御する。
【０００３】
このような組み込みシステムでは、ファームウェアを改版することにより、組み込みシステムの論理機能を変更することができる。ここで、論理機能とは、例えば組み込みシステムとして、入力信号Ａ、Ｂと出力信号Ｃとを扱う通信装置を例にすると、Ｃ＝Ａ and Ｂといった論理演算を行う機能を意味する。
【０００４】
ファームウェアを改版することで機能変更を行う技術の一例が特許文献１に記載されている。この特許文献１では、複数の通信回線を終端し、警報転送する通信装置において、通信回線のインタフェース条件によって異なってくる警報変換機能をファームウェアに依存することにより、ハードウェアの変更無しに、ファームウェアのみの変更で警報変換機能のカスタマイズを可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１２７８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように組み込みシステムは、ファームウェアのみの変更でシステムの論理機能を変更することができる。しかしながら、ファームウェアの変更作業にはバグ混入の危険を伴う。このため、ファームウェアを変更した場合、信頼性を確保するために、ファームウェアにバグが存在しないかどうかを再度評価する作業が必要になる。この結果、開発期間の長期化、開発コストの増大を招く。
【０００７】
本発明の目的は、組み込みシステムの論理機能を変更するにはファームウェアを変更しなければならず、その結果として開発期間の長期化や開発コストの増大が発生する、という課題を解決する組み込みシステム、機能変更方法およびマイクロプロセッシングユニットを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態である組み込みシステムは、
ファームウェアを記憶する第１の不揮発性メモリと、
論理式を記憶する第２の不揮発性メモリと、
揮発性メモリと、
上記第１の不揮発性メモリと上記第２の不揮発性メモリと上記揮発性メモリとに接続されたプロセッサとを備え、
上記ファームウェアは、
上記第２の不揮発性メモリから上記論理式を読み出して解析し、その解析結果を上記揮発性メモリに記憶する初期化ルーチンと、
上記揮発性メモリから上記論理式の解析結果を読み出して実行する論理演算実行ルーチンとを有する。
【０００９】
また、本発明の他の形態である論理演算実行方法は、
プロセッサが、電源投入直後の初期化時に、自プロセッサに接続された第１の不揮発性メモリに記憶されたファームウェアの初期化ルーチンを実行して、自プロセッサに接続された第２の不揮発性メモリに記憶された論理式を読み出して解析し、その解析結果を自プロセッサに接続された揮発性メモリに記憶し、
上記プロセッサが、上記ファームウェアの論理演算実行ルーチンを実行して、上記揮発性メモリから上記論理式の解析結果を読み出して実行する、
という構成を採る。
【００１０】
また、本発明の他の形態であるマイクロプロセッシングユニットは、
ファームウェアを記憶する第１の不揮発性メモリと、揮発性メモリと、プロセッサとを内蔵し、論理式を記憶する第２の不揮発性メモリが外付けされたマイクロプロセッサユニットであって、上記ファームウェアは、上記第２の不揮発性メモリから上記論理式を読み出して解析し、その解析結果を上記揮発性メモリに記憶する初期化ルーチンと、上記揮発性メモリから上記論理式の解析結果を読み出して実行する論理演算実行ルーチンとを有する、
という構成を採る。
【発明の効果】
【００１１】
本発明によれば、ファームウェアの変更無しに、システムの論理機能を変更することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係る組み込みシステムのブロック図である。
【図２】本発明の実施の形態に係る組み込みシステムにおけるファームウェアの構成例を示す図である。
【図３】本発明の実施の形態に係る組み込みシステムの動作を示すフローチャートである。
【図４】本発明を用いて、論理式のみ異なる複数の組み込みシステムを開発する工程の説明図である。
【図５】ファームウェア自体に論理式の定義を組み入れる方法を用いて、論理式のみ異なる複数の組み込みシステムを開発する工程の説明図である。
【発明を実施するための形態】
【００１３】
次に、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１４】
図１を参照すると、本発明の実施の形態に係る組み込みシステムは、ＭＰＵ（Micro Processing Unit）１１と、ＥＥＰＲＯＭ１２と、周辺回路１３とを備えている。
【００１５】
この組み込みシステムは、周辺回路１３からＭＰＵ１１に対して１以上の電気信号を入力し、ＭＰＵ１１がこれらの電気信号を被演算数とした論理演算を実行して１以上の電気信号を生成し、周辺回路１３へ出力するという動作を行う。このような動作を行う組み込みシステムは、光通信用のインタフェースモジュール等の通信機器、テレビなどの家電機器、コピー機械等のＯＡ機器など各種考えられる。以下では、説明を簡単にするために、周辺回路１３からＭＰＵ１１へは、Ａ、Ｂという２つの信号がインタフェース信号として入力され、ＭＰＵ１１から周辺回路１３へは、Ｃという１つの信号がインタフェース信号として出力されるものとする。
【００１６】
ＥＥＰＲＯＭ１２は、ＭＰＵ１１で実行される論理演算を定義した論理式を記憶する。ここでは、ＥＥＰＲＯＭ１２には、「Ｃ＝Ａ and Ｂ」という論理式が記憶されているものとする。論理式の記述言語は任意であり、例えば本実施の形態ではＣ言語で記述されているものとする。また、論理演算の対象となるＡ、ＢはＭＰＵ１１の所定の入出力ポートから入力されるインタフェース信号Ａ、Ｂに対応し、論理演算結果のＣはＭＰＵ１１の所定の入出力ポートから出力されるインタフェース信号Ｃに対応していることが、ファームウェアで定義されているものとする。
【００１７】
ＭＰＵ１１は、各種の演算器や汎用レジスタやプログラムカウンタ等を有するプロセッサ（ＣＰＵ（Central Processing Unit））１１１、ファームウェアＦＷを記憶するフラッシュＲＯＭ１１２、データ等を一時的に記憶するＲＡＭ１１３、周辺回路１３と信号Ａ〜Ｃの授受を行う入出力ポート１１４と、メモリデータの授受を行う１以上のバス１１５とを有する。
【００１８】
フラッシュＲＯＭ１１２に記憶されたファームウェアＦＷは、図２に示すように、複数のルーチンＲ１〜Ｒｎから構成されている。ここで、ルーチンＲ１はシステムの電源投入時に実行される初期化ルーチンであり、その他のルーチンＲ２〜Ｒｎは初期化後の通常運用時に実行されるルーチンである。また、そのうちルーチンＲ２は論理演算を実行するルーチンになっている。
【００１９】
初期化ルーチンＲ１では、プロセッサ１１１の内部レジスタのリセット等の一般的な初期化処理に加えて、ＥＥＰＲＯＭ１２の所定のアドレスから論理式を読み出して解析し、その解析結果をＲＡＭ１１３の所定のアドレスに記憶する処理を実行する。具体的には、初期化ルーチンＲ１は、Ｃ言語で記述された論理式をＥＥＰＲＯＭ１２から読み出して、逆ポーランド式で記述されたバイナリ形式の論理式に変換（翻訳）し、ＲＡＭ１１３に記憶する。
【００２０】
また論理演算を実行するルーチンＲ２では、ＲＡＭ１１３から論理式の解析結果を読み出して実行する処理を行う。具体的には、ルーチンＲ２は、ＲＡＭ１１３から逆ポーランド式で記述されたバイナリ形式の論理式を読み出して解釈し、論理演算を実行する。
【００２１】
図３は本実施の形態の動作の流れを示すフローチャートである。以下、図１〜図３を参照して、本実施の形態の動作を説明する。
【００２２】
図１の組み込みシステムのＭＰＵ１１に電源が投入されると、ＭＰＵ１１のプロセッサ１１１は、最初の時間（数十から数百ミリ秒）、フラッシュＲＯＭ１１２の所定のアドレスに記憶された初期化ルーチンＲ１を実行する（Ｓ１０１）。この初期化ルーチンＲ１の実行により、プロセッサ１１１は、ＥＥＰＲＯＭ１２の所定のアドレスから論理式を読み出し、この論理式を逆ポーランド式に変換し、ＲＡＭ１１３の所定のアドレスに記憶する。上述したように、ＥＥＰＲＯＭ１２に「Ｃ＝Ａ and Ｂ」という論理式が記憶されている場合、その論理式が逆ポーランド式に変換されてＲＡＭ１１３に記憶される。
【００２３】
その後、プロセッサ１１１は、ルーチンＲ２〜Ｒｎを実行する通常モードへ移行する（Ｓ１０２）。
【００２４】
通常モードにおいて、論理演算を実行するルーチンＲ２に制御が移行すると、プロセッサ１１１は、このルーチンＲ２の実行により、ＲＡＭ１１３から逆ポーランド式で記述されたバイナリ形式の論理式を読み出して解釈し、論理演算を実行する。上述したように、逆ポーランド式で記述された「Ｃ＝Ａ and Ｂ」がＲＡＭ１１３に記憶されている場合、プロセッサ１１１は、この逆ポーランド式を解釈実行することにより、周辺回路１３から入力されている信号Ａ、Ｂの論理積を演算し、その演算結果を信号Ｃとして周辺回路１３へ出力する。
【００２５】
上述した組み込みシステムでは、「Ｃ＝Ａ and Ｂ」という論理式を使用したが、別の論理式、例えば「Ｃ＝Ａ」という論理式を使用する場合には、ＥＥＰＲＯＭ１２中の論理式「Ｃ＝Ａ and Ｂ」を「Ｃ＝Ａ」に書き換えれば良い。この際、フラッシュＲＯＭ１１２中のファームウェアの変更は一切必要はない。
【００２６】
図４は、本発明を用いて、論理式のみ異なる複数の組み込みシステムを開発する工程の説明図である。例えば、論理式「Ｃ＝Ａ and Ｂ」を使用する組み込みシステム２０１と、論理式「Ｃ＝Ａ or Ｃ」を使用する組み込みシステム２０２との２種類の組み込みシステムを開発することを考える。本発明の場合、図４に示すように、それらに共通なソースプログラムを作成し、それをコンパイラで翻訳して生成したファームウェアを、各々の組み込みシステム２０１、２０２のフラッシュＲＯＭにロードする。一方、組み込みシステム２０１のＥＥＰＲＯＭには、論理式「Ｃ＝Ａ and Ｂ」のデータを記憶し、組み込みシステム２０２のＥＥＰＲＯＭには、論理式「Ｃ＝Ａ
or Ｃ」のデータを記憶する。複数の組み込みシステムで、共通のファームウェアを使用できるため、ファームウェアの評価作業は共通に行える。
【００２７】
他方、ファームウェア自体に論理式の定義を組み入れる場合、図５に示すように、論理式「Ｃ＝Ａ and Ｂ」の定義を含むソースプログラム、論理式「Ｃ＝Ａ or Ｃ」の定義を含むソースプログラムをそれぞれ開発し、それをコンパイラで翻訳して生成した互いに相違するファームウェアを、組み込みシステム２０１、２０２のフラッシュＲＯＭにロードする必要がある。複数の組み込みシステムで、ファームウェアが相違するため、ファームウェアの評価作業は別個に実施する必要があり、また他種類のファームウェアの管理が必要になる。
【００２８】
このように本実施の形態によれば、ファームウェアの変更無しに、組み込みシステムの論理機能を変更することができる。このため、組み込みシステムのカスタマイズに要する開発期間を短縮でき、また開発コストを低減することができる。
【符号の説明】
【００２９】
１１    ＭＰＵ
１２    ＥＥＰＲＯＭ
１３    周辺回路
１１１  プロセッサ
１１２  フラッシュＲＯＭ
１１３  ＲＡＭ
１１４  入出力ポート
１１５  バス
２０１、２０２  組み込みシステム
【図１】
2011065246.tif 000003
【図２】
2011065246.tif 000004
【図３】
2011065246.tif 000005
【図４】
2011065246.tif 000006
【図５】
2011065246.tif 000007