JP5541544B2 - コンピュータ装置、データ転送方法、及びプログラム - Google Patents

コンピュータ装置、データ転送方法、及びプログラム Download PDF

Info

Publication number
JP5541544B2
JP5541544B2 JP2012274130A JP2012274130A JP5541544B2 JP 5541544 B2 JP5541544 B2 JP 5541544B2 JP 2012274130 A JP2012274130 A JP 2012274130A JP 2012274130 A JP2012274130 A JP 2012274130A JP 5541544 B2 JP5541544 B2 JP 5541544B2
Authority
JP
Japan
Prior art keywords
data transfer
cpu
host channel
input
data
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.)
Active
Application number
JP2012274130A
Other languages
English (en)
Other versions
JP2014119930A (ja
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2012274130A priority Critical patent/JP5541544B2/ja
Publication of JP2014119930A publication Critical patent/JP2014119930A/ja
Application granted granted Critical
Publication of JP5541544B2 publication Critical patent/JP5541544B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)

Description

本発明は、ホストチャネルアダプタを用いてデータ転送を実行するコンピュータ装置及びデータ転送方法、更には、これらを実現するためのプログラムに関する。
従来から、大規模な汎用のコンピュータシステムにおいては、ホストコンピュータに他の拡張記憶装置が接続された構成が採用されることがある。拡張記憶装置は、ホストコンピュータの主記憶装置を拡張するための装置であり、拡張した主記憶として位置づけられる。
このようなコンピュータシステムの具体例としては、2台のホストコンピュータを用いたコンピュータシステムが挙げられる(例えば、特許文献1参照。)。特許文献1に開示されたコンピュータシステムでは、ホストコンピュータそれぞれのホストチャネルアダプタ(HCA:Host Channel Adapter)が、光ファイバーケーブルによって、ポイント・ツー・ポイント接続される。そして、一方のホストコンピュータが、拡張記憶装置として機能する。
また、特許文献1に開示されたコンピュータシステムでは、ホストコンピュータと拡張記憶装置との間のデータ転送は、RDMA(Remote Direct Memory Access)転送によって高速に実行される。そして、拡張記憶装置は、拡張記憶として動作するため、転送データの転送長が短い転送命令(例えば、転送長が8Kバイト以内)が発行される頻度がとても高くなっている。このような転送長が短い転送命令の発行においては、ホストコンピュータのCPU(Central Processing Unit)が、RDMA転送の終了を待って次の処理を実行する同期転送が採用される。
一方、特許文献1に開示されたコンピュータシステムであっても、転送長が長い転送命令が発行される場合は、CPUがRDMA転送の起動後にCPUリソースを解放する非同期転送が採用される。非同期転送では、CPUには他の処理の実行が許可されるため、CPUは、RDMA転送の終了を待つ必要がない。
但し、非同期転送が実行される割合は、データ転送全体の1割未満であるのに対して、同期転送が実行される割合は、9割以上である。従って、近年のCPUの高速化に対応するためには、コンピュータシステムにおいては、同期転送の高速化が求められている。
特開2008−217214号公報
しかしながら、HCAを備えたホストコンピュータでは、CPUとI/Oとが分離され、CPUとは別に、HCAを制御するためのプロセッサ(以下「HCA制御プロセッサ」と表記する。)が備えられている。このため、CPUは、HCAに対して、データ転送を直接指示することができず、HCA制御プロセッサに対して、データ転送指示を出力する必要がある。結果、CPUがデータ転送を指示してからHCAがデータ転送を開始するまでの時間の短縮に限界があり、上述した同期転送の高速化の求めに応じることは困難である。
本発明の目的の一例は、上記問題を解消し、ホストチャネルアダプタを用いたデータ転送の開始までの時間を短縮化して、データ転送の遅延を抑制し得る、コンピュータ装置、データ転送方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明の一側面におけるコンピュータ装置は、
CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備え、
前記CPUは、前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、
ことを特徴とする。
また、上記目的を達成するため、本発明の一側面におけるデータ転送方法は、CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備えた、コンピュータ装置を用いたデータ転送方法であって、
(a)前記CPUによって、前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、ステップを有する、
ことを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備えた、コンピュータ装置によって、データ転送方法を行うためのプログラムであって、
(a)前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、ステップを、前記CPUに実行させる、
ことを特徴とする。
以上のように本発明によれば、ホストチャネルアダプタを用いたデータ転送の開始までの時間を短縮化して、データ転送の遅延を抑制することができる。
図1は、本発明の実施の形態1におけるコンピュータ装置の構成を示すブロック図である。 図2は、本発明の実施の形態1におけるコンピュータ装置の動作を示すタイムチャートである。 図3は、従来からのコンピュータ装置の動作を示すタイムチャートである。 図4は、本発明の実施の形態2におけるコンピュータ装置の動作を示すタイムチャートである。
(実施の形態1)
以下、本発明の実施の形態1における、コンピュータ装置、データ転送方法、及びプログラムについて、図1及び図2を参照しながら説明する。
[装置構成]
最初に、本実施の形態1におけるコンピュータ装置の構成について図1を用いて説明する。図1は、本発明の実施の形態1におけるコンピュータ装置の構成を示すブロック図である。
図1に示す本実施の形態1におけるコンピュータ装置100及び200は、それぞれのホストチャネルアダプタ(HCA)25によって、光ファイバーケーブル300を介して、互いに接続されている。また、コンピュータ装置100及び200は、同一の構成を備えたホストコンピュータであり、それぞれは他方の拡張記憶装置として機能することができる。
以下においては、コンピュータ装置200が、コンピュータ装置100の拡張記憶装置として機能する場合について、コンピュータ装置100を中心に説明する。また、この場合、コンピュータ装置100は、コンピュータ200との間でRDMA転送を行なうため、コンピュータ200に対して、RDMAライトリクエスト又はRDMAリードリクエストを出力する。
なお、「RDMAライト」とは、リクエスト元の主メモリのデータを、リクエスト先の主メモリに書き込む、データ転送処理である。また、「RDMAリード」とは、リクエスト先の主メモリのデータを、リクエスト元の主メモリに書き込む、データ転送処理である。
図1に示すように、コンピュータ装置100は、CPU11と、データ転送用のバス24と、入出力コントローラ(IOC:In/Out Controller)21と、外部との通信を行うためのホストチャネルアダプタ(HCA:Host Channel Adapter)25とを備えている。
このうち、入出力コントローラ21は、バス24に接続された機器とCPU11との間の入出力を制御する。HCA25は、バス24に接続され、更に、光ファイバーケーブル300を介して、拡張記憶装置として機能するコンピュータ装置200のHCA25に接続される。
また、コンピュータ装置100において、CPU11は、HCA25を用いたデータ転送を行なう場合に、そのデータ転送の起動を、IOC21に対して指示し、IOC21を介して、HCA25にデータ転送を開始させる。具体的には、CPU11は、IOC21に対し、RDMA起動命令を送信する。
このように、コンピュータ装置100では、CPU11がIOC21に対して指示を行なうことにより、HCA25によるデータ転送が開始され、CPU11は、後述するHCA制御プロセッサ22に対してデータ転送を指示しなくても良い。このため、CPU11がデータ転送を指示してからHCA25がデータ転送を開始するまでの時間が短縮されるので、HCA25を用いたデータ転送の遅延(レイテンシ)が抑制される。
ここで、コンピュータ装置100の構成について更に具体的に説明する。まず、図1に示すように、本実施の形態1では、バス24、IOC21、及びHCA25は、CPU11が実装された基板とは別の基板に実装されている。具体的には、コンピュータ装置100は、CPU用の基板(以下「CPUボード」と表記する。)10と、I/O用の基板(以下「I/Oボード」と表記する。)20とを備えている。
そして、コンピュータ装置100は、CPUボード10上に、上述したCPU11に加え、主メモリ12と、メモリ制御部13と、I/O制御部14とを備えている。また、コンピュータ装置100は、I/Oボード20上に、上述したIOC21、バス24、及びHCA25に加えて、HCA制御プロセッサ22と、HCA制御用ローカルメモリ23とを備えている。
また、本実施の形態1において、CPU11と主メモリ12は、一般的なコンピュータで用いられているCPUおよび主メモリと同様のものである。更に、CPU11は、複数個備えられていても良い。メモリ制御部13は、CPU11及びI/O制御部14からの要求に従い、主メモリ12に対する書き込み、及び主メモリ12からの読み出しを実行する。
I/O制御部14は、CPUボード10をI/Oボード20に接続するためのユニットであり、ケーブルを介して、IOC21に接続されている。また、I/O制御部14は、I/Oボード20から要求されるトランザクションと、I/Oボード20に要求するトランザクションとを制御する。
バス24は、本実施の形態1では、一般的な「PCI Express Switch(PCI−SW)」であり、PCIデバイスを接続可能なスロット26〜28を備えている。また、図1においては、バス24は「PCI Express Switch」と表記され、スロット26〜28は「PCIeスロット」と表記されている。また、以降の説明では、バス24は「PCI−SW」24と表記する。
IOC21は、CPUボード10に対するI/Fとして機能し、PCI−SW24のスロットに接続されたPCIデバイスとCPU11との間の入出力を制御する。IOC21は、PCI−SW24と上述のI/O制御部14とに加え、HCA制御プロセッサ22と、HCA制御用ローカルメモリ23とにも接続されている。
具体的には、IOC21は、各スロット26〜28に接続された各PCIデバイスからの要求と、HCA制御プロセッサ22からの要求とを受け取り、受け取った要求をI/O制御部14に送信する。また、IOC21は、反対に、I/O制御部14から要求を受け取った場合は、この要求を、各PCIデバイス及びHCA制御プロセッサ22に送信する。
HCA25は、PCI−SW24に接続されたPCIデバイスであり、上述したように、光ファイバーケーブル300を介して、他のコンピュータ装置200のHCA25に接続されている。HCA25は、コンピュータ装置100における主メモリ12又はHCA制御用ローカルメモリ23と、コンピュータ装置200における主メモリ12又はHCA制御用ローカルメモリ23のメモリとの間でのデータ転送を実行する。
また、本実施の形態1では、データ転送長が設定値以下(例えば、8Kbyte以内)のデータがデータ転送される場合、即ち、同期転送が行なわれる場合に、CPU11は、データ転送の起動を、IOC21に対して指示することができる。これは、HCA25を用いたデータ転送では、データ転送長が設定値以下となるデータ転送の割合が高く、この場合における高速化が最も求められているためである。
更に、本実施の形態では、CPU11は、データ転送の起動を指示する際に、データ転送の実行に必要なパラメータ(以下「データ転送パラメータ」と表記する。)を主メモリ12に格納する。続いて、CPU11は、起動の指示によって、IOC21に、主メモリ12からのデータ転送パラメータの読み出しを行わせ、更に、読み出したパラメータをHCA25に書き込ませる。これにより、HCA25は、要求されたデータ転送を開始する。
また、本実施の形態1において、データ転送パラメータは、例えば、データ転送がRDMAライト及びRDMAリードのいずれであるかを示すコマンド、データ転送元のアドレス、データ転送先のアドレス、データ転送長、及び主メモリ上の終了フラグの書き込み先アドレス等を含むデータである。
[装置動作]
次に、本実施の形態1におけるコンピュータ装置100が、コンピュータ装置200に対して、データ転送リクエスト(RDMAライトリクエスト又はRDMAリードリクエスト)を出力した場合の動作について図2を用いて説明する。図2は、本発明の実施の形態1におけるコンピュータ装置の動作を示すタイムチャートである。
また、本実施の形態1では、コンピュータ装置100を動作させることによって、データ転送方法が実施される。よって、本実施の形態1におけるデータ転送方法の説明は、以下のコンピュータ装置100の動作説明に代える。また、以下の説明では、適宜図1を参照する。
図2に示すように、最初に、コンピュータ装置100において、CPU11は、データ転送パラメータを主メモリ12に格納し(ステップA1)、続いて、IOC21に対して、RDMA起動命令を送信する(ステップA2)。
次に、IOC21は、RDMA起動命令を受信すると、主メモリ12から、ステップA1で格納されたデータ転送パラメータを読み出し(ステップA3)、読み出したデータ転送パラメータをHCA25に書き込み、DMA転送を起動させる(ステップA4)。なお、データ転送パラメータが格納されている主メモリ12のアドレスは、初期設定時において、HCA制御プロセッサ22から読み出され、IOC21内に予め登録されている。
次に、ステップA4によってデータ転送パラメータが書き込まれると、HCA25は、データ転送パラメータに従ったDMA(Direct Memory Access)転送を実行する(ステップA5)。これにより、コンピュータ装置100の主メモリ12と、コンピュータ装置200の主メモリ12との間で、データ転送が行なわれる。
次に、HCA25は、ステップA5によるデータ転送が終了すると、データ転送の終了を示すデータ、即ち、終了フラグ(例えば「0x80」)を、終了フラグの書き込み先アドレスとして指定されている主メモリ12上のアドレスに書き込む(ステップA6)。
CPU11は、ステップA2の実行後から、ステップA6によって、主メモリ12上の終了フラグの書き込み先のアドレスに0x80等の終了フラグが書き込まれるまで、待機状態となっている。そして、CPU11は、ステップA6によって終了フラグの書き込み先アドレスに終了フラグが書き込まれると、それを読み出し、データ転送を終了する(ステップA7)。
[従来例の動作]
続いて、図3を用いて、CPUがHCA制御プロセッサを介してHCAにデータ転送を実行させる従来例について説明する。図3は、従来からのコンピュータ装置の動作を示すタイムチャートである。なお、図3の動作を実行するコンピュータ装置も、図1に示す本実施の形態1におけるコンピュータ装置100と同様の構成を備えているため、以下の説明では、図1を参酌する。
最初に、CPUは、データ転送パラメータを主メモリに格納し(ステップS1)、続いて、HCA制御プロセッサに対して、RDMA起動命令を送信する(ステップS2)。
次に、HCA制御プロセッサは、アイドル状態にあり、RDMA起動命令を受信すると、割込処理を実行し、RDMA起動命令をデコードする(ステップS3)。続いて、HCA制御プロセッサは、RDMA起動命令に従って、主メモリから、ステップS1で格納されたデータ転送パラメータを読み出す(ステップS4)。
次に、HCA制御プロセッサは、ステップS4で読み出したデータ転送パラメータをHCA25に書き込み、DMA転送を起動させる(ステップS5)。更に、ステップS5では、HCA制御プロセッサは、データ転送パラメータにおいて、終了フラグの書き込み先として指定されている主メモリ上のアドレスを、HCA制御用ローカルメモリのアドレスに書き換える。なお、データ転送パラメータが格納されている主メモリ12のアドレスは、HCA制御プロセッサ22内に予め登録されている。
次に、ステップS5によってデータ転送パラメータが書き込まれると、HCA25は、データ転送パラメータに従ったDMA転送を実行する(ステップS6)。これにより、コンピュータ装置100の主メモリ12と、コンピュータ装置200の主メモリ12との間で、データ転送が行なわれる。
次に、HCA25は、ステップS6によるデータ転送が終了すると、データ転送の終了を示す終了フラグ(例えば「0x80」)を、終了フラグの書き込み先アドレスとして書き換えられた、HCA制御用ローカルメモリ上のアドレスに書き込む(ステップS7)。
HCA制御プロセッサは、ステップS5の実行後から、ステップS7によって、HCA制御用ローカルメモリ上の終了フラグの書き込み先のアドレスに終了フラグが書き込まれるまで、待機状態となっている。
そして、HCA制御プロセッサは、ステップS7によって終了フラグの書き込み先アドレスに終了フラグが書き込まれると、それを読み出す(ステップS8)。続いて、HCA制御プロセッサは、CPUが終了フラグの書き込み先のアドレスとして指定する、主メモリ上のアドレスに、終了フラグを書き込み(ステップS9)、処理を終了する。
また、CPUは、ステップS2の実行後から、ステップS9によって、主メモリ12上の終了フラグの書き込み先のアドレスに終了フラグが書き込まれるまで、待機状態となっている。そして、CPUは、ステップS9によって終了フラグの書き込み先アドレスに終了フラグが書き込まれると、それを読み出し(ステップS10)、データ転送を終了する。
[実施の形態1における効果]
以上、図3に示すHCA制御プロセッサによってHCAのデータ転送を起動する場合は、図2に示すIOCによってHCAのデータ転送を起動する場合に比べて、処理が複雑化し、CPUの指示からHCAがデータ転送を開始するまでの時間の短縮化が困難となる。
図2に示す本実施の形態1の場合が、図3に示す従来の場合に比べて、処理が複雑化しないのは、IOCは、HCA制御プロセッサと異なり、プログラミングが必要のないコントローラ(非プロセッサ)だからである。つまり、IOCは、FPGAでI/Oボード20に実装されたハードウェアであり、ファームウェア又は組み込みソフトウェアを用いずに、電子回路だけで高速に処理を行うことができるからである。
従って、本実施の形態1によれば、HCA25を用いたデータ転送の起動にかかる時間を短縮化できる。特に、データ転送長が短いデータを転送する場合においては、データ転送全体にかかる時間に対して、データ転送の起動時間が占める割合が高くなるため、本実施の形態1によれば、データ転送の遅延(レイテンシ)の抑制が可能となる。
なお、本実施の形態1では、データ転送長が設定値を超えている場合は、CPUは、データ転送の起動命令を、HCA制御プロセッサに対して発行し、HCA制御プロセッサ22を介して、HCA25にデータ転送を開始させることもできる。
[プログラム]
また、本実施の形態1におけるプログラムは、コンピュータ装置に、図2に示すステップA1〜A7を実行させるプログラムであれば良い。また、本実施の形態1におけるプログラムは、例えば、コンピュータのオペレーティングシステムを構成するモジュールであっても良い。そして、本実施の形態1におけるプログラムは、主メモリに展開された後、CPUによって所定の順序で実行され、これにより、本実施の形態1におけるコンピュータ装置とデータ転送方法とが実現される。
更に、本実施の形態1におけるプログラムは、コンピュータ読み取り可能な記録媒体に格納された状態で提供されても良いし、インターネット等のネットワーク経由で提供されても良い。前者の場合、記録媒体の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
(実施の形態2)
次に、本発明の実施の形態2における、コンピュータ装置、データ転送方法、及びプログラムについて、図4を参照しながら説明する。
本実施の形態2におけるコンピュータ装置の構成は、実施の形態1において図1に示したコンピュータ装置100及び200と同様であるが、本実施の形態2は、CPU及びIOCにおける処理の点で、実施の形態1と異なっている。以下、実施の形態1との相違点について説明する。なお、以降の説明では、図1を参酌する。
まず、本実施の形態におけるコンピュータ装置では、主メモリ12はCPUボード10上に存在するため、HCA25又はIOC21が主メモリ12のデータをリードするよりも、CPU11が主メモリ12のデータをリードする方が、高速にデータを読み出すことができる。従って、HCA25が主メモリ12にアクセスする回数を削減すれば、データ転送速度の向上を実現できる。
従って、本実施の形態2では、データ転送コマンドがRDMAライトであり、且つ、データ転送長が短い場合に、CPU11は、主メモリ12から予め転送対象となるデータ(転送データ)を読み出し、これをデータ転送パラメータに付随させる。そして、CPU11は、IOC12に、データ転送パラメータと転送データとを、主メモリ12から1回のリードによって読み出させ、これらをHCAに受け渡させる。
具体的には、データ転送パラメータは、32バイト程度のデータ構造であるが、IOC21は、1回のリードリクエストにおいて、64バイトのデータを読み出すことができる。よって、IOC21は、32バイトのデータ転送パラメータをリードする際に、同時に32バイトの転送データもリードして、HCA25に対して、データ転送パラメータと転送データとを書き込むことができる。
そして、この結果、HCA25による主メモリ12のデータリードが不要となり、HCA25は、データ転送パラメータに格納されたデータを、相手方のHCA25に転送するだけで良いため、本実施の形態2によれば、データ転送の速度がいっそう向上する。
以下、図4を用いて、実施の形態1との相違点を説明する。図4は、本発明の実施の形態2におけるコンピュータ装置の動作を示すタイムチャートである。また、以下の説明では、実施の形態1と同様に、コンピュータ装置200が、コンピュータ装置100の拡張記憶装置として機能するものとする。
最初に、CPU11は、データ転送コマンドがRDMAライトであり、且つ、データ転送長が短い(例えば、32byte以内)場合に該当するかどうかを判断する。そして、図4に示すように、該当する場合は、CPU11は、主メモリ12からの転送データの読み出しを実行する(ステップB1)。
次に、CPU11は、データ転送パラメータを主メモリ12に格納し(ステップB2)、更に、ステップB1で読み出した転送データを、データ転送パラメータに付随させる(ステップB3)。更に、CPU11は、IOC21に対して、RDMA起動命令を送信する(ステップB4)。
次に、IOC21は、RDMA起動命令を受信すると、主メモリ12から、ステップB2で格納されたデータ転送パラメータと、ステップB3で格納された転送データとを読み出し(ステップB5)、これらをHCA25に書き込み、DMA転送を起動させる(ステップB6)。このように、ステップB5及びB6が実行されると、IOC21により、データ転送パラメータと転送データとは、1回のリード(64バイト)で全て読み出され、HCA25に書き込まれる。
次に、ステップB6によってデータ転送パラメータ及び転送データが書き込まれると、HCA25は、データ転送パラメータに従ったDMA(Direct Memory Access)転送を実行する(ステップB7)。そして、RDMAライトが実行されているので、コンピュータ装置100のHCA25に書き込まれた転送データは、コンピュータ装置200の主メモリ12に、そのHCA25を経由して書き込まれる。
次に、HCA25は、ステップB7によるデータ転送が終了すると、データ転送の終了を示す終了フラグ(例えば「0x80」)を、終了フラグの書き込み先アドレスとして指定されている主メモリ12上のアドレスに書き込む(ステップB8)。
CPU11は、ステップB4の実行後から、ステップB8によって、主メモリ12上の終了フラグの書き込み先のアドレスに0x80等の終了フラグが書き込まれるまで、待機状態となっている。そして、CPU11は、ステップB8によって終了フラグの書き込み先アドレスに終了フラグが書き込まれると、それを読み出し、データ転送を終了する(ステップB9)。
[実施の形態2における効果]
以上、図4に示すように、本実施の形態2では、CPU11は、予め転送データをリードして、データ転送パラメータと転送データとで構成された64バイトデータを用意する。そして、IOC12は、データ転送パラメータ(32バイト)と転送データ(32バイト)とを1回でリードし、これらのデータ(64バイト)をHCA25にライトする。このため、HCA25は、ライトされた32バイトの転送データを相手側の主メモリ12に書き込むだけで良く、HCA25によるデータ転送時のリード動作が削減される。結果、本実施の形態2によれば、データ転送速度のいっそうの高速化が図られる。
[プログラム]
また、本実施の形態2におけるプログラムは、コンピュータ装置に、図4に示すステップB1〜B9を実行させるプログラムであれば良い。また、本実施の形態2におけるプログラムは、例えば、コンピュータのオペレーティングシステムを構成するモジュールであっても良い。そして、本実施の形態2におけるプログラムは、主メモリに展開された後、CPUによって所定の順序で実行され、これにより、本実施の形態2におけるコンピュータ装置とデータ転送方法とが実現される。
また、本実施の形態2におけるプログラムも、実施の形態1と同様に、コンピュータ読み取り可能な記録媒体に格納された状態で提供されても良いし、インターネット等のネットワーク経由で提供されても良い。記録媒体の具体例としては、実施の形態1で述べたものが挙げられる。
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記15)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備え、
前記CPUは、前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、
ことを特徴とするコンピュータ装置。
(付記2)
前記CPUは、データ転送長が設定値以下のデータを、前記ホストチャネルアダプタを用いてデータ転送する場合に、前記データ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、付記1に記載のコンピュータ装置。
(付記3)
前記データ転送の実行に必要なパラメータを格納する記憶装置を更に備え、
前記CPUが、前記起動の指示によって、前記入出力コントローラに、前記記憶装置からの前記パラメータの読み出しを行わせ、更に、読み出した前記パラメータを前記ホストチャネルアダプタに書き込ませ、前記ホストチャネルアダプタに前記データ転送を開始させる、
付記1または2に記載のコンピュータ装置。
(付記4)
前記CPUは、
前記ホストチャネルアダプタを用いたデータ転送を実行する場合に、前記記憶装置に格納されている前記パラメータに、転送対象となるデータを付随させ、
前記起動の指示によって、前記入出力コントローラに、前記記憶装置から、前記パラメータと共に前記転送対象となるデータの読み出しを行わせ、読み出した前記パラメータ及び前記転送対象となるデータを前記ホストチャネルアダプタに書き込ませる、
付記3に記載のコンピュータ装置。
(付記5)
前記バス、前記入出力コントローラ及び前記ホストチャネルアダプタが、前記CPUが実装された基板とは別の基板に実装されている、付記1〜4のいずれかに記載のコンピュータ装置。
(付記6)
CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備えた、コンピュータ装置を用いたデータ転送方法であって、
(a)前記CPUによって、前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、ステップを有する、
ことを特徴とするデータ転送方法。
(付記7)
前記(a)のステップが、データ転送長が設定値以下のデータを、前記ホストチャネルアダプタを用いてデータ転送する場合に、実行される、付記6に記載のデータ転送方法。
(付記8)
前記コンピュータ装置が、前記データ転送の実行に必要なパラメータを格納する記憶装置を更に備えており、
前記(a)のステップにおいて、前記起動の指示によって、前記入出力コントローラに、前記記憶装置からの前記パラメータの読み出しを行わせ、更に、読み出した前記パラメータを前記ホストチャネルアダプタに書き込ませ、前記ホストチャネルアダプタに前記データ転送を開始させる、
付記6または7に記載のデータ転送方法。
(付記9)
(b)前記ホストチャネルアダプタを用いたデータ転送を実行する場合に、前記CPUによって、前記記憶装置に格納されている前記パラメータに、転送対象となるデータを付随させる、ステップを更に有し、
前記(a)のステップにおいて、前記起動の指示によって、前記入出力コントローラに、前記記憶装置から、前記パラメータと共に前記転送対象となるデータの読み出しを行わせ、読み出した前記パラメータ及び前記転送対象となるデータを前記ホストチャネルアダプタに書き込ませる、
付記8に記載のデータ転送方法。
(付記10)
前記バス、前記入出力コントローラ及び前記ホストチャネルアダプタが、前記CPUが実装された基板とは別の基板に実装されている、付記6〜9のいずれかに記載のデータ転送方法。
(付記11)
CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備えた、コンピュータ装置によって、データ転送方法を行うためのプログラムであって、
(a)前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、ステップを、前記CPUに実行させる、
プログラム。
(付記12)
前記(a)のステップが、データ転送長が設定値以下のデータを、前記ホストチャネルアダプタを用いてデータ転送する場合に、実行される、付記11に記載のプログラム。
(付記13)
前記コンピュータ装置が、前記データ転送の実行に必要なパラメータを格納する記憶装置を更に備えており、
前記(a)のステップにおいて、前記起動の指示によって、前記入出力コントローラに、前記記憶装置からの前記パラメータの読み出しを行わせ、更に、読み出した前記パラメータを前記ホストチャネルアダプタに書き込ませ、前記ホストチャネルアダプタに前記データ転送を開始させる、
付記11または12に記載のプログラム。
(付記14)
(b)前記ホストチャネルアダプタを用いたデータ転送を実行する場合に、前記CPUによって、前記記憶装置に格納されている前記パラメータに、転送対象となるデータを付随させる、ステップを、更に前記CPUに実行させ、
前記(a)のステップにおいて、前記起動の指示によって、前記入出力コントローラに、前記記憶装置から、前記パラメータと共に前記転送対象となるデータの読み出しを行わせ、読み出した前記パラメータ及び前記転送対象となるデータを前記ホストチャネルアダプタに書き込ませる、
付記13に記載のプログラム。
(付記15)
前記バス、前記入出力コントローラ及び前記ホストチャネルアダプタが、前記CPUが実装された基板とは別の基板に実装されている、付記11〜14のいずれかに記載のプログラム。
以上のように、本発明によれば、ホストチャネルアダプタを用いたデータ転送を行なう場合において、その開始までの時間を短縮化して、データ転送の遅延を抑制できる。本発明は、ホストコンピュータのホストチャネルアダプタ同士を光ファイバーケーブルによって接続して、RDMA転送を行なう場合に有用である。
10 CPUボード
11 CPU
12 主メモリ
13 メモリ制御部
14 I/O制御部
20 I/Oボード
21 入出力コントローラ(IOC)
22 HCA制御プロセッサ
23 HCA制御用ローカルメモリ
24 バス(PCI Express Switch)
25 ホストチャネルアダプタ(HCA)
26〜28 スロット(PCIeスロット)
100 コンピュータ装置
200 コンピュータ装置
300 光ファイバーケーブル

