(57)【要約】【課題】プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行すること。【解決手段】リクエスト受付部４２３ａは、複数のＤＭＡ回路４２１それぞれから送信される転送実行のリクエストを受け付ける。転送可能フラグ４２３ｂは、複数のＤＭＡ回路４２１それぞれに対応するフラグを備えており、転送実行のリクエストを送信したＤＭＡ回路４２１に対応するフラグをセットする。通知データ生成部４２３ｃは、転送可能フラグ４２３ｂを常時監視しており、いずれかのＤＭＡ回路４２１に対応するフラグがセットされると、転送可能ＤＭＡ情報およびすべてのＤＭＡ回路４２１の状態情報をＣＰＵ４３へ通知するための通知データを生成する。状態情報収集部４２３ｄは、すべてのＤＭＡ回路４２１から状態情報を収集する。【選択図】        図３
2008191782.tif 000002
【特許請求の範囲】
【請求項１】
各々データの転送を制御する複数の転送回路を備えたデータ転送装置であって、
前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付手段と、
前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、
前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段と
を有することを特徴とするデータ転送装置。
【請求項２】
前記収集手段は、
前記複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記収集手段は、
前記複数の転送回路がそれぞれ前回のデータ転送を正常に終了したか否かを示す転送状態情報を収集することを特徴とする請求項１記載のデータ転送装置。
【請求項４】
前記送信手段は、
前記プロセッサにおける割り込み処理の要求として通知データを送信することを特徴とする請求項１記載のデータ転送装置。
【請求項５】
各々データの転送を制御する複数の転送回路を備えた半導体集積回路であって、
前記複数の転送回路の制御によって転送されるデータを順次入出力するバッファと、
前記複数の転送回路の少なくとも１つが前記バッファを介したデータ転送処理の実行を要求する場合に、前記複数の転送回路すべてに係るデータ転送処理状況を同時に前記複数の転送回路を管理するプロセッサへ通知する処理状況通知手段と
を有することを特徴とする半導体集積回路。
【請求項６】
前記処理状況通知手段は、
前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付手段と、
前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、
前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
前記生成手段によって生成された通知データを前記プロセッサへ送信する送信手段と
を含むことを特徴とする請求項５記載の半導体集積回路。
【請求項７】
各々データの転送を制御する複数の転送回路を備えたデータ転送装置における処理状況通知方法であって、
前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付工程と、
前記受付工程にて転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集工程と、
前記受付工程にて転送要求を受け付けた転送可能回路の情報および前記収集工程にて収集された状態情報を含む通知データを生成する生成工程と、
前記生成工程にて生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信工程と
を有することを特徴とする処理状況通知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各々データの転送を制御する複数の転送回路を備えたデータ転送装置、半導体集積回路、および処理状況通知方法に関し、特に、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができるデータ転送装置、半導体集積回路、および処理状況通知方法に関する。
【背景技術】
【０００２】
近年のコンピュータの処理能力の向上に伴って、コンピュータが利用するデータは肥大化の一途をたどっており、膨大なデータを記憶しておくためのストレージに関する検討が多く行われている。具体的には、例えばＲＡＩＤ（Redundant Array of Independent Disks）と呼ばれ、複数のハードディスクドライブを組み合わせることにより、高速・大容量・高信頼性を実現するディスクシステムを構築する技術などが確立されている。
【０００３】
このＲＡＩＤなどのディスクシステムにおいては、データを記憶する複数のディスクを備えたディスクアレイ装置が上位装置であるホストコンピュータなどからコマンドを受け付け、データの書き込み（ライト）や読み出し（リード）が行われる。このとき、ホストコンピュータとディスクの間でやり取りされるデータは、ディスクアレイ装置内のキャッシュメモリにもキャッシュされ、以降の処理においては、キャッシュメモリからこのデータを読み出して高速化を図るのが一般的である。また、ホストコンピュータは、ディスクアレイ装置内のチャネルアダプタに接続しており、チャネルアダプタによって、ホストコンピュータとキャッシュメモリやディスクとの間でデータ転送が実行される。
【０００４】
チャネルアダプタは、内部にダイレクトメモリアクセス（Direct Memory Access：以下「ＤＭＡ」と略記する）によるデータ転送を制御するＬＳＩ（Large Scale Integration）などのＤＭＡチップを備えており、ＤＭＡチップがＣＰＵ（Central Processing Unit）の命令に従ってデータ転送を実行する。一般に、ＤＭＡによるデータ転送においては、ＣＰＵからＤＭＡチップへの命令（ディスクリプタ）と転送されるデータは同一のバスを共有する（例えば特許文献１参照）。このようなバスを備えたチャネルアダプタの構成例を図９に示す。
【０００５】
図９において、ホストコンピュータ１は、チャネルアダプタのインタフェース２と接続されており、キャッシュメモリ７は、チャネルアダプタのＤＭＡチップ３と接続されている。また、ＤＭＡチップ３には、転送されるデータを一時的に保持するデータバッファ４が接続されており、インタフェース２、ＤＭＡチップ３、およびＤＭＡチップ３に対して命令を出すＣＰＵ５が互いにバス６を介して接続されている。
【０００６】
このような構成のチャネルアダプタにおいて、例えばホストコンピュータ１からデータのリード要求が出されると、このリード要求は、インタフェース２およびバス６を介してＣＰＵ５へ通知され、ＣＰＵ５からＤＭＡチップ３へ、キャッシュメモリ７からデータを読み出す旨の命令が出される。この命令を受け、ＤＭＡチップ３は、キャッシュメモリ７からデータを読み出してデータバッファ４に保持させる。その後、ＤＭＡチップ３は、データバッファ４へのデータの読み出しが完了した旨をＣＰＵ５へ通知し、ＣＰＵ５は、データバッファ４からバス６を介してホストコンピュータ１へデータを転送させるデータ転送処理を開始する。
【０００７】
【特許文献１】特開平５−２５７８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上述のようなＤＭＡチップには、複数のＤＭＡ回路が設けられることがある。この場合、各ＤＭＡ回路は、並行してキャッシュメモリからデータバッファへのデータの読み出しを行い、例えばホストコンピュータへ転送されるデータがデータバッファに保持されて転送可能な状態になると、ＣＰＵに対してデータ転送が可能となった旨を通知する。この通知は、割り込み処理を要求する割り込み信号としてバスを介してＣＰＵへ送信されるため、たとえＣＰＵが他のＤＭＡ回路に係るデータ転送処理を行っていても、ＣＰＵはデータ転送処理を中断する。そして、ＣＰＵは、割り込み信号を送信したＤＭＡ回路に保持されたデータ転送に関する情報をリードする。
【０００９】
具体的には、図１０に示すように、ＤＭＡチップ内のＤＭＡ回路においてキャッシュメモリからのデータの読み出しが完了すると、割り込み信号がバスを介してＣＰＵへ送信される（ステップＳ１）。ＣＰＵは、他の処理をすべて中断して、割り込み信号を送信したＤＭＡ回路に保持された、転送対象のデータのアドレスをリードする（ステップＳ２）。このリードによって、転送されるデータのアドレスがＤＭＡ回路からＣＰＵへバスを介して送信され（ステップＳ３）、ＣＰＵは、データ転送処理を再開する。
【００１０】
その後、すべてのデータ転送処理が完了すると、ＣＰＵは、ＤＭＡ回路に保持された、転送が正常に完了したか否かを示す転送状態情報をリードする（ステップＳ４）。このリードによって、転送状態情報がＤＭＡ回路からＣＰＵへバスを介して送信される（ステップＳ５）。
【００１１】
このように、ＤＭＡチップから割り込み信号が送信されると、ＤＭＡ回路とＣＰＵの間で複数回のやり取りが行われ、その間バスは占有されるとともに、ＣＰＵは他の処理を中断するため、処理効率が悪化するという問題がある。特に、データ転送処理においては、転送されるデータが使用するバスがＤＭＡ回路とＣＰＵの間のやり取りによって占有されるため、データ転送効率が低下し、例えばホストコンピュータがデータの読み出しを要求してから実際にデータの読み出しが終了するまでの時間が遅延する。また、ＤＭＡチップ内に設けられるＤＭＡ回路の数が増加すると、頻繁にいずれかのＤＭＡ回路から割り込み信号が送信される状態となり、データ転送以外の処理によるバスの占有率が益々上昇してしまう。
【００１２】
加えて、ＣＰＵが割り込み信号に応じてデータのアドレスをリードする処理は割り込み処理として実行されるが、ＣＰＵによる割り込み処理は、数ｍｓｅｃ（ミリセカンド）の比較的長時間を要するため、ホストコンピュータへの応答がさらに遅延してしまうことがある。
【００１３】
本発明はかかる点に鑑みてなされたものであり、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができるデータ転送装置、半導体集積回路、および処理状況通知方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明は、各々データの転送を制御する複数の転送回路を備えたデータ転送装置であって、前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付手段と、前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段とを有することを特徴とする。
【００１５】
また、本発明は、上記発明において、前記収集手段は、前記複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集することを特徴とする。
【００１６】
また、本発明は、上記発明において、前記収集手段は、前記複数の転送回路がそれぞれ前回のデータ転送を正常に終了したか否かを示す転送状態情報を収集することを特徴とする。
【００１７】
また、本発明は、上記発明において、前記収集手段は、前記複数の転送回路が転送するデータから生成されるチェックコードまたは転送するデータのヘッダ情報を収集することを特徴とする。
【００１８】
また、本発明は、上記発明において、前記受付手段は、前記複数の転送回路それぞれに対応するフラグを含み、前記転送可能回路に対応するフラグをセットすることを特徴とする。
【００１９】
また、本発明は、上記発明において、前記生成手段は、前記フラグを常時監視し、新たにフラグがセットされた場合に、状態情報の収集を前記収集手段へ指示することを特徴とする。
【００２０】
また、本発明は、上記発明において、前記送信手段から前記プロセッサへの通知データの送信が完了したことを検知する検知手段をさらに有し、前記受付手段は、前記検知手段によって送信完了が検知された通知データに情報が含まれる転送可能回路に対応するフラグをクリアすることを特徴とする。
【００２１】
また、本発明は、上記発明において、前記送信手段は、前記プロセッサにおける割り込み処理の要求として通知データを送信することを特徴とする。
【００２２】
また、本発明は、各々データの転送を制御する複数の転送回路を備えた半導体集積回路であって、前記複数の転送回路の制御によって転送されるデータを順次入出力するバッファと、前記複数の転送回路の少なくとも１つが前記バッファを介したデータ転送処理の実行を要求する場合に、前記複数の転送回路すべてに係るデータ転送処理状況を同時に前記複数の転送回路を管理するプロセッサへ通知する処理状況通知手段とを有することを特徴とする。
【００２３】
また、本発明は、上記発明において、前記処理状況通知手段は、前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付手段と、前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、前記生成手段によって生成された通知データを前記プロセッサへ送信する送信手段とを含むことを特徴とする。
【００２４】
また、本発明は、各々データの転送を制御する複数の転送回路を備えたデータ転送装置におけるデータ転送方法であって、前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付工程と、前記受付工程にて転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集工程と、前記受付工程にて転送要求を受け付けた転送可能回路の情報および前記収集工程にて収集された状態情報を含む通知データを生成する生成工程と、前記生成工程にて生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信工程とを有することを特徴とする。
【発明の効果】
【００２５】
本発明によれば、複数の転送回路の少なくとも１つからデータの転送要求を受け付け、転送要求が受け付けられた場合に、複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集し、転送要求を受け付けた転送可能回路の情報および収集された状態情報を含む通知データを生成し、生成された通知データを複数の転送回路を管理するプロセッサへ送信する。このため、転送回路から転送要求が発行された場合に、この転送回路に対してプロセッサがリードを行わなくても、通知データの伝送により必要な情報がすべてプロセッサへ通知され、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができる。
【００２６】
また、本発明によれば、複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集するため、プロセッサは、先頭アドレスと末尾アドレスの差分が未転送のデータであるとして、各転送回路のデータ転送処理の進捗状況を把握することができる。
【００２７】
また、本発明によれば、複数の転送回路がそれぞれ前回のデータ転送を正常に終了したか否かを示す転送状態情報を収集するため、プロセッサは、いずれかの転送回路から転送要求が発行されるたびに、すべての転送回路の前回のデータ転送処理が正常に終了しているか否かを把握することができる。
【００２８】
また、本発明によれば、複数の転送回路が転送するデータから生成されるチェックコードまたは転送するデータのヘッダ情報を収集するため、プロセッサは、確実にデータ転送処理が正常に終了しているか否かを確認することができる。
【００２９】
また、本発明によれば、複数の転送回路それぞれに対応するフラグを含み、転送可能回路に対応するフラグをセットするため、２つ以上の転送回路から同時に転送要求が発行された場合にも、転送要求を発行したすべての転送可能回路の情報を確実にプロセッサへ通知することができる。
【００３０】
また、本発明によれば、フラグを常時監視し、新たにフラグがセットされた場合に、状態情報の収集を指示するため、１つの転送回路からでも転送要求が発行されるとすべての転送回路の状態情報が収集され、簡便な処理で状態情報のやり取りの回数を減少させ、バスの占有率を減少させることができる。
【００３１】
また、本発明によれば、通知データの送信が完了したことを検知し、送信完了が検知された通知データに情報が含まれる転送可能回路に対応するフラグをクリアするため、通知データの送信後には、転送可能回路となっていた転送回路からの転送要求を再び受け付けることができる。
【００３２】
また、本発明によれば、プロセッサにおける割り込み処理の要求として通知データを送信するため、通知データを受信したプロセッサは、各転送回路の管理を他の処理よりも優先して実行し、すべての転送回路によるデータ転送処理を迅速に適正化することができる。
【００３３】
また、本発明によれば、複数の転送回路の制御によって転送されるデータを順次入出力するバッファを備え、複数の転送回路の少なくとも１つがバッファを介したデータ転送処理の実行を要求する場合に、複数の転送回路すべてに係るデータ転送処理状況を同時に複数の転送回路を管理するプロセッサへ通知する。このため、転送回路から転送要求が発行された場合に、すべての転送回路の転送処理状況がプロセッサへ通知され、転送回路の転送処理状況を把握するためのプロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
【００３５】
図１は、本実施の形態に係るディスクアレイ装置１０の概略構成を示すブロック図である。同図に示すディスクアレイ装置１０は、ＤＭＡが適用されるコンピュータシステムの一例であり、ファイバチャネルリンク３０Ａ、３０Ｂを介してホストコンピュータ２０Ａ、２０Ｂと接続されている。このディスクアレイ装置１０は、高信頼性を確保するために二重化構成が採られており、各構成要素が２系統ずつ（図中、参照符号に付加したＡ、Ｂによって区別する）備えられている。それぞれの系統の構成要素は互いに同等の機能を有するため、以下では一方の系統についてのみ構成要素の説明をする。
【００３６】
ディスクアレイ装置１０は、チャネルアダプタ４０Ａ、キャッシュメモリ５０Ａ、キャッシュコントローラ６０Ａ、ディスクアダプタ７０Ａ、スイッチ８０Ａ、およびディスク９０Ａを有している。
【００３７】
チャネルアダプタ４０Ａは、ホストコンピュータ２０Ａとデータの送受信を行う通信インタフェースとしての機能を有するとともに、ＤＭＡによりデータ転送を行うＬＳＩを有している。本実施の形態においては、主にチャネルアダプタ４０Ａがキャッシュメモリ５０Ａに記憶されたデータをホストコンピュータ２０Ａへ転送する場合について説明する。このとき、チャネルアダプタ４０Ａでは、ＬＳＩがＣＰＵからの命令を受けてキャッシュメモリ５０Ａからデータを読み出し、読み出されたデータがＣＰＵのデータ転送処理によってホストコンピュータ２０Ａへ転送される。チャネルアダプタ４０Ａの具体的な構成および動作について、後に詳述する。
【００３８】
キャッシュメモリ５０Ａは、ホストコンピュータ２０Ａから複数のディスク９０Ａへ書き込まれるデータ、または複数のディスク９０Ａからホストコンピュータ２０Ａへ読み出されるデータを一時的に記憶する。
【００３９】
キャッシュコントローラ６０Ａは、キャッシュメモリ５０Ａにおけるデータの書き込みおよび読み出しを管理・制御する。なお、キャッシュコントローラ６０Ａは、他方の系統のキャッシュコントローラ６０Ｂとキャッシュ間リンクによって接続されており、キャッシュメモリ５０Ａ、５０Ｂに書き込まれるデータが共有されるようになっている。
【００４０】
ディスクアダプタ７０Ａは、複数のディスク９０Ａとデータの送受信を行う通信インタフェースとしての機能を有する。すなわち、ディスクアダプタ７０Ａは、キャッシュメモリ５０Ａから読み出されたデータを複数のディスク９０Ａへ送信したり、キャッシュメモリ５０Ａへ書き込まれるデータを複数のディスク９０Ａから受信したりする。
【００４１】
スイッチ８０Ａは、複数のディスク９０Ａを接続するとともに、各ディスクとディスクアダプタ７０Ａの接続を切り替える。複数のディスク９０Ａは、例えば複数のハードディスクドライブからなり、それぞれのディスクが転送対象となるデータを記憶している。
【００４２】
図２は、本実施の形態に係るチャネルアダプタ４０の内部構成を示すブロック図である。同図においては、図１の参照符号におけるＡ、Ｂの表記を省略し、例えばホストコンピュータ２０Ａ、２０Ｂをホストコンピュータ２０と表記している。図２に示すチャネルアダプタ４０は、データバッファ４１、ＬＳＩ４２、ＣＰＵ４３、メモリ４４、プロトコルコントローラ４５、光モジュール４６、およびバス４７を有している。
【００４３】
データバッファ４１は、ＬＳＩ４２がキャッシュコントローラ６０を通じてキャッシュメモリから読み出したデータを一時的に保持する。
【００４４】
ＬＳＩ４２は、複数のＤＭＡ回路４２１を備えており、ＣＰＵ４３からの命令に従って、キャッシュコントローラ６０を通じてキャッシュメモリから読み出した転送対象のデータをデータバッファ４１に記憶させる。そして、ＬＳＩ４２は、転送対象のデータが転送可能な状態となると、各ＤＭＡ回路４２１における処理状況を示す通知データをＣＰＵ４３へ送信する。具体的には、ＬＳＩ４２は、複数のＤＭＡ回路４２１、バッファ４２２、処理状況通知部４２３、およびバスインタフェース（以下「バスＩ／Ｆ」と略記する）４２４を有している。
【００４５】
複数のＤＭＡ回路４２１は、それぞれキャッシュコントローラ６０に接続されたキャッシュメモリと通信するインタフェース機能およびＤＭＡ機能を有している。ＤＭＡ回路４２１は、ＣＰＵ４３からの命令に従って、キャッシュコントローラ６０を通じてキャッシュメモリとの間で通信処理を行い、キャッシュメモリにキャッシュされたデータを読み出してデータバッファ４１に記憶させる。また、各ＤＭＡ回路４２１は、ホストコンピュータ２０への転送対象のデータがデータバッファ４１へ記憶されると、処理状況通知部４２３へデータの転送実行を要求するリクエストを送信する。そして、このリクエストに応じてＣＰＵ４３からデータ転送が指示されると、データバッファ４１に記憶されたデータをバッファ４２２へ送出し、順次ホストコンピュータ２０へ転送させる。
【００４６】
なお、ＤＭＡ回路４２１は、バッファ４２２における転送データの先頭アドレス（以下「ＴＯＰ」という）と末尾アドレス（以下「ＢＴＭ」という）とを保持しており、ＢＴＭ側から順次データ転送させる。また、ＤＭＡ回路４２１は、ホストコンピュータ２０へのデータ転送が終了するたびに、データ転送が正常に行われたか否かの転送状態を保持しておく。
【００４７】
バッファ４２２は、ＦＩＦＯ（First-In First-Out）方式でデータを入出力する。すなわち、バッファ４２２は、複数のＤＭＡ回路４２１それぞれから送出される転送データを順番に入力させ、入力された順に転送データを出力する。
【００４８】
処理状況通知部４２３は、複数のＤＭＡ回路４２１それぞれからデータの転送実行を要求するリクエストを受け付け、このリクエストを送信したＤＭＡ回路４２１の情報（以下「転送可能ＤＭＡ情報」という）およびすべてのＤＭＡ回路４２１におけるデータ転送の状態を示す情報（以下「状態情報」という）を含む通知データを生成し、ＣＰＵ４３へ送信する。処理状況通知部４２３については、後に具体的に説明する。
【００４９】
バスＩ／Ｆ４２４は、バス４７とＬＳＩ４２を接続しており、バッファ４２２や処理状況通知部４２３から出力される転送データや通知データをバス４７へ送出し、バス４７から返送される通知データの送信完了通知を受信する。
【００５０】
ＣＰＵ４３は、チャネルアダプタ４０の全体を統括制御するプロセッサであり、ホストコンピュータ２０からのコマンドを解釈してＤＭＡ回路４２１へデータ転送の命令を出す。また、ＣＰＵ４３は、ＬＳＩ４２から送信される通知データによって、データ転送可能となったＤＭＡ回路４２１の有無を把握するとともに、各ＤＭＡ回路４２１によるデータ転送の状態を把握する。
【００５１】
メモリ４４は、例えばＤＲＡＭ（Dynamic Random Access Memory）などから構成され、ＣＰＵ４３により生成されたディスクリプタ（ＣＰＵ４３からＤＭＡ回路４２１に対する命令）などを記憶する。
【００５２】
プロトコルコントローラ４５は、ホストコンピュータ２０との接続に用いられるファイバチャネル（図１のファイバチャネルリンク３０Ａ、３０Ｂ）のプロトコルを制御する。プロトコルコントローラ４５は、ホストコンピュータ２０へ転送されるデータを電気信号として光モジュール４６へ出力する。
【００５３】
光モジュール４６は、ホストコンピュータ２０と接続され、ホストコンピュータ２０から光ファイバなどによって伝送される光信号を電気信号に変換する一方、プロトコルコントローラ４５から出力される電気信号を光信号に変換してホストコンピュータ２０へ転送する。
【００５４】
ＬＳＩ４２、ＣＰＵ４３、およびプロトコルコントローラ４５は、互いにバス４７によって接続されており、転送データ、データ転送の命令、および通知データなどは、バス４７を介してやり取りされる。
【００５５】
図３は、ＬＳＩ４２内の処理状況通知部４２３の内部構成を示すブロック図である。同図に示す処理状況通知部４２３は、リクエスト受付部４２３ａ、転送可能フラグ４２３ｂ、通知データ生成部４２３ｃ、状態情報収集部４２３ｄ、および送信完了検知部４２３ｅを有している。
【００５６】
なお、図３においては、複数のＤＭＡ回路４２１を１つのブロックで示している。また、各ＤＭＡ回路４２１は、転送データの転送状態、ＴＯＰ（先頭アドレス）、およびＢＴＭ（末尾アドレス）などの状態情報を保持している。バッファ４２２に記憶された転送データは、図４に示すように、ＢＴＭ側から順次転送され、転送データがすべて転送され終わると、ＴＯＰとＢＴＭが一致することになる。
【００５７】
リクエスト受付部４２３ａは、複数のＤＭＡ回路４２１それぞれが転送対象のデータをデータバッファ４１に読み出した場合に各ＤＭＡ回路４２１から送信される転送実行のリクエストを受け付ける。そして、リクエスト受付部４２３ａは、リクエストを送信したＤＭＡ回路４２１の転送可能フラグ４２３ｂをセットする。
【００５８】
転送可能フラグ４２３ｂは、複数のＤＭＡ回路４２１それぞれに対応するフラグを備えており、リクエスト受付部４２３ａからの指示により、転送実行のリクエストを送信したＤＭＡ回路４２１に対応するフラグをセットする。すなわち、例えば図５に示すように、転送可能フラグ４２３ｂがＤＭＡ回路＃１〜＃ＮまでのＮ個のＤＭＡ回路４２１に対応するフラグを備えている場合、ＤＭＡ回路＃２から転送実行のリクエストが受け付けられると、ＤＭＡ回路＃２に対応するフラグが「１」にセットされる。また、転送可能フラグ４２３ｂは、送信完了検知部４２３ｅからの指示により、通知データの送信が完了し転送が可能である旨がＣＰＵ４３へ通知されたＤＭＡ回路４２１に対応するフラグをクリアする。すなわち、例えば図５において、ＤＭＡ回路＃２からのリクエストに応じた通知データの送信が完了すると、ＤＭＡ回路＃２に対応するフラグが「０」にクリアされる。
【００５９】
通知データ生成部４２３ｃは、転送可能フラグ４２３ｂを常時監視しており、いずれかのＤＭＡ回路４２１に対応するフラグがセットされると、転送可能ＤＭＡ情報および状態情報を含む通知データを生成する。具体的には、通知データ生成部４２３ｃは、転送可能フラグ４２３ｂから転送の実行が可能となったＤＭＡ回路４２１に関する転送可能ＤＭＡ情報を取得し、状態情報収集部４２３ｄへ状態情報の収集を指示してすべてのＤＭＡ回路４２１に関する状態情報を取得する。
【００６０】
そして、通知データ生成部４２３ｃは、例えば図６に示すような通知データを生成する。すなわち、転送可能ＤＭＡ情報２０１として、転送可能フラグ４２３ｂがセットされたＤＭＡ回路を示す情報が含まれるとともに、状態情報２０２として、すべてのＤＭＡ回路４２１に保持された転送状態情報２０３およびＴＯＰ情報・ＢＴＭ情報２０４が含まれる通知データを生成する。また、通知データ生成部４２３ｃは、生成した通知データを割り込み処理であることを示すデータとしてＣＰＵ４３へ送信する。
【００６１】
状態情報収集部４２３ｄは、通知データ生成部４２３ｃからの指示に従って、すべてのＤＭＡ回路４２１から状態情報を収集する。このとき、状態情報収集部４２３ｄは、リクエストを送信していないＤＭＡ回路４２１、換言すれば、転送の実行が可能となっていないか既に転送を実行中であるＤＭＡ回路４２１についても転送状態、ＴＯＰ、およびＢＴＭを収集する。したがって、転送状態としては、ＤＭＡ回路４２１によって、転送待機中、転送実行中、転送正常終了（または異常終了）などの状態を取り得る。また、ＴＯＰとＢＴＭについては、転送待機中や転送実行中のＤＭＡ回路４２１では一致しないが、転送正常終了のＤＭＡ回路４２１では一致している。
【００６２】
なお、状態情報収集部４２３ｄは、転送状態を示す情報として、転送されたデータから生成されるチェックコードや転送されたデータのヘッダ情報などをさらに収集しても良い。
【００６３】
送信完了検知部４２３ｅは、通知データがすべてバス４７を介してＣＰＵ４３へ送信されると、その旨の送信完了通知をバス４７から受信し、通知データの送信が完了したことを検知する。そして、送信完了検知部４２３ｅは、通知データに含まれる転送可能ＤＭＡ情報によって、転送の実行が可能であることをＣＰＵ４３へ通知したＤＭＡ回路４２１に対応する転送可能フラグ４２３ｂをクリアする。
【００６４】
次いで、上記のように構成された処理状況通知部４２３による処理状況通知方法について、図７に示すフロー図を参照しながら説明する。
【００６５】
処理状況通知部４２３においては、各ＤＭＡ回路４２１からのリクエストが待機されており（ステップＳ１０１）、いずれかのＤＭＡ回路４２１が転送対象のデータをデータバッファ４１へ読み出してリクエストを送信すると（ステップＳ１０１Ｙｅｓ）、このリクエストは、リクエスト受付部４２３ａによって受け付けられる。そして、リクエスト受付部４２３ａによって、リクエストを送信したＤＭＡ回路４２１に対応する転送可能フラグ４２３ｂがセットされる（ステップＳ１０２）。これ以後、転送可能フラグ４２３ｂがクリアされるまでは、転送可能フラグ４２３ｂがセットされたＤＭＡ回路４２１からのリクエストは、リクエスト受付部４２３ａによって受け付けられることない。
【００６６】
また、通知データ生成部４２３ｃは、転送可能フラグ４２３ｂを常時監視しており、１つ以上のＤＭＡ回路４２１に対応する転送可能フラグ４２３ｂがセットされたことを検知すると（ステップＳ１０３）、状態情報収集部４２３ｄへ状態情報の収集を指示する。そして、状態情報収集部４２３ｄによって、すべてのＤＭＡ回路４２１の状態情報（すなわち、転送状態情報、ＴＯＰ情報、およびＢＴＭ情報）が収集される（ステップＳ１０４）。収集された状態情報は、通知データ生成部４２３ｃへ出力される。
【００６７】
通知データ生成部４２３ｃでは、転送可能フラグ４２３ｂにおいてフラグがセットされたＤＭＡ回路４２１を示す転送可能ＤＭＡ情報および状態情報収集部４２３ｄから出力された状態情報から通知データが生成される（ステップＳ１０５）。このとき、複数のＤＭＡ回路４２１から同時にリクエストが送信されていれば、各ＤＭＡ回路４２１に対応する転送可能フラグ４２３ｂがセットされているため、転送可能ＤＭＡ情報は、これらすべてのＤＭＡ回路４２１を示すことになる。生成された通知データは、バスＩ／Ｆ４２４からバス４７を経由してＣＰＵ４３へ送信される（ステップＳ１０６）。また、この通知データは、送信完了検知部４２３ｅにも出力される。
【００６８】
本実施の形態においては、転送実行のリクエストを送信したＤＭＡ回路４２１に関する転送可能ＤＭＡ情報とすべてのＤＭＡ回路４２１における状態情報とが通知データに含まれているため、通知データをＣＰＵ４３へ送信することにより、ＣＰＵ４３は、改めてＤＭＡ回路４２１からＴＯＰやＢＴＭをリードしたり、転送状態をリードしたりする必要がなく、ＣＰＵ４３の処理負荷を低減するとともに、データ転送以外の処理によるバス４７の占有率を減少させることができる。すなわち、いずれかのＤＭＡ回路４２１からリクエストが発行されると、すべてのＤＭＡ回路４２１に関する状態情報がＣＰＵ４３へ通知されるため、各ＤＭＡ回路４２１においてデータ転送が完了した場合などにＣＰＵ４３がＤＭＡ回路４２１へ転送状態を問い合わせなくても、他のＤＭＡ回路４２１からのリクエスト発行時などに転送状態がＣＰＵ４３へ通知されることになる。
【００６９】
また、複数のＤＭＡ回路４２１からリクエストが送信されていれば、これらのＤＭＡ回路４２１が転送可能であることを１つの通知データによってＣＰＵ４３へ通知することができ、バス４７の占有率を減少させることができる。さらに、通知データの生成は、ＬＳＩ４２において実行されるハードウェアの処理であるため、数μｓｅｃ（マイクロセカンド）で完了し、ＤＭＡ回路４２１の状態情報をＣＰＵ４３が割り込み処理によってリードするよりも非常に高速に状態情報がＣＰＵ４３へ通知されることになる。なお、このように通知データに多くの情報を含ませることにより、通知データの情報量は増加することになるが、一般に１回のシーケンスで転送できるデータ転送長の範囲の情報量であれば、バスの負荷には大きな影響がない。したがって、例えばＰＣＩ−Ｘバスにおいては、アドレス境界から１２８バイトまでのバーストライトであればバス４７の負荷は大差なく、情報量の増加による影響は無視することができる。
【００７０】
通知データの送信後、バス４７は通知データの送信が完了した旨の送信完了通知をＬＳＩ４２へ返送するため、送信完了通知は、バスＩ／Ｆ４２４から処理状況通知部４２３の送信完了検知部４２３ｅによって受信される。これにより、送信完了検知部４２３ｅによって、通知データの送信完了が検知され（ステップＳ１０７）、通知データの送信時に通知データ生成部４２３ｃから出力された通知データが参照され、転送可能ＤＭＡ情報によって示されるＤＭＡ回路４２１に対応する転送可能フラグ４２３ｂがクリアされる（ステップＳ１０８）。これにより、転送可能フラグ４２３ｂがセットされていたＤＭＡ回路４２１からのリクエストが、再びリクエスト受付部４２３ａによって受け付けられ始める。
【００７１】
次に、ＤＭＡ回路４２１からリクエストが発行された場合の処理状況通知部４２３の動作の具体例について、図８に示すシーケンス図を参照しながら説明する。図８においては、ＤＭＡ回路＃１〜＃３の３つのＤＭＡ回路４２１がＬＳＩ４２に備えられているものとする。
【００７２】
ＤＭＡ回路＃１〜＃３は、各々ＣＰＵ４３からの命令に従って随時データ転送を行っているが、例えばＤＭＡ回路＃１がＣＰＵ４３からの命令により、ホストコンピュータ２０へのデータ転送を実行する場合を考える。このとき、ＤＭＡ回路＃１は、キャッシュコントローラ６０を介してキャッシュメモリから転送対象のデータを読み出し、データバッファ４１に記憶させる。そして、データ転送の準備が完了すると、処理状況通知部４２３へ転送実行のリクエストを送信する（ステップＳ２０１）。
【００７３】
このリクエストは、リクエスト受付部４２３ａによって受け付けられ、ＤＭＡ回路＃１に対応する転送可能フラグ４２３ｂがセットされる（ステップＳ２０２）。転送可能フラグ４２３ｂのセットが通知データ生成部４２３ｃによって検知されると、状態情報収集部４２３ｄによって状態情報が収集される。具体的には、状態情報収集部４２３ｄによって、ＤＭＡ回路＃１の転送状態、ＴＯＰ、およびＢＴＭが収集され（ステップＳ２０３）、同様に、ＤＭＡ回路＃２とＤＭＡ回路＃３の転送状態、ＴＯＰ、およびＢＴＭが収集される（ステップＳ２０４、ステップＳ２０５）。
【００７４】
ここで、ＤＭＡ回路＃１はリクエストを発行したＤＭＡ回路であるため、転送状態としては「転送待機中」であり、ＴＯＰとＢＴＭは一致していない。また、ＤＭＡ回路＃２およびＤＭＡ回路＃３に関しては、リクエストを発行していないため、転送状態としては前回のデータ転送が終了した「転送正常終了（または異常終了）」か既に転送実行中である「転送実行中」であり、「転送正常終了」であればＴＯＰとＢＴＭは一致している。
【００７５】
こうして収集された状態情報と転送可能フラグ４２３ｂがセットされたＤＭＡ回路＃１を示す転送可能ＤＭＡ情報とから通知データ生成部４２３ｃによって通知データが生成され（ステップＳ２０６）、生成された通知データは、バスＩ／Ｆ４２４およびバス４７を介して割り込み処理の要求としてＣＰＵ４３へ送信される（ステップＳ２０７）。ＣＰＵ４３では、通知データによって割り込み処理が発生し、通知データの転送可能ＤＭＡ情報から転送の実行が可能であるＤＭＡ回路＃１に対してデータ転送の命令が出されるとともに、その他のＤＭＡ回路＃２およびＤＭＡ回路＃３に関しても状態情報の管理が実行される。
【００７６】
一方、通知データのＣＰＵ４３への送信が完了すると、バス４７からは送信完了通知が処理状況通知部４２３へ返送され（ステップＳ２０８）、送信完了通知によって送信完了検知部４２３ｅが通知データの送信完了を検知すると、通知データによって転送の実行が可能なＤＭＡ回路とされたＤＭＡ回路＃１の転送可能フラグ４２３ｂがクリアされる（ステップＳ２０９）。これにより、ＤＭＡ回路＃１からのリクエストが再び受け付けられるようになる。
【００７７】
これらの処理を通じて、バス４７が占有されるのは、通知データがＣＰＵ４３へ送信されるときのみである。そして、この通知データには、リクエストを発行したすべてのＤＭＡ回路４２１（ここではＤＭＡ回路＃１のみ）を示す転送可能ＤＭＡ情報とすべてのＤＭＡ回路４２１（ここではＤＭＡ回路＃１〜＃３）の状態情報とが含まれているため、ＣＰＵ４３は、各ＤＭＡ回路４２１から情報をリードする必要がなくなり、処理負荷が低減される。また、ＤＭＡ回路４２１とＣＰＵ４３の間の情報のやり取りの回数が減少し、バス４７の占有率が減少する。
【００７８】
以上のように、本実施の形態によれば、転送の実行を要求するリクエストがＤＭＡ回路から発行されると、リクエストを発行したＤＭＡ回路とすべてのＤＭＡ回路による転送の状態とを割り込み処理を要求する通知データとしてＣＰＵへ通知する。このため、ＣＰＵがＤＭＡ回路に対するリードを行わなくても、１回の通知データの伝送により必要な情報がすべてＣＰＵへ通知され、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができる。
【００７９】
なお、本実施の形態においては、キャッシュメモリのデータがホストコンピュータ２０へ転送される場合の処理について説明したが、本発明は複数のＤＭＡ回路４２１がそれぞれデータ転送を実行する様々な状況に応用することができる。また、チャネルアダプタ４０やキャッシュコントローラ６０の内部には、ＣＰＵの代わりに例えばＭＰＵ（Micro Processing Unit）など他のプロセッサが設けられていても良い。
【００８０】
（付記１）各々データの転送を制御する複数の転送回路を備えたデータ転送装置であって、
前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付手段と、
前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、
前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段と
を有することを特徴とするデータ転送装置。
【００８１】
（付記２）前記収集手段は、
前記複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集することを特徴とする付記１記載のデータ転送装置。
【００８２】
（付記３）前記収集手段は、
前記複数の転送回路がそれぞれ前回のデータ転送を正常に終了したか否かを示す転送状態情報を収集することを特徴とする付記１記載のデータ転送装置。
【００８３】
（付記４）前記収集手段は、
前記複数の転送回路が転送するデータから生成されるチェックコードまたは転送するデータのヘッダ情報を収集することを特徴とする付記３記載のデータ転送装置。
【００８４】
（付記５）前記受付手段は、
前記複数の転送回路それぞれに対応するフラグを含み、前記転送可能回路に対応するフラグをセットすることを特徴とする付記１記載のデータ転送装置。
【００８５】
（付記６）前記生成手段は、
前記フラグを常時監視し、新たにフラグがセットされた場合に、状態情報の収集を前記収集手段へ指示することを特徴とする付記５記載のデータ転送装置。
【００８６】
（付記７）前記送信手段から前記プロセッサへの通知データの送信が完了したことを検知する検知手段をさらに有し、
前記受付手段は、
前記検知手段によって送信完了が検知された通知データに情報が含まれる転送可能回路に対応するフラグをクリアすることを特徴とする付記５記載のデータ転送装置。
【００８７】
（付記８）前記送信手段は、
前記プロセッサにおける割り込み処理の要求として通知データを送信することを特徴とする付記１記載のデータ転送装置。
【００８８】
（付記９）各々データの転送を制御する複数の転送回路を備えた半導体集積回路であって、
前記複数の転送回路の制御によって転送されるデータを順次入出力するバッファと、
前記複数の転送回路の少なくとも１つが前記バッファを介したデータ転送処理の実行を要求する場合に、前記複数の転送回路すべてに係るデータ転送処理状況を同時に前記複数の転送回路を管理するプロセッサへ通知する処理状況通知手段と
を有することを特徴とする半導体集積回路。
【００８９】
（付記１０）前記処理状況通知手段は、
前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付手段と、
前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、
前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
前記生成手段によって生成された通知データを前記プロセッサへ送信する送信手段と
を含むことを特徴とする付記９記載の半導体集積回路。
【００９０】
（付記１１）各々データの転送を制御する複数の転送回路を備えたデータ転送装置における処理状況通知方法であって、
前記複数の転送回路の少なくとも１つからデータの転送要求を受け付ける受付工程と、
前記受付工程にて転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集工程と、
前記受付工程にて転送要求を受け付けた転送可能回路の情報および前記収集工程にて収集された状態情報を含む通知データを生成する生成工程と、
前記生成工程にて生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信工程と
を有することを特徴とする処理状況通知方法。
【産業上の利用可能性】
【００９１】
本発明は、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行する場合に適用することができる。
【図面の簡単な説明】
【００９２】
【図１】一実施の形態に係るディスクアレイ装置の概略構成を示すブロック図である。
【図２】一実施の形態に係るチャネルアダプタの内部構成を示すブロック図である。
【図３】一実施の形態に係る処理状況通知部の内部構成を示すブロック図である。
【図４】一実施の形態に係る転送データの一例を示す図である。
【図５】一実施の形態に係る転送可能フラグの一例を示す図である。
【図６】一実施の形態に係る通知データの一例を示す図である。
【図７】一実施の形態に係る処理状況通知方法を示すフロー図である。
【図８】一実施の形態に係るデータ転送リクエスト発行時の動作を示すシーケンス図である。
【図９】バスを備えたデータ転送装置の構成例を示すブロック図である。
【図１０】データ転送時の割り込み処理を示すシーケンス図である。
【符号の説明】
【００９３】
４０  チャネルアダプタ
４１  データバッファ
４２  ＬＳＩ
４２１  ＤＭＡ回路
４２２  バッファ
４２３  処理状況通知部
４２３ａ  リクエスト受付部
４２３ｂ  転送可能フラグ
４２３ｃ  通知データ生成部
４２３ｄ  状態情報収集部
４２３ｅ  送信完了検知部
４２４  バスＩ／Ｆ
４３  ＣＰＵ
４４  メモリ
４５  プロトコルコントローラ
４６  光モジュール
４７  バス
【図１】
2008191782.tif 000003
【図２】
2008191782.tif 000004
【図３】
2008191782.tif 000005
【図４】
2008191782.tif 000006
【図５】
2008191782.tif 000007
【図６】
2008191782.tif 000008
【図７】
2008191782.tif 000009
【図８】
2008191782.tif 000010
【図９】
2008191782.tif 000011
【図１０】
2008191782.tif 000012