(57)【要約】【課題】  従来、制御装置のプログラムを変更する場合、装置を一時的に停止しなければならなかった。【解決手段】  本発明は、運用プログラムを記憶する運用メモリと、前記運用メモリから前記運用プログラムを読み出して運用処理を実行する演算処理部とを有する制御装置において、前記運用メモリと同じ構成の書替用メモリと、前記演算処理部と前記運用メモリおよび前記書替用メモリとの間にあって、前記運用プログラムを前記運用メモリと前記書替用メモリの両方に書き込む初期プログラムローディング状態と、前記運用メモリから前記運用プログラムを読み出す通常時運用状態と、前記書替用メモリに変更プログラムを書き込む変更プログラムローディング状態と、前記書替用メモリから前記変更プログラムを読み出す切替時運用状態と、の４つの状態を切り替える切替回路とを設けたことを特徴とする。【選択図】図２
2012178099.tif 000002
【特許請求の範囲】
【請求項１】
運用プログラムを記憶する運用メモリと、
前記運用メモリから前記運用プログラムを読み出して運用処理を実行する演算処理部と
を有する制御装置において、
前記運用メモリと同じ構成の書替用メモリと、
前記演算処理部と前記運用メモリおよび前記書替用メモリとの間にあって、前記運用プログラムを前記運用メモリと前記書替用メモリの両方に書き込む初期プログラムローディング状態と、前記運用メモリから前記運用プログラムを読み出す通常時運用状態と、前記書替用メモリに変更プログラムを書き込む変更プログラムローディング状態と、前記書替用メモリから前記変更プログラムを読み出す切替時運用状態と、の４つの状態を切り替える切替回路と
を設けたことを特徴とする制御装置。
【請求項２】
請求項１に記載の制御装置において、
前記演算処理部に保守端末に接続するためのインターフェースを設け、
前記演算処理部は、前記保守端末から初期プログラムのローディング指令が発行された場合に初期プログラムローディング期間中は前記切替回路を前記初期プログラムローディング状態に切り替えて前記運用プログラムを前記運用メモリと前記書替用メモリの両方に書き込み、初期プログラムローディング終了後は前記切替回路を前記通常時運用状態に切り替えて前記運用メモリに書き込まれた前記運用プログラムを読み出し、前記保守端末から変更プログラムのローディング指令が発行された場合に変更プログラムローディング期間中は前記切替回路を前記変更プログラムローディング状態に切り替えて前記書替用メモリの一部に変更プログラムを書き込み、変更プログラムローディング終了後は前記切替回路を前記書替用メモリから前記変更プログラムを読み出す期間のみ前記切替時運用状態にそれ以外の期間は前記通常時運用状態にそれぞれ切り替えて前記運用メモリに書き込まれた前記運用プログラムの読み出しと、前記書替用メモリに前記変更プログラムが書き込まれた部分のみ前記書替用メモリに切り替えて前記変更プログラムを読み出しを行う
ことを特徴とする制御装置。
【請求項３】
請求項２に記載の制御装置において、
前記演算処理部は、アドレスバスと、データバスと、リード信号と、ライト信号と、前記運用メモリを選択するための運用メモリ選択信号と、前記書替用メモリを選択するための書替用メモリ選択信号と、メモリ切替信号と、メモリ分離信号とを出力し、
前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号および前記書替用メモリ選択信号を前記メモリ切替信号および前記メモリ分離信号に応じて切り替える
ことを特徴とする制御装置。
【請求項４】
請求項３に記載の制御装置において、
前記初期プログラムローディング状態の場合、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリと前記書替用メモリの両方に出力し、前記演算処理部は、前記ライト信号により初期プログラムを前記運用メモリと前記書替用メモリの両方に書き込む処理を実行し、
前記通常時運用状態の場合、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリに出力し、前記演算処理部は、前記リード信号により前記運用メモリから前記運用プログラムを読み出して運用処理を実行し、
前記変更プログラムローディング状態では、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリに出力し、前記演算処理部は、前記ライト信号により前記変更プログラムを前記書替用メモリに書き込む処理を実行し、
前記切替時運用状態の場合、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリまたは前記変更プログラムが書き込まれた部分のみ前記書替用メモリに出力し、前記演算処理部は、前記リード信号により前記運用メモリまたは前記書替用メモリから前記運用プログラムまたは前記変更プログラムを読み出して運用処理を実行する
ことを特徴とする制御装置。
【請求項５】
請求項４に記載の制御装置において、
前記切替回路は、
前記メモリ切替信号がアクティブ且つ前記メモリ分離信号がアクティブの場合に、前記運用メモリ選択信号を前記書替用メモリに、前記書替用メモリ選択信号を前記運用メモリに、それぞれ出力し、
前記メモリ切替信号がアクティブ且つ前記メモリ分離信号がノンアクティブの場合は、前記運用メモリ選択信号を前記運用メモリに、前記書替用メモリ選択信号を前記書替用メモリに、それぞれ出力する
ことを特徴とする制御装置。
【請求項６】
請求項５に記載の制御装置において、
前記切替回路は、前記書替用メモリに出力する前記リード信号を前記メモリ分離信号がノンアクティブの場合に前記書替用メモリに出力しないように抑制する抑制回路を有する
ことを特徴とする制御装置。
【請求項７】
請求項１から６のいずれか一項に記載の制御装置において、
前記運用メモリは、前記運用プログラムを複数のメモリセルに分割して記憶し、
前記書替用メモリは、前記運用メモリの複数のメモリセルにそれぞれ対応する複数のメモリセルを有し、
前記運用メモリ選択信号および前記書替用メモリ選択信号は、前記メモリセル単位に出力され、
前記運用プログラムおよび前記変更プログラムのローディングは、前記メモリセル単位で行われ、
前記切替回路は、メモリセル単位で前記運用メモリ選択信号および前記書替用メモリ選択信号を切り替える
ことを特徴とする制御装置。
【請求項８】
請求項７に記載の制御装置において、
前記演算処理部は、前記保守端末から変更プログラムのコピー指令が発行された場合に、前記書替用メモリに変更プログラムが書き込まれた特定メモリセルから変更プログラムを読み出し、前記運用メモリの前記特定メモリセルに対応するメモリセルに書き込む処理を実行する
ことを特徴とする制御装置。
【請求項９】
請求項８に記載の制御装置において、
前記演算処理部は、前記保守端末から変更プログラムの切り戻し指令が発行された場合に、前記切替回路を前記切替時運用状態から前記通常時運用状態に切り替える
ことを特徴とする制御装置。
【請求項１０】
請求項１から９のいずれか一項に記載の制御装置において、
前記演算処理部は、前記運用メモリ選択信号または前記書替用メモリ選択信号がアクティブの期間は前記切替回路の切り替え動作を抑制する
ことを特徴とする制御装置。
【請求項１１】
運用プログラムを記憶する運用メモリと、前記運用メモリと同じ構成の書替用メモリと、前記運用メモリまたは前記書替用メモリに記憶されたプログラムを読み出して運用処理を実行する演算処理部とを有する制御装置に用いられるプログラム変更方法において、
前記運用プログラムを前記運用メモリと前記書替用メモリの両方に書き込む初期プログラムローディング処理と、
前記運用メモリに書き込まれた前記運用プログラムを読み出して前記運用処理を実行する通常時運用処理と、
前記書替用メモリの一部に変更プログラムを書き込む変更プログラムローディング処理と、
前記運用メモリに書き込まれた前記運用プログラムを読み出す時に、前記書替用メモリに前記変更プログラムが書き込まれた部分のみ前記書替用メモリに切り替えて前記変更プログラムを読み出して前記運用処理を実行する切替時運用処理と
を切り替えてプログラム変更を行うことを特徴とするプログラム変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に搭載されるＣＰＵなどの演算処理部が実行するプログラムを無停止で変更する技術に関する。
【背景技術】
【０００２】
近年、多くの制御装置にはマイクロコンピュータが搭載され、そのマイクロコンピュータによって各装置の様々な機能を実現している。特に、社会基盤に関わるシステムに用いられる組込み系コンピュータの通信装置や通信装置を監視する監視制御装置などでは、無停止での運用継続を強く要求されている。また、このようなコンピュータシステムにおいては、要求仕様が高度化、複雑化しているために、仕様変更／運用変更／不具合対処などの様々な理由により、運用開始後に部分的なプログラムの変更が不可避な状況となっている。
【０００３】
一方、社会基盤に関わる重要な装置は、プログラム変更のために極めて短時間であっても、運用を停止することは許されないのが実情である。
【０００４】
そこで、無停止でプログラムを変更する技術として様々な方法が検討されており、例えば動作を継続しながらプログラム変更を行う技術として、マルチプロセッサの冗長性を利用する方法が考えられている（例えば、特許文献１参照）。また、トランザクション処理の動的な切り替えを可能とする方法も考えられている（例えば、特許文献２参照）。さらに、ジャンプ先のアドレスを書き換えることによって変更プログラムへ誘導する方法が考えられている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０６７３３１号公報
【特許文献２】特開２０００−１３７６２０号公報
【特許文献３】特開２００７−２０２０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、マルチプロセッサの冗長性を利用する方法は、処理負荷分散タイプのマルチプロセッサのみが対象であり、機能分散のマルチプロセッサシステムでは一部機能の停止となるため、実質的に無停止での切り替えとはならない。また、トランザクション処理の動的な切り替えを可能とする方法は、適用対象をトランザクション処理に限定するもので、監視制御装置などのプログラムへの適用は難しい。さらに、ジャンプ先のアドレスを書き換えることによって変更プログラムへ誘導する方法は、ジャンプ先の変更プログラムは元のプログラムと異なるアドレスになるため、プログラムの他の部分からの引用がある場合には動作異常になる恐れがある。
【０００７】
上記課題に鑑み、本発明の目的は、演算処理部の動作を停止することなく演算処理部のプログラムを変更することができる制御装置およびプログラム変更方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る制御装置は、運用プログラムを記憶する運用メモリと、前記運用メモリから前記運用プログラムを読み出して運用処理を実行する演算処理部とを有する制御装置において、前記運用メモリと同じ構成の書替用メモリと、前記演算処理部と前記運用メモリおよび前記書替用メモリとの間にあって、前記運用プログラムを前記運用メモリと前記書替用メモリの両方に書き込む初期プログラムローディング状態と、前記運用メモリから前記運用プログラムを読み出す通常時運用状態と、前記書替用メモリに変更プログラムを書き込む変更プログラムローディング状態と、前記書替用メモリから前記変更プログラムを読み出す切替時運用状態と、の４つの状態を切り替える切替回路とを設けたことを特徴とする。
【０００９】
また、前記演算処理部に保守端末に接続するためのインターフェースを設け、前記演算処理部は、前記保守端末から初期プログラムのローディング指令が発行された場合に初期プログラムローディング期間中は前記切替回路を前記初期プログラムローディング状態に切り替えて前記運用プログラムを前記運用メモリと前記書替用メモリの両方に書き込み、初期プログラムローディング終了後は前記切替回路を前記通常時運用状態に切り替えて前記運用メモリに書き込まれた前記運用プログラムを読み出し、前記保守端末から変更プログラムのローディング指令が発行された場合に変更プログラムローディング期間中は前記切替回路を前記変更プログラムローディング状態に切り替えて前記書替用メモリの一部に変更プログラムを書き込み、変更プログラムローディング終了後は前記切替回路を前記書替用メモリから前記変更プログラムを読み出す期間のみ前記切替時運用状態にそれ以外の期間は前記通常時運用状態にそれぞれ切り替えて前記運用メモリに書き込まれた前記運用プログラムの読み出しと、前記書替用メモリに前記変更プログラムが書き込まれた部分のみ前記書替用メモリに切り替えて前記変更プログラムを読み出しを行うことを特徴とする。
【００１０】
特に、前記演算処理部は、アドレスバスと、データバスと、リード信号と、ライト信号と、前記運用メモリを選択するための運用メモリ選択信号と、前記書替用メモリを選択するための書替用メモリ選択信号と、メモリ切替信号と、メモリ分離信号とを出力し、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号および前記書替用メモリ選択信号を前記メモリ切替信号および前記メモリ分離信号に応じて切り替えることを特徴とする。
【００１１】
また、前記初期プログラムローディング状態の場合、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリと前記書替用メモリの両方に出力し、前記演算処理部は、前記ライト信号により初期プログラムを前記運用メモリと前記書替用メモリの両方に書き込む処理を実行し、前記通常時運用状態の場合、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリに出力し、前記演算処理部は、前記リード信号により前記運用メモリから前記運用プログラムを読み出して運用処理を実行し、前記変更プログラムローディング状態では、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリに出力し、前記演算処理部は、前記ライト信号により前記変更プログラムを前記書替用メモリに書き込む処理を実行し、前記切替時運用状態の場合、前記切替回路は、前記演算処理部が出力する前記運用メモリ選択信号を前記運用メモリまたは前記変更プログラムが書き込まれた部分のみ前記書替用メモリに出力し、前記演算処理部は、前記リード信号により前記運用メモリまたは前記書替用メモリから前記運用プログラムまたは前記変更プログラムを読み出して運用処理を実行することを特徴とする。
【００１２】
また、前記切替回路は、前記メモリ切替信号がアクティブ且つ前記メモリ分離信号がアクティブの場合に、前記運用メモリ選択信号を前記書替用メモリに、前記書替用メモリ選択信号を前記運用メモリに、それぞれ出力し、前記メモリ切替信号がアクティブ且つ前記メモリ分離信号がノンアクティブの場合は、前記運用メモリ選択信号を前記運用メモリに、前記書替用メモリ選択信号を前記書替用メモリに、それぞれ出力することを特徴とする。
【００１３】
さらに、前記切替回路は、前記書替用メモリに出力する前記リード信号を前記メモリ分離信号がノンアクティブの場合に前記書替用メモリに出力しないように抑制する抑制回路を有することを特徴とする。
【００１４】
また、前記運用メモリは、前記運用プログラムを複数のメモリセルに分割して記憶し、前記書替用メモリは、前記運用メモリの複数のメモリセルにそれぞれ対応する複数のメモリセルを有し、前記運用メモリ選択信号および前記書替用メモリ選択信号は、前記メモリセル単位に出力され、前記運用プログラムおよび前記変更プログラムのローディングは、前記メモリセル単位で行われ、前記切替回路は、メモリセル単位で前記運用メモリ選択信号および前記書替用メモリ選択信号を切り替えることを特徴とする。
【００１５】
特に、前記演算処理部は、前記保守端末から変更プログラムのコピー指令が発行された場合に、前記書替用メモリに変更プログラムが書き込まれた特定メモリセルから変更プログラムを読み出し、前記運用メモリの前記特定メモリセルに対応するメモリセルに書き込む処理を実行することを特徴とする。
【００１６】
また、前記演算処理部は、前記保守端末から変更プログラムの切り戻し指令が発行された場合に、前記切替回路を前記切替時運用状態から前記通常時運用状態に切り替えることを特徴とする。
【００１７】
また、前記演算処理部は、前記運用メモリ選択信号または前記書替用メモリ選択信号がアクティブの期間は前記切替回路の切り替え動作を抑制することを特徴とする。
【００１８】
本発明に係るプログラム変更方法は、運用プログラムを記憶する運用メモリと、前記運用メモリと同じ構成の書替用メモリと、前記運用メモリまたは前記書替用メモリに記憶されたプログラムを読み出して運用処理を実行する演算処理部とを有する制御装置に用いられるプログラム変更方法において、前記運用プログラムを前記運用メモリと前記書替用メモリの両方に書き込む初期プログラムローディング処理と、前記運用メモリに書き込まれた前記運用プログラムを読み出して前記運用処理を実行する通常時運用処理と、前記書替用メモリの一部に変更プログラムを書き込む変更プログラムローディング処理と、前記運用メモリに書き込まれた前記運用プログラムを読み出す時に、前記書替用メモリに前記変更プログラムが書き込まれた部分のみ前記書替用メモリに切り替えて前記変更プログラムを読み出して前記運用処理を実行する切替時運用処理とを切り替えてプログラム変更を行うことを特徴とする。
【発明の効果】
【００１９】
本発明に係る制御装置およびプログラム変更方法は、演算処理部の動作を停止することなく演算処理部のプログラムを変更することができる。
【図面の簡単な説明】
【００２０】
【図１】通信装置１００の構成例を示す図である。
【図２】ＣＰＵ盤１０１の構成例を示す図である。
【図３】その他のＣＰＵ盤１０１の構成例を示す図である。
【図４】従来の運用メモリ２０２および書替用メモリ２０３のアドレス空間の一例を示す図である。
【図５】従来の運用プログラムの変更例を示す図である。
【図６】本実施形態における従来の運用メモリ２０２および書替用メモリ２０３のアドレス空間の一例を示す図である。
【図７】切替回路２０５の構成例を示す図である。
【図８】ＣＳ切替回路３０１の論理と動作の関係を示す図である。
【図９】セパレート回路３０２およびＲＤ抑制回路３０３の論理と動作の関係を示す図である。
【図１０】運用開始処理、書き替え処理、切り替え処理、コピー処理および切り戻し処理の内容を示すフローチャートである。
【図１１】初期ローディング時のメモリアクセスを示す図である。
【図１２】各処理毎のタイミングチャート例を示す図である。
【図１３】運用中のメモリアクセスを示す図である。
【図１４】変更プログラムローディング時のメモリアクセス様子を示す図である。
【図１５】切り替え時のメモリアクセスの様子を示す図である。
【図１６】コピー時のメモリアクセスの様子を示す図である。
【図１７】切り戻し後のメモリアクセスの様子を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明に係る「制御装置およびプログラム変更方法」の実施形態について詳しく説明する。尚、本実施形態では、社会基盤に関わる通信装置に本発明に係る制御装置を適用する場合について説明するが、組み込み型のコンピュータプログラムによって動作する装置であれば適用可能である。
【００２２】
図１は、通信装置１００の構成例を示す図である。通信装置１００は、例えば、ＣＰＵ盤（制御盤）１０１、ＩＦ盤（インターフェース盤）１０２、スイッチ盤１０３などで構成される。
【００２３】
通信装置１００は、社会基盤の通信インフラに使用され、複数のポートを有するＩＦ盤１０２を介してユーザー通信網に接続され、通信網から受信するデータパケットの宛先に応じてスイッチ盤１０３で転送先を選択し、転送先に応じたＩＦ盤１０２のポートから再びデータパケットを送信する機能を有している。
【００２４】
ここで、本発明に係る制御装置は、通信装置１００のＣＰＵ盤１０１に相当する。ＣＰＵ盤１０１は、プログラムに従って動作する中央演算処理ユニット（ＣＰＵ）が搭載され、ＩＦ盤１０２やスイッチ盤１０３の動作を制御する。また、ＣＰＵ盤１０１は、保守端末１０４に接続され、保守端末１０４を操作するオペレータによって、プログラムのローディングや設定変更などの保守管理が行われる。
【００２５】
［ＣＰＵ盤１０１の構成例］
次に、ＣＰＵ盤１０１の構成例について図２を用いて説明する。尚、図２において、図１と同符号のものは同じものを示す。ＣＰＵ盤１０１は、ＣＰＵ２０１と、運用メモリ２０２と、書替用メモリ２０３と、アドレスデコーダ２０４と、切替回路２０５と、コマンドＩ／Ｆ２０６とで構成される。
【００２６】
ＣＰＵ２０１は、運用メモリ２０２または書替用メモリ２０３に格納されたプログラムを読み出して実行し、ＣＰＵ盤１０１自身やＩＦ盤１０２およびスイッチ盤１０３などを制御し、通信装置１００を運用する。ＣＰＵ２０１は、アドレスデコーダ２０４および切替回路２０５を介して運用メモリ２０２や書替用メモリ２０３へアクセスするための信号、さらに他基盤や他回路などを制御するための信号（アドレスバスＡＤＤ、データバスＤＡＴＡ、リード信号ＲＤ、ライト信号ＷＴ、Ｉ／Ｏ信号など）を出力する。
【００２７】
尚、図２では、説明がわかり易いように、アドレスデコーダ２０４をＣＰＵ２０１とは別に設けてあるが、アドレスデコーダ２０４をＣＰＵ２０１に内蔵し、点線で示したようにＣＰＵ２００としてもよい。
【００２８】
また、本実施形態では、説明がわかり易いように、切替回路２０５を制御するための信号（切替信号ＣＳ＿ＳＥＬ、セパレート信号ＳＥＰ）は保守端末１０４からコマンドＩ／Ｆ２０６を介して入力するようにしたが、図３に示すように、保守管理用のＣＰＵ２０１のシリアルＩ／ＦからＣＰＵ２０１に制御コマンドを発行して、ＣＰＵ２０１のＩ／Ｏから切替信号ＣＳ＿ＳＥＬおよびセパレート信号ＳＥＰを出力するようにしてもよい。
【００２９】
また、運用メモリ２０２は、後で説明するように、複数のメモリセルで構成され、各メモリセル毎に制御される。同様に、書替用メモリ２０３についても複数のメモリセルで構成され、各メモリセル毎に制御される。特に本実施形態では、運用メモリ２０２のメモリセルと、書替用メモリ２０３のメモリセルとが同じアドレス空間で構成されている。尚、各メモリの構成については後で詳しく説明する。
【００３０】
次に、ＣＰＵ盤１０１の運用時の動作について簡単に説明する。図２において、通信装置１００の運用プログラムが運用メモリ２０２に記憶されており、ＣＰＵ２０１は運用メモリ２０２から運用プログラムを読み出して通信装置１００の運用処理を実行する。尚、ＣＰＵ２０１には、保守端末１０４から発行される制御コマンドに対応する処理を行うための基本プログラムが予め搭載されているものとする。従って、通信装置１００の電源投入時には、基本プログラムが実行され、保守端末１０４とのコマンドインターフェースが利用可能な状態になっている。
【００３１】
そして、保守端末１０４から発行された制御コマンド（指令）に応じた処理をＣＰＵ２０１は実行する。例えば、保守端末１０４から初期プログラムのローディング指令が発行されると、初期プログラムが運用メモリ２０２にローディングされる。尚、初期プログラムは、運用メモリ２０２と書替用メモリ２０３の両方にローディングされる。ここで、初期プログラムは、保守端末１０４に準備された記憶媒体から入力するようにしてもよいし、ＣＰＵ盤１０１の内部の他回路に不揮発性メモリ（不図示）を搭載して予めデフォルトプログラムを記憶しておき、これを運用メモリ２０２に展開するようにしてもよい。
【００３２】
そして、保守端末１０４から運用開始指令が発行されると、ＣＰＵ２０１は運用メモリ２０２に初期ローディングされた運用プログラムを読み出して通信装置１００の運用を開始する。尚、運用中に保守端末１０４から何らかの制御コマンドが発行された場合は、例えばＣＰＵ２０１の割り込み処理としてコマンドに対応する処理が実行され、運用処理が停止されることはない。特に、割り込み処理を制御コマンドの解析程度の単純な処理に留めておき、変更プログラムを書替用メモリ２０３にローディングする処理や、書替用メモリ２０３から運用メモリ２０２に変更プログラムをコピーする処理などは、運用処理の合間に行うようにすれば運用処理に与える影響は無視できる。
［運用メモリ２０２および書替用メモリ２０３の構成］
次に、運用メモリ２０２および書替用メモリ２０３の構成について説明する。先ず、本実施形態の特徴がわかり易いように、２つのメモリを有する一般的なメモリ構成について説明する。図４は、従来の運用メモリ２０２および書替用メモリ２０３と、アドレスデコーダ２０４およびＣＰＵ２０１との接続関係を示す図で、ＣＰＵ２０１から各メモリをアクセスする際のアドレス空間の一例を描いてある。図４の例では、ＣＰＵ２０１は１７ビットのアドレス空間を有している。そして、運用メモリ２０２および書替用メモリ２０３は、００００ｈからＦＦＦＦｈまでの１６ビットのアドレス空間に対応している。ここで、”ｈ”は表記された値が０からＦの１６進数であることを示す。尚、最上位ビットの１７ビット目は、運用メモリ２０２または書替用メモリ２０３を選択するためのビットで、１７ビット目が”０”（０−−−−ｈ）の場合は運用メモリ２０２が選択され、１７ビット目が”１”（１−−−−ｈ）の場合は書替用メモリ２０３が選択される。ここで、”−−−−”は下位１６ビットを示す。
【００３３】
図４において、運用メモリ２０２の００００ｈからＦＦＦＦｈまでの１６ビットのアドレス空間は、メモリセル００からメモリセル０Ｆまでの１６個のメモリセルに分かれており、各メモリセル毎にチップセレクト信号ＣＳ００からＣＳ０Ｆによって選択される。同様に、書替用メモリ２０３の００００ｈからＦＦＦＦｈまでの１６ビットのアドレス空間も、メモリセル００からメモリセル０Ｆまでの１６個のメモリセルに分かれており、各メモリセル毎にチップセレクト信号ＣＳ１０からＣＳ１Ｆによって選択される。
【００３４】
ここで、運用メモリ２０２および書替用メモリ２０３の各メモリセルに入力されるチップセレクト信号はアドレスデコーダ２０４から出力される。アドレスデコーダ２０４は、ＣＰＵ２０１のアドレスバスＡＤＤの上位５ビットをデコードして３２個のチップセレクト信号を出力する。例えば、アドレスバスＡＤＤの上位５ビットが０００１１ｂ（ｂは２進数を示す）である場合（１６進数で０３ｈ）、運用メモリ２０２のメモリセル００が選択される。別の例として、書替用メモリ２０３のメモリセル１３を選択する場合は、アドレスバスＡＤＤの上位５ビットを１００１１ｂ（１６進数で１３ｈ）をＣＰＵ２０１が出力する。尚、アドレスバスＡＤＤの下位１２ビットは、運用メモリ２０２の各メモリセルおよび書替用メモリ２０３の各メモリセルに共通に入力され、チップセレクト信号がアクティブ（例えば”１”）の場合に当該メモリセルのアドレスに対応する記憶領域が選択される。この時、他のメモリセルのチップセレクト信号はノンアクティブ（例えば”０”）である。そして、アドレスバスＡＤＤの値に対応する特定メモリセルの特定アドレスの記憶領域が選択されている時にリード信号ＲＤが入力されると、当該記憶領域に記憶されているデータがデータバスＤＡＴＡに読み出される。或いは、アドレスバスＡＤＤの値に対応する特定メモリセルの特定アドレスの記憶領域が選択されている時にライト信号ＷＴが入力されると、データバスＤＡＴＡ上のデータが当該記憶領域に書き込まれる。
【００３５】
このようにして、ＣＰＵ２０１は運用メモリ２０２および書替用メモリ２０３に記憶されているプログラムを読み出したり、新たなプログラムを書き込むことができる。
【００３６】
ところが、図４に示した従来の構成では、プログラム変更する場合に運用プログラムを停止させなければならないという問題がある。例えば図５（ａ）に示すように、運用メモリ２０２にローディングされた運用プログラムをＣＰＵ２０１が読み出して運用中には、書替用メモリ２０３は分離されている。そして、新プログラムに変更する場合、図５（ｂ）に示すように、先ず分離されている書替用メモリ２０３に新プログラムをローディングする。尚、新プログラムをローディング中も運用メモリ２０２の運用プログラムの読み出しは継続され、ＣＰＵ２０１は運用処理を行っている。そして、新プログラムに切り替える際に、従来は図５（ｃ）に示すように、運用メモリ２０２からの運用プログラムの読み出しを停止（装置自体も停止）させる。そして、図５（ｄ）に示すように、書替用メモリ２０３を新たな運用メモリ２０３’および運用メモリ２０２を書替用メモリ２０２’として再起動して装置の運用を再開しなければならなかった。
【００３７】
そこで、本実施形態では、装置の運用停止や再起動などを行わずに、運用プログラムを変更することができるようになっている。
【００３８】
次に、本実施形態に係る通信装置１００のＣＰＵ盤１０１における運用メモリ２０２および書替用メモリ２０３にＣＰＵ２０１からアクセスする接続例を図６に示す。尚、図４と同符号のものは同じものを示す。
【００３９】
図６において、図４と異なるのは、切替回路２０５がアドレスデコーダ２０４と運用メモリ２０２および書替用メモリ２０３との間に配置されていることである。そして、切替回路２０５には、コマンドＩ／Ｆ２０６から出力される切替信号ＣＳ＿ＳＥＬと、セパレート信号ＳＥＰとが入力され、各メモリセルへのチップセレクト信号が制御される。また、ＣＰＵ２０１が出力するリード信号ＲＤは、運用メモリ２０２にはそのまま入力されるが、書替用メモリ２０３には切替回路２０５を介してリード信号ＲＤ＿ｂとして入力される。尚、先に説明したように、アドレスデコーダ２０４の機能をＣＰＵ２０１に含めてＣＰＵ２００としてもよく、この場合は、ＣＰＵ２００と運用メモリ２０２および書替用メモリ２０３との間に切替回路２０５が配置されるだけである。
【００４０】
また、運用メモリ２０２および書替用メモリ２０３の各メモリセルへのデータの読み書きは、図４と同様に行われ、例えばチップセレクト信号で特定のメモリセルを選択し、アドレスバスＡＤＤの下位１２ビットで指定した記憶領域にアクセスすることができる。
【００４１】
このように、本実施形態の特徴は、各メモリセルへのチップセレクト信号と、書替用メモリ２０３へのリード信号とを切替回路２０５で制御することにある。
【００４２】
［切替回路２０５の構成］
次に、切替回路２０５の構成例について図５を用いて詳しく説明する。図７は、ＣＰＵ２０１およびアドレスデコーダ２０４と、運用メモリ２０２および書替用メモリ２０３との間に配置される切替回路２０５の構成を詳しく描いた図である。図７において、切替回路２０５は、ＣＳ切替回路３０１と、セパレート回路３０２と、ＲＤ抑制回路３０３とで構成される。尚、図７では、説明がわかり易いように、運用メモリ２０２のメモリセル０３と、このメモリセル０３に対応する書替用メモリ２０３のメモリセル１３とだけを描いてあるが、他のメモリセルについても同様に構成される。
【００４３】
ここで、運用メモリ２０２のメモリセル０３の下位１２ビットのアドレス空間は、図６に示した例では、３０００ｈから３ＦＦＦｈである。そして、書替用メモリ２０３の下位１２ビットのアドレス空間も３０００ｈから３ＦＦＦｈである。従って、チップセレクト信号ＣＳ０３と、チップセレクト信号ＣＳ１３との両方をアクティブ（本実施形態では、論理”１”）にすれば、メモリセル０３とメモリセル１３の両方に同じデータを同時に書き込むことができる。また、チップセレクト信号ＣＳ０３とチップセレクト信号ＣＳ１３とを入れ替えれば、ＣＰＵ２０１は運用メモリ２０２のメモリセル０３からプログラムを読み出しているつもりでも、実際には書替用メモリ２０３のメモリセル１３からプログラムを読み出すことができる。
【００４４】
このように、チップセレクト信号ＣＳ０３とチップセレクト信号ＣＳ１３の選択を切替回路２０５（ＣＳ切替回路３０１およびセパレート回路３０２）で行うことで、運用中に運用メモリ２０２と書替用メモリ２０３との切り替えを行うことができる。
【００４５】
ここで、ＣＳ切替回路３０１およびセパレート回路３０２には、保守端末１０４が接続されたコマンドＩ／Ｆ２０６から切替信号ＣＳ＿ＳＥＬおよびセパレート信号ＳＥＰが入力され、これらの信号によって、アドレスデコーダ２０４が出力するチップセレクト信号ＣＳ＿ａおよびチップセレクト信号ＣＳ＿ｂをチップセレクト信号ＣＳ０３およびチップセレクト信号ＣＳ１３のどっちに出力するか、或いは両方に出力するかを切り替える制御を行う。本実施形態の特徴は、この切り替え制御にあり、ＣＰＵ２０１はチップセレクト信号ＣＳ＿ａをアクティブにして運用プログラムを読み出す動作を固定して行っているが、切替回路２０５によってチップセレクト信号ＣＳ＿ａの出力先を運用メモリ２０２（上記の例ではメモリセル０３）から書替用メモリ２０３（上記の例ではメモリセル１３）に切り替えるので、ＣＰＵ２０１は運用処理を停止することなく、書替用メモリ２０３にローディングされた変更プログラムを実行することができる。尚、後で詳しく説明するが、本実施形態では、変更プログラムが書き込まれた書替用メモリ２０３のメモリセル（上記の例ではメモリセル１３）に対応する運用メモリ２０２のメモリセル（上記の例ではメモリセル０３）にアクセス中は切り替えないように制御する。
【００４６】
また、切替回路２０５は、ＣＰＵ２０１が出力するリード信号ＲＤを書替用メモリ２０３のリード信号ＲＤ１３に出力するか否かをセパレート信号ＳＥＰによって制御するＲＤ抑制回路３０３を有する。
【００４７】
尚、各図では、コマンドＩ／Ｆ２０６から出力される切替信号ＣＳ＿ＳＥＬおよびセパレート信号ＳＥＰと、切替回路２０５は、運用メモリ２０２のチップセレクト信号ＣＳ０３と書替用メモリ２０３のチップセレクト信号ＣＳ１３とにしか接続されていないが、各メモリセル毎に出力される。従って、保守端末１０４は、各メモリセル毎に以降で説明する制御を行うことができる。
【００４８】
［ＣＳ切替回路３０１の動作］
次に、ＣＳ切替回路３０１の動作について説明する。ＣＳ切替回路３０１は、切替信号ＣＳ＿ＳＥＬとセパレート信号ＳＥＰとによって制御され、ＣＰＵ２０１がアドレスデコーダ２０４を介して出力するチップセレクト信号ＣＳ＿ａとチップセレクト信号ＣＳ＿ｂを入力して、チップセレクト信号ＣＳ０３とチップセレクト信号ＣＳ１３’とを出力する。
【００４９】
図８（ａ）は、ＣＳ切替回路３０１がチップセレクト信号ＣＳ０３として出力する信号を規定する切替信号ＣＳ＿ＳＥＬとセパレート信号ＳＥＰの論理を示す図である。図８（ａ）において、ＣＳ切替回路３０１は、切替信号ＣＳ＿ＳＥＬが”１”、セパレート信号ＳＥＰが”１”の場合、チップセレクト信号ＣＳ０３にチップセレクト信号ＣＳ＿ｂが出力され、それ以外の場合はチップセレクト信号ＣＳ０３にチップセレクト信号ＣＳ＿ａが出力される。
【００５０】
図８（ｂ）は、ＣＳ切替回路３０１がチップセレクト信号ＣＳ１３’として出力する信号を規定する切替信号ＣＳ＿ＳＥＬとセパレート信号ＳＥＰの論理を示す図である。図８（ｂ）において、ＣＳ切替回路３０１は、切替信号ＣＳ＿ＳＥＬが”１”、セパレート信号ＳＥＰが”１”の場合、チップセレクト信号ＣＳ１３’にはチップセレクト信号ＣＳ＿ａが出力され、それ以外の場合はチップセレクト信号ＣＳ１３にはチップセレクト信号ＣＳ＿ｂが出力される。
【００５１】
ここで、図８（ｃ）に示すように、チップセレクト信号ＣＳ＿ａまたはチップセレクト信号ＣＳ＿ｂがアクティブ（ここでは論理”１”）の場合、切替信号ＣＳ＿ＳＥＬは、切替信号ＣＳ＿ＳＥＬの発行が無効となり、チップセレクト信号ＣＳ＿ａまたはチップセレクト信号ＣＳ＿ｂがノンアクティブ（ここでは論理”０”）の場合のみ切替信号ＣＳ＿ＳＥＬの発行が有効となる。つまり、コマンドＩ／Ｆ２０６から切替信号ＣＳ＿ＳＥＬが出力されてもＣＳ切替回路３０１の出力信号（チップセレクト信号ＣＳ０３およびチップセレクト信号ＣＳ１３’）には影響を与えない。これにより、運用メモリ２０２または書替用メモリ２０３をアクセスしている途中（チップセレクト信号ＣＳ０３およびチップセレクト信号ＣＳ１３’が出力されている途中）でメモリの切り替えが行われることを回避できる。
【００５２】
このように、ＣＳ切替回路３０１は、運用メモリ２０２または書替用メモリ２０３がアクセスされていない時に、切替信号ＣＳ＿ＳＥＬ＝１且つセパレート信号ＳＥＰ＝１の場合にチップセレクト信号ＣＳ＿ａとチップセレクト信号ＣＳ＿ｂとを入れ替えることができる。尚、チップセレクト信号ＣＳ＿ａは、運用メモリ２０２をアクセスする際にＣＰＵ２０１がアドレスデコーダ２０４を介して出力するチップセレクト信号で、チップセレクト信号ＣＳ＿ｂは、書替用メモリ２０３をアクセスする際にＣＰＵ２０１がアドレスデコーダ２０４を介して出力するチップセレクト信号である。従って、ＣＳ切替回路３０１でチップセレクト信号ＣＳ＿ａとチップセレクト信号ＣＳ＿ｂとを入れ替えることにより、ＣＰＵ２０１は運用メモリ２０２から運用プログラムを読み出しているつもりでも実際には書替用メモリ２０３のプログラムを読み出すことになる。これにより、ＣＰＵ２０１は、無停止で運用メモリ２０２に代えて書替用メモリ２０３のプログラムを実行することができる。尚、この場合、セパレート回路３０２は、切替回路２０５が出力するチップセレクト信号ＣＳ１３’をそのまま書替用メモリ２０３のチップセレクト信号ＣＳ１３として出力しているものとする。
【００５３】
［セパレート回路３０２の動作］
次に、セパレート回路３０２の動作について説明する。セパレート回路３０２は、セパレート信号ＳＥＰによって制御され、チップセレクト信号ＣＳ０３またはチップセレクト信号ＣＳ１３’を選択して書替用メモリ２０３のチップセレクト信号ＣＳ１３として出力する。
【００５４】
図９（ａ）は、セパレート信号ＳＥＰの論理に応じて書替用メモリ２０３に出力されるチップセレクト信号ＣＳ１３の一例を示す図である。セパレート回路３０２は、セパレート信号ＳＥＰが”０”の場合にチップセレクト信号ＣＳ１３に運用メモリ２０２と同じチップセレクト信号ＣＳ０３を出力し、セパレート信号ＳＥＰが”１”の場合にはチップセレクト信号ＣＳ１３にチップセレクト信号ＣＳ１３’を出力する。
【００５５】
このように、セパレート回路３０２は、運用メモリ２０２と書替用メモリ２０３の両方にチップセレクト信号ＣＳ０３を出力するか、書替用メモリ２０３に運用メモリ２０２とは異なるチップセレクト信号ＣＳ１３’を出力するかを切り替えることができる。
【００５６】
尚、チップセレクト信号ＣＳ１３’は、切替回路２０５によってチップセレクト信号ＣＳ＿ａまたはチップセレクト信号ＣＳ＿ｂが出力される。ここで、切替回路２０５は、チップセレクト信号ＣＳ＿ａとチップセレクト信号ＣＳ＿ｂの出力先をチップセレクト信号ＣＳ０３またはチップセレクト信号ＣＳ１３’のいずれかに出力するだけなので、チップセレクト信号ＣＳ０３とチップセレクト信号ＣＳ１３’に同じ信号を出力できない。そこで、セパレート回路３０２により、運用メモリ２０２と書替用メモリ２０３の両方にチップセレクト信号ＣＳ０３を出力するか、書替用メモリ２０３に運用メモリ２０２とは異なるチップセレクト信号ＣＳ１３’を出力するかを切り替えている。
【００５７】
［ＲＤ抑制回路３０３の動作］
次に、ＲＤ抑制回路３０３の動作について説明する。ＲＤ抑制回路３０３は、セパレート信号ＳＥＰによって制御され、ＣＰＵ２０１が出力するリード信号ＲＤを書替用メモリ２０３のリード信号ＲＤ１３として出力するか否かを制御する。
【００５８】
図９（ｂ）は、セパレート回路３０２の論理に応じて書替用メモリ２０３に出力するリード信号ＲＤ１３の内容の一例を示す図である。セパレート回路３０２は、セパレート信号ＳＥＰが”０”の場合はリード信号ＲＤがアクティブ（ここでは論理”１”）になってもリード信号ＲＤ１３に出力せず、リード信号ＲＤ１３はノンアクティブ（ここでは論理”０”）のままになる。また、セパレート信号ＳＥＰが”１”の場合はリード信号ＲＤをそのままリード信号ＲＤ１３として出力する。つまり、リード信号ＲＤがアクティブ（ここでは論理”１”）の場合はリード信号ＲＤ１３もアクティブになり、リード信号ＲＤがノンアクティブ（ここでは論理”０”）の場合はリード信号ＲＤ１３もノンアクティブになる。
【００５９】
このように、切替回路２０５は、ＣＳ切替回路３０１と、セパレート回路３０２と、ＲＤ抑制回路３０３とで構成され、運用中に運用メモリ２０２と書替用メモリ２０３との切り替えを行うことができる。
【００６０】
以上、通信装置１００のＣＰＵ盤１０１におけるＣＰＵ２０１が運用メモリ２０２および書替用メモリ２０３にアクセスする際の信号および回路構成について説明した。
【００６１】
［プログラム変更処理］
次に、通信装置１００に運用プログラムを初期ローディングして運用中にプログラム変更を行う場合の処理について説明する。ここで、先に説明したように、ＣＰＵ２０１には、保守端末１０４との制御コマンドの入出力やプログラムに初期ローディングなどの動作を行うための基本プログラムが予め搭載されており、通信装置１００の電源投入時には、基本プログラムが実行され、保守端末１０４とのコマンドインターフェースが利用可能な状態になっている。尚、本実施形態では、保守端末１０４とのコマンド処理を行うプログラムは、今回のプログラム変更処理の対象外とする。また、このようなコマンド処理は、運用処理の中で定期的なルーチン処理あるいは割り込み処理として実行され、運用処理が停止することはない。
・初期ローディング処理
先ず、初期ローディング処理について、図１０（ａ）のフローチャートを用いて説明する。尚、本処理は、保守端末１０４からコマンドが発行された時にＣＰＵ２０１が割り込み処理や定期的なルーチン処理として実行する。
【００６２】
(ステップＳ１０１）保守端末１０４から初期プログラムのローディング指令がＣＰＵ２０１に発行されると、保守端末１０４から初期プログラムが運用メモリ２０２と書替用メモリ２０３の両方にローディングされる。この時、保守端末１０４は、コマンドＩ／Ｆ２０６を介して、切替信号ＣＳ＿ＳＥＬ＝０、セパレート信号ＳＥＰ＝０を切替回路２０５に出力するので、図８および図９の論理表に従って、チップセレクト信号ＣＳ＿ａがチップセレクト信号ＣＳ０３およびチップセレクト信号ＣＳ１３に出力される。そして、この時、ＣＰＵ２０１からライト信号ＷＴが運用メモリ２０２および書替用メモリ２０３に入力され、初期プログラムが両方のメモリの同じアドレス（下位１２ビット）に記憶される。この初期ローディング時の各メモリの様子を図１１に示す。尚、ここでは、全メモリセルの初期ローディングされるものとする。
【００６３】
また、図１２（ａ）は、初期ローディング時のタイミング例を描いた図である。ここで、以降で説明する図１２に示した各信号は、切替信号ＣＳ_ＳＥＬ、セパレート信号ＳＥＰ、運用メモリ２０２のチップセレクト信号ＣＳ０３、書替用メモリ２０３のチップセレクト信号ＣＳ１３、運用メモリ２０２のリード信号ＲＤ、書替用メモリ２０３のリード信号ＲＤ１３、アドレスバスＡＤＤ、データバスＤＡＴＡ、運用メモリ２０２のライト信号ＷＴおよび書替用メモリ２０３のライト信号ＷＴである。
【００６４】
初期ローディングの場合は、図１２（ａ）において、運用メモリ２０２のチップセレクト信号ＣＳ０３と書替用メモリ２０３のチップセレクト信号ＣＳ１３とを同時に出力してアドレスバスＡＤＤで指定する両方のメモリの同じメモリセルのアドレス空間を選択し、ライト信号ＷＴを両方のメモリに与えることで、データバスＤＡＴＡ上のプログラムコードを両方のメモリに書き込むことができる。
【００６５】
尚、先に説明したように、初期プログラムは、保守端末１０４に準備された記憶媒体から入力するようにしてもよいし、ＣＰＵ盤１０１内部の不揮発性メモリなどに予めデフォルトプログラムを記憶しておき、これを運用メモリ２０２に展開するようにしてもよい。
【００６６】
図１０（ａ）において、初期プログラムのローディングが終了すると、次のステップＳ１０２で運用開始処理を行う。
【００６７】
(ステップＳ１０２）保守端末１０４から運用開始指令が発行されると、ＣＰＵ２０１は運用メモリ２０２にローディングされた運用プログラムを読み出して実行する処理を開始する。尚、本実施形態では、保守端末１０４から運用開始指令を発行するようにしたが、保守端末１０４から運用開始指令を発行せずに、ステップＳ１０１の初期ローディングが終了後に、自動的に運用処理を開始するようにしてもよい。この場合は、ステップＳ１０２の処理は不要である。
【００６８】
(ステップＳ１０３）ＣＰＵ２０１は、運用メモリ２０２から運用プログラムを順番に読み出して運用処理を行う。尚、運用プログラムは、例えば運用メモリ２０２のメモリセル００のアドレス００００ｈから順番に実行され、メモリセル００のアドレスＦＦＦＦｈの次はメモリセル０１のアドレス００００ｈに移り、以下同様に順番にプログラムコードを読み出して運用処理を実行する。尚、本実施形態では、メモリセルに記憶された順番にプログラムコードを実行するものとして説明しているが、例えば運用プログラムを機能毎にメモリセルに分けて格納してサブルーチン化しておき、メインルーチンから特定のメモリセルのサブルーチンをコールするようにしてもよい。これにより、運用プログラムを変更する場合にプログラム容量が増減した場合でもメモリセル毎にプログラム変更するだけでよい。
【００６９】
ここで、図１２（ｂ）に示すように、ＣＰＵ２０１が運用プログラムを読み出して運用処理を実行中（運用中）、保守端末１０４は、コマンドＩ／Ｆ２０６を介して、切替信号ＣＳ＿ＳＥＬ＝０、セパレート信号ＳＥＰ＝０を切替回路２０５に出力し続ける。そして、書替用メモリ２０３にチップセレクト信号ＣＳ１３が入力されるが、セパレート信号ＳＥＰ＝０なので、図９（ｂ）の論理表に示したように、書替用メモリ２０３のリード信号ＲＤ１３はセパレート回路３０２によって抑制されて出力されない。これにより、ＣＰＵ２０１が運用メモリ２０２のメモリセル０３から運用プログラムを読み出す時に、書替用メモリ２０３のメモリセル１３からプログラムが読み出されてデータバスＤＡＴＡでデータが衝突することを抑制することができる。この運用中の各メモリの様子を図１３に示す。
【００７０】
このようにして、ＣＰＵ２０１は、ＣＰＵ盤１０１、ＩＦ盤１０２およびスイッチ盤１０３を制御し、通信装置１００全体の運用処理を行う。
【００７１】
次に、運用メモリ２０２にローディングされている運用プログラムの一部を変更する場合の処理を図１０（ｂ）に示す。尚、本処理も、保守端末１０４から発行されるコマンド指令により、例えばＣＰＵ２０１は割り込み処理として実行する。
【００７２】
(ステップＳ２０１）保守端末１０４からＣＰＵ２０１に変更プログラムのローディング指令が発行されると、保守端末１０４から書替用メモリ２０３の特定のメモリセル（図７の例ではメモリセル１３）に変更プログラムがローディングされる。この時、保守端末１０４は、コマンドＩ／Ｆ２０６を介して、切替信号ＣＳ＿ＳＥＬ＝０、セパレート信号ＳＥＰ＝１を切替回路２０５に出力するので、図８および図９の論理表に従って、ＣＰＵ２０１がアドレスデコーダ２０４を介して出力するチップセレクト信号ＣＳ＿ａはチップセレクト信号ＣＳ０３として出力され、チップセレクト信号ＣＳ＿ｂはチップセレクト信号ＣＳ１３として出力される。尚、チップセレクト信号ＣＳ＿ａとチップセレクト信号ＣＳ＿ｂはアドレスバスＡＤＤの最上位ビット（１７ビット目）に対応するので、両方が同時に出力されることはない。
【００７３】
そして、図１２（ｃ）に示すように、チップセレクト信号ＣＳ１３が出力中にライト信号ＷＴが出力されると、データバスＤＡＴＡ上の変更プログラムコードが書替用メモリ２０３のメモリセル１３に書き込まれる。尚、ライト信号ＷＴは運用メモリ２０２にも出力されるが、運用メモリ２０２のチップセレクト信号ＣＳ０３は出力されていないので、書替用メモリ２０３にだけ変更プログラムが書き込まれる。
【００７４】
変更プログラムのローディング時の各メモリの様子を図１４に示すが、運用メモリ２０２から運用プログラムを読み出して実行する運用処理は無停止で図１３と同様に行われている。尚、ＣＰＵ２０１は、例えば書替用メモリ２０３への変更プログラムの書き込みをタイマー割り込みで定期的に少しずつ行うことにより、運用中の処理を停止すること無く実行できる。
【００７５】
このようにして、変更プログラムを運用プログラムと同じメモリセルの書替用メモリ２０３にローディングすることができる。
【００７６】
次に、書替用メモリ２０３にローディングされた変更プログラムを運用メモリ２０２の運用プログラムから切り替える場合の処理を図１０（ｃ）に示す。尚、本処理も、保守端末１０４から発行されるコマンド指令により、例えばＣＰＵ２０１は割り込み処理として実行する。
【００７７】
(ステップＳ３０１）保守端末１０４から変更プログラムへの切替指令が発行されると、ＣＰＵ２０１は運用メモリ２０２にローディングされた運用プログラムの読み出しを継続しながら、変更プログラムが書き込まれた書替用メモリ２０３のメモリセル１３に対応する運用メモリ２０２のメモリセル０３の運用プログラムを読み出す代わりに書替用メモリ２０３のメモリセル１３から変更プログラムを読み出す。そして、メモリセル１３から変更プログラムを読み出して運用処理を実行後、再び運用メモリ２０２に切り替えて、例えば次のメモリセル０４から運用プログラムを読み出してその他の運用処理を実行する。つまり、変更プログラムが書き込まれた書替用メモリ２０３のメモリセル１３のみ書替用メモリ２０３からプログラムコードを読み出して実行する。
【００７８】
この時、保守端末１０４は、コマンドＩ／Ｆ２０６を介して、切替信号ＣＳ＿ＳＥＬ＝１、セパレート信号ＳＥＰ＝１を切替回路２０５に出力するので、図８および図９の論理表に従って、チップセレクト信号ＣＳ＿ａがチップセレクト信号ＣＳ１３として出力され、チップセレクト信号ＣＳ＿ｂがチップセレクト信号ＣＳ０３として出力される。ここで、ＣＰＵ２０１は、チップセレクト信号ＣＳ＿ａを出力して運用プログラムを読み出す動作を継続しているので、図１２（ｄ）に示すように、運用メモリ２０２のメモリセル０３の運用プログラムの代わりに書替用メモリ２０３のメモリセル１３から変更プログラムを読み出すことになる。また、リード信号ＲＤは、運用メモリ２０２に出力されるがチップセレクト信号ＣＳ０３がノンアクティブ（ここでは論理”０”）なので、書替用メモリ２０３からプログラムコードを読み出しているときにデータバスＤＡＴＡ上で衝突することはない。一方、書替用メモリ２０３のリード信号ＲＤ１３は、セパレート信号ＳＥＰが”０”の場合にＲＤ抑制回路３０３で抑制されてリード信号ＲＤ１３が出力されないので、チップセレクト信号ＣＳ０３を出力して運用メモリ２０２から運用プログラムを読み出しているときに、書替用メモリ２０３からプログラムが読み出されることはない。この場合に各メモリからプログラムを読み出す時の様子を図１５に示す。
【００７９】
尚、図１２（ｄ）の例のように、チップセレクト信号ＣＳ１３が出力されていない場合は、ＲＤ抑制回路３０３でリード信号ＲＤ１３を抑制しなくても書替用メモリ２０３からプログラムが読み出されることはないが、後に説明するコピー処理などで、運用メモリ２０２と分離して制御する場合の衝突をＲＤ抑制回路３０３により回避することができる。従って、ＣＰＵ２０１が運用メモリ２０２と書替用メモリ２０３のチップセレクト信号のタイミングを管理できる場合は、ＲＤ抑制回路３０３は無くても構わない。
【００８０】
また、ここでの例ではメモリセル１３に変更プログラムをローディングしたので、運用メモリ２０２のメモリセル０３の代わりに書替用メモリ２０３のメモリセル１３を読み出すように切替回路２０５は動作するが、他のメモリセルについても同様に動作する。例えば変更プログラムを書替用メモリ２０３のメモリセル１１にローディングした時は、切替回路２０５は運用メモリ２０２のメモリセル０１の代わりに書替用メモリ２０３のメモリセル１１から変更プログラムを読み出す。
【００８１】
このようにして、ＣＰＵ２０１は、運用メモリ２０２から運用プログラムを読み出すつもりでチップセレクト信号ＣＳ＿ａを出力するが、実際には運用メモリ２０２のメモリセル０３ではなく書替用メモリ２０３のメモリセル１３から変更プログラムが読み出される。このようにして、運用処理を停止することなく変更後のプログラムに従った運用処理に切り替えることができる。
【００８２】
次に、書替用メモリ２０３にローディングされた変更プログラムを運用メモリ２０２にコピーする処理を図１０（ｄ）に示す。尚、本処理も、保守端末１０４から発行されるコマンド指令により、ＣＰＵ２０１は割り込み処理として実行する。
【００８３】
(ステップＳ４０１）保守端末１０４から変更プログラムのコピー指令が発行されると、変更プログラムがローディングされた書替用メモリ２０３の特定のメモリセル（図７の例ではメモリセル１３）の内容を運用メモリ２０２の対応するメモリセル（図７の例ではメモリセル０３）にコピーする。
【００８４】
この場合、図１６に示すように、ＣＰＵ２０１は、図１５と同様に運用メモリ２０２のメモリセル０３の部分だけ書替用メモリ２０３のメモリセル１３から変更プログラムを読み出し、他のメモリセルは運用メモリ２０２から運用プログラムを読み出して運用処理を実行している。ここで、ＣＰＵ２０１は、書替用メモリ２０３のメモリセル１３から運用メモリ２０２のメモリセル０３への変更プログラムのコピーを例えばタイマーで定期的に行う割り込み処理などで少しずつ行う。これにより、運用中の処理を停止すること無くコピー処理を実行できる。
【００８５】
このようにして、ＣＰＵ２０１は、書替用メモリ２０３の変更プログラムが書き込まれたメモリセル１３から変更プログラムを読み出し、アドレスの下位１２ビットがメモリセル１３と同じアドレス空間に対応する運用メモリ２０２のメモリセル０３に変更プログラムをコピーする。尚、この時点では、ＣＰＵ２０１は、未だ書替用メモリ２０３のメモリセル１３から変更プログラムを読み出して運用処理を実行中である。
【００８６】
次に、書替用メモリ２０３のメモリセル１３から変更プログラムを読み出す動作に代えて、メモリセル１３と同じ変更プログラムがコピーされた運用メモリ２０２のメモリセル０３から変更プログラムを読み出す動作に切り戻す処理を図１０（ｅ）に示す。尚、本処理も、保守端末１０４から発行されるコマンド指令により、ＣＰＵ２０１は割り込み処理として実行する。
【００８７】
(ステップＳ５０１）保守端末１０４から切り戻し指令が発行されると、ＣＰＵ２０１が実行するプログラムの読み出し先を書替用メモリ２０３のメモリセル１３から運用メモリ２０２のメモリセル０３に切り替える。
【００８８】
この時、保守端末１０４は、コマンドＩ／Ｆ２０６を介して、切替信号ＣＳ＿ＳＥＬ＝０、セパレート信号ＳＥＰ＝０を切替回路２０５に出力するので、チップセレクト信号ＣＳ１３として切替回路２０５から出力されていたチップセレクト信号ＣＳ＿ａは、再びチップセレクト信号ＣＳ０３に出力される。これにより、図１７に示すように、運用メモリ２０２のメモリセル０３から変更後のプログラムが読み出されるようになり、図１３の初期プログラムの実行時と同様にＣＰＵ２０１は変更後の運用処理を行うことができる。
【００８９】
以上説明したように、本実施形態に係る通信装置１００のＣＰＵ盤１０１で運用処理を実行中のＣＰＵ２０１は、運用処理を停止することなく、運用プログラムの変更を行うことができる。特に、社会基盤に関わる組込み系コンピュータの監視制御装置においても、頻繁に発生する小規模なロジック変更などのプログラム変更を完全無停止にて実施することが可能となる。また、これにより、他作業との調整を行わずに顧客が要求する仕様変更を装置の運用中に停止することなく行うことができ、作業性の大幅な向上および工数の削減を図ると共に、顧客満足度の向上に寄与することができる。
【００９０】
以上、本発明に係る制御装置およびプログラム変更方法について、各実施例を挙げて説明してきたが、その精神またはその主要な特徴から逸脱することなく他の多様な形で実施することができる。そのため、上述した実施例はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明は、特許請求の範囲によって示されるものであって、本発明は明細書本文にはなんら拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内である。
【符号の説明】
【００９１】
１００・・・通信装置
１０１・・・ＣＰＵ盤
１０２・・・ＩＦ盤
１０３・・・スイッチ盤
１０４・・・保守端末
２０１・・・ＣＰＵ
２０２・・・運用メモリ
２０３・・・書替用メモリ
２０４・・・アドレスデコーダ
２０５・・・切替回路
２０６・・・コマンドＩ／Ｆ
３０１・・・ＣＳ切替回路
３０２・・・セパレート回路
３０３・・・ＲＤ抑制回路
ＡＤＤ・・・アドレスバス
ＤＡＴＡ・・・データバス
ＲＤ・・・リード信号
ＷＴ・・・ライト信号
ＣＳ＿ＳＥＬ・・・切替信号
ＳＥＰ・・・セパレート信号
【図１】
2012178099.tif 000003
【図２】
2012178099.tif 000004
【図３】
2012178099.tif 000005
【図４】
2012178099.tif 000006
【図５】
2012178099.tif 000007
【図６】
2012178099.tif 000008
【図７】
2012178099.tif 000009
【図８】
2012178099.tif 000010
【図９】
2012178099.tif 000011
【図１０】
2012178099.tif 000012
【図１１】
2012178099.tif 000013
【図１２】
2012178099.tif 000014
【図１３】
2012178099.tif 000015
【図１４】
2012178099.tif 000016
【図１５】
2012178099.tif 000017
【図１６】
2012178099.tif 000018
【図１７】
2012178099.tif 000019