(57)【要約】【課題】  データ転送の効率化およびデータ転送状況の通知方法の効率化を図り、データ転送制御装置に設けられた処理装置の負担の軽減を図ること。【解決手段】  ＣＰＵ１５は主記憶装置１４にディスクリプタを設定し、アダプタ１内のデータ転送コントローラ１１は、主記憶装置１４内よりディスクリプタを読み出し、設定された転送情報に基づき、データバッファ１２に格納されたデータをルータ３を介してセントラライズド・モジュール２に転送する。また、データ転送コントローラ１１は、データ転送の切れ目に、Ａ．Ａ．コードを読み出すためのディスクリプタを実行してルータ３からＡ．Ａ．コードを読み出してメモリコントローラ１３のメールボックス・レジスタ１３ａにセットする。これにより、ＣＰＵ１５に割り込みが上がり、ＣＰＵ１５は、上記Ａ．Ａ．コードを読み出して、エラー情報の有無とその詳細なエラー要因を知る。【選択図】          図１
2005242666.tif 000002
【特許請求の範囲】
【請求項１】
ローカル側モジュールからリモート側モジュールにデータ転送を行うデータ転送制御装置であって、
上記ローカル側モジュールは、処理装置と、データ転送制御手段と、該処理装置とデータ転送制御手段との間に接続されたメモリ制御手段と、該メモリ制御手段に接続された主記憶装置から構成され、上記メモリ制御手段は、データが設定されたとき上記処理装置に割り込みを発生するレジスタを備え、
上記データ転送制御手段は、上記処理装置から与えられるデータ転送情報に基づき、上記リモート側モジュールにデータ転送を行うとともに、該データ転送の間にデータ転送正常終了確認情報を、リモート側のモジュールから獲得し、獲得したデータ転送正常終了確認情報を、上記メモリ制御手段の上記レジスタに設定し、
前記処理装置は、該レジスタからの割り込みに基づき、上記レジスタからデータ転送正常終了確認情報を取得する
ことを特徴とするデータ転送制御装置。
【請求項２】
上記処理装置は、上記主記憶装置に、データ転送情報と、上記データ転送正常終了確認情報を獲得するか否かを示す情報を格納し、
上記データ転送制御手段は、上記主記憶手段に格納された情報を読み出して、上記リモート側モジュールにデータ転送を行うとともに、該データ転送の間に上記データ転送正常終了確認情報を、リモート側のモジュールから獲得する
ことを特徴とするメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストや入出力デバイスとメモリを接続したシステムにおいて、リモート側の転送の状態をローカル側のモジュールに通知できるようにしたデータ転送制御装置に関し、特に、ＰＣＩバスを内部に含むシステム内で、データ転送状況の通知方法の効率化を図るようにしたデータ転送制御装置に関するものである。
【背景技術】
【０００２】
複数のプリント板により構成されるＤｉｓｋ制御システムにおいて、リモート側のセントラライズド・モジュール（Ｃｅｎｔｒａｌｉｚｅｄ  Ｍｏｄｕｌｅ：以下ＣＭという）、および、ローカル側のアダプタ（Ａｄａｐｔｅｒ：以下ＡＤＰという）は、それぞれルータ（Ｒｏｕｔｅｒ：以下ＲＴという）を介して、ダイレクトメモリアクセス（ＤＭＡ）を使用してセントラライズド・モジュール（ＣＭ）←→アダプタ（ＡＤＰ）間においてメッセージ転送、データ転送を行う。ここに上記セントラライズド・モジュール（ＣＭ）およびアダプタ（ＡＤＰ）はそれぞれＣＰＵを内蔵している。
セントラライズド・モジュール（ＣＭ）←→アダプタ（ＡＤＰ）間は、ＰＣＩ−バスを使用し転送処理を行う。
図６は、上記システムにおける従来のデータ転送処理を説明する図である。
同図において、アダプタ１は、データ転送コントローラ１１、データバッファ１２、メモリコントローラ１３、主記憶装置１４、ＣＰＵ１５から構成される。
プロセッサやキャッシュメモリ等で構成されるリモート側のセントラライズド・モジュール（ＣＭ）２は、ルータ（ＲＴ）３を介して、上記アダプタ１と接続される。
【０００３】
図６において、データ転送は次のように行われる。
アダプタ１内のプログラムにより、ＣＰＵ１５は、データ転送コントローラ１１内にディスクリプタを設定する（図６の(1),(i))。ディスクリプタには、セントラライズド・モジュール２内のＰＣＩアドレス、転送バイト数、転送元であるデータバッファ１２のアドレスなどが設定される。
その後、上記アダプタ１内のプログラムによりデータ転送コントローラ１１内のデータ転送エンジン１１ａが起動され（図６−(2),(ii)）、データ転送コントローラ１１内のディスクリプタが、データ転送エンジン１１ａに設定される（図６の(iii) ）。
そして、ディスクリプタの設定に応じて、データバッファ１２に格納されたデータのセントラライズド・モジュール２への転送処理が行われる（図６の(3),(iv)）。
【０００４】
このときＰＣＩバスの仕様上、アダプタ１から送出されたデータが正常にセントラライズド・モジュール２に到達したかをアダプタ１は知ることが出来ない。
このことは、信頼性を要求されるディスク・アレイ（Ｄｉｓｋ  Ａｒｒａｙ）システムなどにおいては問題となるため、ＰＣＩ転送の正常終了確認（Ａ．Ａ．：Ａｃｃｅｓｓ  Ａｓｓｕｒａｎｃｅ）をデータ転送後に別途行う方法が知られている（特許文献１）。
これは、ルータ３が、アダプタ１から受け取ったデータをセントラライズド・モジュール２へ転送するまでの間に検出したエラーの情報を、Ａ．Ａ．コードと呼ばれる予め決められたフォーマットに保持しておき、アダプタ１のデータ転送コントローラ１１がある単位のデータ転送を終えたときに、ルータ３の保持しているＡ．Ａ．コードを読み出すことで転送中のエラーの有無を知る手法である。Ａ．Ａ．コードの読出しは、データ転送コントローラ１１に保持されているＡ．Ａ．コードを読み出すためのディスクリプタを実行させることで、行われる。
上記Ａ．Ａ．コードには、エラーがセントラライズド・モジュール２とのインタフェースで検出されたのか、ルータ３内部で検出されたのか、どのアドレスでのアクセス時に検出されたのか、などの詳細な情報が含まれている。
【０００５】
図７は上記データ転送の正常終了確認処理を示す図である。
図７に示すように、Ａ．Ａ．コードのセットを、ルータ３がセントラライズド・モジュール２から取得する（図７の(i) ）。
データ転送コントローラ１１は、Ａ．Ａ．コードを読み出すためのディスクリプタを実行することで、Ａ．Ａ．コードを読み出して自身の持つレジスタに保持する（図７の(ii)）。
その後、データ転送終了と、エラーの有無情報の格納終了をＣＰＵへ知らせるために割り込みを、メモリコントローラ１３にあげる（図７の(iii) ）。
この割り込みがメモリコントローラ１３に伝えられると、メモリコントローラ１３内の割り込み要因レジスタの、データ転送制御に対応するビットがセットされる。
さらに上記メモリコントローラ１３がＣＰＵ１５へ割り込みを上げると（図７の(iv)）、ＣＰＵ１５で割り込み処理ルーチンが起動され、割り込み要因が特定され、データ転送が異常終了の場合、Ａ．Ａ．コードの読み出しが行われる（図７の(v)(vi) ）。
この割り込み要因の特定は以下の(a)-(c) のような手順で行われる。
(a) ＣＰＵ１５がメモリコントローラ１３内の割り込み要因レジスタを読み出して、どのビットがセットされているかによって、データ転送コントローラ１１が要因であることを知る。
(b) ＣＰＵ１５はデータ転送コントローラ１１の割り込み要因レジスタを読み出して、データ転送が正常、または異常終了に終わったことを知る。
(c) データ転送が異常終了していれば、更にデータ転送コントローラ１１に保持されているＡ．Ａ．コードを読み出して詳細なエラー要因を確かめる。
【特許文献１】特開２００１−２４３２０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記ディスク制御システムは上位インタフェースとしてホストもしくはディスクを有しているが、上位インタフェースとの転送速度が向上するにつれて処理の多重度も増すため、データ転送ごとにＣＰＵ１５がデータ転送コントローラ１１内のディスクリプタを設定すること自体が負荷となっていた。
また、従来の手法では、アダプタ１がセントラライズド・モジュール２との転送処理を行う際に、データ転送コントローラ１１へのディスクリプタの設定、データ転送エンジンの起動、Ａ．Ａ．用のデータ転送コントローラ１１の起動と、そのつどレジスタアクセスが発生し、オーバヘッドとなり、性能劣化の要因となっていた。
また、転送の正常性を確認するために、前述の通り、メモリコントローラ１３内のレジスタを１回、データ転送コントローラ１１内のレジスタを２回読み出す必要があり、ＣＰＵ１５の負荷を高くしてしまう要因となっていた。
本発明は、上記従来技術の問題点を解決するためになされたものであって、データ転送制御装置におけるデータ転送の効率化およびデータ転送状況の通知方法の効率化を図り、データ転送制御装置に設けられた処理装置の負担の軽減を図ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明においては、以下のようにして上記課題を解決する。
（１）ローカル側モジュールを、処理装置と、データ転送制御手段と、該処理装置とデータ転送制御手段との間に接続され、データが設定されたとき上記処理装置に割り込みを発生するレジスタを備えたメモリ制御手段と、該メモリ制御手段に接続された主記憶装置から構成する。
上記データ転送制御手段は、上記処理装置から与えられるデータ転送情報に基づき、リモート側モジュールにデータ転送を行うとともに、該データ転送の間にデータ転送正常終了確認情報を、リモート側のモジュールから獲得し、獲得したデータ転送正常終了確認情報を、上記メモリ制御手段の上記レジスタに設定する。前記処理装置は、該レジスタからの割り込みに基づき、上記レジスタからデータ転送正常終了確認情報を取得する。
（２）上記において、処理装置は、上記主記憶装置に、データ転送情報と、データ転送正常終了確認情報を獲得するか否かを示す情報を格納し、上記データ転送制御手段が、上記主記憶手段に格納された上記情報を読み出して、上記リモート側モジュールにデータ転送を行うとともに、該データ転送の間に上記データ転送正常終了確認情報を、リモート側のモジュールから獲得する。
【発明の効果】
【０００８】
本発明においては、以下の効果を得ることができる。
（１）メモリ制御手段内に設けられたデータが設定されたとき割り込みを発生するレジスタの機能を利用し、処理装置に割り込みを上げ、処理装置が、エラー情報の有無の確認およびエラー時にはその詳細な要因を確認するようにしたので、正常終了確認（Ａｃｃｅｓｓ  Ａｓｓｕｒａｎｃｅ）の際の処理装置における負荷の軽減を図ることができる。
（２）高速な主記憶装置内に用意された、データ転送情報とデータ転送正常終了確認情報を獲得するか否かを示す情報（ディスクリプタ）を読み出す機能を、データ転送制御手段に設けることで、処理装置に対する負荷を一層軽減することができ、データ転送のために使用されていた処理装置のリソースを他の処理に与えることが出来る。
【発明を実施するための最良の形態】
【０００９】
図１は本発明の実施例のデータ転送制御装置の構成例を示す図である。
図１において、ローカル側のアダプタ１は、前記したようにデータ転送コントローラ１１、データバッファ１２、メモリコントローラ１３、主記憶装置１４、ＣＰＵ１５から構成される。データ転送コントローラ１１、メモリコントローラ１３は、インタフェースモジュール１６を介して、上位インタフェースであるホストもしくはディスク装置に接続される。
また、リモート側のセントラライズド・モジュール２は、ルータ３を介して、上記アダプタ１と接続される。
データ転送コントローラ１１は、３つのＰＣＩバスを持ち、ここでは仮にデータ転送コントローラ１１−インタフェースモジュール１６間をＬｏｃａｌ−ＰＣＩ（ＬＰＣＩ）、データ転送コントローラ１１−メモリコントローラ１３間をＣｏｍｍｕｎｉｃａｔｉｏｎ−ＰＣＩ（ＣＰＣＩ）、データ転送コントローラ１１−セントラライズド・モジュール２間をＳｙｓｔｅｍ−ＰＣＩ（ＳＰＣＩ）と呼ぶことにする。
ＬＰＣＩはホストおよびディスクとのメッセージ転送およびデータ転送を行い、ＣＰＣＩはＣＰＵ１５とのメッセージ転送を、そしてＳＰＣＩは前述のようにセントラライズド・モジュール２とのメッセージ転送およびデータ転送を行う。
【００１０】
図２に、本発明の適用例であるＲＡＩＤ装置（ＲＡＩＤ：Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ) の全体構成を示す。
図２において、ＲＡＩＤ装置２０は、複数のディスク群から構成されるディスク装置２１−１〜２１−４を有し、各ディスク装置２１は上記アダプタ１−１〜１−４に接続され、各アダプタ１−１〜１−４は、ルータ３−１，３−２を介してセントラライズド・モジュール２−１，２−２と接続される。上記アダプタ１−１〜１−４は前記したように、ディスク装置２１−１〜２１−４から転送されてきたデータをルータ３−１，３−２を介して、セントラライズド・モジュール２−１，２−２に転送する。
また、ＲＡＩＤ装置２０は、ホストコンピュータ２２−１，２２−２と接続される。該ホストコンピュータ２２−１，２２−２には上記アダプタ１−５〜１−８が接続され、各アダプタ１−５〜１−８は、ルータ３−３，３−４を介してセントラライズド・モジュール２−１，２−２と接続される。上記アダプタ１−５〜１−８は前記したように、ホストから転送されてきたデータをルータ３−１，３−２を介して、セントラライズド・モジュール２−１，２−２に転送する。
【００１１】
図３、図４は、本実施例のデータ転送制御装置の動作を説明する図であり、以下、同図により、本実施例のデータ転送制御装置の動作について説明する。
図３は、本実施例におけるデータ転送処理を説明する図であり、本実施例において、データ転送は次のように行われる。
転送データがインタフェースモジュール１６を介してデータ転送コントローラ１１に送られ、データバッファ１２に格納される。また、インタフェースモジュール１６からメモリコントローラ１３を介して、データバッファ１２にデータが格納されたことがＣＰＵ１５に通知される。
ＣＰＵ１５は、上記通知をもらうとディスクリプタを作成し、アダプタ１内のプログラムにより、主記憶装置１４内にディスクリプタを設定する（図３の(1),(i))。
ディスクリプタには、図５（ａ）に示すように、セントラライズド・モジュール２内のＰＣＩアドレス、転送バイト数、転送元であるデータバッファ１２のアドレスなどが設定される。また、Ａ．Ａ．の読出しが必要なデータ転送の切れ目に、Ａ．Ａ．用のフラグが設定され、このフラグが設定されていると、前記したようにデータ転送後、ルータ３からＡ．Ａ．コードが読み出される。Ａ．Ａ．コードは、例えば、図５（ｂ）に示すようにデータ転送が正常に行われたか否かを示すフラグを格納する領域と、データ転送が異常終了した場合にそのエラー内容を示すエラーコードが格納される領域を有する。
【００１２】
ついで、ＣＰＵ１５は、データ転送コントローラ１１のデータ転送制御部１１ｂへ、ディスクリプタが設定された主記憶装置１４のアドレスを通知し、データ転送コントローラ１１のデータ転送エンジン１１ａを起動する（図３の(2),(ii)) 。
これにより、データ転送コントローラ１１のデータ転送制御部１１ｂは、通知された主記憶装置１４のアドレスよりディスクリプタを読み出し、データ転送エンジン１１ａに設定する（図３の(iii))。
そして、ディスクリプタの設定に応じて、データバッファ１２に格納されたデータが転送エンジン１１ａを介してセントラライズド・モジュール２へ転送される（図３の(3)),(iv))。
上記データ転送の実行中、ＣＰＵ１５は次データ転送用のディスクリプタを主記憶装置１４に設定する（図３の（v ））。この設定はバースト転送分だけ繰り返し行われる。
【００１３】
従来技術ではＣＰＵ１５がデータ転送コントローラ１１内のレジスタにディスクリプタを用意していたが、本実施例では、上記のように、高速な主記憶装置１４にディスクリプタを用意し、ＣＰＵ１５はそこに転送情報を設定し、設定されたディスクリプタのアドレスをデータ転送コントローラ１１に与え、データ転送コントローラ１１が、主記憶装置１４内よりディスクリプタを読み出し、データ転送を行うようにした。このため、ＣＰＵ１５に対する負荷は軽減され、従来はデータ転送のために使用されていたＣＰＵのリソースを他の処理に与えることが出来る。
特に、主記憶装置１４はデータ転送コントローラ１１内のレジスタに比べ、容量が大きく、データ転送コントローラ１１がデータ転送処理をおこなっている間に、次々とディスクリプタを書き込むことができる。このため、データ転送が終わるまで待って、ディスクリプタをデータ転送コントローラ１１に書き込む必要がない。
また、前記したように、ディスク制御システムは複数のＰＣＩバスを有しており、上位インタフェースとの転送速度が向上するにつれ処理の多重度も増し、従来例のようにデータ転送ごとにディスクリプタを設定すること自体が負荷となっていたが、本実施例によれば、従来例に比べ、ＣＰＵ１５の負担を軽減化することができる。
【００１４】
図４は、本実施例におけるデータ転送の正常終了確認処理を説明する図である。
図４に示すように、Ａ．Ａ．コードのセットを、ルータ３がセントラライズド・モジュール２から取得する（図４の(i) ）。
データ転送コントローラ１１は、前記したＡ．Ａ．コードを読み出すためのディスクリプタを実行することで、ルータ３から上記Ａ．Ａ．コードを読み出して（図４の(ii)）、自分自身では保持せずにメモリコントローラ１３のメールボックス（Ｍａｉｌｂｏｘ）・レジスタ１３ａにセットする（図４の(iii) ）。
上記メールボックス・レジスタ１３ａはデータ書き込みが行われると、割り込みを発生する機能を持っているため、Ａ．Ａ．コードがメモリコントローラ１３に渡されると同時にＣＰＵ１５に割り込みが上がる（図４の(iv)）。
【００１５】
ＣＰＵ１５は、上記メモリコントローラ１３からの割り込みの処理を行い（図４の(v) ）、引き続いて、メモリコントローラ１３のＡ．Ａ．コードを読み出して、それを判断することで、エラー情報の有無とその詳細なエラー要因を知ることができる（図４の(vi)）。
すなわち、上記メールボックス・レジスタ１３ａの機能を利用したデータ転送終了後の割り込み要因の特定は次のようになる。
(a) ＣＰＵ１５がメモリコントローラ１３の割り込み要因レジスタを読み出して、要因がＡ．Ａ．であることを知る。
(b) ＣＰＵ１５はメモリコントローラ１３内のメールボックス・レジスタ１３ａを読み出して、エラー情報の有無およびエラー時にはその詳細な要因を確認する。
上記のような手順をとることにより、従来技術では、データ転送時のエラー情報を確認するために、ＣＰＵ１５はメモリコントローラ１３内レジスタを１回、データ転送コントローラ１１内レジスタを２回読み出す必要があったのに対して、本実施例では、メモリコントローラ１３内レジスタを２回読み出すだけで済み、ＣＰＵ１５における負荷の軽減を図ることが出来る。
【００１６】
本実施例では、上記のように、データ転送コントローラ１１とセントラライズド・モジュール２間のデータ転送における正常終了確認であるＡｃｃｅｓｓ  Ａｓｓｕｒａｎｃｅ（Ａ．Ａ．）について、メモリコントローラ１３のメールボックス・レジスタ１３ａの機能を使用し、メールボックス・レジスタ１３ａにＡ．Ａ．コードがセットされると、ＣＰＵ１５へ自動的に割り込みがあがるようにしたので、ＣＰＵに対する負荷を軽減することが可能となり、ディスク制御システムの性能向上を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例のデータ転送制御装置の構成例を示す図である。
【図２】本発明の適用例であるＲＡＩＤ装置の全体構成を示す図である。
【図３】本発明の実施例におけるデータ転送処理を説明する図である。
【図４】本発明の実施例におけるデータ転送の正常終了確認処理を説明する図である。
【図５】ディスクリプタおよびＡ．Ａ．コードの例を示す図である。
【図６】従来のデータ転送処理を説明する図である。
【図７】従来のデータ転送の正常終了確認処理を説明する図である。
【符号の説明】
【００１８】
１      アダプタ（ＡＤＰ）
２      セントラライズド・モジュール（ＣＭ）
３      ルータ（ＲＴ）
１１    データ転送コントローラ
１１ａ  データ転送エンジン
１１ｂ  データ転送制御部
１２    データバッファ
１３    メモリコントローラ
１３ａ  メールボックス・レジスタ
１４    主記憶装置
１５    ＣＰＵ
１６    インタフェースモジュール
２０    ＲＡＩＤ装置
２１    ディスク装置
【図１】
2005242666.tif 000003
【図２】
2005242666.tif 000004
【図３】
2005242666.tif 000005
【図４】
2005242666.tif 000006
【図５】
2005242666.tif 000007
【図６】
2005242666.tif 000008
【図７】
2005242666.tif 000009