JP2018503156A - 書込み要求処理方法、プロセッサおよびコンピュータ - Google Patents

書込み要求処理方法、プロセッサおよびコンピュータ Download PDF

Info

Publication number
JP2018503156A
JP2018503156A JP2017525338A JP2017525338A JP2018503156A JP 2018503156 A JP2018503156 A JP 2018503156A JP 2017525338 A JP2017525338 A JP 2017525338A JP 2017525338 A JP2017525338 A JP 2017525338A JP 2018503156 A JP2018503156 A JP 2018503156A
Authority
JP
Japan
Prior art keywords
processor
mirror
packet
write
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017525338A
Other languages
English (en)
Inventor
春宝 ▲嚴▼
春宝 ▲嚴▼
羽 ▲張▼
羽 ▲張▼
▲偉▼ ▲鄭▼
▲偉▼ ▲鄭▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018503156A publication Critical patent/JP2018503156A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Bus Control (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Systems (AREA)

Abstract

本発明の実施形態は、書込み要求処理方法、プロセッサおよびコンピュータを提供する。第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、第1のコンピュータおよび第2のコンピュータ上でそれぞれ動作し、第1のコンピュータは第1のプロセッサを含み、第1のプロセッサは、システムバスを使用することによって、第2のコンピュータの第2のプロセッサに接続され、第1のコンピュータは第1のメモリアドレス空間を含み、第2のコンピュータの第2のメモリアドレス空間は、第1のメモリアドレス空間のミラーアドレス空間であり、第1のプロセッサは、第1のメモリアドレス空間内に書き込まれるデータを、システムバスを使用することによって、第2のメモリアドレス空間に写し、このことは、ミラーリング操作のレイテンシを低減するとともに、システムのIOPS性能を改善することができる。

Description

本発明の実施形態はコンピュータの分野に関し、より詳細には、書込み要求処理方法、プロセッサおよびコンピュータに関する。
クラスタコンピュータシステムは、一般に、複数のコンピュータから成り、それぞれのオペレーティングシステムは、複数のコンピュータ上でそれぞれ動作し、複数のコンピュータは独立して機能することができる。複数のコンピュータは、イーサネット(登録商標)バス、周辺機器コンポーネント相互接続エクスプレス(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 書込み操作モジュール
クラスタコンピュータシステムは、一般に、複数のコンピュータから成り、それぞれのオペレーティングシステムは、複数のコンピュータ上でそれぞれ動作し、複数のコンピュータは独立して機能することができる。複数のコンピュータは、イーサネット(登録商標)バス、周辺機器コンポーネント相互接続エクスプレス(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のメモリアドレス空間のミラーアドレス空間である。

Claims (36)

  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のメモリアドレス空間内に、前記ターゲットデータを書き込む、ステップとを含む、方法。
  2. 前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信する前記ステップは、
    前記第1のプロセッサによって、前記書込み要求に従って、ミラーパケットを生成するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップと、
    前記第1のプロセッサによって、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するステップと、
    前記第1のプロセッサの前記非透過ブリッジによって、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得するステップと、
    前記第1のプロセッサの前記非透過ブリッジによって、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサは、前記第2のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、ステップとを含む、請求項1に記載の方法。
  3. 前記方法は、
    前記第1のプロセッサの前記非透過ブリッジが、事前に設定された時間内に、前記第2のプロセッサからミラー完了パケットを受信した後、前記第1のプロセッサの前記非透過ブリッジによって、前記ミラー完了パケットを前記第1のプロセッサに送信するステップであって、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、ステップと、
    前記第1のプロセッサによって、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するステップとをさらに含む、請求項2に記載の方法。
  4. 前記方法は、
    前記第1のプロセッサの前記非透過ブリッジが、前記事前に設定された時間内に、前記第2のプロセッサから前記ミラー完了パケットを受信しないとき、前記第1のプロセッサの前記非透過ブリッジによって、ミラータイムアウトパケットを前記第1のプロセッサに送信するステップと、
    前記第1のプロセッサによって、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するステップとをさらに含む、請求項3に記載の方法。
  5. 前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信する前記ステップは、
    前記第1のプロセッサによって、前記書込み要求に従って、ミラーパケットを生成するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップと、
    前記第1のプロセッサによって、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するステップであって、前記第1のプロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記第2のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、ステップとを含む、請求項1に記載の方法。
  6. 前記第1のプロセッサによって、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込む前記ステップは、
    前記第1のプロセッサによって、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成するステップと、
    前記第1のプロセッサによって、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むステップとを含む、請求項1乃至5のうちのいずれか1項に記載の方法。
  7. 前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項1乃至6のうちのいずれか1項に記載の方法。
  8. 書込み要求処理方法であって、前記方法は、第1のコンピュータに接続される第2のコンピュータに適用され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは第1のプロセッサを含み、前記第2のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
    前記方法は、
    前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信するステップであって、前記ターゲットデータは、前記第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、ステップと、
    前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むステップとを含む、方法。
  9. 前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信する前記ステップは、
    前記第2のプロセッサの非透過ブリッジによって、前記システムバスを使用することによって、前記第1のプロセッサからミラーパケットを受信するステップであって、前記ミラーパケットは、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ステップを含み、且つ、
    前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込む前記ステップは、
    前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換するステップと、
    前記第2のプロセッサの前記非透過ブリッジによって、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むステップとを含む、請求項8に記載の方法。
  10. 前記方法は、
    前記第2のプロセッサの前記非透過ブリッジによって、前記メモリコントローラから、前記書込みパケットに対応する書込み完了パケットを受信するステップであって、前記書込み完了パケットは前記ミラーアドレスを含む、ステップと、
    前記第2のプロセッサの前記非透過ブリッジによって、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換するステップと、
    前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットに対応するミラー完了パケットを、前記第1のプロセッサに送信するステップであって、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、ステップとをさらに含む、請求項9に記載の方法。
  11. 前記第2のプロセッサによって、前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信する前記ステップは、
    前記第2のプロセッサの非透過ブリッジによって、前記システムバスを使用することによって、前記第1のプロセッサからミラーパケットを受信するステップであって、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含む、ステップを含み、且つ、
    前記第2のプロセッサによって、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込む前記ステップは、
    前記第2のプロセッサの前記非透過ブリッジによって、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換するステップと、
    前記第2のプロセッサの前記非透過ブリッジによって、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むステップとを含む、請求項8に記載の方法。
  12. 前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項8乃至11のうちのいずれか1項に記載の方法。
  13. プロセッサであって、前記プロセッサは第1のコンピュータ内に配置され、前記第1のコンピュータは第2のコンピュータに接続され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第2のコンピュータは別のプロセッサを含み、前記プロセッサと前記別のプロセッサの両方はシステムバスインタフェースを含み、前記プロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記別のプロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、前記プロセッサは、コントローラおよび内部バスをさらに含み、前記コントローラは、前記内部バスを使用することによって、前記プロセッサの前記システムバスインタフェースに接続され、且つ、
    前記コントローラは、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、書込み要求を受信し、前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定し、前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記別のプロセッサに送信するように構成され、その結果、前記別のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、プロセッサ。
  14. 前記プロセッサは、非透過ブリッジをさらに含み、前記非透過ブリッジは前記システムバスインタフェースに接続され、前記非透過ブリッジは、前記内部バスを使用することによって、前記コントローラに接続され、
    前記コントローラは、具体的には、前記書込み要求に従って、ミラーパケットを生成するように構成され、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含み、
    前記非透過ブリッジは、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記別のプロセッサの非透過ブリッジに送信するように構成され、その結果、前記別のプロセッサは、前記別のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項13に記載のプロセッサ。
  15. 前記非透過ブリッジは、事前に設定された時間内に、前記別のプロセッサからミラー完了パケットを受信した後、前記ミラー完了パケットを前記コントローラに送信するようにさらに構成され、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用され、且つ、
    前記コントローラは、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成される、請求項14に記載のプロセッサ。
  16. 前記非透過ブリッジは、前記ミラー完了パケットが、前記事前に設定された時間内に、前記別のプロセッサから受信されないとき、ミラータイムアウトパケットを前記コントローラに送信するようにさらに構成され、且つ、
    前記コントローラは、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するようにさらに構成される、請求項15に記載のプロセッサ。
  17. 前記コントローラは、具体的には、前記書込み要求に従って、ミラーパケットを生成し、前記ミラーパケットを、前記プロセッサの非透過ブリッジに送信するように構成され、前記ミラーパケットは、前記ターゲットデータおよび前記書込みアドレスを含み、前記プロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記別のプロセッサの非透過ブリッジに送信し、その結果、前記別のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記別のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項13に記載のプロセッサ。
  18. 前記コントローラは、具体的には、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成し、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むように構成される、請求項13乃至17のうちのいずれか1項に記載のプロセッサ。
  19. 前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項13乃至18のうちのいずれか1項に記載のプロセッサ。
  20. プロセッサであって、前記プロセッサは第1のコンピュータに接続される第2のコンピュータ内に配置され、それぞれのオペレーティングシステムは、前記第1のコンピュータおよび前記第2のコンピュータ上でそれぞれ動作し、前記第1のコンピュータは別のプロセッサを含み、前記別のプロセッサと前記プロセッサの両方はシステムバスインタフェースを含み、前記別のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記プロセッサの前記システムバスインタフェースに接続され、前記第2のコンピュータの第2のメモリアドレス空間は、前記第1のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、前記プロセッサは、コントローラ、非透過ブリッジおよび内部バスを含み、前記非透過ブリッジは、前記プロセッサの前記システムバスインタフェースに接続され、前記コントローラは、前記内部バスを使用することによって、前記非透過ブリッジに接続され、且つ、
    前記非透過ブリッジは、前記システムバスを使用することによって、前記別のプロセッサからターゲットデータを受信し、前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むように構成され、前記ターゲットデータは、前記別のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、プロセッサ。
  21. 前記非透過ブリッジは、具体的には、前記システムバスを使用することによって、前記別のプロセッサから、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信し、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項20に記載のプロセッサ。
  22. 前記非透過ブリッジは、前記メモリコントローラから、前記書込みパケットに対応する、前記ミラーアドレスを含む書込み完了パケットを受信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換し、前記ミラーパケットに対応するミラー完了パケットを、前記別のプロセッサに送信するようにさらに構成され、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項21に記載のプロセッサ。
  23. 前記非透過ブリッジは、具体的には、前記システムバスを使用することによって、前記別のプロセッサから、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを受信し、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項20に記載のプロセッサ。
  24. 前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項20乃至23のうちのいずれか1項に記載のプロセッサ。
  25. コンピュータであって、前記コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、前記コンピュータおよび前記別のコンピュータ上でそれぞれ動作し、前記コンピュータは第1のプロセッサを含み、前記別のコンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記別のコンピュータの第2のメモリアドレス空間は、前記コンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
    前記コンピュータは、
    書込み要求を受信するように構成される受信モジュールであって、前記書込み要求は、書き込まれるべきターゲットデータおよび前記ターゲットデータの書込みアドレスを含む、受信モジュールと、
    前記書込みアドレスが前記第1のメモリアドレス空間内に配置されていると決定するように構成される決定モジュールと、
    前記書込み要求内の前記ターゲットデータを、前記第1のメモリアドレス空間内に書き込み、且つ、前記書込み要求内の前記ターゲットデータを、前記システムバスを使用することによって、前記第2のプロセッサに送信するように構成され、その結果、前記第2のプロセッサは、前記第2のメモリアドレス空間内に、前記ターゲットデータを書き込む、ミラーリングモジュールとを含む、コンピュータ。
  26. 前記ミラーリングモジュールは、具体的には、前記書込み要求に従って、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを生成し、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のミラー関係に従って、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、前記更新されたミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信するように構成され、その結果、前記第2のプロセッサは、前記第2のプロセッサの前記非透過ブリッジによって受信された、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項25に記載のコンピュータ。
  27. 前記ミラーリングモジュールは、前記第1のプロセッサの前記非透過ブリッジが、事前に設定された時間内に、前記第2のプロセッサからミラー完了パケットを受信した後、前記ミラー完了パケットを前記第1のプロセッサに送信し、前記ミラー完了パケットに従って、前記ターゲットデータのためのミラーリング操作の成功を確認し、且つ、前記ミラーリング操作に対応するミラートランザクションを終了するようにさらに構成され、前記ミラー完了パケットは前記ミラーパケットに対応しているとともに、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項26に記載のコンピュータ。
  28. 前記ミラーリングモジュールは、前記第1のプロセッサの前記非透過ブリッジが、前記事前に設定された時間内に、前記第2のプロセッサから前記ミラー完了パケットを受信しないとき、ミラータイムアウトパケットを前記第1のプロセッサに送信し、前記ミラータイムアウトパケットに従って、前記ミラーリング操作の失敗を確認し、且つ、前記ミラートランザクションを終了するようにさらに構成される、請求項27に記載のコンピュータ。
  29. 前記ミラーリングモジュールは、前記書込み要求に従って、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを生成し、前記ミラーパケットを、前記第1のプロセッサの非透過ブリッジに送信するようにさらに構成され、前記第1のプロセッサの前記非透過ブリッジは、前記ミラーパケットを、前記システムバスを使用することによって、前記第2のプロセッサの非透過ブリッジに送信し、その結果、前記第2のプロセッサの前記非透過ブリッジは、前記ミラーパケット内の前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換して、更新されたミラーパケットを取得し、且つ、前記第2のプロセッサは、前記更新されたミラーパケットに従って、前記ターゲットデータを前記ミラーアドレス内に書き込む、請求項25に記載のコンピュータ。
  30. 前記ミラーリングモジュールは、具体的には、前記書込み要求に従って、前記ターゲットデータのための書込みパケットを生成し、前記書込みパケットに従って、前記ターゲットデータを、前記第1のメモリアドレス空間内の前記書込みアドレス内に書き込むように構成される、請求項25乃至29のうちのいずれか1項に記載のコンピュータ。
  31. 前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項25乃至30のうちのいずれか1項に記載のコンピュータ。
  32. コンピュータであって、前記コンピュータは別のコンピュータに接続され、それぞれのオペレーティングシステムは、前記別のコンピュータおよび前記コンピュータ上でそれぞれ動作し、前記別のコンピュータは第1のプロセッサを含み、前記コンピュータは第2のプロセッサを含み、前記第1のプロセッサと前記第2のプロセッサの両方はシステムバスインタフェースを含み、前記第1のプロセッサの前記システムバスインタフェースは、システムバスを使用することによって、前記第2のプロセッサの前記システムバスインタフェースに接続され、前記コンピュータの第2のメモリアドレス空間は、前記別のコンピュータの第1のメモリアドレス空間のミラーアドレス空間であり、且つ、
    前記コンピュータは、
    前記システムバスを使用することによって、前記第1のプロセッサからターゲットデータを受信するように構成されるミラーリングモジュールであって、前記ターゲットデータは、前記第1のプロセッサのメモリ内に書き込まれるべきデータであり、且つ、前記ターゲットデータの書込みアドレスは、前記第1のメモリアドレス空間内に配置される、ミラーリングモジュールと、
    前記ターゲットデータを、前記第2のメモリアドレス空間内に書き込むように構成される書込み操作モジュールとを含む、コンピュータ。
  33. 前記ミラーリングモジュールは、具体的には、前記システムバスを使用することによって、前記第1のプロセッサから、前記ターゲットデータおよび、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスを含む、ミラーパケットを受信するように構成され、且つ、前記書込み操作モジュールは、具体的には、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、前記コンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項32に記載のコンピュータ。
  34. 前記ミラーリングモジュールは、前記メモリコントローラから、前記書込みパケットに対応する、前記ミラーアドレスを含む、書込み完了パケットを受信し、前記第1のメモリアドレス空間と前記第2のメモリアドレス空間との間のマッピング関係に従って、前記ミラーアドレスを前記書込みアドレスに変換し、前記ミラーパケットに対応するミラー完了パケットを、前記第1のプロセッサに送信するようにさらに構成され、前記ミラー完了パケットは前記書込みアドレスを含み、且つ、前記ミラー完了パケットは、前記ターゲットデータが前記ミラーアドレス内に書き込まれたことを示すために使用される、請求項33に記載のコンピュータ。
  35. 前記ミラーリングモジュールは、具体的には、前記システムバスを使用することによって、前記第1のプロセッサから、前記ターゲットデータおよび前記書込みアドレスを含む、ミラーパケットを受信するように構成され、且つ、前記書込み操作モジュールは、具体的には、前記ミラーパケットを、前記ターゲットデータのための書込みパケットに変換し、且つ、前記書込みアドレスを、前記書込みアドレスの、前記第2のメモリアドレス空間内のミラーアドレスに変換し、前記第2のコンピュータのメモリコントローラを使用することによって、前記書込みパケットを、前記第2のメモリアドレス空間内の前記ミラーアドレス内に書き込むように構成される、請求項32に記載のコンピュータ。
  36. 前記システムバスは、クイックパスインターコネクトQPIバスまたはハイパートランスポートHTバスである、請求項32乃至35のうちのいずれか1項に記載のコンピュータ。
JP2017525338A 2015-12-17 2015-12-17 書込み要求処理方法、プロセッサおよびコンピュータ Pending JP2018503156A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/097742 WO2017101080A1 (zh) 2015-12-17 2015-12-17 处理写请求的方法、处理器和计算机

Publications (1)

Publication Number Publication Date
JP2018503156A true JP2018503156A (ja) 2018-02-01

Family

ID=59055462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017525338A Pending JP2018503156A (ja) 2015-12-17 2015-12-17 書込み要求処理方法、プロセッサおよびコンピュータ

Country Status (11)

Country Link
US (1) US20170220255A1 (ja)
EP (1) EP3211535A4 (ja)
JP (1) JP2018503156A (ja)
KR (1) KR20170086484A (ja)
CN (1) CN107209725A (ja)
AU (1) AU2015411096A1 (ja)
BR (1) BR112017008674A2 (ja)
CA (1) CA2963915A1 (ja)
RU (1) RU2017118316A (ja)
SG (1) SG11201702806UA (ja)
WO (1) WO2017101080A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491587B (zh) * 2017-09-11 2021-03-23 华为技术有限公司 数据访问的方法及装置
CN109462497B (zh) * 2018-10-22 2022-07-29 杭州迪普科技股份有限公司 传输管理数据的方法、装置、设备及存储介质
CN111813707B (zh) * 2020-07-17 2023-12-22 济南浪潮数据技术有限公司 一种数据同步方法、装置、设备及存储介质
CN112835519B (zh) * 2021-01-29 2023-03-14 杭州海康威视数字技术股份有限公司 一种数据读取方法、装置、电子设备及存储介质
CN114095584A (zh) * 2021-11-29 2022-02-25 重庆忽米网络科技有限公司 工业设备数据的模型转换与构建方法及可读存储介质
CN115543636B (zh) * 2022-11-29 2023-03-21 苏州浪潮智能科技有限公司 一种多控制器的数据备份方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
JP2015501957A (ja) * 2012-03-23 2015-01-19 株式会社日立製作所 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765196A (en) * 1996-02-27 1998-06-09 Sun Microsystems, Inc. System and method for servicing copyback requests in a multiprocessor system with a shared memory
US6944719B2 (en) * 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US20060212644A1 (en) * 2005-03-21 2006-09-21 Acton John D Non-volatile backup for data cache
US8839268B2 (en) * 2008-02-07 2014-09-16 Oracle America, Inc. Method and system of preventing silent data corruption
US9032101B1 (en) * 2008-12-10 2015-05-12 Nvidia Corporation Chipset support for binding and migrating hardware devices among heterogeneous processing units
US8375184B2 (en) * 2009-11-30 2013-02-12 Intel Corporation Mirroring data between redundant storage controllers of a storage system
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
CN103562882B (zh) * 2011-05-16 2016-10-12 甲骨文国际公司 用于提供消息传送应用程序接口的系统和方法
US8898397B2 (en) * 2012-04-11 2014-11-25 Moon J. Kim Memory and process sharing across multiple chipsets via input/output with virtualization
JP5930046B2 (ja) * 2012-08-17 2016-06-08 富士通株式会社 情報処理装置、及び情報処理装置の制御方法
CN104092646B (zh) * 2013-10-28 2016-10-12 腾讯科技(深圳)有限公司 操作同步方法和装置
CN104572508A (zh) * 2015-01-22 2015-04-29 山东超越数控电子有限公司 一种基于PCIE非透明桥的cache镜像方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
JP2015501957A (ja) * 2012-03-23 2015-01-19 株式会社日立製作所 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置

Also Published As

Publication number Publication date
BR112017008674A2 (pt) 2018-06-19
RU2017118316A (ru) 2018-11-26
US20170220255A1 (en) 2017-08-03
EP3211535A4 (en) 2017-11-22
CA2963915A1 (en) 2017-06-17
SG11201702806UA (en) 2017-07-28
CN107209725A (zh) 2017-09-26
KR20170086484A (ko) 2017-07-26
AU2015411096A1 (en) 2017-07-06
EP3211535A1 (en) 2017-08-30
RU2017118316A3 (ja) 2018-11-26
WO2017101080A1 (zh) 2017-06-22

Similar Documents

Publication Publication Date Title
JP2018503156A (ja) 書込み要求処理方法、プロセッサおよびコンピュータ
US9678918B2 (en) Data processing system and data processing method
US11593291B2 (en) Methods and apparatus for high-speed data bus connection and fabric management
US9619389B1 (en) System for a backward and forward application environment compatible distributed shared coherent storage
TWI431475B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
WO2016037503A1 (zh) PCIe拓扑的配置方法和装置
US9734115B2 (en) Memory mapping method and memory mapping system
US9087162B2 (en) Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US20220188249A1 (en) Memory appliance couplings and operations
TWI795491B (zh) 驅動器至驅動器儲存系統、儲存驅動器和儲存資料的方法
CN115344197A (zh) 一种数据访问方法、网卡及服务器
US11494096B2 (en) System and method for storage array enclosure discovery
CN114546913A (zh) 一种基于pcie接口的多主机之间数据高速交互的方法和装置
CN116185553A (zh) 数据迁移方法、装置及电子设备
WO2021012169A1 (zh) 一种提高存储系统可靠性的方法和相关装置
EP3796615B1 (en) Fault tolerance processing method, device, and server
WO2022155919A1 (zh) 一种故障处理方法、装置及系统
CN111131224B (zh) 一种维护连接的方法及存储设备
TWI567638B (zh) 多核心處理器、多核心處理系統、及初始化處理核心之方法
US20200387396A1 (en) Information processing apparatus and information processing system
US10289308B2 (en) Architecture and method for an interconnected data storage system using a unified data bus
JP2015053555A (ja) データ転送装置、およびデータ転送方法
TW202341702A (zh) 執行抹除碼恢復的方法及系統
CN116225986A (zh) 一种存储系统、数据处理方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180816

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190204