Claims (6)

  1. CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備え、
    前記CPUは、データ転送長が設定値以下のデータを、前記ホストチャネルアダプタを用いてデータ転送する場合に、前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、
    ことを特徴とするコンピュータ装置。
  2. 前記データ転送の実行に必要なパラメータを格納する記憶装置を更に備え、
    前記CPUが、前記起動の指示によって、前記入出力コントローラに、前記記憶装置からの前記パラメータの読み出しを行わせ、更に、読み出した前記パラメータを前記ホストチャネルアダプタに書き込ませ、前記ホストチャネルアダプタに前記データ転送を開始させる、
    請求項1に記載のコンピュータ装置。
  3. 前記CPUは、
    前記ホストチャネルアダプタを用いたデータ転送を実行する場合に、前記記憶装置に格納されている前記パラメータに、転送対象となるデータを付随させ、
    前記起動の指示によって、前記入出力コントローラに、前記記憶装置から、前記パラメータと共に前記転送対象となるデータの読み出しを行わせ、読み出した前記パラメータ及び前記転送対象となるデータを前記ホストチャネルアダプタに書き込ませる、
    請求項に記載のコンピュータ装置。
  4. 前記バス、前記入出力コントローラ及び前記ホストチャネルアダプタが、前記CPUが実装された基板とは別の基板に実装されている、請求項1〜のいずれかに記載のコンピュータ装置。
  5. CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備えた、コンピュータ装置を用いたデータ転送方法であって、
    (a)データ転送長が設定値以下のデータを、前記ホストチャネルアダプタを用いてデータ転送する場合に、前記CPUによって、前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、ステップを有する、
    ことを特徴とするデータ転送方法。
  6. CPUと、データ転送用のバスと、前記バスに接続された機器と前記CPUとの間の入出力を制御する入出力コントローラと、前記バスに接続され、且つ外部と通信を行うためのホストチャネルアダプタとを備えた、コンピュータ装置によって、データ転送方法を行うためのプログラムであって、
    (a)データ転送長が設定値以下のデータを、前記ホストチャネルアダプタを用いてデータ転送する場合に、前記ホストチャネルアダプタを用いたデータ転送の起動を、前記入出力コントローラに対して指示し、前記入出力コントローラを介して、前記ホストチャネルアダプタに前記データ転送を開始させる、ステップを、前記CPUに実行させる、
    プログラム。
