(57)【要約】  本発明の実施形態は、書込み要求処理方法、プロセッサおよびコンピュータを提供する。第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第1のコンピュータは第1のプロセッサを含み、第1のプロセッサは、システムバスを使用することによって、第2のコンピュータの第2のプロセッサに接続され、第1のコンピュータは第1のメモリアドレス空間を含み、第2のコンピュータの第2のメモリアドレス空間は、第1のメモリアドレス空間のミラーアドレス空間であり、第1のプロセッサは、第1のメモリアドレス空間内に書き込まれるデータを、システムバスを使用することによって、第2のメモリアドレス空間に写し、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善することができる。
2018503156.tif 000002
【特許請求の範囲】
【請求項１】
第1のコンピュータに適用される書込み要求処理方法であって、前記第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは第1のプロセッサを含み、前記第2のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記方法は、
前記第1のプロセッサによって、書込み要求を受信するステップであって、前記書込み要求は、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、ステップと、
前記第1のプロセッサによって、前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定するステップと、
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信し、その結果、前記第2のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、ステップとを含む、方法。
【請求項２】
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信する前記ステップは、
前記第1のプロセッサによって、前記書込み要求に従って、ミラーパケットを生成するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップと、
前記第1のプロセッサによって、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するステップと、
前記第1のプロセッサの前記非透過ブリッジによって、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得するステップと、
前記第1のプロセッサの前記非透過ブリッジによって、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサは、前記第2のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、ステップとを含む、請求項1に記載の方法。
【請求項３】
前記方法は、
前記第1のプロセッサの前記非透過ブリッジが、事前に設定された時間内に、前記第2のプロセッサからミラー完了パケットを受信した後、前記第1のプロセッサの前記非透過ブリッジによって、前記ミラー完了パケットを前記第1のプロセッサに送信するステップであって、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、ステップと、
前記第1のプロセッサによって、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するステップとをさらに含む、請求項2に記載の方法。
【請求項４】
前記方法は、
前記第1のプロセッサの前記非透過ブリッジが、前記事前に設定された時間内に、前記第2のプロセッサから前記ミラー完了パケットを受信しないとき、前記第1のプロセッサの前記非透過ブリッジによって、ミラータイムアウトパケットを前記第1のプロセッサに送信するステップと、
前記第1のプロセッサによって、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するステップとをさらに含む、請求項3に記載の方法。
【請求項５】
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信する前記ステップは、
前記第1のプロセッサによって、前記書込み要求に従って、ミラーパケットを生成するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップと、
前記第1のプロセッサによって、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するステップであって、前記第1のプロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記第2のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、ステップとを含む、請求項1に記載の方法。
【請求項６】
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込む前記ステップは、
前記第1のプロセッサによって、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成するステップと、
前記第1のプロセッサによって、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むステップとを含む、請求項1乃至5のうちのいずれか1項に記載の方法。
【請求項７】
前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項1乃至6のうちのいずれか1項に記載の方法。
【請求項８】
書込み要求処理方法であって、前記方法は、第1のコンピュータに接続される第2のコンピュータに適用され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは第1のプロセッサを含み、前記第2のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記方法は、
前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信するステップであって、前記ターゲットデータは、前記第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、ステップと、
前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むステップとを含む、方法。
【請求項９】
前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信する前記ステップは、
前記第2のプロセッサの非透過ブリッジによって、前記システムバスを使用することによって、前記第1のプロセッサからミラーパケットを受信するステップであって、前記ミラーパケットは、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ステップを含み、且つ、
前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込む前記ステップは、
前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換するステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むステップとを含む、請求項8に記載の方法。
【請求項１０】
前記方法は、
前記第2のプロセッサの前記非透過ブリッジによって、前記メモリコントローラから、前記書込みパケットに対応する書込み完了パケットを受信するステップであって、前記書込み完了パケットは前記ミラーアドレスを含む、ステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換するステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットに対応するミラー完了パケットを、前記第1のプロセッサに送信するステップであって、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、ステップとをさらに含む、請求項9に記載の方法。
【請求項１１】
前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信する前記ステップは、
前記第2のプロセッサの非透過ブリッジによって、前記システムバスを使用することによって、前記第1のプロセッサからミラーパケットを受信するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップを含み、且つ、
前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込む前記ステップは、
前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換するステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むステップとを含む、請求項8に記載の方法。
【請求項１２】
前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項8乃至11のうちのいずれか1項に記載の方法。
【請求項１３】
プロセッサであって、前記プロセッサは第1のコンピュータ内に配置され、前記第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第2のコンピュータは別のプロセッサを含み、前記プロセッサと前記別のプロセッサの両方はシステムバスインタフェースを含み、前記プロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記別のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、前記プロセッサは、コントローラおよび内部バスをさらに含み、前記コントローラは、前記内部バスを使用することによって、前記プロセッサの前記システムバスインタフェースに接続され、且つ、
前記コントローラは、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、書込み要求を受信し、前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定し、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記別のプロセッサに送信するように構成され、その結果、前記別のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、プロセッサ。
【請求項１４】
前記プロセッサは、非透過ブリッジをさらに含み、前記非透過ブリッジは前記システムバスインタフェースに接続され、前記非透過ブリッジは、前記内部バスを使用することによって、前記コントローラに接続され、
前記コントローラは、具体的には、前記書込み要求に従って、ミラーパケットを生成するように構成され、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含み、
前記非透過ブリッジは、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記別のプロセッサの非透過ブリッジに送信するように構成され、その結果、前記別のプロセッサは、前記別のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項13に記載のプロセッサ。
【請求項１５】
前記非透過ブリッジは、事前に設定された時間内に、前記別のプロセッサからミラー完了パケットを受信した後、前記ミラー完了パケットを前記コントローラに送信するようにさらに構成され、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用され、且つ、
前記コントローラは、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成される、請求項14に記載のプロセッサ。
【請求項１６】
前記非透過ブリッジは、前記ミラー完了パケットが、前記事前に設定された時間内に、前記別のプロセッサから受信されないとき、ミラータイムアウトパケットを前記コントローラに送信するようにさらに構成され、且つ、
前記コントローラは、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するようにさらに構成される、請求項15に記載のプロセッサ。
【請求項１７】
前記コントローラは、具体的には、前記書込み要求に従って、ミラーパケットを生成し、前記ミラーパケットを、前記プロセッサの非透過ブリッジに送信するように構成され、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含み、前記プロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記別のプロセッサの非透過ブリッジに送信し、その結果、前記別のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記別のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項13に記載のプロセッサ。
【請求項１８】
前記コントローラは、具体的には、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成し、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むように構成される、請求項13乃至17のうちのいずれか1項に記載のプロセッサ。
【請求項１９】
前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項13乃至18のうちのいずれか1項に記載のプロセッサ。
【請求項２０】
プロセッサであって、前記プロセッサは第1のコンピュータに接続される第2のコンピュータ内に配置され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは別のプロセッサを含み、前記別のプロセッサと前記プロセッサの両方はシステムバスインタフェースを含み、前記別のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記プロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、前記プロセッサは、コントローラ、非透過ブリッジおよび内部バスを含み、前記非透過ブリッジは、前記プロセッサの前記システムバスインタフェースに接続され、前記コントローラは、前記内部バスを使用することによって、前記非透過ブリッジに接続され、且つ、
前記非透過ブリッジは、前記システムバスを使用することによって、前記別のプロセッサからターゲットデータを受信し、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むように構成され、前記ターゲットデータは、前記別のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、プロセッサ。
【請求項２１】
前記非透過ブリッジは、具体的には、前記システムバスを使用することによって、前記別のプロセッサから、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信し、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項20に記載のプロセッサ。
【請求項２２】
前記非透過ブリッジは、前記メモリコントローラから、前記書込みパケットに対応する、前記ミラーアドレスを含む書込み完了パケットを受信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換し、前記ミラーパケットに対応するミラー完了パケットを、前記別のプロセッサに送信するようにさらに構成され、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項21に記載のプロセッサ。
【請求項２３】
前記非透過ブリッジは、具体的には、前記システムバスを使用することによって、前記別のプロセッサから、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを受信し、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項20に記載のプロセッサ。
【請求項２４】
前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項20乃至23のうちのいずれか1項に記載のプロセッサ。
【請求項２５】
コンピュータであって、前記コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、前記コンピュータおよび前記別のコンピュータ上でそれぞれ動作し、前記コンピュータは第1のプロセッサを含み、前記別のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記別のコンピュータの第2のメモリアドレス空間は、前記コンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記コンピュータは、
書込み要求を受信するように構成される受信モジュールであって、前記書込み要求は、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、受信モジュールと、
前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定するように構成される決定モジュールと、
前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信するように構成され、その結果、前記第2のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、ミラーリングモジュールとを含む、コンピュータ。
【請求項２６】
前記ミラーリングモジュールは、具体的には、前記書込み要求に従って、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを生成し、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信するように構成され、その結果、前記第2のプロセッサは、前記第2のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項25に記載のコンピュータ。
【請求項２７】
前記ミラーリングモジュールは、前記第1のプロセッサの前記非透過ブリッジが、事前に設定された時間内に、前記第2のプロセッサからミラー完了パケットを受信した後、前記ミラー完了パケットを前記第1のプロセッサに送信し、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成され、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項26に記載のコンピュータ。
【請求項２８】
前記ミラーリングモジュールは、前記第1のプロセッサの前記非透過ブリッジが、前記事前に設定された時間内に、前記第2のプロセッサから前記ミラー完了パケットを受信しないとき、ミラータイムアウトパケットを前記第1のプロセッサに送信し、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するようにさらに構成される、請求項27に記載のコンピュータ。
【請求項２９】
前記ミラーリングモジュールは、前記書込み要求に従って、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを生成し、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するようにさらに構成され、前記第1のプロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記第2のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項25に記載のコンピュータ。
【請求項３０】
前記ミラーリングモジュールは、具体的には、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成し、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むように構成される、請求項25乃至29のうちのいずれか1項に記載のコンピュータ。
【請求項３１】
前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項25乃至30のうちのいずれか1項に記載のコンピュータ。
【請求項３２】
コンピュータであって、前記コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、前記別のコンピュータおよび前記コンピュータ上でそれぞれ動作し、前記別のコンピュータは第1のプロセッサを含み、前記コンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記コンピュータの第2のメモリアドレス空間は、前記別のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記コンピュータは、
前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信するように構成されるミラーリングモジュールであって、前記ターゲットデータは、前記第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、ミラーリングモジュールと、
前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むように構成される書込み操作モジュールとを含む、コンピュータ。
【請求項３３】
前記ミラーリングモジュールは、具体的には、前記システムバスを使用することによって、前記第1のプロセッサから、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信するように構成され、且つ、前記書込み操作モジュールは、具体的には、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、前記コンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項32に記載のコンピュータ。
【請求項３４】
前記ミラーリングモジュールは、前記メモリコントローラから、前記書込みパケットに対応する、前記ミラーアドレスを含む、書込み完了パケットを受信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換し、前記ミラーパケットに対応するミラー完了パケットを、前記第1のプロセッサに送信するようにさらに構成され、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項33に記載のコンピュータ。
【請求項３５】
前記ミラーリングモジュールは、具体的には、前記システムバスを使用することによって、前記第1のプロセッサから、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを受信するように構成され、且つ、前記書込み操作モジュールは、具体的には、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項32に記載のコンピュータ。
【請求項３６】
前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項32乃至35のうちのいずれか1項に記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はコンピュータの分野に関し、より詳細には、書込み要求処理方法、プロセッサおよびコンピュータに関する。
【背景技術】
【０００２】
クラスタコンピュータシステムは、一般に、複数のコンピュータから成り、それぞれのオペレーティングシステムは、複数のコンピュータ上でそれぞれ動作し、複数のコンピュータは独立して機能することができる。複数のコンピュータは、イーサネット（登録商標）バス、周辺機器コンポーネント相互接続エクスプレス（Peripheral Component Interface Express, PCIe）バスまたはインフィニバンドバス等の入力/出力（Input Output, IO）バスを使用することによって相互接続され、このことは、コンピュータ間の通信およびデータ交換を実施することができる。
【０００３】
クラスタコンピュータシステムは、ハイエンドストレージの分野において広く使用される。例えば、各ハイエンドストレージデバイスについて、デュアルコントローラまたはマルチコントローラストレージエリアネットワーク（Storage Area Network, SAN）システムが一般に使用され、且つ、デュアルコントローラまたはマルチコントローラSANシステムにおける各コントローラは、独立したコンピュータとしてみなされることができる。それぞれのオペレーティングシステムは各コントローラ上で動作し、且つ、それぞれのメモリは各コントローラ上に配置される。コントローラは、IOバスを使用することによって相互接続され、クラスタコンピュータシステムを形成している。ハイエンドストレージデバイスにおいて使用されるデュアルコントローラまたはマルチコントローラSANシステムは、データ記憶の信頼性を保証することができる。図1を参照して、以下では、例としてPCIe相互接続に基づくデュアルコントローラSANシステムを使用することによって、詳細な説明を提供する。
【０００４】
図1に示されるように、デュアルコントローラSANシステムは、コントローラAおよびコントローラBを含み、ここで、コントローラAとコントローラBの両方は、CPU、DDRおよびフロントエンドバスを含み、且つ、それぞれのオペレーティングシステムは、コントローラAおよびコントローラB上でそれぞれ動作する。コントローラAは、PCIeバスを使用することによって、コントローラBに接続され、且つ、PCIe非透過ブリッジ（Non-Transparent Bridge, NTB）を使用することによって、2つのコンピュータ間でドメインアドレス変換およびデータ交換が実施される。
【０００５】
コントローラAが、フロントエンドバスを使用することによって、データを記憶するために使用される外部書込み要求（書込みIOまたは書込みIO要求と呼ばれてもよい）を受信したとき、コントローラAのCPU0は、最初に、DDR0内にデータを書き込む。次いで、CPU0は、DDR0からデータを読み出し、データを、PCIeフォーマットを満たすデータにカプセル化し、PCIeバスを使用することによって形成される、2つのコントローラ間のミラーチャネルを使用することによって、コントローラBに、カプセル化によって取得されたデータを送信する。コントローラBのCPU1は、デカプセル化によってデータを取得し、次いで、データをDDR1内に書き込む。
【０００６】
前述のことは、デュアルコントローラSANシステムにおける、ミラーリング操作プロセス全体である。このようなミラーリング操作は、コントローラBにおいて、コントローラAにおけるデータをバックアップすることと同等である。致命的なエラーがコントローラA上で発生し、且つ、故障が引き起こされたとき、コントローラBは依然として正常に機能することができ、且つ、コントローラAのメモリにおけるデータが、コントローラAの故障によって失われることが回避される。この場合、システム全体は、依然として、正常に動作且つ機能することができ、ストレージデバイスの信頼性を改善する。しかしながら、上述のミラーリングプロセスから、ミラーリング操作全体の間に、直接メモリアクセス（Directional Memory Access, DMA）操作は2度実行される必要がある（1回目は、DDR0からデータを読み出し、2回目は、データをDDR1内に書き込む）ことがわかる。加えて、PCIe（イーサネット（登録商標）、インフィニバンド等）ネットワークプロトコル下で相互接続されるデバイス間のIOアクセスは、大量のソフトウェアプロトコルオーバヘッド（例えば、データカプセル化およびデカプセル化）を必ずもたらし、このことは、高いミラーリング操作のレイテンシおよびシステムの比較的乏しい読出し/書込み操作毎秒（Input/Output Operations Per Second, IOPS）性能を引き起こす。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明の実施形態は、書込み要求処理方法および装置、およびコンピュータを提供し、これらは、クラスタコンピュータシステムにおけるデータミラーリング操作のレイテンシを低減するとともに、システムのIOPSを改善することができる。
【０００８】
第1の態様によると、書込み要求処理方法が提供され、ここで、方法は、第1のコンピュータに適用され、第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第1のコンピュータは第1のプロセッサを含み、第2のコンピュータは第2のプロセッサを含み、第1のプロセッサと第2のプロセッサの両方はシステムバスインタフェースを含み、第1のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、第2のプロセッサのシステムバスインタフェースに接続され、且つ、方法は、第1のプロセッサによって、書込み要求を受信するステップであって、ここで、書込み要求は、書き込まれるべきターゲットデータおよびターゲットデータの書込みアドレスを含む、ステップと、第1のプロセッサによって、書込みアドレスが第1のメモリアドレス空間内に配置されていると決定するステップと、第1のプロセッサによって、書込み要求内のターゲットデータを、第1のメモリアドレス空間内に書き込み、且つ、書込み要求内のターゲットデータを、システムバスを使用することによって、第2のプロセッサに送信するステップとを含む。
【０００９】
2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００１０】
第1の態様を参照すると、第1の態様の実施方式では、第1のプロセッサによって、書込み要求内のターゲットデータを、システムバスを使用することによって、第2のプロセッサに送信するステップは、第1のプロセッサによって、書込み要求に従って、ミラーパケットを生成するステップであって、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含む、ステップと、第1のプロセッサによって、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信するステップと、第1のプロセッサの非透過ブリッジによって、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係に従って、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得するステップと、第1のプロセッサの非透過ブリッジによって、更新されたミラーパケットを、システムバスを使用することによって、第2のプロセッサの非透過ブリッジに送信し、その結果、第2のプロセッサは、第2のプロセッサの非透過ブリッジによって受信された、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む、ステップとを含む。
【００１１】
非透過ブリッジは、ミラーパケット内のアドレスを変換するために使用され、このことは、プロセッサ内部の内部コンポーネントの実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００１２】
第1の態様または第1の態様の前述の実施方式のうちのいずれか1つを参照すると、第1の態様の別の実施方式では、方法は、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信した後、第1のプロセッサの非透過ブリッジによって、ミラー完了パケットを第1のプロセッサに送信するステップであって、ここで、ミラー完了パケットはミラーパケットに対応しているとともに、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される、ステップと、第1のプロセッサによって、ミラー完了パケットに従って、ターゲットデータのためのミラーリング操作の成功を確認し、且つ、ミラーリング操作に対応するミラートランザクションを終了するステップとをさらに含む。
【００１３】
第1の態様または第1の態様の前述の実施方式のうちのいずれか1つを参照すると、第1の態様の別の実施方式では、方法は、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信しないとき、第1のプロセッサの非透過ブリッジによって、ミラータイムアウトパケットを第1のプロセッサに送信するステップと、第1のプロセッサによって、ミラータイムアウトパケットに従って、ミラーリング操作の失敗を確認し、且つ、ミラートランザクションを終了するステップとをさらに含む。
【００１４】
ミラートランザクションまたはミラー関連パケットを処理する完全な手順が設計され、その結果、ミラートランザクションは、ミラーリング操作の成功または失敗に関わらず終了することができ、このことは、システムバス上での操作中にエラーによって引き起こされる故障の問題を回避するとともにシステムの堅牢性を高める。
【００１５】
第1の態様または第1の態様の前述の実施方式のうちのいずれか1つを参照すると、第1の態様の別の実施方式では、第1のプロセッサによって、書込み要求内のターゲットデータを、システムバスを使用することによって、第2のプロセッサに送信するステップは、第1のプロセッサによって、書込み要求に従って、ミラーパケットを生成するステップであって、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含む、ステップと、第1のプロセッサによって、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信するステップであって、ここで、第1のプロセッサの非透過ブリッジは、ミラーパケットを、システムバスを使用することによって、第2のプロセッサの非透過ブリッジに送信し、その結果、第2のプロセッサの非透過ブリッジは、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、第2のプロセッサは、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む、ステップとを含む。
【００１６】
非透過ブリッジは、ミラーパケットおよびミラーパケット内のアドレスを変換するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００１７】
第1の態様または第1の態様の前述の実施方式のうちのいずれか1つを参照すると、第1の態様の別の実施方式では、第1のプロセッサによって、書込み要求内のターゲットデータを、第1のメモリアドレス空間内に書き込むステップは、第1のプロセッサによって、書込み要求に従って、ターゲットデータのための書込みパケットを生成するステップと、第1のプロセッサによって、書込みパケットに従って、ターゲットデータを、第1のメモリアドレス空間内の書込みアドレス内に書き込むステップとを含む。
【００１８】
第1の態様または第1の態様の前述の実施方式のうちのいずれか1つを参照すると、第1の態様の別の実施方式では、システムバスは、QPIバスまたはHTバスである。
【００１９】
第1の態様または第1の態様の前述の実施方式のうちのいずれか1つを参照すると、第1の態様の別の実施方式では、第2のコンピュータの第2のメモリアドレス空間は、第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間である。
【００２０】
第1の態様または第1の態様の前述の実施方式のうちのいずれか1つを参照すると、第1の態様の別の実施方式では、第1のプロセッサは、システムバスを使用することによって、書込み要求内のターゲットデータを、第2のプロセッサに送信し、その結果、第2のプロセッサは、ターゲットデータを、第2のメモリアドレス空間内に書き込む。
【００２１】
第2の態様によると、書込み要求処理方法が提供され、ここで、方法は、第1のコンピュータに接続される第2のコンピュータに適用され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第1のコンピュータは第1のプロセッサを含み、第2のコンピュータは第2のプロセッサを含み、第1のプロセッサと第2のプロセッサの両方はシステムバスインタフェースを含み、第1のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、第2のプロセッサのシステムバスインタフェースに接続され、第2のコンピュータの第2のメモリアドレス空間は、第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、方法は、第2のプロセッサによって、システムバスを使用することによって、第1のプロセッサからターゲットデータを受信するステップであって、ここで、ターゲットデータは、第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、ターゲットデータの書込みアドレスは、第1のメモリアドレス空間内に配置される、ステップと、第2のプロセッサによって、ターゲットデータを、第2のメモリアドレス空間内に書き込むステップとを含む。
【００２２】
2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００２３】
第2の態様を参照すると、第2の態様の実施方式では、第2のプロセッサによって、システムバスを使用することによって、第1のプロセッサからターゲットデータを受信するステップは、第2のプロセッサの非透過ブリッジによって、システムバスを使用することによって、第1のプロセッサからミラーパケットを受信するステップであって、ここで、ミラーパケットは、ターゲットデータおよび、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスを含む、ステップを含み、且つ、第2のプロセッサによって、ターゲットデータを、第2のメモリアドレス空間内に書き込むステップは、第2のプロセッサの非透過ブリッジによって、ミラーパケットを、ターゲットデータのための書込みパケットに変換するステップと、第2のプロセッサの非透過ブリッジによって、第2のコンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むステップとを含む。
【００２４】
非透過ブリッジは、パケットタイプまたはフォーマットの変換を完了するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００２５】
第2の態様または第2の態様の前述の実施方式のうちのいずれか1つを参照すると、第2の態様の別の実施方式では、方法は、第2のプロセッサの非透過ブリッジによって、メモリコントローラから、書込みパケットに対応する書込み完了パケットを受信するステップであって、ここで、書込み完了パケットはミラーアドレスを含む、ステップと、第2のプロセッサの非透過ブリッジによって、第1のメモリアドレス空間と第2のメモリアドレス空間との間のマッピング関係に従って、ミラーアドレスを書込みアドレスに変換するステップと、第2のプロセッサの非透過ブリッジによって、ミラーパケットに対応するミラー完了パケットを、第1のプロセッサに送信するステップであって、ここで、ミラー完了パケットは書込みアドレスを含み、且つ、ミラー完了パケットは、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される、ステップとをさらに含む。
【００２６】
第2の態様または第2の態様の前述の実施方式のうちのいずれか1つを参照すると、第2の態様の別の実施方式では、第2のプロセッサによって、システムバスを使用することによって、第1のプロセッサからターゲットデータを受信するステップは、第2のプロセッサの非透過ブリッジによって、システムバスを使用することによって、第1のプロセッサからミラーパケットを受信するステップであって、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含む、ステップを含み、且つ、第2のプロセッサによって、ターゲットデータを、第2のメモリアドレス空間内に書き込むステップは、第2のプロセッサの非透過ブリッジによって、ミラーパケットを、ターゲットデータのための書込みパケットに変換し、且つ、書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換するステップと、第2のプロセッサの非透過ブリッジによって、第2のコンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むステップとを含む。
【００２７】
第2の態様または第2の態様の前述の実施方式のうちのいずれか1つを参照すると、第2の態様の別の実施方式では、システムバスは、QPIバスまたはHTバスである。
【００２８】
第3の態様によると、プロセッサが提供され、ここで、プロセッサは第1のコンピュータ内に配置され、第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第2のコンピュータは別のプロセッサを含み、プロセッサと別のプロセッサの両方はシステムバスインタフェースを含み、プロセッサのシステムバスインタフェースは、システムバスを使用することによって、別のプロセッサのシステムバスインタフェースに接続され、プロセッサは、コントローラおよび内部バスをさらに含み、コントローラは、内部バスを使用することによって、プロセッサのシステムバスインタフェースに接続され、且つ、コントローラは、書き込まれるべきターゲットデータおよびターゲットデータの書込みアドレスを含む、書込み要求を受信し、書込みアドレスが第1のメモリアドレス空間内に配置されていると決定し、書込み要求内のターゲットデータを、第1のメモリアドレス空間内に書き込み、且つ、書込み要求内のターゲットデータを、システムバスを使用することによって、別のプロセッサに送信するように構成される。
【００２９】
2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００３０】
第3の態様を参照すると、第3の態様の実施方式では、プロセッサは、非透過ブリッジをさらに含み、ここで、非透過ブリッジはシステムバスインタフェースに接続され、非透過ブリッジは、内部バスを使用することによって、コントローラに接続され、コントローラは、具体的には、書込み要求に従って、ミラーパケットを生成し、ミラーパケットを非透過ブリッジに送信するように構成され、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含み、非透過ブリッジは、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係に従って、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、更新されたミラーパケットを、システムバスを使用することによって、別のプロセッサの非透過ブリッジに送信するように構成され、その結果、別のプロセッサは、別のプロセッサの非透過ブリッジによって受信された、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【００３１】
非透過ブリッジは、ミラーパケット内のアドレスを変換するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００３２】
第3の態様または第3の態様の前述の実施方式のうちのいずれか1つを参照すると、第3の態様の別の実施方式では、非透過ブリッジは、事前に設定された時間内に、別のプロセッサからミラー完了パケットを受信した後、ミラー完了パケットをコントローラに送信するようにさらに構成され、ここで、ミラー完了パケットはミラーパケットに対応しているとともに、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用され、且つ、コントローラは、ミラー完了パケットに従って、ターゲットデータのためのミラーリング操作の成功を確認し、且つ、ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成される。
【００３３】
第3の態様または第3の態様の前述の実施方式のうちのいずれか1つを参照すると、第3の態様の別の実施方式では、非透過ブリッジは、ミラー完了パケットが、事前に設定された時間内に、別のプロセッサから受信されないとき、ミラータイムアウトパケットを第1のプロセッサに送信するようにさらに構成され、且つ、コントローラは、ミラータイムアウトパケットに従って、ミラーリング操作の失敗を確認し、且つ、ミラートランザクションを終了するようにさらに構成される。
【００３４】
ミラートランザクションまたはミラー関連パケットを処理する完全な手順が設計され、その結果、ミラートランザクションは、ミラーリング操作の成功または失敗に関わらず終了することができ、このことは、システムバス上での操作中にエラーによって引き起こされる故障の問題を回避するとともにシステムの堅牢性を高める。
【００３５】
第3の態様または第3の態様の前述の実施方式のうちのいずれか1つを参照すると、第3の態様の別の実施方式では、コントローラは、具体的には、書込み要求に従って、ミラーパケットを生成し、ミラーパケットを、プロセッサの非透過ブリッジに送信するように構成され、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含み、ここで、プロセッサの非透過ブリッジは、ミラーパケットを、システムバスを使用することによって、別のプロセッサの非透過ブリッジに送信し、その結果、別のプロセッサの非透過ブリッジは、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、別のプロセッサは、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【００３６】
非透過ブリッジは、ミラーパケットおよびミラーパケット内のアドレスを変換するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００３７】
第3の態様または第3の態様の前述の実施方式のうちのいずれか1つを参照すると、第3の態様の別の実施方式では、コントローラは、具体的には、書込み要求に従って、ターゲットデータのための書込みパケットを生成し、書込みパケットに従って、ターゲットデータを、第1のメモリアドレス空間内の書込みアドレス内に書き込むように構成される。
【００３８】
第3の態様または第3の態様の前述の実施方式のうちのいずれか1つを参照すると、第3の態様の別の実施方式では、システムバスは、QPIバスまたはHTバスである。
【００３９】
第3の態様または第3の態様の前述の実施方式のうちのいずれか1つを参照すると、第3の態様の別の実施方式では、第2のコンピュータの第2のメモリアドレス空間は、第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間である。
【００４０】
第3の態様または第3の態様の前述の実施方式のうちのいずれか1つを参照すると、第3の態様の別の実施方式では、プロセッサは、システムバスを使用することによって、書込み要求内のターゲットデータを、別のプロセッサに送信し、その結果、別のプロセッサは、ターゲットデータを、第2のメモリアドレス空間内に書き込む。
【００４１】
第4の態様によると、プロセッサが提供され、ここで、プロセッサは第1のコンピュータに接続される第2のコンピュータ内に配置され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第1のコンピュータは別のプロセッサを含み、別のプロセッサとプロセッサの両方はシステムバスインタフェースを含み、別のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、プロセッサのシステムバスインタフェースに接続され、第2のコンピュータの第2のメモリアドレス空間は、第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、プロセッサは、コントローラ、非透過ブリッジおよび内部バスを含み、非透過ブリッジは、プロセッサのシステムバスインタフェースに接続され、コントローラは、内部バスを使用することによって、非透過ブリッジに接続され、且つ、非透過ブリッジは、システムバスを使用することによって、別のプロセッサからターゲットデータを受信し、ターゲットデータを、第2のメモリアドレス空間内に書き込むように構成され、ここで、ターゲットデータは、別のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、ターゲットデータの書込みアドレスは、第1のメモリアドレス空間内に配置される。
【００４２】
2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００４３】
第4の態様を参照すると、第4の態様の実施方式では、非透過ブリッジは、具体的には、システムバスを使用することによって、別のプロセッサから、ターゲットデータおよび、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信し、ミラーパケットを、ターゲットデータのための書込みパケットに変換し、第2のコンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むように構成される。
【００４４】
非透過ブリッジは、パケットタイプまたはフォーマットの変換を完了するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００４５】
第4の態様または第4の態様の前述の実施方式のうちのいずれか1つを参照すると、第4の態様の別の実施方式では、非透過ブリッジは、メモリコントローラから、書込みパケットに対応する、ミラーアドレスを含む書込み完了パケットを受信し、第1のメモリアドレス空間と第2のメモリアドレス空間との間のマッピング関係に従って、ミラーアドレスを書込みアドレスに変換し、ミラーパケットに対応するミラー完了パケットを、別のプロセッサに送信するようにさらに構成され、ここで、ミラー完了パケットは書込みアドレスを含み、且つ、ミラー完了パケットは、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される。
【００４６】
第4の態様または第4の態様の前述の実施方式のうちのいずれか1つを参照すると、第4の態様の別の実施方式では、非透過ブリッジは、具体的には、システムバスを使用することによって、別のプロセッサから、ターゲットデータおよび書込みアドレスを含む、ミラーパケットを受信し、ミラーパケットを、ターゲットデータのための書込みパケットに変換し、且つ、書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換し、第2のコンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むように構成される。
【００４７】
第4の態様または第4の態様の前述の実施方式のうちのいずれか1つを参照すると、第4の態様の別の実施方式では、システムバスは、QPIバスまたはHTバスである。
【００４８】
第5の態様によると、コンピュータが提供され、ここで、コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、コンピュータおよび別のコンピュータ上でそれぞれ動作し、コンピュータは第1のプロセッサを含み、別のコンピュータは第2のプロセッサを含み、第1のプロセッサと第2のプロセッサの両方はシステムバスインタフェースを含み、第1のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、第2のプロセッサのシステムバスインタフェースに接続され、且つ、コンピュータは、書込み要求を受信するように構成される受信モジュールであって、ここで、書込み要求は、書き込まれるべきターゲットデータおよびターゲットデータの書込みアドレスを含む、受信モジュールと、書込みアドレスが第1のメモリアドレス空間内に配置されていると決定するように構成される決定モジュールと、書込み要求内のターゲットデータを、第1のメモリアドレス空間内に書き込み、且つ、書込み要求内のターゲットデータを、システムバスを使用することによって、第2のプロセッサに送信するように構成される、ミラーリングモジュールとを含む。
【００４９】
2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００５０】
第5の態様を参照すると、第5の態様の実施方式では、ミラーリングモジュールは、具体的には、書込み要求に従って、ターゲットデータおよび書込みアドレスを含む、ミラーパケットを生成し、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信し、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係に従って、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、更新されたミラーパケットを、システムバスを使用することによって、第2のプロセッサの非透過ブリッジに送信するように構成され、その結果、第2のプロセッサは、第2のプロセッサの非透過ブリッジによって受信された、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【００５１】
非透過ブリッジは、ミラーパケット内のアドレスを変換するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００５２】
第5の態様または第5の態様の前述の実施方式のうちのいずれか1つを参照すると、第5の態様の別の実施方式では、ミラーリングモジュールは、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信した後、ミラー完了パケットを第1のプロセッサに送信し、ミラー完了パケットに従って、ターゲットデータのためのミラーリング操作の成功を確認し、且つ、ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成され、ここで、ミラー完了パケットはミラーパケットに対応しているとともに、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される。
【００５３】
第5の態様または第5の態様の前述の実施方式のうちのいずれか1つを参照すると、第5の態様の別の実施方式では、ミラーリングモジュールは、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信しないとき、ミラータイムアウトパケットを第1のプロセッサに送信し、ミラータイムアウトパケットに従って、ミラーリング操作の失敗を確認し、且つ、ミラートランザクションを終了するようにさらに構成される。
【００５４】
ミラートランザクションまたはミラー関連パケットを処理する完全な手順が設計され、その結果、ミラートランザクションは、ミラーリング操作の成功または失敗に関わらず終了することができ、このことは、システムバス上での操作中にエラーによって引き起こされる故障の問題を回避するとともにシステムの堅牢性を高める。
【００５５】
第5の態様または第5の態様の前述の実施方式のうちのいずれか1つを参照すると、第5の態様の別の実施方式では、ミラーリングモジュールは、書込み要求に従って、ターゲットデータおよび書込みアドレスを含む、ミラーパケットを生成し、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信するようにさらに構成され、ここで、第1のプロセッサの非透過ブリッジは、ミラーパケットを、システムバスを使用することによって、第2のプロセッサの非透過ブリッジに送信し、その結果、第2のプロセッサの非透過ブリッジは、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、第2のプロセッサは、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【００５６】
非透過ブリッジは、ミラーパケットおよびミラーパケット内のアドレスを変換するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００５７】
第5の態様または第5の態様の前述の実施方式のうちのいずれか1つを参照すると、第5の態様の別の実施方式では、ミラーリングモジュールは、具体的には、書込み要求に従って、ターゲットデータのための書込みパケットを生成し、書込みパケットに従って、ターゲットデータを、第1のメモリアドレス空間内の書込みアドレス内に書き込むように構成される。
【００５８】
第5の態様または第5の態様の前述の実施方式のうちのいずれか1つを参照すると、第5の態様の別の実施方式では、システムバスは、QPIバスまたはHTバスである。
【００５９】
第5の態様または第5の態様の前述の実施方式のうちのいずれか1つを参照すると、第5の態様の別の実施方式では、別のコンピュータの第2のメモリアドレス空間は、コンピュータの第1のメモリアドレス空間のミラーアドレス空間である。
【００６０】
第5の態様または第5の態様の前述の実施方式のうちのいずれか1つを参照すると、第5の態様の別の実施方式では、ミラーリングモジュールは、システムバスを使用することによって、書込み要求内のターゲットデータを、第2のプロセッサに送信し、その結果、第2のプロセッサは、ターゲットデータを、第2のメモリアドレス空間内に書き込む。
【００６１】
第6の態様によると、コンピュータが提供され、ここで、コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、別のコンピュータおよびコンピュータ上でそれぞれ動作し、別のコンピュータは第1のプロセッサを含み、コンピュータは第2のプロセッサを含み、第1のプロセッサと第2のプロセッサの両方はシステムバスインタフェースを含み、第1のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、第2のプロセッサのシステムバスインタフェースに接続され、コンピュータの第2のメモリアドレス空間は、別のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、コンピュータは、システムバスを使用することによって、第1のプロセッサからターゲットデータを受信するように構成されるミラーリングモジュールであって、ここで、ターゲットデータは、第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、ターゲットデータの書込みアドレスは、第1のメモリアドレス空間内に配置される、ミラーリングモジュールと、ターゲットデータを、第2のメモリアドレス空間内に書き込むように構成される書込み操作モジュールとを含む。
【００６２】
2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００６３】
第6の態様を参照すると、第6の態様の実施方式では、ミラーリングモジュールは、具体的には、システムバスを使用することによって、第1のプロセッサから、ターゲットデータおよび、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信するように構成され、且つ、書込み操作モジュールは、具体的には、ミラーパケットを、ターゲットデータのための書込みパケットに変換し、コンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むように構成される。
【００６４】
非透過ブリッジは、パケットタイプまたはフォーマットの変換を完了するために使用され、このことは、プロセッサの内部の実施を単純化することができ、さらに、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【００６５】
第6の態様または第6の態様の前述の実施方式のうちのいずれか1つを参照すると、第6の態様の別の実施方式では、ミラーリングモジュールは、メモリコントローラから、書込みパケットに対応する、ミラーアドレスを含む、書込み完了パケットを受信し、第1のメモリアドレス空間と第2のメモリアドレス空間との間のマッピング関係に従って、ミラーアドレスを書込みアドレスに変換し、ミラーパケットに対応するミラー完了パケットを、第1のプロセッサに送信するようにさらに構成され、ここで、ミラー完了パケットは書込みアドレスを含み、且つ、ミラー完了パケットは、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される。
【００６６】
第6の態様または第6の態様の前述の実施方式のうちのいずれか1つを参照すると、第6の態様の別の実施方式では、ミラーリングモジュールは、具体的には、システムバスを使用することによって、第1のプロセッサから、ターゲットデータおよび書込みアドレスを含む、ミラーパケットを受信するように構成され、且つ、書込み操作モジュールは、具体的には、ミラーパケットを、ターゲットデータのための書込みパケットに変換し、且つ、書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換し、コンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むように構成される。
【００６７】
第6の態様または第6の態様の前述の実施方式のうちのいずれか1つを参照すると、第6の態様の別の実施方式では、システムバスは、QPIバスまたはHTバスである。
【００６８】
従来技術では、システムバスは、一般に、コンピュータの内部の機能コンポーネントの接続を実施するために使用され、且つ、システムバスは、コンピュータの内部バスのうちの1つであるとともに、高帯域幅および低レイテンシの特徴を有する。本発明の実施形態では、システムバスは、2つの異なるコンピュータのプロセッサを共に接続するために使用される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【図面の簡単な説明】
【００６９】
本発明の実施形態における技術的解決手段をより明確に説明するために、以下では、本発明の実施形態を説明するために必要とされる添付図面を簡潔に説明する。明らかに、以下の説明における添付図面は、単に、本発明のいくつかの実施形態を示し、且つ、当業者は、創造的努力無しに、これらの添付図面から他の図面をさらに導出することができる。
【００７０】
【図１】図1は、既存のクラスタコンピュータシステムにおける接続の概略図である。
【図２】図2は、本発明の実施形態に係る、コンピュータシステムにおける接続の概略図である。
【図３】図3は、本発明の実施形態に係る、書込み要求処理方法の概略フローチャートである。
【図４】図4は、QPI技術に基づくCPUの概略構成図である。
【図５】図5は、本発明の実施形態に係る、データミラーリング操作の概略フローチャートである。
【図６】図6は、本発明の実施形態に係る、データミラーリング操作の概略フローチャートである。
【図７】図7は、本発明の実施形態に係る、書込み要求処理方法の概略フローチャートである。
【図８】図8は、本発明の実施形態に係る、プロセッサの概略構成図である。
【図９】図9は、本発明の実施形態に係る、プロセッサの概略構成図である。
【図１０】図10は、本発明の実施形態に係る、コンピュータの概略構成図である。
【図１１】図11は、本発明の実施形態に係る、コンピュータの概略構成図である。
【発明を実施するための形態】
【００７１】
以下では、本発明の実施形態における添付図面を参照して、本発明の実施形態における技術的解決手段を明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の全てではなく一部である。創造的努力無しに、本発明の実施形態に基づいて、当業者によって取得される全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
【００７２】
クラスタコンピュータシステムは、一般に、複数のコンピュータを含み、ここで、複数のコンピュータは、所定の方式で共に相互接続され、それぞれのオペレーティングシステムは、各コンピュータ上で独立して動作し、コンピュータ間で、相互通信およびデータ交換が実行されることができる。クラスタコンピュータシステムのデータ記憶の信頼性を保証するために、クラスタコンピュータシステム内のコンピュータ（以下、第1のコンピュータと呼ばれる）は、ミラーリング操作によって、メモリ内に書き込まれるべきデータ（以下、ターゲットデータと呼ばれる）を別のコンピュータ（以下、第2のコンピュータと呼ばれる）のメモリに写し、このことは、第1のコンピュータのメモリにおけるデータが、第2のコンピュータ内でバックアップされることと同等である。第1のコンピュータがある理由によって故障したとき、第1のコンピュータのメモリ内のデータは、依然として、第2のコンピュータ内でバックアップを有し、このことは、メモリ内のデータの損失を引き起こさず、且つ、データ記憶の信頼性を改善する。
【００７３】
上述の第1のコンピュータおよび/または第2のコンピュータは、プロセッサおよびメモリを含むとともに、その上でオペレーティングシステムが独立して動作するデバイスまたはノードであってよいことは理解されるべきである。本発明の実施形態では、第1のコンピュータおよび/または第2のコンピュータは、説明および識別の容易さのためだけのものであり、且つ、本発明の実施形態に対する限定として理解されるべきでない。具体的には、異なる適用シナリオでは、第1のコンピュータおよび/または第2のコンピュータは、異なるデバイスまたはノードに対応してよい。例えば、クラスタコンピュータシステムの一般的な分野、例えば、通信またはサーバの分野においては、コンピュータはホスト（host）であってよく、ストレージデバイスの分野、例えば、デュアルコントローラまたはマルチコントローラSANの分野においては、コンピュータはコントローラであってよい。
【００７４】
クラスタシステム内のコンピュータは本明細書における説明のための例として使用されることはさらに理解されるべきである。実際には、本発明の実施形態で提供される書込み要求処理方法は、2つの独立したコンピュータの内部のプロセッサがシステムバスによって接続されている限りは使用されることができる。
【００７５】
従来技術では、クラスタコンピュータシステム内のコンピュータは、PCIeバス、イーサネット（登録商標）バスまたはインフィニバンドバス等の、IOバスを使用することによって接続される。上述されたように、IOバスを使用することによってコンピュータ間で実行されるデータミラーリング操作は、複数のDMA操作を伴うだけでなく、複雑なソフトウェアプロトコルオーバヘッドもまた伴う。例えば、第1のコンピュータは、メモリからターゲットデータを抽出する必要があり、ターゲットデータを、PCIeプロトコル、イーサネット（登録商標）プロトコルまたはインフィニバンドプロトコル等のプロトコルを満たすパケットにカプセル化し、パケットを第2のコンピュータに送信し、第2のコンピュータは、パケットをデカプセル化する必要があるとともに、ターゲットデータを、第2のコンピュータのメモリ内に書き込む。結果として、ミラーリング操作の効率は比較的低い。クラスタコンピュータシステム内のコンピュータ間のデータミラーリング操作の効率を改善するために、本発明の実施形態では、クラスタコンピュータシステム内の2つ以上のコンピュータのプロセッサを直接接続するためにシステムバスが使用され、システムバス上で完了されるのに適した一組のデータミラーリング操作の手順は、これに基づき設計されることができる。以下では、図2および図3を参照して、詳細な説明を提供する。
【００７６】
図2は、本発明の実施形態に係る、コンピュータシステムにおける接続の概略図である。図2では、第1のコンピュータおよび第2のコンピュータは、クラスタコンピュータシステムにおける2つのコンピュータであってよい。それぞれのオペレーティングシステムは、2つのコンピュータ上でそれぞれ独立して動作する。2つのコンピュータの両方のプロセッサ（図2における第1のプロセッサおよび第2のプロセッサ）は、システムバスインタフェースを含み、且つ、プロセッサは、“疎結合”と同様の方式で、システムバスを使用することによって、共に接続される。加えて、第2のコンピュータのメモリアドレス空間（以下、第2のメモリアドレス空間と呼ばれる）の少なくとも一部は、第1のコンピュータのメモリアドレス空間（以下、第1のメモリアドレス空間と呼ばれる）の少なくとも一部のミラーアドレス空間である。図2に示される接続関係および構成に基づいて、図3を参照して、以下では、本発明の実施形態に従って、クラスタコンピュータシステムにおける書込み要求処理方法を詳細に説明する。
【００７７】
図3は、本発明の実施形態に係る、書込み要求処理方法の概略フローチャートである。図3における方法は、図2における第1のプロセッサによって実行されてよい。図3における方法は以下を含む：
【００７８】
310: 第1のプロセッサは書込み要求を受信し、ここで、書込み要求は、書き込まれるべきターゲットデータおよびターゲットデータの書込みアドレスを含む。
【００７９】
320: 第1のプロセッサは、書込みアドレスが第1のメモリアドレス空間内に配置されていると決定する。
【００８０】
330: 第1のプロセッサは、書込み要求に従って、書込み要求内のターゲットデータを第1のメモリアドレス空間内に書き込み、且つ、書込み要求内のターゲットデータを、システムバスを使用することによって、第2のプロセッサに送信し、その結果、第2のプロセッサは、第2のメモリアドレス空間内にターゲットデータを書き込む（または、第2のプロセッサに、第2のメモリアドレス空間内にターゲットデータを書き込むように命令するために）。
【００８１】
実施形態では、第1のプロセッサは、ターゲットデータを、第1のメモリアドレス空間内に直接書き込んでよく、別の実施形態では、第1のプロセッサは、メモリコントローラを使用することによって、ターゲットデータを、第1のメモリアドレス空間内に書き込んでよい。
【００８２】
本発明の本実施形態は、第1のプロセッサによって、ターゲットデータを、第1のメモリアドレス空間内に書き込むことと、システムバスを使用することによって、第1のプロセッサによって、ターゲットデータを、第2のプロセッサに送信することの操作順序に対して具体的な限定を課さず、それらは同時に実行されてよく、または、連続的に実行されてよいことは理解されるべきである。
【００８３】
従来技術では、システムバスは、一般に、コンピュータ内部の機能コンポーネントの接続を実施するために使用され、且つ、システムバスは、コンピュータの内部バスのうちの1つであるとともに、高帯域幅および低レイテンシの特徴を有する。本発明の本実施形態では、2つの異なるコンピュータにそれぞれ属するプロセッサは、システムバスを使用することによって、クラスタコンピュータシステム内で共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。具体的には、従来技術では、IOデバイスは、2つのコンピュータ間のミラーパケットを移送するために使用される。従って、（前述のターゲットデータに対応する）ミラーデータは、メモリから最初に取り出される必要があり、次いで、ターゲットデータは、IOデバイス（例としてネットワークアダプタを使用する）に送信され、次に、ネットワークアダプタは、ネットワークアダプタのソフトウェアドライバを使用することによって、ミラーデータをパケットにカプセル化し、且つ、パケットを受信エンドに送信し、受信エンドは、パケットを受信した後に、パケットをデカプセル化し、次いで、パケットを、受信エンドのメモリ内に書き込む。プロセス全体において、複数のメモリ読出しおよび書込み操作が必要とされ、且つ、複雑なプロトコルベースのカプセル化およびデカプセル化を伴う。本発明の本実施形態では、ターゲットデータは、システムバスを使用することによって、第1のプロセッサによって、第2のプロセッサに直接送信され、このことは、メモリからデータを読み出すプロセスを除く。加えて、ターゲットデータはまた、パケット（例えば、以下で説明されるミラーパケット）内でカプセル化されてよく、且つ、システムバスを使用することによって送信されてよいが、システムバスは内部バスの1つであり、システムバス上で使用されるパケットのカプセル化形式はまた、比較的単純に設計されてよい。例えば、データ書込みパケットおよびデータミラーパケットは、IOデバイス（例えば、ネットワークアダプタ）のような複雑なプロトコルおよびカプセル化形式を伴う必要無しに、書込みパケット内のいくつかのフィールドを変更することによって識別されてよい。
【００８４】
任意で、実施形態では、プロセッサは、1つまたは複数のシステムバスインタフェースを含んでよい。
【００８５】
任意で、実施形態では、システムバスは、キャッシュコヒーレンス（Cache Coherent, CC）をサポートするバスであってよい。例えば、システムバスは、CCバスと呼ばれてよい。実施形態では、システムバスは、ハイパートランスポート（HyperTransport, HT）バスまたはクイックパスインターコネクト（Quick Path Interconnect, QPI）バスのうちの少なくとも1つであってよい。
【００８６】
任意で、実施形態では、図3に示される方法は、ストレージデバイスの分野に適用されてよい。ストレージデバイスの分野では、クラスタコンピュータシステムは、デュアルコントローラまたはマルチコントローラシステムであってよい。第1のコンピュータおよび第2のコンピュータのどちらかのコンピュータは、ストレージデバイスの分野におけるコントローラと同等である。
【００８７】
第1のメモリアドレス空間は、第1のコンピュータのメモリアドレス空間の一部であってよく、且つ、第2のメモリアドレス空間は、第2のコンピュータのメモリアドレス空間の一部であってよい。実施形態では、第1のメモリアドレス空間はまた、第2のメモリアドレス空間のミラーアドレス空間であってよく、または、第1のメモリアドレス空間および第2のメモリアドレス空間は、互いの相互ミラーアドレス空間であってよい。
【００８８】
第1のメモリアドレス空間および第2のメモリアドレス空間は、その中でアドレスが連続する空間（略して連続アドレス空間）であってよく、または、その中でアドレスが不連続である空間（略して不連続アドレス空間）であってよい。実施形態では、第1のメモリアドレス空間および第2のメモリアドレス空間の両方は、連続アドレス空間であり、且つ、第1のメモリアドレス空間および第2のメモリアドレス空間を連続アドレス空間として設定することは、システムのハードウェア実施を単純化することができる。実施形態では、第1のメモリアドレス空間および第2のメモリアドレス空間の空間サイズは等しくてよい。
【００８９】
任意で、実施形態では、第1のメモリアドレス空間および第2のメモリアドレス空間は、メモリ内のキャッシュ可能な（cacheable）空間であってよい。このように、ミラーリング操作を完了することに加えて、第1のメモリアドレス空間および第2のメモリアドレス空間は、複数のプロセッサ間のキャッシュコヒーレンスに関する問題をさらに解決することができる。
【００９０】
任意で、実施形態では、第2のメモリアドレス空間が第1のメモリアドレス空間のミラーアドレス空間であることは、第1のメモリアドレス空間内に書き込まれるデータが、第2のメモリアドレス空間内に書き込まれる必要があるか、または、第1のメモリアドレス空間のための各書込み操作が、第2のメモリアドレス空間に写される必要があることを示してよい。すなわち、同じデータは、第1のメモリアドレス空間および第2のメモリアドレス空間の両方において記憶され、このことは、クラスタコンピュータシステムにおけるデータの安全性および信頼性を保証することができる。
【００９１】
任意で、実施形態では、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係が事前に構成されてよい。事前構成の後、ミラー関係は静的なままであるか、動的に調整されることが設定されてよい。例えば、プロセッサのファームウェアは、ミラーアドレス空間の初期化について責任があってよく、次いで、2つのコンピュータのプロセッサは、システムバスを使用することによって、通知パケットを互いに送信して、ピアプロセッサに、それぞれのミラーアドレス空間の位置およびサイズを通知し、または、帯域外管理システムは、システム初期化中に構成を実行してよいとともに、構成結果をコンピュータに通知してよい。実施形態では、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係は、クラスタコンピュータシステムの要求に従って、（リアルタイムで）構成または更新されてよい。実施形態では、ミラーアドレス空間の構成の成功または失敗は、ミラーリング操作がコンピュータ間で実行されることができるかどうかに影響を与えるが、コンピュータの正常な起動および動作には影響を与えない。
【００９２】
任意で、実施形態として、ステップ330は、第1のプロセッサによって、書込み要求に従って、ターゲットデータのための書込みパケットを生成するステップと、第1のプロセッサによって、書込みパケットに従って、ターゲットデータを、第1のメモリアドレス空間内の書込みアドレス内に書き込むステップとを含んでよい。ここでのパケットはまた、メッセージ（message）と呼ばれてもよい。
【００９３】
システムバスに基づいているとともに、コンピュータシステム内の2つのコンピュータ間のミラー関数を実施するために、PCIe非透過ブリッジの概念に対して参照が行われてよい。非透過ブリッジは、2つのシステム間に配置され、2つのシステムのアドレスドメインは離されており、メモリアドレス変換（1つのシステムのメモリアドレスは、そのメモリアドレスに対応する、他のシステムにおけるミラーアドレスに変換される）および別のミラー関連操作は、非透過ブリッジを使用することによって完了することができる。以下では、具体的な実施形態を参照して、非透過ブリッジの具体的な形態に対して詳細な説明を提供する。
【００９４】
非透過ブリッジは、ハードウェアを使用することによって実施されてよく、または、ソフトウェアを使用することによって実施されてよい。例えば、非透過ブリッジは、回路を使用することによって実施されてよく、この場合、非透過ブリッジは、非透過ブリッジ回路と呼ばれてよい。ハードウェアを使用することによって非透過ブリッジを実施することは、ミラーリング操作の効率およびシステムの総体的なIOPSをさらに改善することができる。具体的には、従来技術では、ミラーパケットは、IOデバイス（例えば、ネットワークアダプタ）を使用することによって送信され、且つ、これらのIOデバイスは、それぞれのソフトウェアドライバを使用することによって、ミラーパケットを処理する。ハードウェアのみの方式と比較すると、ソフトウェア方式では、ミラーパケット処理効率は明らかにより低く、且つ、レイテンシはより高い。非透過ブリッジは、ミラーリング操作処理のための特殊なハードウェアとして配置されてよい。例えば、非透過ブリッジは、特に、ミラーパケットに対するアドレスおよび/またはパケットタイプの変換を実行する。ハードウェアのみの実施方式は、ミラーリング操作の効率をさらに改善することができる。
【００９５】
別の例については、非透過ブリッジは、コードを使用することによって実施されてよく、この場合、非透過ブリッジは、非透過ブリッジ論理モジュールと呼ばれてよい。非透過ブリッジは、ミラーリング操作処理のための特殊なハードウェアとして配置され、このことは、プロセッサの負荷を低減することができる。以下では、非透過ブリッジが非透過ブリッジの位置および非透過ブリッジとプロセッサ内部の別のコンポーネントとの間の接続関係を説明するためのハードウェアである例を使用する。
【００９６】
プロセッサは、一般に、コントローラおよび演算ユニットを含み、ここで、コントローラは、一般に、プロセッサの内部論理制御および総体的なスケジューリングについて責任があり、且つ、演算ユニットは、データ関連整数または浮動小数点の演算を実行する。ミラー関連操作をより良くサポートするために、非透過ブリッジは、プロセッサのシステムバスインタフェースにおいて配置されてよく、ここで、非透過ブリッジは、プロセッサの内部バスを使用することによって、プロセッサ内部のコントローラに接続されてよい。異なるタイプのプロセッサのコントローラおよび内部バスの名前またはタイプは異なってよいことは理解されるべきである。図4を参照すると、例としてQPI技術に基づくプロセッサを使用して、プロセッサ内部のコントローラは、プロセッサ内部の、キャッシュエージェント（Cache Agent, CA）、ホームエージェント（Home Agent, HA）等を指してよく、且つ、プロセッサ内部のコンポーネントは、リングバス（Ring Bus）を使用することによって、接続される。具体的には、CAは、キャッシュエンドにおいて配置される、CPU内部の、トランザクション処理エンジンである。HAは、CPU内部の、メモリコントローラエンドにおいて配置されるとともにDDRに接続される、トランザクション処理エンジンである。CPU内部のトランザクション処理エンジンは、リングバスを使用することによって接続される。パケット（message）は、特定のルールに従って、リングバスを使用することによって、エンジン間で伝送されてよく、且つ、読出しトランザクションまたは書込みトランザクション等のトランザクションは、エンジンの相互協調によって完了する。例えば、CPUが書込み要求を受信した後、CAは、書込み要求内のデータを、メモリ内に書き込むように要求するために、データをメモリ内に書き込むように要求するために使用されるデータ書戻しパケット（WbData）をHAに送信すること、および、HAによって返される、データ書込み操作の完了を示すための応答パケット（WbCMP）を受信することについて責任があってよい。図4をさらに参照すると、非透過ブリッジ（図4におけるNTB）は、システムバスインタフェースにおいて配置されてよく、ここで、1つのエンドは、システムバスインタフェースに接続され、且つ、他のエンドは、CPUの内部バスに接続される。このように、プロセッサ内部のコントローラ、例えば、CAは、内部バスを使用することによって、非透過ブリッジとメッセージまたはデータの交換を実行してよい。
【００９７】
非透過ブリッジを導入することに基づいて、ターゲットデータのミラーリング操作と協調するために、ミラートランザクションが導入されてよく、且つ、ミラートランザクションに関連するパケットが構成される。さらに、NTBは、メモリアドレス変換、パケットフォーマット変換、ミラートランザクションの正常終了および異常終了に対する決定、報告切断等を実施するために使用されてよい。以下では、詳細な説明を別々に提供する。
【００９８】
ミラートランザクションに関連するパケットは、データペイロードを有するパケット（またはペイロードと呼ばれるとともに前述のターゲットデータに対応する）およびデータペイロード無しのパケットに分類されてよい。例えば、データペイロードを有するパケットは、ミラーパケットと呼ばれてよく、ここで、ミラーパケットは、第2のコンピュータのメモリアドレス空間に、第1のコンピュータのメモリアドレス空間内に書き込まれるべきデータペイロードを写すために使用されてよい。さらに、ミラートランザクションのトランザクション番号、データペイロードの書込みアドレス（そのアドレスは、非透過ブリッジを使用することによって、その後変換されるものであり、且つ、詳細に関しては、以下を見られたい）およびデータペイロードは、ミラーパケット内で搬送されてよい。
【００９９】
具体的には、ミラーパケット内のミラーリング操作のトランザクション番号は、8ビットバイナリ番号によって表されてよく、且つ、ミラーパケット内のアドレスは、プロセッサの具体的な実施に従って決定されてよく、例えば、アドレスは、X86内の46ビットから48ビットのバイナリ番号である。例えば、ミラーリング操作のトランザクション番号は0X01であってよく、これは、01の番号を有するミラートランザクションを表し、ミラーアドレスは0X001234であってよい。
【０１００】
データペイロード無しのパケットは、例えば、ミラー完了パケットまたはミラータイムアウトパケットを含んでよい。このようなパケットは、ミラーリング操作の論理を改善するために使用されてよい。例えば、ミラー完了パケットは、ミラーリング操作が完了したと示すために使用されてよく、且つ、ミラータイムアウトパケットは、ミラーリング操作がタイムアウトによって失敗したと示すために使用されてよい。ミラーリング操作に関するアドレス、ミラートランザクション番号等もまた、このようなパケット内で搬送されてよい。
【０１０１】
以下では、例としてQPI技術に基づくプロセッサを使用することによって、非透過ブリッジのアドレス変換機能およびパケット変換機能を詳細に説明する。
【０１０２】
最初に、第1のプロセッサのメモリアドレス空間{0X04_0000, 0X04_FFFF}および第2のプロセッサのメモリアドレス空間{0X0A_0000, 0A_FFFF}が互いを写す（ミラー関係が事前構成されてよい）と仮定すると、ミラートランザクションに関する手順の例は以下のようになる：
【０１０３】
ステップ1：第1のプロセッサ内のCAは、メモリアドレス（例えば、0X04_1234）内にデータを書き込む必要がある。CAは、システム構成に従って、メモリアドレスが、別のシステムのミラーアドレス空間と既に一致したミラーアドレス空間{0X04_0000, 0X04_FFFF}内のアドレスであると発見することができる。従って、CAは、第1のプロセッサに関する書込みパケットを送信するだけでなく、ミラー空間に関するミラーパケットも送信する。書込みパケットは、正常な書込み操作に従って実行されてよい。ミラーパケットは、非透過ブリッジに送信されてよいとともに、第1のプロセッサの非透過ブリッジによって処理される。本発明の本実施形態は、CAによって書込みパケットを送信する操作と、CAによってミラーパケットを送信する操作の時系列に対して具体的な限定を課さないことは理解されるべきである。例えば、CAは、前述の操作を同時に実行してよく、または、前述の操作を連続的に実行してよい。
【０１０４】
ステップ2：ミラーパケットを受信した後、第1のプロセッサの非透過ブリッジは、前述のメモリアドレス空間の間のミラー関係に従って、アドレス0X04_1234から0X0A_1234を修正し、ミラーパケットを更新し、更新されたミラーパケットを、システムバスインタフェース（ここでは、QPIポートであってよい）に送信してよい。
【０１０５】
ステップ3：第1のプロセッサのシステムバスインタフェースは、更新されたミラーパケットを、第2のプロセッサのシステムバスインタフェースに送信する。
【０１０６】
ステップ4：第2のプロセッサのシステムバスインタフェースは、ミラーパケットを、第2のプロセッサの非透過ブリッジに送信する。
【０１０７】
ステップ5：第2のプロセッサの非透過ブリッジは、ミラーパケットを、書込みパケットに変換し、第2のプロセッサの内部バスを使用することによって、書込みパケットをメモリコントローラに送信して、対応するメモリ書込み操作を完了する。
【０１０８】
ステップ6：第2のプロセッサのメモリコントローラは、メモリ書込み操作を完了した後、ミラー書込み完了パケットを、第2のプロセッサの非透過ブリッジに返す。
【０１０９】
ステップ7：第2のプロセッサの非透過ブリッジは、メモリアドレス空間の間のミラー関係に従って、ミラー書込み完了パケット内のアドレスフィールド0X0A_1234を0X04_1234に修正し、更新されたパケットを、第2のプロセッサのシステムバスインタフェースに送信する。
【０１１０】
ステップ8：第2のプロセッサのシステムバスインタフェースは、ミラー完了パケットを、第1のプロセッサのシステムバスインタフェースに送信する。
【０１１１】
ステップ9：第1のプロセッサのシステムバスインタフェースは、ミラー完了パケットを、第1のプロセッサの非透過ブリッジに送信する。
【０１１２】
ステップ10：第1のプロセッサの非透過ブリッジは、第1のプロセッサの内部バスを使用することによって、ミラー完了パケットを、ミラーパケットのイニシエータ、すなわち、ステップ1におけるCAに送信する。
【０１１３】
ステップ11：CAは、ミラー完了パケットを受信し、ミラー操作が成功裏に完了したと決定し、トランザクションを終了し、対応するリソースを解放する。
【０１１４】
加えて、タイマが、第1のプロセッサの非透過ブリッジに対して配置されてよい。タイマが時間切れになったときに、ミラー完了パケットが未だ受信されていないとき、ミラータイムアウトパケットは、ミラー操作の失敗を示すために、CAに送信されてよい。
【０１１５】
前述の手順から、NTBの機能は、メモリアドレス変換、パケットまたはパケットフォーマット変換、ミラートランザクションの異常終了に対する決定、報告切断等を含んでよいことがわかる。
【０１１６】
ミラーパケットおよび非透過ブリッジを導入することに基づいて、任意で、実施形態として、ステップ340は、第1のプロセッサによって、書込み要求に従って、ミラーパケットを生成するステップであって、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含み、且つ、ミラーパケットは、ターゲットデータを、書込みアドレスの、第2のメモリアドレス空間におけるミラーアドレス内に書き込むために使用される、ステップと、第1のプロセッサによって、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信するステップと、第1のプロセッサの非透過ブリッジによって、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係に従って、ミラーパケット内の書込みアドレスをミラーアドレスに変換して、更新されたミラーパケットを取得するステップと、第1のプロセッサの非透過ブリッジによって、更新されたミラーパケットを、システムバスを使用することによって、第2のプロセッサに送信し、その結果、第2のプロセッサは、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む、ステップとを含んでよい。
【０１１７】
実施形態では、ターゲットデータは、書込みパケットを使用することによって、第1のメモリアドレス空間内に書き込まれてよく、ターゲットデータは、ミラーパケットを使用することによって、第2のメモリアドレス空間内に書き込まれてよく、書込みパケットのパケットフォーマットは、ミラーパケットのパケットフォーマットとは異なってよく、第1のプロセッサは、書込みパケットおよびミラーパケットのフォーマットに従って、対応するトランザクション操作を実行してよい。例えば、第1のプロセッサは、ターゲットデータのための書込みパケットに対して書込み操作を実行するとともに、ターゲットデータをメモリ内に書込み、第1のプロセッサは、ミラーパケットに対してミラーリング操作を実行し、且つ、システムバスおよび第2のプロセッサを使用することによって、ミラーパケット内のターゲットデータを第2のメモリアドレス空間に写す。
【０１１８】
異なるタイプのプロセッサによって生成される書込みパケットのフォーマットおよび名前は異なってよいことは理解されるべきである。QPI技術をサポートするインテルプロセッサの例では、プロセッサによって生成される書込みパケットは、データ書戻しパケット、すなわち、WbDataパケットと呼ばれてよい。システムバスがQPIバスであるとき、書込みパケットは、WbDataパケットであってよい。ミラーパケットを第1の書込みパケットから区別するために、ミラーパケットは、WbMirパケットと呼ばれてよく、ここで、書込みパケットおよびミラーパケットは、異なるパケットフォーマットであってよい。
【０１１９】
任意で、実施形態として、図3における方法は、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信した後、第1のプロセッサの非透過ブリッジによって、ミラー完了パケットを第1のプロセッサに送信するステップであって、ここで、ミラー完了パケットはミラーパケットに対応しているとともに、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される、ステップと、第1のプロセッサによって、ミラー完了パケットに従って、ターゲットデータのためのミラーリング操作の成功を確認し、且つ、ミラーリング操作に対応するミラートランザクションを終了するステップとをさらに含んでよい。
【０１２０】
任意で、実施形態として、図3における方法は、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信しないとき、第1のプロセッサの非透過ブリッジによって、ミラータイムアウトパケットを第1のプロセッサに送信するステップと、第1のプロセッサによって、ミラータイムアウトパケットに従って、ミラーリング操作の失敗を確認し、且つ、ミラートランザクションを終了するステップとをさらに含んでよい。複数のタイムアウト決定方式があってよい。例えば、更新されたミラーパケットが第2のプロセッサに送信されるとき、タイマが第1のプロセッサの非透過ブリッジ上に配置されてよく、且つ、タイマが時間切れになった後、ミラー完了パケットが未だ受信されていない場合、ミラーリング操作は時間切れであると決定される。
【０１２１】
本発明の本実施形態では、システムバス上でミラーリング操作を実行することに関する完全な論理が第1のプロセッサに追加される。論理は、ここでのミラーリング操作が、ミラーリング操作の成功または失敗に関係なく終了されるものであることを保証し、このことは、システムバス上のミラーリング操作の失敗によって引き起こされるシステムの故障を回避することができる。これに基づいて、コンピュータ内部のプロセッサの、システムバスインタフェースのブルートフォース・サプライズ拡張、例えば、システムバスインタフェースのサプライズ拡張またはサプライズ除去（surprise plug/surprise removal）がさらにサポートされることができる。具体的には、従来技術では、スタンドアロンシステムにおける複数のプロセッサはまた、システムバスを使用することによって接続される。例えば、従来技術におけるキャッシュコヒーレンスをサポートする不均等メモリアクセスアーキテクチャ（Non Uniform Memory Access Architecture, NUMA）システムにおいて、各プロセッサはローカルメモリにアクセスしてよく、または、システムバスを使用することによって、非ローカルメモリにアクセスしてよく、すなわち、複数のプロセッサのメモリは共有されてよい。しかしながら、単一のオペレーティングシステムは、このようなマルチプロセッサシステムのメモリ上で動作し、且つ、本質的に、マルチプロセッサシステムはさらに、クラスタコンピュータシステムの代わりにスタンドアロンシステムである。システムバスを使用することによって、複数のプロセッサ間で実行される操作は、スタンドアロンシステムの内部の操作として本質的にさらにみなされる。スタンドアロンシステムのシステムバス上の全ての操作は、ハードウェアによって完了される。一度プロセッサのシステムバス上の操作中にエラーが生じると（例えば、ブルートフォース・サプライズ拡張がシステムバスインタフェース上で生じる）、エラーはハードウェアエラーである。ハードウェアエラーは、スタンドアロンシステムの故障を引き起こす。システムバス上の操作エラーによって引き起こされるシステムの故障を回避するために、システムバス上のミラーリング操作を実行することに関する完全な論理が第1のプロセッサに追加される。論理は、ここでのミラーリング操作が、ミラーリング操作の成功または失敗に関わらず終了されるものであることを保証し、このようにして、システムバス上の操作の不完全性またはシステムバス上の操作中のエラーによるシステムの故障が回避されることができる。
【０１２２】
図5および図6を参照すると、以下では、プロセッサが、QPI技術をサポートするプロセッサであるとともに、システムバスがQPIバスである例（具体的な構造については、図4を参照されたい）を使用することによって、システムバスを使用することによって接続される、クラスタコンピュータシステムにおけるコンピュータ間のデータミラーリング操作のプロセスを詳細に説明する。本発明の本実施形態は、図5および図6におけるステップの時系列に対して限定を課さず、図5および図6における全てのステップは、図5および図6で示される順序と異なる順序で実行されてよく、あるいは、図5および図6における全てのステップが必ずしも実行されるわけでないことは理解されるべきである。図5および図6で説明されるミラーリング操作プロセスのトリガリング条件は、第1のコンピュータにおけるCAが、CAによって受信される書込み要求の書込みアドレスが、第1のコンピュータのメモリのミラーアドレス空間（前述の第1のメモリアドレス空間に対応する）内に配置されていることを発見し、ここで、ミラーアドレス空間は事前構成されてよいことであってよい。
【０１２３】
S502：第1のCPUのCAは、データ書戻しパケット（WbData）を生成するとともに、書込みパケットを、第1のCPUのHAに送信し、ここで、書込みパケットは、メモリ内に書き込まれるべきターゲットデータを含む。
【０１２４】
S504：第1のCPUのCAは、ミラーパケット（WbMir）を生成するとともに、ミラーパケットを、第1のCPUの非透過ブリッジに送信し、ここで、ミラーパケットは、メモリ内に書き込まれるべきターゲットデータを含む。
【０１２５】
具体的には、データ書戻しパケットおよびミラーパケットのフォーマットは異なってよく、その結果、プロセッサは、パケットフォーマットに従って、異なるフォーマットにおけるパケットに対応するその後の操作タイプを決定する。例えば、書込み操作は、データ書戻しパケット上で実行され、且つ、ミラーリング操作は、ミラーパケット上で実行される。ステップS502およびステップS504は、同時に実行されてよく、または、ステップS502およびステップS504のいずれかが最初に実行される。
【０１２６】
S506：第1のCPUのHAは、データ書戻しパケットを受信した後、ターゲットデータを、第1のコンピュータのDDRメモリ内に書込み、且つ、データ書戻し完了パケットをCAに返す。
【０１２７】
S508：第1のCPUの非透過ブリッジは、ミラーパケットを受信した後、ミラーパケットを、第2のCPUの非透過ブリッジに送信する。
【０１２８】
非透過ブリッジは、CPUのシステムバスインタフェースにおいて配置されてよく、且つ、非透過ブリッジ間の伝送は、QPIインタフェースおよびCPU間のQPIバスを使用することによって完了されてよい。
【０１２９】
S510：第2のCPUの非透過ブリッジは、ミラーパケットを受信した後、ミラーパケットをデータ書戻しパケットに変換し、且つ、データ書戻しパケットを、第2のCPU内部のHAに送信し、ここで、データ書戻しパケットは、ターゲットデータを含む。
【０１３０】
S512：第2のCPUのHAは、データ書戻しパケットを受信した後、ターゲットデータを、第2のコンピュータのDDRメモリ内に書込み、且つ、データ書戻し完了パケットを、第2のCPUの非透過ブリッジに返す。
【０１３１】
第2のコンピュータの、その中にターゲットデータが書き込まれるメモリアドレス空間および第1のコンピュータの第1のメモリアドレス空間は、互いの相互ミラーアドレス空間であることは理解されるべきである。
【０１３２】
S514：第2のCPUの非透過ブリッジは、受信されたデータの書戻しが完了した後、データ書戻し完了パケットを、第1のCPUの非透過ブリッジに送信する。
【０１３３】
具体的には、非透過ブリッジモジュール間のQPIバスは、データ書戻し完了パケットの伝送を完了するために使用されてよい。
【０１３４】
S516：第1のCPUの非透過ブリッジは、受信されたデータ書戻し完了パケットを、ミラー完了パケット（MirCMP）に変換するとともに、ミラー完了パケットを、第1のCPUのCAに送信する。
【０１３５】
S518：第1のCPUのCAは、S506におけるデータ書戻し完了パケットおよびS516におけるミラー完了パケットを受信した後、ターゲットデータが、第1のコンピュータおよび第2のコンピュータ各々の、互いを写すメモリアドレス空間内に書き込まれたことを確認し、ミラートランザクションを終了する。
【０１３６】
第1のCPUのCAは、上層アプリケーションにミラートランザクションの完了を通知してよく、または、上層アプリケーションにミラーリング操作の成功を通知してよい。
【０１３７】
本発明の本実施形態によると、コンピュータのプロセッサは、QPIバスを使用することによって接続され、且つ、一組のミラーリング操作の手順がQPIバスに基づいて設計される。QPIバスは、システムバスであるとともに、低レイテンシおよび高帯域幅の利点を有し、従って、データミラーリング操作の効率を改善することができる。
【０１３８】
実際には、ミラーリング操作は常に成功裏に終了することができるわけではない。ミラーリング操作の失敗は、CPUのシステムバスインタフェースまたはブルートフォース・サプライズ拡張（サプライズ拡張またはサプライズ除去）または2つのホスト間のバスケーブルにおける欠陥によって引き起こされ得る。ミラーリング操作の成功または失敗が、システム全体における別のトランザクションの処理に影響を与えないことを保証するために、本発明の実施形態は、ミラーリング操作の異常終了を処理する方式を提供する。詳細については、図6を参照されたい。
【０１３９】
図6におけるS602、S604、S608、S610およびS612はそれぞれ、図5におけるS502、S504、S508、S510およびS512と同様であり、且つ、詳細は、ここでは再び説明されない。
【０１４０】
S616：タイマが時間切れになった後、第1のCPUの非透過ブリッジが、第2のCPUの非透過ブリッジによって送信されるデータ書戻し完了パケットを受信しない場合、第1のCPUの非透過ブリッジは、ミラータイムアウトパケットを、第1のCPUのCAに送信する。
【０１４１】
具体的には、タイマは、S608が実行されるとき、第1のCPUの非透過ブリッジ上に配置されてよく、且つ、タイミングの長さは、実験または経験に従って設定されてよい。
【０１４２】
S618：第1のCPUのCAは、ミラータイムアウトパケットを受信した後、ミラーリング操作（TranFail）の失敗を確認し、ミラーリング操作を終了する。
【０１４３】
CAは、ミラーリング操作の失敗に関する結果を、オペレーティングシステムに報告してよく、且つ、オペレーティングシステムは、ミラーリング操作の失敗に関するログを保持する。
【０１４４】
図2乃至図6を参照して、前述では、第1のプロセッサの観点から、本発明の実施形態に係る、クラスタコンピュータシステムにおける書込み要求処理方法を詳細に説明する。以下では、図7を参照して、第2のプロセッサの観点から、本発明の実施形態に係る、クラスタコンピュータシステムにおける書込み要求処理方法を説明する。第2のプロセッサ側で説明される第1のプロセッサと第2のプロセッサとの間の相互作用、関連する特徴、機能等は、第1のプロセッサ側の説明に対応していることは理解されるべきである。簡潔さを容易にするために、繰り返しの説明は適切に省略される。
【０１４５】
図7は、本発明の実施形態に係る、書込み要求処理方法の概略フローチャートである。図7における方法は、図2における第2のプロセッサによって実行されてよい。図7における方法は以下を含む：
【０１４６】
710：第2のプロセッサは、システムバスを使用することによって、第1のプロセッサからターゲットデータを受信し、ここで、ターゲットデータは、第1のコンピュータのメモリ内に書き込まれるべきデータであり、且つ、ターゲットデータの書込みアドレスは、第1のメモリアドレス空間内に配置される。
【０１４７】
720：第2のプロセッサは、ターゲットデータを、第2のメモリアドレス空間内に書き込む。
【０１４８】
実施形態では、第2のプロセッサは、ターゲットデータを、第1のメモリアドレス空間内に直接書き込んでよく、別の実施形態では、第2のプロセッサは、メモリコントローラを使用することによって、ターゲットデータを、第1のメモリアドレス空間内に書き込んでよい。
【０１４９】
本発明の本実施形態では、2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【０１５０】
任意で、実施形態として、ステップ710は、第2のプロセッサの非透過ブリッジによって、システムバスを使用することによって、第1のプロセッサからミラーパケットを受信するステップであって、ここで、ミラーパケットは、ターゲットデータおよび、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスを含む、ステップを含んでよく、且つ、第2のプロセッサによって、ターゲットデータを、第2のメモリアドレス空間内に書き込むステップは、第2のプロセッサの非透過ブリッジによって、ミラーパケットを、ターゲットデータのための書込みパケットに変換するステップと、第2のプロセッサの非透過ブリッジによって、第2のコンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むステップとを含む。
【０１５１】
任意で、実施形態として、図7における方法は、第2のプロセッサの非透過ブリッジによって、メモリコントローラから、書込みパケットに対応する書込み完了パケットを受信するステップであって、ここで、書込み完了パケットはミラーアドレスを含む、ステップと、第2のプロセッサの非透過ブリッジによって、第1のメモリアドレス空間と第2のメモリアドレス空間との間のマッピング関係に従って、ミラーアドレスを書込みアドレスに変換するステップと、第2のプロセッサの非透過ブリッジによって、ミラーパケットに対応するミラー完了パケットを、第1のプロセッサに送信するステップであって、ここで、ミラー完了パケットは書込みアドレスを含み、且つ、ミラー完了パケットは、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される、ステップとをさらに含んでよい。
【０１５２】
任意で、実施形態として、システムバスは、QPIバスまたはHTバスである。
【０１５３】
前述の実施形態のうちのいくつかでは、第1のプロセッサの非透過ブリッジは、ミラーパケットにおける書込みアドレスをミラーアドレス（ミラーアドレスは、書込みアドレスに対応する、第2のメモリアドレス空間におけるアドレスである）に変換することについて責任を有し、第2のプロセッサの非透過ブリッジは、ミラーパケットを、第2のプロセッサによって認識されることができる書込みパケットに変換することについて責任を有することは理解されるべきである。しかしながら、本発明の本実施形態はそれに限定されない。実際には、第2のプロセッサの非透過ブリッジは、アドレス変換について責任を有するだけでなく、パケット変換についても責任を有してよい。同様に、前述の実施形態のうちのいくつかでは、第2のプロセッサの非透過ブリッジは、書込み完了パケットにおけるミラーアドレスを、書込みアドレスに変換することについて責任を有し、且つ、第1のプロセッサの非透過ブリッジは、書込み完了パケットを、ミラー完了パケットに変換することについて責任を有する。しかしながら、本発明の本実施形態はそのどちらにも限定されない。実際には、第1のプロセッサの非透過ブリッジは、アドレス変換について責任を有するだけでなく、パケット変換についても責任を有してよい。
【０１５４】
プロセッサの非透過ブリッジは、パケット変換またはパケットにおけるアドレスの変換等のミラー関連操作について責任を有してよく、且つ、他の操作または機能（書込みパケットおよびミラーパケットを生成する操作、データ書込み操作および、ミラーパケットを非透過ブリッジに送信する操作等）は、プロセッサ本体によって実行されてよく、例えば、プロセッサのコントローラまたは制御論理によって実行されてよいことはさらに理解されるべきである。QPI技術をサポートするCPUの例では、ここでのプロセッサ本体は、CPUのCAまたはHA等の処理エンジンであってよい。
【０１５５】
図2乃至図7を参照して、前述では、本発明の実施形態に係る、クラスタコンピュータシステムにおける書込み要求処理方法を詳細に説明する。以下では、図8乃至図11を参照して、本発明の実施形態に係るプロセッサおよびコンピュータを詳細に説明する。
【０１５６】
図8は、本発明の実施形態に係る、プロセッサの概略構成図である。図8におけるプロセッサ800は、図1乃至図7における、第1のプロセッサによって実行される全てのステップを実施することができる。繰返しを回避するために、詳細はここでは再び説明されない。プロセッサ800は第1のコンピュータ内に配置され、ここで、第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第2のコンピュータは別のプロセッサを含み、プロセッサ800はシステムバスインタフェース810を含み、プロセッサ800のシステムバスインタフェースは、システムバスを使用することによって、別のプロセッサのシステムバスインタフェースに接続され、第2のコンピュータの第2のメモリアドレス空間は、第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、プロセッサ800は、コントローラ820および内部バス830をさらに含み、コントローラ820は、内部バス830を使用することによって、プロセッサ800のシステムバスインタフェース810に接続される。
【０１５７】
コントローラ820は、書込み要求を受信し、書込みアドレスが第1のメモリアドレス空間内に配置されていると決定し、書込み要求内のターゲットデータを、第1のメモリアドレス空間内に書き込み、書込み要求内のターゲットデータを、システムバスを使用することによって、別のプロセッサに送信するように構成され、その結果、別のプロセッサは、ターゲットデータを、第2のメモリアドレス空間内に書き込み、ここで、書込み要求は、書き込まれるべきターゲットデータおよびターゲットデータの書込みアドレスを含む。
【０１５８】
本発明の本実施形態では、2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【０１５９】
任意で、実施形態として、プロセッサ800は、非透過ブリッジ840をさらに含んでよく、ここで、非透過ブリッジ840はシステムバスインタフェース810に接続され、非透過ブリッジ840は、内部バス830を使用することによって、コントローラ820に接続され、コントローラ820は、具体的には、書込み要求に従って、ミラーパケットを生成し、ミラーパケットを非透過ブリッジに送信するように構成され、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含み、且つ、ミラーパケットは、ターゲットデータを、書込みアドレスの、第2のメモリアドレス空間におけるミラーアドレス内に書き込むために使用され、非透過ブリッジ840は、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係に従って、ミラーパケット内の書込みアドレスを、ミラーアドレスに変換して、更新されたミラーパケットを取得し、更新されたミラーパケットを、システムバスを使用することによって、別のプロセッサの非透過ブリッジに送信するように構成され、その結果、別のプロセッサは、別のプロセッサの非透過ブリッジによって受信された、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【０１６０】
任意で、実施形態として、非透過ブリッジ840は、事前に設定された時間内に、別のプロセッサからミラー完了パケットを受信した後、ミラー完了パケットをコントローラ820に送信するようにさらに構成され、ここで、ミラー完了パケットはミラーパケットに対応しているとともに、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用され、且つ、コントローラ820は、ミラー完了パケットに従って、ターゲットデータのためのミラーリング操作の成功を確認し、且つ、ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成される。
【０１６１】
任意で、実施形態として、非透過ブリッジ840は、ミラー完了パケットが、事前に設定された時間内に、別のプロセッサから受信されないとき、ミラータイムアウトパケットをコントローラ820に送信するようにさらに構成され、且つ、コントローラ820は、ミラータイムアウトパケットに従って、ミラーリング操作の失敗を確認し、且つ、ミラートランザクションを終了するようにさらに構成される。
【０１６２】
任意で、実施形態として、コントローラ820は、具体的には、書込み要求に従って、ミラーパケットを生成し、ミラーパケットを、プロセッサの非透過ブリッジに送信するように構成され、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含み、ここで、プロセッサの非透過ブリッジは、ミラーパケットを、システムバスを使用することによって、別のプロセッサの非透過ブリッジに送信し、その結果、別のプロセッサの非透過ブリッジは、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、別のプロセッサは、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【０１６３】
任意で、実施形態として、コントローラは、具体的には、書込み要求に従って、ターゲットデータのための書込みパケットを生成し、書込みパケットに従って、ターゲットデータを、第1のメモリアドレス空間内の書込みアドレス内に書き込むように構成される。
【０１６４】
任意で、実施形態として、システムバスは、QPIバスまたはHTバスである。
【０１６５】
図9は、本発明の実施形態に係る、プロセッサの概略構成図である。図9におけるプロセッサ900は、図1乃至図7における、第2のプロセッサによって実行される全てのステップを実施することができる。繰返しを回避するために、詳細はここでは再び説明されない。プロセッサ900は第1のコンピュータに接続される第2のコンピュータ内に配置され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第1のコンピュータは別のプロセッサを含み、プロセッサ900はシステムバスインタフェース910を含み、別のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、プロセッサのシステムバスインタフェースに接続され、第2のコンピュータの第2のメモリアドレス空間は、第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、プロセッサ900は、コントローラ920、内部バス930および非透過ブリッジ940を含み、非透過ブリッジ930は、プロセッサ900のシステムバスインタフェース910に接続され、コントローラ920は、内部バス930を使用することによって、非透過ブリッジ940に接続される。
【０１６６】
非透過ブリッジ940は、システムバスを使用することによって、別のプロセッサからターゲットデータを受信し、ターゲットデータを、第2のメモリアドレス空間内に書き込むように構成され、ここで、ターゲットデータは、別のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、ターゲットデータの書込みアドレスは、第1のメモリアドレス空間内に配置される。
【０１６７】
本発明の本実施形態では、2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【０１６８】
任意で、実施形態として、非透過ブリッジ940は、具体的には、システムバスを使用することによって、別のプロセッサから、ターゲットデータおよび、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信し、ミラーパケットを、ターゲットデータのための書込みパケットに変換し、第2のコンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むように構成される。
【０１６９】
任意で、実施形態として、非透過ブリッジ940は、メモリコントローラから、書込みパケットに対応する、ミラーアドレスを含む書込み完了パケットを受信し、第1のメモリアドレス空間と第2のメモリアドレス空間との間のマッピング関係に従って、ミラーアドレスを書込みアドレスに変換し、ミラーパケットに対応するミラー完了パケットを、別のプロセッサに送信するようにさらに構成され、ここで、ミラー完了パケットは書込みアドレスを含み、且つ、ミラー完了パケットは、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される。
【０１７０】
任意で、実施形態として、システムバスは、QPIバスまたはHTバスである。
【０１７１】
図10は、本発明の実施形態に係る、コンピュータの概略構成図である。図10におけるコンピュータ1000は、図1乃至図7における第1のコンピュータに対応しているとともに、第1のプロセッサによって実行される全てのステップを実施することができる。繰返しを回避するために、詳細はここでは再び説明されない。コンピュータ1000は別のコンピュータに接続され、それぞれのオペレーティングシステムは、コンピュータ1000および別のコンピュータ上でそれぞれ動作し、コンピュータ1000は第1のプロセッサを含み、別のコンピュータは第2のプロセッサを含み、第1のプロセッサと第2のプロセッサの両方はシステムバスインタフェースを含み、第1のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、第2のプロセッサのシステムバスインタフェースに接続され、別のコンピュータの第2のメモリアドレス空間は、コンピュータの第1のメモリアドレス空間のミラーアドレス空間である。
【０１７２】
コンピュータ1000は、
書込み要求を受信するように構成される受信モジュール1010であって、ここで、書込み要求は、書き込まれるべきターゲットデータおよびターゲットデータの書込みアドレスを含む、受信モジュール1010と、
書込みアドレスが第1のメモリアドレス空間内に配置されていると決定するように構成される決定モジュール1020と、
書込み要求内のターゲットデータを、第1のメモリアドレス空間内に書き込み、且つ、書込み要求内のターゲットデータを、システムバスを使用することによって、第2のプロセッサに送信するように構成され、その結果、第2のプロセッサは、ターゲットデータを、第2のメモリアドレス空間内に書き込む、ミラーリングモジュール1030とを含む。
【０１７３】
本発明の本実施形態では、2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【０１７４】
任意で、実施形態として、ミラーリングモジュール1030は、具体的には、書込み要求に従って、ターゲットデータおよび書込みアドレスを含み、且つ、ターゲットデータを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレス内に書き込むために使用される、ミラーパケットを生成し、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信し、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係に従って、ミラーパケット内の書込みアドレスをミラーアドレスに変換して、更新されたミラーパケットを取得し、更新されたミラーパケットを、システムバスを使用することによって、第2のプロセッサの非透過ブリッジに送信するように構成され、その結果、第2のプロセッサは、第2のプロセッサの非透過ブリッジによって受信された、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【０１７５】
任意で、実施形態として、ミラーリングモジュール1030は、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信した後、ミラー完了パケットを第1のプロセッサに送信し、ミラー完了パケットに従って、ターゲットデータのためのミラーリング操作の成功を確認し、且つ、ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成され、ここで、ミラー完了パケットはミラーパケットに対応しているとともに、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される。
【０１７６】
任意で、実施形態として、ミラーリングモジュール1030は、第1のプロセッサの非透過ブリッジが、事前に設定された時間内に、第2のプロセッサからミラー完了パケットを受信しないとき、ミラータイムアウトパケットを第1のプロセッサに送信し、ミラータイムアウトパケットに従って、ミラーリング操作の失敗を確認し、且つ、ミラートランザクションを終了するようにさらに構成される。
【０１７７】
任意で、実施形態として、ミラーリングモジュール1030は、書込み要求に従って、ターゲットデータおよび書込みアドレスを含む、ミラーパケットを生成し、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信するようにさらに構成され、ここで、第1のプロセッサの非透過ブリッジは、ミラーパケットを、システムバスを使用することによって、第2のプロセッサの非透過ブリッジに送信し、その結果、第2のプロセッサの非透過ブリッジは、ミラーパケット内の書込みアドレスを、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、第2のプロセッサは、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む。
【０１７８】
任意で、実施形態として、ミラーリングモジュール1030は、具体的には、書込み要求に従って、ターゲットデータのための書込みパケットを生成し、書込みパケットに従って、ターゲットデータを、第1のメモリアドレス空間内の書込みアドレス内に書き込むように構成される。
【０１７９】
任意で、実施形態として、システムバスはQPIバスまたはHTバスである。
【０１８０】
図11は、本発明の実施形態に係る、コンピュータの概略ブロック図である。図11におけるコンピュータ1100は、図1乃至図7における第2のコンピュータに対応しているとともに、第2のコンピュータの第2のプロセッサによって実行される全てのステップを実施することができる。繰返しを回避するために、詳細はここでは再び説明されない。コンピュータ1100は別のコンピュータに接続され、それぞれのオペレーティングシステムは、別のコンピュータおよびコンピュータ1100上でそれぞれ動作し、別のコンピュータは第1のプロセッサを含み、コンピュータ1100は第2のプロセッサを含み、第1のプロセッサと第2のプロセッサの両方はシステムバスインタフェースを含み、第1のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、第2のプロセッサのシステムバスインタフェースに接続され、コンピュータ1100の第2のメモリアドレス空間は、別のコンピュータの第1のメモリアドレス空間のミラーアドレス空間である。
【０１８１】
コンピュータ1100は、
システムバスを使用することによって、第1のプロセッサからターゲットデータを受信するように構成されるミラーリングモジュール1110であって、ここで、ターゲットデータは、第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、ターゲットデータの書込みアドレスは、第1のメモリアドレス空間内に配置される、ミラーリングモジュール1110と、
ターゲットデータを、第2のメモリアドレス空間内に書き込むように構成される書込み操作モジュール1120とを含む。
【０１８２】
本発明の本実施形態では、2つの異なるコンピュータのプロセッサは、システムバスを使用することによって共に接続される。システムバスは、従来技術におけるもののような複数のDMA操作を必要とすることなく、または、複雑なプロトコルベースの変換無しに、書き込まれるべきデータのミラーリング操作を実施するために使用され、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善する。
【０１８３】
任意で、実施形態として、ミラーリングモジュール1110は、具体的には、システムバスを使用することによって、第1のプロセッサから、ターゲットデータおよび、書込みアドレスの、第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信するように構成され、且つ、書込み操作モジュールは、具体的には、ミラーパケットを、ターゲットデータのための書込みパケットに変換し、コンピュータのメモリコントローラを使用することによって、書込みパケットを、第2のメモリアドレス空間内のミラーアドレス内に書き込むように構成される。
【０１８４】
任意で、実施形態として、ミラーリングモジュール1110は、メモリコントローラから、書込みパケットに対応する、ミラーアドレスを含む、書込み完了パケットを受信し、第1のメモリアドレス空間と第2のメモリアドレス空間との間のマッピング関係に従って、ミラーアドレスを書込みアドレスに変換し、ミラーパケットに対応するミラー完了パケットを、第1のプロセッサに送信するようにさらに構成され、ここで、ミラー完了パケットは書込みアドレスを含み、且つ、ミラー完了パケットは、ターゲットデータがミラーアドレス内に書き込まれたことを示すために使用される。
【０１８５】
任意で、実施形態として、システムバスはQPIバスまたはHTバスである。
【０１８６】
当業者は、本明細書で開示される実施形態で説明される例と組み合わせて、ユニットおよびアルゴリズムステップは、電子ハードウェアまたはコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実施されてよいことを認識することができる。機能がハードウェアによって実行されるかソフトウェアによって実行されるかは、技術的解決手段の特定用途および設計制約条件に依存する。当業者は、各特定用途のために説明された機能を実施するために異なる方法を使用してよいが、実施は、本発明の範囲を越えると考えられるべきではない。
【０１８７】
便利且つ簡潔な説明の目的のために、前述のシステム、装置およびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスに対して参照が行われてよいことは当業者によって明確に理解されることができ、且つ、詳細はここでは再び説明されない。
【０１８８】
本願で提供されるいくつかの実施形態では、開示されるシステム、装置および方法は、他の方式で実施されてよいことは理解されるべきである。例えば、説明される装置の実施形態は単に例示的なものである。例えば、ユニットの分割は、単に、論理的な機能の分割であり、且つ、実際の実施においては他の分割であってよい。例えば、複数のユニットまたはコンポーネントは、別のシステム内に結合または統合されてよく、または、いくつかの特徴は無視されるか実行されなくてよい。加えて、表示または議論される相互結合または直接結合または通信接続は、いくつかのインタフェースを使用することによって実施されてよい。装置またはユニット間の間接結合または通信接続は、電子的、機械的または他の形態で実施されてよい。
【０１８９】
別々の部分として説明されるユニットは、物理的に分離していてもしていなくてもよく、且つ、ユニットとして表示される部分は、物理的なユニットであってもなくてもよく、1つの位置に配置されてよく、または、複数のネットワークユニット上に分配されてよい。ユニットの一部または全ては、実施形態の解決手段の目的を達成するための実際のニーズに従って選択されてよい。
【０１９０】
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、または、ユニットの各々は、物理的に孤立して存在してよく、または、2つ以上のユニットは、1つのユニットに統合される。
【０１９１】
機能がソフトウェア機能ユニットの形態で実施され、且つ、独立した製品として販売または使用されるとき、機能は、コンピュータ可読記憶媒体内に記憶されてよい。このような理解に基づくと、本発明の技術的解決手段は、本質的に、または、従来技術に貢献する部分は、または、技術的解決手段のいくつかは、ソフトウェア製品の形態で実施されてよい。コンピュータソフトウェア製品は、記憶媒体内に記憶されるとともに、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワークデバイス等であってよい）に、本発明の実施形態で説明された方法のステップの全てまたは一部を実行するように命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ（ROM, Read-Only Memory）、ランダムアクセスメモリ（RAM, Random Access Memory）、磁気ディスクまたは光ディスク等の、プログラムコードを記憶することができる任意の媒体を含む。
【０１９２】
前述の説明は、単に、本発明の具体的な実施方式であるが、本発明の保護範囲を限定するために意図されない。本発明で開示された技術的範囲内の当業者によって容易に理解されるいかなる変更または置換も、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。
【符号の説明】
【０１９３】
800  プロセッサ
810  システムバスインタフェース
820  コントローラ
830  内部バス
840  非透過ブリッジ
900  プロセッサ
910  システムバスインタフェース
920  コントローラ
930  内部バス
940  非透過ブリッジ
1000  コンピュータ
1010  受信モジュール
1020  決定モジュール
1030  ミラーモジュール
1100  コンピュータ
1110  ミラーモジュール
1120  書込み操作モジュール
【図１】
2018503156.tif 000003
【図２】
2018503156.tif 000004
【図３】
2018503156.tif 000005
【図４】
2018503156.tif 000006
【図５】
2018503156.tif 000007
【図６】
2018503156.tif 000008
【図７】
2018503156.tif 000009
【図８】
2018503156.tif 000010
【図９】
2018503156.tif 000011
【図１０】
2018503156.tif 000012
【図１１】
2018503156.tif 000013
【手続補正書】
【提出日】平成29年5月19日(2017.5.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
クラスタコンピュータシステムは、一般に、複数のコンピュータから成り、それぞれのオペレーティングシステムは、複数のコンピュータ上でそれぞれ動作し、複数のコンピュータは独立して機能することができる。複数のコンピュータは、イーサネット（登録商標）バス、周辺機器コンポーネント相互接続エクスプレス（PCIe）バスまたはインフィニバンドバス等の入力/出力（I/O）バスを使用することによって相互接続され、このことは、コンピュータ間の通信およびデータ交換を実施することができる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
前述のことは、デュアルコントローラSANシステムにおける、ミラーリング操作プロセス全体である。このようなミラーリング操作は、コントローラBにおいて、コントローラAにおけるデータをバックアップすることと同等である。致命的なエラーがコントローラA上で発生し、且つ、故障が引き起こされたとき、コントローラBは依然として正常に機能することができ、且つ、コントローラAのメモリにおけるデータが、コントローラAの故障によって失われることが回避される。この場合、システム全体は、依然として、正常に動作且つ機能することができ、ストレージデバイスの信頼性を改善する。しかしながら、上述のミラーリングプロセスから、ミラーリング操作全体の間に、直接メモリアクセス（DMA）操作は2度実行される必要がある（1回目は、DDR0からデータを読み出し、2回目は、データをDDR1内に書き込む）ことがわかる。加えて、PCIe（イーサネット（登録商標）、インフィニバンド等）ネットワークプロトコル下で相互接続されるデバイス間のIOアクセスは、大量のソフトウェアプロトコルオーバヘッド（例えば、データカプセル化およびデカプセル化）を必ずもたらし、このことは、高いミラーリング操作のレイテンシおよびシステムの比較的乏しい読出し/書込み操作毎秒（Input/Output Operations Per Second, IOPS）性能を引き起こす。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の実施形態は、書込み要求処理方法およびプロセッサ、およびコンピュータを提供し、これらは、クラスタコンピュータシステムにおけるデータミラーリング操作のレイテンシを低減するとともに、システムのIOPSを改善することができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
任意で、実施形態では、システムバスは、キャッシュコヒーレンス（CC）をサポートするバスであってよい。例えば、システムバスは、CCバスと呼ばれてよい。実施形態では、システムバスは、ハイパートランスポート（HT）バスまたはクイックパスインターコネクト（Quick Path Interconnect, QPI）バスのうちの少なくとも1つであってよい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１１６
【補正方法】変更
【補正の内容】
【０１１６】
ミラーパケットおよび非透過ブリッジを導入することに基づいて、任意で、実施形態として、ステップ330は、第1のプロセッサによって、書込み要求に従って、ミラーパケットを生成するステップであって、ここで、ミラーパケットは、ターゲットデータおよび書込みアドレスを含み、且つ、ミラーパケットは、ターゲットデータを、書込みアドレスの、第2のメモリアドレス空間におけるミラーアドレス内に書き込むために使用される、ステップと、第1のプロセッサによって、ミラーパケットを、第1のプロセッサの非透過ブリッジに送信するステップと、第1のプロセッサの非透過ブリッジによって、第1のメモリアドレス空間と第2のメモリアドレス空間との間のミラー関係に従って、ミラーパケット内の書込みアドレスをミラーアドレスに変換して、更新されたミラーパケットを取得するステップと、第1のプロセッサの非透過ブリッジによって、更新されたミラーパケットを、システムバスを使用することによって、第2のプロセッサに送信し、その結果、第2のプロセッサは、更新されたミラーパケットに従って、ターゲットデータをミラーアドレス内に書き込む、ステップとを含んでよい。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
本発明の本実施形態では、システムバス上でミラーリング操作を実行することに関する完全な論理が第1のプロセッサに追加される。論理は、ここでのミラーリング操作が、ミラーリング操作の成功または失敗に関係なく終了されるものであることを保証し、このことは、システムバス上のミラーリング操作の失敗によって引き起こされるシステムの故障を回避することができる。これに基づいて、コンピュータ内部のプロセッサの、システムバスインタフェースのブルートフォース・サプライズ拡張、例えば、システムバスインタフェースのサプライズ拡張またはサプライズ除去がさらにサポートされることができる。具体的には、従来技術では、スタンドアロンシステムにおける複数のプロセッサはまた、システムバスを使用することによって接続される。例えば、従来技術におけるキャッシュコヒーレンスをサポートする不均等メモリアクセスアーキテクチャ（NUMA）システムにおいて、各プロセッサはローカルメモリにアクセスしてよく、または、システムバスを使用することによって、非ローカルメモリにアクセスしてよく、すなわち、複数のプロセッサのメモリは共有されてよい。しかしながら、単一のオペレーティングシステムは、このようなマルチプロセッサシステムのメモリ上で動作し、且つ、本質的に、マルチプロセッサシステムはさらに、クラスタコンピュータシステムの代わりにスタンドアロンシステムである。システムバスを使用することによって、複数のプロセッサ間で実行される操作は、スタンドアロンシステムの内部の操作として本質的にさらにみなされる。スタンドアロンシステムのシステムバス上の全ての操作は、ハードウェアによって完了される。一度プロセッサのシステムバス上の操作中にエラーが生じると（例えば、ブルートフォース・サプライズ拡張がシステムバスインタフェース上で生じる）、エラーはハードウェアエラーである。ハードウェアエラーは、スタンドアロンシステムの故障を引き起こす。システムバス上の操作エラーによって引き起こされるシステムの故障を回避するために、システムバス上のミラーリング操作を実行することに関する完全な論理が第1のプロセッサに追加される。論理は、ここでのミラーリング操作が、ミラーリング操作の成功または失敗に関わらず終了されるものであることを保証し、このようにして、システムバス上の操作の不完全性またはシステムバス上の操作中のエラーによるシステムの故障が回避されることができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１６５
【補正方法】変更
【補正の内容】
【０１６５】
図9は、本発明の実施形態に係る、プロセッサの概略構成図である。図9におけるプロセッサ900は、図1乃至図7における、第2のプロセッサによって実行される全てのステップを実施することができる。繰返しを回避するために、詳細はここでは再び説明されない。プロセッサ900は第1のコンピュータに接続される第2のコンピュータ内に配置され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第1のコンピュータは別のプロセッサを含み、プロセッサ900はシステムバスインタフェース910を含み、別のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、プロセッサのシステムバスインタフェースに接続され、第2のコンピュータの第2のメモリアドレス空間は、第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、プロセッサ900は、コントローラ920、内部バス930および非透過ブリッジ940を含み、非透過ブリッジ940は、プロセッサ900のシステムバスインタフェース910に接続され、コントローラ920は、内部バス930を使用することによって、非透過ブリッジ940に接続される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１８０
【補正方法】変更
【補正の内容】
【０１８０】
図11は、本発明の実施形態に係る、コンピュータの概略構成図である。図11におけるコンピュータ1100は、図1乃至図7における第2のコンピュータに対応しているとともに、第2のコンピュータの第2のプロセッサによって実行される全てのステップを実施することができる。繰返しを回避するために、詳細はここでは再び説明されない。コンピュータ1100は別のコンピュータに接続され、それぞれのオペレーティングシステムは、別のコンピュータおよびコンピュータ1100上でそれぞれ動作し、別のコンピュータは第1のプロセッサを含み、コンピュータ1100は第2のプロセッサを含み、第1のプロセッサと第2のプロセッサの両方はシステムバスインタフェースを含み、第1のプロセッサのシステムバスインタフェースは、システムバスを使用することによって、第2のプロセッサのシステムバスインタフェースに接続され、コンピュータ1100の第2のメモリアドレス空間は、別のコンピュータの第1のメモリアドレス空間のミラーアドレス空間である。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1のコンピュータに適用される書込み要求処理方法であって、前記第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは第1のプロセッサを含み、前記第2のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記方法は、
前記第1のプロセッサによって、書込み要求を受信するステップであって、前記書込み要求は、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、ステップと、
前記第1のプロセッサによって、前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定するステップと、
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信し、その結果、前記第2のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、ステップとを含む、方法。
【請求項２】
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信する前記ステップは、
前記第1のプロセッサによって、前記書込み要求に従って、ミラーパケットを生成するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップと、
前記第1のプロセッサによって、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するステップと、
前記第1のプロセッサの前記非透過ブリッジによって、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得するステップと、
前記第1のプロセッサの前記非透過ブリッジによって、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサは、前記第2のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、ステップとを含む、請求項1に記載の方法。
【請求項３】
前記方法は、
前記第1のプロセッサの前記非透過ブリッジが、事前に設定された時間内に、前記第2のプロセッサからミラー完了パケットを受信した後、前記第1のプロセッサの前記非透過ブリッジによって、前記ミラー完了パケットを前記第1のプロセッサに送信するステップであって、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、ステップと、
前記第1のプロセッサによって、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するステップとをさらに含む、請求項2に記載の方法。
【請求項４】
前記方法は、
前記第1のプロセッサの前記非透過ブリッジが、前記事前に設定された時間内に、前記第2のプロセッサから前記ミラー完了パケットを受信しないとき、前記第1のプロセッサの前記非透過ブリッジによって、ミラータイムアウトパケットを前記第1のプロセッサに送信するステップと、
前記第1のプロセッサによって、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するステップとをさらに含む、請求項3に記載の方法。
【請求項５】
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信する前記ステップは、
前記第1のプロセッサによって、前記書込み要求に従って、ミラーパケットを生成するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップと、
前記第1のプロセッサによって、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するステップであって、前記第1のプロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記第2のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、ステップとを含む、請求項1に記載の方法。
【請求項６】
前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込む前記ステップは、
前記第1のプロセッサによって、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成するステップと、
前記第1のプロセッサによって、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むステップとを含む、請求項1乃至5のうちのいずれか1項に記載の方法。
【請求項７】
前記システムバスは、クイックパスインターコネクト（QPI）バスまたはハイパートランスポート（HT）バスである、請求項1乃至6のうちのいずれか1項に記載の方法。
【請求項８】
書込み要求処理方法であって、前記方法は、第1のコンピュータに接続される第2のコンピュータに適用され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは第1のプロセッサを含み、前記第2のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記方法は、
前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信するステップであって、前記ターゲットデータは、前記第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、ステップと、
前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むステップとを含む、方法。
【請求項９】
前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信する前記ステップは、
前記第2のプロセッサの非透過ブリッジによって、前記システムバスを使用することによって、前記第1のプロセッサからミラーパケットを受信するステップであって、前記ミラーパケットは、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ステップを含み、且つ、
前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込む前記ステップは、
前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換するステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むステップとを含む、請求項8に記載の方法。
【請求項１０】
前記方法は、
前記第2のプロセッサの前記非透過ブリッジによって、前記メモリコントローラから、前記書込みパケットに対応する書込み完了パケットを受信するステップであって、前記書込み完了パケットは前記ミラーアドレスを含む、ステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換するステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットに対応するミラー完了パケットを、前記第1のプロセッサに送信するステップであって、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、ステップとをさらに含む、請求項9に記載の方法。
【請求項１１】
前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信する前記ステップは、
前記第2のプロセッサの非透過ブリッジによって、前記システムバスを使用することによって、前記第1のプロセッサからミラーパケットを受信するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップを含み、且つ、
前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込む前記ステップは、
前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換するステップと、
前記第2のプロセッサの前記非透過ブリッジによって、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むステップとを含む、請求項8に記載の方法。
【請求項１２】
前記システムバスは、クイックパスインターコネクト（QPI）バスまたはハイパートランスポート（HT）バスである、請求項8乃至11のうちのいずれか1項に記載の方法。
【請求項１３】
プロセッサであって、前記プロセッサは第1のコンピュータ内に配置され、前記第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第2のコンピュータは別のプロセッサを含み、前記プロセッサと前記別のプロセッサの両方はシステムバスインタフェースを含み、前記プロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記別のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、前記プロセッサは、コントローラおよび内部バスをさらに含み、前記コントローラは、前記内部バスを使用することによって、前記プロセッサの前記システムバスインタフェースに接続され、且つ、
前記コントローラは、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、書込み要求を受信し、前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定し、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記別のプロセッサに送信するように構成され、その結果、前記別のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、プロセッサ。
【請求項１４】
前記プロセッサは、非透過ブリッジをさらに含み、前記非透過ブリッジは前記システムバスインタフェースに接続され、前記非透過ブリッジは、前記内部バスを使用することによって、前記コントローラに接続され、
前記コントローラは、具体的には、前記書込み要求に従って、ミラーパケットを生成するように構成され、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含み、
前記非透過ブリッジは、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記別のプロセッサの非透過ブリッジに送信するように構成され、その結果、前記別のプロセッサは、前記別のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項13に記載のプロセッサ。
【請求項１５】
前記非透過ブリッジは、事前に設定された時間内に、前記別のプロセッサからミラー完了パケットを受信した後、前記ミラー完了パケットを前記コントローラに送信するようにさらに構成され、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用され、且つ、
前記コントローラは、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成される、請求項14に記載のプロセッサ。
【請求項１６】
前記非透過ブリッジは、前記ミラー完了パケットが、前記事前に設定された時間内に、前記別のプロセッサから受信されないとき、ミラータイムアウトパケットを前記コントローラに送信するようにさらに構成され、且つ、
前記コントローラは、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するようにさらに構成される、請求項15に記載のプロセッサ。
【請求項１７】
前記コントローラは、具体的には、前記書込み要求に従って、ミラーパケットを生成し、前記ミラーパケットを、前記プロセッサの非透過ブリッジに送信するように構成され、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含み、前記プロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記別のプロセッサの非透過ブリッジに送信し、その結果、前記別のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記別のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項13に記載のプロセッサ。
【請求項１８】
前記コントローラは、具体的には、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成し、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むように構成される、請求項13乃至17のうちのいずれか1項に記載のプロセッサ。
【請求項１９】
前記システムバスは、クイックパスインターコネクト（QPI）バスまたはハイパートランスポート（HT）バスである、請求項13乃至18のうちのいずれか1項に記載のプロセッサ。
【請求項２０】
プロセッサであって、前記プロセッサは第1のコンピュータに接続される第2のコンピュータ内に配置され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは別のプロセッサを含み、前記別のプロセッサと前記プロセッサの両方はシステムバスインタフェースを含み、前記別のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記プロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、前記プロセッサは、コントローラ、非透過ブリッジおよび内部バスを含み、前記非透過ブリッジは、前記プロセッサの前記システムバスインタフェースに接続され、前記コントローラは、前記内部バスを使用することによって、前記非透過ブリッジに接続され、且つ、
前記非透過ブリッジは、前記システムバスを使用することによって、前記別のプロセッサからターゲットデータを受信し、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むように構成され、前記ターゲットデータは、前記別のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、プロセッサ。
【請求項２１】
前記非透過ブリッジは、具体的には、前記システムバスを使用することによって、前記別のプロセッサから、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信し、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項20に記載のプロセッサ。
【請求項２２】
前記非透過ブリッジは、前記メモリコントローラから、前記書込みパケットに対応する、前記ミラーアドレスを含む書込み完了パケットを受信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換し、前記ミラーパケットに対応するミラー完了パケットを、前記別のプロセッサに送信するようにさらに構成され、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項21に記載のプロセッサ。
【請求項２３】
前記非透過ブリッジは、具体的には、前記システムバスを使用することによって、前記別のプロセッサから、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを受信し、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項20に記載のプロセッサ。
【請求項２４】
前記システムバスは、クイックパスインターコネクト（QPI）バスまたはハイパートランスポート（HT）バスである、請求項20乃至23のうちのいずれか1項に記載のプロセッサ。
【請求項２５】
コンピュータであって、前記コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、前記コンピュータおよび前記別のコンピュータ上でそれぞれ動作し、前記コンピュータは第1のプロセッサを含み、前記別のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記別のコンピュータの第2のメモリアドレス空間は、前記コンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記コンピュータは、
書込み要求を受信するように構成される受信モジュールであって、前記書込み要求は、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、受信モジュールと、
前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定するように構成される決定モジュールと、
前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信するように構成され、その結果、前記第2のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、ミラーリングモジュールとを含む、コンピュータ。
【請求項２６】
前記ミラーリングモジュールは、具体的には、前記書込み要求に従って、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを生成し、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信するように構成され、その結果、前記第2のプロセッサは、前記第2のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項25に記載のコンピュータ。
【請求項２７】
前記ミラーリングモジュールは、前記第1のプロセッサの前記非透過ブリッジが、事前に設定された時間内に、前記第2のプロセッサからミラー完了パケットを受信した後、前記ミラー完了パケットを前記第1のプロセッサに送信し、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成され、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項26に記載のコンピュータ。
【請求項２８】
前記ミラーリングモジュールは、前記第1のプロセッサの前記非透過ブリッジが、前記事前に設定された時間内に、前記第2のプロセッサから前記ミラー完了パケットを受信しないとき、ミラータイムアウトパケットを前記第1のプロセッサに送信し、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するようにさらに構成される、請求項27に記載のコンピュータ。
【請求項２９】
前記ミラーリングモジュールは、前記書込み要求に従って、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを生成し、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するようにさらに構成され、前記第1のプロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記第2のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項25に記載のコンピュータ。
【請求項３０】
前記ミラーリングモジュールは、具体的には、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成し、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むように構成される、請求項25乃至29のうちのいずれか1項に記載のコンピュータ。
【請求項３１】
前記システムバスは、クイックパスインターコネクト（QPI）バスまたはハイパートランスポート（HT）バスである、請求項25乃至30のうちのいずれか1項に記載のコンピュータ。
【請求項３２】
コンピュータであって、前記コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、前記別のコンピュータおよび前記コンピュータ上でそれぞれ動作し、前記別のコンピュータは第1のプロセッサを含み、前記コンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記コンピュータの第2のメモリアドレス空間は、前記別のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
前記コンピュータは、
前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信するように構成されるミラーリングモジュールであって、前記ターゲットデータは、前記第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、ミラーリングモジュールと、
前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むように構成される書込み操作モジュールとを含む、コンピュータ。
【請求項３３】
前記ミラーリングモジュールは、具体的には、前記システムバスを使用することによって、前記第1のプロセッサから、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信するように構成され、且つ、前記書込み操作モジュールは、具体的には、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、前記コンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項32に記載のコンピュータ。
【請求項３４】
前記ミラーリングモジュールは、前記メモリコントローラから、前記書込みパケットに対応する、前記ミラーアドレスを含む、書込み完了パケットを受信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換し、前記ミラーパケットに対応するミラー完了パケットを、前記第1のプロセッサに送信するようにさらに構成され、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項33に記載のコンピュータ。
【請求項３５】
前記ミラーリングモジュールは、具体的には、前記システムバスを使用することによって、前記第1のプロセッサから、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを受信するように構成され、且つ、前記書込み操作モジュールは、具体的には、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換し、前記コンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項32に記載のコンピュータ。
【請求項３６】
前記システムバスは、クイックパスインターコネクト（QPI）バスまたはハイパートランスポート（HT）バスである、請求項32乃至35のうちのいずれか1項に記載のコンピュータ。
【国際調査報告】
2018503156.tif 000014
2018503156.tif 000015
2018503156.tif 000016
2018503156.tif 000017