JP2008217214A - コンピュータシステム、ホストコンピュータ - Google Patents

コンピュータシステム、ホストコンピュータ Download PDF

Info

Publication number
JP2008217214A
JP2008217214A JP2007051412A JP2007051412A JP2008217214A JP 2008217214 A JP2008217214 A JP 2008217214A JP 2007051412 A JP2007051412 A JP 2007051412A JP 2007051412 A JP2007051412 A JP 2007051412A JP 2008217214 A JP2008217214 A JP 2008217214A
Authority
JP
Japan
Prior art keywords
host
data
write command
memory
rdma write
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.)
Granted
Application number
JP2007051412A
Other languages
English (en)
Other versions
JP5186779B2 (ja
Inventor
Toshio Ohira
敏男 大比良
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2007051412A priority Critical patent/JP5186779B2/ja
Publication of JP2008217214A publication Critical patent/JP2008217214A/ja
Application granted granted Critical
Publication of JP5186779B2 publication Critical patent/JP5186779B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Bus Control (AREA)

Abstract

【課題】DMA Writeコマンドによるデータ転送動作において、処理時間とCPU負荷を増大させることなく、書込み動作が正常に終了したことを保証する。
【解決手段】ホストチャネルアダプタ160は、自ホストのCPU110によりRDMA Writeコマンドが発行されると、自ホストのメモリ120からデータ121を読み出し、他ホストに転送する。ホストチャネルアダプタ260は、他ホストからデータ121が転送されてくると、データ121を自ホストのメモリ220に書き込む。さらに、ホストチャネルアダプタ260は、自ホストのメモリ220に書き込まれたデータが他ホストから転送されてきたデータと一致するか否かを比較し、その比較結果を表す終了フラグ122を他ホストに転送する。ホストチャネルアダプタ160は、他ホストから終了フラグ122が転送されてくると、終了フラグ122を自ホストのメモリ120に書き込む。
【選択図】図2

Description

本発明は、RDMA(Remote Direct Memory Access) Writeコマンドによるデータ転送を行うコンピュータシステム、ホストコンピュータに関する。
高速クラスタやデータベースサーバー等のシステムを構築する技術として、RDMAが期待されている(特許文献1参照)。
RDMAは、一方のホストコンピュータの主記憶装置のデータを、CPUを介さずに、他方のホストコンピュータの主記憶装置にコピーする技術である。RDMAは、局所的にリソースを開けるため、スループットと性能を向上させることが可能となり、ホストコンピュータ間で高速なデータ転送を実現できることが特徴である。
RDMAによるホストコンピュータ間のデータ転送動作としては、RDMA Readコマンドによるデータ転送動作とRDMA Writeコマンドによるデータ転送動作がある。
RDMA Readコマンドによるデータ転送動作は、RDMA Readコマンドの発行元である一方のホストコンピュータが、他方のホストコンピュータの主記憶装置のデータを、CPUを介さずに読み出し、自ホストの主記憶装置にコピーする動作である。
RDMA Writeコマンドによるデータ転送動作は、DMA Writeコマンドの発行元である一方のホストコンピュータが、自ホストの主記憶装置のデータを、CPUを介さずに他方のホストコンピュータの主記憶装置にコピーする動作である。
ここで、図5および図6を参照して、RDMA Readコマンドによるデータ転送動作とRDMA Writeコマンドによるデータ転送動作について説明する。
図5を参照すると、2台のホストコンピュータが互いに接続された一般的なコンピュータシステムの例が示されている。
ホストコンピュータ(#1)100は、CPU110と、主記憶装置であるメモリ120と、ホストチャネルアダプタ(HCA:Host Channel Adapter)160と、これらを接続するチップセット130、I/O(Input/Output)ブリッジ140、およびPCI(Peripheral Component Interconnect)バス150と、を有している。
ホストコンピュータ(#2)200は、ホストコンピュータ(#1)100と同様に、CPU210と、主記憶装置であるメモリ220と、ホストチャネルアダプタ260と、これらを接続するチップセット230、I/Oブリッジ240、およびPCIバス250と、を有している。
ホストコンピュータ(#1)100とホストコンピュータ(#2)200は、ホストチャネルアダプタ160とホストチャネルアダプタ260間がファイバーケーブル300によって接続されている。
図6を参照すると、一般的なコンピュータシステムにおける、RDMAによるデータ転送動作フローの例が示されている。
最初に、RDMA Writeコマンドによるデータ転送動作について説明する。
(1)ホストコンピュータ(#1)100のCPU110は、ホストチャネルアダプタ160に対して、RDMA Writeコマンドを発行する。RDMA Writeコマンドには、転送元データアドレス、データサイズ、転送先データアドレス等の情報が含まれている。
(2)RDMA Writeコマンドを受け取ったホストチャネルアダプタ160は、RDMA Writeコマンドを解析し、メモリ120の指定アドレスからデータを読み出す。
(3)ホストチャネルアダプタ160は、RDMA Writeコマンドおよびデータを転送フレーム化して、ホストコンピュータ(#2)200に転送する。
(4)ホストコンピュータ(#2)200のホストチャネルアダプタ260は、転送フレームを受信すると、転送フレームからRDMA Writeコマンドを抜き取る。
(5)ホストチャネルアダプタ260は、RDMA Writeコマンドを解析し、受信したデータを、メモリ220の指定アドレスに書き込む。
ところで、上述の(1)における、CPU110からホストチャネルアダプタ160に対してRDMA Writeコマンドを発行する処理は、Outbound Write動作である。CPU110は、Outbound Write動作の終了確認を行うが、ここでの終了確認は、ホストチャネルアダプタ160へのRDMA Writeコマンドの受け渡し処理が終了したことを確認するのみである。
上述のように、RDMA Writeコマンドによるデータ転送動作では、RDMA Writeコマンドを受け取ったホストチャネルアダプタ160により、メモリ120からデータが読み出されて他方のホストチャネルアダプタ260に転送され、ホストチャネルアダプタ260によりメモリ220にデータが書き込まれる。
つまり、実際のデータ転送は、ホストチャネルアダプタ160,260により行われており、CPU110は、ホストチャネルアダプタ160に対してRDMA Writeコマンドを発行するだけで、データ転送が終了したことまでは確認していない。
ホストコンピュータ間のデータ転送の高速化のみを追求したコンピュータシステムを構築しようとする場合には、この様なデータ書き捨て方式でも問題は無い。
しかし、企業の基幹業務を担うような高速クラスタやデータベースサーバー等のコンピュータシステムを構築しようとする場合には、書込み動作(更新動作)が正常に終了したことを保証しなければ、基幹システムとして信頼性の面で問題となる。
したがって、基幹システムとして信頼性の高いコンピュータシステムを構築しようとする場合には、RDMA Writeコマンドによるデータ転送の書込み動作が正常に終了したことを保証する必要がある。
一般的に、書込み動作が正常に終了したことを確認するには、書き込んだデータを再度読み出すことで確認を行う。つまり、図6に示すように、CPU110は、ホストコンピュータ(#2)200のメモリ220に書き込んだデータを読み出すために、RDMA Writeコマンドの発行後、RDMA Readコマンドを発行することとなる。
ここで、RDMA Readコマンドによるデータ転送動作について説明する。
(1)CPU110は、ホストチャネルアダプタ160に対して、RDMA Readコマンドを発行する。RDMA Readコマンドには、データ格納アドレス、データサイズ、読み出し先データアドレス等の情報が含まれている。
(2)RDMA Readコマンドを受け取ったホストチャネルアダプタ160は、RDMA Readコマンドを転送フレーム化して、ホストコンピュータ(#2)200に転送する。
(3)ホストコンピュータ(#2)200のホストチャネルアダプタ260は、転送フレームを受信すると、転送フレームからRDMA Readコマンドを抜き取る。
(4)ホストチャネルアダプタ260は、RDMA Readコマンドを解析し、メモリ220の指定アドレスからデータを読み出す。
(5)ホストチャネルアダプタ260は、RDMA Readコマンドおよびデータを転送フレーム化して、ホストコンピュータ(#1)100に転送する。
(6)ホストコンピュータ(#1)100のホストチャネルアダプタ160は、転送フレームを受信すると、転送フレームからRDMA Readコマンドを抜き取る。
(7)ホストチャネルアダプタ160は、RDMA Readコマンドを解析し、受信したデータを、メモリ120の指定アドレスに書き込む。
(8)最後に、CPU110は、メモリ220に書き込まれた書込みデータを、先にメモリ120から読み出し転送したデータと比較し、両者が一致しているか否かを確認する。これによって、メモリ220への書込み動作が正常に終了したことが保証される。
特開2005−182491号公報
上述したように、RDMA Writeコマンドによるデータ転送動作では、書込み動作が正常に終了したことを保証しようとすると、CPU110は、RDMA Writeコマンド発行、RDMA Readコマンド発行、書込みデータ比較という処理を行わなければならず、また、ホストチャネルアダプタ160およびホストチャネルアダプタ260は、RDMA Write処理およびRDMA Read処理を行わなければならず、処理時間とCPU負荷が増大してしまうという課題があった。
そこで、本発明の目的は、RDMA Writeコマンドによるデータ転送動作において、処理時間とCPU負荷を増大させることなく、書込み動作が正常に終了したことを保証することができるコンピュータシステム、ホストコンピュータを提供することにある。
上記目的を達成するために本発明のコンピュータシステムは、
各々がCPU、メモリおよびホストチャネルアダプタを備える2台のホストコンピュータからなり、前記ホストチャネルアダプタを介して接続された前記2台のホストコンピュータ間で、RDMA Writeコマンドを基に、前記メモリ内のデータの転送を行うコンピュータシステムであって、
前記ホストチャネルアダプタは、
自ホストが前記RDMA Writeコマンドの発行元である場合、前記RDMA Writeコマンドが発行されると、当該RDMA Writeコマンドを基に自ホストのメモリからデータを読み出し、読み出したデータを前記RDMA Writeコマンドとともに他ホストに転送するデータ読み出し手段と、
他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともにデータが転送されてくると、当該RDMA Writeコマンドを基に当該データを自ホストのメモリに書き込むデータ書込み手段と、
他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから転送されてきたデータが自ホストのメモリに書き込まれると、当該メモリに書き込まれたデータが他ホストから転送されてきたデータと一致するか否かを比較し、当該比較結果を前記RDMA Writeコマンドとともに他ホストに転送するデータ比較手段と、
自ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともに前記比較結果が転送されてくると、当該比較結果を自ホストのメモリに書き込む比較結果書込み手段と、を有することを特徴とする。
上記目的を達成するために本発明のホストコンピュータは、
CPU、メモリおよびホストチャネルアダプタを備え、前記ホストチャネルアダプタを介して接続された他のホストコンピュータとの間で、RDMA Writeコマンドを基に、前記メモリ内のデータの転送を行うホストコンピュータであって、
前記ホストチャネルアダプタは、
自ホストが前記RDMA Writeコマンドの発行元である場合、前記RDMA Writeコマンドが発行されると、当該RDMA Writeコマンドを基に自ホストのメモリからデータを読み出し、読み出したデータを前記RDMA Writeコマンドとともに他ホストに転送するデータ読み出し手段と、
他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともにデータが転送されてくると、当該RDMA Writeコマンドを基に当該データを自ホストのメモリに書き込むデータ書込み手段と、
他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから転送されてきたデータが自ホストのメモリに書き込まれると、当該メモリに書き込まれたデータが他ホストから転送されてきたデータと一致するか否かを比較し、当該比較結果を前記RDMA Writeコマンドとともに他ホストに転送するデータ比較手段と、
自ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともに前記比較結果が転送されてくると、当該比較結果を自ホストのメモリに書き込む比較結果書込み手段と、を有することを特徴とする。
本発明によれば、RDMA Writeコマンドによるデータ転送の書込み後に、転送先のホストチャネルアダプタは、自ホストのメモリに書き込まれた書込みデータを転送元のホストチャネルアダプタから転送されてきた転送データと比較し、その比較結果を転送元のホストチャネルアダプタに転送する。また、転送元のホストチャネルアダプタは、転送先のホストチャネルアダプタから転送されてきた比較結果を自ホストのメモリに書き込む。
そのため、転送元のホストのCPUは、自ホストのメモリに書き込まれた比較結果の内容をチェックすることにより、RDMA Writeコマンドによるデータ転送の書込み動作が正常に終了したか否かを確認することが可能となる。
したがって、書込み動作が正常に終了したことを保証するために、RDMA Readコマンドによるデータ転送を行う必要はないため、処理の高速化を図ることができる。また、転送元のホストのCPUがRDMA Writeコマンドを発行する必要がないため、CPU負荷を軽減することができる。
また、書込みデータの比較動作は、専用のハードウェアであるホストチャネルアダプタで行うため、CPU上でソフトウェアにより比較動作を行う場合と比較して、処理の高速化を図ることができるとともに、CPU負荷を軽減することができる。
よって、RDMA Writeコマンドによるデータ転送動作において、処理時間およびCPU負荷が増大することなく、書込み動作が正常に終了したことを保証することができるという効果が得られる。
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
(第1の実施形態)
本実施形態のコンピュータシステムは、その全体構成は図5に示したものと同様であり、ホストチャネルアダプタ160,260の構成に特徴がある。
図1を参照すると、本実施形態のコンピュータシステムにおけるホストチャネルアダプタ160の構成の例が示されている。
ホストチャネルアダプタ160は、インバウンド(Inbound)制御部161と、インバウンドバッファ162と、アウトバウンド(Outbound)制御部163と、アウトバウンドバッファ164と、DMA制御部165と、PICバスI/F166と、ホストチャネルアダプタI/F制御部167と、ホストチャネルアダプタI/F168と、障害情報レジスタ169と、を有している。
なお、データ読み出し手段は、アウトバウンド制御部163、アウトバウンドバッファ164、DMA制御部165、およびホストチャネルアダプタI/F制御部167によって構成され、また、データ書込み手段および比較結果書込み手段は、インバウンド制御部161、インバウンドバッファ162、DMA制御部165、およびホストチャネルアダプタI/F制御部167によって構成され、また、データ比較手段は、インバウンド制御部161、アウトバウンドバッファ164、DMA制御部165、およびホストチャネルアダプタI/F制御部167によって構成されるものである。
インバウンド制御部161は、インバウンドバッファ162からのコマンドを一時的にキュー(Queue)に保持する機能と、キューに保持したコマンドを解析する機能と、DMA制御部165に対してDMAリクエスト(インバウンドバッファ162からメモリ120へのデータ転送、メモリ120からインバウンドバッファ162へのデータ転送、メモリ120からインバウンド制御部161へのデータ転送)を発行する機能と、メモリ120から読み出されたデータを内部バッファに保持する機能と、内部バッファに保持したデータとインバウンドバッファ162に格納されているデータとを比較する機能と、その比較結果をデータとしてアウトバウンドバッファ164へ転送する機能と、を有している。また、インバウンド制御部161は、障害情報レジスタ169に障害情報が格納されると、上述した機能を停止する機能を有している。
インバウンドバッファ162は、データフレームを受け取り保持する機能と、データフレームに含まれるコマンドをインバウンド制御部161に転送する機能と、を有している。
アウトバウンド制御部163は、CPU110からのコマンドを一時的にキューに保持する機能と、キューに保持したコマンドを解析する機能と、DMA制御部165に対してDMAリクエスト(メモリ120からアウトバウンドバッファ164へのデータ転送)を発行する機能と、を有している。また、アウトバウンド制御部163は、障害情報レジスタ169に障害情報が格納されると、上述した機能を停止する機能を有している。
アウトバウンドバッファ164は、インバウンド制御部161またはアウトバウンド制御部163からのコマンドとデータを保持する機能と、保持したコマンドとデータを基にCRC(Cyclic Redundancy Check)を付与してデータフレームを生成する機能と、データフレームをホストチャネルアダプタI/F制御部167に転送する機能と、を有している。
DMA制御部165は、インバウンド制御部161またはアウトバウンド制御部162からのDMAリクエストに応じて、PCIバスI/F166を制御してデータ転送を行う機能を有している。
PCIバスI/F166は、PCIバス150とのI/Fである。PCIバスI/F166は、障害情報レジスタ169に障害情報が格納されると、PCIバス150上に割込み通知を行う機能を有している。
ホストチャネルアダプタI/F制御部167は、アウトバウンドバッファ164からのデータフレームを転送フレーム化してホストチャネルアダプタ260に転送する機能と、ホストチャネルアダプタ260からの転送フレームをデータフレームに復元する機能と、復元したデータフレームのCRCをチェックする機能と、障害情報レジスタ169に格納された障害情報に対応するエラーフレームを生成してホストチャネルアダプタ260に転送する機能と、ホストチャネルアダプタ260からのエラーフレームを解析する機能と、解析したエラーフレームに対応する障害情報を障害情報レジスタ169に格納する機能と、を有している。
ホストチャネルアダプタI/F168は、ホストチャネルアダプタ260とのI/Fである。ホストチャネルアダプタI/F168は、転送フレームをファイバーケーブル300を介して送受信する機能を有している。
障害情報レジスタ169は、ホストチャネルアダプタ160,260の障害情報を格納する機能を有している。
図2を参照すると、本実施形態のコンピュータシステムの構成の例が示されている。なお、図2は、図5に示した構成要素のうち、チップセット130,230、I/Oブリッジ140,240、およびPCIバス150,250が省略されている。
ホストチャネルアダプタ260は、ホストチャネルアダプタ160と同様に、インバウンド制御部261と、インバウンドバッファ262と、アウトバウンド制御部263と、アウトバウンドバッファ264と、DMA制御部265と、PICバスI/F266と、ホストチャネルアダプタI/F制御部267と、ホストチャネルアダプタI/F268と、障害情報レジスタ269と、を有している。これら構成要素は、ホストチャネルアダプタ160内の対応する構成要素と同様の動作を行う。
以下、本実施形態のコンピュータシステムにおける、RDMA Writeコマンドによるデータ転送動作について説明する。
図3および図4を参照すると、本実施形態のコンピュータシステムにおける、RDMA Writeコマンドによるデータ転送動作フローの例が示されている。
最初に、ホストコンピュータ(#1)100のCPU110は、アウトバウンド制御部163に対して、RDMA Writeコマンドを発行し、データ転送起動を指示する。
RDMA Writeコマンドを受け取ったアウトバウンド制御部163は、RDMA Writeコマンドをアウトバウンドバッファ164に転送する。併せて、アウトバウンド制御部163は、メモリ120からデータ121を読み出すために、DMA制御部165に対して、DMAリクエスト(メモリ120からアウトバウンドバッファ164へのデータ転送)を発行し、DMA転送起動を指示する。
DMAリクエストを受け取ったDMA制御部165は、メモリ120の指定アドレスからデータ121を読み出してアウトバウンドバッファ164に転送する。
RDMA Writeコマンドとデータ121を受け取ったアウトバウンドバッファ164は、受け取ったRDMA Writeコマンドとデータ121を基にCRCを付与したデータフレームを生成し、生成したデータフレームをホストチャネルアダプタI/F制御部167に転送する。
データフレームを受け取ったホストチャネルアダプタI/F制御部167は、データフレームを転送フレーム化して、ホストチャネルアダプタI/F168を介してホストコンピュータ(#2)200に転送する。
転送フレームを受信したホストコンピュータ(#2)200のホストチャネルアダプタI/F制御部267は、転送フレームをデータフレームに復元してCRCチェックを行い、RDMA Writeコマンドとデータ121をインバウンドバッファ262に転送する。
RDMA Writeコマンドとデータ121を受け取ったインバウンドバッファ262は、RDMA Writeコマンドをインバウンド制御部261に転送する。
RDMA Writeコマンドを受け取ったインバウンド制御部261は、RDMA Writeコマンドを解析する。この時、RDMA Writeコマンドと判定されれば、DMA制御部265に対して、DMAリクエスト(インバウンドバッファ262からメモリ220へのデータ転送)を発行し、DMA転送起動を指示する。同時に、インバウンド制御部261は、処理したRDMA Writeコマンドをアウトバウンドバッファ264に転送する。
DMAリクエストを受け取ったDMA制御部265は、インバウンドバッファ262からメモリ220にデータ121を転送する。データ転送動作が終了したら、DMA制御部265は、インバウンド制御部261にデータ書込み処理終了を通知する。
データ書込み終了通知を受けたインバウンド制御部261は、DMA制御部265に対して、DMAリクエスト(メモリ220からインバウンド制御部261へのデータ転送)を発行し、DMA転送起動を指示する。この時メモリ220から読み出すのは、前処理でメモリ220に格納されたデータ121の最終アドレスの1バイト分のデータとなる。
DMAリクエストを受け取ったDMA制御部265は、メモリ220から該当アドレスのデータ121を読み出してインバウンド制御部261に転送する。データ転送動作が終了したら、DMA制御部265は、インバウンド制御部261にデータ転送動作終了を通知する。
データ転送終了通知を受けたインバウンド制御部261は、受け取ったデータ121とインバウンドバッファ262に格納されている該当データ(インバウンドバッファ262に格納されているデータ121の最終アドレスの1バイト分のデータ)とを比較する。インバウンド制御部261は、比較結果が一致していれば、正常終了を表す終了フラグ122を、アウトバウンドバッファ264にデータとして転送し、また、比較結果が不一致であれば、異常終了を表す終了フラグ122を、アウトバウンドバッファ264にデータとして転送する。
RDMA Writeコマンドと終了フラグ122を受け取ったアウトバウンドバッファ264は、受け取ったRDMA Writeコマンドと終了フラグ122を基にCRCを付与したデータフレームを生成し、生成したデータフレームをホストチャネルアダプタI/F制御部267に転送する。
データフレームを受け取ったホストチャネルアダプタI/F制御部267は、データフレームを転送フレーム化して、ホストチャネルアダプタI/F268を介してホストコンピュータ(#1)100に転送する。
転送フレームを受信したホストコンピュータ(#1)100のホストチャネルアダプタI/F制御部167は、転送フレームをデータフレームに復元してCRCチェックを行い、RDMA Writeコマンドと終了フラグ122をインバウンドバッファ162に転送する。
RDMA Writeコマンドと終了フラグ122を受け取ったインバウンドバッファ162は、RDMA Writeコマンドをインバウンド制御部161に転送する。
RDMA Writeコマンドを受け取ったインバウンド制御部161は、RDMA Writeコマンドを解析する。この時、RDMA Writeコマンドと判定されれば、インバウンド制御部161は、DMA制御部165に対して、DMAリクエスト(インバウンドバッファ162からメモリ120へのデータ転送)を発行し、DMA転送起動を指示する。
DMAリクエストを受け取ったDMA制御部165は、インバウンドバッファ162からメモリ120に終了フラグ122を転送する。データ転送動作が終了したら、DMA制御部165は、インバウンド制御部161に対し、データ転送処理終了を通知する。
上述したように本実施形態によれば、RDMA Writeコマンドによるデータ転送の書込み後に、ホストチャネルアダプタ260が、メモリ220に書き込まれた書込みデータとホストチャネルアダプタ160から転送されてきた転送データとを比較し、その比較結果を表す終了フラグ122をホストチャネルアダプタ160に転送し、ホストチャネルアダプタ160が、終了フラグ122をメモリ120に書き込む。
そのため、CPU110は、メモリ120に書き込まれた終了フラグ122の内容をチェックすることにより、RDMA Writeコマンドによるデータ転送の書込み動作が正常に終了したか否かを確認することが可能となる。
したがって、書込み動作が正常に終了したことを保証するために、RDMA Readコマンドによるデータ転送を行う必要はないため、処理の高速化を図ることができる。また、CPU110がRDMA Writeコマンドを発行する必要がないため、CPU負荷を軽減することができる。
また、書込みデータの比較動作は、専用のハードウェアであるホストチャネルアダプタ260で行うため、CPU110上でソフトウェアにより比較動作を行う場合と比較して処理の高速化を図ることができるとともに、CPU負荷を軽減することができる。
よって、RDMA Writeコマンドによるデータ転送動作において、処理時間およびCPU負荷が増大することなく、書込み動作が正常に終了したことを保証することができる。
(第2の実施形態)
本実施形態のコンピュータシステムは、第1の実施形態と構成自体は同様であるが、動作が異なる。
第1の実施形態では、ホストチャネルアダプタ260が、メモリ220に書き込まれた書込みデータとホストチャネルアダプタ160から転送されてきた転送データとを比較することにより、ホストチャネルアダプタ260からメモリ220への書込みパスのハードウェアの健全性を確認し、メモリ220への書込み動作が正常に終了したか否かを判定している。
その際に、第1の実施形態では、処理時間を考慮して、メモリ220に書き込まれた書込みデータのうち最終アドレスの1バイト分のデータのみを比較していた。
これに対して、本実施形態では、メモリ220に書き込まれた書込みデータとホストチャネルアダプタ160から転送されてきた転送データとが完全に一致するか否かを比較する。この場合でも、RDMA Readコマンドによるデータ転送を行う必要はないことと、書込みデータの比較動作をホストチャネルアダプタ260で行うことから、従来技術と比較して処理時間は十分に低減され、本発明の効果は維持される。
これを実現するために、ホストコンピュータ(#1)100では、書込みデータが転送データと完全に一致するか否かを比較させる場合はオプションモードに設定し、ホストコンピュータ(#2)200では、オプションモードに設定されていれば、書込みデータが転送データと完全に一致するか否かを比較する。
具体的には、ホストコンピュータ(#1)100のCPU110は、RDMA Writeコマンドの発行時に、そのRDMA Writeコマンドにオプションモードが設定されている旨の情報を含める。
インバウンドバッファ262からRDMA Writeコマンドを受け取ったインバウンド制御部261は、RDMA Writeコマンドの解析時に、オプションモードが設定されているか否かも同時に解析し、オプションモードが設定されていたら、完全一致確認フラグを立てる。その後、インバウンド制御部261は、DMA制御部265に対して、DMAリクエストを発行し、DMA転送起動を指示する。
DMA制御部265からデータ書込み終了通知を受けたインバウンド制御部261は、完全一致確認フラグをチェックする。完全一致確認フラグが立てられていれば、インバウンド制御部261は、DMA制御部265に対して、DMAリクエスト(メモリ220の指定アドレスからの書込みデータサイズ分のデータのインバウンド制御部261への転送)を発行し、再度DMA転送起動を指示する。
DMAリクエストを受け取ったDMA制御部265は、メモリ220からインバウンド制御部261にデータ121(メモリ220に書き込まれたデータと同じ)を転送する。データ転送動作が終了したら、DMA制御部265は、インバウンド制御部261にデータ転送処理終了を通知する。
データ転送終了通知を受けたインバウンド制御部261は、受け取ったデータ121とインバウンドバッファ262に格納されているデータ121とが完全に一致するか否かを比較する。インバウンド制御部261は、比較結果が完全に一致していれば、正常終了を表す終了フラグ122を、アウトバウンドバッファ264にデータとして転送し、また、比較結果の一部でも不一致であれば、異常終了を表す終了フラグ122を、アウトバウンドバッファ264にデータとして転送する。
以降は、第1の実施形態と同様の動作により、終了フラグ122がホストコンピュータ(#1)100のメモリ120に格納される。
そのため、第1の実施形態と同様に、CPU110は、メモリ120に書き込まれた終了フラグ122の内容をチェックすることにより、RDMA Writeコマンドによるデータ転送の書込み動作が正常に終了したか否かを確認することが可能となる。
本実施形態のコンピュータシステムにおけるホストチャネルアダプタの構成の一例を示す図である。 本実施形態のコンピュータシステムの構成の一例を示す図である。 本実施形態のコンピュータシステムにおける、RDMA Writeコマンドによるデータ転送動作の一例を説明するフローチャートである。 本実施形態のコンピュータシステムにおける、RDMA Writeコマンドによるデータ転送動作の他の例を説明するフローチャートである。 一般的なコンピュータシステムの構成の一例を示す図である。 一般的なコンピュータシステムにおける、RDMA Writeコマンドによるデータ転送動作の一例を説明するフローチャートである。
符号の説明
100,200 ホストコンピュータ
110,210 CPU
120,220 メモリ
121 データ
122 終了フラグ
160,260 ホストチャネルアダプタ
161,261 インバウンド制御部
162,262 インバウンドバッファ
163,263 アウトバウンド制御部
164,264 アウトバウンドバッファ
165,265 DMA制御部
166,266 PICバスI/F
167,267 ホストチャネルアダプタI/F制御部
168,268 ホストチャネルアダプタI/F
169,269 障害情報レジスタ
300 ファイバーケーブル

Claims (6)

  1. 各々がCPU、メモリおよびホストチャネルアダプタを備える2台のホストコンピュータからなり、前記ホストチャネルアダプタを介して接続された前記2台のホストコンピュータ間で、RDMA Writeコマンドを基に、前記メモリ内のデータの転送を行うコンピュータシステムであって、
    前記ホストチャネルアダプタは、
    自ホストが前記RDMA Writeコマンドの発行元である場合、前記RDMA Writeコマンドが発行されると、当該RDMA Writeコマンドを基に自ホストのメモリからデータを読み出し、読み出したデータを前記RDMA Writeコマンドとともに他ホストに転送するデータ読み出し手段と、
    他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともにデータが転送されてくると、当該RDMA Writeコマンドを基に当該データを自ホストのメモリに書き込むデータ書込み手段と、
    他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから転送されてきたデータが自ホストのメモリに書き込まれると、当該メモリに書き込まれたデータが他ホストから転送されてきたデータと一致するか否かを比較し、当該比較結果を前記RDMA Writeコマンドとともに他ホストに転送するデータ比較手段と、
    自ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともに前記比較結果が転送されてくると、当該比較結果を自ホストのメモリに書き込む比較結果書込み手段と、を有するコンピュータシステム。
  2. 前記データ比較手段は、自ホストのメモリに書き込まれたデータの一部が、他ホストから転送されてきたデータの対応部分と一致するか否かを比較する、請求項1に記載のコンピュータシステム。
  3. 前記データ比較手段は、自ホストのメモリに書き込まれたデータが、他ホストから転送されてきたデータと完全一致するか否かを比較する、請求項1に記載のコンピュータシステム。
  4. CPU、メモリおよびホストチャネルアダプタを備え、前記ホストチャネルアダプタを介して接続された他のホストコンピュータとの間で、RDMA Writeコマンドを基に、前記メモリ内のデータの転送を行うホストコンピュータであって、
    前記ホストチャネルアダプタは、
    自ホストが前記RDMA Writeコマンドの発行元である場合、前記RDMA Writeコマンドが発行されると、当該RDMA Writeコマンドを基に自ホストのメモリからデータを読み出し、読み出したデータを前記RDMA Writeコマンドとともに他ホストに転送するデータ読み出し手段と、
    他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともにデータが転送されてくると、当該RDMA Writeコマンドを基に当該データを自ホストのメモリに書き込むデータ書込み手段と、
    他ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから転送されてきたデータが自ホストのメモリに書き込まれると、当該メモリに書き込まれたデータが他ホストから転送されてきたデータと一致するか否かを比較し、当該比較結果を前記RDMA Writeコマンドとともに他ホストに転送するデータ比較手段と、
    自ホストが前記RDMA Writeコマンドの発行元である場合、他ホストから前記RDMA Writeコマンドとともに前記比較結果が転送されてくると、当該比較結果を自ホストのメモリに書き込む比較結果書込み手段と、を有するホストコンピュータ。
  5. 前記データ比較手段は、自ホストのメモリに書き込まれたデータの一部が、他ホストから転送されてきたデータの対応部分と一致するか否かを比較する、請求項4に記載のホストコンピュータ。
  6. 前記データ比較手段は、自ホストのメモリに書き込まれたデータが、他ホストから転送されてきたデータと完全一致するか否かを比較する、請求項4に記載のホストコンピュータ。
JP2007051412A 2007-03-01 2007-03-01 コンピュータシステム、ホストコンピュータ Expired - Fee Related JP5186779B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007051412A JP5186779B2 (ja) 2007-03-01 2007-03-01 コンピュータシステム、ホストコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007051412A JP5186779B2 (ja) 2007-03-01 2007-03-01 コンピュータシステム、ホストコンピュータ

Publications (2)

Publication Number Publication Date
JP2008217214A true JP2008217214A (ja) 2008-09-18
JP5186779B2 JP5186779B2 (ja) 2013-04-24

Family

ID=39837210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007051412A Expired - Fee Related JP5186779B2 (ja) 2007-03-01 2007-03-01 コンピュータシステム、ホストコンピュータ

Country Status (1)

Country Link
JP (1) JP5186779B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048712A (ja) * 2010-08-30 2012-03-08 Internatl Business Mach Corp <Ibm> ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法
JP2012103975A (ja) * 2010-11-11 2012-05-31 Nec Computertechno Ltd データ転送装置、データ転送方法、コンピュータシステム
JP2014119930A (ja) * 2012-12-14 2014-06-30 Nec Computertechno Ltd コンピュータ装置、データ転送方法、及びプログラム
JP2016091542A (ja) * 2014-11-03 2016-05-23 インテル・コーポレーション コミットackを用いたrdmaのための装置および方法
WO2016122607A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Dedicated memory server
CN113395359A (zh) * 2021-08-17 2021-09-14 苏州浪潮智能科技有限公司 基于远程直接内存访问的文件币集群数据传输方法、系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6175464A (ja) * 1984-09-21 1986-04-17 Toshiba Corp 計算機装置
JPH0528055A (ja) * 1991-07-19 1993-02-05 Casio Comput Co Ltd メモリ書込データ誤り検出装置
JPH08202664A (ja) * 1995-01-30 1996-08-09 Nec Eng Ltd マルチプロセッサ装置
JP2002063078A (ja) * 2000-08-15 2002-02-28 Nec Eng Ltd F/wアクセス処理装置
JP2005157830A (ja) * 2003-11-27 2005-06-16 Hitachi Ltd 複数のプロセッサを用いて情報処理を行う装置及び方法
JP2005285139A (ja) * 2005-04-27 2005-10-13 Hitachi Ltd 記憶装置システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6175464A (ja) * 1984-09-21 1986-04-17 Toshiba Corp 計算機装置
JPH0528055A (ja) * 1991-07-19 1993-02-05 Casio Comput Co Ltd メモリ書込データ誤り検出装置
JPH08202664A (ja) * 1995-01-30 1996-08-09 Nec Eng Ltd マルチプロセッサ装置
JP2002063078A (ja) * 2000-08-15 2002-02-28 Nec Eng Ltd F/wアクセス処理装置
JP2005157830A (ja) * 2003-11-27 2005-06-16 Hitachi Ltd 複数のプロセッサを用いて情報処理を行う装置及び方法
JP2005285139A (ja) * 2005-04-27 2005-10-13 Hitachi Ltd 記憶装置システム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048712A (ja) * 2010-08-30 2012-03-08 Internatl Business Mach Corp <Ibm> ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法
JP2012103975A (ja) * 2010-11-11 2012-05-31 Nec Computertechno Ltd データ転送装置、データ転送方法、コンピュータシステム
JP2014119930A (ja) * 2012-12-14 2014-06-30 Nec Computertechno Ltd コンピュータ装置、データ転送方法、及びプログラム
JP2016091542A (ja) * 2014-11-03 2016-05-23 インテル・コーポレーション コミットackを用いたrdmaのための装置および方法
CN105718216A (zh) * 2014-11-03 2016-06-29 英特尔公司 用于具有提交ack的rdma的装置和方法
KR101754791B1 (ko) * 2014-11-03 2017-07-19 인텔 코포레이션 커밋 ack들을 이용한 rdma를 위한 장치 및 방법
US10055371B2 (en) 2014-11-03 2018-08-21 Intel Corporation Apparatus and method for RDMA with commit ACKs
WO2016122607A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Dedicated memory server
CN113395359A (zh) * 2021-08-17 2021-09-14 苏州浪潮智能科技有限公司 基于远程直接内存访问的文件币集群数据传输方法、系统
CN113395359B (zh) * 2021-08-17 2021-10-29 苏州浪潮智能科技有限公司 基于远程直接内存访问的文件币集群数据传输方法、系统

Also Published As

Publication number Publication date
JP5186779B2 (ja) 2013-04-24

Similar Documents

Publication Publication Date Title
US5761462A (en) Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data-processing system
JP5186779B2 (ja) コンピュータシステム、ホストコンピュータ
CN106575206B (zh) 计算机系统中的存储器写入管理
JP2010140127A (ja) データ転送処理装置及び方法
CA2912938C (en) Low latency device interconnect using remote memory access with segmented queues
JP4369470B2 (ja) データ中継装置、ストレージ装置、および応答遅延監視方法
US9015380B2 (en) Exchanging message data in a distributed computer system
JP2006190257A (ja) データ転送装置およびデータ転送方法
US20200042379A1 (en) Data processing apparatus and diagnosis method
US10223310B2 (en) Multi-source flow management using elastic FIFO structures
JP2006178615A (ja) フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
US6604161B1 (en) Translation of PCI level interrupts into packet based messages for edge event drive microprocessors
US10958595B2 (en) Cut-through bridge error isolation
JP4218538B2 (ja) コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法
US8799548B2 (en) I/O bridge device, response-reporting method, and program
JP4785637B2 (ja) データ転送装置及びその制御方法
EP2194458A2 (en) Request processing device, request processing system, and access testing method
JP2005165619A (ja) データ転送装置の制御方法、データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法、及びチャネルアダプタ。
US7681102B2 (en) Byte level protection in PCI-Express devices
US20140136740A1 (en) Input-output control unit and frame processing method for the input-output control unit
JP4985599B2 (ja) Dma転送制御システム
JP5556086B2 (ja) 二重化システム、及び、二重化方法
US20040221050A1 (en) Direct TCP/IP communication method and system for coupling to a CPU/Memory complex
JP2006285872A (ja) マルチcpuシステム
US11842066B2 (en) Control apparatus and information processing system for providing a bridge apparatus between a host controller and a non-volatile storage medium to encrypt and decrypt data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130107

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5186779

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees