(57)【要約】【課題】割り込み対象装置のＩ／ＯレスポンスとＩ／Ｏ処理回数とを同時に向上することができる割り込み処理方法を提供する。【解決手段】上記課題を解決するために、装置制御部１０１は、自身の負荷に応じて自身に対する割り込み処理の方式を決定し、決定した割り込み処理の方式を割り込み制御情報として記憶する。周辺装置制御部１０２は、装置制御部１０１からの実行要求を受付けると、命令記憶部１０３から命令を読出して実行し、割り込み制御情報に応じた割り込み処理方式で装置制御部１０１に割り込みを行い終了通知をする。【選択図】図１
2008084043.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置に対してデータの入出力処理を行なう周辺装置制御部と該周辺装置制御部に対して任意の命令を実行させる装置制御部とを有する情報処理装置における割り込み処理方法において、
前記装置制御部が、所望の命令を命令記憶部に記憶して、前記周辺装置制御部に対して該命令を実行するように要求するとともに、自身の負荷状態に基づいて割り込み処理の方式を決定し、該決定した方式を割り込み制御情報として割り込み制御情報記憶部に記憶し、
前記周辺装置制御部が、前記装置制御部からの要求に応じて前記命令を実行し、該実行の終了を前記装置制御部に通知するための割り込み処理を、前記割り込み制御情報に基づいて行なう、
ことを特徴とする割り込み処理方法。
【請求項２】
前負荷に応じて、前記命令を完了すると直ちに割り込み処理を行なう即時割り込み処理と、前記命令終了後一定時間経過するまで割り込み処理を行なわない遅延割り込み処理、のいずれかの方式に決定する、
ことを特徴とする請求項１に記載の割り込み処理方法。
【請求項３】
所定のサンプリング間隔で自身の処理状況を監視してビジー率を算出し、該ビジー率が所定の値以下の場合は即時割り込み処理に決定し、該ビジー率が所定の値以上の場合は遅延割り込み処理に設定する、
ことを特徴とする請求項１に記載の割り込み処理方法。
【請求項４】
所望の命令を命令記憶部に記憶して、該命令を実行するように要求するとともに、自身の負荷状態に基づいて割り込み処理の方式を決定し、該決定した方式を割り込み制御情報として割り込み制御情報記憶部に記憶する装置制御部と、
該装置制御部からの要求に応じて前記命令を実行し、該実行の終了を前記装置制御部に通知するための割り込み処理を、前記割り込み制御情報に基づいて行なう周辺装置制御部と、
を備える情報処理装置。
【請求項５】
１または２以上のディスクアレイを制御するディスクアレイ制御装置であって、他のディスクアレイ制御装置とデータの送受信が可能なディスクアレイ制御装置において、
ホストコンピュータからの要求に応じて命令を命令記憶部に記憶して、該命令を実行するように要求するとともに、自身の負荷状態に基づいて割り込み処理の方式を決定し、該決定した方式を割り込み制御情報として割り込み制御情報記憶部に記憶する装置制御部と、
該装置制御部からの要求に応じて前記命令を実行することにより前記他のディスクアレイ制御装置とデータの送受信を実行し、該実行の終了を前記装置制御部に通知するための割り込み処理を、前記割り込み制御情報に基づいて行なう周辺装置制御部と、
を備えるディスクアレイ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周辺デバイスからＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）への割り込み処理方法に関する。
【背景技術】
【０００２】
情報処理装置や組み込みハードウェアにおいては、割り込み処理を使用することは当然の技術となっている。例えば、ＣＰＵが周辺デバイスに対して所望の処理を実行させる場合も、効率的に周辺デバイスを制御するために割り込み処理が利用される。
【０００３】
図９は、ＤＭＡ転送を行なう場合の一般的な構成例を示す図である。
ＣＰＵ９０１は、実行しようとする命令をメモリ９０２に書き込むとともに、ＤＭＡエンジン（以下、単に「ＤＭＡ」という）９０３に命令の実行を要求する。すると、ＤＭＡ９０３は、ＣＰＵ９０１からの要求に応じてメモリ９０２から所定の命令を読出して実行する。
【０００４】
実行が完了すると、ＤＭＡ９０３はＣＰＵ９０１に対して割り込み処理をおこなって命令実行が完了した旨の終了通知を行なう。
従来は、以下のような割り込み処理が行なわれていた。
【０００５】
図１０は、割り込み処理の従来例を説明する図である。
（１）ＣＰＵ９０１がＤＭＡ９０３に対して命令の実行要求を行なうと、（２）ＤＭＡ９０３は、メモリ９０２から所定の命令を読出して実行を行なう。そして、（３）直ちに、ＣＰＵ９０１に対して割り込み処理を行なって、命令の実行が終了した旨の終了通知を行なう。（４）〜（９）も同様である。以上に説明した割り込み処理を、以下「即時割り込み処理」という。
【０００６】
また、以下に示す割り込み処理を使用する場合もある。
図１１は、図１０と異なる割り込み処理の従来例を説明する図である。
（１）ＣＰＵ９０１がＤＭＡ９０３に対して命令−１の実行要求を行なうと、（２）ＤＭＡ９０３は、メモリ９０２から命令−１を読出して実行する。この時、（３）ＤＭＡ９０３は、命令−１の実行が完了しても一定時間割り込みを上げない。そして、一定時間経過後、ＣＰＵ９０１に対して割り込み処理を行なって終了通知をする。
【０００７】
（４）同様に、ＣＰＵ９０１がＤＭＡ９０３に対して命令−２の実行要求を行なうと、（５）ＤＭＡ９０３は、命令−２を実行後、一定時間割り込み処理（終了通知処理）を休止する。  （６）さらに、ＣＰＵ９０１がＤＭＡ９０３に対して命令−３の実行要求を行なうと、（７）ＤＭＡ９０３は、命令−２の終了通知をすることなく命令−３を実行する。
【０００８】
（８）一定時間経過すると、ＤＭＡ９０３は、ＣＰＵ９０１に対して割り込み処理を行なって当該一定時間内に実行した命令（命令−２及び命令−３）の終了通知を行なう。以上に説明した割り込み処理を、以下「遅延割り込み処理」という。
【０００９】
図９に示した装置を、例えば、ディスクアレイ装置の制御装置に使用した場合、ホストコンピュータからのＩ／Ｏ命令をＣＰＵ９０１が実行するレスポンス時間（以下、「Ｉ／Ｏレスポンス」という）を改善するには、即時割り込み処理を使用した方が有利である。しかし、ＣＰＵ９０１の負荷が高くなるため、ＣＰＵ９０１が一定時間に処理できるＩ／Ｏ命令の回数（以下、「Ｉ／Ｏ処理回数」という）は低下する。
【００１０】
一方、Ｉ／Ｏ処理回数の改善には、遅延割り込み処理を使用した方が有利であるが、割り込むタイミングが制限されるため、Ｉ／Ｏレスポンスが低下する。
特許文献１には、ＣＰＵへの割り込み後、ＣＰＵが割り込み受付け通知を出すまで割り込み処理を停止するＩ／Ｏ割り込み制御方式について開示されている。また、特許文献２には、コマンドの種類やキャッシュメモリの使用状況に応じて、即時割り込みと遅延割り込みとを選択的に実行する割り込み実行方法について開示されている。
【特許文献１】特開平０２−０４１５４８号公報
【特許文献２】特開２００２−０２３９６１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、割り込み対象装置のＩ／ＯレスポンスとＩ／Ｏ処理回数とを同時に向上することができる割り込み処理方法を提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係る割り込み処理方法は、周辺装置に対してデータの入出力処理を行なう周辺装置制御部と該周辺装置制御部に対して任意の命令を実行させる装置制御部とを有する情報処理装置における割り込み処理方法において、前記装置制御部が、所望の命令を命令記憶部に記憶して、前記周辺装置制御部に対して該命令を実行するように要求するとともに、自身の負荷状態に基づいて割り込み処理の方式を決定し、該決定した方式を割り込み制御情報として割り込み制御情報記憶部に記憶し、前記周辺装置制御部が、前記装置制御部からの要求に応じて前記命令を実行し、該実行の終了を前記装置制御部に通知するための割り込み処理を、前記割り込み制御情報に基づいて行なう、ことを特徴とする。
【００１３】
本発明によると、装置制御部が自身の負荷状態に基づいて自身に対して行なわれる割り込み処理の方式を決定し、割り込み制御情報として割り込み制御情報記憶部に記憶する。一方、周辺装置制御部は、その割り込み制御情報として記憶された（設定された）割り込み制御処理の方式にしたがって装置制御部に対する割り込み処理を行なう。
【００１４】
したがって、例えば、装置制御部の負荷が低い時には、直ちに割り込み処理を行なう即時割り込み処理を行なうように割り込み制御情報に設定することで、装置制御部が周辺装置制御部から実行終了の通知を得るまでの時間（例えば、Ｉ／Ｏレスポンス）を向上できる。
【００１５】
また、装置制御部の負荷が高い時には、一定時間経過するまで割り込み処理を行なわない遅延割り込み処理を行なうように割り込み制御情報に設定することで、装置制御部の負荷が軽減されるので装置制御部による周辺装置制御部への命令回数（例えば、Ｉ／Ｏ処理回数）を向上できる。
【発明の効果】
【００１６】
以上に説明したように、本発明によると、割り込み対象装置のＩ／ＯレスポンスとＩ／Ｏ処理回数とを同時に向上することができる割り込み処理方法を提供できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図１〜図８に基づいて説明する。
図１は、本発明の実施例に係る割り込み処理方法を使用するディスクアレイ制御装置１００の動作原理を説明する図である。
【００１８】
図１に示すディスクアレイ制御装置１００は、ホストコンピュータ１０５からの要求に応じてディスクアレイ１０６に対してデータの読出し・書込み処理を行なう。また、ディスクアレイ制御装置１００は、他のディスクアレイ制御装置１０７とデータの送受信を行なう。例えば、ディスクアレイ装置が多重化されている場合のデータの同期処理等でデータの送受信が行なわれる。
【００１９】
本実施例に係るディスクアレイ制御装置１００は、装置全体の制御を行なう装置制御部１０１と、装置制御部１０１の要求に応じて他のディスクアレイ制御装置１０７とデータの送受信等を行なう周辺装置制御部１０２と、実行命令やディスクキャッシュ時のデータ記憶する命令記憶部１０３と、割り込み制御情報を記憶する割り込み制御情報記憶部１０４と、を少なくとも備える。
【００２０】
装置制御部１０１は、ホストコンピュータ１０５からの要求に応じてディスクアレイ１０６に対してデータの読出し・書込み処理を行なう。
また、装置制御部１０１は、周辺装置制御部１０２に対して他のディスクアレイ制御装置１０７とデータの送受信等の処理を実行させる。この時、装置制御部１０１は、実行させたい命令を命令記憶部１０１に書き込んだ後、周辺装置制御部１０２に対して実行要求を行なう。
【００２１】
同時に、装置制御部１０１は、自身の負荷状態に基づいて自身に対する割り込み処理の方式を決定する。そして、決定した割り込み処理の方式を割り込み制御情報として割り込み制御情報記憶部１０に記憶する。
【００２２】
周辺装置制御部１０２は、装置制御部１０１からの実行要求を受付けると、命令記憶部１０３から命令を読出して実行し、例えば、他のディスクアレイ制御装置１０７とデータの送受信等を行なう。そして、命令の実行が完了すると、割り込み制御情報にしたがって装置制御部１０１に対する割り込み処理を行い終了通知をする。
【００２３】
図２は、本発明の実施例に係る割り込み処理方法を使用したディスクアレイシステムの全体構成の例を示す図である。
図２に示すようにディスクアレイシステム２００は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）等を構成するディスクアレイ装置２０１〜２０４と、各ディスクアレイ装置間を通信可能に接続するＦＲＴ（Ｆｒｏｎｔ  ｅｎｄ  Ｒｏｕｔｅｒ）２０５と、を備える。
【００２４】
ディスクアレイ装置２０１は、１又は２以上のディスクで構成されるディスクアレイ２０１ａと、ディスクアレイ２０１ａに対してデータの読出し・書込みを行なうＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）２０１ｂと、を備える。
【００２５】
同様に、ディスクアレイ装置２０２〜２０４も、それぞれディスクアレイ２０２ａ、２０３ａ、２０４ａと、ＣＭ２０２ｂ、ＣＭ２０３ｂ、ＣＭ２０４ｂと、を備える。
また、ディスクアレイ装置２０１及び２０４は、ホストコンピュータと接続されている。
【００２６】
例えば、ホストコンピュータからＲＥＡＤ命令を受付けると、ＣＭ２０１ｂは該当するデータをディスクアレイ２０１ａから読出してホストコンピュータに送信する。
また、ＷＲＩＴＥ命令を受付けると、ＣＭ２０１ｂは、ホストコンピュータから受信したデータをディスクアレイ２０１ａに書き込む。さらに、ディスクアレイ装置２０１及び２０２が２重化を構成する場合、ＣＭ２０１ｂは、ディスクアレイ装置２０２にデータを送信する。データを受付けたＣＭ２０２ｂは、そのデータをディスクアレイ２０２ａに記憶する。ディスクアレイ装置２０３及び２０４も同様である。
【００２７】
なお、図２では磁気ディスク及びＣＭが４つの場合の構成例を示したが、図示した構成に限定されないのは当然である。
図３は、本発明の実施例に係るＣＭ３００の具体的な構成例を示す図である。
【００２８】
図３に示すようにＣＭ３００は、ホストコンピュータとの接続インターフェースであるＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｏｒ）３０１と、他のＣＭとＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）による通信を行なうＤＭＡエンジン（以下、単に「ＤＭＡ」という）３０２と、ホストコンピュータからの命令に応じてデータの読出し・書込みを行なうＣＰＵ３０３と、ディスクキャッシュや制御用メモリとして使用するメモリ３０４と、メモリ３０４を制御するＭＣＨ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）３０５と、ディスクアレイ制御用のアダプタであるＤＡ（Ｄｅｖｉｃｅ  Ａｄａｐｔｏｒ）３０６と、を備える。
【００２９】
ディスクアレイ装置間でデータ転送を行なう場合、ＤＭＡ３０２は、ＣＰＵ３０３からの要求に応じて、メモリ３０４の所定の位置に記憶されている命令（例えば、ＲＥＡＤ命令やＷＲＩＴＥ命令）を読出して実行する。
【００３０】
図４は、本発明に係る割り込み処理方法を使用したＤＭＡ転送処理の概要を説明する図である。
ＤＭＡ３０２は、ＣＰＵ３０３からの要求に応じて命令を実行する命令実行部３０２ａと、ＣＰＵ３０３への割り込みを制御する割り込み制御部３０２ｂと、を備える。
【００３１】
命令実行部３０２ａは、命令実行ポインタと命令最終ポインタを保持する。いずれのポインタも、メモリ３０４に連続的に書き込まれた命令のアドレスを記憶する。そして、命令実行ポインタは実行する最初の命令のアドレスを記憶し、命令最終ポインタは、連続する命令の最後尾にある命令のアドレスを記憶する。
【００３２】
また、ＤＭＡ３０２は、ＣＰＵ３０３の要求に応じて、命令実行ポインタが示す命令から命令最終ポインタが示す命令までを順次実行する。
ＣＰＵ３０３は、命令終了ポインタと命令最終ポインタを保持する。いずれのポインタも、メモリ３０４に連続的に書き込まれた命令のアドレスを記憶する。そして、命令終了ポインタは前回実行された命令のアドレスを、命令最終ポインタはリストの最後尾の命令のアドレスを記憶する。
【００３３】
ＣＭ間でＤＭＡ転送を行なう場合、ＣＰＵ３０３は、ＤＭＡ３０２に実行させたい命令をメモリ３０４に書き込む（命令の終りに追加する）とともに、命令最終ポインタを更新する。図の例４では、命令−２、命令−３及び命令−４をメモリ３０４に書き込んだ場合を示している。したがって、この時の命令終了ポインタには命令−１のアドレス、命令最終ポインタには命令−４のアドレスがセットされる。
【００３４】
所望の命令をメモリ３０４に書き込むと、ＣＰＵ３０３は、ＤＭＡ３０２に対して命令の実行を要求する。この時、ＤＭＡ３０２が保持する命令最終ポインタも更新される。図４の例では、命令最終ポインタに命令−４のアドレスがセットされる。
【００３５】
ＣＰＵ３０３から命令の実行要求を受付けると、ＤＭＡ３０２は、命令の実行を開始する。まず、ＤＭＡ３０２は、命令実行ポインタが示すアドレスの命令をメモリ３０４から読出して実行する。図４の例では、命令−２をメモリ３０４から読出して実行する。
【００３６】
命令の実行が終了すると、ＤＭＡ３０２は、当該命令の割り込み制御フラグを参照する。そして、割り込み制御フラグがＯＦＦの場合、ＤＭＡ３０２は、ＣＰＵ３０３への割り込みを行なって命令の実行が完了したことを通知する。そして、命令実行ポインタを更新し、次の命令を読出す。図４の例では、命令実行ポインタを１命令分だけインクリメントし、命令−３を読出す。
【００３７】
一方、ＤＭＡ３０２から実行完了の通知を受けると、ＣＰＵ３０３は、命令終了ポインタを更新する。図４の例では、命令終了ポインタを１命令分だけインクリメントし、命令−３のアドレスに設定する。
【００３８】
また、当該命令の割り込み制御フラグがＯＮの場合、ＤＭＡ３０２は、ＣＰＵ３０３への割り込みを行なうことなく（ＣＰＵ３０３へ命令の実行完了を通知することなく）、命令実行ポインタを更新して次の命令を読出す。
【００３９】
ＤＭＡ３０２は、以上の処理を命令実行ポインタと命令最終ポインタが一致するまで実行する。
図５は、本発明の実施例に係るＤＭＡ３０２が実行する命令の構成例を示す図である。
【００４０】
図５に示す命令５００は、コマンド、割り込み制御フラグ、データ長、転送元アドレス及び転送先アドレスで構成されている。
コマンドは、ＲＥＡＤ／ＷＲＩＴＥといった命令の種類（処理内容）である。割り込み制御フラグは、ＣＰＵ３０３への割り込み処理を制御するフラグであり、ＣＰＵ３０３が自身の負荷状態等に応じて設定する。
【００４１】
本実施例では、所定のサンプリング間隔（例えば、１ｍｓ）で処理状況をチェックし、例えば、ＣＰＵ３０３が何らかの処理中であればＢＵＳＹ状態と判断し、処理中でなければＩＤＬＥ状態と判断する。そして、ＢＵＳＹ状態にあった場合をカウントし（この時のカウント値を「ＢＵＳＹカウント値」という）、以下の式からＢＵＳＹ率を算出する。
【００４２】
（ＢＵＳＹ率）＝（ＢＵＳＹカウント値／サンプリング総数）×１００
そして、ＢＵＳＹ率が７０％を超えると負荷が高いと判断し、割り込み制御フラグをＯＮに設定する。なお、本実施例では、ＢＵＳＹ率の閾値に７０％を使用しているが、これに限定しないのは当然であり、必要に応じた値を閾値として使用すればよい。
【００４３】
データ長は、コマンドに応じて処理を行なうデータのサイズを示す。また、転送元アドレスは転送するデータが記憶されている先頭アドレス、転送先アドレスはデータを転送して記憶する先頭アドレスを示す。
【００４４】
ＤＭＡ３０２は、割り込み制御フラグのＯＮ／ＯＦＦに応じてＣＰＵ３０３への割り込み処理の方法を切換える。すなわち、割り込み制御フラグがＯＮの場合には遅延割り込み処理、割り込み制御フラグがＯＦＦの場合には即時割り込み処理を行なう。
【００４５】
図６は、本発明の実施例に係る割り込み処理の概要を説明する図である。
（１）ＣＰＵ３０３の負荷が大きい場合、ＣＰＵ３０３は、割り込み制御フラグをＯＮに設定した命令−１をメモリ３０４に書込み、ＤＭＡ３０２に対して実行要求を行なう。
【００４６】
（２）ＣＰＵ３０３からの実行要求を受付けると、ＤＭＡ３０２は、メモリ３０４から命令−１を読出して実行する。また、当該命令の割り込み制御フラグはＯＮに設定されているので、ＤＭＡ３０２は、命令実行後一定時間経過するまでＣＰＵ３０３への割り込み処理を抑止する。そして、一定時間経過後にＣＰＵ３０３に対して割り込み処理を行なって終了通知をする。
【００４７】
（３）ＣＰＵ３０３の負荷が小さい場合、ＣＰＵ３０３は、割り込み制御フラグをＯＦＦに設定した命令−２をメモリ３０４に書込み、ＤＭＡ３０２に対して実行要求を行なう。
【００４８】
（４）ＣＰＵ３０３からの実行要求を受付けると、ＤＭＡ３０２は、メモリ３０４から命令−２を読出して実行する。また、当該命令の割り込み制御フラグはＯＦＦに設定されているので、ＤＭＡ３０２は、命令実行後直ちにＣＰＵ３０３に対して割り込み処理を行なって終了通知をする。
【００４９】
（５）（１）と同様に、ＣＰＵ３０３が割り込み制御フラグをＯＮに設定した命令−３をメモリ３０４に書き込んでＤＭＡ３０２に対して実行要求を行なうと、ＤＭＡ３０２は命令−３をメモリ３０４から読出して実行する。
【００５０】
この時、当該命令の割り込み制御フラグはＯＮに設定されているので、ＤＭＡ３０２は、一定時間経過するまでＣＰＵ３０３への割り込み処理を休止する。
（６）さらに、（１）と同様に、ＣＰＵ３０３が割り込み制御フラグをＯＮに設定した命令−３をメモリ３０４に書き込んでＤＭＡ３０２に対して実行要求を行なうと、ＤＭＡ３０２は、命令−３の終了通知をすることなく命令−４を実行する。
【００５１】
（７）ＤＭＡ３０２は、一定時間経過後に、ＣＰＵ３０３への割り込み処理を行ない、当該一定時間内に実行した命令（命令−３及び命令−４）の終了通知をする。
図７は、本発明の実施例に係る命令実行部３０２ａの具体的な処理を示すフローチャートである。
【００５２】
ＣＰＵ３０３からの実行要求を受付けると、命令実行部３０２ａは、処理をステップＳ７０１に移行する。
ステップＳ７０１において、命令実行部３０２ａは、例えば、内部に備わるレジスタ等から命令実行ポインタと命令最終ポインタとを読出す。そして、両ポインタのアドレスを比較する。比較の結果、両ポインタが一致する場合、命令実行部３０２ａは、実行する命令が存在しないと判断し、処理をステップＳ７０１に移行する。
【００５３】
一方、ステップＳ７０１において、比較の結果、両ポインタが一致しない場合、実行する命令が存在すると判断し、処理をステップＳ７０２に移行する。
ステップＳ７０２において、命令実行部３０２ａは、命令実行ポインタが指すメモリ３０４内のアドレスから命令を読み込む。そして、処理をステップＳ７０３に移行し、当該命令を実行する。
【００５４】
命令の実行が完了すると、命令実行ポインタは、処理をステップＳ７０４に移行する。そして、命令実行部３０２ａは、命令実行ポインタを１（１命令文）だけインクリメントする。
【００５５】
以上の処理によって、１つの命令の実行が完了すると、命令実行部３０２ａは、処理をステップＳ７０５に移行する。そして、ＣＰＵ３０３に対して終了通知を行なう割り込み処理を割り込み制御部３０２ｂに依頼する。
【００５６】
以上の処理が終了すると、命令実行部３０２ａは、処理をステップＳ７０１に移行し、全ての命令の実行が終わるまで、ステップＳ７０１〜Ｓ７０５の処理を実行する。
図８は、本発明の実施例に係る割り込み制御部３０２ｂの具体的な処理を示すフローチャートである。
【００５７】
図７に示したＳ７０５において、命令実行部３０２ａが割り込み制御部３０２ｂに対して割り込み処理による終了通知を依頼すると、割り込み制御部３０２ｂは、処理をステップＳ８０１に移行する。
【００５８】
ステップＳ８０１において、割り込み制御部３０２ｂは、図７に示したステップＳ７０３で実行した命令の割り込み制御フラグをチェックする。そして、割り込み制御フラグがＯＮの場合、処理をステップＳ８０２に移行する。
【００５９】
ステップＳ８０２において、割り込み制御部３０２ｂは、ＤＭＡ３０２内部のレジスタ等に設けられた待ちフラグ（以下、単に「待ちフラグ」という）を読出し、待ちフラグをチェックする。なお、待ちフラグは、タイマ機能の有無を示すためのフラグであり、待ちフラグがＯＮの場合にタイマ起動中であることを示す。
【００６０】
ステップＳ８０２において、待ちフラグがＯＮの場合、割り込み制御部３０２ｂは、割り込み処理を行なうことなくステップＳ８０６に移行して処理を終了する。
ステップＳ８０２において、待ちフラグがＯＦＦの場合、割り込み制御部３０２ｂは、処理をステップＳ８０３に移行する。そして、待ちフラグをＯＮに設定すると同時に、タイマを起動して一定時間待機（スリープ）状態となる。
【００６１】
この状態で、更に命令実行部３０２ａから割り込み制御部３０２ｂ（プロセス）が呼び出された場合、当該割り込み制御部３０２ｂはステップＳ８０２からステップＳ８０６に移行して処理を終了することとなる。
【００６２】
タイマ機能により一定時間経過して待機状態から復帰すると、割り込み制御部３０２ｂは、処理をステップＳ８０５に移行する。そして、ＣＰＵ３０３に対して割り込み処理を行ない命令の終了通知を行なう。そして、ステップＳ８０３に移行して割り込み処理を終了する。
【００６３】
一方、ステップＳ８０１において、割り込み制御フラグがＯＦＦの場合、割り込み制御部３０２ｂは、処理をステップＳ８０４に移行する。
ステップＳ８０４において、割り込み制御部３０２ｂは、待ちフラグを読出す。そして、待ちフラグがＯＮの場合には、当該待ちフラグをＯＦＦにすると同時に、タイマをキャンセルする。そして、処理をステップＳ８０５に移行する。
【００６４】
ステップＳ８０５において、割り込み制御部３０２ｂは、ＣＰＵ３０３に対して割り込み処理をおこなって、図７に示したステップＳ７０３の命令の終了通知を行なう。そして、ステップＳ８０６に移行して割り込み処理を終了する。
【００６５】
ここで、以上に説明した実施例では、本実施例に係る割り込み処理方法をディスクアレイ制御装置１００に適用した場合について説明したが、例えば、情報処理装置のようにＣＰＵが周辺装置を制御する場合に割り込み処理を使用する装置であれば同様の効果を得ることが可能である。
【００６６】
以上に説明したように、本実施例に係るディスクアレイ制御装置１００は、ＣＰＵ３０３が自身の負荷状態に応じて割り込み処理の方式を割り込み制御情報として割り込み制御情報記憶部１０に記憶（設定）し、ＤＭＡ３０２は、割り込み制御情報として設定された割り込み処理の方式を使用してＣＰＵ３０３に割り込み処理を行なう。
【００６７】
ＢＵＳＹ率が低いときには、割り込み制御情報に即時割り込み処理を設定することで、１つのＩ／Ｏ処理をすばやく終えることができるようになり、Ｉ／Ｏレスポンスを向上することができる。
【００６８】
また、ＢＵＳＹ率が高いときには、割り込み制御情報に遅延割り込み処理を設定することで、複数の割り込み処理を１回の割り込み処理にまとめて行なうことができるようになり、ＣＰＵ３０３の負荷が軽減され、ＣＰＵ３０３におけるＩ／Ｏ処理回数を向上することができる。
その結果、Ｉ／ＯレスポンスとＩ／Ｏ処理回数を同時に性能向上させることが可能となる効果を奏する。
【００６９】
（付記１）  周辺装置に対してデータの入出力処理を行なう周辺装置制御部と該周辺装置制御部に対して任意の命令を実行させる装置制御部とを有する情報処理装置における割り込み処理方法において、
前記装置制御部が、所望の命令を命令記憶部に記憶して、前記周辺装置制御部に対して該命令を実行するように要求するとともに、自身の負荷状態に基づいて割り込み処理の方式を決定し、該決定した方式を割り込み制御情報として割り込み制御情報記憶部に記憶し、
前記周辺装置制御部が、前記装置制御部からの要求に応じて前記命令を実行し、該実行の終了を前記装置制御部に通知するための割り込み処理を、前記割り込み制御情報に基づいて行なう、
ことを特徴とする割り込み処理方法。
（付記２）  前負荷に応じて、前記命令を完了すると直ちに割り込み処理を行なう即時割り込み処理と、前記命令終了後一定時間経過するまで割り込み処理を行なわない遅延割り込み処理、のいずれかの方式に決定する、
ことを特徴とする付記１に記載の割り込み処理方法。
（付記３）  所定のサンプリング間隔で自身の処理状況を監視してビジー率を算出し、該ビジー率が所定の値以下の場合は即時割り込み処理に決定し、該ビジー率が所定の値以上の場合は遅延割り込み処理に設定する、
ことを特徴とする付記１に記載の割り込み処理方法。
（付記４）  所望の命令を命令記憶部に記憶して、該命令を実行するように要求するとともに、自身の負荷状態に基づいて割り込み処理の方式を決定し、該決定した方式を割り込み制御情報として割り込み制御情報記憶部に記憶する装置制御部と、
該装置制御部からの要求に応じて前記命令を実行し、該実行の終了を前記装置制御部に通知するための割り込み処理を、前記割り込み制御情報に基づいて行なう周辺装置制御部と、
を備える情報処理装置。
（付記５）  前記装置制御部は、前負荷に応じて、前記命令終了すると直ちに割り込み処理を行なう即時割り込み処理と、前記命令終了後一定時間経過するまで割り込み処理を行なわない遅延割り込み処理、のいずれかの方式に決定する、
ことを特徴とする付記４に記載の情報処理装置。
（付記６）  前記装置制御部は、所定のサンプリング間隔で自身の処理状況を監視してビジー率を算出し、該ビジー率が所定の値以下の場合は即時割り込み処理に決定し、該ビジー率が所定の値以上の場合は遅延割り込み処理に設定する、
ことを特徴とする付記４に記載の情報処理装置。
（付記７）  １または２以上のディスクアレイを制御するディスクアレイ制御装置であって、他のディスクアレイ制御装置とデータの送受信が可能なディスクアレイ制御装置において、
ホストコンピュータからの要求に応じて命令を命令記憶部に記憶して、該命令を実行するように要求するとともに、自身の負荷状態に基づいて割り込み処理の方式を決定し、該決定した方式を割り込み制御情報として割り込み制御情報記憶部に記憶する装置制御部と、
該装置制御部からの要求に応じて前記命令を実行することにより前記他のディスクアレイ制御装置とデータの送受信を実行し、該実行の終了を前記装置制御部に通知するための割り込み処理を、前記割り込み制御情報に基づいて行なう周辺装置制御部と、
を備えるディスクアレイ制御装置。
（付記８）  前記装置制御部は、前負荷に応じて、前記命令終了すると直ちに割り込み処理を行なう即時割り込み処理と、前記命令終了後一定時間経過するまで割り込み処理を行なわない遅延割り込み処理、のいずれかの方式に決定する、
ことを特徴とする付記７に記載のディスクアレイ制御装置。
（付記９）  前記装置制御部は、所定のサンプリング間隔で自身の処理状況を監視してビジー率を算出し、該ビジー率が所定の値以下の場合は即時割り込み処理に決定し、該ビジー率が所定の値以上の場合は遅延割り込み処理に設定する、
ことを特徴とする付記７に記載のディスクアレイ制御装置。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施例に係る割り込み処理方法を使用するディスクアレイ制御装置の動作原理を説明する図である。
【図２】本発明の実施例に係る割り込み処理方法を使用したディスクアレイシステムの全体構成の例を示す図である。
【図３】本発明の実施例に係るＣＭの具体的な構成例を示す図である。
【図４】本発明に係る割り込み処理方法を使用したＤＭＡ転送処理の概要を説明する図である。
【図５】本発明の実施例に係るＤＭＡが実行する命令の構成例を示す図である。
【図６】本発明の実施例に係る割り込み処理の概要を説明する図である。
【図７】本発明の実施例に係る命令実行部の具体的な処理を示すフローチャートである。
【図８】本発明の実施例に係る割り込み制御部の具体的な処理を示すフローチャートである。
【図９】ＤＭＡ転送を行なう場合の一般的な構成例を示す図である。
【図１０】割り込み処理の従来例を説明する図である。
【図１１】図１０と異なる割り込み処理の従来例を説明する図である。
【符号の説明】
【００７１】
１００      ディスクアレイ制御装置
１０１      装置制御部
１０２      周辺装置制御部
１０３      命令記憶部
１０４      割り込み制御情報記憶部
１０５      ホストコンピュータ
１０６      ディスクアレイ
１０７      他のディスクアレイ制御装置
２０１      ディスクアレイ装置
２０１ａ    ディスクアレイ
２０１ｂ    ＣＭ
３０２      ＤＭＡエンジン
３０３      ＣＰＵ
３０４      メモリ
３０５      ＭＣＨ
【図１】
2008084043.tif 000003
【図２】
2008084043.tif 000004
【図３】
2008084043.tif 000005
【図５】
2008084043.tif 000006
【図６】
2008084043.tif 000007
【図７】
2008084043.tif 000008
【図８】
2008084043.tif 000009
【図１０】
2008084043.tif 000010
【図１１】
2008084043.tif 000011
【図４】
2008084043.tif 000012
【図９】
2008084043.tif 000013