(57)【要約】【課題】ＲＤＭＡ  Ｗｒｉｔｅのライト保証レベルがＴＣＰ  ＡＣＫで十分なものと、ホストメモリチェックまで要求するものが混在する場合に、通信回線への無駄なトラヒックの流入の抑制と、データ受信側コンピュータ装置のマイクロプロセッサの負荷抑制を行う。【解決手段】コンピュータ装置１２のＩＰテーブルには、データ送信コンピュータ装置毎のライト保証レベルが登録されている。ＩＰデータグラムの到着毎に該データ送信コンピュータが要求するライト保証レベルに応じた制御を行い、通常のコンピュータ装置にはＴＣＰ  ＡＣＫによるライト完了通知のみを行い、ホストメモリのデータ確認や、その結果のＲＤＭＡ  Ｓｅｎｄによる返送は行わない。厳密なライト保証を要求するコンピュータ装置には、ホストメモリに正確にライトされていることを上位レイヤで確認し、その結果をＲＤＭＡ  Ｓｅｎｄメッセージでデータ送信コンピュータ装置に返送する。【選択図】図１
2007304786.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムにおいて、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行う方法において、
データ受信側コンピュータ装置のＩＰ処理回路が、データ送信側コンピュータ装置から受信したＩＰデータグラムのＩＰヘッダ領域から該データ送信側コンピュータ装置のＩＰアドレスを読み出すステップと、
前記ＩＰ処理回路が、前記データ送信側コンピュータ装置のＩＰアドレス毎のライト保証レベルが設定されているＩＰテーブルを参照して、該データ送信側コンピュータ装置のライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、前記データ受信側コンピュータ装置のＲＤＭＡ処理回路に通知するステップと、
前記ＲＤＭＡ処理回路が前記ＲＤＭＡ  Ｗｒｉｔｅによるデータをホストメモリへ格納するステップと、
前記ＲＤＭＡ処理回路が、前記ホストメモリへのデータ格納完了時に、データ引取り要求とともに前記ライト保証レベルも、前記データ受信側コンピュータ装置のマイクロプロセッサのデバイスドライバに通知するステップと、
前記デバイスドライバが、前記ライト保証レベルが第１のレベルの場合は、上位のアプリケーションに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージで前記ホストメモリに書き込まれたデータの正常性をチェックし、該データが正常に前記ホストメモリに書き込まれていることを確認したならば、前記ＲＤＭＡ処理回路に対してＭＳＮ番号とともにもライト完了を通知し、一方、前記ライト保証レベルが第２のレベルの場合は前記上位のアプリケーションに対してデータ引取り要求を通知するのみで前記ホストメモリに書き込まれたデータの正常性チェックやその結果の前記ＲＤＭＡ処理回路への通知は行わないステップと、
前記ＲＤＭＡ処理回路では、ライト保証レベルが第１のレベルの場合は、前記デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、前記データ送信側コンピュータ装置に対して送信するステップと
を有することを特徴とする、コンピュータ装置間のホストメモリコピー方法。
【請求項２】
複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムにおいて、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行う方法において、
前記データ受信側コンピュータ装置のＴＣＰ処理回路が、データ送信側コンピュータ装置から受信したＴＣＰセグメントのＴＣＰヘッダ領域からそのサービス・アプリケーション種別を示すポート番号を読み出すステップと、
前記ＴＣＰ処理回路が、ポート番号毎のライト保証レベルが設定されているポート番号テーブルを参照して、そのサービス・アプリケーションのライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、前記データ受信側コンピュータ装置のＲＤＭＡ処理回路に通知するステップと、
前記ＲＤＭＡ処理回路がＲＤＭＡ  Ｗｒｉｔｅによるデータをホストメモリへ格納するステップと、
前記ＲＤＭＡ処理回路が、ＲＤＭＡ  Ｗｒｉｔｅによるデータの前記ホストメモリへの格納完了時に、データ引取り要求とともに該ライト保証レベル情報も、前記データ受信側コンピュータ装置のマイクロプロセッサのデバイスドライバに通知するステップと、
前記デバイスドライバが、前記ライト保証レベルが第１のレベルの場合は、上位のアプリケーションに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージで前記ホストメモリに書き込まれたデータの正常性をチェックし、該データが正常に前記ホストメモリに書き込まれていることを確認したならば、前記ＲＤＭＡ処理回路に対してＭＳＮ番号とともにライト完了を通知し、一方、前記ライト保証レベルが第２のレベルの場合は前記上位のアプリケーションに対してデータ引取り要求を通知するのみで前記ホストメモリに書き込まれたデータの正常性チェックやその結果の前記ＲＤＭＡ処理回路への通知は行わないステップと、
前記ＲＤＭＡ処理回路が、ライト保証レベルが第１のレベルの場合は、前記デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、前記データ送信側コンピュータ装置に対して送信するステップと
を有することを特徴とする、コンピュータ装置間のホストメモリコピー方法。
【請求項３】
請求項２記載のコンピュータシステムにおけるデータ送信側コンピュータ装置のＲＤＭＡ処理回路が、受信したＴＣＰ  ＡＣＫ中のポート番号情報を読み出して、該ポート番号に対するライト保証レベルを、ＴＣＰで規定されたサービス・アプリケーション毎のポート番号に対するそのライト保証レベルと、送信したＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとを保持するポート番号テーブルを参照して入手し、該ライト保証レベルが第２のレベルの場合には、該ＴＣＰ  ＡＣＫ受信完了をその送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、マイクロプロセッサ搭載のデバイスドライバに通知し、一方、該ライト保証レベルが第１のレベルの場合には、マイクロプロセッサ搭載のデバイスドライバに、該ＴＣＰ  ＡＣＫ受信完了を送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、請求項２に記載のコンピュータ装置間のホストメモリコピー方法。
【請求項４】
前記ＲＤＭＡ処理回路は、請求項２記載のデータ受信側コンピュータ装置からのＲＤＭＡ  Ｓｅｎｄメッセージを受信して、該メッセージ中に格納されている、ＲＤＭＡ  Ｗｒｉｔｅメッセージ番号ＭＳＮを読み出し、該メッセージ番号に対するライト保証レベルを、前記ポート番号テーブルを参照して入手し、前記ライト保証レベルが第１のレベルの場合には、該ＲＤＭＡ  Ｓｅｎｄメッセージを、該当するＭＳＮの送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、前記デバイスドライバに通知し、一方、前記ライト保証レベルが第２のレベルの場合には、前記デバイスドライバに対して、ＲＤＭＡ  Ｓｅｎｄメッセージを、該当する送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、請求項３記載のコンピュータ装置間のホストメモリコピー方法。
【請求項５】
複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムにおいて、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行う方法において、
前記データ受信側コンピュータ装置のＩＰ処理回路が、データ送信側コンピュータ装置から受信したＩＰデータグラムのＩＰヘッダ領域から該送信側コンピュータ装置のＩＰアドレスを読み出すステップと、
前記データ受信側コンピュータ装置のＴＣＰ処理回路が、データ送信側コンピュータ装置から受信したＴＣＰセグメントのＴＣＰヘッダ領域からそのサービス・アプリケーション種別を示すポート番号を読み出すステップと、
前記ＴＣＰ処理回路が、前記ＩＰ処理回路で読み出したＩＰアドレスと、読み出したポート番号を用いて、データ送信側コンピュータ装置別にＴＣＰセグメントのポート番号毎のライト保証レベルが設定されているＩＰ・ポート番号テーブルを参照して、そのサービス・アプリケーションのライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、前記データ受信側コンピュータ装置のＲＤＭＡ処理回路に通知するステップと、
前記ＲＤＭＡ処理回路がＲＤＭＡ  Ｗｒｉｔｅによるデータをホストメモリへ格納するステップと、
前記ＲＤＭＡ処理回路が、ＲＤＭＡ  Ｗｒｉｔｅによるデータの前記ホストメモリへの格納完了時に、データ引取り要求とともに該ライト保証レベル情報も、前記データ受信側コンピュータ装置のマイクロプロセッサのデバイスドライバに通知するステップと、
前記デバイスドライバが、前記ライト保証レベルが第１のレベルの場合は、上位のアプリケーションに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージで前記ホストメモリに書き込まれたデータの正常性をチェックし、該データが正常に前記ホストメモリに書き込まれていることを確認したならば、前記ＲＤＭＡ処理回路に対してＭＳＮ番号とともにライト完了を通知し、一方、前記ライト保証レベルが第２のレベルの場合は前記上位のアプリケーションに対してデータ引取り要求を通知するのみで前記ホストメモリに書き込まれたデータの正常性チェックやその結果の前記ＲＤＭＡ処理回路への通知は行わないステップと、
前記ＲＤＭＡ処理回路が、ライト保証レベルが第１のレベルの場合は、前記デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、前記データ送信側コンピュータ装置に対して送信するステップと
を有することを特徴とする、コンピュータ装置間のホストメモリコピー方法。
【請求項６】
請求項５記載のコンピュータシステムにおけるデータ送信側コンピュータ装置のＲＤＭＡ処理回路が、受信したＴＣＰ  ＡＣＫ中のポート番号情報を読み出して、該ポート番号に対するライト保証レベルを、ＴＣＰで規定されたサービス・アプリケーション毎のポート番号に対するそのライト保証レベルと、送信したＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとを保持するポート番号テーブルを参照して入手し、該ライト保証レベルが第２のレベルの場合には、該ＴＣＰ  ＡＣＫ受信完了をその送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、マイクロプロセッサ搭載のデバイスドライバに通知し、一方、該ライト保証レベルが第１のレベルの場合には、マイクロプロセッサ搭載のデバイスドライバに、該ＴＣＰ  ＡＣＫ受信完了を送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、請求項５に記載のコンピュータ装置間のホストメモリコピー方法。
【請求項７】
前記ＲＤＭＡ処理回路は、請求項５記載のデータ受信側コンピュータ装置からのＲＤＭＡ  Ｓｅｎｄメッセージを受信して、該メッセージ中に格納されている、ＲＤＭＡ  Ｗｒｉｔｅメッセージ番号ＭＳＮを読み出し、該メッセージ番号に対するライト保証レベルを、前記ポート番号テーブルを参照して入手し、前記ライト保証レベルが第１のレベルの場合には、該ＲＤＭＡ  Ｓｅｎｄメッセージを、該当するＭＳＮの送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、前記デバイスドライバに通知し、一方、前記ライト保証レベルが第２のレベルの場合には、前記デバイスドライバに対して、ＲＤＭＡ  Ｓｅｎｄメッセージを、該当する送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、請求項６記載のコンピュータ装置間のホストメモリコピー方法。
【請求項８】
複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムであって、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行うコンピュータシステムにおけるデータ受信側のコンピュータ装置において、
データ送信側コンピュータ装置のＩＰアドレス毎のライト保証レベルを設定しておくＩＰテーブルと、
前記ＲＤＭＡ  Ｗｒｉｔｅによるデータのホストメモリへの格納完了時に、データ引取り要求とともに前記ライト保証レベルも、マイクロプロセッサのデバイスドライバに通知するＲＤＭＡ処理回路と、
前記データ送信側コンピュータ装置から受信したＩＰデータグラムのＩＰヘッダ領域から該データ送信側コンピュータ装置のＩＰアドレスを読み出し、前記ＩＰテーブルを参照して、該データ送信側コンピュータ装置のライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、前記ＲＤＭＡ処理回路に通知するＩＰ処理回路と、
を有し、
前記デバイスドライバは、前記ライト保証レベルが第１のレベルの場合は、上位のアプリケーションに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージで前記ホストメモリに書き込まれたデータの正常性をチェックし、該データが正常に前記ホストメモリに書き込まれていることを確認したならば、前記ＲＤＭＡ処理回路に対してＭＳＮ番号とともにもライト完了を通知し、一方、前記ライト保証レベルが第２のレベルの場合は前記上位のアプリケーションに対してデータ引取り要求を通知するのみで前記ホストメモリに書き込まれたデータの正常性チェックやその結果の前記ＲＤＭＡ処理回路への通知は行わず、
前記ＲＤＭＡ処理回路では、ライト保証レベルが第１のレベルの場合は、前記デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、前記データ送信側コンピュータ装置に対して送信する
ことを特徴とするコンピュータ装置。
【請求項９】
複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムであって、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行うコンピュータシステムにおけるデータ受信側のコンピュータ装置において、
サービス・アプリケーション種別を示すポート番号毎のライト保証レベルを設定しておくポート番号テーブルと、
ＲＤＭＡ  Ｗｒｉｔｅによるデータのホストメモリへの格納完了時に、データ引取り要求とともに該ライト保証レベル情報も、マイクロプロセッサのデバイスドライバに通知するＲＤＭＡ処理回路と
データ送信側コンピュータ装置から受信したＴＣＰセグメントのＴＣＰヘッダ領域からそのポート番号を読み出し、前記ポート番号テーブルを参照して、そのサービス・アプリケーションのライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、前記ＲＤＭＡ処理回路に通知するＴＣＰ処理回路と、
を有し、
前記デバイスドライバは、前記ライト保証レベルが第１のレベルの場合は、上位のアプリケーションに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージで前記ホストメモリに書き込まれたデータの正常性をチェックし、該データが正常に前記ホストメモリに書き込まれていることを確認したならば、前記ＲＤＭＡ処理回路に対してＭＳＮ番号とともにライト完了を通知し、一方、前記ライト保証レベルが第２のレベルの場合は前記上位のアプリケーションに対してデータ引取り要求を通知するのみで前記ホストメモリに書き込まれたデータの正常性チェックやその結果の前記ＲＤＭＡ処理回路への通知は行わず、
前記ＲＤＭＡ処理回路では、ライト保証レベルが第１のレベルの場合は、前記デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、前記データ送信側コンピュータ装置に対して送信する
ことを特徴とするコンピュータ装置。
【請求項１０】
請求項９記載のコンピュータシステムにおけるデータ送信側コンピュータ装置において、
ＴＣＰで規定されたサービス・アプリケーション毎のポート番号に対するそのライト保証レベルと、送信したＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとを保持するポート番号テーブルと、
該ポート番号テーブルに対してライト保証レベルの設定、およびメッセージ番号ＭＳＮの書き込み、読み出し機能を有するＲＤＭＡ処理回路と
を有し、
前記ＲＤＭＡ処理回路は、受信したＴＣＰ  ＡＣＫ中のポート番号情報を読み出して、該ポート番号に対するライト保証レベルを、前記ポート番号テーブルを参照して入手し、該ライト保証レベルが第２のレベルの場合には、該ＴＣＰ  ＡＣＫ受信完了をその送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、マイクロプロセッサ搭載のデバイスドライバに通知し、一方、該ライト保証レベルが第１のレベルの場合には、前記マイクロプロセッサ搭載のデバイスドライバに、該ＴＣＰ  ＡＣＫ受信完了を送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、
ことを特徴とするコンピュータ装置。
【請求項１１】
前記ＲＤＭＡ処理回路は、請求項９記載のデータ受信側コンピュータ装置からのＲＤＭＡ  Ｓｅｎｄメッセージを受信して、該メッセージ中に格納されている、ＲＤＭＡ  Ｗｒｉｔｅメッセージ番号ＭＳＮを読み出し、該メッセージ番号に対するライト保証レベルを、前記ポート番号テーブルを参照して入手し、前記ライト保証レベルが第１のレベルの場合には、該ＲＤＭＡ  Ｓｅｎｄメッセージを、該当するＭＳＮの送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、前記デバイスドライバに通知し、一方、前記ライト保証レベルが第２のレベルの場合には、前記デバイスドライバに対して、ＲＤＭＡ  Ｓｅｎｄメッセージを、該当する送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、請求項１０記載のコンピュータ装置。
【請求項１２】
複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムであって、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行うコンピュータシステムにおけるデータ受信側のコンピュータ装置において、
データ送信側コンピュータ装置別に、サービス・アプリケーション種別を示すポート番号毎のライト保証レベルを設定しておくＩＰ・ポート番号テーブルと、
ＲＤＭＡ  Ｗｒｉｔｅによるデータのホストメモリへの格納完了時に、データ引取り要求とともに該ライト保証レベル情報も、マイクロプロセッサのデバイスドライバに通知するＲＤＭＡ処理回路と、
データ送信側コンピュータ装置から受信したＩＰデータグラムのＩＰヘッダ領域から該データ送信側コンピュータ装置のＩＰアドレスを読み出し、ＴＣＰ処理回路に通知するＩＰ処理回路と、
データ送信側コンピュータ装置から受信したＴＣＰセグメントのＴＣＰヘッダ領域からそのポート番号を読み出し、前記ＩＰ処理回路から通知される送信ＩＰアドレスと該ポート番号とから、前記ＩＰ・ポート番号テーブルを参照して、そのサービス・アプリケーションのライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、前記ＲＤＭＡ処理回路に通知するＴＣＰ処理回路と、
を有し、
前記デバイスドライバは、前記ライト保証レベルが第１のレベルの場合は、上位のアプリケーションに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージで前記ホストメモリに書き込まれたデータの正常性をチェックし、該データが正常に前記ホストメモリに書き込まれていることを確認したならば、前記ＲＤＭＡ処理回路に対してＭＳＮ番号とともにライト完了を通知し、一方、前記ライト保証レベルが第２のレベルの場合は前記上位のアプリケーションに対してデータ引取り要求を通知するのみで前記ホストメモリに書き込まれたデータの正常性チェックやその結果の前記ＲＤＭＡ処理回路への通知は行わず、
前記ＲＤＭＡ処理回路では、ライト保証レベルが第１のレベルの場合は、前記デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、前記データ送信側コンピュータ装置に対して送信する
ことを特徴とするコンピュータ装置。
【請求項１３】
請求項１２記載のコンピュータシステムにおけるデータ送信側コンピュータ装置において、
ＴＣＰで規定されたサービス・アプリケーション毎のポート番号に対するそのライト保証レベルと、送信したＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとを保持するポート番号テーブルと、
該ポート番号テーブルに対してライト保証レベルの設定、およびメッセージ番号ＭＳＮの書き込み、読み出し機能を有するＲＤＭＡ処理回路と
を有し、
前記ＲＤＭＡ処理回路は、受信したＴＣＰ  ＡＣＫ中のポート番号情報を読み出して、該ポート番号に対するライト保証レベルを、前記ポート番号テーブルを参照して入手し、該ライト保証レベルが第２のレベルの場合には、該ＴＣＰ  ＡＣＫ受信完了をその送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、マイクロプロセッサ搭載のデバイスドライバに通知し、一方、該ライト保証レベルが第１のレベルの場合には、前記マイクロプロセッサ搭載のデバイスドライバに、該ＴＣＰ  ＡＣＫ受信完了を送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、
ことを特徴とするコンピュータ装置。
【請求項１４】
前記ＲＤＭＡ処理回路は、請求項１２記載のデータ受信側コンピュータ装置からのＲＤＭＡ  Ｓｅｎｄメッセージを受信して、該メッセージ中に格納されている、ＲＤＭＡ  Ｗｒｉｔｅメッセージ番号ＭＳＮを読み出し、該メッセージ番号に対するライト保証レベルを、前記ポート番号テーブルを参照して入手し、前記ライト保証レベルが第１のレベルの場合には、該ＲＤＭＡ  Ｓｅｎｄメッセージを、該当するＭＳＮの送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として、前記デバイスドライバに通知し、一方、前記ライト保証レベルが第２のレベルの場合には、前記デバイスドライバに対して、ＲＤＭＡ  Ｓｅｎｄメッセージを、該当する送信ＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知として通知しない、請求項１３記載のコンピュータ装置。
【請求項１５】
コンピュータを、請求項８から請求項１４に記載のコンピュータ装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムにおいて、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ（Remote Direct Memory Access）  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行う方法に関する。
【背景技術】
【０００２】
近年、グリッドコンピューティングやＷＥＢ（World-Wide Web）サービスの普及とともに、コンピュータ装置間通信の頻度や重要度が増加している。また、イーサネット（登録商標）をはじめとするコンピュータ装置間インターコネクトの伝送帯域も拡大しつつあり、コンピュータ装置間の通信帯域、トラヒック量も増加している。従来はコンピュータ装置の通信プロトコル処理はマイクロプロセッサで行っていた。しかしながら、通信頻度、通信帯域、トラヒック量の増加とともに、通信処理のオーバヘッドによってユーザアプリケーション処理に十分なマイクロプロセッサ資源を割くことができない状況が発生する。
【０００３】
その対策として、汎用通信プロトコルの一つであるＴＣＰ（Transmission Control Protocol）処理やＩＰ（Internet Protocol）処理を、マイクロプロセッサ外部の専用エンジンで行い、マイクロプロセッサ負荷を低減させるＴＯＥ（TCP offload Engine）技術がある。さらに、２台のコンピュータ装置間で、双方のマイクロプロセッサを介さず、それぞれのコンピュータに搭載した専用エンジンでホストメモリ同士の書き込みや読み出し処理を行う、ＲＤＭＡ（Remote Direct Memory Access）技術がある。特に、ＯＳＩ（Open Systems Interconnection）参照モデルのトランスポート層にＴＣＰを用いるＲＤＭＡ  ｏｖｅｒ  ＴＣＰ、もしくはトランスポート層にＳＣＴＰ（Stream Control Transmission Protocol）を用いるＲＤＭＡ  ｏｖｅｒ  ＳＣＴＰを、ｉＷＡＲＰと呼ぶ（２００３年４月、ＲＤＭＡコンソーシアム “An RDMA Protocol Specification (Version 1.0)”、以下、本願ではｉＷＡＲＰ規定と称す）。本願では特にＲＤＭＡ  ｏｖｅｒ  ＴＣＰを扱うものとする。
【０００４】
ｉＷＡＲＰでは、様々なオペレーションタイプが定義されている。オペレーションタイプとは、２台のコンピュータ装置間で行う動作である。例えば、２台のコンピュータ装置Ａとコンピュータ装置Ｂがあり、コンピュータ装置Ａがコンピュータ装置Ｂのホストメモリの指定アドレス内容を、マイクロプロセッサを介さずに読み出し、コンピュータ装置Ａのホストメモリにコピーするオペレーションに、ＲＤＭＡ  Ｒｅａｄがある。また、コンピュータ装置Ａとコンピュータ装置ＢのそれぞれのＲＤＭＡレイヤに設けたキュー間で、双方のマイクロプロセッサを介さずにデータ転送を行うオペレーションに、ＲＤＭＡ  ＳｅｎｄまたはＲＤＭＡ  Ｒｅｃｅｉｖｅがある。
【０００５】
また、コンピュータ装置Ａからコンピュータ装置Ｂのホストメモリの指定したアドレスに、コンピュータ装置Ａのホストメモリの内容を、マイクロプロセッサを介さずコピーする、ＲＤＭＡ  Ｗｒｉｔｅがある。
【０００６】
図５は２台のコンピュータ装置間でｉＷＡＲＰ処理を実施する、従来のコンピュータシステムの一例である。コンピュータ装置５１と５２は通信回線５３に接続され、それぞれマイクロプロセッサ５１−１、５２−１と、チップセット回路５１−２、５２−２と、ホストメモリ５１−３、５２−３と、ＲＤＭＡ処理回路５１−４、５２−４と、ＴＣＰ処理回路５１−５、５２−５と、ＩＰ処理回路５１−６、５２−６と、イーサネット処理回路５１−７、５２−７を有している。チップセット回路５１−２、５２−２は、マイクロプロセッサ５１−１、５２−１とホストメモリ５１−３、５２−３、およびＲＤＭＡ処理回路５１−４、５２−４などの各デバイスを接続する。マイクロプロセッサ５１−１、５２−１は、それぞれアプリケーションプログラム５１−８、５２−８と、ＭＰＩ（Message Passing Interface）５１−９、５２−９と、デバイスドライバ５１−１０、５２−１０を含んでいる。アプリケーションプログラム５１−８と５２−８は任意のアプリケーションプログラムであるが、他のコンピュータ装置との通信処理が必要なものとする。ＭＰＩ５１−９と５２−９は、並列計算を行うためのメッセージ授受用ライブラリであり、並列計算以外の用途であればＭＰＩのかわりにソケット通信ライブラリとなる。デバイスドライバ５１−１０と５２−１０は、それぞれＲＤＭＡ処理回路５１−４と５２−４とマイクロプロセッサ５１−１、５２−１の通信や制御、ＲＤＭＡ処理の一部分を行うプログラムである。
【０００７】
上述のコンピュータ装置５１と５２の間で、ホストメモリ５１−３の指定アドレスの内容を、ＲＤＭＡ  Ｗｒｉｔｅによりホストメモリ５２−３の指定アドレスにコピーする場合を考える。アプリケーションプログラム５１−８から、ホストメモリ５１−３の任意領域に格納されたデータをコンピュータ装置５２に対してライトする処理要求が発生すると、ＭＰＩ５１−９からライト要求メッセージ送信を行い、デバイスドライバ５１−１０およびチップセット回路５１−２経由でＲＤＭＡ処理回路５１−４にＲＤＭＡ  Ｗｒｉｔｅ要求通知が転送される（ステップ３０１）。ＲＤＭＡ  Ｗｒｉｔｅ要求通知には、ホストメモリ５１−３の何れの領域をコピーするかを示すアドレス情報も含まれている。
【０００８】
すると、ＲＤＭＡ処理回路５１−４は、チップセット回路５１−２経由でホストメモリ５１−３のアドレス情報で指定された領域のデータを読み出し（ステップ３０２）、コンピュータ装置５２のＲＤＭＡ処理回路５２−４に転送する（ステップ３０３）。そのメッセージ（パケットに相当）フォーマットは、ｉＷＡＲＰ規定によりＲＤＭＡ  Ｗｒｉｔｅ、ＲＤＭＡ  Ｓｅｎｄ、ＲＤＭＡ  Ｒｅａｄなどのオペレーションタイプ毎に定められ、ＲＤＭＡ処理回路５２−４はオペレーションタイプを容易に認識可能である。図１２はＲＤＭＡ  Ｗｒｉｔｅメッセージのフォーマットであり、ｏｐｃｏｄｅ領域＝００００からＲＤＭＡ  Ｗｒｉｔｅであることを識別する。また、ＳＴＡＧ領域やＴａｇｇｅｄ  Ｏｆｆｓｅｔ領域はデータ受信側コンピュータ装置のホストメモリのライトアドレスを指定し、また、その後ろにライトデータが格納されている。また、Ｌｅｎｇｔｈ領域は該ライトデータ長を示す。
【０００９】
メッセージがＲＤＭＡ  Ｗｒｉｔｅならば、ＲＤＭＡ処理回路５２−４は該メッセージ中のデータをチップセット回路５２−２経由でホストメモリ５２−３に書き込む（ステップ３０４）。なお、ホストメモリ５２−３へのライトアドレス情報は該ＲＤＭＡ  Ｗｒｉｔｅメッセージに格納されており、これは予め互いのＭＰＩ間で情報交換を行い、ＲＤＭＡ処理回路５１−４はＭＰＩ５１−９から通知されている。該ＭＰＩのアドレス情報交換方法はＭＰＩ毎に決まるものであり、本発明とは直接、関係しないためここではその説明は省略する。このように、ＲＤＭＡ処理回路５１−４がデバイスドライバ５１−１０からＲＤＭＡ  Ｗｒｉｔｅ要求を受信した以降、マイクロプロセッサ５１−１、５２−１のどちらも使用せずホストメモリ５１−３の内容をホストメモリ５２−３にコピーすることが可能である。コピー終了後、ＲＤＭＡ処理回路５２−４はチップセット回路５２−２、デバイスドライバ５２−１０およびＭＰＩ５２−９経由で、上位のアプリケーションプログラム５２−８にデータ引取り要求を発出し（ステップ３０５）、アプリケーションプログラム５２−８はデータコピーされたことを認識し、該データを読み出して利用することが可能になる。
【００１０】
ＲＤＭＡ処理回路５１−４〜５２−４間には、ＴＣＰ処理回路５１−５、５２−５と、ＩＰ処理回路５１−６、５２−６と、イーサネット処理回路５１−７、５２−７と、通信回線５３が配備されている。ＴＣＰ処理回路５１−５と５２−５はＴＣＰレイヤの処理を行い、データ送信側ではＲＤＭＡメッセージのＴＣＰセグメントへの整形処理、データ受信側ではＴＣＰセグメントからのＲＤＭＡメッセージの取り出し、および送受信間での再送制御やレート制御を行う。ＩＰ処理回路５１−６と５２−６はＩＰレイヤ処理を行い、データ送信側ではＴＣＰセグメントをＩＰデータグラムに整形し、ＩＰアドレスを付加し、データ受信側ではＩＰデータグラムからのＴＣＰセグメントの取り出しを行う。イーサネット処理回路５１−７と５２−７はイーサネットＭＡＣレイヤ・イーサネットＰＨＹレイヤの処理を行い、データ送信側はＩＰデータグラムをイーサネットＭＡＣフレームに整形後、通信回線５３に送出し、データ受信側では通信回線５３からイーサネットＭＡＣフレームを受信し、該イーサネットＭＡＣフレームよりＩＰデータグラムを取り出す。
【００１１】
次に、ＲＤＭＡレイヤでは、ＲＤＭＡ  Ｗｒｉｔｅ、ＲＤＭＡ  Ｒｅａｄ、ＲＤＭＡ  Ｒｅｃｅｉｖｅなどのオペレーション完了を上位レイヤに通知することが非特許文献１および非特許文献２に規定されている。通知にはＣｏｍｐｌｅｔｉｏｎ  Ｑｕｅｕｅ（以下ＣＱと称す）と言うＲＤＭＡレイヤに定義したキューを用い、ＲＤＭＡレイヤで各オペレーションが完了したならばＣＱにオペレーション毎に完了通知を書き込み、これをデバイスドライバ５１−１０が読み出し、ＭＰＩ経由でアプリケーションプログラムに通知する。ＣＱへ各オペレーション完了を書き込むためのトリガは、ｉＷＡＲＰ規定では明確な規定せず実装に依存する。
【００１２】
ＲＤＭＡ  Ｗｒｉｔｅでの、データ送信側コンピュータ装置のＣＱへの、ライト完了通知トリガの一例を図５の下半分に示す。これは、ＲＤＭＡレイヤより下のトランスポートレイヤ〜物理レイヤの情報を用いる方法であり、破線で示すようにＴＣＰ処理回路５１−５で受信するＴＣＰ  ＡＣＫ（Acknowledgement）をトリガとする。ＴＣＰの動作規定では、データ送信側からデータ受信側へＴＣＰセグメントを正しく伝送できた際には、データ受信側からＴＣＰ  ＡＣＫをデータ送信側に返送し、受信できなかった場合にはＴＣＰ  ＡＣＫを返送しない。また、データ送信側では該ＴＣＰ  ＡＣＫが規定時間以内に返送されなかった場合には、該ＴＣＰセグメントを再送する機能を有する。データ受信側のＴＣＰ処理回路で正しく受信したと判定する基準は、ＴＣＰの規格にて規定されるものであり、本発明ではその判定方法は直接関係せずその詳細は省略するが、受信データの誤り検出用チェックサムのチェックや、プロトコルの正常性のチェックによる。図１１はＴＣＰセグメントのフォーマットを示す図である。ＴＣＰヘッダ領域に１６ビットのチェックサム領域がある。これは、該ＴＣＰセグメント全体に対するチェックサムであり、これにより該ＴＣＰセグメントのビット誤りを検出し、ビット誤りが無ければ正しく受信したと判定する。図５でも、ＴＣＰ処理回路５２−５は、正しくＴＣＰセグメントを受信した場合には該ＴＣＰセグメントに対するＴＣＰ  ＡＣＫをコンピュータ装置５１に返送する（ステップ３０６）。一方、パケットロスやビット誤りにより正しく受信しない場合は、ＴＣＰ  ＡＣＫは返送しない。これにしたがって、コンピュータ装置５１側のＴＣＰ処理回路５１−５は、ＲＤＭＡ処理回路５１−４にライト完了通知トリガとなるＴＣＰ  ＡＣＫ受信完了信号を通知する（ステップ３０７）。そして、コンピュータ５２のＴＣＰレイヤで正しく受信できたＴＣＰセグメントはホストメモリ５２−３にも正しくライトできたとみなし、該ＴＣＰ  ＡＣＫ受信完了信号をトリガとしてＲＤＭＡ処理回路５１−４はライト完了通知を上位レイヤに通知する（ＣＱにライト完了通知を書き込む）（ステップ３０８）。なお、ＴＣＰ処理回路５１−５は、ＴＣＰ  ＡＣＫが何れのＴＣＰセグメントのＡＣＫかをＴＣＰセグメント内のシーケンス番号から認識しており、ＲＤＭＡ  ＷｒｉｔｅメッセージとＴＣＰセグメントの関連付けを管理しておけば、何れのＲＤＭＡ  Ｗｒｉｔｅメッセージがライト完了したのか、容易に判定可能である。通常のＴＯＥでもＴＣＰ  ＡＣＫによる到達確認までしか行っておらず、本方式は従来のＴＯＥ技術と同程度の確実性があれば十分というユーザに適する。
【００１３】
図６にコンピュータシステムの他の例を示す。これは、データ受信側コンピュータ装置でホストメモリにデータが正しく書き込まれたことを、デバイスドライバでチェックし、その結果を用いるものである。
【００１４】
コンピュータ装置６１と６２は通信回線６３に接続され、それぞれマイクロプロセッサ６１−１、６２−１と、チップセット回路６１−２、６２−２と、ホストメモリ６１−３、６２−３と、ＲＤＭＡ処理回路６１−４、６２−４と、ＴＣＰ処理回路６１−５、６２−５と、ＩＰ処理回路６１−６、６２−６と、イーサネット処理回路６１−７、６２−７を有している。マイクロプロセッサ６１−１と６２−１にはそれぞれ、アプリケーションプログラム６１−８、６２−８と、ＭＰＩ６１−９、６２−９と、デバイスドライバ６１−１０、６２−１０が搭載されている。
【００１５】
アプリケーションプログラム６１−８からライトする処理要求が発生し、ＲＤＭＡ処理回路６２−４がライトデータをホストメモリ６２−３に書き込むまでの動作（ステップ３０１から３０４）は図５のシステムと同じである。また、ＴＣＰ  ＡＣＫの返送とＴＣＰ  ＡＣＫ受信完了通知の転送（ステップ３０６および３０７）も図５のシステムと同様である。さらに、デバイスドライバ６２−１０にデータ引き取り要求を通知する際に、ｉＷＡＲＰ規定で規定されているＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮ（Message Sequence Number）もあわせてデバイスドライバ６２−１０に通知する（ステップ３０５）。ＭＳＮはＲＤＭＡ処理回路６１−４でメッセージ順にシリアルに付加する番号である。デバイスドライバ６２−１０は、データ引取り要求を受けて、ホストメモリ６２−３内の該当するメッセージのＣＲＣチェックなどのデータ確認を行い、該データ確認結果をチップセット回路６２−２経由でＲＤＭＡ処理回路６２−４に通知する（ステップ３１０）。その際、デバイスドライバ６２−１０はデータ確認したメッセージのＭＳＮもあわせてＲＤＭＡ処理回路６２−４に通知する。ＲＤＭＡ処理回路６２−４はＲＤＭＡ  Ｓｅｎｄメッセージを用いて、該データ確認結果（ライト完了通知）とＭＳＮをＲＤＭＡ処理回路６１−４に通知する（ステップ３１１）。ＲＤＭＡ処理回路６１−４は受信ＭＳＮ番号より、何れのＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知かを識別することが可能である。ＲＤＭＡ処理回路６１−４は、ＴＣＰ  ＡＣＫ受信完了信号のほかに更に、該ＲＤＭＡ  Ｓｅｎｄによるライト完了を受信したならば、正しくライトが完了したものと判断し、ＣＱ経由でライト完了を上位レイヤに通知する（ステップ３１２）。
【００１６】
本例は、デバイスドライバ６２−１０におけるデータ確認時間やＲＤＭＡ  Ｓｅｎｄ時間が必要なため、アプリケーションプログラム６１−８がライト完了を得るまで図５のシステムよりも時間がかかるほか、デバイスドライバ６２−１０でのデータ確認により、図５のシステムよりもマイクロプロセッサ６２−１の負荷が増大する。しかしながら、コンピュータ装置内部で雑音等によってデータ誤りが発生し、ホストメモリに誤ったデータが書き込まれる可能性は、零ではない。したがって、ＴＣＰ処理回路からホストメモリまでの区間でデータが誤り、ホストメモリにも誤ったデータが書き込まれる可能性も零ではない。そのため、金融系処理やデータセンタなどの確実性を必要とする用途では、確実にホストメモリに正しくデータが書き込まれたことを保証したいという要求も存在する。その点、本例は、ホストメモリに正しく書かれたことは確認せず、ＴＣＰ  ＡＣＫによるＴＣＰ処理回路までの送達確認によってホストメモリに正しく書き込まれたとみなす方式（以下では、みなし方式と称す）ではなく、実際にホストメモ６２−２まで正しく書き込まれたことを確認する方式であり、金融系メッセージのように、より確実性を求める場合に適する。
【非特許文献１】Jeff Hilland、Paul Culley、Jim Pinkerton、Renato Recio  “RDMA Protocol Verbs Specification (Version 1.0)”2003年4月25日発行
【非特許文献２】Renato.Recio, Paul.Culley, D.Garcia, Jeff Hilland、RDMA Consortium  “An RDMA Protocol Specification (Version 1.0)”2002年10月21日発行
【発明の開示】
【発明が解決しようとする課題】
【００１７】
第１の問題点は、ＴＣＰ  ＡＣＫによるライト完了で十分なユーザと、ホストメモリのデータ確認をした上でのライト完了を要求するユーザのように、異なる種別のライト完了を要求するユーザが混在するコンピュータシステムでｉＷＡＲＰのＲＤＭＡ  Ｗｒｉｔｅでホストメモリ間通信を行う場合に、伝送路上に不要なＲＤＭＡ  Ｓｅｎｄメッセージが転送される可能性があることである。
【００１８】
その理由は、図５および図６のコンピュータ装置では、対向する装置のＲＤＭＡ  Ｗｒｉｔｅのライト保証レベルがＴＣＰ  ＡＣＫで十分であるか、もしくはホストメモリチェックまで必要であるかを区別しておらず、同一システムで双方のライト保証レベルに対応するためには、より安全側のホストメモリチェックまで行う図６の方式をサポートする必要があるためである。その結果、ＴＣＰ  ＡＣＫによるライト完了通知しかチェックしていないコンピュータ装置に対しても、ＲＤＭＡ  Ｓｅｎｄによるライト完了通知が返送されることになる。その結果、使用されることのないＲＤＭＡ  Ｓｅｎｄによるライト完了通知が通信回線を転送されることになり、回線帯域が無駄になる。
【００１９】
図７はその一例を説明する図であり、３台のコンピュータ装置７１、７２、７３が通信回線７３を介して接続されている。コンピュータ装置７１、７２、７３はそれぞれマイクロプロセッサ７１−１、７２−１、７３−１と、チップセット回路７１−２、７２−２、７３−２と、ホストメモリ７１−３、７２−３、７３−３と、ＲＤＭＡ処理回路７１−４、７２−４、７３−４と、ＴＣＰ処理回路７１−５、７２−５、７３−５と、ＩＰ処理回路７１−６、７２−６、７３−６と、イーサネット処理回路７１−７、７２−７、７３−７を有している。マイクロプロセッサ７１−１、７２−１、７３−１にはそれぞれ、アプリケーションプログラム７１−８、７２−８、７３−８と、ＭＰＩ７１−９、７２−９、７３−９と、デバイスドライバ７１−１０、７２−１０、７３−１０が搭載されている。
【００２０】
３台のコンピュータ装置７１、７２、７３のうち、コンピュータ装置７１は図５のコンピュータ装置５１のようにＲＤＭＡ  Ｗｒｉｔｅ完了としてＴＣＰ  ＡＣＫのみしかチェックしないもの、コンピュータ装置７３は図６のコンピュータ装置６１のように、ＲＤＭＡ  Ｓｅｎｄによるホストメモリのデータ確認結果をＲＤＭＡ  Ｗｒｉｔｅ完了として用いるものとする。コンピュータ装置７１と７３から、コンピュータ装置７２に対してＲＤＭＡ  Ｗｒｉｔｅでデータコピーをする場合は、コンピュータ装置７２は対向装置が、どちらのＲＤＭＡライト保証レベルを要求しているか区別していないため、コンピュータ装置７１と７３の双方に対し、ＴＣＰ  ＡＣＫのほかにデバイスドライバ７２−１０によるホストメモリ７２−３のデータ確認結果をＲＤＭＡ  Ｓｅｎｄで返送する。その結果、コンピュータ装置７３ではＲＤＭＡ  Ｓｅｎｄによるライト完了通知は使用するものの、コンピュータ装置７１では使用しないため、コンピュータ装置７１へのＲＤＭＡ  Ｓｅｎｄは無駄なメッセージということになる。
【００２１】
第２の問題点は、同じくＴＣＰ  ＡＣＫによるライト完了で十分なユーザと、ホストメモリのデータ確認をした上でのライト完了を要求するユーザのように、異なる種別のライト完了を要求するユーザが混在するコンピュータシステムでｉＷＡＲＰのＲＤＭＡ  Ｗｒｉｔｅでホストメモリ間通信を行う場合に、データ受信側コンピュータ装置のマイクロプロセッサの処理負荷が下がらない場合があることである。
【００２２】
その理由は、第１の問題点と同様に、データ受信側コンピュータ装置では、対向する装置のＲＤＭＡ  Ｗｒｉｔｅのライト保証レベルがＴＣＰ  ＡＣＫで十分であるか、もしくはホストメモリチェックまで必要であるかを区別しておらず、同一システムで双方のライト保証レベルに対応するためには、デバイスドライバ７２−１０で、ホストメモリの全メッセージに対するＣＲＣチェックなどのデータ確認が必要になるためである。その結果、ＴＣＰ  ＡＣＫによるライト完了通知しかチェックしていないコンピュータ装置からのメッセージに対しても、ホストメモリのデータ確認を行うことになる。一例として、図７では、対向するコンピュータに関わらず、コンピュータ装置７２のデバイスドライバ７２−１０でホストメモリ７２−３のデータ確認を実施することになり、マイクロプロセッサ処理が無駄になる。
【００２３】
本発明の目的は、ｉＷＡＲＰを用いるコンピュータシステムにおいて、ＲＤＭＡ  Ｗｒｉｔｅのライト保証レベルがＴＣＰ  ＡＣＫで十分なもの、およびホストメモリチェックまで要求するものが混在する場合に、通信回線への無駄なトラヒックの流入の抑制、ならびにデータ受信側コンピュータ装置のマイクロプロセッサの負荷抑制を行うことができる、コンピュータ装置間のホストメモリコピー方法、コンピュータ装置、およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００２４】
上記の目的を達成するために、本発明の第１の態様によれば、複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムであって、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行うコンピュータシステムにおけるデータ受信側のコンピュータ装置は、
データ送信側コンピュータ装置のＩＰアドレス毎のライト保証レベルを設定しておくＩＰテーブルと、
ＲＤＭＡ  Ｗｒｉｔｅによるデータのホストメモリへの格納完了時に、データ引取り要求とともにライト保証レベルも、マイクロプロセッサのデバイスドライバに通知するＲＤＭＡ処理回路と
データ送信側コンピュータ装置から受信したＩＰデータグラムのＩＰヘッダ領域から該データ送信側コンピュータ装置のＩＰアドレスを読み出し、ＩＰテーブルを参照して、該データ送信側コンピュータ装置のライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、ＲＤＭＡ処理回路に通知するＩＰ処理回路と、
を有し、
デバイスドライバは、ライト保証レベルが第１のレベルの場合は、上位のアプリケーションプログラムに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージでホストメモリに書き込まれたデータの正常性をチェックし、該データが正常にホストメモリに書き込まれていることを確認したならば、ＲＤＭＡ処理回路に対してＭＳＮ番号とともにもライト完了を通知し、一方、ライト保証レベルが第２のレベルの場合は上位のアプリケーションプログラムに対してデータ引取り要求を通知するのみでホストメモリに書き込まれたデータの正常性チェックやその結果のＲＤＭＡ処理回路への通知は行わず、
ＲＤＭＡ処理回路では、デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、データ送信側コンピュータ装置に対して送信する。
【００２５】
ｉＷＡＲＰを用いたコンピュータシステムのデータ受信側コンピュータ装置において、予めデータ送信側コンピュータ装置毎にライト保証レベル、すなわちＲＤＭＡ  Ｗｒｉｔｅに対して、ホストメモリのデータの正常性を確認した結果をＲＤＭＡ  Ｓｅｎｄによって受信することでライト完了とするのか（第１のレベル）、あるいはＴＣＰ  ＡＣＫでライト完了とみなすのか（第２のレベル）をＩＰテーブルに設定しておく。そして、ＩＰ処理回路で受信ＩＰデータグラムのヘッダ領域からデータ送信側コンピュータ装置のＩＰアドレスを識別し、該ＩＰアドレスのライト保証レベルをＩＰテーブルから読み出すことで、該データ送信コンピュータ装置が要求するライト保証レベル情報を得る。受信ＩＰデータグラムは、ＩＰ処理回路とＴＣＰ処理回路を経てＲＤＭＡ処理回路ではＲＤＭＡメッセージに復元されるが、それにあわせて該ライト保証レベル情報も並走させる。そして、ＲＤＭＡ処理回路で該ＲＤＭＡメッセージをＲＤＭＡ  Ｗｒｉｔｅと判定した場合は、デバイスドライバに対してデータ引取り要求通知とあわせて該ライト保証レベル信号、および、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮを通知する。
【００２６】
デバイスドライバは、ライト保証レベル信号が第１のレベルならばホストメモリに格納されているライトデータのチェック（ＣＲＣチェックなど）を行い、その結果として正常性が確認できたならばＭＰＩにデータ転送を行うとともに、ＲＤＭＡ処理回路に対してライト完了通知を発出する。その際、あわせてデバイスドライバから該ライトデータのメッセージ番号ＭＳＮを通知する。ＲＤＭＡ処理回路は、デバイスドライバからライト完了通知を受け取ったならば、データ送信側コンピュータ装置に対してＲＤＭＡ  Ｓｅｎｄを用いてライト完了通知を発出する。ＲＤＭＡ  Ｓｅｎｄメッセージにはあわせてライト完了したデータのＭＳＮも格納する。
【００２７】
一方、デバイスドライバでＲＤＭＡ処理回路からデータ引取り要求信号を受け取った際に、あわせてライト保証レベル信号が第２のレベルならば、デバイスドライバはホストメモリからデータを読み出してＭＰＩに転送するのみで、ＣＲＣチェックなどのデータ確認や、ＲＤＭＡ処理回路へのライト完了通知の発出は行わない。
【００２８】
本発明の第２の態様によれば、複数のコンピュータ装置が通信回線を介して接続されたコンピュータシステムであって、ｉＷＡＲＰ（ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ）をホストメモリ間通信に用いて、ＲＤＭＡ  Ｗｒｉｔｅメッセージにより２台のコンピュータ装置間のホストメモリのコピーを行うコンピュータシステムにおけるデータ受信側のコンピュータ装置は、
サービス・アプリケーション種別を示すポート番号毎のライト保証レベルを設定しておくポート番号テーブルと、
ＲＤＭＡ  Ｗｒｉｔｅによるデータのホストメモリへの格納完了時に、データ引取り要求とともに該ライト保証レベル情報も、マイクロプロセッサのデバイスドライバに通知するＲＤＭＡ処理回路と
データ送信側コンピュータ装置から受信したＴＣＰセグメントのＴＣＰヘッダ領域からそのポート番号を読み出し、ポート番号テーブルを参照して、そのサービス・アプリケーションのライト保証レベルを得て、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮとともに、ＲＤＭＡ処理回路に通知するＩＰ処理回路と、
を有し、
デバイスドライバは、ライト保証レベルが第１のレベルの場合は、上位のアプリケーションプログラムに対してデータ引き取り要求を発出するとともに、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージでホストメモリに書き込まれたデータの正常性をチェックし、該データが正常にホストメモリに書き込まれていることを確認したならば、ＲＤＭＡ処理回路に対してＭＳＮ番号とともにライト完了を通知し、一方、ライト保証レベルが第２のレベルの場合は上位のアプリケーションプログラムに対してデータ引取り要求を通知するのみでホストメモリに書き込まれたデータの正常性チェックやその結果のＲＤＭＡ処理回路への通知は行わず、
ＲＤＭＡ処理回路では、デバイスドライバからの、データ正常性を示すライト完了通知を受け取ったならば、該ＭＳＮのＲＤＭＡ  Ｗｒｉｔｅメッセージが正しくライトできたことを示すＲＤＭＡ  Ｓｅｎｄメッセージを生成し、データ送信側コンピュータ装置に対して送信する。
【００２９】
このように、本発明は、データ送信側コンピュータ装置毎に、ＲＤＭＡ  Ｗｒｉｔｅ時のデータ保証レベルにしたがって、ＲＤＭＡ  Ｓｅｎｄによるライト確認通知やデバイスドライバでのホストメモリのデータ正常性確認の実施／未実施を選択する。
【発明の効果】
【００３０】
以上説明したように、本発明によれば、コンピュータシステムにおけるｉＷＡＲＰを用いたコンピュータ間通信において、様々なライト保証レベルを要求するコンピュータ装置が混在する場合の通信回線のトラヒックを低減することができる。その理由は、データ送信側コンピュータ装置毎、もしくはサービス・アプリケーション種別を示すポート番号毎にライト保証レベルを設定し、該ライト保証レベル毎にＲＤＭＡ  Ｓｅｎｄメッセージによるライト完了通知が必要であるか、もしくはＴＣＰ  ＡＣＫで十分かを選択設定することが可能であり、ＴＣＰ  ＡＣＫで十分な場合でもＲＤＭＡ  Ｓｅｎｄによるライト完了通知を発出する無駄をなくすことが可能なためである。
【００３１】
また、本発明によれば、コンピュータシステムにおけるｉＷＡＲＰを用いたコンピュータ間通信において、様々なライト保証レベルを要求するコンピュータ装置が混在する場合の、データ受信側コンピュータ装置のマイクロプロセッサの負荷低減を図ることができる。その理由は、データ送信側コンピュータ装置毎、もしくはサービス・アプリケーション種別を示すポート番号毎にライト保証レベルを設定し、該ライト保証レベル毎に上位レイヤによるホストメモリのデータ確認が必要であるか、もしくはＴＣＰ  ＡＣＫで十分かを選択設定することが可能であり、ＴＣＰ  ＡＣＫで十分な場合でも上位レイヤによるホストメモリのデータ確認を行うという無駄をなくすことが可能であり、その結果ホストメモリの不要なデータ確認を行うことなく、マイクロプロセッサの負荷低減が可能となる
特に近年、グリッドコンピューティングやＷＥＢサービスなど、コンピュータ装置同士を汎用的なＴＣＰ／ＩＰ通信回線で接続し、連携を図る用途が増えており、その際のプロセッサの負荷低減法としてｉＷＡＲＰが注目されている。また、コンピュータ装置間同士のトラヒック増加に伴い、通信回線でのパケットロスやパケット遅延などが発生すると、グリッドコンピューティングの性能や、ＷＥＢサービスの信頼性に影響を与えるため、通信回線のトラヒック量抑制は重要である。また、マイクロプロセッサの負荷増大も、グリッドコンピューティング性能やＷＥＢサービスの応答性能などに影響を与えるため、マイクロプロセッサ負荷抑制は重要である。
【００３２】
本発明は、これらの問題を抑制することが可能であり、通信回線設備への追加投資の抑制や、コンピュータ装置の追加増強の抑制が可能となる利点を有する。
【発明を実施するための最良の形態】
【００３３】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００３４】
[第１の実施形態]
図１は、本発明の第１の実施形態による、データ送信側コンピュータ装置毎のライト保証レベルに応じたライト保証通知の選択出力機能を有するコンピュータシステムの構成を示すブロック図と、その動作シーケンス図である。本実施形態のコンピュータシステムは、通信回線１３で互いに接続されたコンピュータ装置１１と１２からなり、コンピュータ装置１１からコンピュータ装置１２にＲＤＭＡ  Ｗｒｉｔｅを行う例である。コンピュータ装置１１は、ｉＷＡＲＰ処理機能を有する図５の従来例のコンピュータ装置５１と同じコンピュータ装置である。また、コンピュータ装置１２は、ｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置である。
【００３５】
コンピュータ装置１２はマイクロプロセッサ１２−１とチップセット回路１２−２とホストメモリ１２−３とＲＤＭＡ処理回路１２−４とＴＣＰ処理回路１２−５とＩＰ処理回路１２−６とイーサネット処理回路１２−７とＩＰテーブル１２−１１とを有する。マイクロプロセッサ１２−１にはアプリケーションプログラム１２−８とＭＰＩ１２−９とデバイスドライバ１２−１０とが搭載されている。ＩＰ処理回路１２−６はＩＰテーブル１２−１１からＩＰアドレスに応じて予め定められたライト保証レベル信号（‘０’／‘１’）を読み出し、該ライト保証レベル信号をデータと並走させてＲＤＭＡ処理回路１２−４に入力する。ライト保証レベル信号は、ここでは、ＲＤＭＡ  Ｗｒｉｔｅに対してホストメモリのデータの正常性を確認した結果をＲＤＭＡ  Ｓｅｎｄによって受信することでライト完了とする場合の第１のレベルを‘１’、ＴＣＰ  ＡＣＫでライト完了とみなす場合の第２のレベルを‘０’とするが、第１のレベルを‘０’とし第２のレベルを‘１’としても良い。本図の例では、コンピュータ装置１１はＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ＴＣＰ  ＡＣＫで十分なものとする。そこでＩＰテーブル１２−１１には、コンピュータ装置１１のＩＰアドレスに対するライト保証レベルは、‘０’（第２のレベル）を設定しておく。ＲＤＭＡ処理回路１２−４は、チップセット回路１２−２を経由してホストメモリ１２−３の任意のアドレスにデータライトおよびデータリードが可能であり、また、チップセット回路１２−２を経由してマイクロプロセッサ１２−１と通信可能である。逆に、マイクロプロセッサ１２−１からも、チップセット回路１２−２経由でＲＤＭＡ処理回路１２−４と通信可能であるとともに、チップセット回路１２−２経由でホストメモリ１２−３の任意のアドレスにデータリードおよびデータライトが可能である。
【００３６】
コンピュータ装置１１は、マイクロプロセッサ１１−１とチップセット回路１１−２とホストメモリ１１−３とＲＤＭＡ処理回路１１−４とＴＣＰ処理回路１１−５とＩＰ処理回路１１−６とイーサネット処理回路１１−７とを有する。マイクロプロセッサ１１−１にはアプリケーションプログラム１１−８とＭＰＩ１１−９とデバイスドライバ１１−１０とが搭載されている。ＲＤＭＡ処理回路１１−４は、チップセット回路１１−２を経由してホストメモリ１１−３の任意のアドレスにデータライトおよびデータリードが可能であり、また、チップセット回路１１−２を経由してマイクロプロセッサ１１−１と通信可能である。逆に、マイクロプロセッサ１１−１からも、チップセット回路１１−２経由でＲＤＭＡ処理回路１１−４と通信可能であるとともに、チップセット回路１１−２経由でホストメモリ１１−３の任意のアドレスにデータリードおよびデータライトが可能である。
【００３７】
アプリケーションプログラム１１−８と１２−８は任意のアプリケーションプログラムであるが、他のコンピュータ装置との通信処理が必要なものとする。ＭＰＩ１１−９と１２−９は、並列計算を行うためのメッセージ授受用ライブラリであり、並列計算以外の用途であればＭＰＩのかわりにソケット通信ライブラリとする構成も可能である。デバイスドライバ１１−１０と１２−１０はそれぞれＲＤＭＡ処理回路１１−４と１２−４とマイクロプロセッサの通信や制御、ＲＤＭＡ処理の一部分を行うプログラムである。
【００３８】
なお、ここでは、コンピュータ装置１１からコンピュータ装置１２に対して本発明に関するＲＤＭＡ  Ｗｒｉｔｅを行うものとしている。コンピュータ装置１２からコンピュータ装置１１にＲＤＭＡ  Ｗｒｉｔｅも可能であるが、これは図５の従来例のコンピュータ装置５１と同じ動作になる。そこで、コンピュータ装置１１も、コンピュータ装置１２と同じ構成のコンピュータ装置に置き換えればコンピュータ装置１２からコンピュータ装置１１へのＲＤＭＡ  Ｗｒｉｔｅも本発明の実施形態となるが、ここではその詳しい説明は省略する。
【００３９】
次に、本実施形態の動作を詳細に説明する。
【００４０】
ここで、コンピュータ装置１１は、ＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ＴＣＰ  ＡＣＫで十分なものとし、それ以上の確認手段を要求しないコンピュータ装置であるものとする。
【００４１】
上述のコンピュータ装置１１と１２の間で、ホストメモリ１１−３の指定アドレスの内容を、ＲＤＭＡ  Ｗｒｉｔｅによりホストメモリ１２−３の指定アドレスにコピーするものとする。アプリケーションプログラム１１−８から、ホストメモリ１１−３の任意領域に格納されたデータをコンピュータ装置１２に対してライトする処理要求が発生すると、ＭＰＩ１１−９からライト要求メッセージ送信を行い、デバイスドライバ１１−１０およびチップセット回路１１−２経由でＲＤＭＡ処理回路１１−４に、ＲＤＭＡ  Ｗｒｉｔｅ要求通知が転送される（ステップ１０１）。ＲＤＭＡ  Ｗｒｉｔｅ要求通知には、ホストメモリ１１−３の何れの領域をコピーするかを示すアドレス情報も含まれている。
【００４２】
ＲＤＭＡ処理回路１１−４は、チップセット回路１１−２経由でホストメモリ１１−３のアドレス情報で指定された領域のデータを読み出し、ＲＤＭＡ  Ｗｒｉｔｅメッセージを生成し、これをＴＣＰ処理回路１１−５に送る（ステップ１０２）。ＴＣＰ処理回路１１−５では、ＲＤＭＡ  ＷｒｉｔｅメッセージをＴＣＰセグメントに整形し、ＩＰ処理回路１１−６で装置毎に定められたＩＰアドレスの付加などのＩＰデータグラム生成を行い、イーサネット処理回路１１−７でイーサネットフレームに整形して通信回線１３に送出する（ステップ１０３）。イーサネット処理回路１１−７の代わりに、他の通信方式の回路を用いてもよい。
【００４３】
通信回線１３を通った該イーサネットフレームは、コンピュータ装置１２のイーサネット処理回路１２−７で受信され、ＩＰデータグラムに戻される（ステップ１０４）。そしてＩＰ処理回路１２−６でＴＣＰセグメントに戻されるが、あわせて該ＩＰデータグラムに格納されたデータ送信側ＩＰアドレスを読み出し、ＩＰテーブル１２−１１を参照して、データ送信側コンピュータ装置１１−１が要求するライト保証レベルを得る（ステップ１０５）。ここではコンピュータ装置１１はライト保証レベルとしてＴＣＰ  ＡＣＫで十分な装置であり、予め設定した値‘０’（第２のレベル）がＩＰテーブル１２−１１から読み出される。ＴＣＰセグメントはＴＣＰ処理回路１２−５に送られて、ＲＤＭＡメッセージに戻されるが、その際、ＴＣＰセグメントが正しく受信できているか調べ、正しく受信されているならばＴＣＰ処理回路１２−５からコンピュータ装置１１に該ＴＣＰセグメントに対するＴＣＰ  ＡＣＫを返送する（ステップ１０６）。また、取り出されたＲＤＭＡメッセージは、ＲＤＭＡ処理回路１２−４に転送される（ステップ１０７）。また、同時にＩＰ処理回路１２−６からライト保証レベル信号も並走してＲＤＭＡ処理回路１２−４に入力される（ステップ１０８）。
【００４４】
ＲＤＭＡメッセージ（パケットに相当）フォーマットは、ｉＷＡＲＰ規定によりＲＤＭＡ  Ｗｒｉｔｅ、ＲＤＭＡ  Ｓｅｎｄ、ＲＤＭＡ  Ｒｅａｄなどのオペレーションタイプ毎に定められ、ＲＤＭＡ処理回路１２−４はオペレーションタイプを容易に認識可能である。メッセージがＲＤＭＡ  Ｗｒｉｔｅならば、該メッセージ中のデータをチップセット回路１２−２経由でホストメモリ１２−３に書き込む（ステップ１０９）。なお、ホストメモリ１２−３へのライトアドレス情報は該ＲＤＭＡ  Ｗｒｉｔｅメッセージに格納されており、これは予め互いのＭＰＩ間で情報交換を行い、ＲＤＭＡ処理回路１１−４はＭＰＩ１１−９から通知されている。該ＭＰＩのアドレス情報交換方法はＭＰＩ毎に決まるものであり、本発明とは直接、関係しないためここではその説明は省略する。このように、ＲＤＭＡ処理回路１１−４がデバイスドライバ１１−１０からＲＤＭＡ  Ｗｒｉｔｅ要求を受信した以降、マイクロプロセッサ１１−１、１２−１のどちらも使用せずホストメモリ１１−３の内容をホストメモリ１２−３にコピーする。ホストメモリ１２−３へのデータライト終了後、ＲＤＭＡ処理回路１２−４はチップセット回路１２−２、デバイスドライバ１２−１０およびＭＰＩ１２−９経由で、アプリケーションプログラム１２−８にデータ引取り要求を発出し（ステップ１１０）、アプリケーションプログラム１２−８はデータコピーされたことを認識し、該データを読み出して利用することが可能になる。
【００４５】
ＲＤＭＡ処理回路１２−４は、デバイスドライバ１２−１０に対してデータ引取り要求を発出する際に、あわせてデータ送信側コンピュータ装置１１のライト保証レベル信号と、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮも通知する。ここではコンピュータ装置１１のライト保証レベル＝‘０’であるので、デバイスドライバ１２−１０は何もせず、データ引取り要求をＭＰＩ１２−９経由でアプリケーションプログラム１２−８に転送するのみである（ステップ１１０）。
【００４６】
なお、ＴＣＰ処理回路１２−５から発出されたＴＣＰ  ＡＣＫは、ＩＰ処理回路１２−６、イーサネット処理回路１２−７、通信回線１３、イーサネット処理回路１１−７、ＩＰ処理回路１１−６経由でＴＣＰ処理回路１１−５に転送され（ステップ１０６）、ＴＣＰ処理回路１１−５はＴＣＰ  ＡＣＫ受信完了信号をＲＤＭＡ処理回路１１−４に送付する（ステップ１１２）。
【００４７】
ＲＤＭＡ処理回路１１−４は、該ＴＣＰ  ＡＣＫに対応するＴＣＰセグメントのデータがホストメモリ１２−３に正しくライトできたものとみなし、該ＴＣＰ  ＡＣＫ受信完了信号をライト完了通知トリガとして、ライト完了通知をデバイスドライバ１１−１０に通知し（ＣＱにライト完了通知を書き込む）、そしてデバイスドライバ１１−１０からＭＰＩ１１−９経由で、アプリケーションプログラム１１−８にライト完了が通知されて（ステップ１１３）、アプリケーションプログラム１１−８は正しくＲＤＭＡ  Ｗｒｉｔｅ完了したものと認識する。なお、ＴＣＰ処理回路１１−５は、ＴＣＰ  ＡＣＫが何れのＴＣＰセグメントのＡＣＫかをＴＣＰセグメント内のシーケンス番号から認識しており、また、ＲＤＭＡ処理回路１１−４においてＲＤＭＡ  ＷｒｉｔｅメッセージとＴＣＰセグメントの関連付けを管理して、何れのＲＤＭＡ  Ｗｒｉｔｅメッセージがライト完了したのか判定可能である。
【００４８】
図２は図１の第１の実施形態における、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行う場合の動作シーケンス図である。
【００４９】
コンピュータ装置２１は、ｉＷＡＲＰ処理機能を有する図６の従来例のコンピュータ装置６１と同じコンピュータ装置である。また、コンピュータ装置１２は、ｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置である。そして、コンピュータ装置２１は、ＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、コンピュータ装置１２でのホストメモリの確認まで要求するコンピュータ装置であるものとする。コンピュータ装置２１はマイクロプロセッサ２１−１とチップセット回路２１−２とホストメモリ２１−３とＲＤＭＡ処理回路２１−４とＴＣＰ処理回路２１−５とＩＰ処理回路２１−６とイーサネット処理回路２１−７とを有し、マイクロプロセッサ２１−１にはアプリケーションプログラム２１−８とＭＰＩ２１−９とデバイスドライバ２１−１０が搭載されている。一方、コンピュータ装置１２と通信回線１３は、図１におけるものと同じである。
【００５０】
上述のコンピュータ装置２１と１２の間で、ホストメモリ２１−３の指定アドレスの内容を、ＲＤＭＡ  Ｗｒｉｔｅによりホストメモリ１２−３の指定アドレスにコピーするものとする。アプリケーションプログラム２１−８から、ホストメモリ２１−３の任意領域に格納されたデータをコンピュータ装置１２に対してライトする処理要求が発生すると、ＭＰＩ２１−９からライト要求メッセージ送信を行い、デバイスドライバ２１−１０およびチップセット回路２１−２経由でＲＤＭＡ処理回路２１−４にＲＤＭＡ  Ｗｒｉｔｅ要求通知が転送される（ステップ１０１）。ＲＤＭＡ  Ｗｒｉｔｅ要求通知には、ホストメモリ２１−３の何れの領域をコピーするかを示すアドレス情報も含まれている。
【００５１】
ＲＤＭＡ処理回路２１−４は、チップセット回路２１−２経由でホストメモリ２１−３のアドレス情報で指定された領域のデータを読み出し、ＲＤＭＡ  Ｗｒｉｔｅメッセージを生成し、これをＴＣＰ処理回路２１−５に送る（ステップ１０２）。ＴＣＰ処理回路２１−５では、ＲＤＭＡ  ＷｒｉｔｅメッセージをＴＣＰセグメントに整形し、ＩＰ処理回路２１−６で装置毎に定められたＩＰアドレスの付加などのＩＰデータグラム生成を行う。そしてイーサネット処理回路２１−７でイーサネットフレームに整形して通信回線１３に送出する（ステップ１０３）。イーサネット処理回路２１−７の代わりに他の通信方式の回路を用いてもよい。
【００５２】
通信回線１３を通った該イーサネットフレームは、コンピュータ装置１２のイーサネット処理回路１２−７で受信されＩＰデータグラムに戻され（ステップ１０４）、ＩＰ処理回路１２−６でＴＣＰセグメントに戻されるが、あわせて該ＩＰデータグラムに格納されたデータ送信側ＩＰアドレスを読み出し、ＩＰテーブル１２−１１を参照して、データ送信側コンピュータ装置１２−１１が要求するライト保証レベルを得る（ステップ１０５）。ここではコンピュータ装置２１はデータライト保証レベルとしてホストメモリのデータ確認まで要求する装置であり、予め設定した値‘１’がＩＰテーブル１２−１１から読み出される。そして、図１の場合と同様の処理（ステップ１０６から１０８）の後、ＲＤＭＡ処理回路１２−４からデータ内容がホストメモリ１２−３に書き込まれる（ステップ１０９）。
【００５３】
ホストメモリ１２−３へのデータライト終了後、ＲＤＭＡ処理回路１２−４はチップセット回路１２−２、デバイスドライバ１２−１０およびＭＰＩ１２−９経由で、アプリケーションプログラム１２−８にデータ引取り要求を発出し、あわせてデータ送信側コンピュータ装置２１のライト保証レベル信号と、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮも通知する（ステップ１１０）。ここではコンピュータ装置２１のライト保証レベル＝‘１’であるので、デバイスドライバ１２−１０は該ライトされたデータの正常性確認をＣＲＣチェックなどから実施し、該データ確認結果をチップセット回路１２−２経由でＲＤＭＡ処理回路１２−４に通知する（ステップ１１１）。その際、デバイスドライバ１２−１０はデータ確認したメッセージのＭＳＮもあわせてＲＤＭＡ処理回路１２−４に通知する。ＲＤＭＡ処理回路１２−４はＲＤＭＡ  Ｓｅｎｄメッセージを用いて、該データ確認結果（ライト完了通知）とＭＳＮを、ＴＣＰ処理回路１２−５、ＩＰ処理回路１２−６、イーサネット処理回路１２−７、通信回線１３、イーサネット処理回路２１−７、ＩＰ処理回路２１−６、ＴＣＰ処理回路２１−５経由でＲＤＭＡ処理回路２１−４に送付する（ステップ１１５）。
【００５４】
ＲＤＭＡ処理回路２１−４は、受信ＭＳＮ番号より、送信した何れのＲＤＭＡ  Ｗｒｉｔｅメッセージに対するライト完了通知かを識別することが可能である。ＲＤＭＡ処理回路２１−４は、ＴＣＰ  ＡＣＫ受信完了信号によるライト完了通知と、該ＲＤＭＡ  Ｓｅｎｄによるライト完了の双方を受信したならば、正しくライトが完了したものと判断し、ＣＱ経由でデバイスドライバ２１−１０に通知し、そしてデバイスドライバ２１−１０からＭＰＩ２１−９経由で、アプリケーションプログラム２１−８にライト完了が通知されて（ステップ１１６）、アプリケーションプログラム２１−８は正しくＲＤＭＡ  Ｗｒｉｔｅ完了したものと認識する。
【００５５】
本例は、デバイスドライバ１２−１０におけるデータ確認時間やＲＤＭＡ  Ｓｅｎｄ時間が必要なため、アプリケーションプログラム２１−８がライト完了を得るまで図１の場合よりも時間がかかるほか、デバイスドライバ１２−１０でのデータ確認により、図１の場合よりもマイクロプロセッサ１２−１の負荷が増大する。しかしながら、コンピュータ装置内部で雑音等によってデータ誤りが発生し、ホストメモリに誤ったデータが書き込まれる可能性は、零ではない。したがって、ＴＣＰ処理回路からホストメモリまでの区間でデータが誤り、ホストメモリにも誤ったデータが書き込まれる可能性も零ではない。そのため、金融系処理などの確実性を必要とする用途では、確実にホストメモリに正しくデータが書き込まれたことを保証したいという要求も存在する。その点、本例は、みなし方式ではなく実際にホストメモリ１２−３までデータが正しく書き込まれたことを確認する方式であり、金融系メッセージのように、より確実性を求める場合に適する。
【００５６】
[第２の実施形態]
図１および図２の実施形態では、データ送信側コンピュータ装置１１もしくは２１毎にライト保証レベルを設定していたが、コンピュータ装置毎ではなく、サービス・アプリケーション毎にライト保証レベルを設定したい場合も存在する。ここでは、ＴＣＰや、ＴＣＰと同じくトランスポート層プロトコルの一つであるＵＤＰ（User Datagram Protocol）で使用されている、ポート番号を用いて、ポート番号毎にライト保証レベルを設定する例である。ポート番号は、ＴＣＰヘッダやＵＤＰヘッダに定義された領域にてデータ送信側からデータ受信側に転送されるもので、該ＴＣＰセグメントやＵＤＰデータグラムに格納されたデータが使用されるサービス・アプリケーションの種別を示す。その値は、サービスやアプリケーション毎に、全世界共通的に規定されている。図１１はＴＣＰセグメントのフォーマット図であり、３２ビットを１ワードとして、ＴＣＰヘッダの１ワード目にポート番号領域がある。ポート番号は、例えばＷＷＷに用いられるｈｔｔｐでは８０、セキュリティ機能付きＷＷＷに用いられるｈｔｔｐｓでは４４３、メール受信に用いられるｐｏｐ３では１１０、ファイル転送に用いられるｆｔｐでは２１などである。
【００５７】
図３は、本発明の第２の実施形態による、ＴＣＰのポート番号別に設定した、ライト保証レベルに応じたライト保証通知の選択出力機能を有する、コンピュータシステムの構成を示すブロック図と、その動作シーケンス図である。本実施形態のコンピュータシステムは、通信回線３３で接続されたコンピュータ装置３１と３２からなり、コンピュータ装置３１はｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置、コンピュータ装置３２は、ｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置である。コンピュータ装置３１と３２は、通信回線３３を通して通信を行う。ここでは、コンピュータ装置３１から３２に対して本発明に関するＲＤＭＡ  Ｗｒｉｔｅを行うものとする。コンピュータ装置３２から３１にＲＤＭＡ  Ｗｒｉｔｅを行う場合は省略している。また、コンピュータ装置３１で使用しているアプリケーションプログラム３１−８は、ＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ＴＣＰ  ＡＣＫで十分なものとし、それ以上の確認手段を要求しないアプリケーションであるものとする。
【００５８】
コンピュータ装置３２はマイクロプロセッサ３２−１とチップセット回路３２−２とホストメモリ３２−３とＲＤＭＡ処理回路３２−４とＴＣＰ処理回路３２−５とＩＰ処理回路３２−６とイーサネット処理回路３２−７とポート番号テーブル３２−１１とを有する。マイクロプロセッサ３２−１にはアプリケーションプログラム３２−８とＭＰＩ３２−９とデバイスドライバ３２−１０とが搭載されている。ＴＣＰ処理回路３２−５はサービス・アプリケーション種別を示すポート番号別に予め定めたライト保証レベル信号（‘０’／‘１’）をポート番号テーブル３２−１１から読み出し、該ライト保証レベル信号をデータと並走させてＲＤＭＡ処理回路３２−４に入力する。ＲＤＭＡ処理回路３２−４は、チップセット回路３２−２を経由してホストメモリ３２−３の任意のアドレスにデータライトおよびデータリードが可能であり、また、チップセット回路３２−２を経由してマイクロプロセッサ３２−１と通信可能である。逆に、マイクロプロセッサ３２−１からも、チップセット回路３２−２経由でＲＤＭＡ処理回路３２−４と通信可能であるとともに、チップセット回路３２−２経由でホストメモリ３２−３の任意のアドレスにデータリードおよびデータライトが可能である。
【００５９】
コンピュータ装置３１は、ｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置であり、マイクロプロセッサ３１−１とチップセット回路３１−２とホストメモリ３１−３とＲＤＭＡ処理回路３１−４とＴＣＰ処理回路３１−５とＩＰ処理回路３１−６とイーサネット処理回路３１−７とを有する。マイクロプロセッサ３１−１にはアプリケーションプログラム３１−８とＭＰＩ３１−９とデバイスドライバ３１−１０とが搭載されている。また、ＲＤＭＡ処理回路３１−４はポート番号テーブル３１−１１と接続されている。ポート番号テーブル３１−１１には、サービス・アプリケーション種別を示すポート番号別に、ライト保証レベル（‘０’／‘１’）が予め設定されており、また、ＲＤＭＡ  Ｗｒｉｔｅメッセージ毎にそのメッセージ番号ＭＳＮとポート番号の関係を記憶している。ライト保証レベル信号は、ここでは、ＲＤＭＡ  Ｗｒｉｔｅに対してホストメモリのデータの正常性を確認した結果をＲＤＭＡ  Ｓｅｎｄによって受信することでライト完了とする場合の第１のレベルを‘１’、ＴＣＰ  ＡＣＫでライト完了とみなす場合の第２のレベルを‘０’とするが、第１のレベルを‘０’とし第２のレベルを‘１’としても良い。そして、データ送信側のポート番号テーブル３１−１１とデータ受信側のポート番号テーブル３２−１１には、予め各ポート番号に対するライト保証レベルを設定しておく。両ポート番号テーブルでは、同一ポート番号に対するライト保証レベルの設定は一致させておく。本図では、アプリケーションプログラム３１−８が出力するメッセージはＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ＴＣＰ  ＡＣＫで十分なものとする。その出力メッセージのポート番号は、ポート番号テーブル３１−１１、３２−１１ではライト保証レベル＝‘０’（第２のレベル）のもののみである。なお、ＲＤＭＡ処理回路３１−４は、チップセット回路３１−２を経由してホストメモリ３１−３の任意のアドレスにデータライトおよびデータリードが可能であり、また、チップセット回路３１−２を経由してマイクロプロセッサ３１−１と通信可能である。逆に、マイクロプロセッサ３１−１も、チップセット回路３１−２経由でＲＤＭＡ処理回路３１−４と通信可能であるとともに、チップセット回路３１−２経由でホストメモリ３１−３の任意のアドレスにデータリードおよびデータライトが可能である。
【００６０】
アプリケーションプログラム３１−８と３２−８は任意のアプリケーションプログラムであるが、他のコンピュータ装置との通信処理が必要なものとする。ＭＰＩ３１−９と３２−９は、並列計算を行うためのメッセージ授受用ライブラリであり、並列計算以外の用途であればＭＰＩのかわりにソケット通信ライブラリとする構成も可能である。デバイスドライバ３１−１０と３２−１０は、それぞれＲＤＭＡ処理回路３１−４と３２−４とマイクロプロセッサの通信や制御、ＲＤＭＡ処理の一部分を行うプログラムである。
【００６１】
上述のコンピュータ装置３１と３２の間で、ホストメモリ３１−３の指定アドレスの内容を、ＲＤＭＡ  Ｗｒｉｔｅでホストメモリ３２−３の指定アドレスにコピーするものとする。アプリケーションプログラム３１−８から、ホストメモリ３１−３の任意の領域に格納されたデータをコンピュータ装置３２に対してライトする処理要求が発生すると、ＭＰＩ３１−９からライト要求メッセージ送信を行い、デバイスドライバ３１−１０およびチップセット回路３１−２経由でＲＤＭＡ処理回路３１−４に、ＲＤＭＡ  Ｗｒｉｔｅ要求通知が転送される（ステップ２０１）。ＲＤＭＡ  Ｗｒｉｔｅ要求通知には、ホストメモリ３１−３の何れの領域をコピーするかを示すアドレス情報も含まれている。
【００６２】
ＲＤＭＡ処理回路３１−４は、チップセット回路３１−２経由でホストメモリ３１−３のアドレス情報で指定された領域のデータを読み出し、ＲＤＭＡ  Ｗｒｉｔｅメッセージを生成し、これをＴＣＰ処理回路３１−５に送る（ステップ２０２）。同時に該ＲＤＭＡメッセージのメッセージ番号ＭＳＮをポート番号テーブル３１−１１に書き込み、ＭＳＮとポート番号およびそのライト保証レベルの関連付けを記憶する。なお、ＲＤＭＡ  Ｗｒｉｔｅメッセージのサービス・アプリケーション種別を示すポート番号は、メッセージ毎にデバイスドライバ３１−１０経由でアプリケーションプログラム３１−８から通知されるものとする。
【００６３】
ＴＣＰ処理回路３１−５では、ＲＤＭＡ  ＷｒｉｔｅメッセージをＴＣＰセグメントに整形し、ＩＰ処理回路３１−６で装置毎に定められたＩＰアドレスの付加などのＩＰデータグラム生成を行い、イーサネット処理回路３１−７でイーサネットフレームに整形し、通信回線３３に送出する（ステップ２０３）。イーサネット処理回路３１−７の代わりに、他の通信方式の回路を用いてもよい。
【００６４】
通信回線３３を通った該イーサネットフレームは、コンピュータ装置３２のイーサネット処理回路３２−７で受信され、ＩＰデータグラムに戻される（ステップ２０４）。そしてＩＰ処理回路３２−６でＴＣＰセグメントに戻され、ＴＣＰ処理回路３２−５に送られ、ＲＤＭＡメッセージに戻される（ステップ２０５）。その際、ＴＣＰセグメントが正しく受信できているか調べ、正常に受信できているならば、ＴＣＰ処理回路３２−５からコンピュータ装置３１に該ＴＣＰセグメントに対するＴＣＰ  ＡＣＫを返送する（ステップ２０６）。あわせて該ＴＣＰセグメントに格納されたサービス・アプリケーション種別を示すポート番号を読み出し、ポート番号テーブル３２−１１を参照して、該ポート番号が要求するライト保証レベルを得る（ステップ２０７）。ここでは該ポート番号はデータライト保証レベルとしてＴＣＰ  ＡＣＫで十分なものであり、予め設定した値‘０’（第２のレベル）がポート番号テーブル３２−１１から読み出される。
【００６５】
ＲＤＭＡメッセージはＲＤＭＡ処理回路３２−４に転送され、また、同時にＩＰ処理回路３２−６からライト保証レベル信号も並走してＲＤＭＡ処理回路３２−４に入力される（ステップ２０８）。ＲＤＭＡ処理回路３２−４は入力メッセージがＲＤＭＡ  Ｗｒｉｔｅならば、該メッセージ中のデータをチップセット回路３２−２経由でホストメモリ３２−３に書き込む（ステップ２０９）。なお、メモリ３２−３へのライトアドレス情報は該ＲＤＭＡ  Ｗｒｉｔｅメッセージに格納されており、これは予め互いのＭＰＩ間で情報交換を行い、ＲＤＭＡ処理回路３１−４はＭＰＩ３１−９から通知されている。該ＭＰＩのアドレス情報交換方法はＭＰＩ毎に決まるものであり、本発明とは直接、関係しないためここではその説明を省略する。
【００６６】
このように、ＲＤＭＡ処理回路３１−４がデバイスドライバ３１−１０からＲＤＭＡ  Ｗｒｉｔｅ要求を受信した以降、マイクロプロセッサ３１−１、３２−１のどちらも使用せずホストメモリ３１−３の内容をホストメモリ３２−３にコピーする。ホストメモリ３２−３へのデータライト終了後、ＲＤＭＡ処理回路３２−４はチップセット回路３２−２、デバイスドライバ３２−１０およびＭＰＩ３２−９経由で、アプリケーションプログラム３２−８にデータ引取り要求を発出し（ステップ２１０）、アプリケーションプログラム３２−８はデータコピーされたことを認識し、該データを読み出して利用することが可能になる。
【００６７】
ＲＤＭＡ処理回路３２−４は、デバイスドライバ３２−１０に対してデータ引取り要求を発出する際に、あわせてデータ送信側コンピュータ装置３１のライト保証レベル信号と、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮも通知する。ここではコンピュータ装置３１のライト保証レベル＝‘０’（第２のレベル）であるので、デバイスドライバ３２−１０は何もせず、データ引取り要求をＭＰＩ３２−９経由でアプリケーションプログラム３２−８に転送するのみである。
【００６８】
なお、ＴＣＰ処理回路３２−５から発出されたＴＣＰ  ＡＣＫは、ＩＰ処理回路３２−６、イーサネット処理回路３２−７、通信回線３３、イーサネット処理回路３１−７、ＩＰ処理回路３１−６経由でＴＣＰ処理回路３１−５に転送され（ステップ２０６）、ＴＣＰ処理回路３１−５はＴＣＰ  ＡＣＫ受信完了信号をＲＤＭＡ処理回路３１−４に送付する（ステップ２１１）。
【００６９】
ＴＣＰ  ＡＣＫにもポート番号は格納されている。そこで、ＲＤＭＡ処理回路３１−４はポート番号テーブル３１−１１を参照し、該ポート番号のサービス・アプリケーションのライト保証レベル情報を得る。本図の例ではＴＣＰ  ＡＣＫでライト完了とみなす‘０’であるため、ＲＤＭＡ処理回路３１−４は、該ＴＣＰ  ＡＣＫ受信完了信号をライト完了通知トリガとして、ライト完了通知をデバイスドライバ３１−１０に通知し（ＣＱにライト完了通知を書き込む）、デバイスドライバ３１−１０からＭＰＩ３１−９、アプリケーションプログラム３１−８にライト完了が通知されて（ステップ２１２）、アプリケーションプログラム３１−８は正しくＲＤＭＡ  Ｗｒｉｔｅ完了したものと認識する。
【００７０】
なお、ＴＣＰ処理回路３１−５は、ＴＣＰ  ＡＣＫが何れのＴＣＰセグメントのＡＣＫかをＴＣＰセグメント内のシーケンス番号から認識しており、また、ＲＤＭＡ処理回路３１−４においてＲＤＭＡ  ＷｒｉｔｅメッセージとＴＣＰセグメントの関連付けを管理して、何れのＲＤＭＡ  Ｗｒｉｔｅメッセージがライト完了したのかを判定可能である。
【００７１】
図４は、図３の第２の実施形態における、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行う場合の動作シーケンス図である。
【００７２】
本実施形態は、図３の実施形態と同様に、サービス・アプリケーション種別を示すポート番号を用いて、ポート番号毎にライト保証レベルを設定する例であり、アプリケーションがＴＣＰ  ＡＣＫよりも確実な手段として、データ受信側コンピュータ装置のホストメモリにまで確実にライトされたことの確認を要求する場合である。
【００７３】
コンピュータ装置４１は、図３のコンピュータ装置３１とは、アプリケーションプログラム４１−８が、ＲＤＭＡ  Ｗｒｉｔｅ時にコンピュータ装置３２のホストメモリ３２−３まで確実に書き込まれたことのデータ確認を要求する、確実性を要求するアプリケーションである点が、異なる。なお、コンピュータ装置３２と通信回線３３は、図３の実施形態と同じである。コンピュータ装置４１のチップセット回路３１−２、ホストメモリ３１−３、ＲＤＭＡ処理回路３１−４、ＴＣＰ処理回路３１−５、ＩＰ処理回路３１−６、イーサネット処理回路３１−７、ＭＰＩ３１−９、デバイスドライバ３１−１０、ポート番号テーブル３１−１１は、図３コンピュータ装置３１の同じ参照番号のものと同じである。データ送信側のポート番号テーブル３１−１１には、サービス・アプリケーション種別を示すポート番号毎にライト保証レベル（‘０’／‘１’）を設定しておく。データ受信側のポート番号テーブル３２−１１にもポート番号に対するライト保証レベル（‘０’／‘１’）を設定しておく。そして、両ポート番号テーブルでは、同一アプリケーションのライト保証レベル設定は一致させておく。本図では、アプリケーションプログラム４１−８の出力メッセージは、ＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行うものとする。その出力メッセージのポート番号は、ポート番号テーブル３１−１１、３２−１１ではライト保証レベル＝‘１’（第１のレベル）のもののみである。
【００７４】
上述のコンピュータ装置４１と３２の間で、ホストメモリ３１−３の指定アドレスの内容を、ＲＤＭＡ  Ｗｒｉｔｅによりホストメモリ３２−３の指定アドレスにコピーするものとする。アプリケーションプログラム４１−８から、ホストメモリ３１−３の任意領域に格納されたデータをコンピュータ装置３２に対してライトする処理要求が発生し、ＴＣＰ処理回路３２−５でＴＣＰセグメントを受信するまでの動作（ステップ２０１から２０５）は、図３の場合と全く同じである。ＴＣＰセグメントはＴＣＰ処理回路３２−５に送られて、ＲＤＭＡメッセージに戻される。その際、ＴＣＰセグメントが正しく受信できているか調べ、正常に受信できているならば、ＴＣＰ処理回路３２−５からコンピュータ装置３１に該ＴＣＰセグメントに対するＴＣＰ  ＡＣＫを返送する（ステップ２０６）。あわせて該ＴＣＰセグメントに格納されたサービス・アプリケーション種別を示すポート番号を読み出し、ポート番号テーブル３２−１１を参照して、該ポート番号が要求するライト保証レベルを得る（ステップ２０７）。ここでは該ポート番号はデータライト保証レベルとしてホストメモリのデータ確認まで要求するものであり、予め設定した値‘１’（第１のレベル）がポート番号テーブル３２−１１から読み出される。
【００７５】
ＲＤＭＡメッセージはＲＤＭＡ処理回路３２−４に転送される。また、同時にＩＰ処理回路３２−６からライト保証レベル信号も並走してＲＤＭＡ処理回路３２−４に入力される（ステップ２０８）。ＲＤＭＡ処理回路３２−４は入力メッセージがＲＤＭＡ  Ｗｒｉｔｅならば、該メッセージ中のデータをチップセット回路３２−２経由でホストメモリ３２−３に書き込む（ステップ２０９）。なお、ホストメモリ３２−３へのライトアドレス情報は該ＲＤＭＡ  Ｗｒｉｔｅメッセージに格納されており、これは予め互いのＭＰＩ間で情報交換を行い、ＲＤＭＡ処理回路３１−４はＭＰＩ３１−９から通知されている。該ＭＰＩのアドレス情報交換方法はＭＰＩ毎に決まるものであり、本発明とは直接、関係しないためここではその説明は省略する。このように、ＲＤＭＡ処理回路３１−４がデバイスドライバ３１−１０からＲＤＭＡ  Ｗｒｉｔｅ要求を受信した以降、マイクロプロセッサ３１−１、３２−１のどちらも使用せずホストメモリ３１−３の内容を３２−３にコピーする。ホストメモリ３２−３へのデータライト終了後、ＲＤＭＡ処理回路３２−４はチップセット回路３２−２、デバイスドライバ３２−１０およびＭＰＩ３２−９経由で、アプリケーションプログラム３２−８にデータ引取り要求を発出し（ステップ２１０）、アプリケーションプログラム３２−８はデータコピーされたことを認識し、該データを読み出して利用することが可能になる。
【００７６】
ＲＤＭＡ処理回路３２−４は、デバイスドライバ３２−１０に対しデータ引取り要求を発出する際に、あわせてデータ送信側コンピュータ装置３１のライト保証レベル信号と、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮも通知する。ここではコンピュータ装置３１のライト保証レベル＝‘１’であるので、デバイスドライバ３２−１０は該ライトされたデータの正常性確認をＣＲＣチェックなどから実施し、該データ確認結果をチップセット回路３２−２経由でＲＤＭＡ処理回路３２−４に通知する。その際、デバイスドライバ３２−１０はデータ確認したメッセージのＭＳＮもあわせてＲＤＭＡ処理回路３２−４に通知する（ステップ２１４）。ＲＤＭＡ処理回路３２−４はＲＤＭＡ  Ｓｅｎｄメッセージを用いて、該データ確認結果（ライト完了通知）とＭＳＮを、ＩＰ処理回路３２−６、イーサネット処理回路３２−７、通信回線３３、イーサネット処理回路３１−７、ＩＰ処理回路３１−６、ＴＣＰ処理回路３１−５経由でＲＤＭＡ処理回路３１−４に送付する（ステップ２１５）。
【００７７】
なお、ＴＣＰ処理回路３２−５から発出されたＴＣＰ  ＡＣＫは、ＩＰ処理回路３２−６、イーサネット処理回路３２−７、通信回線３３、イーサネット処理回路３１−７、ＩＰ処理回路３１−６経由でＴＣＰ処理回路３１−５に転送され（ステップ２０６、２０７）、ＴＣＰ処理回路３１−５はＴＣＰ  ＡＣＫ受信完了信号をＲＤＭＡ処理回路３１−４に送付する（ステップ２１３）。ＴＣＰ  ＡＣＫにもポート番号は格納されており、ＲＤＭＡ処理回路３１−４はポート番号テーブル３１−１１を参照し、該ポート番号のサービス・アプリケーションのライト保証レベル情報を得る。ここでは、ＲＤＭＡ  Ｓｅｎｄによるライト完了通知によってライト完了とみなす‘１’であるため、ＲＤＭＡ処理回路３１−４は、デバイスドライバ３１−１０には何も通知せず、ＲＤＭＡ  Ｓｅｎｄによるライト完了通知の転送を待つ。
【００７８】
ＲＤＭＡ処理回路３１−４は、該ＴＣＰ  ＡＣＫ受信完了信号のほかに、ＲＤＭＡ  Ｓｅｎｄメッセージによるライト完了通知を受信すると、該ＲＤＭＡ  Ｓｅｎｄメッセージ中のメッセージ番号ＭＳＮを読み出し、該ＭＳＮのライト保証レベルを、ポート番号テーブル３１−１１を参照して得、その結果が‘１’であることを確認し、つまり、ホストメモリのデータ確認を要求するサービス・アプリケーションにおいて、その正常性を示すＲＤＭＡ  Ｓｅｎｄによるライト完了通知を受け取ったと判断することによって、該ＭＳＮを持つＲＤＭＡ  Ｗｒｉｔｅメッセージのライト完了通知をデバイスドライバ３１−１０に通知し、デバイスドライバ３１−１０からＭＰＩ３１−９、アプリケーションプログラム４１−８にライト完了は通知されて（ステップ２１６）、アプリケーションプログラム４１−８は正しくＲＤＭＡ  Ｗｒｉｔｅ完了したものと認識する。
【００７９】
本例は、デバイスドライバ３２−１０におけるデータ確認時間やＲＤＭＡ  Ｓｅｎｄ時間が必要なため、アプリケーションプログラム４１−８がライト完了を得るまで図３の場合よりも時間がかかるほか、デバイスドライバ３２−１０でのデータ確認により、図３の場合よりもマイクロプロセッサ３２−１の負荷が増大する。しかしながら、コンピュータ装置内部で雑音等によってデータ誤りが発生し、ホストメモリに誤ったデータが書き込まれる可能性は、零ではない。したがって、ＴＣＰ処理回路からホストメモリまでの区間でデータが誤り、ホストメモリにも誤ったデータが書き込まれる可能性も零ではない。そのため、金融系処理などの確実性を必要とする用途では、確実にホストメモリに正しくデータが書き込まれたことを保証したいという要求も存在する。その点、本例は、みなし方式ではなく実際にホストメモリ３２−３までデータが正しく書き込まれたことを確認する方式であり、金融系メッセージのように、より確実性を求める場合に適する。
【００８０】
[第３の実施形態]
図１および図２の実施形態は、データ送信側コンピュータ装置毎のライト要求レベルの設定であり、図３および図４の実施形態はサービス・アプリケーションを示すポート番号毎のライト要求レベルの設定であるが、さらに、データ送信側コンピュータ装置毎にポート番号別のライト保証レベルを設定することで、データ送信側コンピュータ装置のサービス・アプリケーション別のライト完了確認の選択設定を行うことも可能である。ここでは、ＩＰアドレスと、サービス・アプリケーション種別を示すポート番号を用いて、データ送信側コンピュータ装置別に、ポート番号毎にライト保証レベルを設定する例である。
【００８１】
図８は、本発明の第３の実施形態による、データ送信側コンピュータ装置別にＴＣＰのポート番号別に設定した、ライト保証レベルに応じたライト保証通知の選択出力機能を有する、コンピュータシステムの構成を示すブロック図と、その動作シーケンス図である。本実施形態のコンピュータシステムは、通信回線８３で接続されたコンピュータ装置８１と８２からなり、コンピュータ装置８１はｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置、コンピュータ装置８２は、ｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置である。コンピュータ装置８１と８２は、通信回線８３を通して通信を行う。ここでは、コンピュータ装置８１から８２に対して本発明に関するＲＤＭＡ  Ｗｒｉｔｅを行うものとする。コンピュータ装置８２から８１にＲＤＭＡ  Ｗｒｉｔｅを行う場合は省略している。また、コンピュータ装置８１で使用しているアプリケーションプログラム８１−８は、ＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ＴＣＰ  ＡＣＫで十分なものとし、それ以上の確認手段を要求しないアプリケーションであるものとする。
【００８２】
コンピュータ装置８２はマイクロプロセッサ８２−１とチップセット回路８２−２とホストメモリ８２−３とＲＤＭＡ処理回路８２−４とＴＣＰ処理回路８２−５とＩＰ処理回路８２−６とイーサネット処理回路８２−７とＩＰ・ポート番号テーブル８２−１１とを有する。マイクロプロセッサ８２−１にはアプリケーションプログラム８２−８とＭＰＩ８２−９とデバイスドライバ８２−１０とが搭載されている。ＩＰ処理回路８２−６は受信ＩＰデータグラムのＩＰアドレスをＴＣＰ処理回路８２−５に通知し、ＴＣＰ処理回路８２−５は該ＩＰアドレスと該ＴＣＰセグメントのポート番号とから、予め定めたライト保証レベル信号（‘０’／‘１’）をＩＰ・ポート番号テーブル８２−１１より読み出し、該ライト保証レベル信号をデータと並走させてＲＤＭＡ処理回路８２−４に入力する。ＲＤＭＡ処理回路８２−４は、チップセット回路８２−２を経由してホストメモリ８２−３の任意のアドレスにデータライトおよびデータリードが可能であり、また、チップセット回路８２−２を経由してマイクロプロセッサ８２−１と通信可能である。逆に、マイクロプロセッサ８２−１からも、チップセット回路８２−２経由でＲＤＭＡ処理回路８２−４と通信可能であるとともに、チップセット回路８２−２経由でホストメモリ８２−３の任意のアドレスにデータリードおよびデータライトが可能である。
【００８３】
図１０はＩＰ・ポート番号テーブル８２−１１の構成例を説明する図である。データ送信側コンピュータ装置を示すＩＰアドレス毎に、サービス・アプリケーション種別を示すポート番号とそれに対するライト保証レベル（‘０’／‘１’）を保持している。これらは予め設定する。各データ送信側コンピュータ装置のポート番号テーブル８１−１１と、同一ポート番号に対する設置値は一致させておく。ＩＰ・ポート番号テーブル８２−１１に、受信ＩＰデータグラムのＩＰアドレスと、格納されているＴＣＰセグメントのポート番号を与えることで、データ送信側コンピュータ別のポート番号毎のライト保証レベルを得ることができる。
【００８４】
図８で、コンピュータ装置８１は、ｉＷＡＲＰ処理機能を有する本発明のコンピュータ装置であり、マイクロプロセッサ８１−１とチップセット回路８１−２とホストメモリ８１−３とＲＤＭＡ処理回路８１−４とＴＣＰ処理回路８１−５とＩＰ処理回路８１−６とイーサネット処理回路８１−７とを有する。マイクロプロセッサ８１−１にはアプリケーションプログラム８１−８とＭＰＩ８１−９とデバイスドライバ８１−１０とが搭載されている。また、ＲＤＭＡ処理回路８１−４はポート番号テーブル８１−１１と接続されている。ポート番号テーブル８１−１１には、サービス・アプリケーション種別を示すポート番号別に、ライト保証レベル（‘０’／‘１’）が予め設定されており、また、ＲＤＭＡ  Ｗｒｉｔｅメッセージ毎にそのメッセージ番号ＭＳＮとポート番号の関係を記憶している。ライト保証レベル信号は、ここでは、ＲＤＭＡ  Ｗｒｉｔｅに対してホストメモリのデータの正常性を確認した結果をＲＤＭＡ  Ｓｅｎｄによって受信することでライト完了とする場合の第１のレベルを‘１’、ＴＣＰ  ＡＣＫでライト完了とみなす場合の第２のレベルを‘０’とするが、第１のレベルを‘０’とし第２のレベルを‘１’としても良い。本図では、アプリケーションプログラム８１−８が出力するメッセージはＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ＴＣＰ  ＡＣＫで十分なものとし、アプリケーションプログラム８１−８の出力メッセージのポート番号は、ポート番号テーブル８１−１１ではライト保証レベル＝‘０’（第２のレベル）のものとする。なお、ＲＤＭＡ処理回路８１−４は、チップセット回路８１−２を経由してホストメモリ８１−３の任意のアドレスにデータライトおよびデータリード可能であり、また、チップセット回路８１−２を経由してマイクロプロセッサ８１−１と通信可能である。逆に、マイクロプロセッサ８１−１も、チップセット回路８１−２経由でＲＤＭＡ処理回路８１−４と通信可能であるとともに、チップセット回路８１−２経由でホストメモリ８１−３の任意のアドレスにデータリードおよびデータライト可能である。
【００８５】
アプリケーションプログラム８１−８と８２−８は任意のアプリケーションプログラムであるが、他のコンピュータ装置との通信処理が必要なものとする。ＭＰＩ８１−９と８２−９は、並列計算を行うためのメッセージ授受用ライブラリであり、並列計算以外の用途であればＭＰＩのかわりにソケット通信ライブラリとする構成も可能である。デバイスドライバ８１−１０と８２−１０は、それぞれＲＤＭＡ処理回路８１−４と８２−４とマイクロプロセッサの通信や制御、ＲＤＭＡ処理の一部分を行うプログラムである。
【００８６】
上述のコンピュータ装置８１と８２の間で、ホストメモリ８１−３の指定アドレスの内容を、ＲＤＭＡ  Ｗｒｉｔｅでホストメモリ８２−３の指定アドレスにコピーするものとする。アプリケーションプログラム８１−８から、ホストメモリ８１−３の任意の領域に格納されたデータをコンピュータ装置８２に対してライトする処理要求が発生すると、ＭＰＩ８１−９からライト要求メッセージ送信を行い、デバイスドライバ８１−１０およびチップセット回路８１−２経由でＲＤＭＡ処理回路８１−４に、ＲＤＭＡ  Ｗｒｉｔｅ要求通知が転送される（ステップ４０１）。ＲＤＭＡ  Ｗｒｉｔｅ要求通知には、ホストメモリ８１−３の何れの領域をコピーするかを示すアドレス情報も含まれている。
【００８７】
ＲＤＭＡ処理回路８１−４は、チップセット回路８１−２経由でホストメモリ８１−３のアドレス情報で指定された領域のデータを読み出し、ＲＤＭＡ  Ｗｒｉｔｅメッセージを生成し、これをＴＣＰ処理回路８１−５に送る（ステップ４０２）。同時に該ＲＤＭＡメッセージのメッセージ番号ＭＳＮをポート番号テーブル８１−１１に書き込み、ＭＳＮとポート番号およびそのライト保証レベルの関連付けを記憶する。なお、ＲＤＭＡ  Ｗｒｉｔｅメッセージのサービス・アプリケーション種別を示すポート番号は、メッセージ毎にデバイスドライバ８１−１０経由でアプリケーションプログラム８１−８から通知されるものとする。
【００８８】
ＴＣＰ処理回路８１−５では、ＲＤＭＡ  ＷｒｉｔｅメッセージをＴＣＰセグメントに整形し、ＩＰ処理回路８１−６で装置毎に定められたＩＰアドレスの付加などのＩＰデータグラム生成を行い、イーサネット処理回路８１−７でイーサネットフレームに整形し、通信回線８３に送出する（ステップ４０３）。イーサネット処理回路８１−７の代わりに、他の通信方式の回路を用いてもよい。
【００８９】
通信回線８３を通った該イーサネットフレームは、コンピュータ装置８２のイーサネット処理回路８２−７で受信され、ＩＰデータグラムに戻される（ステップ４０４）。そしてＩＰ処理回路８２−６でＴＣＰセグメントに戻され、ＴＣＰ処理回路８２−５に送られ、ＲＤＭＡメッセージに戻される（ステップ４０５）。その際、ＴＣＰセグメントが正しく受信できているか調べ、正常に受信できているならば、ＴＣＰ処理回路８２−５からコンピュータ装置８１に該ＴＣＰセグメントに対するＴＣＰ  ＡＣＫを返送する（ステップ４０６）。あわせて該ＴＣＰセグメントに格納されたサービス・アプリケーション種別を示すポート番号を読み出し、ＩＰ処理回路８２−６で読み出したＩＰアドレスとから、ＩＰ・ポート番号テーブル８２−１１を参照して、該データ送信側コンピュータ装置の該ポート番号が要求するライト保証レベルを得る（ステップ４０７）。ここでは該ポート番号はライト保証レベルとしてＴＣＰ  ＡＣＫで十分なものであり、予め設定した値‘０’（第２のレベル）がＩＰ・ポート番号テーブル８２−１１から読み出される。
【００９０】
ＲＤＭＡメッセージはＲＤＭＡ処理回路８２−４に転送され、また、同時にＩＰ処理回路８２−６からライト保証レベル信号も並走してＲＤＭＡ処理回路８２−４に入力される（ステップ４０８）。ＲＤＭＡ処理回路８２−４は入力メッセージがＲＤＭＡ  Ｗｒｉｔｅならば、該メッセージ中のデータをチップセット回路８２−２経由でホストメモリ８２−３に書き込む（ステップ４０９）。なお、メモリ８２−３へのライトアドレス情報は該ＲＤＭＡ  Ｗｒｉｔｅメッセージに格納されており、これは予め互いのＭＰＩ間で情報交換を行い、ＲＤＭＡ処理回路８１−４はＭＰＩ８１−９から通知されている。該ＭＰＩのアドレス情報交換方法はＭＰＩ毎に決まるものであり、本発明とは直接、関係しないためここではその説明を省略する。
【００９１】
このように、ＲＤＭＡ処理回路８１−４がデバイスドライバ８１−１０からＲＤＭＡ  Ｗｒｉｔｅ要求を受信した以降、マイクロプロセッサ８１−１、８２−１のどちらも使用せずホストメモリ８１−３の内容をホストメモリ８２−３にコピーする。ホストメモリ８２−３へのデータライト終了後、ＲＤＭＡ処理回路８２−４はチップセット回路８２−２、デバイスドライバ８２−１０およびＭＰＩ８２−９経由で、アプリケーションプログラム８２−８にデータ引取り要求を発出し（ステップ４１０）、アプリケーションプログラム８２−８はデータコピーされたことを認識し、該データを読み出して利用することが可能になる。
【００９２】
ＲＤＭＡ処理回路８２−４は、デバイスドライバ８２−１０に対してデータ引取り要求を発出する際に、あわせて該データのライト保証レベル信号と、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮも通知する。ここではコンピュータ装置８１の該ポート番号のライト保証レベル＝‘０’であるので、デバイスドライバ８２−１０は何もせず、データ引取り要求をＭＰＩ８２−９経由でアプリケーションプログラム８２−８に転送するのみである。
【００９３】
なお、ＴＣＰ処理回路８２−５から発出されたＴＣＰ  ＡＣＫは、ＩＰ処理回路８２−６、イーサネット処理回路８２−７、通信回線８３、イーサネット処理回路８１−７、ＩＰ処理回路８１−６経由でＴＣＰ処理回路８１−５に転送され（ステップ４０６）、ＴＣＰ処理回路８１−５はＴＣＰ  ＡＣＫ受信完了信号をＲＤＭＡ処理回路８１−４に送付する（ステップ４１１）。
【００９４】
ＴＣＰ  ＡＣＫにもポート番号は格納されている。そこで、ＲＤＭＡ処理回路８１−４はポート番号テーブル８１−１１を参照し、該ポート番号のサービス・アプリケーションのライト保証レベル情報を得る。その結果が‘０’ならば、ＲＤＭＡ処理回路３１−４は、該ＴＣＰ  ＡＣＫ受信完了信号をライト完了通知トリガとして、ライト完了通知をデバイスドライバ３１−１０に通知し（ＣＱにライト完了通知を書き込む）、一方‘１’ならば、ＲＤＭＡ処理回路３１−４は、デバイスドライバ３１−１０には何も通知せず、ＲＤＭＡ  Ｓｅｎｄによるライト完了通知を待つ。本図では‘０’であるため、ＲＤＭＡ処理回路８１−４は、該ＴＣＰ  ＡＣＫ受信完了信号をライト完了通知トリガとして、ライト完了通知をデバイスドライバ８１−１０に通知し（ＣＱにライト完了通知を書き込む）、デバイスドライバ８１−１０からＭＰＩ８１−９、アプリケーションプログラム８１−８にライト完了が通知されて（ステップ４１２）、アプリケーションプログラム８１−８は正しくＲＤＭＡ  Ｗｒｉｔｅ完了したものと認識する。
【００９５】
なお、ＴＣＰ処理回路８１−５は、ＴＣＰ  ＡＣＫが何れのＴＣＰセグメントのＡＣＫかをＴＣＰセグメント内のシーケンス番号から認識しており、また、ＲＤＭＡ処理回路８１−４においてＲＤＭＡ  ＷｒｉｔｅメッセージとＴＣＰセグメントの関連付けを管理して、何れのＲＤＭＡ  Ｗｒｉｔｅメッセージがライト完了したのかを判定可能である。
【００９６】
図９は、図８の第３の実施形態における、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行う場合の動作シーケンス図である。
【００９７】
本実施形態は、図８の実施形態と同様に、ＩＰアドレスとサービス・アプリケーション種別を示すポート番号を用いて、データ送信側コンピュータ装置別にポート番号毎にライト保証レベルを設定する例であり、アプリケーションがＴＣＰ  ＡＣＫよりも確実な手段として、データ受信側コンピュータ装置のホストメモリにまで確実にライトされたことの確認を要求する場合である。
【００９８】
コンピュータ装置９１は、図８のコンピュータ装置８１とは、アプリケーションプログラム９１−８が、ＲＤＭＡ  Ｗｒｉｔｅ時にコンピュータ装置８２のホストメモリ８２−３まで確実に書き込まれたことのデータ確認を要求する、確実性を要求するアプリケーションである点が、異なる。なお、コンピュータ装置８２と通信回線８３は、図８の実施形態と同じである。コンピュータ装置９１のチップセット回路８１−２、ホストメモリ８１−３、ＲＤＭＡ処理回路８１−４、ＴＣＰ処理回路８１−５、ＩＰ処理回路８１−６、イーサネット処理回路８１−７、ＭＰＩ８１−９、デバイスドライバ８１−１０、ポート番号テーブル８１−１１は、図８コンピュータ装置８１の同じ参照番号のものと同じである。ＩＰ・ポート番号テーブル８２−１１には、データ送信側コンピュータ装置を示すＩＰアドレス別に、サービス・アプリケーション種別を示すポート番号とそれに対するライト保証レベル（‘０’／‘１’）を設定しておく。ポート番号テーブル８１−１１にもポート番号とそれに対するライト保証レベル（‘０’／‘１’）を設定しておく。そして、ポート番号テーブル８１−１１とＩＰ・ポート番号テーブル８２−１１では、同一ポート番号のライト保証レベル設定は一致させておく。本図では、アプリケーションプログラム９１−８の出力メッセージは、ＲＤＭＡ  Ｗｒｉｔｅ時のデータ転送確認手段として、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行うものとする。その出力メッセージのポート番号は、ポート番号テーブル８１−１１ではライト保証レベル＝‘１’（第１のレベル）のものとする。
【００９９】
上述のコンピュータ装置９１と８２の間で、ホストメモリ８１−３の指定アドレスの内容を、ＲＤＭＡ  Ｗｒｉｔｅによりホストメモリ８２−３の指定アドレスにコピーするものとする。アプリケーションプログラム９１−８から、ホストメモリ８１−３の任意領域に格納されたデータをコンピュータ装置８２に対してライトする処理要求が発生し、ＴＣＰ処理回路８２−５でＴＣＰセグメントを受信するまでの動作（ステップ４０１から４０５）は、図８の場合と全く同じである。ＴＣＰセグメントはＴＣＰ処理回路８２−５に送られて、ＲＤＭＡメッセージに戻される。その際、ＴＣＰセグメントが正しく受信できているか調べ、正常に受信できているならば、ＴＣＰ処理回路８２−５からコンピュータ装置８１に該ＴＣＰセグメントに対するＴＣＰ  ＡＣＫを返送する（ステップ４０６）。あわせて該ＴＣＰセグメントに格納されたサービス・アプリケーション種別を示すポート番号を読み出し、ＩＰ処理回路８２−６で読み出したＩＰアドレスとから、ＩＰ・ポート番号テーブル８２−１１を参照して、該ポート番号が要求するライト保証レベルを得る（ステップ４０７）。ここでは該ポート番号はデータライト保証レベルとしてホストメモリのデータ確認まで要求するものであり、予め設定した値‘１’がＩＰ・ポート番号テーブル８２−１１から読み出される。
【０１００】
ＲＤＭＡメッセージはＲＤＭＡ処理回路８２−４に転送される。また、同時にＩＰ処理回路８２−６からライト保証レベル信号も並走してＲＤＭＡ処理回路８２−４に入力される（ステップ４０８）。ＲＤＭＡ処理回路８２−４は入力メッセージがＲＤＭＡ  Ｗｒｉｔｅならば、該メッセージ中のデータをチップセット回路８２−２経由でホストメモリ８２−３に書き込む（ステップ４０９）。なお、ホストメモリ８２−３へのライトアドレス情報は該ＲＤＭＡ  Ｗｒｉｔｅメッセージに格納されており、これは予め互いのＭＰＩ間で情報交換を行い、ＲＤＭＡ処理回路８１−４はＭＰＩ８１−９から通知されている。該ＭＰＩのアドレス情報交換方法はＭＰＩ毎に決まるものであり、本発明とは直接、関係しないためここではその説明は省略する。このように、ＲＤＭＡ処理回路８１−４がデバイスドライバ８１−１０からＲＤＭＡ  Ｗｒｉｔｅ要求を受信した以降、マイクロプロセッサ８１−１、８２−１のどちらも使用せずホストメモリ８１−３の内容を８２−３にコピーする。ホストメモリ８２−３へのデータライト終了後、ＲＤＭＡ処理回路８２−４はチップセット回路８２−２、デバイスドライバ８２−１０およびＭＰＩ８２−９経由で、アプリケーションプログラム８２−８にデータ引取り要求を発出し（ステップ４１０）、アプリケーションプログラム８２−８はデータコピーされたことを認識し、該データを読み出して利用することが可能になる。
【０１０１】
ＲＤＭＡ処理回路８２−４は、デバイスドライバ８２−１０に対しデータ引取り要求を発出する際に、あわせて該データのライト保証レベル信号と、ＲＤＭＡ  Ｗｒｉｔｅメッセージのメッセージ番号ＭＳＮも通知する。ここではライト保証レベル＝‘１’（第１のレベル）であるので、デバイスドライバ８２−１０は該ライトされたデータの正常性確認をＣＲＣチェックなどから実施し、該データ確認結果をチップセット回路８２−２経由でＲＤＭＡ処理回路８２−４に通知する。その際、デバイスドライバ８２−１０はデータ確認したメッセージのＭＳＮもあわせてＲＤＭＡ処理回路８２−４に通知する（ステップ４１４）。ＲＤＭＡ処理回路８２−４はＲＤＭＡ  Ｓｅｎｄメッセージを用いて、該データ確認結果（ライト完了通知）とＭＳＮを、ＩＰ処理回路８２−６、イーサネット処理回路８２−７、通信回線８３、イーサネット処理回路８１−７、ＩＰ処理回路８１−６、ＴＣＰ処理回路８１−５経由でＲＤＭＡ処理回路８１−４に送付する（ステップ４１５）。
【０１０２】
なお、ＴＣＰ処理回路８２−５から発出されたＴＣＰ  ＡＣＫは、ＩＰ処理回路８２−６、イーサネット処理回路８２−７、通信回線８３、イーサネット処理回路８１−７、ＩＰ処理回路８１−６経由でＴＣＰ処理回路８１−５に転送され（ステップ４０６、４０７）、ＴＣＰ処理回路８１−５はＴＣＰ  ＡＣＫ受信完了信号をＲＤＭＡ処理回路８１−４に送付する（ステップ４１３）。
【０１０３】
ＴＣＰ  ＡＣＫにもポート番号は格納されている。そこで、ＲＤＭＡ処理回路８１−４はポート番号テーブル８１−１１を参照し、該ポート番号のサービス・アプリケーションのライト保証レベル情報を得る。その結果が‘０’ならば、ＲＤＭＡ処理回路３１−４は、該ＴＣＰ  ＡＣＫ受信完了信号をライト完了通知トリガとして、ライト完了通知をデバイスドライバ３１−１０に通知し（ＣＱにライト完了通知を書き込む）、一方‘１’ならば、ＲＤＭＡ処理回路３１−４は、デバイスドライバ３１−１０には何も通知せず、ＲＤＭＡ  Ｓｅｎｄによるライト完了通知を待つ。本図では‘１’であるため、ＲＤＭＡ処理回路８１−４は、ＲＤＭＡ処理回路８１−４には何も通知せず、ＲＤＭＡ  Ｓｅｎｄによるライト完了通知の転送を待つ。
【０１０４】
ＲＤＭＡ処理回路８１−４は、該ＴＣＰ  ＡＣＫ受信完了信号のほかに、ＲＤＭＡ  Ｓｅｎｄメッセージによるライト完了通知を受信すると、該ＲＤＭＡ  Ｓｅｎｄメッセージ中のメッセージ番号ＭＳＮを読み出し、該ＭＳＮのライト保証レベルを、ポート番号テーブル８１−１１を参照して得、その結果が‘１’であることを確認し、つまり、ホストメモリのデータ確認を要求するサービス・アプリケーションにおいて、その正常性を示すＲＤＭＡ  Ｓｅｎｄによるライト完了通知を受け取ったと判断することによって、該ＭＳＮを持つＲＤＭＡ  Ｗｒｉｔｅメッセージのライト完了通知をデバイスドライバ８１−１０に通知し、デバイスドライバ８１−１０からＭＰＩ８１−９、アプリケーションプログラム９１−８にライト完了は通知されて（ステップ４１６）、アプリケーションプログラム９１−８は正しくＲＤＭＡ  Ｗｒｉｔｅ完了したものと認識する。
【０１０５】
本例は、デバイスドライバ８２−１０におけるデータ確認時間やＲＤＭＡ  Ｓｅｎｄ時間が必要なため、アプリケーションプログラム９１−８がライト完了を得るまで図８の場合よりも時間がかかるほか、デバイスドライバ８２−１０でのデータ確認により、図８の場合よりもマイクロプロセッサ８２−１の負荷が増大する。しかしながら、コンピュータ装置内部で雑音等によってデータ誤りが発生し、ホストメモリに誤ったデータが書き込まれる可能性は、零ではない。したがって、ＴＣＰ処理回路からホストメモリまでの区間でデータが誤り、ホストメモリにも誤ったデータが書き込まれる可能性も零ではない。そのため、金融系処理などの確実性を必要とする用途では、確実にホストメモリに正しくデータが書き込まれたことを保証したいという要求も存在する。その点、本例は、みなし方式ではなく実際にホストメモリ８２−３までデータが正しく書き込まれたことを確認する方式であり、金融系メッセージのように、より確実性を求める場合に適する。
【０１０６】
なお、コンピュータ装置内の各回路は、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。
【図面の簡単な説明】
【０１０７】
【図１】本発明の第１の実施形態による、ＲＤＭＡ  Ｗｒｉｔｅのライト保証レベルの選択機能を有するコンピュータシステムの構成を示すブロック図、およびそのＴＣＰ  ＡＣＫによるライト完了確認を行う場合の動作シーケンス図である。
【図２】図１の実施形態における、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行う場合の動作シーケンス図である。
【図３】本発明の第２の実施形態による、ＲＤＭＡ  Ｗｒｉｔｅのライト保証レベルの選択機能を有するコンピュータシステムの構成を示すブロック図、およびそのＴＣＰ  ＡＣＫによるライト完了確認を行う場合の動作シーケンス図である。
【図４】図３の実施形態における、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行う場合の動作シーケンス図である。
【図５】ｉＷＡＲＰを適用した従来のコンピュータシステムの一例を示すブロック図、およびそのＲＤＭＡ  Ｗｒｉｔｅシーケンスを示す図である。
【図６】ｉＷＡＲＰを適用した従来のコンピュータシステムの他の一例を示すブロック図、およびそのＲＤＭＡ  Ｗｒｉｔｅシーケンスを示す図である。
【図７】ｉＷＡＲＰを適用した従来のコンピュータシステムにおいて、３台のコンピュータ装置によるＲＤＭＡ  Ｗｒｉｔｅを行う場合のブロック図である。
【図８】本発明の第３の実施形態による、ＲＤＭＡ  Ｗｒｉｔｅのライト保証レベルの選択機能を有するコンピュータシステムの構成を示すブロック図、およびそのＴＣＰ  ＡＣＫによるライト完了確認を行う場合の動作シーケンス図である。
【図９】図８の実施形態における、ホストメモリ確認後のＲＤＭＡ  Ｓｅｎｄによりライト完了確認を行う場合の動作シーケンス図である。
【図１０】図８および図９の実施形態における、ＩＰ・ポート番号テーブルの構成例の説明図である
【図１１】従来のＴＣＰセグメントのフォーマットを説明する図である
【図１２】従来のＲＤＭＡ  Ｗｒｉｔｅメッセージのフォーマットを説明する図である。
【符号の説明】
【０１０８】
１１、２１、３１、４１、８１、９１  ＲＤＭＡ  Ｗｒｉｔｅのデータ送信側コンピュータ装置
１２、３２、８２、９２  ＲＤＭＡ  Ｗｒｉｔｅのデータ受信側コンピュータ装置
１１−１、１２−１、２１−１、３１−１、３２−１、４１−１、８１−１、８２−１、９１−１  マイクロプロセッサ
１１−２、１２−２、２１−２、３１−２、３２−２、８１−２、８２−２  チップセット回路
１１−３、１２−３、２１−３、３１−３、３２−３、８１−３、８２−３  ホストメモリ
１１−４、１２−４、２１−４、３１−４、３２−４、８１−４、８２−４  ＲＤＭＡ処理回路
１１−５、１２−５、２１−５、３１−５、３２−５、８１−５、８２−５  ＴＣＰ処理回路
１１−６、１２−６、２１−６、３１−６、３２−６、８１−６、８２−６  ＩＰ処理回路
１１−７、１２−７、２１−７、３１−７、３２−７、８１−７、８２−７  イーサネット処理回路
１１−８、１２−８、２１−８、３１−８、３２−８、４１−８、８１−８、８２−８、９１−８  アプリケーションプログラム
１１−９、１２−９、２１−９、３１−９、３２−９、８１−９、８２−９  ＭＰＩ
１１−１０、１２−１０、２１−１０、３１−１０、３２−１０、８１−１０、８２−１０  デバイスドライバ
１２−１１  ＩＰテーブル
３１−１１、８１−１１  ポート番号テーブル
３２−１１  ポート番号テーブル
１３、３３、８３  通信回線
５１、６１  ＲＤＭＡ  Ｗｒｉｔｅのデータ送信側コンピュータ装置
５２、６２  ＲＤＭＡ  Ｗｒｉｔｅのデータ受信側コンピュータ装置
５１−１、５２−１、６１−１、６２−１、７１−１、７２−１、７３−１  マイクロプロセッサ
５１−２、５２−２、６１−２、６２−２、７１−２、７２−２、７３−２  チップセット回路
５１−３、５２−３、６１−３、６２−３、７１−３、７２−３、７３−３  ホストメモリ
５１−４、５２−４、６１−４、６２−４、７１−４、７２−４、７３−４  ＲＤＭＡ処理回路
５１−５、５２−５、６１−５、６２−５、７１−５、７２−５、７３−５  ＴＣＰ処理回路
５１−６、５２−６、６１−６、６２−６、７１−６、７２−６、７３−６  ＩＰ処理回路
５１−７、５２−７、６１−７、６２−７、７１−７、７２−７、７３−７  イーサネット処理回路
５１−８、５２−８、６１−８、６２−８、７１−８、７２−８、７３−８  アプリケーションプログラム
５１−９、５２−９、６１−９、６２−９、７１−９、７２−９、７３−９  ＭＰＩ
５１−１０、５２−１０、６１−１０、６２−１０、７１−１０、７２−１０、７３−１０  デバイスドライバ
５３、６３、７３  通信回線
８２−１１  ＩＰ・ポート番号テーブル
１０１−１１６、２０１−２１６、３０１−３１２、４０１−４１６  ステップ
【図１】
2007304786.tif 000003
【図２】
2007304786.tif 000004
【図３】
2007304786.tif 000005
【図４】
2007304786.tif 000006
【図５】
2007304786.tif 000007
【図６】
2007304786.tif 000008
【図７】
2007304786.tif 000009
【図８】
2007304786.tif 000010
【図９】
2007304786.tif 000011
【図１０】
2007304786.tif 000012
【図１１】
2007304786.tif 000013
【図１２】
2007304786.tif 000014