(57)【特許請求の範囲】
【請求項１】
複数の被制御装置で構成される本体系装置の制御および保守を行なうために、ハードウエア制御プログラムに従って制御ドライバにより各被制御装置を制御するサービスプロセッサにおいて、
該ハードウエア制御プログラムが、
マンマシンインタフェース制御部として機能するアプリケーション層と、
該アプリケーション層からのコマンドに応じた処理を指示するコマンド処理部として機能するハイレベルコマンド層と、
該ハイレベルコマンド層により指示された処理に応じて該本体系装置に対する制御を行なうハードウエア制御部として機能するマクロ層との３階層に論理的に分割され、
該マクロ層に、
前記の各被制御装置の装置版数毎に、前記の各被制御装置を操作する上で必要な基本操作単位を実行する手順をマクロデータとして記述した、複数のプログラムモジュールと、
前記の各被制御装置とその装置版数との対応関係、および、前記の各被制御装置の装置版数と各プログラムモジュールとの対応関係を管理し、前記の各被制御装置に対する制御および保守が指示された時に、制御対象となる被制御装置の装置版数に合致したプログラムモジュールを前記対応関係に従って選択して実行する管理部とがそなえられ、
該管理部が、
前記の各被制御装置の装置認識番号と装置版数とを対応させる第１のテーブルと、
前記の各被制御装置の装置版数とその装置版数に対応するプログラムモジュールを指定するアドレスとを対応させる第２のテーブルと、
該プログラムモジュールを指定するマクロ番号とそのマクロ番号に対応するプログラムモジュールについての該第２のテーブルのエントリ位置を示すアドレスとそのマクロ番号に対応するプログラムモジュールについての該第２のテーブルのエントリ数とを対応させる第３のテーブルとを有し、
該ハイレベルコマンド層から前記処理についての装置認識番号およびマクロ番号を与えられると、与えられた装置認識番号に基づいて該第１のテーブルを索引してその装置認識番号に対応する装置版数を認識するとともに、該第３のテーブルを参照して、与えられたマクロ番号をもつエントリを選択しそのエントリの内容に従って該第２のテーブルを参照し、該第２のテーブルにおいて、該第１のテーブルによって認識された装置版数と一致するエントリを選択し、そのエントリのアドレスにより指定されるプログラムモジュールを選択して実行することを
特徴とする、サービスプロセッサ。
【請求項２】
該マクロ層においてプログラムモジュールを追加・変更した場合に該第１のテーブル，該第２のテーブルおよび該第３のテーブルに対して当該プログラムモジュールについての管理情報を登録する機能が該管理部にそなえられていることを特徴とする、請求項１記載のサービスプロセッサ。
【請求項３】
該プログラムモジュールが、マクロ記述言語により記述した前記の各被制御装置の装置版数に対する基本操作単位毎の制御手順を翻訳・変換して作成され、同一被制御装置の装置版数種類だけ該マクロ層に登録されていることを特徴とする、請求項１または請求項２に記載のサービスプロセッサ。
【請求項４】
該アプリケーション層に、
マクロ記述言語により記述した前記の各被制御装置の装置版数に対する基本操作単位毎の制御手順を、該ハードウエア制御プログラムで用いられるコマンドストリング文法規則に合った形式に変換する変換プログラムがそなえられていることを特徴とする、請求項１〜３のいずれか一項に記載のサービスプロセッサ。
【発明の詳細な説明】
【０００１】
（目次）
産業上の利用分野
従来の技術（図１０）
発明が解決しようとする課題（図１０）
課題を解決するための手段（図１）
作用（図１）
実施例（図２〜図９）
発明の効果
【０００２】
【産業上の利用分野】
本発明は、中央処理装置，主記憶装置，チャネルプロセッサ等からなる本体系装置の制御および保守を司るサービスプロセッサに関し、特に、本体系装置を構成する各装置毎の装置版数に対応してその制御および保守を行なうサービスプロセッサに関する。
【０００３】
【従来の技術】
図１０は従来技術の一例を示すブロック図である。この図１０に示すように、計算機システムの本体系装置１０は、例えば、中央処理装置（ＣＰＵ）３，インタフェース部４，メモリ制御装置（ＭＣＵ）５，主記憶装置（ＭＳＵ）６およびチャネルプロセッサ（ＣＨＰ）７から構成されており、中央処理装置３は、メモリ制御装置５を介して主記憶装置６のデータを読み出して処理を行ない、処理後のデータをメモリ制御装置５を介して主記憶装置６に格納する。
【０００４】
また、中央処理装置３は、インタフェース部４に接続された入出力装置（図示省略）との間で、必要とするデータの転送をメモリ制御装置５を介してチャネルプロセッサ７に指示する。従って、チャネルプロセッサ７は、インタフェース部４を介して複数の入出力装置を制御し、これらの入出力装置と主記憶装置６との間のデータ転送をメモリ制御装置５を介して実行できるようになっている。
【０００５】
上述のような本体系装置１０のインタフェース部４には、本体系装置１０を構成する各装置の制御および保守を司るサービスプロセッサ（ＳＶＰ）２が接続されている。
このサービスプロセッサ２は、インタフェース部４を介し、このインタフェース部４と各装置（中央処理装置３，メモリ制御装置５，主記憶装置６，チャネルプロセッサ７）とを接続するアクセス経路（図中、太線で示す経路）によって、本体系装置１０内の各装置の動作を監視し、その動作状態をディスプレイ上に表示したり、障害等の情報を収集したりするほか、オペレータ（操作者）の指示により、障害探索のための制御や本体系装置１０をなす各装置の電源投入／切断等の制御を行なう。なお、図１０中、太線矢印はアクセス処理の流れ方向を示し、細線矢印はデータの流れ方向を示している。
【０００６】
また、サービスプロセッサ２は、本体系装置１０の初期設定時には、中央処理装置３やチャネルプロセッサ７に対して初期プログラムローディング（ＩＰＬ）を実行する機能も有している。
そして、サービスプロセッサ２は、このサービスプロセッサ２上で動作するハードウエア制御プログラム（Ｈａｒｄｗａｒｅ  Ｃｏｎｔｒｏｌ  Ｐｒｏｇｒａｍ：以下、ＨＣＰという）２Ａによって、本体系装置制御ドライバ２Ｂを介して本体系装置１の制御を実行している。
【０００７】
サービスプロセッサ２には、オペレータが指示を入力することができる制御画面（図示省略；以下、コンソールという）がそなえられ、このコンソールから、ハードウエア（本体系装置１０の各装置）の制御に関する指示（以下、コマンドという）を投入することで、オペレータの指示に応じた本体系装置１０の各装置の制御を行なえるようになっている。
【０００８】
また、ＨＣＰ２Ａにおいては、コンソールから投入されたコマンド文と実行順序を変更する制御文とによって一連の手順を既述したファイル（以下、コマンドストリングという）２ａが作成され、このコマンドストリング２ａをコンソールから起動して実行することができる。コマンドストリング２ａは、ＨＣＰ２Ａ内のコマンドストリング解釈部（インタプリタ）２ｂによって解釈され、その解釈結果に応じて本体系装置制御部２ｃによって実行される。このコマンドストリング２ａは、デバッグの目的で１ステップずつ実行することもできる。
【０００９】
なお、ＨＣＰ２Ａには、本体系装置１０の自動運転制御や障害発生時の切離し制御等の各種制御を行なうためのその他のアプリケーションプログラム２ｄもそなえられており、アプリケーションプログラム２ｄにより、本体系装置制御部２ｅを介して本体系装置１０を制御できるようになっている。
ところで、本体系装置１０は、機能追加や障害修正等の理由で、中央処理装置３，メモリ制御装置５，主記憶装置６，チャネルプロセッサ７等の各装置の改版（ハードウエアのバージョンアップ）を行なうため、各装置毎に複数種類の版数（以下、ハード版数という）をもつことになる。
【００１０】
図１０に示すような計算機システムで装置改版によりハードウエアラッチ，レジスタ等の物理的な位置（アドレス）や数量が変更されハード版数毎に異なる操作が必要になった場合、つまり、サービスプロセッサ２が本体系装置の各装置を制御するための制御手順を変更する必要が生じた場合、従来、本体系装置１０のハード版数一式毎に対応するＨＣＰ２Ａを作成している。
【００１１】
【発明が解決しようとする課題】
しかしながら、上述した従来のサービスプロセッサでは、以下のような課題があった。
▲１▼それぞれのハード版数一式に対応するＨＣＰが複数版数必要になる。この場合に、ＨＣＰ自体の機能追加や障害修正等の理由でＨＣＰに対して変更（以下、パッチという）が生じると、複数のＨＣＰに対して個別のパッチ版数管理が必要となるが、ＨＣＰが異なると、対応内容が同じでもそのアドレス値やデータ等が異なる別のパッチとなる場合があり、管理が複雑になる。
【００１２】
▲２▼同一のパッチを複数のＨＣＰ版数に適用する場合は、そのパッチに対する同一の検証を複数のＨＣＰ版数で行なわなければならない。また、パッチを適用した後、ＨＣＰの他の部分がそのパッチによる悪影響を受けていないかどうかの検証（デグレード検証）も複数のＨＣＰで行なわなければならない。
▲３▼ハード版数とＨＣＰ版数とが１対１対応しているため、本体系装置１０の故障時に交換する装置は、サービスプロセッサ２のＨＣＰが制御できるハード版数に限定される。このため、各ユーザで異なるハード版数の本体系装置１０にて運用されている場合は、保守用の装置は全ユーザに対応できるように複数版数を用意しておかなければならず、保守費用が増大する要因になっている。
【００１３】
▲４▼ハード版数とＨＣＰ版数とが１対１対応しているため、本体系装置１０の改版を行なう際に、ＨＣＰの本体系装置制御部（図１０の符号２ｃ，２ｅ参照）も改版する必要がある。ＨＣＰの改版作業中の誤動作を防ぐため、システム全体を停止しなければならず、改版作業の契機が限定される。また、オンラインシステム等のように本体系装置１０を停止できない場合には、ＨＣＰを改版できなくなる。
【００１４】
▲５▼本体系装置１０の制御手順は、サービスプロセッサ２のソフトウエアとしてサービスプロセッサ２の各アプリケーション毎に組み込まれ動作する。このため、ＨＣＰに登録する前に制御手順の正当性を検証する場合、正しい手順かどうか１ステップずつ動作を確認しながら実行する手段が存在しなかった。
本発明は、このような課題に鑑み創案されたもので、一つのＨＣＰで複数版数の本体系装置の制御を可能にして、ＨＣＰの作成工数，変更工数や検証工数を削減するとともに本体系装置の保守費用を削減し、さらに、本体系装置無停止でのＨＣＰの改版や、ＨＣＰ登録前の制御手順の正当性検証を実現できるようにしたサービスプロセッサを提供することを目的とする。
【００１５】
【課題を解決するための手段】
図１は本発明の原理ブロック図で、この図１において、１０は複数の被制御装置１１で構成される本体系装置、２０は本体系装置１０の制御および保守を行なうためにハードウエア制御プログラム（以下、ＨＣＰという）２１に従って制御ドライバ２２により各被制御装置１１を制御するサービスプロセッサである。
【００１６】
そして、本発明のサービスプロセッサ２０においては、ＨＰＣ２１が、マンマシンインタフェース制御部として機能するアプリケーション層２１Ａと、このアプリケーション層２１Ａからのコマンドに応じた処理を指示するコマンド処理部として機能するハイレベルコマンド層２１Ｂと、このハイレベルコマンド層２１Ｂにより指示された処理に応じて本体系装置１０に対する制御を行なうハードウエア制御部として機能するマクロ層２１Ｃとの３階層に論理的に分割されている。
【００１７】
また、マクロ層２１Ｃには、複数のプログラムモジュール２３および管理部２４がそなえられている。プログラムモジュール２３は、各被制御装置１１の装置版数毎に、各被制御装置１１を操作する上で必要な基本操作単位を実行する手順をマクロデータとして記述したものであり、管理部２４は、各被制御装置１１とその装置版数との対応関係、および、各被制御装置１１の装置版数とプログラムモジュール２３との対応関係を管理し、各被制御装置１１に対する制御および保守が指示された時に、制御対象となる被制御装置の装置版数に合致したプログラムモジュール２３を前記対応関係に従って選択して実行するものである。
【００１８】
そして、管理部２４は、各被制御装置１１の装置認識番号と装置版数とを対応させる第１のテーブルと、各被制御装置１１の装置版数とその装置版数に対応するプログラムモジュール２３を指定するアドレスとを対応させる第２のテーブルと、プログラムモジュール２３を指定するマクロ番号とそのマクロ番号に対応するプログラムモジュール２３についての第２のテーブルのエントリ位置を示すアドレスとそのマクロ番号に対応するプログラムモジュール２３についての第２のテーブルのエントリ数とを対応させる第３のテーブルとを有し、ハイレベルコマンド層２１Ｂから前記処理についての装置認識番号およびマクロ番号を与えられると、与えられた装置認識番号に基づいて第１のテーブルを索引してその装置認識番号に対応する装置版数を認識するとともに、第３のテーブルを参照して、与えられたマクロ番号をもつエントリを選択しそのエントリの内容に従って第２のテーブルを参照し、第２のテーブルにおいて、第１のテーブルによって認識された装置版数と一致するエントリを選択し、そのエントリのアドレスにより指定されるプログラムモジュール２３を選択して実行するように構成されている（請求項１）。このとき、マクロ層２１Ｃにおいてプログラムモジュール２３を追加・変更した場合に第１のテーブル，第２のテーブルおよび第３のテーブルに対して当該プログラムモジュールについての管理情報を登録する機能を管理部２４にそなえてもよい（請求項２）。
【００１９】
また、プログラムモジュール２３を、マクロ記述言語により記述した各被制御装置１１の装置版数に対する基本操作単位毎の制御手順を翻訳・変換して作成し、同一被制御装置の装置版数種類だけマクロ層２１Ｃに登録してもよい（請求項３）。
さらに、アプリケーション層２１Ａに、マクロ記述言語により記述した各被制御装置１１の装置版数に対する基本操作単位毎の制御手順を、ＨＣＰ２１で用いられるコマンドストリング文法規則に合った形式に変換する変換プログラムをそなえてもよい（請求項４）。
【００２０】
【作用】
図１にて上述した本発明のサービスプロセッサ２０では、ＨＰＣ２１を、アプリケーション層２１Ａ，ハイレベルコマンド層２１Ｂ，マクロ層２１Ｃに論理的に分割して階層化することにより、層内でのモジュール交換を他層に影響を与えることなく行なうことができる。
【００２１】
また、マクロ層２１Ｃにおいて、管理部２４により、制御対象となる被制御装置１１の装置版数に合致したプログラムモジュール２３が前記対応関係に従って選択され実行されるので、一つのＨＣＰ２１によって、本体系装置１０を構成する複数版数の各被制御装置１１の制御が可能になる。
そして、管理部２４においては、第１のテーブルにより各被制御装置１１の装置認識番号と装置版数とを対応させ、第２のテーブルにより各被制御装置１１の装置版数とプログラムモジュール２３を指定するアドレスとを対応させるとともに、第３のテーブルによりプログラムモジュール２３を指定するマクロ番号とそのマクロ番号に対応するプログラムモジュール２３についての第２のテーブルのエントリ位置を示すアドレスとそのマクロ番号に対応するプログラムモジュール２３についての第２のテーブルのエントリ数とを対応させることで、これらの対応関係を容易に管理することができる（請求項１）。
【００２２】
このとき、管理部２４の機能により、プログラムモジュールについての管理情報をサービスプロセッサ２０の初期化時に作成された第１のテーブル，第２のテーブルおよび第３のテーブルに対して登録できるので、本体系装置１０を停止することなく、マクロ層２１Ｃのプログラムモジュール２３について随時追加・変更等の改版作業を行なうことができる（請求項２）。
【００２３】
また、プログラムモジュール２３は、マクロ記述言語により記述した各被制御装置１１の装置版数に対する基本操作単位毎の制御手順を翻訳・変換して作成され、このように作成されたプログラムモジュール２３を、同一被制御装置の装置版数種類だけマクロ層２１Ｃに登録することができる（請求項３）。
さらに、アプリケーション層２１Ａの変換プログラムにより、マクロ記述言語にて記述した各被制御装置１１の装置版数に対する基本操作単位毎の制御手順（マクロソース）がコマンドストリング文法規則に合った形式に変換されるので、前記制御手順をサービスプロセッサ２０上で起動して実行することができる。従って、プログラムモジュール２３をＨＣＰ２１のマクロ層２１Ｃに登録する前に、プログラムモジュール２３よりも可読性の高いマクロソースの状態で、実機上にてその制御手順のステップ実行による動作検証を行なうことができる（請求項４）。
【００２４】
【実施例】
以下、図面を参照して本発明の実施例を説明する。
図２は本発明の一実施例としてのサービスプロセッサの機能的な構成を示すブロック図、図３はそのサービスプロセッサのハードウエア構成を示すブロック図である。
【００２５】
本実施例のサービスプロセッサ２０は、図３に示すように、ハードウエアとして、プロセッサ２５，インタフェース回路２６，ＲＡＭ２７，ディスク制御回路２８，ディスク装置２９およびディスプレイ３０を有して構成されている。
ここで、プロセッサ２５は、ディスク制御回路２８を制御してディスク装置２９に格納されているＨＣＰ２１（図２参照）を読み出すと、ＲＡＭ２７に格納してから、このＲＡＭ２７のＨＣＰ２１に従って本体系装置１０の制御および保守を行なう。
【００２６】
そして、図１０にて前述した本体系装置１０の初期設定時には、ディスク制御回路２８を介してディスク装置２９から読み出したプログラムを、インタフェース回路２６を介して本体系装置１０のインタフェース部４へ送出し、中央処理装置３およびチャネルプロセッサ７に対して初期プログラムローディング（ＩＰＬ）を実行するようになっている。
【００２７】
ところで、本実施例のサービスプロセッサ２０では、図２に示すように、ＨＣＰ２１が、アプリケーション層〔マンマシンインタフェース（ＭＭＩ）制御部〕２１Ａと、このアプリケーション層２１Ａからのコマンドに応じた処理を指示するハイレベルコマンド層（コマンド処理部）２１Ｂと、このハイレベルコマンド層２１Ｂにより指示された処理に応じて本体系装置１０に対する制御を行なうマクロ層（ハードウエア制御部）２１Ｃとの３階層に論理的に分割されており、これらの階層間を単純なインタフェースで統一的に接続する。
【００２８】
なお、従来のコマンド処理要求は、各サービスプロセッサプログラムに含まれていたが、この場合、内容的には同一処理を行なうものも多く、無駄が多い。そこで、本実施例では、このコマンド処理部分をハイレベルコマンド層２１Ｂとしてアプリケーション層２１Ａから独立させ、アプリケーション層２１Ａと単純なインタフェースを介して接続している。実際には、各コマンド（ハイレベルコマンド）には予め番号が割り当てられており、ハイレベルコマンドを実行する場合は、要求元ＩＤと実行するハイレベルコマンド番号と入力データとをハイレベルコマンドに渡し、各ハイレベルコマンドは処理要求を処理して出力データを作成し、要求元に処理終了通知するようになっている。
【００２９】
一方、本実施例のマクロ層２１Ｃには、複数のプログラムモジュール２３と、このプログラムモジュール２３を制御対象に応じて選択する管理部２４とがそなえられている。
ＨＣＰ２１を作成する際、マクロ層２１Ｃには、その制御対象装置（被制御装置；中央処理装置３，メモリ制御装置５，主記憶装置６，チャネルプロセッサ７等）のハード版数および制御機能毎に、プログラムモジュール（プログラムオブジェクト）２３が、開発用計算機４０により作成されて設定されている（詳細な作成手順は図５にて後述する）。
【００３０】
管理部２４には、各プログラムモジュール２３の操作対象装置版数情報，本体系装置１０のハード版数情報等の情報が登録されるようになっている。具体的には、図６〜図８にてそれぞれ後述するマクロ管理テーブル（第３のテーブル）３３，版数管理テーブル（第２のテーブル）３２，装置版数管理テーブル（第１のテーブル）３１が、開発用計算機４０から設定されたファイル名管理テーブル４４（図５にて後述）に従って、システムのＩＰＬ時に作成されてそなえられる（実際にはＲＡＭ２７上に格納される）。
【００３１】
そして、管理部２４は、ハイレベルコマンド層２１Ｂから指示された処理の、処理対象ハード版数に対応するプログラムモジュール２３を、テーブル３１〜３３に登録された情報に基づいて選択して実行するようになっている。また、本実施例の管理部２４には、サービスプロセッサ２０の動作中に、マクロ層２１Ｃにおいてプログラムモジュール２３を追加・変更した場合に各テーブル３１〜３３に対して当該プログラムモジュール２３についての管理情報を登録する機能もそなえられている。
【００３２】
さらに、本実施例では、本体系装置１０のハードウエア制御手順は、各被制御装置に対する基本操作単位（例えばレジスタのロード／センス／スキャン，中央処理装置３の起動や停止等）毎に別々の実行単位（マクロデータ）として作成される。このとき、マクロデータは、ハードウエア制御手順を記述するために適した言語（以下、マクロ記述言語という）によって規定・作成される。
【００３３】
また、本実施例では、ＨＣＰ２１のアプリケーション層２１Ａには、コマンドストリング解釈部３５，アプリケーションプログラム３６，変換プログラム（コードコンバータ）３７がそなえられている。
コマンドストリング解釈部３５は、サービスプロセッサ２０のコンソールから投入されるコマンドストリング３４を解釈してハイレベルコマンド層２１Ｂへ通知するものである。アプリケーションプログラム３６は、本体系装置１０の自動運転制御や障害発生時の切離し制御等の各種制御を行なうためのものである。
【００３４】
そして、変換プログラム３７は、マクロ記述言語により記述した各被制御装置の装置版数に対する基本操作単位毎のハードウエア制御手順（マクロソース４１）を、ＨＣＰ２１で用いられるコマンドストリング文法規則に合った形式に変換するものである。
上述のごとく構成された本実施例のサービスプロセッサ２０について、まず、図４，図５によりマクロソースによる本体系装置１０の制御手順実行方法について説明する。
【００３５】
本体系装置１０に対する基本操作のハードウエア制御手順（マクロソース；図２の符号４１参照）は、マクロ記述言語によりハード版数毎に記述される。
本実施例では、このマクロソース４１を、実際のハード版数の装置によって構成される計算機システムにおけるサービスプロセッサ２０上のコンソールから投入し、変換プログラム３７によりコマンドストリング形式に変換することで、サービスプロセッサ２０上で実行することができる。
【００３６】
このとき、マクロ記述言語の文法規則を、サービスプロセッサ２０のコンソールから投入するコマンドストリング３４の文法規則と極力同じなるように規定し、マクロ記述言語で記述されたマクロソース４１とコマンドストリングとの文法規則の差異については、例えば図４に示すように、変換プログラム３７により変換・吸収してから、コマンドストリング解釈部３５に与える。
【００３７】
従って、本実施例では、プログラムモジュール２３を開発用計算機４０からマクロ層２１Ｃに登録する前に、マクロソースの状態で実計算機上で動作確認を行なうことができる。
このような手順でマクロソース４１の動作が正常であると確認できれば、図５に示すように、開発用計算機４０上において、マクロソース４１をマクロジェネレータ（マクロ翻訳ソフトウエア，翻訳プログラム）４２によりサービスプロセッサ２０上で実行可能な形式（Ｃ言語）のプログラムオブジェクト４３に変換される。
【００３８】
このとき、マクロソース４１のヘッダ情報として記述されている本体系装置１０における対象装置名，マクロ番号，対応ハード版数情報は、マクロジェネレータ４２によりファイル名管理テーブル４４に格納される。
そして、ファイル名管理テーブル４４を参照することで、上述のごとく生成された複数のプログラムオブジェクト４３から、ＨＣＰ２１の制御対象である複数版数分の本体系装置１０に対応したものを選択し、プログラムモジュール（マクロデータ）２３としてサービスプロセッサ２０におけるＨＣＰ２１上のマクロ層２１Ｃに登録される。また、選択・登録したプログラムモジュール２３のファイル名管理テーブル情報もマクロ層２１Ｃ上の管理部２４に登録される。
【００３９】
次に、本実施例の管理部２４による複数ハード版数の本体系装置１０の制御方法について、図６〜図９により説明する。
サービスプロセッサ２０の管理部２４では、システムの初期化時にディスク装置２９に格納されている全マクロデータをファイル名管理テーブル（図５の符号４４参照）の情報に従って参照し、その操作対象装置名および対象版数に基づいて、図６に示すようなマクロ管理テーブル３３と図７に示すような版数管理テーブル３２と図８に示すような装置版数管理テーブル３１とを作成する。
【００４０】
図６はマクロ管理テーブル３３の一例で、一つのヘッダと複数のエントリとが記述されている。
図６において、ヘッダの「空きテーブル数」の欄には、後幾つのエントリに対して記述できるか残り領域の大きさが記述されており、「総テーブル数」の欄には、エントリの記述可能領域の大きさが記述されている。従って、総テーブル数から空きテーブル数を減算することにより、現在記述されているエントリの数が判明する。
【００４１】
「版数管理テーブル空き数」の欄には、図７に示す版数管理テーブル３２に追記可能な領域の大きさが記述されており、「リザーブ領域」の欄は空欄で将来的な拡張のために確保されている。
「登録可能テーブルの先頭アドレス」の欄には、マクロ管理テーブル３３にエントリを追記する際の空きテーブルの先頭アドレスが記述されており、図６に示すようにマクロ番号１〜マクロ番号＃ＮのＮ個のエントリが既に記述されている場合には、Ｎ＋１個目のエントリアドレスが記述される。従って、ＨＣＰ２１のパッチ時に新たなマクロデータ（プログラムモジュール２３）が作成された場合には、マクロ管理テーブル３３のヘッダを参照し、追記するエントリをＮ＋１個目のエントリアドレスに書き込む。
【００４２】
上述のようなヘッダに続いてマクロ番号１〜マクロ番号＃Ｎのエントリが記述されており、各エントリの「版数管理テーブル先頭アドレス」の欄には、図７に示す版数管理テーブル３２をアクセスする際のエントリ位置を示すアドレスが記述されている。
また、「サポート手順数」の欄には、図７に示す版数管理テーブル３２のエントリを幾つリンクして処理するかが記述されており、「マクロ番号」の欄には、例えば、操作手順（中央処理装置３の停止等）が記述されたマクロデータを指定する番号が記述されている。
【００４３】
図７は版数管理テーブル３２の一例で、本体系装置１０を構成する各装置毎に作成され、複数のエントリが記述されている。
この版数管理テーブル３２は、各被制御装置のハード版数とプログラムモジュール２３を指定するアドレスとを対応させるもので、図７において、エントリ番号１〜エントリ番号＃Ｎの各エントリの「適応版数」の欄には、図６に示すマクロ管理テーブル３３のマクロ番号に対応する被制御装置のハード版数が記述され、「次エントリ番号」の欄には、リンクして処理する版数管理テーブル３２内のエントリの番号が記述され、「マクロデータアドレス」の欄には、実行すべきマクロデータを格納されたＲＡＭ２７上のアドレスが記述されている。
【００４４】
図８は装置版数管理テーブル３１の一例で、この装置版数管理テーブル３１は、各被制御装置の装置ＩＤとハード版数とを対応させるもので、図８において、エントリ番号１〜エントリ番号＃Ｎの各エントリの「装置ＩＤ」の欄には、本体系装置１０を構成する各被制御装置の装置番号が記述され、「装置版数」の欄には、装置番号に対応する装置についてのハード版数が記述されている。
【００４５】
例えば、エントリ番号１のエントリには中央処理装置３についての装置番号およびハード版数を記述し、エントリ番号２のエントリには主記憶装置５についての装置番号およびハード版数を記述し、エントリ番号Ｎのエントリにはチャネルプロセッサ７についての装置番号およびハード版数を記述する。
図３に示すプロセッサ２５に対し、操作パネル（コンソール；図示省略）等からオペレータが、例えば中央処理装置３の停止をコマンドストリングにより指示すると、ＨＣＰ２１のアプリケーション層２１Ａが、ＨＣＰ２１のシステム機能処理を行なうハイレベルコマンド層２１Ｂに対し中央処理装置３の停止を指示する。
【００４６】
そして、ハイレベルコマンド層２１Ｂには、アプリケーション層２１Ａが指示する処理内容と、それを実行するためのプログラムモジュール（マクロデータ）２３を指定するマクロ番号との対象リストと、本体系装置１０を構成する各装置の装置ＩＤとが設定され、前述のように中央処理装置３の停止を指示されると、中央処理装置３の装置ＩＤとアプリケーション層２１Ａから指示された中央処理装置３の停止を記述しているマクロデータのマクロ番号とをＨＣＰ２１のマクロ層２１Ｃにおける管理部２４に通知する。
【００４７】
管理部２４は、ハイレベルコマンド層２１Ｂから与えられた装置ＩＤに基づき、図８に示す装置版数管理テーブル３１を索引し、中央処理装置３のハード版数を認識すると、図６に示すマクロ管理テーブル３３を参照し、与えられたマクロ番号をもつエントリを選択する。
与えられたマクロ番号をもつエントリが、例えばエントリ番号１のものであるとすると、管理部２４は、エントリ番号１のエントリのサポート手順数からリンクして処理するエントリの数と、版数管理テーブル３２の先頭アドレスとを読み取る。
【００４８】
そして、図７に示す版数管理テーブル３２を参照し、認識したハード版数と一致するエントリを選択する。選択したエントリが例えばエントリ番号１のものであるとすると、管理部２４は、このエントリ番号１のエントリのマクロデータアドレスにより指定されるマクロデータの実行をプロセッサ２５に指示する。
このとき、図６に示すマクロ管理テーブル３３のエントリ番号１のエントリのサポート手順数が例えば「２」であるとすると、管理部２４は、ハード版数の異なる中央処理装置３が２台存在し、リンクして処理するエントリ数が２つであると認識し、図８に示す装置版数管理テーブルから、処理済でない装置ＩＤをもつ中央処理装置のハード版数を読み取る。
【００４９】
そして、管理部２４は、図７に示す版数管理テーブル３２のエントリ番号１のエントリの次エントリ番号欄を参照し、この次エントリ番号が、例えばエントリ番号２のエントリであれば、そのエントリの適応版数欄に記載されたハード版数が一致するか否かを調べ、一致すれば、その次エントリのマクロデータアドレスにより指定されるプログラムモジュール２３の実行をプロセッサ２５に指示する。
【００５０】
しかし、ハード版数が一致しなければ、管理部２４は、その次エントリのエントリ番号により指定されるエントリの適応版数を参照する動作を繰り返し、一致するエントリ番号のマクロデータアドレスを選択し、そのマクロデータアドレスにより指定されるプログラムモジュール２３の実行をプロセッサ８に指示する。従って、プロセッサ２５は、インタフェース回路２６、および、図１０に示すような本体系装置１０のインタフェース部４を介して中央処理装置３に対する停止処理を、指定されたプログラムモジュール（マクロデータ）２３の指示する操作手順に従って実行する。
【００５１】
次に、図９により、管理部２４の動作をより詳細に説明する。図９に示すように、マクロ管理テーブル３３のヘッダには、例えば、空きテーブル数の欄が「Ｎ−３」と記述され、総テーブル数の欄がＮと記述され、版数管理テーブル３２の空き数の欄が「Ｍ−６」と記述されている。つまり、図９に示すマクロ管理テーブル３３では、エントリ番号１〜３の３つのエントリに記述が行なわれ、それ以外のエントリは未使用であり、ヘッダの使用可能テーブルの先頭アドレスの欄には「４」が記述される。
【００５２】
そして、マクロ管理テーブル３３のエントリ１の版数管理テーブル先頭アドレスの欄には、矢印▲１▼で示すように、版数管理テーブル３２のエントリ＃１を指示するアドレスが記述され、エントリ２の版数管理テーブル先頭アドレスの欄には、矢印▲２▼で示すように、版数管理テーブル３２のエントリ＃４を指示するアドレスが記述され、エントリ３の版数管理テーブル先頭アドレスの欄には、矢印▲３▼で示すように、版数管理テーブル３２のエントリ＃５を指示するアドレスが記述されている。
【００５３】
また、マクロ管理テーブル３３のエントリ１のサポート手順数の欄には、例えば、リンクして処理するエントリ数「０００３」が記述され、マクロ番号の欄には、例えば「０００１」が記述されている。同様に、マクロ管理テーブル３３のエントリ２のサポート手順数の欄にはエントリ数「０００１」が記述され、マクロ番号の欄には「０００２」が記述されており、マクロ管理テーブル３３のエントリ３のサポート手順数の欄にはエントリ数「０００２」が記述され、マクロ番号の欄には「０００３」が記述されている。
【００５４】
版数管理テーブル３２のエントリ＃１〜＃６の適用版数の欄には、それぞれ例えば「０１０１」，「０１０２」，「０１０３」，「０１０１」，「０１０３」，「０１０４」が記述されるほか、各エントリの次エントリ番号の欄には、本実施例では続けてリンクして処理するエントリが無いものとして全て「０」が記述されている。そして、版数管理テーブル３２のエントリ＃１〜＃６のマクロデータアドレスの欄には、ＲＡＭ２７におけるプログラムモジュール（マクロデータ）２３のアドレスが記述されている。
【００５５】
従って、管理部２４は、マクロ管理テーブル３３のヘッダに続いて記述されているエントリの中で、指定されたマクロ番号をもつエントリを調べ、指定されたマクロ番号が例えば「０００１」であると、エントリ１の版数管理テーブル先頭アドレスが指示するアドレスで、矢印▲１▼で示すごとく、版数管理テーブル３２のエントリ＃１を選択する。
【００５６】
そして、マクロ管理テーブル３３のエントリ１のサポート手順数が「０００３」であるため、版数管理テーブル３２の３つのエントリ＃１〜＃３の中で、ハード版数が一致するエントリを探す。
ハード版数が例えば「０１０３」であるとすると、エントリ＃３のマクロデータアドレスが示すマクロデータ、即ち、マクロ番号１の版数０１０３用マクロデータ（プログラムモジュール２３）をＲＡＭ２７から読み出して実行する。同様に、ハード版数が例えば「０１０１」もしくは「０１０２」であるとすると、エントリ＃１もしくは＃２のマクロデータアドレスが示すマクロデータ、即ち、マクロ番号１の版数０１０１用マクロデータもしくはマクロ番号１の版数０１０２用マクロデータをＲＡＭ２７から読み出して実行する。
【００５７】
なお、図９においては、上述したマクロデータのほかに、マクロ番号２の版数０１０１用マクロデータ，マクロ番号３の版数０１０３用マクロデータ，マクロ番号３の版数０１０４用マクロデータがＲＡＭ２７（マクロ層２１Ｃ）に格納されている例を示しているが、これらのマクロデータも上述と同様にして実行されるようになっている。
【００５８】
新しい版数の被装置制御をサポートする場合、新版数の被制御装置を制御するためのマクロデータのみを作成し、管理部２４の機能によりＨＣＰ２１に追加する。
即ち、管理部２４は、図６に示すマクロ管理テーブル３３のヘッダ領域を参照して、版数管理テーブル空き数に基づきマクロデータの追加登録の可否を判定し、追加するマクロデータを、図７に示す版数管理テーブル３２の空き領域に、例えばエントリ＃Ｎ＋１として登録する。
【００５９】
そして、版数管理テーブル３２のエントリＮの次エントリ番号欄に追加したエントリ番号、即ち「Ｎ＋１」を追記する。また、マクロ管理テーブル３３のヘッダ領域の空きテーブル数から、マクロ番号の追加登録の可否を判定して、使用可能テーブルの先頭アドレスの欄を参照し、このマクロ管理テーブル３３に版数管理テーブル先頭アドレスとサポート手順数とマクロ番号とからなるエントリＮ＋１を追記する。
【００６０】
例えば、中央処理装置３のマクロデータ（プログラムモジュール）が追加・変更される場合、まず、中央処理装置３を停止し、システムから切り離してから、追加・変更されるマクロファイルをサービスプロセッサ２０（マクロ層２１Ｃ）内に追加する。そして、中央処理装置３に関するマクロ管理テーブル３３とマクロデータとの関係を前述のようにして更新する。このとき、他の装置に関するテーブルとマクロデータとの関係は変化しない。この後、中央処理装置３を再びシステムに組み込み動作可能とする。
【００６１】
上述のような追加・変更作業は、対象装置に対するマクロデータを入れ替えるだけで行なわれるので、ＨＣＰ２１の他のアプリケーションおよび動作中の他の本体系装置制御部は影響を受けないため、サービスプロセッサ２０や追加・変更対象以外のシステムを停止させることなく、ハードウエアのバージョンアップが行なわれ、新版数装置の制御が可能になる。
【００６２】
このように、本発明の一実施例によれば、一つのＨＣＰ２１により、本体系装置１０を構成する複数版数の各被制御装置の制御が可能になるので、ＨＣＰ２１を被制御装置の版数別に作成する必要が無くなってＨＣＰ２１の版数が減少し、ＨＣＰ２１の作成工数を大幅に削減できるほか、本体系装置１０のハードウエア改版時にＨＣＰ２１を改版する必要もなくなる。
【００６３】
また、ＨＣＰ２１が本体系装置１０の複数版数に対応可能になるため、ＨＣＰ２１のアプリケーション層２１Ａやハイレベルコマンド層２１Ｂのパッチ変更において、そのパッチ情報が装置版数の異なる本体系装置１０で同一となり、ＨＣＰ２１の変更工数および変更時の検証工数を大幅に削減でき、ＨＣＰ２１の改版に伴う保守作業時間を短縮できる。
【００６４】
さらに、本体系装置１０が故障した場合の保守交換部品は、故障部品と同一の装置版数である必要がなくなるため、複数種の本体系装置１０に対して用意する保守交換部品の種類を減らすことができ、保守作業にかかる費用を大幅に削減できる。
また、管理部２４の機能により、プログラムモジュール２３についての管理情報を各テーブル３２，３３に対して登録できるので、サービスプロセッサ２０の動作中にマクロ層２１Ｃのプログラムモジュール２３について随時追加・変更等の改版作業を行なえ、本体系装置１０を停止する必要がなくなり、例えばオンラインシステム等の停止できないシステムに対するＨＣＰ２１の改版も可能になる。
【００６５】
さらに、アプリケーション層２１Ａの変換プログラム３７により、マクロソース４１をコマンドストリング文法規則に合った形式に変換し、そのマクロソース４１をサービスプロセッサ２０上で起動して実行できるので、プログラムモジュール２３をＨＣＰ２１のマクロ層２１Ｃに登録する前に、プログラムモジュール２３よりも可読性の高いマクロソース４１の状態で、実機上にてそのマクロソース４１のステップ実行による動作検証を行なえ、より効果的なマクロデバッグが可能になる利点もある。
【００６６】
なお、プロセッサ２５は、上述した各種動作を行なう上でオペレータが必要とする情報をディスプレイ３０上に表示するようになっている。
【００６７】
【発明の効果】
以上詳述したように、本発明のサービスプロセッサによれば、一つのＨＣＰにより、本体系装置を構成する複数版数の各被制御装置の制御が可能になるので、ＨＣＰの版数が減少しＨＣＰの作成工数が大幅に削減されるほか、本体系装置の改版時にＨＣＰを改版する必要もなくなる。
【００６８】
また、ＨＣＰが本体系装置の複数版数に対応可能になるため、ＨＣＰのパッチ変更に際してそのパッチ情報が装置版数の異なる本体系装置で同一となり、ＨＣＰの変更工数および変更時の検証工数を大幅に削減でき、ＨＣＰの改版に伴う保守作業時間を短縮できる効果もある。
さらに、本体系装置が故障した場合の保守交換部品は、故障部品と同一の装置版数である必要がなくなるため、複数種の本体系装置に対して用意する保守交換部品の種類を減らすことができ、保守作業にかかる費用を大幅に削減できる効果もある（請求項１，３）。
【００６９】
また、管理部の機能により、プログラムモジュールについての管理情報を各テーブルに対して登録できるので、サービスプロセッサの動作中にマクロ層のプログラムモジュールについて随時追加・変更等の改版作業を行なえ、本体系装置を停止する必要がなくなり、停止できないシステムに対するＨＣＰの改版も可能になる（請求項２）。
【００７０】
さらに、制御手順を変換プログラムにてコマンドストリング文法規則に合った形式に変換することにより、その制御手順をサービスプロセッサ上で実行できるので、プログラムモジュールをマクロ層に登録する前に、プログラムモジュールよりも可読性の高いマクロソースの状態で、実機上にてその制御手順のステップ実行による動作検証を行なえ、より効果的なマクロデバッグが可能になる（請求項４）。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本発明の一実施例としてのサービスプロセッサの機能的な構成を示すブロック図である。
【図３】本実施例のサービスプロセッサのハードウエア構成を示すブロック図である。
【図４】本実施例のマクロソースからコマンドストリングへの変換例を示す図である。
【図５】本実施例のプログラムモジュール（マクロデータ）作成手順を説明するための図である。
【図６】本実施例のマクロ管理テーブルの構成を示す図である。
【図７】本実施例の版数管理テーブル（第２のテーブル）の構成を示す図である。
【図８】本実施例の装置版数管理テーブル（第１のテーブル）の構成を示す図である。
【図９】本実施例の管理部の動作を説明するための図である。
【図１０】従来技術の一例を示すブロック図である。
【符号の説明】
３  中央処理装置（被制御装置）
４  インタフェース部
５  メモリ制御装置（被制御装置）
６  主記憶装置（被制御装置）
７  チャネルプロセッサ（被制御装置）
１０  本体系装置
１１  被制御装置
２０  サービスプロセッサ
２１  ハードウエア制御プログラム（ＨＣＰ）
２１Ａ  アプリケーション層（マンマシンインタフェース部）
２１Ｂ  ハイレベルコマンド層（コマンド処理部）
２１Ｃ  マクロ層（ハードウエア制御部）
２２  制御ドライバ
２３  プログラムモジュール
２４  管理部
２５  プロセッサ
２６  インタフェース回路
２７  ＲＡＭ
２８  ディスク制御回路
２９  ディスク装置
３０  ディスプレイ
３１  装置版数管理テーブル（第１のテーブル）
３２  版数管理テーブル（第２のテーブル）
３３  マクロ管理テーブル（第３のテーブル）
３４  コマンドストリング
３５  コマンドストリング解釈部（インタプリタ）
３６  アプリケーションプログラム
３７  変換プログラム（コードコンバータ）
４０  開発用計算機
４１  マクロソース
４２  マクロジェネレータ（マクロ翻訳ソフトウエア，翻訳プログラム）
４３  プログラムオブジェクト（プログラムモジュール）
４４  ファイル名管理テーブル
【図１】
0003595582.tif 000002
【図２】
0003595582.tif 000003
【図３】
0003595582.tif 000004
【図４】
0003595582.tif 000005
【図５】
0003595582.tif 000006
【図６】
0003595582.tif 000007
【図７】
0003595582.tif 000008
【図８】
0003595582.tif 000009
【図９】
0003595582.tif 000010
【図１０】
0003595582.tif 000011