JP2012274130A 2012-12-14 2012-12-14 コンピュータ装置、データ転送方法、及びプログラム Active JP5541544B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012274130A JP5541544B2 (ja) 2012-12-14 2012-12-14 コンピュータ装置、データ転送方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012274130A JP5541544B2 (ja) 2012-12-14 2012-12-14 コンピュータ装置、データ転送方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014119930A JP2014119930A (ja) 2014-06-30
JP5541544B2 true JP5541544B2 (ja) 2014-07-09

Family

ID=51174721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012274130A Active JP5541544B2 (ja) 2012-12-14 2012-12-14 コンピュータ装置、データ転送方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5541544B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021214850A1 (ja) * 2020-04-21 2021-10-28 日本電信電話株式会社 データ通信システム、計算機、データ通信方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161933A (ja) * 1992-11-20 1994-06-10 Fujitsu Ltd 共通バス入出力制御システム
JPH0877099A (ja) * 1994-09-02 1996-03-22 Fuji Xerox Co Ltd Dmaコントローラ
JP5186779B2 (ja) * 2007-03-01 2013-04-24 日本電気株式会社 コンピュータシステム、ホストコンピュータ
JP5218452B2 (ja) * 2010-03-05 2013-06-26 日本電気株式会社 情報処理装置
JP5444194B2 (ja) * 2010-11-11 2014-03-19 エヌイーシーコンピュータテクノ株式会社 データ転送装置、データ転送方法、コンピュータシステム

