(57)【特許請求の範囲】
【請求項１】
複数のプログラムファイルの管理を行うプログラムファイル管理システムにおいて、
現在起動している前記プログラムファイルを格納している領域を起動用領域、現在起動していない前記プログラムファイルを格納する領域を保存用領域とする、２つのプログラムファイル格納領域を持つメモリと、前記起動用領域に格納されている前記プログラムファイルの演算処理を行うＣＰＵ部と、から構成される複数のＣＰＵユニットと、
起動中の前記プログラムファイルを他の前記ＣＰＵユニットの前記保存用領域へ格納する際の保存先の前記ＣＰＵユニットの識別子が記された保存先ＣＰＵ選択テーブルと、すべての前記ＣＰＵユニットの前記起動用領域及び前記保存用領域の格納先頭アドレスが記されたアドレス管理テーブルと、に登録されたテーブル情報を保持するテーブル・データベースと、
ユーザからのコマンドのインタフェース処理を行い、前記ＣＰＵユニットへの前記プログラムファイルのダウンロード、前記テーブル・データベースへの前記テーブル情報の登録、プログラムファイル格納指示の発行、を含む制御を行う運用管理部と、
前記運用管理部は、
ダウンロードコマンドを受信すると、前記ＣＰＵユニットの前記保存用領域へ前記プログラムファイルをダウンロードし、すべての前記ＣＰＵユニットの前記保存用領域に前記プログラムファイルが格納されると、
前記ＣＰＵユニットは、
前記起動用領域に格納されていた前記プログラムファイルによる起動を停止し、前記保存用領域に格納された前記プログラムファイルで起動を開始する処理として、現在読み出しを行っている前記起動用領域から前記保存用領域へ読み出しアドレスを切り替えて、
前記保存用領域から起動すべきデータである前記プログラムファイルを読み出して前記演算処理を行い、
前記プログラムファイル格納指示により、前記テーブル情報にもとづき、保存先の前記ＣＰＵユニット及び保存先の前記ＣＰＵユニットの前記保存用領域の前記格納先頭アドレスを認識して、起動中の前記プログラムファイルを、自己以外の他の前記ＣＰＵユニットの前記保存用領域へ格納する、
ことを特徴とするプログラムファイル管理システム。
【請求項２】
前記ＣＰＵ部は、圧縮・解凍機能を有し、前記ＣＰＵユニットが、起動中の前記プログラムファイルを他の前記ＣＰＵユニットの前記保存用領域へ格納する際に、他の前記ＣＰＵユニットの前記保存用領域の容量が前記プログラムファイルのプログラムサイズよりも不足している場合には、前記プログラムファイルを圧縮処理して格納することを特徴とする請求項１記載のプログラムファイル管理システム。
【請求項３】
前記運用管理部は、ユーザから送信された、前記ＣＰＵユニット上で起動する前記プログラムファイルを格納する保存先の前記ＣＰＵユニットの識別子と、圧縮・非圧縮の選択情報と、のパラメータを含むコマンドを受信すると、前記保存先ＣＰＵ選択テーブルへ前記パラメータの情報を順次登録して、前記保存先ＣＰＵ選択テーブルを作成していくことを特徴とする請求項１記載のプログラムファイル管理システム。
【請求項４】
前記運用管理部は、あらたなＣＰＵユニットが追加された場合、追加された前記ＣＰＵユニットである追加ＣＰＵユニットに対して、
前記アドレス管理テーブルについては前情報を残したまま、前記追加ＣＰＵユニットに関する情報を登録すべき新規の登録欄であるアドレス管理用新規登録欄を前記アドレス管理テーブルに付加し、前記アドレス管理用新規登録欄には、前記追加ＣＰＵユニットの前記起動用領域及び前記保存用領域の前記格納先頭アドレス、前記追加ＣＰＵユニットで起動するプログラムファイルサイズ、前記保存用領域で格納可能なファイルサイズを登録し、
前記保存先ＣＰＵ選択テーブルについては前情報をすべてクリアした後に、前記追加ＣＰＵユニットの数の新規の登録欄を前記保存先ＣＰＵ選択テーブルに付加し、
前記追加ＣＰＵユニットと、すでに設置してある前記ＣＰＵユニットとを含めて、前記ＣＰＵユニット上で起動する前記プログラムファイルを格納する保存先の前記ＣＰＵユニットの識別子と、圧縮・非圧縮の選択情報とを、ユーザからのコマンドにもとづき登録して、
前記アドレス管理テーブルと前記保存先ＣＰＵ選択テーブルを自動的に再構成していくことを特徴とする請求項１記載のプログラムファイル管理システム。
【請求項５】
前記ＣＰＵ部は、起動中の前記プログラムファイルに異常があることを認識すると、前記保存先ＣＰＵ選択テーブルを参照し、正常プログラムファイルが、どの前記ＣＰＵユニットの前記保存用領域に格納されているかを判断して、格納先から前記正常プログラムファイルを読み出し、自己のメモリの前記保存用領域へ書き込んで、前記起動用領域から前記保存用領域へ読み出しアドレスを切り替えて、前記保存用領域に書き込んだ前記正常プログラムファイルを読み出して、前記正常プログラムファイルで起動することを特徴とする請求項１記載のプログラムファイル管理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラムファイル管理システムに関し、特に複数のプログラムファイルの管理を行うプログラムファイル管理システムに関する。
【０００２】
【従来の技術】
近年、インターネット、ディジタルコンテンツ配信など広帯域マルチメディアサービスの普及に伴い、ネットワークの経済的で高速・大容量のシステム開発が急速に進められている。
【０００３】
このような状況の中で、装置規模の拡大・多機能化が加速することで、プログラム規模が増大化しており、１つのＣＰＵユニットでは、装置を制御することが困難になってきている。
【０００４】
例えば、近年の光伝送分野で注目されているＷＤＭ（Wavelength Division Multiplex）装置においては、１０Ｇｂ／ｓの信号１７６本を多重して伝送するため、１装置の最大構成が、約１００シェルフにもおよぶ。
【０００５】
また、大量の信号を短い周期で監視しながら、制御・切り替えを行う必要があるため、１つのＣＰＵユニットだけでは、装置全体を処理することができない。このため、異なる機能毎に複数のＣＰＵユニットを設けて処理分担しており、また、プログラムファイル量が多いため、全プログラムファイルは、従来では、専用のメモリユニットを設けて保存している。
【０００６】
プログラムファイルは、複数のＣＰＵユニットへダウンロードされて、ＣＰＵユニットで起動される。図３０はプログラムファイルの状態遷移を示す図である。版数Ａのプログラムファイルから版数Ｂのプログラムファイルへ切り替える場合の状態遷移を示している。
【０００７】
装置構成としては、ＣＰＵユニット５１〜５３、メモリユニット６０で構成され、ＣＰＵユニット５１〜５３それぞれは、プログラムファイルを格納するためのメモリ５１ａ〜５３ａを有している。
〔状態５−ａ〕メモリ５１ａの起動用領域には、ＣＰＵユニット５１用のプログラムファイル（版数Ａ１）が格納されている。同様に、メモリ５２ａの起動用領域には、ＣＰＵユニット５２用のプログラムファイル（版数Ａ２）が格納され、メモリ５３ａの起動用領域には、ＣＰＵユニット５３用のプログラムファイル（版数Ａ３）が格納される。
〔状態５−ｂ〕保守者からの指示により、ＣＰＵユニット５１〜５３のそれぞれに対応する、版数Ｂ１〜Ｂ３のプログラムファイルが、メモリユニット６０及びメモリ５１ａ〜５３ａの各ワーク領域（一時格納用の領域）に書き込まれる。
〔状態５−ｃ〕メモリユニット６０及びＣＰＵユニット５１〜５３それぞれに、版数Ｂ１〜Ｂ３のプログラムファイルが格納された後、版数Ｂの起動指示があった場合には、ＣＰＵユニット５１〜５３は、起動用領域とワーク領域との切り替え処理を行い、版数Ｂ１〜Ｂ３のプログラムファイルの起動を開始する。
【０００８】
図３１は復旧処理時のプログラムファイルの状態遷移を示す図である。起動用プログラムファイルらに何らかの問題があり、メモリユニット６０に保存されているプログラムファイルで復旧処理を行う場合を示している。なお、装置構成は上述と同じである。
【０００９】
最初、メモリ５１ａ〜５３ａそれぞれの起動用領域に、版数Ｂ１〜Ｂ３のプログラムファイルが格納され、ワーク領域に版数Ａ１〜Ａ３のプログラムファイルが格納されている。また、メモリユニット６０は、版数Ｂ１〜Ｂ３のプログラムファイルを格納している。
〔状態５−ｄ〕ＣＰＵユニット５１は、現在起動中のプログラムファイル（版数Ｂ１）に異常があることを認識する。
〔状態５−ｅ〕ＣＰＵユニット５１は、メモリユニット６０に格納されている新しいプログラムファイル（版数Ｂ１）をメモリ５１ａのワーク領域に格納する。〔状態５−ｆ〕ＣＰＵユニット５１は、起動用領域とワーク領域との切り替え処理を行い、新しいプログラムファイル版数Ｂ１の起動を開始する。
【００１０】
このように、従来では、全プログラムファイルは、メモリユニット６０に格納され、ＣＰＵユニット５１〜５３とメモリユニット６０間で通信を行うことで、ＣＰＵユニット５１〜５３は、自プログラムファイルをメモリユニット６０から読み出して必要な処理を行っている。
【００１１】
【発明が解決しようとする課題】
上記で説明したように、従来のプログラムファイル管理方式では、通常のシステム運用でのプログラムファイルの切り替えのため、または起動用プログラムファイルに異常が生じた場合の復旧処理に備えて、すべてのプログラムファイルの種類数を専用のメモリユニット６０で格納管理している。
【００１２】
このため、プログラムファイルが増大すると、メモリユニット６０のハードウェアを改造して、メモリ容量の増大化を行うことになるが、この場合、装置規模が増大し、高コストとなるといった問題があった。
【００１３】
また、メモリユニット６０は、様々な用途として使用しているので、メモリユニット６０のハードウェアに改造が入ると、アクセス方法などの変更により、ソフトウエア処理の修正も必要となってくる。このため、利便性及び管理効率が悪化するといった問題があった。
【００１４】
本発明はこのような点に鑑みてなされたものであり、プログラムファイルを保存する専用のユニットを設けずに、複数のプログラムファイルを効率よく管理して、装置規模の縮小化及び利便性の向上を図ったプログラムファイル管理システムを提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すような、複数のプログラムファイルの管理を行うプログラムファイル管理システム１において、現在起動しているプログラムファイルを格納している領域を起動用領域、現在起動していないプログラムファイルを格納する領域を保存用領域とする、２つのプログラムファイル格納領域を持つメモリＭ１〜Ｍｎと、起動用領域に格納されているプログラムファイルの演算処理を行うＣＰＵ部１１−１〜１１−ｎと、から構成される複数のＣＰＵユニット１０−１〜１０−ｎと、起動中のプログラムファイルを他のＣＰＵユニットの保存用領域へ格納する際の保存先のＣＰＵユニットの識別子が記された保存先ＣＰＵ選択テーブルＴ２と、すべてのＣＰＵユニットの起動用領域及び保存用領域の格納先頭アドレスが記されたアドレス管理テーブルＴ１と、に登録されたテーブル情報を保持するテーブル・データベース２０と、ユーザからのコマンドのインタフェース処理を行い、ＣＰＵユニット１０−１〜１０−ｎへのプログラムファイルのダウンロード、テーブル・データベース２０へのテーブル情報の登録、プログラムファイル格納指示の発行、を含む制御を行う運用管理部３０と、を有することを特徴とするプログラムファイル管理システム１が提供される。
【００１６】
ここで、運用管理部３０は、ダウンロードコマンドを受信すると、ＣＰＵユニット１０−１〜１０−ｎの保存用領域へプログラムファイルをダウンロードし、すべてのＣＰＵユニット１０−１〜１０−ｎの保存用領域にプログラムファイルが格納されると、ＣＰＵユニット１０−１〜１０−ｎは、起動用領域に格納されていたプログラムファイルによる起動を停止し、保存用領域に格納されたプログラムファイルで起動を開始する処理として、現在読み出しを行っている起動用領域から保存用領域へ読み出しアドレスを切り替えて、保存用領域から起動すべきデータであるプログラムファイルを読み出して演算処理を行い、プログラムファイル格納指示により、テーブル情報にもとづき、保存先のＣＰＵユニット及び保存先のＣＰＵユニットの保存用領域の格納先頭アドレスを認識して、起動中のプログラムファイルを、自己以外の他のＣＰＵユニットの保存用領域へ格納する。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図１はプログラムファイル管理システムの原理図である。プログラムファイル管理システム１は、複数のＣＰＵユニット１０−１〜１０−ｎ、テーブル・データベース（以下、テーブルＤＢ）２０、運用管理部３０から構成される。
【００１８】
プログラムファイル管理システム１は、プログラムファイルを専用に格納するメモリユニットを設けずに、複数存在するＣＰＵユニット１０−１〜１０−ｎのメモリＭ１〜Ｍｎのバックアップ可能な空き領域を利用して、プログラムファイルを格納して管理するものである。
【００１９】
ＣＰＵユニット１０−１〜１０−ｎ（またはＣＰＵユニット＃１〜＃ｎとも表記する）それぞれは、ＣＰＵ部１１−１〜１１−ｎと、プログラムファイルを記憶するメモリＭ１〜Ｍｎと、が搭載されたカード・パッケージである。なお、総称する場合は、ＣＰＵユニット１０、ＣＰＵ部１１、メモリＭと呼ぶ。
【００２０】
メモリＭは、フラッシュメモリなどの不揮発性メモリであり、プログラムファイルの格納領域として、起動用領域及び保存用領域を持つ。ＣＰＵ部１１は、保存用領域から起動用領域への切り替えを行って（切り替え動作は、保存用領域→起動用領域、起動用領域→保存用領域の両方可能）、起動用領域に格納されたプログラムファイル（起動用プログラムファイル）による自ユニットにおける演算処理を行う。
【００２１】
なお、保存用領域から起動用領域への切り替えとは、データの格納領域を物理的に切り替えることではなく、実際には、現在読み出しを行っている起動用領域から保存用領域へ読み出しアドレスを切り替えることである。そして、保存用領域から起動用のデータであるプログラムファイルを読み出すことになる。
【００２２】
また、ＣＰＵ部１１は、運用管理部３０からのプログラムファイル格納指示により、テーブルＤＢ２０のテーブル情報にもとづいて、起動中のプログラムファイルを、他ＣＰＵユニットのメモリの保存用領域へ転送し格納する。
【００２３】
ここで、ＣＰＵ部１１は、自ユニットの監視・管理の制御を行うスーパーバイザ用の制御プログラム（立ち上げ時のＢＯＯＴプログラムやメモリＭのプログラムファイルを動作させるためのサービス・プログラム等を含む）を有しており、マルチタスク方式で処理を行っていく。
【００２４】
例えば、運用管理部３０との通信、またはＣＰＵユニット間同士での通信を行うタスク、メモリＭの読み出し領域を切り替えて、読み出したプログラムファイルによる演算処理を行うタスクなど、ＣＰＵ部１１は、これら複数のタスク処理をプライオリティにしたがって行っていく。
【００２５】
テーブルＤＢ２０は、アドレス管理テーブルＴ１と保存先ＣＰＵ選択テーブルＴ２を有し、登録されたこれらのテーブル情報を保存管理する。アドレス管理テーブルＴ１は、プログラムファイルの格納先頭アドレスが記されたテーブルである。保存先ＣＰＵ選択テーブルＴ２は、プログラムファイルの保存先のＣＰＵユニットが記されたテーブルである。なお、テーブルＤＢ２０へは、ＣＰＵユニット１０及び運用管理部３０から任意にアクセス可能である。
【００２６】
運用管理部３０は、ユーザ（保守者）と保守端末４０を介して通信を行い、プログラムファイル管理の制御を行う。例えば、ユーザからのコマンドのインタフェース処理を行ったり、またはＣＰＵユニット１０の運用状態やテーブルＤＢ２０のテーブル情報を、保守端末４０へ通知したりする。
【００２７】
さらに、ＣＰＵユニット１０へのプログラムファイルのダウンロード処理、テーブルＤＢ２０へのテーブル情報の登録処理、プログラムファイル格納指示の発行処理などの制御も行う。
【００２８】
次にアドレス管理テーブルＴ１と保存先ＣＰＵ選択テーブルＴ２について説明する。図２はアドレス管理テーブルＴ１を示す図である。アドレス管理テーブルＴ１は、ＣＰＵユニット＃１〜＃ｎのメモリＭ１〜Ｍｎに対して、起動用プログラムファイル格納先頭アドレス、保存用プログラムファイル格納先頭アドレス、プログラムファイルサイズ[byte]、格納可能サイズ[byte]の項目から構成される。
【００２９】
図の場合例えば、ＣＰＵユニット＃１のメモリＭ１に対して、起動用領域の先頭アドレスは0x800000、保存用領域の先頭アドレスは0x840000であり、プログラムファイルサイズは38000バイトで、保存用領域の格納可能サイズは40000バイトあることが示されている。
【００３０】
なお、アドレス管理テーブルＴ１の各テーブル情報の値は、運用前において、ユーザがあらかじめ設定して、保守端末４０により運用管理部３０へ通知し、運用管理部３０が、それらの値をデータＤＢ２０のアドレス管理テーブルＴ１に登録するものである。また、運用中においては、ＣＰＵユニット１０により必要に応じて登録内容が変更されていく。
【００３１】
図３は保存先ＣＰＵ選択テーブルＴ２を示す図である。保存先ＣＰＵ選択テーブルＴ２は、各ＣＰＵユニット＃１〜＃ｎのそれぞれのプログラムファイルに対して、保存先ＣＰＵユニット、圧縮選択の項目から構成される。
【００３２】
図３の場合例えば、ＣＰＵユニット＃１用のプログラムファイルは、圧縮して、ＣＰＵユニット＃２へ保存する（ＣＰＵユニット＃２のメモリＭ２の保存用領域に保存する）ことが示されている。また、ＣＰＵユニット＃２用のプログラムファイルは、圧縮せずにＣＰＵユニット＃３へ保存することが示されている。
【００３３】
なお、保存先ＣＰＵ選択テーブルＴ２の各テーブル情報の値は、運用前において、ユーザが保存先ＣＰＵユニットの格納可能サイズを考慮し、圧縮／非圧縮の有無を決定して、保守端末４０により運用管理部３０へ通知し、運用管理部３０が、それらの情報をデータＤＢ２０の保存先ＣＰＵ選択テーブルＴ２に登録するものである。また、運用中においてＣＰＵユニット１０によって登録内容が変更されることはない（ユーザが最初に設定するだけである）。
【００３４】
次に図１で上述した構成にもとづく、プログラムファイル管理システム１の基本動作を第１の実施の形態として、ＣＰＵユニット＃１〜＃３の３ユニットを例にして図４〜図７を用いて説明する。
【００３５】
図４はアドレス管理テーブルと保存先ＣＰＵ選択テーブルを示す図である。図に示すアドレス管理テーブルＴ１−１は、保存用領域から起動用領域への切り替えをする前の状態を示している。
【００３６】
図５はアドレス管理テーブルを示す図である。アドレス管理テーブルＴ１−１ａは、保存用領域から起動用領域への切り替えをした後の状態を示している。すなわち、ＣＰＵユニット＃１〜＃３のそれぞれが、登録内容の変更をして生成されたテーブルである。
【００３７】
図６、図７はプログラムファイルの状態遷移を示す図である。
〔状態１−ａ〕保存用領域へのダウンロード前の状態を示しており、メモリＭ１の起動用領域には、ＣＰＵユニット＃１用のプログラムファイル（版数Ａ１）が格納されている。同様に、メモリＭ２の起動用領域には、ＣＰＵユニット＃２用のプログラムファイル（版数Ａ２）が格納され、メモリＭ３の起動用領域には、ＣＰＵユニット＃３用のプログラムファイル（版数Ａ３）が格納されている。
〔状態１−ｂ〕ユーザは、ＣＰＵユニット＃１〜＃３へプログラムファイル（版数Ｂ１〜Ｂ３）をダウンロードするためのダウンロードコマンドを、保守端末４０を通じて運用管理部３０へ一括して送信する。
【００３８】
運用管理部３０は、ユーザからダウンロードコマンドを受信すると、アドレス管理テーブルＴ１―１にアクセスして、保存用プログラムファイル格納先頭アドレスを認識し、その後にメモリＭ１〜Ｍ３の保存用領域へ、保守端末４０で保持されているプログラムファイル（版数Ｂ１〜Ｂ３）を読み出し、対応する保存用領域へダウンロードする（書き込む）。なお、版数Ｂ１〜Ｂ３のプログラムファイルは、ＣＰＵユニット＃１〜＃３それぞれに対応するプログラムファイルである。
〔状態１−ｃ〕ＣＰＵユニット＃１〜＃３のＣＰＵ部１１−１〜１１−３が互いに通信を行って、すべてのＣＰＵユニット＃１〜＃３の保存用領域に、プログラムファイル（版数Ｂ１〜Ｂ３）が揃ったことを認識すると、ＣＰＵ部１１−１〜１１−３は、即時にメモリＭ１〜Ｍ３の起動用領域と保存用領域の切り替え処理を行い、版数Ｂのプログラムファイルでユニットを起動させる。
【００３９】
なお、この格納領域の切り替え処理の際、ＣＰＵ部１１−１〜１１−３は、アドレス管理テーブルＴ１−１に対してそれぞれがアクセスして、図４のアドレス管理テーブルＴ１−１から図５のアドレス管理テーブルＴ１−１ａに示すテーブル情報の値に変更する（変更内容は、起動用プログラムファイル格納先頭アドレスと、保存用プログラムファイル格納先頭アドレスとが入れ替わることになる）。
〔状態１−ｄ〕運用管理部３０は、ＣＰＵユニット＃１〜＃３で切り替え処理が完了したことを認識すると、プログラムファイルが現在走っている起動用領域から保存先ＣＰＵユニットの保存用領域へ、起動用プログラムファイルを格納するための、プログラムファイル格納指示をＣＰＵユニット＃１〜＃３へ発行する。
【００４０】
ＣＰＵユニット＃１〜＃３のＣＰＵ部１１−１〜１１−３では、プログラムファイル格納指示を受信すると、保存先ＣＰＵ選択テーブルＴ２−１のテーブル情報を、先頭の欄から参照しに行き、アドレス管理テーブルＴ１−１ａに示される保存用領域の保存用プログラムファイル格納先頭アドレスから、起動中のプログラムファイルを格納する（各ＣＰＵユニットにおいて、現在起動しているプログラムファイルによる演算処理と、起動中のプログラムファイルの転送・格納処理とは並列して行われる）。
【００４１】
すなわち、ＣＰＵ部１１−１は、メモリＭ１の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x840000、サイズ＝38000バイト）を、ＣＰＵユニット＃２のメモリＭ２の保存用領域へ転送して、保存用領域先頭アドレス0x880000から格納する。
【００４２】
ＣＰＵ部１１−２は、メモリＭ２の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x8C0000、サイズ＝25000バイト）を、ＣＰＵユニット＃３のメモリＭ３の保存用領域へ転送して、保存用領域先頭アドレス0x900000から格納する。
【００４３】
ＣＰＵ部１１−３は、メモリＭ３の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x940000、サイズ＝30000バイト）を、ＣＰＵユニット＃１のメモリＭ１の保存用領域へ転送して、保存用領域先頭アドレス0x800000から格納する。
【００４４】
ここで、起動中のプログラムファイルを保存用領域に格納する処理について説明すると、ＣＰＵ部１１では、実際にプログラムファイルを起動するために、メモリＭから各ＣＰＵユニット内のＲＡＭ（図示はしていない）上にプログラムファイルを一旦展開して、ＲＡＭを通じて起動させている。このため、起動用領域からプログラムファイルを読み出して、保存用領域へ格納することは可能である（なお、ＲＡＭに展開しなくても、実質的に、あるメモリ上でプログラムファイルが起動している場合に、プログラムファイルの内容をそのメモリからReadして、Readした内容を他のメモリへ格納することは可能である（ただし、Writeは不可））。
【００４５】
以上説明したように、第１の実施の形態では、ダウンロード完了後、保存用領域に他ＣＰＵユニット用のプログラムファイルを互いに格納し合うことにしたので、バックアップを行う専用のメモリユニットをシステム的に具備する必要がなくなり、装置規模を縮小化して、利便性及び管理効率の向上を図ることが可能になる。
【００４６】
ここで、自ＣＰＵユニットのプログラムファイルを自己の保存用領域ではなく、他ＣＰＵユニットの保存用領域へ格納する理由について説明する。自己のプログラムファイルを自メモリの保存用領域に格納したと仮定する。
【００４７】
このとき、自ＣＰＵユニットの起動用プログラムファイルに異常が見つかった場合、自己の保存用領域からプログラムファイルをあらたに読み出したとしても、異常が検出されたプログラムファイルを格納しているメモリから読み出すことになるので信頼性に欠けることになる。このため、自プログラムファイルは、他ＣＰＵユニットへ転送して格納する構成をとっている。
【００４８】
次に第２の実施の形態の動作について説明する。第２の実施の形態では、第１の実施の形態に対し、さらに圧縮処理を追加したものである。図８はアドレス管理テーブルと保存先ＣＰＵ選択テーブルを示す図である。アドレス管理テーブルＴ１−２は、保存用領域から起動用領域へプログラムファイルを切り替える前のテーブル状態を示している。
【００４９】
図９はアドレス管理テーブルを示す図である。アドレス管理テーブルＴ１−２ａは、保存用領域から起動用領域へプログラムファイルを切り替えた際の登録内容変更後のテーブル状態を示している。
【００５０】
ここで、アドレス管理テーブルＴ１−２ａから、ＣＰＵユニット＃１のプログラムファイルサイズは45000バイトで、ＣＰＵユニット＃２のプログラムファイルサイズは25000バイトである。また、保存先ＣＰＵ選択テーブルＴ２−２では、ＣＰＵユニット＃１用のプログラムファイルを圧縮して、ＣＰＵユニット＃２へ保存することが示されている。
【００５１】
したがって、ＣＰＵ部１１−１では、メモリＭ１の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x850000、サイズ＝45000バイト）を、45000バイトから25000バイトに圧縮して、ＣＰＵユニット＃２のメモリＭ２の保存用領域へ転送して、保存用領域先頭アドレス0x8A0000から格納する。
【００５２】
以上説明したように、第２の実施の形態では、バックアップするプログラムファイルを圧縮処理するので、保存用領域が実際のプログラムファイルサイズよりも不足している場合でも、格納することが可能になる。
【００５３】
次に第１、第２の実施の形態の動作についてフローチャートを用いて説明する。図１０は第１、第２の実施の形態の動作を示すフローチャートである。
〔Ｓ１〕ユーザはダウンロードコマンドを送信する。
〔Ｓ２ａ〕運用管理部３０は、ＣＰＵユニット１０が持つ保存用領域へ、対応するプログラムファイルをダウンロードする（ステップＳ２に関して、ＣＰＵユニットの数分繰り返す）。
〔Ｓ３〕ＣＰＵユニット１０は、起動用領域と保存用領域を切り替えて、新版のプログラムファイルを起動する。
〔Ｓ４ａ〕ＣＰＵユニット１０は、アドレス管理テーブルＴ１及び保存先ＣＰＵ選択テーブルＴ２を参照して、起動用プログラムファイルを格納すべき保存用領域を選択する。
〔Ｓ４ｂ〕ＣＰＵユニット１０は、圧縮処理を行うか否かを判断し、圧縮する場合はステップＳ４ｃへ、非圧縮の場合はステップＳ４ｄへ行く。
〔Ｓ４ｃ〕ＣＰＵユニット１０はプログラムファイルを圧縮する。
〔Ｓ４ｄ〕ＣＰＵユニット１０は、選択した保存用領域へ、プログラムファイルを転送・格納する（ステップＳ４に関して、ＣＰＵユニットの数分繰り返す）。
【００５４】
次に第３の実施の形態について図１１〜図１７を用いて説明する。第１の実施の形態では、保存先ＣＰＵ選択テーブルＴ２は一括して生成したが、第３の実施の形態は、テーブルＤＢ２０にあらかじめ登録してあるアドレス管理テーブルＴ１にもとづき、ユーザと運用管理部３０とが互いに通信を行いながら、保存先ＣＰＵ選択テーブルＴ２を順次作成していき、その後に格納領域の切り替え処理を行うものである。
【００５５】
図１１はユーザから指定されるコマンドを示す図である。コマンドテーブルＴ３に対し、例えば、コマンドNo.１のパラメータは、ＣＰＵユニット＃３の起動用プログラムファイルを、非圧縮でＣＰＵユニット＃１へ保存せよという内容を示している。
【００５６】
図１２はアドレス管理テーブルを示す図である。アドレス管理テーブルＴ１−３は保存用領域から起動用領域へプログラムファイルを切り替える前のテーブル状態を示している。アドレス管理テーブルＴ１−３ａは、保存用領域から起動用領域へプログラムファイルを切り替えた際の登録内容変更後のテーブル状態を示している。
【００５７】
図１３は保存先ＣＰＵ選択テーブルの作成遷移を示す図である。保存先ＣＰＵ選択テーブルＴ２−３ａ〜Ｔ２−３ｄは、ダウンロード前、ＣＰＵユニット＃３、＃２、＃１の順にテーブル情報がそれぞれ設定されたときの状態を示している。
【００５８】
図１４〜図１６はプログラムファイルの状態遷移を示す図である。
〔状態２−ａ〕保存用領域へのダウンロード前の状態を示しており、メモリＭ１の起動用領域には、ＣＰＵユニット＃１用のプログラムファイル（版数Ａ１）が格納されている。同様に、メモリＭ２の起動用領域には、ＣＰＵユニット＃２用のプログラムファイル（版数Ａ２）が格納され、メモリＭ３の起動用領域には、ＣＰＵユニット＃３用のプログラムファイル（版数Ａ３）が格納されている。
〔状態２−ｂ〕ユーザは、コマンドテーブルＴ３のコマンドNo.１を、保守端末４０を通じて運用管理部３０へ送信する。運用管理部３０は、コマンドNo.１のパラメータ内容とアドレス管理テーブルＴ１−３のテーブル情報から、コマンドNo.１の設定が可能か否かを判断する。
【００５９】
コマンドNo.１では、ＣＰＵユニット＃３の起動用プログラムファイルをＣＰＵユニット＃１へ非圧縮で格納するとなっている。また、アドレス管理テーブルＴ１−３からＣＰＵユニット＃３の起動用プログラムファイルサイズは30000バイト、ＣＰＵユニット＃１の保存用領域の格納サイズは50000バイトである。このため、コマンドNo.１の設定は可能である。
【００６０】
したがって、運用管理部３０は、保存先ＣＰＵ選択テーブルＴ２−３ｂに示すようにして、テーブル情報を登録する。ＣＰＵユニット＃３に関するテーブル情報の登録終了後、運用管理部３０は、保守端末４０で保持されているプログラムファイル（版数Ｂ３）を読み出して、該当ユニットであるＣＰＵユニット＃３のメモリＭ３の保存用領域へダウンロードする。
〔状態２−ｃ〕ユーザは、コマンドテーブルＴ３のコマンドNo.2を、保守端末４０を通じて運用管理部３０へ送信する。運用管理部３０は、コマンドNo.2のパラメータ内容とアドレス管理テーブルＴ１−３のテーブル情報から、コマンドNo.2の設定が可能か否かを判断する。
【００６１】
コマンドNo.2では、ＣＰＵユニット＃２の起動用プログラムファイルをＣＰＵユニット＃３へ非圧縮で格納するとなっている。また、アドレス管理テーブルＴ１−３からＣＰＵユニット＃２の起動用プログラムファイルサイズは25000バイト、ＣＰＵユニット＃３の保存用領域の格納サイズは40000バイトである。このため、コマンドNo.2の設定は可能である。
【００６２】
したがって、運用管理部３０は、保存先ＣＰＵ選択テーブルＴ２−３ｃに示すようにして、テーブル情報を登録する。ＣＰＵユニット＃２に関するテーブル情報の登録終了後、運用管理部３０は、保守端末４０で保持されているプログラムファイル（版数Ｂ２）を読み出して、該当ユニットであるＣＰＵユニット＃２のメモリＭ２の保存用領域へダウンロードする。
〔状態２−ｄ〕ユーザは、コマンドテーブルＴ３のコマンドNo.3を、保守端末４０を通じて運用管理部３０へ送信する。運用管理部３０は、コマンドNo.3のパラメータ内容とアドレス管理テーブルＴ１−３のテーブル情報から、コマンドNo.3の設定が可能か否かを判断する。
【００６３】
コマンドNo.3では、ＣＰＵユニット＃１の起動用プログラムファイルをＣＰＵユニット＃３へ非圧縮で格納するとなっている。また、保存先ＣＰＵ選択テーブルＴ２−３ｃから、ＣＰＵユニット＃３は、保存用領域としてすでに使用されていることがわかるので、コマンドNo.3の設定は不可能である。したがって、運用管理部３０は、ユーザに対して、コマンドNo.3の指定パラメータが不可能である旨の警告メッセージを保守端末４０を介して通知する。
【００６４】
さらに、ユーザは、コマンドテーブルＴ３のコマンドNo.4を、保守端末４０を通じて運用管理部３０へ送信する。運用管理部３０は、コマンドNo.4のパラメータ内容とアドレス管理テーブルＴ１−３のテーブル情報から、コマンドNo.4の設定が可能か否かを判断する。
【００６５】
コマンドNo.4では、ＣＰＵユニット＃１の起動用プログラムファイルをＣＰＵユニット＃２へ非圧縮で格納するとなっている。また、アドレス管理テーブルＴ１−３からＣＰＵユニット＃１の起動用プログラムファイルサイズは45000バイト、ＣＰＵユニット＃２の保存用領域の格納サイズは25000バイトである。このため、コマンドNo.4の設定は不可能である。したがって、運用管理部３０は、ユーザに対して、コマンドNo.4の指定パラメータが不可能である旨の警告メッセージを保守端末４０を介して通知する。
〔状態２−ｅ〕ユーザは、コマンドテーブルＴ３のコマンドNo.5を、保守端末４０を通じて運用管理部３０へ送信する。運用管理部３０は、コマンドNo.5のパラメータ内容とアドレス管理テーブルＴ１−３のテーブル情報から、コマンドNo.5の設定が可能か否かを判断する。
【００６６】
コマンドNo.5では、ＣＰＵユニット＃１の起動用プログラムファイルをＣＰＵユニット＃２へ圧縮して格納するとなっている。また、アドレス管理テーブルＴ１−３からＣＰＵユニット＃１の起動用プログラムファイルサイズは45000バイト、ＣＰＵユニット＃２の保存用領域の格納サイズは30000バイトである。圧縮処理を行うので、この場合、コマンドNo.5の設定は可能である。
【００６７】
したがって、運用管理部３０は、保存先ＣＰＵ選択テーブルＴ２−３ｄに示すようにして、テーブル情報を登録する。ＣＰＵユニット＃１に関するテーブル情報の登録終了後、運用管理部３０は、保守端末４０で保持されているプログラムファイル（版数Ｂ１）を読み出して、該当ユニットであるＣＰＵユニット＃１のメモリＭ１の保存用領域へダウンロードする。
〔状態２−ｆ〕保存先ＣＰＵ選択テーブルＴ２−３ｄが上記の流れで作成された後、ＣＰＵユニット＃１〜＃３のＣＰＵ部１１−１〜１１−３が互いに通信を行って、すべてのＣＰＵユニット＃１〜＃３の保存用領域に、プログラムファイル（版数Ｂ１〜Ｂ３）が揃ったことを認識すると、ＣＰＵ部１１−１〜１１−３は、即時にメモリＭ１〜Ｍ３の起動用領域と保存用領域の切り替え処理を行い、版数Ｂでユニットを起動させる。
【００６８】
また、この格納領域の切り替え処理の際、ＣＰＵ部１１−１〜１１−３は、アドレス管理テーブルＴ１−３に対してそれぞれがアクセスして、アドレス管理テーブルＴ１−３からアドレス管理テーブルＴ１−３ａに示すテーブル情報の値に変更する。
〔状態２−ｇ〕運用管理部３０は、ＣＰＵユニット＃１〜＃３で切り替え処理が完了したことを認識すると、起動用プログラムファイルを保存先ＣＰＵユニットの保存用領域へ格納するための、プログラムファイル格納指示をＣＰＵユニット＃１〜＃３へ発行する。
【００６９】
ＣＰＵユニット＃１〜＃３のＣＰＵ部１１−１〜１１−３では、プログラムファイル格納指示を受信すると、保存先ＣＰＵ選択テーブルＴ２−３ｄのテーブル情報を、先頭の欄から参照しに行き、アドレス管理テーブルＴ１−３ａに示される保存用領域の保存用プログラムファイル格納先頭アドレスに、起動中のプログラムファイルを格納する。
【００７０】
すなわち、ＣＰＵ部１１−１は、メモリＭ１の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x850000、サイズ＝45000バイト）を、45000バイトから30000バイトに圧縮して、ＣＰＵユニット＃２のメモリＭ２の保存用領域へ転送して、保存用領域先頭アドレス0x8A0000から格納する。
【００７１】
ＣＰＵ部１１−２は、メモリＭ２の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x8D0000、サイズ＝25000バイト）を、ＣＰＵユニット＃３のメモリＭ３の保存用領域へ転送して、非圧縮で保存用領域先頭アドレス0x900000から格納する。
【００７２】
ＣＰＵ部１１−３は、メモリＭ３の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x940000、サイズ＝30000バイト）を、ＣＰＵユニット＃１のメモリＭ１の保存用領域へ転送して、非圧縮で保存用領域先頭アドレス0x800000から格納する。
【００７３】
次に第３の実施の形態の動作についてフローチャートを用いて説明する。図１７は第３の実施の形態の動作を示すフローチャートである。
〔Ｓ１１〕ユーザは、ユーザ指定によるダウンロードコマンドを送信する。
〔Ｓ１２〕運用管理部３０は、ダウンロードコマンドに設定されているパラメータを取得する。
〔Ｓ１３〕運用管理部３０は、保存先ＣＰＵユニットの保存用領域に保存可能か否かを判断する。格納可能ならステップＳ１５へ、不可能ならステップＳ１４へ行く。
〔Ｓ１４〕運用管理部３０は、エラー処理として、ユーザに向けて警告メッセージを発する。
〔Ｓ１５〕運用管理部３０は、保存先ＣＰＵ選択テーブルＴ２にテーブル情報を設定する。
〔Ｓ１６〕運用管理部３０は、ＣＰＵユニットの保存用領域へ、対応するプログラムファイルをダウンロードする。
〔Ｓ１７〕運用管理部３０は、全ＣＰＵユニットが登録されているか否かを確認する。登録されていれば終了し（保存先ＣＰＵ選択テーブルＴ２への登録終了後の動作は第１、第２の実施の形態と同じ）、登録されていなければステップＳ１１へ戻る。
【００７４】
以上説明したように、第３の実施の形態では、ユーザと運用管理部３０とが互いに通信を行いながら、保存先ＣＰＵ選択テーブルを順次作成していくことができ、また設定ミスがあった場合には警告メッセージで通知されるので、信頼性の高いプログラムファイルの設定を行うことが可能になる。
【００７５】
次に第４の実施の形態について図１８、図１９を用いて説明する。第４の実施の形態は、第１の実施の形態に対し、あらたなＣＰＵユニットが追加された場合のアドレス管理テーブルＴ１及び保存先ＣＰＵ選択テーブルＴ２の更新処理機能を追加したものである。
【００７６】
図１８は保存先ＣＰＵ選択テーブルを示す図である。ユーザは、あらたなＣＰＵユニット＃４が追加されたことを示す追加コマンドを、保守端末４０を通じて運用管理部３０へ送信する。
【００７７】
運用管理部３０は、追加コマンドを受信すると、保存先ＣＰＵ選択テーブルＴ２の前情報をすべて削除し、ＣＰＵユニット＃４用の登録欄を確保して、保存先ＣＰＵ選択テーブルＴ２−４を作成する。
【００７８】
図１９はアドレス管理テーブルを示す図である。運用管理部３０は、追加コマンドを受信すると、アドレス管理テーブルＴ１に関しては、前情報を残したまま、ＣＰＵユニット＃４用の登録欄を確保する（アドレス管理テーブルＴ１−４）。そして、追加コマンドに記載されているパラメータを設定する（アドレス管理テーブルＴ１−４ａ）。
【００７９】
以降、第３の実施の形態で上述したようにコマンドテーブルＴ３にもとづいて、保存先ＣＰＵ選択テーブルＴ２−３ａにテーブル情報が登録されて、その後、格納領域の切り替え処理が行われることになる。
【００８０】
以上説明したように、第４の実施の形態では、ＣＰＵユニットが追加された場合、アドレス管理テーブルＴ１及び保存先ＣＰＵ選択テーブルＴ２が自動的に再構成されていくので、効率よく柔軟にプログラムファイルを管理することが可能になる。
【００８１】
次に第５の実施の形態について説明する。第５の実施の形態は、第１の実施の形態に対して、アドレス管理テーブルＴ１及び保存先ＣＰＵ選択テーブルＴ２のテーブル情報の、保守端末４０における表示制御を追加したものである。
【００８２】
図２０はテーブル情報の表示例を示す図である。運用管理部３０は、テーブルＤＢ２０内のアドレス管理テーブルＴ１及び保存先ＣＰＵ選択テーブルＴ２を参照し、保守端末４０に対して表示制御を行う。図の例では、図８のアドレス管理テーブルＴ１−２と保存先ＣＰＵ選択テーブルＴ２−２の表示例である。
【００８３】
表示画面４１に対し、ＣＰＵユニット毎に、起動用領域には、格納されているプログラムファイルの版数を表示する（この段階では、起動用領域と保存用領域の切り替えが行われていないので、起動用領域には版数Ａが入っている）。
【００８４】
保存先ＣＰＵユニットには、保存先ＣＰＵ選択テーブルＴ２−２に指定されているデータ（圧縮の有無、版数の情報を含む）を表示する（データが設定されていなければ、未設定ということで表示を行わない）。また、使用可能メモリサイズには、アドレス管理テーブルＴ１−２の格納可能サイズから、プログラムファイルサイズを引いたメモリサイズ（空きメモリサイズ）を表示する。
【００８５】
以上説明したように、第５の実施の形態では、アドレス管理テーブルＴ１と保存先ＣＰＵ選択テーブルＴ２のテーブル情報を保守端末４０に表示することにしたので、保守管理の利便性の向上を図ることが可能になる。
【００８６】
次に第６の実施の形態について図２１〜図２３を用いて説明する。第６の実施の形態は、第１の実施の形態に対して、一部のプログラムファイルが異常となった場合（ＣＰＵユニットのマニュアル交換等によりプログラムファイルの版数が異なってしまった場合も含む）、該当するＣＰＵユニットのプログラムファイルを正常なものに切り替える復旧処理を追加したものである。
【００８７】
図２１、図２２はプログラムファイルの状態遷移を示す図である。図４、図５に示したアドレス管理テーブルＴ１−１、Ｔ１−１ａ、保存先ＣＰＵ選択テーブルＴ２−１の場合において、異なっている版数を正常な版数に戻す復旧処理を例にする。
〔状態３−ａ〕メモリＭ３の起動用領域には、自己のプログラムファイル（版数Ｂ３）が格納され、保存用領域にはＣＰＵユニット＃２用のプログラムファイル（版数Ｂ２）が格納されている。
【００８８】
また、メモリＭ２の起動用領域には、自己のプログラムファイル（版数Ｂ２）が格納され、保存用領域にはＣＰＵユニット＃１用のプログラムファイル（版数Ｂ１）が格納されている。
【００８９】
一方、メモリＭ１の起動用領域には、版数Ａのプログラムファイルが格納されており、保存用領域は空きとなっている。ＣＰＵ部１１−１〜１１−３は、互いに通信し合うことで、ＣＰＵ部１１−１は、自ユニットのプログラムファイルが他ユニットのプログラムファイルの版数と異なることを認識する。
〔状態３−ｂ〕ＣＰＵ部１１−１は、保存先ＣＰＵ選択テーブルＴ２−１を参照し、ＣＰＵユニット＃１の正常なプログラムファイルが、どのＣＰＵユニットの保存用領域に格納されているかを判断する。この場合、ＣＰＵユニット＃１用のプログラムファイルの保存先は、ＣＰＵユニット＃２にあることがわかる。すると、ＣＰＵ部１１−１は、ＣＰＵユニット＃２のメモリＭ２の保存用領域から、プログラムファイル（版数Ｂ１）を読み出し、自己のメモリＭ１の保存用領域へ転送して書き込む。
【００９０】
なお、この場合、プログラムファイル（版数Ｂ１）が圧縮されて、ＣＰＵユニット＃２のメモリＭ２の保存用領域に格納されている場合には、ＣＰＵ部１１−１はプログラムファイル（版数Ｂ１）を解凍しながら、メモリＭ１の保存用領域へ転送・書き込みを行う（圧縮された状態のプログラムファイルをそのまま自ユニットのメモリＭ１の保存用領域に格納することはしない。なぜなら、起動用領域と保存用領域の切り替え処理を行って、即時にプログラムファイルを起動させるからである）。
〔状態３−ｃ〕保存用領域への転送・書き込み処理が完了すると、ＣＰＵ部１１−１は、起動用領域と保存用領域の切り替え処理を行い、版数Ｂ１のプログラムファイルを起動させる。
〔状態３−ｄ〕ＣＰＵ部１１−１は、メモリＭ１の保存用領域に、どのＣＰＵユニットのプログラムファイルを格納すべきかを、保存先ＣＰＵ選択テーブルＴ２−１を参照して判断する。ここでは、ＣＰＵユニット＃３のプログラムファイルを格納することがわかる。
【００９１】
すると、ＣＰＵ部１１−１は、メモリＭ３の起動用領域に格納されている現在起動中のプログラムファイル（起動用領域先頭アドレス＝0x940000、サイズ＝30000バイト）を読み出して、メモリＭ１の保存用領域へ転送して、保存用領域先頭アドレス0x800000から格納する（この例では圧縮は必要ないが、圧縮が必要な場合には圧縮処理して格納することになる）。
【００９２】
次に第６の実施の形態の動作をフローチャートを用いて説明する。図２３は第６の実施の形態の動作を示すフローチャートである。
〔Ｓ２１〕ＣＰＵユニット１０は、プログラムファイルの異常を検出する。
〔Ｓ２２〕ＣＰＵユニット１０は、保存先ＣＰＵ選択テーブルＴ２を参照して、正常な自プログラムファイルの格納先を認識する。
〔Ｓ２３〕ＣＰＵユニット１０は、プログラムファイルが圧縮されて格納しているか否かを判断する。圧縮されている場合はステップＳ２４へ、そうでなければステップＳ２５へ行く。
〔Ｓ２４〕ＣＰＵユニット１０は、プログラムファイルの解凍処理を行う。
〔Ｓ２５〕ＣＰＵユニット１０は、保存用領域へプログラムファイルをダウンロードする。
〔Ｓ２６〕ＣＰＵユニット１０は、起動用領域と保存用領域を切り替えて、正常なプログラムファイルを起動する。
〔Ｓ２７〕ＣＰＵユニット１０は、アドレス管理テーブルＴ１及び保存先ＣＰＵ選択テーブルＴ２を参照して、起動用プログラムファイルを格納すべき保存用領域を選択する。
〔Ｓ２８〕ＣＰＵユニット１０は、圧縮処理を行うか否かを判断し、圧縮する場合はステップＳ２９へ、非圧縮の場合はステップＳ３０へ行く。
〔Ｓ２９〕ＣＰＵユニット１０はプログラムファイルを圧縮する。
〔Ｓ３０〕ＣＰＵユニット１０は、選択した保存用領域へ、プログラムファイルを転送・格納する。
【００９３】
以上説明したように、第６の実施の形態では、プログラムファイルに異常がある場合に、他のＣＰＵユニットに格納されているプログラムファイルを利用し、正常なプログラムファイルにすみやかに切り替えるので、プログラムファイル管理の品質の向上を図ることが可能になる。
【００９４】
次に第７の実施の形態について図２４〜図２７を用いて説明する。第１〜第６の実施の形態では、メモリＭの保存用領域の容量は、起動用領域の容量と同じまたはそれ以上のものを対象としたが、第７の実施の形態は、保存用領域の容量が起動用領域の容量より小さい場合における動作制御を行うものである。
【００９５】
図２４はアドレス管理テーブルと保存先ＣＰＵ選択テーブルを示す図である。図に示すアドレス管理テーブルＴ１−４と保存先ＣＰＵ選択テーブルＴ２−４とから、ＣＰＵユニット＃１〜＃３用のプログラムファイルは、どのプログラムファイルも保存先ＣＰＵユニットの格納可能サイズよりも大きいので、圧縮処理して格納する旨が記されている。
【００９６】
図２５〜図２７はプログラムファイルの状態遷移を示す図である。
〔状態４−ａ〕ＣＰＵユニット＃１〜＃３のメモリＭ１〜Ｍ３に、版数Ａ１〜Ａ３のプログラムファイルが格納されて起動している。
〔状態４−ｂ〕ユーザは、ＣＰＵユニット＃１〜＃３へプログラムファイル（版数Ｂ１〜Ｂ３）をダウンロードするためのダウンロードコマンドを、保守端末４０を通じて運用管理部３０へ一括して送信する。
【００９７】
なお、ここでのダウンロードコマンドは、ＣＰＵユニット＃１〜＃３の保存用領域それぞれに、自ユニットのプログラムファイル（版数Ｂ１〜Ｂ３）をダウンロードするためのコマンドとは違い、他ユニットの保存用領域へ転送して格納するためのダウンロードコマンド（コマンド内容は、プログラムファイル格納指示と類似の内容）である。
【００９８】
運用管理部３０は、ユーザからダウンロードコマンドを受信すると、アドレス管理テーブルＴ１−４、保存先ＣＰＵ選択テーブルＴ２−４を参照する。そして、ＣＰＵユニット＃１のメモリＭ１の保存用領域には、ＣＰＵユニット＃３のプログラムファイル（版数Ｂ３）を圧縮して格納し、ＣＰＵユニット＃２のメモリＭ２の保存用領域には、ＣＰＵユニット＃１のプログラムファイル（版数Ｂ１）を圧縮して格納し、ＣＰＵユニット＃３のメモリＭ３の保存用領域には、ＣＰＵユニット＃２のプログラムファイル（版数Ｂ２）を圧縮して格納する。
〔状態４−ｃ〕ＣＰＵユニット＃１〜＃３のＣＰＵ部１１−１〜１１−３が互いに通信を行って、すべてのＣＰＵユニット＃１〜＃３の保存用領域に、プログラムファイル（版数Ｂ１〜Ｂ３）が揃ったことを認識すると、ＣＰＵ部１１−１〜１１−３は、現在起動中の版数Ａ１〜Ａ３のプログラムファイルによる演算処理を停止する。
【００９９】
そして、ＣＰＵ部１１−１は、保存先ＣＰＵ選択テーブルＴ２−４を参照して、版数Ｂ１のプログラムファイルがＣＰＵユニット＃２に圧縮されて格納されていることを認識すると、プログラムファイル（版数Ｂ１）を解凍しながら、メモリＭ１の起動用領域へ転送して書き込む。
【０１００】
ＣＰＵ部１１−２は、保存先ＣＰＵ選択テーブルＴ２−４を参照して、版数Ｂ２のプログラムファイルがＣＰＵユニット＃３に圧縮されて格納されていることを認識すると、プログラムファイル（版数Ｂ２）を解凍しながら、メモリＭ２の起動用領域へ転送して書き込む。
【０１０１】
ＣＰＵ部１１−３は、保存先ＣＰＵ選択テーブルＴ２−４を参照して、版数Ｂ３のプログラムファイルがＣＰＵユニット＃１に圧縮されて格納されていることを認識すると、プログラムファイル（版数Ｂ１）を解凍しながら、メモリＭ３の起動用領域へ転送して書き込む。
【０１０２】
ＣＰＵユニット＃１〜＃３のＣＰＵ部１１−１〜１１−３が互いに通信を行って、すべてのＣＰＵユニット＃１〜＃３の起動用領域に、プログラムファイル（版数Ｂ１〜Ｂ３）が揃ったことを認識すると、プログラムファイル（版数Ｂ１〜Ｂ３）で起動を開始する。
【０１０３】
以上説明したように、第７の実施の形態では、起動用領域容量＞保存用領域容量の場合で、起動用領域と保存用領域との切り替えを行う際、起動用プログラムファイルの演算処理を停止してから、保存用領域に格納されている圧縮プログラムファイルを解凍しながら起動用領域へ格納する。
【０１０４】
これにより、プログラムファイルを保存できる分の容量が確保されていない場合でも、保存用領域に他ＣＰＵユニット用のプログラムファイルを互いに格納して、格納領域の切り替え処理を行うことが可能になる。
【０１０５】
以上説明したように、プログラムファイル管理システム１は、プログラムファイルの格納領域として、起動用領域及び保存用領域を持つメモリに対して、起動中のプログラムファイルを他ＣＰＵユニットの保存用領域へ格納する構成とした。
【０１０６】
これにより、プログラムファイル専用のメモリユニットが不要となり、またはメモリユニットが存在する場合でも、メモリユニットのメモリ容量が不足したときに、ハードウェア改造によってメモリ容量を増加させる必要がないので、装置規模の縮小化及び利便性の向上を図ることができ、信頼性の高いダウンロードシステムを実現することが可能になる。
【０１０７】
なお、上記の説明では、運用管理部３０とＣＰＵユニット１０とを互いに独立のユニットとして構成したが、複数あるＣＰＵユニット１０の１つのユニットに運用管理部３０の機能を持たせるような構成にしてもよい。
【０１０８】
次にプログラムファイル管理システム１をＷＤＭの通信を行うＷＤＭシステムに適用した場合について説明する。図２８はＷＤＭシステムの構成例を示す図である。ＷＤＭシステム１００は、ＷＤＭノード１０１〜１０４がリング状に接続したリングネットワーク構成をとる。
【０１０９】
ＷＤＭノード１０１〜１０４には、ＳＯＮＥＴ／ＳＤＨの伝送制御を行う伝送装置Ｆ−１〜Ｆ−１７６が接続し、１つのＷＤＭノードは、伝送装置Ｆからの光ファイバケーブルを１７６本収容する（１本の光ファイバケーブルの伝送容量は１０Ｇｂ／ｓである）。
【０１１０】
また、伝送装置Ｆ−１〜Ｆ−１７６より下流では、図示しないが、交換機やルータ、モバイル端末等が接続する。さらに、図の場合、ＷＤＭシステム１００のネットワーク管理制御を行うＮＭＳ（ネットワーク・マネージメント・システム）４００がＷＤＭノード１０３に接続して、システム全体の監視・管理制御を行っている。このＮＭＳ４００は保守端末４０に該当する。
【０１１１】
図２９はＷＤＭノードの構成を示す図である。ＷＤＭノード１０１は（ＷＤＭノード１０２〜１０４も構成は同じ）、通信装置１０１ａとＯＡＤＸ（optical add／drop cross-connect）１０２ａを含み、通信装置１０１ａは、下位のＣＰＵユニットとして、ＣＰＵユニット１１０−１〜１１０−１７６を持ち、上位のＣＰＵユニットとして、運用管理ユニット１３０とＣＰＵユニット１５０を持つ。またＤＢ１２０を含む。
【０１１２】
ＣＰＵユニット１１０−１〜１１０−１７６、１５０は、ＣＰＵユニット１０−１〜１０−ｎに該当し、運用管理ユニット１３０は、運用管理部３０に該当し、ＤＢ１２０はテーブルＤＢ２０に該当する。
【０１１３】
動作について説明する。ＯＡＤＸ１０２ａは、伝送装置Ｆ−１〜Ｆ−１７６から送信された光信号を、経路変更するために、波長毎に光クロスコネクト制御（光スイッチング）を行ってＡＤＤ（多重化）し、リングネットワークのＥＡＳＴ側、またはＷＥＳＴ側へ出力する。また、リングネットワーク側から受信した光信号は、光クロスコネクト制御を行ってＤＲＯＰ（分離化）し、該当の伝送装置Ｆ−１〜Ｆ−１７６へ出力する。
【０１１４】
通信装置１０１ａに対し、ＣＰＵユニット１５０は、ＯＡＤＸ１０２ａと通信装置１０１ａとの通信（仲介）制御を行う。運用管理ユニット１３０は、ＮＭＳ４００を通じて、通信を行い、通信装置１０１ａの管理制御を行う。また、コマンドとして、ＴＬ１（Transaction Language1）コマンドの設定が可能である（ＴＬ１とは、北米ＧＲ規格によって定められた言語仕様である）。
【０１１５】
ＣＰＵユニット１１０−１〜１１０−１７６は、接続する伝送装置Ｆのチャネル数分設けられ、ＣＰＵユニット１０−１〜１０−ｎと同様に、プログラムファイルを格納するメモリ（図示せず）を有し、保存用領域から起動用領域への切り替えを行って、起動用領域に格納されたプログラムファイルによる演算処理を行う。
【０１１６】
また、運用管理ユニット１３０からの指示により、ＤＢ１２０に格納されたテーブル情報にもとづいて、起動中のプログラムファイルを他ユニットの保存用領域へ転送して格納する。また、ＣＰＵユニット１１０−１〜１１０−１７６のここでの具体的な演算処理としては、例えば、各チャネルのアラーム監視制御を行ったりする。
【０１１７】
以上説明したように、プログラムファイル管理システム１を適用することにより、構成規模の大きいＷＤＭノードに対しても、ＣＰＵユニット１１０−１〜１１０−１７６、１３０、１５０のプログラムファイルをリアルタイムに効率よく管理することが可能になる。
【０１１８】
また、今後、波長の多重度をさらに増やして数テラビット伝送を可能にするシステムを開発していく場合でも、本発明を適用することにより、装置規模の増大化を最小限にとどめることができ、かつ低コストで高品質のフォトニック・ネットワーク・システムを開発することが可能になる。
【０１１９】
なお、上記では、本発明をＷＤＭネットワークに適用した場合について説明したが、ＷＤＭネットワークに限らず、多様な通信システム（例えば、複数ＣＰＵユニットでＩＰパケット、またはＴＤＭ信号などを処理する通信システムなど）に幅広く適用可能である。
【０１２０】
（付記１）  複数のプログラムファイルの管理を行うプログラムファイル管理システムにおいて、
プログラムファイルの格納領域として、起動用領域及び保存用領域を持つメモリと、保存用領域から起動用領域への切り替えを行って、起動用領域に格納されたプログラムファイルによる演算処理を行い、プログラムファイル格納指示により、テーブル情報にもとづいて、起動中のプログラムファイルを他ユニットの保存用領域へ転送して格納するＣＰＵ部と、から構成される複数のＣＰＵユニットと、
プログラムファイルの格納先頭アドレスが記されたアドレス管理テーブルと、プログラムファイルの保存先のＣＰＵユニットが記された保存先ＣＰＵ選択テーブルと、の前記テーブル情報を保持するテーブル・データベースと、
ユーザからのコマンドのインタフェース処理を行い、前記ＣＰＵユニットへのプログラムファイルのダウンロード、前記テーブル・データベースへの前記テーブル情報の登録、前記プログラムファイル格納指示の発行、を含む制御を行う運用管理部と、
を有することを特徴とするプログラムファイル管理システム。
【０１２１】
（付記２）  前記ＣＰＵ部は、圧縮・解凍機能を有し、プログラムファイルよりも保存用領域の容量が不足している場合には、プログラムファイルに圧縮処理を施して、保存用領域へ格納することを特徴とする付記１記載のプログラムファイル管理システム。
【０１２２】
（付記３）  前記運用管理部は、ユーザから送信された、起動用プログラムファイルの格納元のＣＰＵユニットと、保存先ＣＰＵユニットと、圧縮・非圧縮の選択情報と、のパラメータを含むコマンドを受信して、前記保存先ＣＰＵ選択テーブルを順次作成していくことを特徴とする付記１記載のプログラムファイル管理システム。
【０１２３】
（付記４）  前記運用管理部は、前記コマンドのパラメータと、前記アドレス管理テーブルのテーブル情報とから、コマンド設定が可能か否かを判断し、不可能である場合には警告メッセージを通知することを特徴とする付記３記載のプログラムファイル管理システム。
【０１２４】
（付記５）  前記運用管理部は、あらたなＣＰＵユニットが追加された場合、前記アドレス管理テーブルについては前情報を残したまま新規登録欄を付加し、前記保存先ＣＰＵ選択テーブルについては前情報をすべてクリアした後に新規登録欄を付加することで、前記アドレス管理テーブルと前記保存先ＣＰＵ選択テーブルを自動的に再構成していくことを特徴とする付記１記載のプログラムファイル管理システム。
【０１２５】
（付記６）  前記運用管理部は、前記アドレス管理テーブル及び前記保存先ＣＰＵ選択テーブルのテーブル情報の表示制御を行うことを特徴とする付記１記載のプログラムファイル管理システム。
【０１２６】
（付記７）  前記ＣＰＵ部は、起動用プログラムファイルに異常があることを認識すると、前記保存先ＣＰＵ選択テーブルを参照し、正常プログラムファイルが、どのＣＰＵユニットの保存用領域に格納されているかを判断して、格納先から前記正常プログラムファイルを読み出し、自己のメモリの保存用領域へ転送して書き込み、起動用領域と保存用領域を切り替えた後に、前記正常プログラムファイルで起動することを特徴とする付記１記載のプログラムファイル管理システム。
【０１２７】
（付記８）  前記ＣＰＵ部は、前記メモリの保存用領域の容量が起動用領域の容量より小さい場合、保存用領域に格納されている圧縮プログラムファイルを起動用領域へ転送して格納する際は、現在起動中のプログラムファイルによる演算処理を停止し、前記圧縮プログラムファイルを解凍しながら起動用領域へ転送して書き込むことを特徴とする付記１記載のプログラムファイル管理システム。
【０１２８】
（付記９）  ＣＰＵによる制御を行うＣＰＵユニットにおいて、
プログラムファイルの格納領域として、起動用領域及び保存用領域を持つメモリと、
保存用領域から起動用領域への切り替えを行って、起動用領域に格納されたプログラムファイルによる演算処理を行い、プログラムファイル格納指示により、テーブル情報にもとづいて、起動中のプログラムファイルを他ユニットの保存用領域へ転送して格納するＣＰＵ部と、
を有することを特徴とするＣＰＵユニット。
【０１２９】
（付記１０）  ＣＰＵユニットの制御を行う運用管理装置において、
ユーザからのコマンドのインタフェース処理を行い、ＣＰＵユニットへのプログラムファイルのダウンロード、前記テーブル・データベースへの前記テーブル情報の登録、前記プログラムファイル格納指示の発行、を含む制御を行うことを特徴とする運用管理装置。
【０１３０】
（付記１１）  複数のプログラムファイルの管理を行うプログラムファイル管理方法において、
プログラムファイルの格納領域として、起動用領域及び保存用領域を持つメモリを有する複数のＣＰＵユニットに対して、起動用領域に格納されたプログラムファイルによる演算処理の実行のために、保存用領域から起動用領域への切り替えを行い、
プログラムファイル格納指示と、プログラムファイルの格納先頭アドレスが記されたアドレス管理テーブル及びプログラムファイルの保存先のＣＰＵユニットが記された保存先ＣＰＵ選択テーブルのテーブル情報とにもとづいて、起動中のプログラムファイルを他ＣＰＵユニットの保存用領域へ転送して格納することを特徴とするプログラムファイル管理方法。
【０１３１】
（付記１２）  プログラムファイルサイズよりも保存用領域の容量が不足している場合には、プログラムファイルに圧縮処理を施して、保存用領域へ格納することを特徴とする付記１１記載のプログラムファイル管理方法。
【０１３２】
（付記１３）  ユーザから送信された、起動用プログラムファイルの格納元のＣＰＵユニットと、保存先ＣＰＵユニットと、圧縮・非圧縮の選択情報と、のパラメータを含むコマンドを受信して、前記保存先ＣＰＵ選択テーブルを順次作成していくことを特徴とする付記１１記載のプログラムファイル管理方法。
【０１３３】
（付記１４）  前記コマンドのパラメータと、前記アドレス管理テーブルのテーブル情報とから、コマンド設定が可能か否かを判断し、不可能である場合には警告メッセージを通知することを特徴とする付記１３記載のプログラムファイル管理方法。
【０１３４】
（付記１５）  あらたなＣＰＵユニットが追加された場合、前記アドレス管理テーブルについては前情報を残したまま新規登録欄を付加し、前記保存先ＣＰＵ選択テーブルについては前情報をすべてクリアした後に新規登録欄を付加することで、前記アドレス管理テーブルと前記保存先ＣＰＵ選択テーブルを自動的に再構成していくことを特徴とする付記１１記載のプログラムファイル管理方法。
【０１３５】
（付記１６）  前記アドレス管理テーブル及び前記保存先ＣＰＵ選択テーブルのテーブル情報の表示制御を行うことを特徴とする付記１１記載のプログラムファイル管理方法。
【０１３６】
（付記１７）  起動用プログラムファイルに異常があることを認識すると、前記保存先ＣＰＵ選択テーブルを参照し、正常プログラムファイルが、どのＣＰＵユニットの保存用領域に格納されているかを判断して、格納先から前記正常プログラムファイルを読み出し、自己のメモリの保存用領域へ転送して書き込み、起動用領域と保存用領域を切り替えた後に、前記正常プログラムファイルで起動することを特徴とする付記１１記載のプログラムファイル管理方法。
【０１３７】
（付記１８）  前記メモリの保存用領域の容量が起動用領域の容量より小さい場合、保存用領域に格納されている圧縮プログラムファイルを起動用領域へ転送して格納する際は、現在起動中のプログラムファイルによる演算処理を停止し、前記圧縮プログラムファイルを解凍しながら起動用領域へ転送して書き込むことを特徴とする付記１１記載のプログラムファイル管理方法。
【０１３８】
（付記１９）  ＷＤＭ通信を行うＷＤＭノードにおいて、
光信号の光クロスコネクト制御を行い、多重・分離化するＯＡＤＸと、
プログラムファイルの格納領域として、起動用領域及び保存用領域を持つメモリに対して、保存用領域から起動用領域への切り替えを行って、起動用領域に格納されたプログラムファイルによる演算処理を行い、プログラムファイル格納指示により、テーブル情報にもとづいて、起動中のプログラムファイルを他ユニットの保存用領域へ転送して格納する複数のＣＰＵユニットと、プログラムファイルの格納先頭アドレス及びプログラムファイルの保存先ＣＰＵユニットが記された、前記テーブル情報を保持するデータベースと、ユーザからのコマンドのインタフェース処理を行い、前記ＣＰＵユニットへのプログラムファイルのダウンロード、前記データベースへの前記テーブル情報の登録、前記プログラムファイル格納指示の発行、を含む制御を行う運用管理ユニットと、から構成される通信装置と、
を有することを特徴とするＷＤＭノード。
【０１３９】
【発明の効果】
以上説明したように、本発明のプログラムファイル管理システムは、プログラムファイルの格納領域として、起動用領域及び保存用領域を持つメモリに対して、起動中のプログラムファイルを他ＣＰＵユニットの保存用領域へ格納する構成とした。これにより、プログラムファイルを保存する専用ユニットを設けずに、複数のプログラムファイルを効率よく管理することができるので、装置規模を縮小化し、利便性及び管理効率の向上を図ることが可能になる。
【図面の簡単な説明】
【図１】  プログラムファイル管理システムの原理図である。
【図２】アドレス管理テーブルを示す図である。
【図３】保存先ＣＰＵ選択テーブルを示す図である。
【図４】アドレス管理テーブルと保存先ＣＰＵ選択テーブルを示す図である。
【図５】アドレス管理テーブルを示す図である。
【図６】プログラムファイルの状態遷移を示す図である。
【図７】プログラムファイルの状態遷移を示す図である。
【図８】アドレス管理テーブルと保存先ＣＰＵ選択テーブルを示す図である。
【図９】アドレス管理テーブルを示す図である。
【図１０】動作概要を示すフローチャートである。
【図１１】ユーザから指定されるコマンドを示す図である。
【図１２】アドレス管理テーブルを示す図である。
【図１３】保存先ＣＰＵ選択テーブルの作成遷移を示す図である。
【図１４】プログラムファイルの状態遷移を示す図である。
【図１５】プログラムファイルの状態遷移を示す図である。
【図１６】プログラムファイルの状態遷移を示す図である。
【図１７】第３の実施の形態の動作を示すフローチャートである。
【図１８】保存先ＣＰＵ選択テーブルを示す図である。
【図１９】アドレス管理テーブルを示す図である。
【図２０】テーブル情報の表示例を示す図である。
【図２１】プログラムファイルの状態遷移を示す図である。
【図２２】プログラムファイルの状態遷移を示す図である。
【図２３】第６の実施の形態の動作を示すフローチャートである。
【図２４】アドレス管理テーブルと保存先ＣＰＵ選択テーブルを示す図である。
【図２５】プログラムファイルの状態遷移を示す図である。
【図２６】プログラムファイルの状態遷移を示す図である。
【図２７】プログラムファイルの状態遷移を示す図である。
【図２８】ＷＤＭシステムの構成例を示す図である。
【図２９】ＷＤＭノードの構成を示す図である。
【図３０】プログラムファイルの状態遷移を示す図である。
【図３１】復旧処理時のプログラムファイルの状態遷移を示す図である。
【符号の説明】
１  プログラムファイル管理システム
１０−１〜１０−ｎ  ＣＰＵユニット
１１−１〜１１−ｎ  ＣＰＵ部
２０  テーブル・データベース
３０  運用管理部
４０  保守端末
Ｍ１〜Ｍｎ  メモリ
Ｔ１  アドレス管理テーブル
Ｔ２  保存先ＣＰＵ選択テーブル
【図１】
0004155756.tif 000002
【図２】
0004155756.tif 000003
【図３】
0004155756.tif 000004
【図４】
0004155756.tif 000005
【図５】
0004155756.tif 000006
【図６】
0004155756.tif 000007
【図７】
0004155756.tif 000008
【図８】
0004155756.tif 000009
【図９】
0004155756.tif 000010
【図１０】
0004155756.tif 000011
【図１１】
0004155756.tif 000012
【図１２】
0004155756.tif 000013
【図１３】
0004155756.tif 000014
【図１４】
0004155756.tif 000015
【図１５】
0004155756.tif 000016
【図１６】
0004155756.tif 000017
【図１７】
0004155756.tif 000018
【図１８】
0004155756.tif 000019
【図１９】
0004155756.tif 000020
【図２０】
0004155756.tif 000021
【図２１】
0004155756.tif 000022
【図２２】
0004155756.tif 000023
【図２３】
0004155756.tif 000024
【図２４】
0004155756.tif 000025
【図２５】
0004155756.tif 000026
【図２６】
0004155756.tif 000027
【図２７】
0004155756.tif 000028
【図２８】
0004155756.tif 000029
【図２９】
0004155756.tif 000030
【図３０】
0004155756.tif 000031
【図３１】
0004155756.tif 000032