(57)【要約】【課題】  大きなメモリ記憶容量を必要とせず、簡単な処理でプログラム切り替えを実現する。【解決手段】  本発明のプログラム分岐方法は、ＣＰＵ１に対して複数のプログラム３，４，５が記憶されているメモリ領域自体をプログラム領域２に割り当て、メモリ切替処理部６，７，８により複数のプログラム３，４，５のいずれかを選択的に切り替えるための分岐の判断をし、メモリ切替処理部６，７，８により分岐の判断に従って複数のプログラム３，４，５のいずれかを選択的に切り替える分岐の処理をし、ＣＰＵ１により分岐の処理に対応するように選択的に切り替えられたプログラム３，４，５に応じた処理を実行するものである。【選択図】        図１
2005338952.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域に記憶されている複数のプログラムを制御手段の実行領域に切替えて読み出してプログラムに応じた処理を実行するプログラム分岐方法において、
上記複数のプログラムが記憶されている上記メモリ領域自体を上記実行領域に割り当てるステップと、
上記複数のプログラムのいずれかを選択的に切り替えるための分岐の判断をするステップと、
上記分岐の判断に従って上記複数のプログラムのいずれかを選択的に切り替える分岐の処理をするステップと、
上記分岐の処理に対応するように選択的に切り替えられたプログラムに応じた処理を実行するステップと
を備えたことを特徴とするプログラム分岐方法。
【請求項２】
請求項１記載のプログラム分岐方法において、
上記複数のプログラムは、上記分岐の処理をするステップに応じた切替処理部と、上記複数のプログラムに応じたプログラム処理部
を備えることを特徴とするプログラム分岐方法。
【請求項３】
請求項１記載のプログラム分岐方法において、
上記分岐の判断をするステップと、上記分岐の処理をするステップと、上記処理を実行するステップは繰り返して実行される
を備えたことを特徴とするプログラム分岐方法。
【請求項４】
請求項１記載のプログラム分岐方法において、
上記分岐の判断をするステップは割り込み処理の有無を判断し、上記分岐の処理をするステップは上記割り込み処理の割り込み要因に対応して分岐の処理をする
ことを特徴とするプログラム分岐方法。
【請求項５】
メモリ領域に記憶されている複数のプログラムを制御手段の実行領域に切替えて読み出してプログラムに応じた処理を実行するプログラム分岐方法において、
上記複数のプログラムが記憶されている上記メモリ領域自体を上記実行領域に割り当てるステップと、
上記複数のプログラムのいずれかを選択的に切り替えるための分岐の判断をするステップと、
上記分岐の判断に従って上記複数のプログラムのいずれかを選択的に切り替える分岐の処理をするステップと、
上記分岐の処理に対応するように選択的に切り替えられたプログラムに応じた処理を実行するステップと、
上記選択的に切り替えられたプログラムに応じた処理の実行領域を残すステップと、
を備えたことを特徴とするプログラム分岐方法。
【請求項６】
請求項５記載のプログラム分岐方法において、
上記複数のプログラムは、上記分岐の処理をするステップに応じたオペレーティングシステム（ＯＳ）処理部と、上記複数のプログラムに応じたプログラム処理部と、上記プログラム処理部によるプログラムのアドレスを計数するプログラムカウンタ部と、上記プログラムカウンタ部によるプログラムのアドレスを残すスタックポインタ部
を備えることを特徴とするプログラム分岐方法。
【請求項７】
請求項５記載のプログラム分岐方法において、
上記分岐の判断をするステップと、上記分岐の処理をするステップと、上記処理を実行するステップと、上記処理の実行領域を残すステップは繰り返して実行される
を備えたことを特徴とするプログラム分岐方法。
【請求項８】
請求項５記載のプログラム分岐方法において、
上記分岐の判断をするステップはオペレーティングシステム（ＯＳ）処理及び割り込み処理の有無を判断し、上記分岐の処理をするステップは上記オペレーティングシステム（ＯＳ）処理に基づく処理要求及び上記割り込み処理の割り込み要因に対応して分岐の処理をする
ことを特徴とするプログラム分岐方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムを切替えるプログラム分岐方法に関する。
【背景技術】
【０００２】
従来、小さなプログラム領域で複数のプログラムを実行しなければならない場合には、メモリからプログラムデータを制御手段の実行領域にコピーした後にプログラムによる処理を開始しなければならなかった。
【０００３】
図６は、従来のプログラムコピーの動作を示すフローチャートである。
図６において、制御手段の動作を起動すると（ステップＳ４１）、まず、複数のプログラムのいずれかを選択的に切り替えるための分岐の判断をする（ステップＳ４２）。ここで、分岐の判断は制御手段のレジスタ、ポートの状態を条件とする。
【０００４】
次に、外部のメモリ領域から制御手段によるプログラムの実行領域へプログラムコードをコピーする（ステップＳ４３）。これにより、分岐先を決定してその処理へ移ることにより、実行領域へコピーされたプログラムに応じた処理７１、処理７２、又は処理７３のいずれかが制御手段により実行される。
【０００５】
また、特許文献１に記載の方法ではブート専用のブロック、各パーティションへ切り替えるブロックを用いることによりプログラム切り替えを実現するようにしていた。
また、特許文献２に記載の方法では処理の切り替え時にハードウエアが次に呼び出す関数のアドレスを計算することによりプログラム切り替えを実現するようにしていた。
【特許文献１】特開2003-280915号公報
【特許文献２】特開2003-263329号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した従来のプログラムコピーの方法では、小さなプログラム領域で複数のプログラムを実行しなければならない場合、メモリからプログラムデータを実行領域にコピーした後に処理を開始しなければならなかったという不都合があった。
【０００７】
また、特許文献１に記載の方法ではブート専用のブロック、各パーティションへ切り替えるブロックがあるが、ブート処理は他の処理と異なる扱いであるため、簡単にプログラム切り替えを実現することができなかった。また、この方法では各パーティションへの処理の移動のみでパーティション間の切り替えはできなかった。
【０００８】
また、特許文献２に記載の方法では処理の切り替え時にハードウエアが次に呼び出す関数のアドレスを計算しているが、アドレスの計算を行うため処理が複雑になるため、ハードウエアの付加が重くなり、また切り替え部分をハードウエアで実装するため汎用性がなくなる。
【０００９】
そこで、本発明は、大きなメモリ記憶容量を必要とせず、簡単な処理でプログラム切り替えを実現することができるプログラム分岐方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
上記課題を解決し、本発明の目的を達成するため、本発明のプログラム分岐方法は、複数のプログラムが記憶されているメモリ領域自体を実行領域に割り当てるステップと、複数のプログラムのいずれかを選択的に切り替えるための分岐の判断をするステップと、分岐の判断に従って複数のプログラムのいずれかを選択的に切り替える分岐の処理をするステップと、分岐の処理に対応するように選択的に切り替えられたプログラムに応じた処理を実行するステップとを備えるものである。
【００１１】
これによれば、実行しなければならないプログラムが記憶されたメモリ領域自体を制御手段の実行領域に割り当てることにより、従来のようなプログラムコード自体のコピー処理の必要がなくなる。
【００１２】
異なるプログラムが書かれた複数のメモリを選択的に制御手段の実行領域に割り付けることで処理の分岐を行うため、あるプログラムコードが置かれたメモリが割り付けられているアドレス空間に別のプログラムコードが置かれたメモリを割り付けることでオーバーヘッドなく処理の切り替えが行うことができる。
【００１３】
また、本発明のプログラム分岐方法は、複数のプログラムが記憶されているメモリ領域自体を実行領域に割り当てるステップと、複数のプログラムのいずれかを選択的に切り替えるための分岐の判断をするステップと、分岐の判断に従って複数のプログラムのいずれかを選択的に切り替える分岐の処理をするステップと、分岐の処理に対応するように選択的に切り替えられたプログラムに応じた処理を実行するステップと、選択的に切り替えられたプログラムに応じた処理の実行領域を残すステップとを備えるものである。
【００１４】
これによれば、実行しなければならないプログラムが記憶されたメモリ領域自体を制御手段の実行領域に割り当てることにより、従来のようなプログラムコード自体のコピー処理の必要がなくなる。また、選択的に切り替えられたプログラムに応じた処理の実行領域を残すことにより、切り替えの前後でプログラムに応じた処理の実行領域を一致させることができので、切り替え処理を効率的に行うことができる。
【００１５】
異なるプログラムが書かれた複数のメモリを選択的に制御手段の実行領域に割り付けることで処理の分岐を行うため、あるプログラムコードが置かれたメモリが割り付けられているアドレス空間に別のプログラムコードが置かれたメモリを割り付け、選択的に切り替えられたプログラムに応じた処理の実行領域を残すことでオーバーヘッドなく処理の切り替えが行うことができる。
【発明の効果】
【００１６】
本発明によれば、従来のようなプログラムコード自体のコピー処理の必要がなくなるため、大きなメモリ記憶容量を必要とせず、簡単な処理でプログラム切り替えを実現することができる。また、オーバーヘッドなく処理の切り替えが行うことができる。
【発明を実施するための最良の形態】
【００１７】
以下に、本発明の実施の形態について、適宜図面を参照しながら説明する。
図１は、本発明の実施の形態によるプログラム分岐装置の構成を示す図である。
図１において、制御手段としてのCPU（Central Processing Unit）1は、ROM（Read Only Memory），RAM（Random access Memory）などで構成されるワークエリアと呼ばれる実行領域のうちのプログラム領域２に割り付けられたプログラムの動作を実行するように構成される。
【００１８】
ここで、複数のプログラムとして、メモリ切替処理部６及びブート処理部３、メモリ切替処理部７及び第１の処理部４、メモリ切替処理部８及び第２の処理部５が記憶されているメモリ領域自体を実行領域であるプログラム領域２に割り当てるように構成される。つまり、メモリ切替処理部６及びブート処理部３、メモリ切替処理部７及び第１の処理部４、メモリ切替処理部８及び第２の処理部５は、制御手段としてのＣＰＵ１に対してプログラム領域２の同じメモリアドレス領域に割り当てられる。具体的には、同じアドレスに配置した複数のメモリを選択することで処理を切り替えることになる。
【００１９】
また、メモリ切替処理部６、メモリ切替処理部７、メモリ切替処理部８は、制御手段としてのＣＰＵ１により、複数のプログラムとして、ブート処理部３、第１の処理部４、第２の処理部５のいずれかを選択的に切り替えるための分岐の判断をするように構成される。ここで、メモリ切替処理部６、メモリ切替処理部７、メモリ切替処理部８は全て同一のプログラムで構成される。また、メモリを切り替える条件は制御手段としてのＣＰＵ１のポート、レジスタなどのメモリ外の情報を用いるように構成される。
【００２０】
また、メモリ切替処理部６、メモリ切替処理部７、メモリ切替処理部８は、制御手段としてのＣＰＵ１により、分岐の判断に従って複数のプログラムとして、ブート処理部３、第１の処理部４、第２の処理部５のいずれかを選択的に切り替える分岐の処理をするように構成される。
【００２１】
また、制御手段としてのＣＰＵ１は、分岐の処理に対応するように選択的に切り替えられたプログラムとして、ブート処理部３、第１の処理部４、第２の処理部５に応じた処理を実行するように構成される。
【００２２】
これにより、９に示すように、メモリ切替処理部６、メモリ切替処理部７、メモリ切替処理部８による切替処理によってプログラム領域２に割り付けられるプログラムデータが選択される。そして、制御手段としてのＣＰＵ１は、メモリ切替処理部６、メモリ切替処理部７、メモリ切替処理部８による切替処理によって、実行領域のうちのプログラム領域２に割り付けられたプログラムとしてのブート処理部３、第１の処理部４、第２の処理部５の動作を実行する。
【００２３】
図２は、割込要因に対応したメモリ切替の動作を示すフローチャートである。図２は、上述したメモリを切り替える条件が、割込み要因に対応する場合の動作を示すものである。
図２において、制御手段としてのＣＰＵ１は、割込があるか否かを判断する（ステップＳ１）。具体的には、ＣＰＵ１は、一定時間毎に発生するタイマー割込みや、ＣＰＵ１によって制御される被制御部の状態遷移による割込みなどを検出する。
【００２４】
ＣＰＵ１は、割込があると判断したとき、割込要因が何であるかを判断する（ステップＳ２）。具体的には、ＣＰＵ１は、パワーオンスイッチのオン操作時のリセット動作による割込要因や、ＣＰＵ１によって制御される被制御部の状態が他の状態に遷移したときの割込要因などを検出する。
【００２５】
ＣＰＵ１は、割込要因に対応してメモリ切替を行う（ステップＳ３）。具体的には、ＣＰＵ１は、パワーオンスイッチのオン操作時のリセット動作による割込要因のときは、図１に示したメモリ切替処理部６による切替処理によってブート処理部３がプログラム領域２に割り付けられるように選択される。また、ＣＰＵ１によって制御される被制御部の状態が他の状態に遷移したときの割込要因のときは、図１に示したメモリ切替処理部７、メモリ切替処理部８による切替処理によって第１の処理部４、第２の処理部５がプログラム領域２に割り付けられるように選択される。
【００２６】
図３は、分岐によるプログラム全体の切替の動作を示すフローチャートである。
図３において、メモリ切替処理部は、分岐の判断を行う（ステップＳ１１、ステップＳ２１、ステップＳ３１）。具体的には、図１に示したメモリ切替処理部は、制御手段としてのＣＰＵ１により、複数のプログラムとして、第１の処理部、第２の処理部、第３の処理部のいずれかを選択的に切り替えるための分岐の判断をする。
【００２７】
分岐が必要であると判断されたときは、次に、メモリ切替処理部は、分岐（切替）処理を行う（ステップＳ１２、ステップＳ２２、ステップＳ３２）。具体的には、図１に示したメモリ切替処理部（ステップＳ１２、ステップＳ２２、ステップＳ３２）は、制御手段としてのＣＰＵ１により、第１の処理部による第１の処理（ステップＳ１３）、第２の処理部による第２の処理（ステップＳ２３）、第３の処理部による第３の処理（ステップＳ３３）のいずれかを選択的に切り替える分岐の処理をする。
【００２８】
メモリ切替処理部（ステップＳ１２、ステップＳ２２、ステップＳ３２）の分岐（切替）処理により、３１に示すように、全てをプログラムごと（ステップＳ１１〜ステップＳ１３、ステップＳ２１〜ステップＳ２３、ステップＳ３１〜ステップＳ３３）
切り替える。
【００２９】
ここで、第１の処理部による第１の処理（ステップＳ１３）に切り替えられたときは、図１に示した制御手段としてのＣＰＵ１は、分岐の処理に対応するように選択的に切り替えられたプログラムとして、第１の処理部に応じた処理を実行する（ステップＳ１３）。
【００３０】
また、第２の処理部による第２の処理（ステップＳ２３）に切り替えられたときは、図１に示した制御手段としてのＣＰＵ１は、分岐の処理に対応するように選択的に切り替えられたプログラムとして、第２の処理部に応じた処理を実行する（ステップＳ２３）。
【００３１】
また、第３の処理部による第３の処理（ステップＳ３３）に切り替えられたときは、図１に示した制御手段としてのＣＰＵ１は、分岐の処理に対応するように選択的に切り替えられたプログラムとして、第３の処理部に応じた処理を実行する（ステップＳ３３）。
【００３２】
このように、メモリ切替処理部（ステップＳ１２、ステップＳ２２、ステップＳ３２）は、第１の処理部による第１の処理（ステップＳ１３）、第２の処理部による第２の処理（ステップＳ２３）、第３の処理部による第３の処理（ステップＳ３３）を呼び出すように動作する。
【００３３】
ここでは、前提として、まず、切替処理の数分のプログラムを記憶したメモリが同じアドレスに配置されている。次に、全てのメモリに記録されているプログラムの先頭部分にメモリ切り替えを管理するメモリ切替処理部を搭載していて、メモリ切替処理部の後部にそれぞれのプログラムの処理部を実装している。
【００３４】
そして、処理を開始すると、まずメモリに記録されているプログラムの先頭部分に搭載されているメモリ切替処理部により分岐の判断及び切替処理が行われる。ここでは、３１に示すように、分岐（切替）によって全てをプログラムごと切り替える。
【００３５】
次に、切替えられたメモリ上に記憶されているプログラムが図１に示した制御手段としてのＣＰＵ１により実行され、プログラムの実行処理が終わると再びメモリ切替処理部による分岐の判断及び切替処理へ戻って、これらの判断及び処理を繰り返す。
【００３６】
図４は、ハードウエア構成を示す図である。
図４において、制御手段としてのＣＰＵ４１には、第１のメモリ４３、第２のメモリ４４、第３のメモリ４５のそれぞれが同じアドレス領域に割り当てられている。ＣＰＵ４１は、例えばチップセレクト信号などの同じアドレス信号ＡＤを第１のメモリ４３、第２のメモリ４４、第３のメモリ４５に対して供給する。
【００３７】
ここで、スイッチ４２から、第１のメモリ４３、第２のメモリ４４、第３のメモリ４５に対して、たとえばチップイネーブル信号などの選択信号ＣＨが供給される。この選択信号ＣＨは、同じアドレス領域に割り当てられた第１のメモリ４３、第２のメモリ４４、第３のメモリ４５のアドレス領域を有効にする信号であればよい。
【００３８】
ＣＰＵ４１に対して同じアドレス領域に配置された第１のメモリ４３、第２のメモリ４４、第３のメモリ４５に対して、ＣＰＵ４１は、例えばチップセレクト信号などの同じアドレス信号ＡＤを第１のメモリ４３、第２のメモリ４４、第３のメモリ４５に対して供給して、第１のメモリ４３、第２のメモリ４４、第３のメモリ４５のいずれかを選択する。
【００３９】
そして、ＣＰＵ４１は、スイッチ４２からの選択信号ＣＨによって選択された第１のメモリ４３、第２のメモリ４４、第３のメモリのいずれかに記憶されたプログラムデータを出力する。
【００４０】
なお、ここで、選択信号ＣＨを管理しているスイッチ４２に対してＣＰＵ４１からの選択信号ＣＨに基づいて切り替え処理が可能に構成される。
【００４１】
図５は、ＯＳ処理に応じたプログラム分岐装置の構成を示す図である。
図５において、制御手段としてのＣＰＵ５１は、ＲＯＭ，ＲＡＭなどで構成されるワークエリアと呼ばれる実行領域のうちのプログラム領域５３に割り付けられたプログラムの動作を実行するように構成される。
【００４２】
ここで、複数のプログラムとして、オペレーティングシステム（OS（Operating System））処理部５７、第１のタスク処理部５４、プログラムカウンタ部６１及びスタックポインタ部６２と、オペレーティングシステム（ＯＳ）処理部５８、第２のタスク処理部５５、プログラムカウンタ部６３及びスタックポインタ部６４と、オペレーティングシステム（ＯＳ）処理部５９、第３のタスク処理部５６、プログラムカウンタ部６５及びスタックポインタ部６６は、制御手段としてのＣＰＵ５１に対してプログラム領域５３の同じメモリアドレス領域に割り当てられる。具体的には、同じアドレスに配置した複数のメモリを選択することで処理を切り替えることになる。
【００４３】
また、オペレーティングシステム（ＯＳ）処理部５７、オペレーティングシステム（ＯＳ）処理部５８、オペレーティングシステム（ＯＳ）処理部５９は、制御手段としてのＣＰＵ５１により、複数のプログラムとして、第１のタスク処理部５４、第２のタスク処理部５５、第３のタスク処理部５６のいずれかを選択的に切り替えるための分岐の判断をするように構成される。ここで、オペレーティングシステム（ＯＳ）処理部５７、オペレーティングシステム（ＯＳ）処理部５８、オペレーティングシステム（ＯＳ）処理部５９は全て異なるプログラムで構成される。また、メモリを切り替える条件は制御手段としてのＣＰＵ５１のポート、レジスタなどのメモリ外の情報を用いるように構成される。
【００４４】
また、オペレーティングシステム（ＯＳ）処理部５７、オペレーティングシステム（ＯＳ）処理部５８、オペレーティングシステム（ＯＳ）処理部５９は、制御手段としてのＣＰＵ５１により、分岐の判断に従って複数のプログラムとして、第１のタスク処理部５４、第２のタスク処理部５５、第３のタスク処理部５６のいずれかを選択的に切り替える分岐の処理をするように構成される。
【００４５】
また、制御手段としてのＣＰＵ５１は、分岐の処理に対応するように選択的に切り替えられたプログラムとして、第１のタスク処理部５４、第２のタスク処理部５５、第３のタスク処理部５６に応じた処理を実行するように構成される。
【００４６】
また、プログラムカウンタ部６１及びスタックポインタ部６２と、プログラムカウンタ部６３及びスタックポインタ部６４と、プログラムカウンタ部６５及びスタックポインタ部６６は、選択的に切り替えられたプログラムとして、第１のタスク処理部５４、第２のタスク処理部５５、第３のタスク処理部５６に応じた処理の実行領域を残すように構成される。
【００４７】
ここで、プログラムカウンタ部６１，６３，６５は、第１のタスク処理部５４、第２のタスク処理部５５、第３のタスク処理部５６によるプログラムのアドレスを計数する。また、スタックポインタ部６２，６４，６６は、プログラムカウンタ部６１，６３，６５によるプログラムのアドレスを指して残す。
【００４８】
また、スタックＲＡＭ５２は、スタックポインタ部６２と、スタックポインタ部６４と、スタックポインタ部６６により残したプログラムのアドレスを読み出し可能に記憶する。
【００４９】
これにより、６７に示すように、オペレーティングシステム（ＯＳ）処理部５７、オペレーティングシステム（ＯＳ）処理部５８、オペレーティングシステム（ＯＳ）処理部５９による切替処理によってプログラム領域５３に割り付けられるプログラムデータが選択される。
【００５０】
そして、制御手段としてのＣＰＵ５１は、オペレーティングシステム（ＯＳ）処理部５７、オペレーティングシステム（ＯＳ）処理部５８、オペレーティングシステム（ＯＳ）処理部５９による切替処理によって、実行領域のうちのプログラム領域５３に割り付けられたプログラムとしての第１のタスク処理部５４、第２のタスク処理部５５、第３のタスク処理部５６の動作を実行する。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態によるプログラム分岐装置の構成を示す図である。
【図２】割込み要因に対応したメモリ切替の動作を示すフローチャートである。
【図３】分岐によるプログラム全体の切替の動作を示すフローチャートである。
【図４】ハードウエア構成を示す図である。
【図５】ＯＳ処理に応じたプログラム分岐装置の構成を示す図である。
【図６】従来のプログラムコピーの動作を示すフローチャートである。
【符号の説明】
【００５２】
１…ＣＰＵ、２…プログラム領域、３…ブート処理部、４…第１の処理部、５…第２の処理部、６…メモリ切替処理部、７…メモリ切替処理部、８…メモリ切替処理部、９…切替処理によってプログラム領域２に割り付けられるプログラムデータが選択される、３１…分岐（切替）によって全てをプログラムごと切り替える、４１…ＣＰＵ、４２…スイッチ、４３…第１のメモリ、４４…第２のメモリ、４５…第３のメモリ、ＡＤ…同じアドレス信号、ＣＨ…選択信号、５１…ＣＰＵ、５３…プログラム領域、５４…第１のタスク処理部、５５…第２のタスク処理部、５６…第３のタスク処理部、５７…オペレーティングシステム（ＯＳ）処理部、５８…オペレーティングシステム（ＯＳ）処理部、５９…オペレーティングシステム（ＯＳ）処理部、６１…プログラムカウンタ部、６２…スタックポインタ部、６３…プログラムカウンタ部、６４…スタックポインタ部、６５…プログラムカウンタ部、６６…スタックポインタ部、６７…オペレーティングシステム（ＯＳ）による切替処理によってプログラム領域５３に割り付けられるプログラムデータが選択される、
【図１】
2005338952.tif 000003
【図２】
2005338952.tif 000004
【図３】
2005338952.tif 000005
【図４】
2005338952.tif 000006
【図５】
2005338952.tif 000007
【図６】
2005338952.tif 000008