Also Published As

Publication number Publication date
JP2014119930A (ja) 2014-06-30

Similar Documents

Publication Publication Date Title
US20070019636A1 (en) Multi-threaded transmit transport engine for storage devices
US20130166849A1 (en) Physically Remote Shared Computer Memory
US10936517B2 (en) Data transfer using a descriptor
JP4373255B2 (ja) ダイレクトメモリアクセス制御装置および方法
WO2022222040A1 (zh) 图形处理器的缓存访问方法、图形处理器及电子设备
CN110781107A (zh) 基于dram接口的低延迟融合io控制方法和装置
TW201112131A (en) Controllers, apparatuses, and methods for transferring data
JP5541544B2 (ja) コンピュータ装置、データ転送方法、及びプログラム
JP6050528B2 (ja) セキュリティ・コプロセッサ・ブート性能
CN105677606A (zh) 总线设备的热插拔方法及总线装置
GB2529425A (en) Data processing apparatus and method
JP2008282237A (ja) インターフェイスボード、シミュレータ、同期方法、同期プログラム
US8806078B2 (en) Information processing device and program product
JP2005258509A (ja) ストレージ装置
JP6206524B2 (ja) データ転送装置、データ転送方法、プログラム
JP2009093225A (ja) ストレージ制御装置、方法及びプログラム並びにストレージ装置
JP2016528634A (ja) ハードウェア自動デバイス・オペレーション・イニシエータの実装するための方法およびコントローラ
JP2015014962A (ja) 演算装置、演算方法、及びプログラム
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP7428392B2 (ja) 演算回路、演算装置、方法、及びプログラム
JP2009187337A (ja) デバイス制御方法、プログラム、制御回路及び電子機器
JP2012216108A (ja) 情報処理装置およびプログラム転送方法
JP2016154001A (ja) 画像処理装置、画像処理用データ転送制御方法、及び画像処理用データ転送制御プログラム
JP5002238B2 (ja) ディジタルシグナルプロセッサシステム及びディジタルシグナルプロセッサの起動方法
JP6138482B2 (ja) 組み込みシステム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140319

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: 20140409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140423

R150 Certificate of patent or registration of utility model

Ref document number: 5541544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350