(57)【特許請求の範囲】
【請求項１】
非ハンドシェイク型の通信でデータを送信する送信素子と、
前記送信素子から送信されたデータを受信する受信素子と、
前記受信素子によって受信されるデータのサイズを監視し、該監視した受信データのサイズを前記送信素子に通知する、該受信素子とは別に設けられた監視素子と、
を備え、
前記送信素子が、前記データの送り先を表したアドレスも該データに対応付けて送信するものであり、
前記送信素子から前記監視素子の手前までのいずれかの箇所に、送信された前記データに対応付けられているアドレスを、アドレス空間が異なる他のアドレスに、所定の変換ルールで変換する変換器を備え、
前記監視素子が、前記監視結果を前記送信素子に通知するに当たり、監視したデータに対応付けられた前記他のアドレスを、前記変換ルールによる変換に対する逆変換で元のアドレスに戻し、その元のアドレスも通知するものである
ことを特徴とするデータ転送装置。
【請求項２】
前記監視素子が、前記送信素子から前記受信素子に至る通信経路上に設けられたものであることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記送信素子は、送信したデータのサイズが前記監視素子から通知されてきたサイズと不一致の場合、前記監視素子から通知されてきた逆変換後のアドレスを使ってデータを再送するものであることを特徴とする請求項１または２記載のデータ転送装置。
【請求項４】
データを記憶する記憶部と、
前記記憶部にアクセスすることで、再生データの読出しおよび記録データの書込みの少なくとも一方を行うアクセス部と、
前記再生データおよび前記記録データの少なくとも一方について上位装置との送受信を行う送受信部と、
前記送受信部から前記アクセス部までの間における内部的なデータ転送を担うデータ転送部とを備え、
前記データ転送部が、
非ハンドシェイク型の通信でデータを送信する送信素子と、
前記送信素子から送信されたデータを受信する受信素子と、
前記受信素子によって受信されるデータのサイズを監視して監視結果を前記送信素子に通知する、該受信素子とは別に設けられた監視素子と、
を備えたものであり、
前記送信素子が、前記データの送り先を表したアドレスも該データに対応付けて送信するものであり、
前記送信素子から前記監視素子の手前までのいずれかの箇所に、送信された前記データに対応付けられているアドレスを、アドレス空間が異なる他のアドレスに、所定の変換ルールで変換する変換器を備え、
前記監視素子が、前記監視結果を前記送信素子に通知するに当たり、監視したデータに対応付けられた前記他のアドレスを、前記変換ルールによる変換に対する逆変換で元のアドレスに戻し、その元のアドレスも通知するものであることを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示は、データ転送装置およびストレージ装置に関する。
【背景技術】
【０００２】
従来より、ストレージ装置などでデータを内部転送することが行われている。近年、データの転送量や転送速度の向上が望まれているのに伴って非ハンドシェイク型の通信で高速にデータを転送する技術が普及してきている。このような非ハンドシェイク型の通信については、データの送達が保証されないので送達保証の技術が望まれている。
【０００３】
このような送達保証に関し、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）において、メモリへのデータ書込みを検証するために、バスモニタで書き込まれたデータ数を数える技術が提案されている（例えば、特許文献１参照。）。
【０００４】
また、シリアルデータ転送システムにおいて、ＣＲＣコードをデータに付加することでデータエラーをチェックする技術も提案されている（例えば特許文献２参照。）。
【０００５】
また、配信型データ転送システムにおいて、ターゲットデバイスがバスを介した他のターゲットデバイスへのデータ転送を監視して自分にも取り込む技術が提案されている（例えば特許文献３参照。）。
【０００６】
更に、バス信号のモニタリングの技術として、通信チャネル上に生じる種々のタイプのイベントをモニタ可能なＣＰＵ回路を用いて、特定タイプのイベントが生じたらＣＰＵ回路を再構成する技術が提案されている（例えば特許文献４参照。）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３５５４３０号公報
【特許文献２】特開平１０−２９０２７０号公報
【特許文献３】特開平９−２５１４３９号公報
【特許文献４】特表２００５−５０１３３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、データの内部転送では、転送対象のデータを分割して転送する場合が多いため、全てのデータが欠落無く送達されたことを、高い確証性と簡素な構成で確認することは、上述したいずれの特許文献に開示された技術においても実現できない。
【０００９】
上記事情に鑑み、本件開示は、非ハンドシェイク型の通信を行っている装置においてデータの送達を確認することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するデータ転送装置は、送信素子と受信素子と監視素子とを備えている。
【００１１】
上記送信素子は、非ハンドシェイク型の通信でデータを送信するものである。
【００１２】
上記受信素子は、上記送信素子から送信されたデータを受信するものである。
【００１３】
上記監視素子は、上記受信素子によって受信されるデータのサイズを監視して監視結果を上記送信素子に通知するものである。そして、監視素子は受信素子とは別に設けられている。
【００１４】
上記目的を達成するストレージ装置は、記憶部とアクセス部と送受信部とデータ転送部とを備えている。
【００１５】
上記記憶部は、データを記憶するものである。
【００１６】
上記アクセス部は、上記記憶部にアクセスすることで、再生データの読出しおよび記録データの書込みの少なくとも一方を行うものである。
【００１７】
上記送受信部は、再生データおよび記録データの少なくとも一方について上位装置との送受信を行うものである。
【００１８】
上記データ転送部は、上記送受信部から上記アクセス部までの間における内部的なデータ転送を担うものである。このデータ転送部は、上記送信素子と上記受信素子と上記監視素子とを備えている。
【発明の効果】
【００１９】
本件開示によれば、非ハンドシェイク型の通信を行っている装置においてデータの送達を確認することができる。
【図面の簡単な説明】
【００２０】
【図１】データ転送装置の具体的な第１実施形態を示す図である。
【図２】ストレージ装置の具体的な第１実施形態を示す図である。
【図３】ストレージ装置の具体的な第２実施形態を示す図である。
【図４】ＤＭＡデバイスを介して相互に接続されたＣＭを模式的に示す図である。
【図５】図４に示す２つのＣＭにおけるデータ転送の例を示す図である。
【図６】チェック用デバイスの構造を示す図である。
【図７】チェック用デバイスによる監視動作におけるシーケンスを示す図である。
【図８】ＤＭＡにおける転送データのフォーマットを示す図である。
【図９】ＰＣＩ−Ｅｘｐｒｅｓｓのスイッチにおけるアドレス変換の機能を示した図である。
【図１０】チェック用デバイスに用意されている変換テーブルの一例を示す図である。
【図１１】第３実施形態における、ＤＭＡデバイスを介して相互に接続されたＣＭを模式的に示した図である。
【図１２】第４実施形態における、ＤＭＡデバイスを介して相互に接続されたＣＭを模式的に示した図である。
【図１３】第４実施形態におけるデータ転送の例を示す図である。
【図１４】第４実施形態における監視動作の詳細を示す図である。
【発明を実施するための形態】
【００２１】
上記説明したデータ転送装置およびストレージ装置に対する具体的な実施形態を、以下図面を参照して説明する。
【００２２】
図１は、データ転送装置の具体的な第１実施形態を示す図である。
【００２３】
図１に示すデータ転送装置１０は、送信素子１１と受信素子１２と監視素子１３とを備えている。
【００２４】
送信素子１１は、非ハンドシェイク型の通信でデータを送信するものである。
【００２５】
受信素子１２は、送信素子１１から送信されたデータを受信するものである。
【００２６】
監視素子１３は、受信素子１２によって受信されるデータのサイズを監視して監視結果を送信素子１１に通知するものである。監視素子１３は、受信素子１２とは別に設けられている。
【００２７】
このようなデータ転送装置１０によれば、監視素子１３で監視されたデータサイズを送信素子１１側で知得することができる。送信したデータサイズと同じサイズのデータが送達されたことが確認できると、データ送達の確証性は高い。また、このような機能の監視素子１３は十分に小型で簡素な素子によって実現可能であり、そのような監視素子１３が組み込まれたデータ転送装置１０の構成も簡素である。
【００２８】
図２は、ストレージ装置の具体的な第１実施形態を示す図である。
【００２９】
図２に示すストレージ装置１００は、記憶部１１０とアクセス部１２０と送受信部１３０とデータ転送部１４０とを備えている。
【００３０】
記憶部１１０は、データを記憶するものである。
【００３１】
アクセス部１２０は、記憶部１１０にアクセスすることで、再生データの読出しおよび記録データの書込みの少なくとも一方を行うものである。
【００３２】
送受信部１３０は、再生データおよび記録データの少なくとも一方について上位装置２００との送受信を行うものである。
【００３３】
データ転送部１４０は、送受信部１３０からアクセス部１２０までの間における内部的なデータ転送を担うものである。このデータ転送部１４０は、図１に示すデータ転送装置１０と同様に、送信素子１１と受信素子１２と監視素子１３とを備えている。
【００３４】
このようなストレージ装置１００についても、データ転送部１４０が担う内部的なデータ転送に関して、データの送達確認を高い確証性と簡素な構成で実現することができる。この結果、上位装置２００から見たときのストレージ装置１００は、動作の信頼性が高い装置と言える。
【００３５】
図３は、ストレージ装置の具体的な第２実施形態を示す図である。この第２実施形態のストレージ装置には、データ転送装置の具体的な第２実施形態が組み込まれている。
【００３６】
図３に示すストレージ装置３００は、複数のディスク装置３１０を内蔵している。具体的には、図３には６つのディスク装置３１０＿１，…，３１０＿６が例示されている。以下の説明では、これら６つのディスク装置３１０＿１，…，３１０＿６について、区別せずに総称する場合にはディスク装置３１０と称する。これらのディスク装置３１０は、それぞれがデータを記憶する装置である。即ち、これらのディスク装置３１０は、それぞれが記憶部の一例に相当する。なお、ディスク装置の種類としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）などが存在する。そして本実施形態のディスク装置３１０としてはどの種類のディスク装置も採用可能である。
【００３７】
また、ストレージ装置３００は、複数のコントローラモジュール（ＣＭ）３２０を備えている。具体的には、図３には３つのＣＭ３２０＿１，３２０＿２，３２０＿３が例示されている。以下の説明では、これら３つのＣＭ３２０＿１，３２０＿２，３２０＿３について、区別せずに総称する場合にはＣＭ３２０と称する。
【００３８】
ＣＭ３２０には、チャネルアダプタ（ＣＡ）３３０とデバイスアダプタ（ＤＡ）３４０とダイレクトメモリアクセス（ＤＭＡ）デバイス３５０が備えられている。更に後述するように、ＣＭ３２０には、ＣＰＵやメモリなども備えられているので、このＣＰＵで動作されるプログラムの内容によってＣＭ３２０は種々の処理を実行することができる。
【００３９】
ＣＡ３３０は、上位装置であるホスト４００に接続されている。そしてＣＭ３２０は、ＣＡ３３０を介してホスト４００から、書込み命令や、その書込み命令に従ってディスク装置３１０に書き込まれるデータを受け取る。また、ＣＭ３２０はＣＡ３３０を介してホスト４００から読出し命令を受け取り、その読出し命令に従ってディスク装置３１０から読み出されたデータをＣＡ３３０を介してホスト４００へ送る。なお、図３には２つのホスト４００＿１，４００＿２が例示されているが、以下の説明では、これら２つのホスト４００＿１，４００＿２について、区別せずに総称する場合にはホスト４００と称する。
【００４０】
ＤＡ３４０はディスク装置３１０に接続されている。そしてＣＭ３２０はＤＡ３４０を介してディスク装置３１０にアクセスすることでデータをディスク装置３１０と遣り取りする。
【００４１】
ＤＭＡデバイス３５０は、ＣＭ３２０の相互接続に用いられる装置である。即ち、各ＣＭ３２０はＤＭＡデバイス３５０を介して、必要に応じてデータを相互に転送する。この転送における通信方式としては、ＰＣＩ−Ｅｘｐｒｅｓｓに則った非ハンドシェイク型の通信方式が用いられる。
【００４２】
データの転送が必要になる場合とは、例えば、図３に示す２つのホスト４００＿１，４００＿２のうち左側のホスト４００＿１から、図３に示す６つのディスク装置３１０＿１，…，３１０＿６のうち右端のディスク装置３１０＿６に対するデータの書込み命令が発せられた場合である。この場合には、書き込まれるデータは、図３に示す３つのＣＭ３２０＿１，３２０＿２，３２０＿３のうち左端のＣＭ３２０＿１が受け取るが、右端のディスク装置３１０＿６に実際にデータを送るのは右端のＣＭ３２０＿３の役目である。このため、左端のＣＭ３２０＿１から右端のＣＭ３２０＿３へとデータがＤＭＡデバイス３５０を介して送られることとなる。このように相互接続された複数（この例では３つ）のＣＭ３２０＿１，３２０＿２，３２０＿３を合わせたものがデータ転送装置の第２実施形態に相当する。
【００４３】
なお、図３に示す、ＣＭ３２０とホスト４００との１対１の接続関係、およびＣＭ３２０とディスク装置３１０との１対２の接続関係は単なる一例であって、ＣＡ３３０やＤＡ３４０で物理的に対応可能な範囲内であればＣＭ３２０の設定によって接続関係は変更可能である。
【００４４】
図４は、ＤＭＡデバイスを介して相互に接続されたＣＭを模式的に示す図である。
【００４５】
図４には、２つのＣＭ３２０が模式的に示されている。そして、これら２つのＣＭ３２０の一方にはＣＡ３３０とＤＭＡデバイス３５０が示されていて、他方にはＤＡ３４０が示されているが、これは単なる便宜上の記載である。実際には、図３に示すように、いずれのＣＭ３２０にも、ＣＡ３３０とＤＡ３４０とＤＭＡデバイス３５０が備えられている。なお、以下の説明でこれら２つのＣＭ３２０の区別が必要となった場合には、図４中に記載されているように、左側のＣＭ３２０をコントローラモジュール（ＣＭ）ｘと称し、右側のＣＭ３２０をコントローラモジュール（ＣＭ）ｙと称する。
【００４６】
上述したように、ＣＭ３２０には、ＣＰＵ３６０とメインメモリ３７０が備えられている。メインメモリ３７０に展開されたプログラムに従ってＣＰＵ３６０が動作することによってＣＭ３２０は各種の機能を果たすことになる。
【００４７】
ＣＭ３２０には更に、ＰＣＩ−Ｅｘｐｒｅｓｓのスイッチ３８０とチェック用デバイス３９０も備えられている。チェック用デバイス３９０についても、図４では便宜上一方のＣＭ３２０のみに示されているが実際には各ＣＭ３２０に備えられている。
【００４８】
スイッチ３８０は、ＰＣＩ−Ｅｘｐｒｅｓｓによって通信されるデータの送信先を、そのデータに付属するアドレスに従って切り換えるものである。また、スイッチ３８０は、複数のアドレスに対してマルチキャストでデータを送る機能も有している。なお、２つのＣＭ３２０は、物理的にはスイッチ３８０を介して相互接続されているが、データの転送機能として見た場合には、ＤＭＡデバイス３５０を介して相互接続されている。
【００４９】
チェック用デバイス３９０は、ＣＭ３２０の相互間でのデータ転送について、転送データのチェックを担うものである。即ち、このチェック用デバイス３９０が、上述した監視素子の一例に相当する。このチェック用デバイス３９０は具体的にはＦＰＧＡなどによって作成されたものである。このチェック用デバイス３９０における具体的なチェックの動作については後で詳細に説明する。
【００５０】
図５は、図４に示す２つのＣＭにおけるデータ転送の例を示す図である。
【００５１】
図５では、２つのＣＭ３２０のうちＣＭｘがホストからデータを受け取り、そのデータをＣＭｘがＣＭｙに転送してＣＭｙがディスクに書き込む例が示されている。
【００５２】
ＣＭｘは、ＣＡ３３０を介してホストからデータを受け取る。そのデータは、スイッチ３８０を経由してＣＰＵ３６０に送られ、ＣＰＵ３６０によってメインメモリ３７０に格納される。このようにホストから受け取られたデータには、データを格納する場所の指定も含まれているものとする。
【００５３】
図５に示す例では、指定された格納場所はＣＭｘに繋がったディスク装置ではなく、ＣＭｙに繋がっているディスク装置である。このためＣＰＵ３６０は、ＣＭｙへのデータ転送が必要であると判断し、メインメモリ３７０からデータを取り出してスイッチ３８０経由でＤＭＡデバイス３５０に送り込む。また、ＣＰＵ３６０は、ＤＭＡデバイス３５０にはＣＭｙへのデータ転送を指示する。その結果、ＤＭＡデバイス３５０は、ＣＭｙのメインメモリ３７０のアドレスを送信先として指定してデータを転送する。この送信先のアドレスは、データ格納を開始するアドレスという意味で「開始アドレス」と称される。なお、詳しくは後述するように、同じ送信先を示した開始アドレスであってもＣＭ３２０毎にアドレス空間が相違しているが、ここでは区別せずに「開始アドレス」と称する。また、転送データには、送信元のデバイスを表した情報である「送信デバイス情報」も付加されている。
【００５４】
データの転送に際し、ＤＭＡデバイス３５０は、データを適宜に複数個のデータブロックに分割する。また、チェック用デバイス３９０でのチェックやその後の処理における便宜のため、ＤＭＡデバイス３５０は、複数個のデータブロックの送信順序が入れ替わらない様に、“Ｒｅｌａｘｅｄ  Ｏｒｄｅｒｉｎｇ  Ａｔｔｒｉｂｕｔｅ”  ｂｉｔを落とした状態で転送を行っている。この“Ｒｅｌａｘｅｄ  Ｏｒｄｅｒｉｎｇ  Ａｔｔｒｉｂｕｔｅ”  ｂｉｔは、スイッチ３８０等に対しデータブロックの送信順序の入れ替わりについての許可不許可を指示するものである。この“Ｒｅｌａｘｅｄ  Ｏｒｄｅｒｉｎｇ  Ａｔｔｒｉｂｕｔｅ”  ｂｉｔがオンであると送信順序の入れ替わりが許可され、オフであると送信順序の入れ替わりが不許可となる。
【００５５】
データはＣＭｘとＣＭｙの双方のスイッチ３８０およびチェック用デバイス３９０を経由し、ＣＰＵ３６０も通ってＣＭｙのメインメモリ３７０に格納される。
【００５６】
なお、このときデータがＣＰＵ３６０を物理的には通過するが、このデータ転送ではＣＰＵ３６０の演算機能は用いられず、ＣＰＵ３６０に組み込まれているメモリコントローラの部分が用いられている。
【００５７】
ＣＭｙのメインメモリ３７０に転送されたデータは、ＣＭｙのＣＰＵ３６０によって格納場所の指定が確認される。その結果、ＣＰＵ３６０による指示に従ってスイッチ３８０およびＤＡ３４０経由でディスク装置にデータが送り込まれて書き込まれる。
【００５８】
このようなデータの転送において、ＣＭｘのＤＭＡデバイス３５０は送信素子の一例に相当し、ＣＭｙのメインメモリ３７０は受信素子の一例に相当する。そして、上述したように、チェック用デバイス３９０が監視素子の一例に相当するので、本実施形態では、監視素子が送信素子から受信素子に至る通信経路上に設けられていることになる。このように監視素子が通信経路上に存在すると、他の位置に存在する場合よりも、監視素子による監視が容易で、監視素子自体の構造や機能をより簡素なものとすることができる。以下、チェック用デバイス３９０による監視動作の詳細について説明する。
【００５９】
図６は、チェック用デバイスの構造を示す図である。また、図７は、チェック用デバイスによる監視動作におけるシーケンスを示す図である。
【００６０】
以下、図６、図７を説明するに当たって、図５も併せて参照する。
【００６１】
上述したようにデータがＣＭｘのＤＭＡデバイス３５０からＣＭｙのメインメモリ３７０へと転送される場合には、ＤＭＡデバイス３５０は、転送の最初にチェック用デバイス３９０に対して開始の通知を送る。この開始の通知は、本実施形態では、ＤＭＡにおける転送データの一部に組み込まれてＤＭＡデバイス３５０からメインメモリ３７０まで転送される。
【００６２】
図８は、ＤＭＡにおける転送データのフォーマットを示す図である。
【００６３】
ＤＭＡのデータ仕様では、転送データ５５０は、メッセージ部５５１とデータ部５５２とを含んでいる。データ部５５２は、本来の転送対象の部分である。一方、メッセージ部５５１は、本来の転送対象に付加されて、転送元と転送先との間で事前に決められたルールに従って通知などに自由に利用される部分である。このメッセージ部５５１は、転送データ５５０の転送後に転送データ５５０から取り除かれる。本実施形態では、このメッセージ部５５１内に通知領域５５３と報告領域５５４を設けることが決められているものとする。そして、上述した開始の通知は通知領域５５３に組み込まれる。
【００６４】
以下、図６、図７の説明に戻る。
【００６５】
チェック用デバイス３９０は、通知確認部５１０によって、スイッチ３８０とメインメモリ３７０との相互間を通過する全てのデータについてメッセージ部５５１の常時監視を行っている。そして、チェック用デバイス３９０は、上述した開始の通知を通知確認部５１０で検出すると、上述した「開始アドレス」や「送信デバイス情報」を内部のメモリ５４０に記録する。そして、その後に通過するデータについて、サイズ確認部５２０によるデータサイズの確認と積算を開始する。この積算結果もメモリ５４０に記録される。
【００６６】
ＤＭＡデバイス３５０は、データ転送の最後には、チェック用デバイス３９０に対して完了の通知を送る。この完了の通知も、開始の通知と同様に、図８に示すメッセージ部５５１内の通知領域５５３に組み込まれて転送される。
【００６７】
チェック用デバイス３９０は、通知確認部５１０によって完了の通知を検知すると、メモリ５４０に記録しておいた「開始アドレス」とデータサイズの積算結果とを併せてＤＭＡデバイス３５０に結果報告部５３０によって通知する。この通知も、本実施形態では、ＤＭＡのメッセージとして送られる。即ち、図８に示すメッセージ部５５１内の報告領域５５４に結果報告の通知が組み込まれる。
【００６８】
このようにＤＭＡデバイス３５０に通知された積算結果などが、元のデータサイズとの比較などに用いられることで、データ送達が確認される。具体的には、ＤＭＡデバイス３５０によって元のデータサイズが送信時にメインメモリ３７０内に格納されていて、その元のデータサイズと通知された積算結果とが比較される。サイズが一致した場合には、データが送達されたことが確認されたこととなる。一方、サイズが不一致である場合には、データの再送などが行われることとなる。具体的には、ＤＭＡデバイス３５０によって送信時に転送データのコピーが「開始アドレス」と対応付けられてメインメモリ３７０内に保存されている。そして、再送時には、チェック用デバイス３９０から通知されてきた「開始アドレス」に対応した転送データのコピーがＤＭＡデバイス３５０によって用いられて再送が行われる。つまり、データの再送に際しては、再送するべきデータの特定のために、上述した開始アドレスが用いられる。但し、転送データに送信先として付加されている「開始アドレス」には、スイッチ３８０でアドレス変換が施されている。このため、チェック用デバイス３９０からＤＭＡデバイス３５０への通知に際しては、アドレスの逆変換が必要となる。チェック用デバイス３９０では、図６に示す結果報告部５３０でアドレスの逆変換を行っている。
【００６９】
図９は、ＰＣＩ−Ｅｘｐｒｅｓｓのスイッチにおけるアドレス変換の機能を示した図である。
【００７０】
ＰＣＩ−Ｅｘｐｒｅｓｓのスイッチ３８０には、非透過性ブリッジ機能３８１が組み込まれている。この非透過性ブリッジ機能３８１では、ＣＭｘ内で認識可能なアドレス空間ｘから、ＣＭｘとＣＭｙとの相互間のみで用いられるアドレス空間ｚへのアドレス変換が行われる。ＣＭｘとＣＭｙとの相互間では複数のＣＭそれぞれを区別するために、各ＣＭ内で用いられるアドレス空間よりも広いアドレス空間が必要になるので、このようなアドレス変換が実行される。
【００７１】
図９には、ＣＭｘのスイッチ３８０が有しているアドレス変換の機能が示されているが、ＣＭｙのスイッチ３８０も同様の機能を有している。このため、本実施形態では、ＤＭＡデバイス３５０からチェック用デバイス３９０に至るまでに「開始アドレス」は２回のアドレス変換を経ることとなる。図６に示すチェック用デバイス３９０の結果報告部５３０には、そのような２回のアドレス変換を合わせた総合変換の逆変換を定義した変換テーブル３９１が用意されている。ＣＭｘおよびＣＭｙのスイッチ３８０によるアドレス変換は、図３に示す３つのＣＭ３２０＿１，３２０＿２，３２０＿３の接続関係が設定された時点で変換内容が決められているものである。なぜならば、そのように接続関係が設定される際に、各ＣＭ内で用いられるアドレス空間やＣＭｘとＣＭｙとの相互間で用いられるアドレス空間の割り当ても設定されるからである。そして、この変換内容は、接続関係の設定が変更されない限り不変である。このため、チェック用デバイス３９０の結果報告部５３０には、そのように変換内容が決められた時点で変換テーブル３９１が用意される。
【００７２】
図１０は、チェック用デバイスに用意されている変換テーブルの一例を示す図である。
【００７３】
図１０に示す変換テーブル３９１は、受信開始アドレス３９２と、受信側リクエスタＩＤ３９３と、監視範囲３９４と、送信側ＣＭナンバ３９５と、送信側リクエスタＩＤ３９６と、送信元開始アドレス３９７が対応付けられたテーブルである。受信開始アドレス３９２を起点として監視範囲３９４が表す範囲までのアドレスが、受信側、即ちチェック用デバイス側で転送データから得られる開始アドレスを表している。また、受信側リクエスタＩＤ３９３は、受信側のＣＭ内での送信先のデバイスを表すＩＤである。
【００７４】
送信側ＣＭナンバ３９５は、送信側のＣＭを特定する番号であり、送信側リクエスタＩＤ３９６は、送信側のＣＭ内での送信元のデバイスを表すＩＤである。
【００７５】
送信元開始アドレス３９７を起点として監視範囲３９４が表す範囲までのアドレスが、受信側の開始アドレスから変換される送信側の元の開始アドレスを表している。チェック用デバイス３９０内では、このような変換テーブル３９１によって送信側の元の開始アドレスが得られる。そして、その送信側の元の開始アドレスが、上述した通知によってＤＭＡデバイス３５０に知らされることになる。その結果、ＤＭＡデバイス３５０では、監視結果が、どの送信先に送ったデータに関するものであるかを容易に認識することが出来る。即ち、ＤＭＡデバイス３５０は、送信時に開始アドレスと対応付けられて保存された転送データのうちから、再送用の転送データを、その通知されてきた元の開始アドレスをそのまま用いて検索することが出来る。
【００７６】
なお、変換ルールを送信側が認識していれば送信側でも逆変換可能ということにはなるが、監視素子が逆変換を担っていることで、装置全体としての構成は、より簡素になる。また、スイッチ３８０は変換ルールを認識していて変換を行っているが、このスイッチ３８０が変換対象としているアドレスは、転送データに本当の送信先として指定されているアドレスだけである。このため、上述した通知中のアドレスをスイッチ３８０に変換させることは大幅な装置改変を伴うこととなる。
【００７７】
このことは、以下のような応用形態が好適であることを意味している。この応用形態では、上記送信素子が、データの送り先を表したアドレスもデータに対応付けて送信するものである。また、送信素子から監視素子の手前までのいずれかの箇所に、送信されたデータに対応付けられているアドレスを、アドレス空間が異なる他のアドレスに、所定の変換ルールで変換する変換器を備えている。更にこの応用形態では、監視素子が、監視結果を送信素子に通知するに当たり、監視したデータに対応付けられている上記他のアドレスを、上記変換ルールによる変換に対する逆変換で、送信素子がデータに対応付けたときのアドレスである元のアドレスに戻す。そして監視素子は、その元のアドレスも送信素子に通知する。
【００７８】
この第２実施形態におけるチェック用デバイス３９０は、この応用形態における監視素子の一例にも相当している。
【００７９】
なお、この応用形態にいう「データの送り先を表したアドレス」とは、デバイスを表したアドレスであってもよいし、あるいは、デバイス中の格納箇所を表したアドレスであってもよい。第２実施形態においても、スイッチ３８０に対する設定により、データの送り先として、デバイスを表したアドレスとデバイス中の格納箇所を表したアドレスとの双方を用いることが出来る。
【００８０】
以上で第２実施形態の説明を終了し、以下、第３実施形態について説明する。この第３実施形態は、チェック用デバイスの位置が異なる点を除いて第２実施形態と同等の実施形態であるので、以下では第２実施形態との相違点を中心に説明する。
【００８１】
図１１は、第３実施形態における、ＤＭＡデバイスを介して相互に接続されたＣＭを模式的に示した図である。
【００８２】
この第３実施形態では、チェック用デバイス３９０が、ＰＣＩ−Ｅｘｐｒｅｓｓのスイッチ３８０を挟んでＣＰＵ３６０とは逆側に位置している。このチェック用デバイス３９０によるデータの監視動作は、第２実施形態における監視動作と全く同様である。但し、開始アドレスの変換に関しては、ＣＭｘとＣＭｙとの相互間でのアドレス空間からＣＭｘ内用のアドレス空間へのアドレス変換となる。このアドレス変換も、図８に示す変換テーブル３９１と同様の変換テーブルに従って実行される。この第３実施形態におけるチェック用デバイス３９０の配置も、上述した第２実施形態における配置と同様に、監視素子が送信素子から受信素子に至る通信経路上に設けられている配置に相当する。従って、他の配置よりも、監視素子による監視が容易で、監視素子自体の構造や機能をより簡素なものとすることができる。
【００８３】
なお、チェック用デバイス３９０の機能をスイッチ３８０内に組み込むことは理論上は可能であるが、その場合には装置の大幅な改変を伴うこととなるので好ましくない。
【００８４】
次に第４実施形態について説明する。この第４実施形態も、チェック用デバイスの位置が異なる点を除いて第２実施形態と同等の実施形態であるので、以下では第２実施形態との相違点を中心に説明する。
【００８５】
図１２は、第４実施形態における、ＤＭＡデバイスを介して相互に接続されたＣＭを模式的に示した図である。
【００８６】
この第４実施形態では、チェック用デバイス６００は、データ転送の通信経路上からスイッチ３８０によって分岐した箇所に設けられている。そして、このチェック用デバイス６００には、ＣＭ内でのデータ送信先として認識するためのアドレスが割り当てられている。
【００８７】
この第４実施形態の場合には、チェック用デバイス６００で転送データが監視できるように、スイッチ３８０が有するマルチキャストの機能が利用される。
【００８８】
図１３は、第４実施形態におけるデータ転送の例を示す図である。
【００８９】
第４実施形態では、ＣＰＵ３６０が、ＤＭＡデバイス３５０にＣＭｙへのデータ転送を指示するに当たり、送信先として、ＣＭｙのメインメモリ３７０とチェック用デバイス６００との双方を指示する。そのような指示を受けたＤＭＡデバイス３５０は、マルチキャストの機能を用いてデータを転送する。ＣＭｙのスイッチ３８０では、送信先として指定されたメインメモリ３７０とチェック用デバイス６００との双方にデータを送ることになる。
【００９０】
図１４は、第４実施形態における監視動作の詳細を示す図である。
【００９１】
図１４に示すように、スイッチ３８０は、メインメモリ３７０とチェック用デバイス６００との双方にデータを送る。一方、上述した開始の通知に関しては、マルチキャストを使って送ってメインメモリ３７０側では最終的に取り除くこととしてもよいが、ここに示す例ではチェック用デバイス６００を送信先として特定して送っている。これにより、メインメモリ３７０側では、不要なデータを取り除く作業が省略できる。
【００９２】
このようにマルチキャストでデータが送られる場合であっても、チェック用デバイス６００では、第２実施形態における監視動作と全く同様の監視動作が実行される。その結果、第４実施形態でも第２実施形態と同様にデータ送達が確認できることになる。
【００９３】
以下、上述した形態を含む本件の種々の形態に関し、更に以下の付記を開示する。
【００９４】
（付記１）
非ハンドシェイク型の通信でデータを送信する送信素子と、
前記送信素子から送信されたデータを受信する受信素子と、
前記受信素子によって受信されるデータのサイズを監視して監視結果を前記送信素子に通知する、該受信素子とは別に設けられた監視素子と、
を備えたことを特徴とするデータ転送装置。
【００９５】
（付記２）
前記監視素子が、前記送信素子から前記受信素子に至る通信経路上に設けられたものであることを特徴とする付記１記載のデータ転送装置。
【００９６】
（付記３）
前記送信素子が、前記データの送り先を表したアドレスも該データに対応付けて送信するものであり、
前記送信素子から前記監視素子の手前までのいずれかの箇所に、送信された前記データに対応付けられているアドレスを、アドレス空間が異なる他のアドレスに、所定の変換ルールで変換する変換器を備え、
前記監視素子が、前記監視結果を前記送信素子に通知するに当たり、監視したデータに対応付けられた前記他のアドレスを、前記変換ルールによる変換に対する逆変換で元のアドレスに戻し、その元のアドレスも通知するものであることを特徴とする付記１または２記載のデータ転送装置。
【００９７】
（付記４）
データを記憶する記憶部と、
前記記憶部にアクセスすることで、再生データの読出しおよび記録データの書込みの少なくとも一方を行うアクセス部と、
前記再生データおよび前記記録データの少なくとも一方について上位装置との送受信を行う送受信部と、
前記送受信部から前記アクセス部までの間における内部的なデータ転送を担うデータ転送部とを備え、
前記データ転送部が、
非ハンドシェイク型の通信でデータを送信する送信素子と、
前記送信素子から送信されたデータを受信する受信素子と、
前記受信素子によって受信されるデータのサイズを監視して監視結果を前記送信素子に通知する、該受信素子とは別に設けられた監視素子と、
を備えたものであることを特徴とするストレージ装置。
【００９８】
（付記５）
前記監視素子が、前記送信素子から前記受信素子に至る通信経路上に設けられたものであることを特徴とする付記４記載のストレージ装置。
【００９９】
（付記６）
前記送信素子が、前記データの送り先を表したアドレスも該データに対応付けて送信するものであり、
前記送信素子から前記監視素子の手前までのいずれかの箇所に、送信された前記データに対応付けられているアドレスを、アドレス空間が異なる他のアドレスに、所定の変換ルールで変換する変換器を備え、
前記監視素子が、前記監視結果を前記送信素子に通知するに当たり、監視したデータに対応付けられた前記他のアドレスを、前記変換ルールによる変換に対する逆変換で元のアドレスに戻し、その元のアドレスも通知するものであることを特徴とする付記４または５記載のストレージ装置。
【符号の説明】
【０１００】
１０    データ転送装置
１１    送信素子
１２    受信素子
１３    監視素子
１００    ストレージ装置
１１０    記憶部
１２０    アクセス部
１３０    送受信部
１４０    データ転送部
２００    上位装置
３００    ストレージ装置
３１０    ディスク装置
３２０    コントローラモジュール（ＣＭ）
３３０    チャネルアダプタ（ＣＡ）
３４０    デバイスアダプタ（ＤＡ）
３５０    ダイレクトメモリアクセス（ＤＭＡ）デバイス
３６０    ＣＰＵ
３７０    メインメモリ
３８０    ＰＣＩ−Ｅｘｐｒｅｓｓのスイッチ
３９０    チェック用デバイス
３８１    非透過性ブリッジ機能
３９１    変換テーブル
４００    ホスト
５１０    通知確認部
５２０    サイズ確認部
５３０    結果報告部
５４０    メモリ
６００    チェック用デバイス
【図１】
0005821041.tif 000002
【図２】
0005821041.tif 000003
【図３】
0005821041.tif 000004
【図４】
0005821041.tif 000005
【図５】
0005821041.tif 000006
【図６】
0005821041.tif 000007
【図７】
0005821041.tif 000008
【図８】
0005821041.tif 000009
【図９】
0005821041.tif 000010
【図１０】
0005821041.tif 000011
【図１１】
0005821041.tif 000012
【図１２】
0005821041.tif 000013
【図１３】
0005821041.tif 000014
【図１４】
0005821041.tif 000015