(57)【要約】      （修正有）【課題】制御プログラムを変更する場合に、データの入出力処理を止めずに変更する。【解決手段】コンピュータとの間で通信を行うための第１及び第２の通信ポートと、第１及び第２の通信ポートをそれぞれ制御する第１及び第２のプロセッサと、コンピュータから第１及び第２の通信ポートにそれぞれ送られたコマンドをそれぞれ記憶するための第１及び第２の待ち行列をそれぞれ記憶する第１及び第２の記憶手段と、第１のプロセッサがアクセスする第１の不揮発性メモリとを備え、第１及び第２のプロセッサはそれぞれ第１及び第２の待ち行列に格納したコマンドを実行することによりコンピュータとの間の通信を制御する記憶装置の制御装置において、第１の待ち行列に格納されたコマンドの実行を第２のプロセッサに担当させ、第１の待ち行列に格納されたコマンドの実行を第２のプロセッサに担当させている間に、第１の不揮発性メモリに記憶されるデータを変更する。【選択図】      図２
2004151761.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータとの間で通信を行うための第１の通信ポートと、
前記第１の通信ポートを制御する第１のプロセッサと、
前記コンピュータから前記第１の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第１の待ち行列を記憶する第１の記憶手段と、
前記第１のプロセッサがアクセスする第１の不揮発性メモリと、
前記コンピュータとの間で通信を行うための第２の通信ポートと、
前記第２の通信ポートを制御する第２のプロセッサと、
前記コンピュータから前記第２の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第２の待ち行列を記憶する第２の記憶手段と
を備え、
前記第１のプロセッサは、前記第１の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御し、
前記第２のプロセッサは、前記第２の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御する
記憶装置の制御装置において、
前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させる手段と、
前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させている間に、前記第１の不揮発性メモリに記憶されるデータを変更する手段と
を備えることを特徴とする記憶装置の制御装置。
【請求項２】
前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させる手段は、
前記第１のプロセッサが前記第１の待ち行列に格納された前記コマンドを前記第２の待ち行列に転送し、前記第２のプロセッサが前記第２の待ち行列から前記コマンドを読み出して実行する手段であることを特徴とする請求項１に記載の記憶装置の制御装置。
【請求項３】
前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させる手段は、
前記第２のプロセッサが前記第１の待ち行列から前記コマンドを読み出して実行する手段であることを特徴とする請求項１に記載の記憶装置の制御装置。
【請求項４】
前記第１の不揮発性メモリに記憶されるデータを変更する手段は、
前記第１のプロセッサが、外部から入力されるデータを前記第１の不揮発性メモリに記憶されるデータに上書きする手段である
ことを特徴とする請求項１に記載の記憶装置の制御装置。
【請求項５】
コンピュータとの間で通信を行うための第１の通信ポートと、
前記第１の通信ポートを制御する第１のプロセッサと、
前記コンピュータから前記第１の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第１の待ち行列を記憶する第１の記憶手段と、
前記第１のプロセッサがアクセスする第１の不揮発性メモリと、
前記コンピュータとの間で通信を行うための第２の通信ポートと、
前記第２の通信ポートを制御する第２のプロセッサと、
前記コンピュータから前記第２の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第２の待ち行列を記憶する第２の記憶手段と
を備え、
前記第１のプロセッサは、前記第１の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御し、
前記第２のプロセッサは、前記第２の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御する
記憶装置の制御装置の制御方法であって、
前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させるステップと、
前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させている間に、前記第１の不揮発性メモリに記憶されるデータを変更するステップと
を備えることを特徴とする記憶装置の制御装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置の制御装置、及び記憶装置の制御装置の制御方法に関する。
【０００２】
【従来の技術】
コンピュータシステムは、一旦稼動を開始した後も制御プログラムを変更することにより新たな機能の追加等を行うことができる。通常は、新たな制御プログラムを装置に組み込むために、当該装置の再起動が行われる。
しかしながら２４時間３６５日の連続運転が求められるようなコンピュータシステムにおいてはシステムを停止させることはできない。
そのため、従来からコンピュータシステムにおける記憶装置の制御装置の制御プログラムを変更する場合に、データの入出力処理を止めずに制御プログラムを変更する技術が提案されている（例えば特許文献１参照）。
【０００３】
【特許文献１】
特開平７−３０６８４４号公報
【０００４】
【発明が解決しようとする課題】
しかしながら従来の技術では、コンピュータから記憶装置の制御装置へのデータ転送パスが複数あることを利用し、全体としてはコンピュータからのデータ入出力処理を止めずに制御プログラムを変更しているものの、制御プログラムの変更に関わるデータ転送パスについてはコンピュータからのデータ入出力処理を停止している。そのため、コンピュータは当該データ転送パスを迂回してデータの入出力を行わなければならなかった。そしてコンピュータにデータ転送パスを迂回させるためにコンピュータの設定変更を行う必要があった。
本発明は、記憶装置の制御装置及び記憶装置の制御装置の制御方法を提供することを主たる目的とする。
【０００５】
【課題を解決するための手段】
コンピュータとの間で通信を行うための第１の通信ポートと、前記第１の通信ポートを制御する第１のプロセッサと、前記コンピュータから前記第１の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第１の待ち行列を記憶する第１の記憶手段と、前記第１のプロセッサがアクセスする第１の不揮発性メモリと、前記コンピュータとの間で通信を行うための第２の通信ポートと、前記第２の通信ポートを制御する第２のプロセッサと、前記コンピュータから前記第２の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第２の待ち行列を記憶する第２の記憶手段とを備え、前記第１のプロセッサは、前記第１の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御し、前記第２のプロセッサは、前記第２の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御する記憶装置の制御装置において、前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させる手段と前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させている間に、前記第１の不揮発性メモリに記憶されるデータを変更する手段とを備える。
【０００６】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【０００７】
【発明の実施の形態】
＝＝＝開示の概要＝＝＝
本明細書の記載により少なくとも次のことが明らかにされる。
本実施の形態の一形態は、コンピュータとの間で通信を行うための第１の通信ポートと、前記第１の通信ポートを制御する第１のプロセッサと、前記コンピュータから前記第１の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第１の待ち行列を記憶する第１の記憶手段と、前記第１のプロセッサがアクセスする第１の不揮発性メモリと、前記コンピュータとの間で通信を行うための第２の通信ポートと、前記第２の通信ポートを制御する第２のプロセッサと、前記コンピュータから前記第２の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第２の待ち行列を記憶する第２の記憶手段とを備え、前記第１のプロセッサは、前記第１の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御し、前記第２のプロセッサは、前記第２の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御する記憶装置の制御装置において、前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させる手段と前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させている間に、前記第１の不揮発性メモリに記憶されるデータを変更する手段とを備えることを特徴とする。
【０００８】
このような態様により、コンピュータと記憶装置の制御装置との間のデータ転送を停止させることなく、不揮発性メモリに記憶されるデータ、例えばプロセッサの制御プログラムを変更することができる。これにより、２４時間３６５日の連続運転が求められるようなコンピュータシステムにおいても、記憶装置へのデータアクセスを停止させることなくシステムの仕様変更を行うことができる。またコンピュータからのデータ転送パスの変更も不要なため、コンピュータには何らの変更も必要とせずに制御プログラムを変更することが可能となる。これにより、例えば遠隔地からの操作により通信網を介して制御プログラムを変更することも可能となる。
【０００９】
さらに本態様によれば、データ転送パスの動的切り替えが困難な通信プロトコル、例えばファイバチャネルやＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）等、を採用するオープン系コンピュータに接続される記憶装置の制御装置であっても、記憶装置へのデータアクセスを止めることなく制御プログラムの変更が可能となる。そのため、接続されるコンピュータがオープン系であってもメインフレーム系であっても記憶装置へのデータアクセスを止めることなく制御プログラムの変更を行うことができる。
【００１０】
また本実施の形態の一形態は、前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させる手段は、前記第１のプロセッサが前記第１の待ち行列に格納された前記コマンドを前記第２の待ち行列に転送し、前記第２のプロセッサが前記第２の待ち行列から前記コマンドを読み出して実行する手段であることを特徴とする。
【００１１】
このような態様により、第１及び第２の両方の通信ポートを介したコンピュータとのデータ転送のためのコマンドを第２のプロセッサが第２の待ち行列から読み出して実行することができる。これにより、第１の通信ポートを介したデータ転送を停止させることなく、第１のプロセッサの制御プログラムを変更することが可能となる。
【００１２】
また本実施の形態の一形態は、前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させる手段は、前記第２のプロセッサが前記第１の待ち行列から前記コマンドを読み出して実行する手段であることを特徴とする。
【００１３】
このような態様によっても、第２のプロセッサは第１及び第２の両方の通信ポートを介したコンピュータとのデータ転送のためのコマンドを実行することができる。これにより、第１の通信ポートを介したデータ転送を停止させることなく、第１のプロセッサの制御プログラムを変更することが可能となる。
【００１４】
また本実施の形態の一形態は、前記第１の不揮発性メモリに記憶されるデータを変更する手段は、前記第１のプロセッサが、外部から入力されるデータを前記第１の不揮発性メモリに記憶されるデータに上書きする手段であることを特徴とする。
【００１５】
また本実施の形態の一形態は、コンピュータとの間で通信を行うための第１の通信ポートと、前記第１の通信ポートを制御する第１のプロセッサと、前記コンピュータから前記第１の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第１の待ち行列を記憶する第１の記憶手段と、前記第１のプロセッサがアクセスする第１の不揮発性メモリと、前記コンピュータとの間で通信を行うための第２の通信ポートと、前記第２の通信ポートを制御する第２のプロセッサと、前記コンピュータから前記第２の通信ポートに送られた前記通信を行うためのコマンドを記憶するための第２の待ち行列を記憶する第２の記憶手段とを備え、前記第１のプロセッサは、前記第１の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御し、前記第２のプロセッサは、前記第２の待ち行列に格納した前記コマンドを実行することにより前記コンピュータとの間の前記通信を制御する記憶装置の制御装置の制御方法であって、前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させるステップと、前記第１の待ち行列に格納された前記コマンドの実行を前記第２のプロセッサに担当させている間に、前記第１の不揮発性メモリに記憶されるデータを変更するステップとを備えることを特徴とする。
【００１６】
＝＝＝全体構成例＝＝＝
まず、本実施の形態に係る記憶装置システムの１構成例を示すブロック図を図１に示す。
本実施の形態に係る記憶装置システム１０００は、ディスク制御装置（記憶装置の制御装置）２００、及び記憶装置３００を備える。ディスク制御装置２００は、チャネル制御部４００、ディスク制御部８００、サービスプロセッサ（ＳＶＰ：ＳｅｒＶｉｃｅ  Ｐｒｏｃｅｓｓｏｒ）５００、共有メモリ（ＳＭ：Ｓｈａｒｅｄ  Ｍｅｍｏｒｙ）６００、キャッシュメモリ７００、及び内部ネットワーク９００を備える。
【００１７】
コンピュータ１００はディスク制御装置２００を介して記憶装置３００にデータを記憶する。コンピュータ１００は、メインフレーム系コンピュータとすることもできるし、オープン系コンピュータとすることもできる。またコンピュータ１００とディスク制御装置２００は、ネットワークを介して接続されるようにすることもできるし、直接に接続されるようにすることもできる。この場合ネットワークとしては、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や、インターネット、専用ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等、様々なネットワークを採用することができる。通信プロトコルとしては、ファイバチャネルやＳＣＳＩ、ＥＳＣＯＮ、ＦＩＣＯＮ等、様々なものを採用することができる。
【００１８】
チャネル制御部４００はコンピュータ１００と接続され、コンピュータ１００との間でデータを授受する。チャネル制御部４００がコンピュータ１００から受信したデータはディスク制御部８００を介して記憶装置３００に書き込まれる。またコンピュータ１００から読み出し要求のあったデータを記憶装置３００からディスク制御部８００を介して読み出して、コンピュータ１００に送信する。なおチャネル制御部４００やディスク制御部８００、コンピュータ１００は２台に限られず、それぞれ任意の台数とすることができる。
【００１９】
キャッシュメモリ７００は、チャネル制御部４００とディスク制御部８００との間で授受されるデータを一時的に記憶し記憶装置３００へのアクセス頻度を減らすことにより、コンピュータ１００からのデータアクセスを高速化するために用いられる。共有メモリ６００は、全てのチャネル制御部４００からアクセス可能なメモリであり、制御情報の記憶等に用いられる。
【００２０】
チャネル制御部４００、ディスク制御部８００、キャッシュメモリ７００、及び共有メモリ６００は、内部ネットワーク９００により相互に接続されている。内部ネットワーク９００としてはどのようなトポロジのものでも採用することもでき、例えばクロスバ結合やバス結合とすることができる。なお内部ネットワーク９００を設けずに、チャネル制御部４００やディスク制御部８００等を直接に接続する態様とすることもできる。
【００２１】
サービスプロセッサ５００は、ディスク制御装置２００や記憶装置３００を保守・管理するためのコンピュータである。例えばチャネル制御部４００において実行される制御プログラムの変更は、サービスプロセッサ５００からの指示により行われる。サービスプロセッサ５００は、ディスク制御装置２００に内蔵されている形態とすることもできるし、別体とすることもできる。またサービスプロセッサ５００は、ディスク制御装置２００、記憶装置３００の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【００２２】
記憶装置３００は、コンピュータ１００に提供するための記憶資源３０１を備えている。記憶資源３０１としては、例えばハードディスク装置やフレキシブルディスク装置、磁気テープ、半導体記憶装置等様々なものを採用することができる。
【００２３】
＝＝＝ディスク制御装置の構成例＝＝＝
次に、本実施の形態に係るディスク制御装置２００の１構成例を示すブロック図を図２に示す。
チャネル制御部４００がコンピュータ１００と接続されている。また、チャネル制御部４００、共有メモリ６００、キャッシュメモリ７００、サービスプロセッサ５００が相互に結合されている。ディスク制御部８００、内部ネットワーク９００は図面の簡単化のために省略されている。
【００２４】
本実施の形態に係るディスク制御装置２００においては、２台のチャネル制御部４００、すなわちチャネル制御部Ａ４００ａとチャネル制御部Ｂ４００ｂとが設けられている。各チャネル制御部４００ａ及び４００ｂは、ＩＦ（ＩｎｔｅｒＦａｃｅ）コントローラ（通信ポート）４０１、バスコントローラ４０２、プロセッサ４０３、ローカルメモリ４０４、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送回路４０７を備える。
【００２５】
バスコントローラ４０２は、各チャネル制御部４００の内部でのデータ転送を制御すると共に、各チャネル制御部４００間を相互に接続する。
【００２６】
ＩＦコントローラ４０１はコンピュータ１００との間でデータの送受信を行うための通信ポートとして機能する。ＩＦコントローラ４０１がコンピュータ１００から受信したデータはＤＭＡ転送回路４０７を経由してキャッシュメモリ７００に転送される。またキャッシュメモリ７００に記憶されているデータは、ＤＭＡ転送回路４０７を介してＩＦコントローラ４０１に取り込まれ、コンピュータ１００に転送される。ＤＭＡ転送回路４０７にはＩＦコントローラ４０１とキャッシュメモリ７００との間で行われるデータ転送のためのバッファ４０８が備えられている。
【００２７】
このようなデータ転送は、コンピュータ１００から送られてくるデータ転送のためのコマンド（リードコマンド、ライトコマンド等）に従って行われる。ＩＦコントローラ４０１は、コンピュータ１００から送られてきたコマンドをローカルメモリ４０４のＪＯＢキュー４０６に書き込む。プロセッサ４０３はＪＯＢキュー４０６に書き込まれたコマンドを読み出し、コマンドに従ってＩＦコントローラ４０１やＤＭＡ転送回路４０７を制御することにより、コンピュータ１００との間のデータ転送を制御する。
【００２８】
ローカルメモリ４０４にはマイクロプログラム（制御プログラム）４０５が格納されている。マイクロプログラム４０５はプロセッサ４０３の動作を司るためのプログラム（データ）である。従ってマイクロプログラム４０５を変更することにより、プロセッサ４０３の動作を変えることができる。なおローカルメモリ４０４はフラッシュメモリ等のデータ書き換えが可能な不揮発性メモリであり、電力の供給が無くても記憶データを保持することができる。もちろんローカルメモリ４０４を揮発性メモリで構成し、ローカルメモリ４０４への供給電力をバッテリでバックアップすることによりディスク制御装置２００の電源を遮断しても記憶データを保持するようにすることもできる。
【００２９】
マイクロプログラム４０５の変更は、新規マイクロプログラム４１４をサービスプロセッサ５００が共有メモリ６００の所定のアドレスに書き込むことにより行われる。プロセッサ４０３は、起動時にローカルメモリ４０４の所定のアドレスに記憶されているマイクロプログラム４０５のバージョンと、共有メモリ６００の所定のアドレスに記憶されている新規マイクロプログラム４１４のバージョンを比較する。プロセッサ４０３が毎回の起動時にこのような動作を行うのは、マイクロプログラム４０５または新規マイクロプログラム４１４にそのように記述されているからである。共有メモリ６００の所定のアドレスにバージョンが記憶されていないか又は両プログラムのバージョンが同一の場合は、ローカルメモリ４０４に記憶されているマイクロプログラム４０５に従ってプロセッサ４０３は動作する。
【００３０】
一方、両プログラムのバージョンが異なっている場合には共有メモリ６００に記憶されている新規マイクロプログラム４１４をローカルメモリ４０４の所定のアドレスにコピーする。これによりプロセッサ４０３は新規マイクロプログラム４１４に従った動作をするようになる。なおプロセッサ４０３に、新規マイクロプログラム４１４を共有メモリ６００からローカルメモリ４０４にコピーさせるのは、古いマイクロプログラム４０５とすることもできるし、新規マイクロプログラム４１４とすることもできる。前者の場合は、新規マイクロプログラム４１４をローカルメモリ４０４にコピーし終えた段階でプロセッサを再起動（リブート）し、新規マイクロプログラム４１４をプロセッサ４０３に認識させることが必要となる。後者の場合は、新規マイクロプログラム４１４をローカルメモリ４０４にコピーしつつ、プロセッサ４０３は新規マイクロプログラム４１４を認識する。この場合再起動は不要である。
【００３１】
＝＝＝マイクロプログラムの変更処理＝＝＝
次に、本実施の形態に係るマイクロプログラムの変更処理の流れを示すフローチャートを図３に示す。ここでは、図２におけるプロセッサＡ４０３ａのマイクロプログラム４０５を変更する場合を例に説明する。
【００３２】
プロセッサＡ４０３ａのマイクロプログラム４０５の変更前は、プロセッサＡ４０３ａは、ＩＦコントローラＡ４０１ａを介したチャネル制御部Ａ４００ａのデータ入出力を制御しており、プロセッサＢ４０３ｂは、ＩＦコントローラＢ４０１ｂを介したチャネル制御部Ｂ４００ｂのデータ入出力を制御している（Ｓ１００１、Ｓ１００２）。
【００３３】
プロセッサＡ４０３ａのマイクロプログラム４０５を変更する場合には、まずサービスプロセッサ５００が新規マイクロプログラム４１４を共有メモリ６００に書き込む。そしてプロセッサＡ４０３ａに対してマイクロプログラムの交換指示を送信する（Ｓ１０００、Ｓ１００３）。
【００３４】
交換指示を受け取ったプロセッサＡ４０３ａは、仕掛かり中のＪＯＢ（入出力処理）はそのまま継続して実行するが、コンピュータ１００からの新たなＪＯＢは実行しない。新たなＪＯＢは、ローカルメモリ４０４ａ上に設けられるＪＯＢキューＡ４０６ａとは別の、新規ＪＯＢキューＡ４１３ａに格納しておく（Ｓ１００４）。なおここで、サービスプロセッサ５００から交換指示を受信した時点で、ＪＯＢキューＡ４０６ａに格納されている未処理ＪＯＢについては、新規ＪＯＢキューＡ４１３ａに移し替えるようにすることもできるし、仕掛かり中のＪＯＢとして処理を行ってしまうこともできる。
【００３５】
仕掛かり中のＪＯＢの処理が終了したら（Ｓ１００５）、プロセッサＡ４０３ａはプロセッサＢ４０３ｂに対して、チャネル制御部Ａ４００ａの入出力処理を行うよう指示を送信する。そして新規ＪＯＢキューＡ４１３ａに格納されているＪＯＢ（入出力コマンド）をローカルメモリＢ４０４ｂのＪＯＢキューＢ４０６ｂに転送する（Ｓ１００６）。これによりプロセッサＢ４０３ｂは、チャネル制御部Ａ４００ａの入出力処理を行うことができるようになる。なおここで、新規ＪＯＢキューＡ４１３ａに格納されているＪＯＢをローカルメモリＢ４０４ｂのＪＯＢキューＢ４０６ｂに転送しない態様とすることもできる。この場合プロセッサＢ４０３ｂは、ローカルメモリＡ４０４ａの新規ＪＯＢキューＡ４１３ａを参照することにより、チャネル制御部Ａ４００ａの入出力処理を行うことになる。プロセッサＢ４０３ｂは、上記指示及びＪＯＢをプロセッサＡ４０３ａから受け取ったらサービスプロセッサ５００に対してチャネル制御部Ａ４００ａの入出力処理を行うことを報告する（Ｓ１００７）。
【００３６】
報告を受け取ったサービスプロセッサ５００は、プロセッサＡ４０３ａに対して、再起動（リブート）の指示を行う（Ｓ１００９）。
【００３７】
そうすると、プロセッサＡ４０３ａは、ローカルメモリ４０４ａの所定のアドレスに記憶されているマイクロプログラム４０５のバージョンと、共有メモリ６００の所定のアドレスに記憶されている新規マイクロプログラム４１４のバージョンを比較する。ここで両プログラムのバージョンが異なっていれば、共有メモリ６００に記憶されている新規マイクロプログラム４１４をローカルメモリ４０４ａの所定のアドレスにコピーする（Ｓ１０１０）。新規マイクロプログラム４１４をローカルメモリ４０４ａにコピーし終えたら、プロセッサＡ４０３ａは再起動する（Ｓ１０１１、Ｓ１０１２）。これによりプロセッサＡ４０３ａの動作を司るマイクロプログラム４０５を新規マイクロプログラム４１４に変更することができる。
【００３８】
なお前述した通りプロセッサＡ４０３ａは、サービスプロセッサ５００から再起動指示を受けた段階で直ちに再起動を行うようにすることもできる。この場合は、共有メモリ６００に記憶されている新規マイクロプログラム４１４をローカルメモリ４０４ａにコピーしつつ、新規マイクロプログラム４１４の組み込みが同時に行われる。
【００３９】
プロセッサＡ４０３ａがマイクロプログラムの変更処理を行っている間は、プロセッサＡ４０３ａはＩＦコントローラＡ４０１ａの制御を行うことができない。そのため従来の技術では、コンピュータ１００との間のデータ入出力制御を継続させるために、コンピュータ１００からのデータ転送経路をＩＦコントローラＡ４０１ａとは別のＩＦコントローラ、例えばＩＦコントローラＢ４０１ｂへ変更させる必要があった。
【００４０】
しかし本実施の形態に係るマイクロプログラムの変更においては、データ転送経路の変更は不要である。なぜならプロセッサＢ４０３ｂがＩＦコントローラＡ４０１ａの制御を行うからである。すなわちプロセッサＢ４０３ｂは、プロセッサＡ４０３ａがマイクロプログラムの変更を行っている間、コンピュータ１００とＩＦコントローラＢ４０１ｂとの間のデータ転送の処理に加え、コンピュータ１００とＩＦコントローラＡ４０１ａとの間のデータ転送の処理も行うからである（Ｓ１００８）。
【００４１】
プロセッサＢ４０３ｂは、ローカルメモリＡ４０４ａからローカルメモリＢ４０４ｂに移し換えた上記ＪＯＢを処理することにより、ＩＦコントローラＡ４０１ａとコンピュータ１００との間のデータ転送の処理を行う。またプロセッサＢ４０３ｂは、ローカルメモリＡ４０４ａの新規ＪＯＢキューＡ４１３ａを定期的に参照し、新規ＪＯＢキューＡ４１３ａに新たなＪＯＢがあるかどうかをチェックする。これによりコンピュータ１００からチャネル制御部Ａ４００ａに継続して送られてくる新たなＪＯＢの処理を行う。新規ＪＯＢキューＡ４１３ａに新たなＪＯＢが格納されている場合には、当該ＪＯＢをローカルメモリＡ４０４ａからローカルメモリＢ４０４ｂに移し換えてデータ転送の処理を行う（Ｓ１００８）。もちろん、新規ＪＯＢキューＡ４１３ａに格納されている新規ＪＯＢをローカルメモリＢ４０４ｂに移し換えない態様とすることもできる。
【００４２】
ＩＦコントローラＡ４０１ａを介してコンピュータ１００との間で授受されるデータは、ＤＭＡ転送回路Ａ４０７ａを経由するようにすることもできるし、ＤＭＡ転送回路Ｂ４０７ｂを経由するようにすることもできる。
【００４３】
プロセッサＡ４０３ａのマイクロプログラムの変更が終了したら（Ｓ１０１２）、プロセッサＡ４０３ａは、プロセッサＢ４０３ｂに対して、ＩＦコントローラＡ４０１ａを介したチャネル制御部Ａ４００ａの入出力処理をプロセッサＡ４０３ａに戻すよう、指示を送信する（Ｓ１０１４）。
【００４４】
そうすると、指示を受け取ったプロセッサＢ４０３ｂは、仕掛かり中のチャネル制御部Ａ４００ａのＪＯＢはそのまま継続して実行するが、新たにチャネル制御部Ａ４００ａがコンピュータ１００から受け取ったＪＯＢは実行しない。すなわちローカルメモリＡ４０４ａの新規ＪＯＢキューＡ４１３ａに新たなＪＯＢがあっても、ローカルメモリＢ４０４ｂへの移し換えは行わない。これ以降にチャネル制御部Ａ４００ａがコンピュータ１００から受け取ったＪＯＢはローカルメモリＡ４０４ａのＪＯＢキューＡ４０６ａに格納するようにする（Ｓ１０１４）。
【００４５】
プロセッサＢ４０３ｂは、仕掛かり中のチャネル制御部Ａ４００ａのＪＯＢの処理が終了したら（Ｓ１０１５）、プロセッサＡ４０３ａに対してチャネル制御部Ａ４００ａの入出力処理を返還する旨の送信を行う（Ｓ１０１６）。続いてプロセッサＡ４０３ａはサービスプロセッサ５００に対してマイクロプログラムの変更を終了した旨の報告を行う（Ｓ１０１７）。
【００４６】
以上でプロセッサＡ４０３ａのマイクロプログラムの変更処理が終了する。その後は、プロセッサＡ４０３ａはＩＦコントローラＡ４０１ａを介したチャネル制御部Ａ４００ａのデータ入出力を制御し、プロセッサＢ４０３ｂはＩＦコントローラＢ４０１ｂを介したチャネル制御部Ｂ４００ｂのデータ入出力を制御する（Ｓ１０１８、Ｓ１０１９）。
プロセッサＢ４０３ｂのマイクロプログラム４０５を変更する場合も同様である。
【００４７】
＝＝＝ディスク制御装置の他の構成例＝＝＝
次に、本実施の形態に係るディスク制御装置２００の他の構成例を示すブロック図を図４に示す。
図４の構成例においては、チャネル制御部Ａ４００ａ及びチャネル制御部Ｂ４００ｂは、それぞれ４台のＩＦコントローラ（Ｉ／Ｆ  Ｃｏｎｔｒｏｌｌｅｒ）４０１、４台のプロセッサ４０３、及び４台のローカルメモリ（ＬＭ）４０４を備えている。そして、各コンポーネントを結合するバスの規格としてはＰＣＩ−Ｘ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）が採用されている。
【００４８】
このような構成の場合のマイクロプログラムの交換は、以下に示すような態様で行うことができる。
すなわち第１の態様は、図２及び図３で示したのと同様、チャネル制御部Ａ４００ａに属するあるプロセッサＡ４０３ａのマイクロプログラムを交換している間、当該プロセッサＡ４０３ａがそれまで行っていたコンピュータ１００との間のデータ転送の制御を、チャネル制御部Ｂ４００ｂに属するあるプロセッサＢ４０３ｂに行わせる態様である。このような態様によれば、コンピュータ１００とディスク制御装置２００との間のデータ転送を停止させることなく、さらにコンピュータ１００とディスク制御装置２００との間のデータ転送パスに何らの変更を必要とすることなく、ディスク制御装置２００のマイクロプログラムを変更することができる。
【００４９】
また第２の態様は、同一チャネル制御部内のプロセッサを用いて上記マイクロプログラムの変更を行う態様である。このような態様によれば、チャネル制御部４００を１台しか備えていないディスク制御装置２００においても、コンピュータ１００とディスク制御装置２００との間のデータ転送を停止させることなく、さらにコンピュータ１００とディスク制御装置２００との間のデータ転送パスに何らの変更を必要とすることなく、ディスク制御装置２００のマイクロプログラムを変更することができる。
【００５０】
さらに図４に示す構成例によれば、コンピュータ１００とディスク制御装置２００との間のデータ転送を停止させることなく、さらにコンピュータ１００とディスク制御装置２００との間のデータ転送パスに何らの変更を必要とすることなく、複数のプロセッサのマイクロプログラムを同時に交換することもできる。
【００５１】
以上本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００５２】
【発明の効果】
記憶装置の制御装置、及び記憶装置の制御装置の制御方法を提供することができる。
【図面の簡単な説明】
【図１】本実施の形態に係る記憶装置システムの１構成例を示すブロック図である。
【図２】本実施の形態に係るディスク制御装置の１構成例を示すブロック図である。
【図３】本実施の形態に係るマイクロプログラムの変更処理の流れを示すフローチャートである。
【図４】本実施の形態に係るディスク制御装置の他の構成例を示すブロック図である。
【符号の説明】
１００    コンピュータ
２００    ディスク制御装置
３００    記憶装置
３０１    記憶資源
４００    チャネル制御部
４０１    ＩＦコントローラ
４０２    バスコントローラ
４０３    プロセッサ
４０４    ローカルメモリ
４０５    マイクロプログラム
４０６    ＪＯＢキュー
４０７    ＤＭＡ転送回路
４０８    バッファ
４０９    ＰＣＩ−Ｘ
４１０    共有メモリパス
４１１    キャッシュ制御パス
４１２    キャッシュデータパス
４１３    新規ＪＯＢキュー
４１４    新規マイクロプログラム
５００    サービスプロセッサ
６００    共有メモリ
７００    キャッシュメモリ
８００    ディスク制御部
９００    内部ネットワーク
１０００  記憶装置システム
【図１】
2004151761.tif 000003
【図２】
2004151761.tif 000004
【図３】
2004151761.tif 000005
【図４】
2004151761.tif 000006