(57)【要約】【課題】  チャネルカードのデータ転送時における転送終了割込間隔値の最適な値を自動的に設定する。【解決手段】  ドライバ３内の割込間隔値テーブル３１に格納されているパラメータをチャネルカード４内の割込間隔値レジスタ４１に設定する。チャネルカード４は設定された割込間隔値のパラメータに従ってデータ転送を行い、全てのデータの転送が完了すればチャネルカード４からドライバ３に対してデータ転送終了報告を行う。性能測定タイマ３３はデータ転送に要した時間を測定しており、得られた値を性能測定値テーブルに格納する。以上の動作を割込間隔値テーブル３１に格納されているパラメータの数繰り返し、性能測定値テーブル３２に格納されている数値から最小の値、つまり最も少ないデータ転送時間を読み出し、その値に対応する割込間隔値テーブル３１のパラメータを割込間隔値レジスタ４１に設定する。【選択図】      図１  
2005032036.tif 000002
【特許請求の範囲】
【請求項１】
チャネルカードが上位装置にデータ転送終了割込を通知する間隔である割込間隔値を自動的に設定するチャネルカードの割込間隔値自動設定装置において、前記上位装置は、複数の割込間隔値パラメータを格納する割込間隔値テーブルと、前記チャネルカードがデータ転送に要した時間を計測する性能測定タイマと、前記性能測定タイマで得られた測定値を格納する性能測定値テーブルとを有し、前記チャネルカードは、前記割込間隔値テーブルに格納されている複数の割込間隔値パラメータのうち１つを格納する割込間隔値レジスタを有し、前記上位装置は、前記割込間隔値テーブルに格納されている割込間隔値パラメータ毎に、前記チャネルカードがデータ転送に要した時間を前記前記性能測定タイマで測定し、得られた各測定値を前記性能測定値テーブルに格納し、前記性能測定テーブルに格納された最小測定値に対応する割込間隔値パラメータを前記割込間隔値レジスタに格納することを特徴とするチャネルカードの割込間隔値自動設定装置。
【請求項２】
前記割込間隔値パラメータはパケット処理数と待ち時間とを構成要素としていることを特徴とする請求項１記載のチャネルカードの割込間隔値自動設定装置。
【請求項３】
前記上位装置はドライバであることを特徴とする請求項１または請求項２に記載のチャネルカードの割込間隔値自動設定装置。
【請求項４】
前記上位装置はファームウェアであることを特徴とする請求項１または請求項２に記載のチャネルカードの割込間隔値自動設定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、チャネルカードの割込間隔値を自動的に設定するチャネルカードの割込間隔値自動設定装置に関する。
【背景技術】
【０００２】
従来、図２で示されるような標準的なシステム構成においては、チャネルカード４のデータ転送を行う際に、ＯＳ２がチャネルカード４に対してデータ転送要求と共にメインメモリ１上の転送開始アドレス、データ転送先のアドレス、データレングス等の必要なデータを送信し、データ転送が終了した際にチャネルカード４からＯＳ２に対しデータ転送終了通知を送信していた。しかしながら、この方式ではＯＳが全ての制御を行っているためＯＳの負荷が増大し、結果的にシステムのパフォーマンスの低下を招いていた。
【０００３】
近年のチャネルカードの高機能化により、データ転送に必要な制御をチャネルカード自身で行わせることが出来るようになっている。そのため、ＯＳはデータ転送に必要なデータの作成とチャネルカードへのデータ転送開始の指示、１回の転送指示で最高何パケットまで転送を行うかの指示、及びチャネルカードからのデータ転送終了割込を待つだけでよくなっており、ＯＳへの負荷が軽減されている。
【０００４】
次に割込間隔値について説明を行う。割込間隔値はチャネルカードに設定され、パケット処理数及び待ち時間の２つの要素から構成されている。ＯＳからデータ転送処理要求が出るとチャネルはパケット転送を行う。待ち時間経過前にパケット処理数で定められたパケット数の転送が全て終了した場合、転送終了時点でＯＳにデータ転送終了割込を通知する。待ち時間が経過してもパケット処理数で定められたパケット数の転送が終了していない場合、その時点でＯＳにデータ転送終了割込を通知する。つまり、転送が終了していないパケットが残っていても、待ち時間が経過した時点でＯＳにデータ転送終了割込を通知する。
【０００５】
例えば、設定された割込間隔値が（処理数：５０，時間：３０ms）であったとする。チャネルは２０ms経過の時点で５０個のパケット全てが転送終了していればその時点（２０ms）でＯＳにデータ転送終了割込を通知する。３０個のパケットを転送した時点で３０msになった場合、その時点（３０ms）でＯＳにデータ転送終了割込を通知する。
【０００６】
このデータ転送終了割込の間隔はチャネルカード内の割込間隔レジスタによって変更することが可能であり、システム構成に最適な割込間隔値を設定することによりＯＳへの負荷をさらに小さくしデータ転送性能を向上させることが可能である。
【０００７】
【特許文献１】特開２００１−１０９６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、現状ではシステム構成毎に最適な割込間隔値は設定されておらず、標準的なシステム構成における性能測定結果から得られた割込間隔値が全てのシステムに適用されていた。この為、システムの構成によっては設定された割込間隔値が最適な値でない場合があった。最適な割込間隔値を設定するには割込間隔値が異なる複数のソフトウェアを作成し、実際に人手により性能値を計測する必要があるため、かなりの時間と手間がかかるという問題があった。
【０００９】
本発明は上記問題点に鑑み、チャネルカードのデータ転送時におけるチャネルカードの転送終了割込間隔値を自動的に設定するチャネルカードの割込間隔値自動設定装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、チャネルカードが上位装置にデータ転送終了割込を通知する間隔である割込間隔値を自動的に設定するチャネルカードの割込間隔値自動設定装置において、前記上位装置は、複数の割込間隔値パラメータを格納する割込間隔値テーブルと、前記チャネルカードがデータ転送に要した時間を計測する性能測定タイマと、前記性能測定タイマで得られた測定値を格納する性能測定値テーブルとを有し、前記チャネルカードは、前記割込間隔値テーブルに格納されている複数の割込間隔値パラメータのうち１つを格納する割込間隔値レジスタを有し、前記上位装置は、前記割込間隔値テーブルに格納されている割込間隔値パラメータ毎に、前記チャネルカードがデータ転送に要した時間を前記前記性能測定タイマで測定し、得られた各測定値を前記性能測定値テーブルに格納し、前記性能測定テーブルに格納された最小測定値に対応する割込間隔値パラメータを前記割込間隔値レジスタに格納することを特徴とする。
【００１１】
また本発明は、割込間隔値パラメータがパケット処理数と待ち時間とを構成要素としていることを特徴とする。
【００１２】
更に本発明は、上位装置がドライバもしくはファームウェアであることを特徴とする。
【発明の効果】
【００１３】
かかる本発明によれば、ＯＳの性能測定指示によりドライバに性能測定ルーチンを読み込み、割込間隔値テーブルに格納されている複数の割込間隔値毎の転送性能測定を行い、最も転送性能が高い割込間隔値をチャネルカードに設定するようにした。これにより、様々な構成のシステムに対して最適な割込間隔値を人手を介することなく自動的に設定することが可能となる。
【発明を実施するための最良の形態】
【００１４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１は本発明の一実施形態を示したシステム図である。図２のシステム図との違いは、メインメモリ１内に通常のデータ転送を行う際に使用されるデータ転送開始ルーチン１とデータ転送終了ルーチン１２、及び性能測定を行う際に使用される性能測定開始ルーチン１３と性能測定終了ルーチン１４を有し、ドライバ３内に複数のパラメータ（任意に設定可能）を持つ割込間隔値テーブル３１と、性能測定の結果得られた値を格納する性能値テーブル３２と、タイマレジスタである性能測定タイマ３３とを有し、チャネルカード４内に前記の割込間隔値テーブル３１からパラメータを読み込み、その値を格納する割込間隔値レジスタ４１を有することにある。
【００１６】
データ転送開始ルーチン１１、データ転送終了ルーチン１２、性能測定開始ルーチン１３、性能測定終了ルーチン１４はそれぞれ図３の（ａ）、（ｂ）、（ｃ）、（ｄ）に示す通りである。
【００１７】
次に本実施形態の動作について説明を行う。
【００１８】
まず通常のデータ転送を行う際の動作について図１と図４を用いて説明する。なお、ドライバ３には初期状態としてデータ転送開始ルーチン１１とデータ転送終了ルーチン１２が設定されている。
【００１９】
ＯＳ２からドライバ３に対してチャネルデータ転送指示が出されると、ドライバ３はチャネルカード４に対してデータ転送開始指示を出す（Ｓ１）。チャネルカード４は予め設定されている転送終了割込間隔値に従ってデータ転送を行う（Ｓ２）。全てのデータの転送が完了するまでＳ２の動作を繰り返す（Ｓ３）。全てのデータの転送が完了すればチャネルカード４からドライバ３に対してデータ転送終了報告を行う（Ｓ４）。最後にドライバ３からＯＳ２に対してデータ転送終了報告を行う（Ｓ５）。
【００２０】
次にシステムの性能測定を行う際の動作について図１と図５を用いて説明する。なお、割込間隔値テーブル３１及び性能測定値テーブル３２は図６に示すようにｎ段であるとする。
【００２１】
ＯＳ２からドライバ３に対して性能測定指示が出されると、ドライバ３はメインメモリ１から性能測定開始ルーチン１３と性能測定終了ルーチン１４を読み出し、設定する。次にドライバ３内の割込間隔値テーブル３１に格納されている１段目のパラメータをチャネルカード４内の割込間隔値レジスタ４１に設定する（Ｓ７，Ｓ８）。ドライバ３はチャネルカード４に対してデータ転送開始指示を出し、性能測定タイマ３３をスタートさせる（Ｓ９）。チャネルカード４は設定された割込間隔値のパラメータに従ってデータ転送を行い（Ｓ１０）、全てのデータの転送が完了すればチャネルカード４からドライバ３に対してデータ転送終了報告を行う（Ｓ１１，Ｓ１２）。終了報告を受けたドライバ３は性能測定タイマ３３をストップする（Ｓ１３）。得られた性能測定タイマ３３の値（データ転送時間）を性能測定値テーブルに格納する（Ｓ１４）。以上の動作をｎ回、つまり割込間隔値テーブル３１の段数分行う（Ｓ８〜Ｓ１６）。性能測定がｎ回終了すれば、性能測定値テーブル３２に格納されている数値から最小の値、つまり最も少ないデータ転送時間を読み出し、その値に対応する割込間隔値テーブル３１のパラメータを割込間隔値レジスタ４１に設定する（Ｓ１７）。ドライバ３からＯＳ２に対して性能測定終了報告を行う（Ｓ１８）。最後にドライバ３にデータ転送開始ルーチン１１とデータ転送終了ルーチン１２を設定し、初期状態に戻す（Ｓ１９）。
【００２２】
次に性能測定を行う際の動作を具体例を挙げて詳細に説明する。図７（ａ）に示すように１００個のパケットに分割されたデータを転送する場合を例に挙げる。また割込間隔値テーブル３１は図７（ｂ）に示すものであるとする。
【００２３】
図７（ｂ）のテーブルにおいて左側はパケットの処理数を、右側は待ち時間を表している。例えば１段目の場合、５０ms以内に５０個のパケット全てを転送出来れば転送終了時点でドライバにデータ転送終了割込を通知する。５０ms以内に５０個のパケット全てを転送出来なかった場合、５０ms経過した時点で残りパケットがあってもドライバにデータ転送終了割込を通知する。この時同時にドライバには何個のパケットを転送したかの報告を行うので、ドライバは次のデータ転送指示で残パケットの転送を行うことが出来る。
【００２４】
上記具体例の動作を説明する。ＯＳから性能測定指示が出されると、ドライバは性能測定開始ルーチンと性能測定終了ルーチンを設定する。ドライバは割込間隔値テーブルに格納されているパラメータをチャネルカードの割込間隔値レジスタに設定する。今回の具体例ではまず最初に図７（ｂ）割込間隔値テーブルの一段目、つまり処理数５０，待ち時間５０msをパラメータとして設定することになる。
【００２５】
次にドライバはチャネルカードに対しデータ転送開始指示を出し、性能測定タイマをスタートさせる。チャネルカードにおいて５０ms内に５０個のパケット転送が可能であった場合５０個パケット転送を行い、転送が終了した時点でドライバに対し転送したパケット数（５０個）の報告及びデータ転送終了割込を通知する。
【００２６】
ドライバは再度チャネルカードにデータ転送を要求する。チャネルカードにおいて５０ms経過しても３０個のデータしか転送できていない場合、チャネルカードは５０ms経過した時点でドライバに転送終了したパケット数（３０個）を報告し、データ転送終了割込を通知する。
【００２７】
ドライバは再度データ転送要求するが、１００個のパケットの内８０個が転送済みであるので、転送要求するパケット数は２０個となる。チャネルカードにおいて５０ms以内にドライバの指定通り２０個のデータ転送が可能であった場合、全てのデータ転送が完了したことになるので、ドライバはチャネルカードからデータ転送終了の通知を受けた時点で性能測定タイマをストップする。この性能測定タイマの値がデータ転送時間であり、ドライバはこの値を性能測定値テーブルに格納し、ＯＳにデータ転送終了報告を行う。
【００２８】
上記動作を割込間隔値テーブルの段数分、つまり図７（ｂ）の割込間隔値テーブルでは１６回行うことになる。全てのパラメータの性能測定処理が終了すると、ドライバは性能測定値テーブルから最小の値を読み出し、その値に対応するパラメータを割込間隔値レジスタに設定する。例えば性能測定値テーブルが図７（ｃ）に示す様なものであった場合、最小値は５段目の８０msとなり、この値に対応するパラメータ（処理数：５０，待ち時間：２５ms）を割込間隔値レジスタに設定する。
【００２９】
最後にドライバはＯＳに対し性能測定終了を報告し、データ転送開始ルーチンとデータ転送終了ルーチンを設定する。
【００３０】
なお、上記実施形態におけるドライバはファームウェアに置き換えても何ら問題はないことは明らかである。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態を示すブロック図である。
【図２】従来技術のシステム構成を示すブロック図である。
【図３】実施形態におけるルーチンを示した図である。
【図４】実施形態の動作でのデータ転送処理を示すフローチャートである。
【図５】実施形態の動作での性能測定処理を示すフローチャートである。
【図６】実施形態における割込間隔値テーブルと性能測定値テーブルを示した図である。
【図７】実施例における転送するデータと割込間隔値テーブルと割込間隔値レジスタを示した図である。
【符号の説明】
【００３２】
１  メインメモリ
１１  データ転送開始ルーチン
１２  データ転送終了ルーチン
１３  性能測定開始ルーチン
１４  性能測定終了ルーチン
２  ＯＳ
３  ドライバ
３１  割込間隔値テーブル
３２  性能測定値テーブル
３３  性能測定タイマ
４  チャネルカード
４１  割込間隔値レジスタ
【図１】
2005032036.tif 000003
【図２】
2005032036.tif 000004
【図３】
2005032036.tif 000005
【図４】
2005032036.tif 000006
【図５】
2005032036.tif 000007
【図６】
2005032036.tif 000008
【図７】
2005032036.tif 000009