(57)【要約】      （修正有）【課題】各プロセッサにより実行されるプログラムを効率よく供給する。【解決手段】２以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成されるコンピュータに、少なくとも２以上の前記プロセッサにより、前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送し、前記プロセッサにより、前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元し、前記プロセッサにより、復元した前記プログラムを前記第一のメモリに記憶させるようにする。【選択図】      図１
2004341725.tif 000002
【特許請求の範囲】
【請求項１】
２以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成されるコンピュータの制御方法において、
少なくとも２以上の前記プロセッサが、前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送するステップと、
前記プロセッサが、前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記プロセッサが、復元した前記プログラムを前記第一のメモリに記憶させるステップと、を有することを特徴とするコンピュータの制御方法。
【請求項２】
請求項１に記載のコンピュータの制御方法において、
前記分割データの前記第二のメモリへの転送を担当させる前記プロセッサを前記各プロセッサの処理負荷に応じて決定すること、を特徴とするコンピュータの制御方法。
【請求項３】
請求項１に記載のコンピュータの制御方法において、
前記各プロセッサに担当させる分割データのデータサイズを前記プロセッサの処理負荷に応じて変化させることを特徴とするコンピュータの制御方法。
【請求項４】
情報処理装置との間で通信を行う２以上の通信制御部と、ディスクドライブに対するデータ入出力を行うディスク制御部と、前記各通信制御部がアクセス可能な共有メモリと、前記各通信制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリと、を備えて構成されるストレージ制御装置の制御方法において、
少なくとも２以上の前記通信制御部が、前記通信制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送するステップと、
前記通信制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記通信制御部が、復元した前記プログラムを前記通信制御部に記憶させるステップと、
を有することを特徴とするストレージ制御装置の制御方法。
【請求項５】
情報処理装置との間で通信を行う通信制御部と、ディスクドライブに対するデータ入出力を行う２以上のディスク制御部と、前記各ディスク制御部がアクセス可能な共有メモリと、前記通信制御部及び前記各ディスク制御部がアクセス可能なキャッシュメモリと、を備えて構成されるストレージ制御装置の制御方法において、
少なくとも２以上の前記ディスク制御部が、前記ディスク制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送するステップと、
前記ディスク制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記ディスク制御部が、復元した前記プログラムを前記通信制御部に記憶させるステップと、を有することを特徴とするストレージ制御装置の制御方法。
【請求項６】
情報処理装置との間で通信を行う通信制御部と、ディスクドライブに対するデータ入出力を行うディスク制御部と、前記通信制御部及び前記ディスク制御部がアクセス可能な共有メモリと、前記通信制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリと、を備えて構成されるストレージ制御装置の制御方法において、
前記通信制御部もしくは前記ディスク制御部が、前記通信制御部もしくは前記ディスク制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送するステップと、
前記通信制御部もしくは前記ディスク制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記通信制御部もしくは前記ディスク制御部が、復元した前記プログラムを前記通信制御部もしくは前記ディスク制御部に記憶させるステップと、を有することを特徴とするストレージ制御装置の制御方法。
【請求項７】
請求項１に記載のコンピュータの制御方法において、前記第一のメモリは、不揮発性メモリであることを特徴とするコンピュータの制御方法。
【請求項８】
請求項１に記載のコンピュータの制御方法において、前記プログラムはマイクロプログラムであることを特徴とするコンピュータの制御方法。
【請求項９】
２以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成され、
少なくとも２以上の前記プロセッサが前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送する手段と、
前記プロセッサが前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元する手段と、
前記プロセッサが復元した前記プログラムを前記第一のメモリに記憶させる手段と、を備えることを特徴とするコンピュータ。
【請求項１０】
情報処理装置との間で通信を行う通信制御部と、ディスクドライブに対するデータ入出力を行うディスク制御部と、前記通信制御部及び前記ディスク制御部がアクセス可能な共有メモリと、前記通信制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリと、を備え、
前記通信制御部もしくは前記ディスク制御部が、前記通信制御部もしくは前記ディスク制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送する手段と、
前記通信制御部もしくは前記ディスク制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元する手段と、
前記通信制御部もしくは前記ディスク制御部が、復元した前記プログラムを前記通信制御部もしくは前記ディスク制御部に記憶させる手段と、を備えることを特徴とするストレージ制御装置。
【請求項１１】
２以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成されるコンピュータに、
少なくとも２以上の前記プロセッサが、前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送する機能と、
前記プロセッサが、前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元する機能と、
前記プロセッサが、復元した前記プログラムを前記第一のメモリに記憶させる機能と、を実現させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータの制御方法、コンピュータ、ストレージ制御装置、プログラム、及び記録媒体に関する。
【０００２】
【従来の技術】
負荷分散の実現や高性能化、高信頼性化等を目的として構成されるいわゆるマルチプロセッサアーキテクチャが採用されるコンピュータシステムにおいては、プロセッサに実行させるマイクロプログラムを記憶するためのメモリがプロセッサごとに用意される構成をとるものが存在する。例えば、昨今のＩＴ技術の発展により需要が増大しているディスクアレイ装置では、アクセスしてくる情報処理装置との間の通信を制御する通信制御部（チャネル制御部）や大量のディスクドライブへのアクセスを行うためのディスク制御装置を複数実装したマルチプロセッサの構成であるものが存在するが、このようなディスクアレイ装置においては、マイクロプログラムを記憶するためのメモリが、通信制御部ごと、もしくは、ディスク制御部ごとに設けられる。
【０００３】
上記の構成をとるコンピュータシステムにおいては、例えば、そのセットアップ時やバージョンアップ時等において、メモリに対するマイクロプログラムの転送処理が行われる。ここでこのマイクロプログラムの転送処理はコンピュータシステムの他の処理に影響を与えるため、できるだけ効率よく行うことが好ましい。そこで、この転送処理を効率化する仕組みとして、例えば、特許文献１には、マイクロプログラムを各プロセッサがアクセス可能な共有メモリに転送し、各プロセッサが自身でマイクロプログラムを読み込むことにより並列的なデータ転送を行うことで負荷分散を図り、プロセッサに対応するメモリへのマイクロプログラムのローディング時間を短縮する技術が開示されている。
【０００４】
【特許文献１】
特開平１１−２５００２８号公報
【０００５】
【発明が解決しようとする課題】
上記公報に記載の技術では、各プロセッサに対応するメモリにロードさせるマイクロプログラムを共有メモリにあらかじめ転送するようにしているが、この転送は特定のプロセッサを介して行われているため、特定のプロセッサへの負荷の集中が避けられない。また、特定のプロセッサのみが書き込みに関与する仕組みでは、特定のプロセッサの処理能力により転送処理の効率が決まってしまうため、転送処理の効率を向上させることは難しい。
【０００６】
この発明はこのような背景に鑑みてなされたもので、マルチプロセッサアーキテクチャからなるコンピュータシステムにおいて、各プロセッサにより実行されるマイクロプログラムを効率よく供給することができる、コンピュータの制御方法、コンピュータ、ストレージ制御装置、プログラム、及び記録媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
２以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成されるコンピュータの制御方法において、少なくとも２以上の前記プロセッサが、前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送するステップと、前記プロセッサが、前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、前記プロセッサが、復元した前記プログラムを前記第一のメモリに記憶させるステップと、を有することとする。
【０００８】
この発明は、２以上のプロセッサを有するマルチプロセッサアーキテクチャを採用するコンピュータに適用される。前記第一のメモリは、例えば、このようなアーキテクチャのコンピュータの各プロセッサに対応させて各プロセッサによって実行されるマイクロプログラムが格納される、ローカルメモリや不揮発性メモリである。前記第二のメモリは、例えば、このようなアーキテクチャのコンピュータにおける各プロセッサからアクセス可能に設けられた共有のメモリである。
この発明は、例えば、外部から供給されたマイクロプログラムを前記各プロセッサにより前記第一のメモリにセットアップする場合に適用される。
【０００９】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄及び図面により明らかにされる。
【００１０】
【発明の実施の形態】
図１に本発明の一実施例として説明する制御装置１００のブロック構成を示している。制御装置１００は、プロセッサ１，２，３，４、各プロセッサ１，２，３，４からアクセス可能な共有メモリ５、プロセッサ１，２，３，４のうちの少なくともいずれかのプロセッサによって制御される制御対象部位６，７、プロセッサ１，２，３，４と通信可能に接続されるサービスプロセッサ８、プロセッサ１，２，３，４と共有メモリ５との間を通信可能に接続する共有メモリアクセスバス９、プロセッサ１，２，３，４とサービスプロセッサ８との間を通信可能に接続するサービスプロセッサ−プロセッサ間通信バス１０等を含んで構成される。
【００１１】
プロセッサ１，２，３，４は、それぞれプロセッサ制御部１１，２１，３１，４１、フラッシュメモリ等で構成される不揮発メモリ１２，２２，３２，４２、ＳＲＡＭやＤＲＡＭ等で構成されるローカルメモリ１３，２３，３３，４３、マイクロプログラム格納エリア１４，２４，３４，４４、マイクロプログラムロードエリア１５，２５，３５，４５等を含んで構成される。共有メモリ５には、マイクロプログラム格納エリア５１が確保されている。
【００１２】
制御装置１００において、プロセッサ１，２，３，４において実行されるマイクロプログラムは、サービスプロセッサ８から共有メモリ５を経由して各プロセッサ１，２，３，４に供給される。サービスプロセッサ８は、プロセッサ制御部８１、メモリ８２等を含んで構成される。各プロセッサ１，２，３，４に供給されるマイクロプログラムは、コンピュータ等の外部装置７０から供給されてメモリ８２の記憶領域に確保されているマイクロプログラム格納エリア８３に格納される。外部装置７０からサービスプロセッサ８へのマイクロプログラムの供給は、例えば、制御装置１００の導入時やマイクロプログラムのバージョンアップ時等に行われる。
【００１３】
プロセッサ１，２，３，４において、サービスプロセッサ８から供給されたマイクロプログラムは、マイクロプログラム格納エリア１４，２４，３４，４４、及びマイクロプログラムロードエリア１５，２５，３５，４５に格納される。各プロセッサ１，２，３，４において、例えば、プロセッサ１，２，３，４の起動時にマイクロプログラム格納エリア１４，２４，３４，４４からマイクロプログラムロードエリア１５，２５，３５，４５にマイクロプログラムがロードされる。
【００１４】
制御装置１００において、外部装置７０から供給されてマイクロプログラム格納エリア８３に格納されたマイクロプログラムは、まず、共有メモリ５のマイクロプログラム格納エリア５１に転送され、その後、各プロセッサ１，２，３，４が共有メモリアクセスバス９を経由して共有メモリ５にアクセスすることにより各プロセッサ１，２，３，４に取り込まれる。
【００１５】
マイクロプログラム格納エリア８３から共有メモリ５のマイクロプログラム格納エリア５１へのマイクロプログラムの転送は、サービスプロセッサ−プロセッサ間通信バス１０、プロセッサ１，２，３，４のうちの少なくとも１以上のプロセッサ、共有メモリアクセスバス９を経由して行われる。ここでマイクロプログラムは、その全体をプロセッサ１，２，３，４のうちの特定のプロセッサにより一括して転送する（以下、この転送方式を一括転送方式と称する）ことができる。また、マイクロプログラムは、これを複数のデータ（以下、分割データと称する）に分割し、分割データをそれぞれ複数のプロセッサ１，２，３，４に分担させて共有メモリ５に転送することもできる（以下、この転送方式を分割転送方式と称する）。一括転送方式もしくは分割転送方式のいずれの転送方式で転送するのかは、例えば、外部装置７０からサービスプロセッサ８に対して指示することができる。
【００１６】
一括転送方式の場合における処理の流れを図２に示している。一括転送方式では、サービスプロセッサ８のマイクロプログラム格納エリア８３に格納されているマイクロプログラムを特定のプロセッサが一括して共有メモリ５に転送する。
転送に際しては、まず、サービスプロセッサ８からマイクロプログラムの転送処理を担当する特定のプロセッサに対してサービスプロセッサ−プロセッサ間通信バス１０を介してマイクロプログラムが転送され（Ｓ２１１）、特定のプロセッサは自身のローカルメモリにマイクロプログラムを記憶する。次に、前記特定のプロセッサが記憶している前記マイクロプログラムを共有メモリ５のマイクロプログラム格納エリア５１に転送する（Ｓ２１２）。
【００１７】
一方、分割転送方式の場合における処理の流れを図３に示している。この方式では、まず、サービスプロセッサ８がマイクロプログラム格納エリア８３に格納されているマイクロプログラムを所定のデータサイズに分割することにより分割データを生成し、生成した分割データをメモリ８２の所定の領域に格納する（Ｓ３１１）。プロセッサ制御部８１は、生成した分割データをメモリ８２に記憶するに際し、生成した分割データのそれぞれに識別子を付帯させてメモリ８２に記憶する（Ｓ３１２）。分割データに付帯させる前記識別子は、後に分割データを結合してマイクロプログラムを復元する際の結合順序が把握できるようにするために、例えば、数字もしくはアルファベット等、結合順序を特定できる識別子が採用される。なお、この実施例で説明する分割データには、識別子として、マイクロプログラムの復元時における結合順を示す数字（以下、分割データ番号と称する）が付与される。
【００１８】
次に、プロセッサ制御部８１は、以上のようにして生成された各分割データに対し、それぞれの共有メモリ５への転送処理を担当するプロセッサを割り当てる（Ｓ３１３）。各分割データの転送処理をどのプロセッサが担当しているのか、すなわち、各分割データを担当するプロセッサの割り当ては、メモリ８２の記憶領域に記憶されている、図４に示す転送データ管理テーブル４００に登録される（Ｓ３１４）。この図に示すように、転送データ管理テーブル４００には、分割データに付与されている識別子とプロセッサに付与されている識別子との対応づけが登録されている。「分割データ」の欄４１０には分割データの識別子が設定される。
「担当プロセッサ」の欄４２０にはその分割データの共有メモリ５への転送処理を担当するプロセッサの識別子が設定される。「先頭アドレス」の欄４３０には、その分割データが格納されているメモリ８２上のアドレスが設定される。「データ長」の欄４４０には、その分割データのデータ長が設定される。「ステータス」の欄４５０には、その分割データが既に転送済であるかどうかを示すフラグが設定される。この例では、転送済みの場合には「転送済」が、未転送の場合には「未転送」が設定される。サービスプロセッサ８は、分割データの割り当てを行う度に、もしくは、変更する度に、転送データ管理テーブル４００の内容をリアルタイムに更新する。
【００１９】
サービスプロセッサ８は、分割データを生成して各分割データの転送処理を担当するプロセッサを決定すると、分割データの転送処理を担当させるプロセッサに対し、分割データの転送指示を通知する（Ｓ３１５）。各プロセッサ１，２，３，４は、前記通知を受信すると、サービスプロセッサ８から送られてくる分割データを記憶するためのローカルメモリ１３，２３，３３，４３上の記録領域の確保等の準備処理を行った後、自身が分割データの受信待機状態である旨の通知をサービスプロセッサ８に通知する（Ｓ３１６）。サービスプロセッサ８は、前記通知を受信すると、前記プロセッサに対して前記プロセッサが転送処理を担当する分割データを送信する（Ｓ３１７）。なお、サービスプロセッサ８は、送信する各分割データに対し、上記の識別子を付帯させる。サービスプロセッサ８から送られてくる分割データを受信すると、各プロセッサは、受信した分割データを自身のローカルメモリ１３，２３，３３，４３に記憶する（Ｓ３１８）。
【００２０】
次に各プロセッサ１，２，３，４は、ローカルメモリ１３，２３，３３，４３に分割データを記憶すると、記憶した分割データを、共有メモリ５のマイクロプログラム格納エリア５１に共有メモリアクセスバス９を介して格納する（Ｓ３１９）。図５にマイクロプログラム格納エリア５１に格納されている分割データの状態を示している。各分割データの先頭には、分割データ番号５１０が格納される。
分割データの末尾には、分割データの末尾であることを示す情報（ＥＯＤ（Ｅｎｄ  Ｏｆ  Ｄａｔａ））が設定されている。この図に示すように、分割データは、マイクロプログラム格納エリア５１の先頭アドレスから順に書き込まれていく。また、原則として、既に書き込まれている分割データに続けて次の分割データが書き込まれる。マイクロプログラム格納エリア５１に格納される分割データの格納順序は、必ずしも分割データ番号の番号順であるとは限らない。すなわち、分割データの格納順序は、例えば、各プロセッサ１，２，３，４の処理負荷等に応じて決定され、マイクロプログラムを復元する際における分割データを結合する順序に必ずしも一致しているとは限らない。
【００２１】
各プロセッサ１，２，３，４は、以上のようにして前記分割データについてのマイクロプログラム格納エリア５１への格納が完了すると、サービスプロセッサ８に対して前記分割データについての共有メモリ５への格納を完了した旨を通知する（Ｓ３２０）。サービスプロセッサ８は、前記プロセッサから送られてくる前記通知を受信すると、転送データ管理テーブル４００における該当の分割データの「ステータス」の欄４５０に「転送済」を設定する（Ｓ３２１）。
【００２２】
サービスプロセッサ８は、転送データ管理テーブル４００の「ステータス」の欄４５０の内容をリアルタイムに監視している（Ｓ３２２）。サービスプロセッサ８は、転送データ管理テーブル４００の全ての分割データの「ステータス」の欄４５０に「転送済」が設定されたことを検知すると（Ｓ３２２：ＹＥＳ）、共有メモリ５へのマイクロプログラムの格納（セットアップ）が完了した旨を、各プロセッサ１，２，３，４に対して通知する（Ｓ３２３）。
【００２３】
各プロセッサ１，２，３，４は、それぞれのローカルメモリ１３，２３，３３，４３に、マイクロプログラムの更新要否を示すマイクロプログラム更新フラグを管理している。各プロセッサ１，２，３，４のうちの少なくともいずれかのプロセッサは、前記通知を受信すると、マイクロプログラム更新フラグを更新が必要であることを示すＯＮの状態に設定する（Ｓ３２４）。
【００２４】
以上のようにして、サービスプロセッサ８から共有メモリ５へのマイクロプログラムの転送処理が行われる。なお、分割転送方式によりマイクロプログラムを転送した場合、マイクロプログラムは複数の分割データに分割され、マイクロプログラムは各分割データの転送処理を担当する複数のプロセッサによって共有メモリ５に格納される。このため、マイクロプログラムの転送処理について負荷分散が図られることになり、１つのプロセッサに処理負荷を集中させることなく、サービスプロセッサ８に格納されているマイクロプログラムを効率よく共有メモリ５に格納することができる。
【００２５】
なお、以上に説明した実施例では、共有メモリ５にマイクロプログラムが格納された旨の通知をサービスプロセッサ８から各プロセッサ１，２，３，４に通知するようにしている（Ｓ３２３）が、サービスプロセッサ８から通知するのでは無く、プロセッサ１，２，３，４が自発的にサービスプロセッサ８に共有メモリ５に新たにマイクロプログラムを格納されたかどうかを問い合わせる構成としてもよい。
【００２６】
また、各プロセッサ１，２，３，４から各々が共有メモリ５に格納した分割データの数（以下、格納数と称する）を所定のタイミング（例えば、一定時間ごと）で自発的もしくはサービスプロセッサ８からの要求に応じてサービスプロセッサ８に通知するようにし、サービスプロセッサ８が、各プロセッサから通知される格納数の総和がマイクロプログラムの分割数に一致したことをもって共有メモリ５にマイクロプログラムが格納されたと判断するようにしてもよい。また、この場合、各プロセッサ１，２，３，４からサービスプロセッサ８に通知される格納数を、ユーザインタフェースによりリアルタイムにオペレータ等に通知するようにすることで、オペレータ等に分割データの共有メモリ５への転送処理のリアルタイムな進捗状況を把握させることも可能となる。
【００２７】
以上に説明した実施例において、各プロセッサがダウンロードする分割データはそれぞれ異なる分割データであり、メモリ８２に格納されている同じ分割データに対して複数のプロセッサからアクセスされることが無い。このため、分割データに対して排他制御を行う必要が無くなり、これによりプロセッサから分割データをダウンロードするためのプログラムをシンプルに構成することが可能となり、メモリ容量の有効利用等が図られる。また、排他制御が必要で無いことにより排他制御に起因する処理待ち時間も発生しないこととなり、その分、処理効率が向上する。
【００２８】
以上に説明した実施例において、分割データへのプロセッサの割り当て方法としては、例えば、単純に各プロセッサ１，２，３，４に分割データを割り当てる方法、各プロセッサ１，２，３，４の処理負荷に応じて処理負荷の少ないプロセッサから順に割り当てていく方法等がある。また、ひとたび分割データが割り当てられた後、転送処理が開始されてから転送処理が完了するまでの期間のある時点において、その時点でのリアルタイムな処理負荷を測定し、その測定結果に応じて残存する未転送の分割データの転送処理を担当するプロセッサ１，２，３，４を割り当て直すようにすることもできる。この場合、例えば、先に転送処理が終了して処理負荷が軽くなったプロセッサを再び転送処理に参加させることが可能となり、処理の効率を向上させることができる。
【００２９】
また、以上に説明した実施例では、サービスプロセッサ８からプロセッサ１，２，３，４に対して分割データの転送指示を通知するようにしているが（Ｓ３１５）、転送すべき分割データがあるか否かをプロセッサ１，２，３，４が自発的にサービスプロセッサ８に問い合わせる構成とすることもできる。またこの場合、プロセッサ１，２，３，４が自身の処理負荷の変化を監視して、処理負荷が少ない時に、プロセッサ１，２，３，４が分割データがあるか否かをサービスプロセッサ８に問い合わせる構成とすることもできる。このようにすることで、マイクロプロセッサの供給に関する処理の効率をより一層向上させることができる。なお、この場合、処理負荷の大小は、単位時間当たりのタスク数等の処理負荷に対応するパラメータの値を閾値と比較することにより判定する。
【００３０】
マイクロプログラムの分割数や分割データのデータサイズは固定的に設定してもよいし、上記転送が行われる度に変化させるようにすることもできる。また、分割数やデータサイズは、例えば、プロセッサ１，２，３，４の処理負荷の状況に応じて変化させるようにすることもできる。この場合、処理負荷は、例えば、各プロセッサにおいて単位時間当たりに処理されるタスク数を計測することにより把握する。
【００３１】
また、分割数については、例えば、プロセッサ１，２，３，４のいずれの処理負荷も大差ない場合には、プロセッサ１，２，３，４の全てにマイクロプログラムを転送させるようにし、この場合には分割数を４に設定し、例えば、プロセッサ１の処理負荷が高い場合には、プロセッサ２，３，４のみにマイクロプログラムを転送させるようにし、この場合には分割数を３に設定するようにすることも考えられる。また、分割数をＮと設定している場合において、プロセッサの処理負荷の差が閾値よりも小さければ各分割データのデータサイズを均等に設定し、プロセッサの処理負荷の差が閾値以上となった場合は処理負荷が大きいプロセッサが担当する分割データのデータサイズを処理負荷の低いプロセッサが担当する分割データのデータサイズよりも小さく設定するようにしてもよい。
【００３２】
＝＝＝プロセッサへのロード＝＝＝
共有メモリ５のマイクロプログラム格納エリア５１に格納されているマイクロプログラムは所定のタイミングでプロセッサ１，２，３，４に取り込まれる。プロセッサ１，２，３，４に取り込まれたマイクロプログラムは、不揮発性メモリ１２，２２，３２，４２上に確保されているマイクロプログラム格納エリア１４，２４，３４，４４に格納される。また、マイクロプログラムロードエリア１５，２５，３５，４５には、マイクロプログラム格納エリア５１、もしくは、マイクロプログラム格納エリア１４，２４，３４，４４に記憶されているマイクロプログラムが適宜ロードされる。また、上述したように、分割転送方式で転送されたマイクロプログラム格納エリア５１に格納されているマイクロプログラムは分割データの状態で格納されているので、これを利用できるようにするために、分割データは所定のタイミングで結合されてもとのマイクロプログラムの復元が行われる。
【００３３】
＝＝＝ローカルメモリへのロード＝＝＝
図６は、本発明が適用される制御装置１００のタスク生成シーケンスである。プロセッサ１，２，３，４が起動されると（Ｓ６０１）、プロセッサ１，２，３，４内部にある不揮発メモリ１２，２２，３２，４２からローカルメモリ１３，２３，３３，４３にルートプログラム６０６がロードされ（Ｓ６１４）、ルートタスク（Ｓ６０２）が生成される（Ｓ６１３）。生成されたルートタスク（Ｓ６０２）は、不揮発メモリ１２，２２，３２，４２からマイクロプログラムロードプログラム６０７をロードし（Ｓ６１６）、マイクロプログラムロードタスク６０３を生成する（Ｓ６１５）。
マイクロプログラムロードタスク（Ｓ６０３）は、不揮発メモリ１２，２２，３２，４２に格納されているメインプログラム６０８、共有メモリ５に格納されているメインプログラム６１２のいずれかをロードし（Ｓ６１８）、メインタスク（Ｓ６０４）を生成する（Ｓ６１７）。
【００３４】
図７は、図６のマイクロプログラムロードタスク（Ｓ６０３）の詳細な処理フローである。マイクロプログラムロードタスク（Ｓ６０３）は、起動されると、共有メモリアクセスバスの設定（Ｓ７０２）や共有メモリアクセスパスの確立（Ｓ７０３）を行う。次に、マイクロプログラムロードタスク（Ｓ６０３）は、共有メモリアクセスバス９が使用可能であるか否かを判定し（Ｓ７０４）、使用可能であるならば、共有メモリ５中のマイクロプログラムが有効か否かを判定する（Ｓ７０５）。有効であるならば、共有メモリ５のマイクロプログラムと不揮発メモリ１２，２２，３２，４２のマイクロプログラムとが異なるか否かを判定する（Ｓ７０６）。ここでマイクロプログラムが異なるならば、共有メモリ５からローカルメモリ１３，２３，３３，４３にマイクロプログラムをロードする（Ｓ７０７）。前記ロードに際し、プロセッサ制御部１１，２１，３１，４１は、共有メモリ５のマイクロプログラム格納エリア５１に格納されている複数の分割データを読み出して、読み出した分割データを識別子の順序で順に結合し、もとのマイクロプログラムを復元する。そして、以上の処理によって復元されたマイクロプログラムが共有メモリ５からローカルメモリ１３，２３，３３，４３にロードされる。なお、（Ｓ７０６）におけるマイクロプログラムが異なるかどうかの判定に代えて、上述のマイクロプログラム更新フラグに応じて共有メモリ５からのマイクロプログラムのロードを行うかどうかを決定するようにしてもよい。
【００３５】
次にプロセッサ１，２，３，４は、マイクロプログラムのロードに成功したか否かを判定し（Ｓ７０８）、共有メモリ５からローカルメモリ１３，２３，３３，４３へのマイクロプログラムのロードに成功したならば、共有メモリ５のマイクロプログラム有効フラグをＯＮに設定する（Ｓ７０９）。ここでこのマイクロプログラム有効フラグは、後述するように、マイクロプログラムを共有メモリ５から不揮発性メモリ１２，２２，３２，４２にロードする必要があるかどうか、すなわち、不揮発性メモリ１２，２２，３２，４２の内容を更新する必要があるかどうかを判定するのに用いられる。
【００３６】
次に、（Ｓ７１０）では、プロセッサ１，２，３，４は、ローカルメモリ１３，２３，３３，４３へのマイクロプログラムのロードに成功したか否かを判定し（Ｓ７１０）、成功したならば、メインタスクを生成し（Ｓ７１１）、処理を終了する（Ｓ７１２）。
【００３７】
なお、（Ｓ７０４）の判定において、バスが使用可能でなかった場合や、（Ｓ７０６）の判定において、共有メモリ５のマイクロプログラムと不揮発メモリ１２，２２，３２，４２のマイクロプログラムが同じであった場合には、共有メモリ５からではなく不揮発メモリ１２，２２，３２，４２からマイクロプログラムをロードする（Ｓ７１４）。また、（Ｓ７０５）の判定において、共有メモリ５中のマイクロプログラムが、共有メモリ５に記憶されているデータの揮発や障害発生等の理由により無効であった場合や、（Ｓ７０８）の判定において、共有メモリ５からのロードに成功しなかった場合には、共有メモリ５に記憶されているマイクロプログラム無効フラグをＯＮに設定する（Ｓ７１３）。また、不揮発メモリ１２，２２，３２，４２のマイクロプログラム格納エリア１４，２４，３４，４４からローカルメモリ１３，２３，３３，４３にマイクロプログラムをロードする（Ｓ７１４）。そして、マイクロプログラムのローカルメモリ１３，２３，３３，４３へのロードに成功したか否かを判定し（Ｓ７１０）、成功したならば、プロセッサ１，２，３，４は、メインタスクを生成し（Ｓ７１１）、処理を終了する（Ｓ７１２）。
【００３８】
＝＝＝不揮発性メモリへのロード＝＝＝
図８は、図６のメインタスク（Ｓ６０４）の処理を説明するフローチャートである。この図は、不揮発性メモリ１２，２２，３２，４２及び共有メモリ５へのマイクロプログラムのセットアップに関する処理を説明している。メインタスク（Ｓ６０４）は、起動されると、制御装置１００のハードウェアやソフトウェアのさまざまな初期設定（Ｓ８０２）を行う。図６におけるマイクロプログラムロードタスク（Ｓ６０３）において共有メモリ５のマイクロプログラム有効フラグがＯＮに設定された場合には（Ｓ７０９）、共有メモリ５のマイクロ有効フラグがＯＮか否かの判定（Ｓ８０３）はＯＮとなり（Ｓ８０３：ＹＥＳ）、プロセッサ１，２，３，４は、共有メモリ５から不揮発メモリ１２，２２，３２，４２のマイクロプログラム格納エリア１４，２４，３４，４４にマイクロプログラムを転送する（Ｓ８０４）。また（Ｓ８０３）の判定結果がＯＮでない場合（Ｓ８０３：ＮＯ）には、（Ｓ８０４）の処理をスキップする。
【００３９】
マイクロプログラムロードタスク（Ｓ６０３）において共有メモリ５のマイクロプログラム無効フラグがＯＮに設定された場合（Ｓ７１３）、共有メモリ５のマイクロプログラム無効フラグがＯＮか否かの判定（Ｓ８０５）は、ＯＮとなり（Ｓ８０５：ＹＥＳ）、不揮発メモリ１２，２２，３２，４２のマイクロプログラム格納エリア１４，２４，３４，４４に記憶されているマイクロプログラムが共有メモリ５に転送され、これによりマイクロプログラム格納エリア５１にマイクロプログラムが格納される（Ｓ８０６）。（Ｓ８０７）において、プロセッサ１，２，３，４は、不揮発メモリ１２，２２，３２，４２から共有メモリ５へのマイクロプログラムの転送に成功したか否かの判定を行い、成功したと判断したならば（Ｓ８０７：ＹＥＳ）、共有メモリ５のマイクロプログラム無効フラグをＯＦＦに設定し（Ｓ８０８）、メインタスクの初期設定を終了する（Ｓ８０９）。また、（Ｓ８０５）の判定において、共有メモリ５のマイクロプログラム無効フラグがＯＦＦであった場合（Ｓ８０５：ＮＯ）、プロセッサ１，２，３，４はそのままメインタスクの初期設定を終了する（Ｓ８０９）。また、（Ｓ８０７）の判定で、転送に成功しなかった時は（Ｓ８０７：ＮＯ）、そのままメインタスクの初期設定を終了する。
【００４０】
＝＝＝応用例＝＝＝
図９に、以上に説明した制御装置１００の応用例として説明する、ディスクアレイ装置９００（ストレージ制御装置）及びこれに通信路９４０を介してアクセスする情報処理装置９５０とを含んで構成されるストレージシステム９０のブロック構成を示している。情報処理装置９５０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリを備えて構成される、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等のコンピュータである。通信路９４０を介して行われる通信には、例えば、ＴＣＰ／ＩＰプロトコル、ファイバーチャネルプロトコル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｐｒｏｔｏｃｏｌ）、ＦＩＣＯＮ（Ｆｉｂｒｅ  Ｃｏｎｎｅｃｔｉｏｎ）（登録商標）やＥＳＣＯＮ（Ｅｎｔｅｒｐｒｉｓｅ  Ｓｙｓｔｅｍ  Ｃｏｎｎｅｃｔｉｏｎ）  （登録商標）等の通信プロトコルが採用される。
【００４１】
ディスクアレイ装置９００は、チャネル制御部９１０（通信制御部）、ディスク制御部９２０、キャッシュメモリ９３０、共有メモリ９３１、及びこれらを接続するスイッチ９３２、ディスクドライブ９３３、サービスプロセッサ９３４等を備えて構成される。スイッチ９３２としては、例えば、高速クロスバスイッチが用いられる。ディスクドライブ９３３はディスクアレイ装置９００の他の構成部分とは別筐体に収容されていることもある。サービスプロセッサ９３４には管理端末９３５が接続している。管理端末９３５は、オペレータ等によって操作されるコンピュータである。オペレータ等は管理端末９３５を操作して、ディスクアレイ装置９００に対する各種の設定や運用、動作状況の監視、障害監視等を行う。また、管理端末９３５は、バージョンアップ等の必要のためにチャネル制御部９１０やディスク制御部９２０にマイクロプログラムを供給するため、インターネット等のネットワークを通じたダウンロードやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体９３６に記録されて供給されるマイクロプログラムをサービスプロセッサ９３４のメモリに転送する機能も提供する。なお、チャネル制御部９１０やディスク制御部装置９２０においてファイルシステムが動作している場合には、マイクロプログラムは、ファイル形式で提供されることもある。
【００４２】
図１０にチャネル制御部９１０の構成を示している。チャネル制御部９１０は、情報処理装置９５０との間での通信に関する機能を提供する通信インタフェース９１０１、ローカルメモリ９１０２、フラッシュメモリ等で構成される不揮発性メモリ９１０３、ローカルメモリ９１０２に記憶されているプログラムを実行することによりチャネル制御部９１０の各種機能を実現するマイクロプロセッサ９１０４、チャネル制御部９１０とキャッシュメモリ９３０との間での高速なデータ転送を実現するＩ／Ｏプロセッサ９１０５等を備える。不揮発性メモリ９１０３には、チャネル制御部９１０が提供する各種の機能を実現するソフトウェアであるマイクロプログラムが記憶されており、マイクロプログラムは適宜ローカルメモリ９１０２にロードされてマイクロプロセッサ９１０４により実行される。なお、これらの構成は互いにバス９１０９で接続されている。Ｉ／Ｏプロセッサ９１０５としては、例えば、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）プロセッサが用いられる。
【００４３】
図１１にディスク制御部９２０の構成を示している。ディスク制御部９２０は、キャッシュメモリ９３０やチャネル制御部９１０との間での高速なデータ転送を実現するＩ／Ｏプロセッサ９２０１、ローカルメモリ９２０２、フラッシュメモリ等で構成される不揮発性メモリ９２０３、ローカルメモリ９２０２に記憶されているプログラムを実行することによりディスク制御部９２０の各種機能を実現するマイクロプロセッサ９２０４、ディスクドライブ９３３に対するデータの書き込みや読み出しを行うディスクコントローラ９２０５等を備える。不揮発性メモリ９２０３には、ディスク制御部９２０が提供する各種の機能を実現するソフトウェアであるマイクロプログラムが記憶されている。マイクロプログラムは適宜ローカルメモリ９２０２にロードされてマイクロプロセッサ９２０４により実行される。なお、これらの構成は互いにバス９２０９で接続されている。Ｉ／Ｏプロセッサ９２０１としては、例えば、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）プロセッサが用いられる。ディスクコントローラ９２０５は、ディスクドライブ９３３をＲＡＩＤの方式（例えば、ＲＡＩＤ０，１，５）で制御する機能も提供する。
【００４４】
共有メモリ９３１及びキャッシュメモリ９３０は、例えば、各種制御情報やコマンド等を記憶するために利用される。キャッシュメモリ９３０は、例えば、ディスクドライブ９３３に書き込まれるデータやディスクドライブ９３３から読み出されたデータを記憶するのに利用される。
【００４５】
図１２にサービスプロセッサ９３４の構成を示している。サービスプロセッサ９３４は、マイクロプロセッサ９３４４、メモリ９３４２等を備えて構成される。サービスプロセッサ９３４は、内部通信インタフェース９３４３により内部通信路９７０を介してチャネル制御部９１０やディスク制御部９２０と通信可能に接続されている。内部通信路９７０としては、例えば、ＰＣＩ等のバスや通信プロトコルとしてＴＣＰ／ＩＰを用いるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が採用される。またサービスプロセッサ９３４は、外部通信インタフェース９３４４により管理端末９３５と通信可能に接続されている。サービスプロセッサ９３４と管理端末９３５との間の通信手段としてはバスやＬＡＮが採用される。なお、マイクロプロセッサ９１０４、メモリ９１０２、内部通信インタフェース９３４３、外部通信インタフェース９３４４はそれぞれバス９３４９で接続されている。
【００４６】
サービスプロセッサ９３４は、チャネル制御部９１０やディスク制御部９２０に対する各種動作設定や障害監視、動作状態に関する情報の収集等を行う。サービスプロセッサ９３４は、各チャネル制御部９１０や各ディスク制御部９２０の処理負荷に関する情報を収集することができる。処理負荷に関する情報とは、例えば、マイクロプロセッサ９１０４，９２０４の使用率等である。これらの値は、チャネル制御部９１０やディスク制御部９２０において実行されるプログラムによって提供される。
【００４７】
この応用例のストレージシステム９０において、上述の制御装置１００における共有メモリ５は、ディスクアレイ装置９００の構成要素である共有メモリ９３１に対応する。また、上述の制御装置１００におけるプロセッサ１，２，３，４は、ディスクアレイ装置９００の構成要素であるチャネル制御部９１０、もしくは、ディスク制御部９２０に対応する。
【００４８】
また、上述の制御装置１００におけるサービスプロセッサ８は、ディスクアレイ装置９００の構成要素であるサービスプロセッサ９３４に対応する。サービスプロセッサ９３４のメモリ９３０２には、管理端末９３５から適宜マイクロプログラムが格納される。サービスプロセッサ９３４は、上述した方法により共有メモリ９３１を経由して、メモリに格納されているマイクロプログラムをチャネル制御部９１０やディスク制御部９２０に転送する。チャネル制御部９１０やディスク制御部９２０においてファイルシステムが動作している場合、マイクロプログラムはファイルの形式で取り扱われる。また、この場合、上述した分割データもファイルの形式で取り扱われる。
【００４９】
上述の制御装置１００におけるローカルメモリ１３，２３，３３，４３は、ローカルメモリ９１０２，９２０２に対応する。上述の制御装置１００における不揮発性メモリ１２，２２，３２，４２は、不揮発性メモリ９１０３，９２０３が対応する。上述の制御装置１００におけるプロセッサ制御部１１，２１，３１，４１は、マイクロプロセッサ９１０４，９２０４、Ｉ／Ｏプロセッサ９１０５，９２０１、通信インタフェース９１０１、ディスクコントローラ９２０５等の少なくともいずれかが対応する。上述の制御装置１００における制御対象部位６，７は、例えば、プロセッサ１，２，３，４がチャネル制御部９１０である場合には、他のチャネル制御部９１０やディスク制御部９２０、キャッシュメモリ９３０、共有メモリ９３１等である。また、例えば、プロセッサ１，２，３，４がディスク制御部９２０である場合には、他のディスク制御部９１０やチャネル制御部９１０、ディスクドライブ９３３、キャッシュメモリ９３０、共有メモリ９３１等である。
【００５０】
情報処理装置９５０から送信されてくるデータ書き込み要求やデータ読み出し要求などのデータ入出力要求を受信した場合におけるディスクアレイ装置９００の基本的な動作について説明する。まず、情報処理装置９５０からディスクアレイ装置９００に対してデータ書き込み要求が送信された場合について説明する。
ディスクアレイ装置９００は、情報処理装置９５０から送られてくるデータ書き込み要求を受信すると、データ書き込みコマンドを共有メモリ９３１に書き込むと共に、情報処理装置９５０から受信した書き込みデータをキャッシュメモリ９３０に書き込む。ディスクアレイ装置９００は、キャッシュメモリ９３０へのデータの書き込みが完了すると、情報処理装置９５０に書き込み完了報告を送信する。すなわち、情報処理装置９５０への完了報告は、ディスクドライブ９００への実際のデータの書き込み動作とは非同期に行われる。ディスク制御部９２０は、リアルタイム（例えば、一定の時間間隔で）に共有メモリ９３１の内容を監視している。ディスク制御部９２０は、上記監視により共有メモリ９３１にデータ書き込みコマンドが書き込まれていることを検知すると、キャッシュメモリ９３０から書き込み対象となるデータ（以下、書き込みデータと称する）を読み出して、読み出した書き込みデータをディスクドライブ９３３に書き込む。以上のようにしてデータ書き込み要求に対応したディスクドライブ９３３へのデータの書き込みが行われる。
【００５１】
次に、情報処理装置９５０からディスクアレイ装置９００に対してデータ書き込み要求が送信された場合におけるディスクアレイ装置９００の基本的な動作について説明する。ディスクアレイ装置９００は、情報処理装置９５０から送られてくるデータ読み出し要求を受信すると、この要求に対応するデータ読み出しコマンドをディスク制御部９２０に送出する。なお、チャネル制御部９１０からディスク制御部９２０へのデータ読み出しコマンドの伝達は、共有メモリ９３１を介して行われることもある。
【００５２】
ディスク制御部９２０は、チャネル制御部９１０からデータ読み出しコマンドを受領すると、そのコマンドに指定されている読み出し対象のデータをディスクドライブ９３３から読み出して、読み出したデータをキャッシュメモリ９３０に書き込む。ディスク制御部９２０は、キャッシュメモリ９３０へのデータ転送が完了すると、その旨をチャネル制御部９１０に通知する。そして前記通知を受信したチャネル制御部９１０は、キャッシュメモリ９３０に記憶されている読み出し対象のデータを情報処理装置９５０に転送する。
【００５３】
以上、一実施形態に基づき本発明について説明したが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【００５４】
【発明の効果】
この発明によれば、コンピュータの制御方法、コンピュータ、ストレージ制御装置、プログラム、及び記録媒体を提供することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施例として説明する、制御装置のブロック構成を示す図である。
【図２】本発明の一実施例として説明する、一括転送方式の場合の処理の流れを説明するフローチャートを示す図である。
【図３】本発明の一実施例として説明する、分割転送方式の場合の処理の流れを説明するフローチャートを示す図である。
【図４】本発明の一実施例として説明する、転送データ管理テーブルを示す図である。
【図５】本発明の一実施例として説明する、共有メモリのマイクロプログラム格納エリアに格納されている分割データの状態を示す図である。
【図６】本発明の一実施例として説明する、本発明が適用される制御装置のタスクシーケンスを説明するフローチャートを示す図である。
【図７】本発明の一実施例として説明する、マイクロプログラムロードタスクの処理を説明するフローチャートを示す図である。
【図８】本発明の一実施例として説明する、メインタスクの処理を説明するフローチャートを示す図である。
【図９】本発明の一実施例として説明する、ストレージシステムのブロック構成を示す図である。
【図１０】本発明の一実施例として説明する、チャネル制御部の構成を示す図である。
【図１１】本発明の一実施例として説明する、ディスク制御部の構成を示す図である。
【図１２】本発明の一実施例として説明する、サービスプロセッサの構成を示す図である。
【符号の説明】
１〜４  プロセッサ
５  共有メモリ
６，７  制御対象部位
８  サービスプロセッサ
９  共有メモリアクセスバス
１０  サービスプロセッサ−プロセッサ間通信バス
１１，２１，３１，４１  プロセッサ制御部
１３，２３，３３，４３  ローカルメモリ
１４，２４，３４，４４  マイクロプログラム格納エリア
１５，２５，３５，４５  マイクロプログラムロードエリア
５１  マイクロプログラム格納エリア
７０  外部装置
８１  プロセッサ制御部
８２  メモリ
８３  マイクロプログラム格納エリア
１００  制御装置
４００  転送データ管理テーブル
９００  ディスクアレイ装置
９１０  チャネル制御部
９１０２  ローカルメモリ
９１０３  不揮発性メモリ
９２０  ディスク制御部
９２０２  ローカルメモリ
９２０３  不揮発性メモリ
９３０  キャッシュメモリ
９３１  共有メモリ
９３２  スイッチ
９３３  ディスクドライブ
９３５  管理端末
９３６  記録媒体
９４０  通信路
９５０  情報処理装置
【図１】
2004341725.tif 000003
【図２】
2004341725.tif 000004
【図３】
2004341725.tif 000005
【図４】
2004341725.tif 000006
【図５】
2004341725.tif 000007
【図６】
2004341725.tif 000008
【図７】
2004341725.tif 000009
【図８】
2004341725.tif 000010
【図９】
2004341725.tif 000011
【図１０】
2004341725.tif 000012
【図１１】
2004341725.tif 000013
【図１２】
2004341725.tif 000014